|Written in||C, C++, Rust|
|Platform||IA-32, x86-64, ARM, MIPS, SPARC|
|Version||Release date||Corresponding ECMAScript version||Browser version||Added functionality|
|Old version, no longer maintained: 1.0||March 1996||Netscape Navigator 2.0|
|Old version, no longer maintained: 1.1||August 1996||Netscape Navigator 3.0|
|Old version, no longer maintained: 1.2||June 1997||Netscape Navigator 4.0 - 4.05|
|Old version, no longer maintained: 1.3||October 1998||ECMA-262 1st + 2nd edition||Netscape Navigator 4.06-4.7x|
|Old version, no longer maintained: 1.4||Netscape Server|
|Old version, no longer maintained: 1.5||November 2000||ECMA-262 3rd edition||Netscape Navigator 6, Firefox 1.0|
|Old version, no longer maintained: 1.6||November 2005||Firefox 1.5||additional array methods, array and string generics, E4X|
|Old version, no longer maintained: 1.7||October 2006||Firefox 2.0||iterators and generators, let statement, array comprehensions, destructuring assignment|
|Old version, no longer maintained: 1.8||June 2008||Firefox 3.0||generator expressions, expression closures|
|Old version, no longer maintained: 1.8.5||March 2011||ECMA-262 5th edition||Firefox 4.0||JSON support|
|Old version, no longer maintained: 1.8.8||January 2012||Firefox 10.0|
|Old version, no longer maintained: 17||November 2012||Firefox 17.0|
|Old version, no longer maintained: 24||September 2013||Firefox 24.0|
|Old version, no longer maintained: 31||July 2014||Firefox 31.0|
|Old version, no longer maintained: 38||May 2015||Firefox 38.0|
|Old version, no longer maintained: 45||March 2016||Firefox 45.0|
|Old version, no longer maintained: 52||March 2017||Firefox 52.0|
|Old version, no longer maintained: 60||May 2018||Firefox 60.0|
|Old version, no longer maintained: 68||July 2019||Firefox 68.0|
|Current stable version: 78||June 2020||Firefox 78.0|
|Future release: 90||2021||Firefox 90.0|
Instead of compiling whole functions, TraceMonkey was a tracing JIT, which operates by recording control flow and data types during interpreter execution. This data then informed the construction of trace trees, highly specialized paths of native code.
Improvements to JägerMonkey eventually made TraceMonkey obsolete, especially with the development of the SpiderMonkey type inference engine. TraceMonkey is absent from SpiderMonkey from Firefox 11 onward.
JägerMonkey, internally named MethodJIT, was a whole-method JIT compiler designed to improve performance in cases where TraceMonkey could not generate stable native code. It was first released in Firefox 4 and eventually entirely supplanted TraceMonkey. It has itself been replaced by IonMonkey.
The difference between TraceMonkey and JägerMonkey JIT techniques and the need for both was explained in a hacks.mozilla.org article. A more in-depth explanation of the technical details was provided by Chris Leary, one of SpiderMonkey's developers, in a blog post. More technical information can be found in other developer's blogs: dvander, dmandelin.
The WarpMonkey JIT replaces the former IonMonkey engine from version 83. 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 (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.
- Mozilla Firefox, Thunderbird, SeaMonkey, and other applications that use the Mozilla application framework
- Data storage applications:
- Adobe Acrobat and Adobe Reader, Adobe Flash Professional, and Adobe Dreamweaver. Adobe Acrobat DC uses Spidermonkey 24.2 with ECMA-357 support forward ported.[dead link]
- GNOME desktop environment, version 3 and later
- Yahoo! Widgets, formerly named Konfabulator
- Parts of SpiderMonkey are used in the Wine project's JScript (re-)implementation
- Synchronet, a BBS, e-mail, Web, and application server using the SpiderMonkey engine
- 0 A.D., a real-time strategy game
- SpiderMonkey is also used in many other open-source projects; an external list is maintained at Mozilla's developer site.
- Sparx Systems Enterprise Architect, a commercial UML, SysML, BPMN, ArchiMate modelling tool: scripts can be created within the project to call the tool's own API
- "1.8.8 - SpiderMonkey | MDN". Developer.mozilla.org. 10 January 2013. Archived from the original on 2 May 2013. Retrieved 21 March 2013.
- Mozilla Licensing Policies, mozilla.org, archived from the original on 2 April 2013, retrieved 26 March 2013
- Eich, Brendan (3 April 2008). "Popularity". BrendanEich.com. Archived from the original on 3 July 2011. Retrieved 1 July 2011.
- Eich, Brendan (19 August 2011). "Mapping the Monkeysphere". Archived from the original on 13 January 2013. Retrieved 19 August 2011.
- "759422 – Remove use of e4x in account creation". Retrieved 5 February 2013.
- Nethercote, Nicholas (1 November 2011). "SpiderMonkey is on a diet | Nicholas Nethercote". Blog.mozilla.com. Archived from the original on 28 March 2012. Retrieved 21 March 2013.
- Paul, Ryan (9 March 2010). "Mozilla borrows from WebKit to build fast new JS engine". Ars Technica. Archived from the original on 16 April 2012. Retrieved 21 March 2013.
- "JaegerMonkey - MozillaWiki". Wiki.mozilla.org. Archived from the original on 23 August 2013. Retrieved 21 March 2013.
- "Platform/Features/IonMonkey - MozillaWiki". Wiki.mozilla.org. 11 February 2013. Archived from the original on 8 March 2013. Retrieved 21 March 2013.
- "Firefox Notes - Desktop". Mozilla.org. 8 January 2013. Archived from the original on 2 September 2014. Retrieved 21 March 2013.
- "Warp: Improved JS performance in Firefox 83 – Mozilla Hacks - the Web developer blog". Mozilla Hacks – the Web developer blog. 13 November 2020. Retrieved 28 August 2021.
- "SpiderMonkey — Firefox Source Docs documentation". firefox-source-docs.mozilla.org. Retrieved 28 August 2021.
- "Acrobat DC SDK Documentation". help.adobe.com. Retrieved 27 February 2020.
- Bolso, Erik Inge (8 March 2005). "2005 Text Mode Browser Roundup". Linux Journal. Archived from the original on 15 March 2010. Retrieved 5 August 2010.
- wine-cvs mailing list Archived 7 February 2009 at the Wayback Machine, 16 September 2008: "jscript: Added regular expression compiler based on Mozilla regexp implementation"
- "SpiderMonkey > FOSS". MDN Web Docs. Retrieved 2 April 2019.
- Documentation for SpiderMonkey
- Spidermonkey's page for Open Source Links
- Are We Fast Yet? (Official benchmark and comparison)