View on GitHub

The Unofficial Incomplete Spidermonkey Bibliography

Contributions Welcome!

A collection of links to published articles, blog posts, talks, and other important pieces of history of the SpiderMonkey JavaScript engine.

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.

Annotations

History

General history of the SpiderMonkey JavaScript engine:

VM

Information about the SpiderMonkey Engine

Debugger

Embedding

SpiderMonkey is designed to be embedded in other programs. This section covers this embedding, and people talking about it

Exploits

Garbage Collection

Compiler Technology

SpiderMonkey has a lot of compiler technology, and has had many different JIT compilers embedded within it.

Tracemonkey 🏚

TraceMonkey was the first JIT compiler added to SpiderMonkey, and removed in Mozilla 11.

JaegerMonkey 🏚

The first method compiler added to SpiderMonkey.

IonMonkey

The second method JIT compiler in SpiderMonkey. Warp, enabled by default in Firefox 83, has replaced the graph construction (IonBuilder) portion of Ion.

Exploitation Reports

WarpBuilder

A new compiler frontend, creating MIR from bytecode, replacing the previous IonBuilder and Type Inference system.

OdinMonkey (asm.js)

Rabaldr (wasm baseline compiler)

BaldrMonkey (WebAssembly)

Baseline

CacheIR

Type Inference 🏚

(Removed in Firefox 84)

Optimization Tracking 🎓 🏚