Parity-to-95% roadmap (data-driven, 2026-06-04)
Tracking the path from current parity to the 95% goal, based on uncapped
per-category test262 sweeps. Companion to the scripts/parity_gap_report.py
radar and .gapwork/PARITY_TRACKER.md trend.
Current state
- Sampled (60/cat) raw parity: 66.3%, plateaued (the sample is noise-heavy
and insensitive to fixes in partially-passing categories).
- Real parity ≈ 73% after excluding ~349 http/net/https link artifacts
(radar runs without --auto-optimize, mis-bucketing ext-crate APIs) and
~84 timeout/(no output) cases.
Cleared this cycle (single-root-cause clusters — DONE)
Array array-like receivers (−457), Set instance brand-check (−77), DataView
prototype (−44), iterator prototypes, BigInt.asIntN/asUintN, ToNumber(object)
valueOf, isPrototypeOf/Reflect coercion, uncurry-this dispatch (#4279).
Remaining work to 95% (uncapped counts, by tractability)
A. Multi-layer "branded prototype method" cluster (~1000+ cases, HIGH value)
built-ins/TypedArray + TypedArrayConstructors: 962. %TypedArray%.prototype.*
methods route to the regular Array helpers, so they (a) don't brand-check the
receiver (Int8Array.prototype.map.call([1,2]) should throw TypeError) and
(b) miss TA-specific DefineOwnProperty/length-immutability + precision cases.
Fix shape = give %TypedArray%.prototype real branded methods (like the
iterator-prototype work). Largest single lever left.
B. Deep runtime semantics (fragmented, MEDIUM value, many small fixes)
GeneratorPrototype/AsyncGeneratorPrototype (~68): iterator-result
{value,done} values wrong, yield sequencing, async resumption.
Promise (~?): async-test-failures (microtask/then ordering).
Proxy/Reflect (~30 each): remaining trap edges.
C. node-API behavioral (~340, fleet-owned)
D. Categorical hard-gaps (may STRUCTURALLY cap parity, per CLAUDE.md)
- Lookbehind regex (Rust
regex crate limitation), console.dir/group*
formatting, lone-surrogate / WTF-8 handling. These need library-level work and
may not all be reachable.
Honest assessment
95% is reachable but requires (A) the TypedArray branded-prototype rewrite, (B)
sustained generator/promise semantics grinding, (C) the fleet finishing node-API,
and (D) resolving or explicitly excepting the categorical gaps. The clean
mechanical wins are exhausted; the curve from here is slower and deeper.
Parity-to-95% roadmap (data-driven, 2026-06-04)
Tracking the path from current parity to the 95% goal, based on uncapped
per-category test262 sweeps. Companion to the
scripts/parity_gap_report.pyradar and
.gapwork/PARITY_TRACKER.mdtrend.Current state
and insensitive to fixes in partially-passing categories).
(radar runs without
--auto-optimize, mis-bucketing ext-crate APIs) and~84 timeout/(no output) cases.
Cleared this cycle (single-root-cause clusters — DONE)
Array array-like receivers (−457), Set instance brand-check (−77), DataView
prototype (−44), iterator prototypes, BigInt.asIntN/asUintN, ToNumber(object)
valueOf, isPrototypeOf/Reflect coercion, uncurry-this dispatch (#4279).
Remaining work to 95% (uncapped counts, by tractability)
A. Multi-layer "branded prototype method" cluster (~1000+ cases, HIGH value)
built-ins/TypedArray+TypedArrayConstructors: 962.%TypedArray%.prototype.*methods route to the regular Array helpers, so they (a) don't brand-check the
receiver (
Int8Array.prototype.map.call([1,2])should throw TypeError) and(b) miss TA-specific
DefineOwnProperty/length-immutability + precision cases.Fix shape = give
%TypedArray%.prototypereal branded methods (like theiterator-prototype work). Largest single lever left.
B. Deep runtime semantics (fragmented, MEDIUM value, many small fixes)
GeneratorPrototype/AsyncGeneratorPrototype(~68): iterator-result{value,done}values wrong,yieldsequencing, async resumption.Promise(~?): async-test-failures (microtask/then ordering).Proxy/Reflect(~30 each): remaining trap edges.C. node-API behavioral (~340, fleet-owned)
actively worked by the contributor fleet.
D. Categorical hard-gaps (may STRUCTURALLY cap parity, per CLAUDE.md)
regexcrate limitation),console.dir/group*formatting, lone-surrogate / WTF-8 handling. These need library-level work and
may not all be reachable.
Honest assessment
95% is reachable but requires (A) the TypedArray branded-prototype rewrite, (B)
sustained generator/promise semantics grinding, (C) the fleet finishing node-API,
and (D) resolving or explicitly excepting the categorical gaps. The clean
mechanical wins are exhausted; the curve from here is slower and deeper.