One of the primary goals of JIT engines for dynamic languages is to make high-level code run fast by compiling it into efficient machine code. A key property of this, however, is that the compiled code for any piece of JavaScript must behave exactly the same at runtime as the interpreted code for that JavaScript would have behaved. In a nutshell, providing efficiency while maintaining correctnes