12. A method of executing a scripting language code comprising, selecting a portion of the scripting language code to optimize; generating a first JIT copy of the portion of the scripting language code, wherein the first JIT copy comprises browsing context information, wherein browsing context information comprises references to at least a portion of an object in the browsing context; creating one or more assumptions associated with the browsing context information; replacing the browsing context information with one or more placeholders; storing the first JIT copy and the one or more assumptions; creating a second JIT copy of the portion of the scripting language code, wherein the second JIT copy comprises the one or more placeholders; obtaining a runtime value for each of the one or more placeholders; comparing the runtime value to the one or more assumptions; determining if the runtime value satisfies the one or more assumptions; replacing the placeholders with the runtime value when the runtime value satisfies the one or more assumptions; and executing the second JIT copy of the portion of the scripting language code with the runtime values when the runtime value satisfies the one or more assumptions.
12. A method of executing a scripting language code comprising, selecting a portion of the scripting language code to optimize; generating a first JIT copy of the portion of the scripting language code, wherein the first JIT copy comprises browsing context information, wherein browsing context information comprises references to at least a portion of an object in the browsing context; creating one or more assumptions associated with the browsing context information; replacing the browsing context information with one or more placeholders; storing the first JIT copy and the one or more assumptions; creating a second JIT copy of the portion of the scripting language code, wherein the second JIT copy comprises the one or more placeholders; obtaining a runtime value for each of the one or more placeholders; comparing the runtime value to the one or more assumptions; determining if the runtime value satisfies the one or more assumptions; replacing the placeholders with the runtime value when the runtime value satisfies the one or more assumptions; and executing the second JIT copy of the portion of the scripting language code with the runtime values when the runtime value satisfies the one or more assumptions. 13. The method of claim 12 , wherein, executing the second JIT copy of the portion of the scripting language code with the runtime values comprises executing the second JIT copy of the portion of the scripting language code a first time with the runtime values; and further comprising executing the second JIT copy of the portion of the scripting language code at least one additional time with the runtime values.