Evidence

Embedded preview contract.

EP0-EP5 qualify one bounded Linux embedding contract. The milestone is concrete enough to trial, and narrow enough not to masquerade as a general JavaScript engine release.

External corpus

171 / 171

Public observable cases pass through the candidate engine.

Malformed input

400 mutations

Deterministic mutations terminate without crashes or hangs.

Host soak

250 evaluations

The frozen public-header-only C demonstration repeatedly evaluates and recovers.

Qualified surface

  • Linux C11 and C++17 consumers through public ABI 0.1.
  • Static library, SONAME shared library, CLI, pkg-config and CMake metadata.
  • Primitive, object and array host values with explicit runtime-owned handles.
  • Globals, host-to-JavaScript calls and synchronous native callbacks with host data.
  • Catchable native errors, retrievable thrown values and located stack text.
  • Instruction, call-stack and cumulative allocation limits with success-after-failure recovery.
  • ASan/UBSan candidate runs and isolated static/shared consumer builds.

Frozen exit demonstration

public js.h only
  + structured host input
  + native callback and closure
  + array callback
  + located Error retrieval
  + instruction/allocation containment
  + successful recovery
  + clean teardown

Not claimed

No general ES2022 conformance percentage, Test262 pass rate, stable ABI, Windows/macOS package, async cancellation, worker safety, module loader, promises/jobs, browser APIs, Node APIs or security sandbox is claimed.

Evidence after the preview freeze

PC0V external Valgrind confirmation is complete. The independent suite now also keeps a 26/26 lossless frontend corpus and a pinned 12/12 real-bundle frontend certification. JRS8 pins a selected Test262 contract and runner, but no Test262 percentage is claimed because the pinned upstream corpus was not available in the last evidence workspace. PC0P remains the second-platform package gate.

Next engine slice

The evidence decision is now explicit: JS11A is bounded class runtime semantics, followed by JS11B jobs/promises/async and JS12 modules. Classes come first because their syntax boundaries are already stable and they do not require introducing the job queue or module-linking host contracts at the same time.