Now that builtins are binary embedded (and it sounds like there is a plan to do the same with bytecode handlers), how far is v8 from being able to run without JIT? In the Ignition design doc, it notes that supporting platforms not allowed to JIT code is a non-goal as JIT is still needed for code stubs and ICs. If all of the code stubs are binary embedded, then code stubs shouldn't be a problem any longer. For ICs, it seems like it should be possible to just not use them (although this would be a major slowdown). It isn't totally clear to me why internal caches depend on JIT (it seems like the interpreter should be able to use the offset information directly). Any insight would be greatly appreciated.
P.S. As a related thought experiment, what would it take to run the compiler pipeline on JavaScript code at compile time (similar to the builtins) and actually embed that in the binary as well (allowing for AOT JavaScript compilation)?