Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
SpiderMonkey
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===WarpMonkey=== The WarpMonkey JIT replaces the former IonMonkey engine from version 83.<ref>{{Cite web|title=Warp: Improved JS performance in Firefox 83 β Mozilla Hacks - the Web developer blog|url=https://hacks.mozilla.org/2020/11/warp-improved-js-performance-in-firefox-83|date=13 November 2020|access-date=2021-08-28|website=Mozilla Hacks β the Web developer blog|language=en-US}}</ref> It is able to inline other scripts and specialize code based on the data and arguments being processed. It translates the bytecode and Inline Cache data into a Mid-level [[Intermediate representation|Intermediate Representation]] (Ion MIR) representation. This graph is transformed and optimized before being lowered to a Low-level Intermediate Representation (Ion LIR). This LIR performs register allocation and then generates native machine code in a process called Code Generation. The optimizations here assume that a script continues to see data similar what has been seen before. The Baseline JITs are essential to success here because they generate ICs that match observed data. If after a script is compiled with Warp, it encounters data that it is not prepared to handle it performs a bailout. The bailout mechanism reconstructs the native machine stack frame to match the layout used by the Baseline Interpreter and then branches to that interpreter as though we were running it all along. Building this stack frame may use special side-table saved by Warp to reconstruct values that are not otherwise available.<ref>{{Cite web|title=SpiderMonkey β Firefox Source Docs documentation|url=https://firefox-source-docs.mozilla.org/js/index.html|access-date=2021-08-28|website=firefox-source-docs.mozilla.org}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)