The goal is try to collect together much of what has been written about SpiderMonkey across the internet. This includes research done atop SpiderMonkey, as well as techniques and advances within the engine.
- 🏚 Obsolete: Code removed from today’s SpiderMonkey codebase.
- 🎓 Academic Source
- 📄 Link to PDF
- 📽 Video
- Debugging in the Time of JITs - Shu-yu Guo
TraceMonkey was the first JIT compiler added to SpiderMonkey, and removed in Mozilla 11.
Trace-based just-in-time type specialization for dynamic languages - Brendan Eich, Andreas Gal, Mike Shaver, David Anderson, David Mandelin, Mohammad R. Haghighat, Blake Kaplan, Graydon Hoare, Boris Zbarsky, Jason Orendorff, Jesse Ruderman, Edwin W. Smith, Rick Reitmaier, Michael Bebenita, Mason Chang, Michael Franz, PDLI ‘09 🎓
An Overview of TraceMonkey - David Mandelin
The first method compiler added to SpiderMonkey (More Info Wanted!)
- IonMonkey in Firefox 18 - David Anderson
- Recover Instructions - Nicolas B. Pierron
- Just-in-Time Value specialization - Igor Costa, Péricles Alves, Henrique Nazaré Santos, Fernando Magno Quintão Pereira, CGO ‘13, 🎓 📄
- asm.js in Firefox Nightly - Luke Wagner
- asm.js AOT compilation and startup performance - Luke Wagner
Rabaldr (wasm baseline compiler)
- Making asm.js/WebAssembly compilation more parallel in Firefox - Benjamin Bouvier (story of the refactoring of Odin into Baldr + parallel compilation)
- The Baseline Compiler Has Landed - Kannan Vijayan
- CacheIR: A new approach to Inline Caching in Firefox - Jan de Mooij
Optimization Tracking 🎓
- Making SpiderMonkey’s Debugger Just-in-Time - Shu-yu Guo
- Code-generating Away the Boilerplate in Our Migration Back to Spidermonkey - Jason Carey
- SpiderMonkey Embedding Examples