Skip to content

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

@proggeramlug

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions