Advanced
On this page 3
The Features section describes what the engine gives your JavaScript. This section is about operating and extending the engine itself: how to embed it, how memory behaves, how code tiers, how to debug it, and how its claims are verified.
Pages
| Page | Covers |
|---|---|
| Embedding | The Zig Context API, options, module hosts, termination, and how it relates to the C and Objective-C surfaces. |
| Memory & GC | Arena vs. precise GC, heap budgets, generational collection, compaction, weak references, and root safety. |
| Execution tiers | Tree-walker → bytecode VM → baseline native → optimizing tier, and how to keep them in agreement. |
| VM quickening inventory | Guarded VM caches and bounded traces, with narrow legacy kernels separated from general no-JIT coverage. |
| Debugging & tooling | Inspector protocol, corpus diagnostics, profiles, sanitizers, and the build cache. |
| Verification & evidence | How every published claim is gated, and how to add a gate. |
Deep dives elsewhere in these docs
- Architecture — the execution model and source map.
- Threads — the full concurrency documentation set.
- Baseline native tier and Optimizing JIT.
- JavaScriptCore C API, Inspector protocol.
- WebAssembly and the packed spec runner.
- Benchmarks, Conformance, Platform matrix.
- Build cache — what
.zig-cache/andzig-out/contain and how to reclaim them safely.
Working in the repository
Contributor setup, the full command list, and the commit/PR conventions are in
CONTRIBUTING.md.
Coding agents should start from
CLAUDE.md
(symlinked as AGENTS.md), which encodes the same rules plus the traps that have
cost real time here.