V8 Engine Internals (hidden classes / inline caches, JIT pipeline, Orinoco GC)

Parent: JavaScript and Node.js · researched 2026-06-01T04:33:20.857Z· 16 sources · 12 concepts · skill v8-engine-internals

V8 is Google's open-source JavaScript/WebAssembly engine (C++) powering Chrome, Node.js, Deno, Electron,

V8 Engine Internals

1. Object model: Maps (hidden classes), transitions, and property storage

2. Inline Caches (ICs) and the monomorphic → polymorphic → megamorphic ladder

3. The JIT tiering pipeline: Ignition → Sparkplug → Maglev → TurboFan

4. Speculative optimization and deoptimization (bailout)

5. Orinoco: generational garbage collection

6. Node.js GC tuning

7. Practical patterns (write V8-friendly JavaScript)

8. Anti-patterns

References

Children

Frontier under this node: Diagnostic flags (--trace-opt, --trace-deopt, --trace-ic, %OptimizeFunctionOnNextCall), Hidden classes / Maps / object shapes (DescriptorArrays, TransitionArrays, transition trees), Inline caches and the monomorphic/polymorphic/megamorphic ladder, JIT tiering pipeline: Ignition interpreter -> Sparkplug baseline, Maglev mid-tier (SSA/CFG) and TurboFan top-tier (sea-of-nodes), Major GC Mark-Sweep-Compact, concurrent/incremental marking, write barriers, idle-time GC, Node.js GC tuning (--max-old-space-size, --max-semi-space-size, --trace-gc, perf_hooks GC observer, container sizing), Orinoco generational GC: parallel Scavenger (Cheney semi-space), Property storage (in-object, backing store, dictionary/slow mode, elements kinds), Speculative optimization and deoptimization (eager/lazy/soft bailouts, ~70 reasons), Turboshaft / Turbolev direction, V8-friendly JS patterns and megamorphism anti-patterns

← the whole tree · 3D view· how to read this page