Skip to content

Parity-to-95% roadmap: remaining clusters mapped (TypedArray branded methods = top lever) #4315

Description

@proggeramlug

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions