Skip to content

test262 annexB/language tail — 303 fails after #5319 (B.3.3 residual + missed-negatives + dynamic eval) #5346

@proggeramlug

Description

@proggeramlug

Follow-up to #5297 (closed by #5319, which took annexB 50%→66.5%). Remaining annexB = 645/970 = 66.5%, 325 fails (303 language, 22 built-ins).

Reasons

  • 94× An initialized binding is not ...⚠️ likely a feat(hir): Annex B B.3.3 sloppy block-level function hoisting (#5297) #5319 B.3.3 residual: the sloppy block-function hoisting introduced/left an initialized-binding edge. Investigate first — may be a quick completion of the B.3.3 work.
  • 72× eval() cannot run in an ahead-of-time compiler — dynamic (runtime-built-string) eval; PERRY_ALLOW_EVAL handles constant eval but these are genuinely dynamic → likely a real AOT limit (document or scope).
  • 72× "Perry ran clean; Node rejected (missed negative)" — Annex B early-error semantics (legacy octal in strict, etc.) Perry is too lenient on.
  • 14× block-scoping SameValue, 8× value is not a function.

Suggested order

  1. The 94 'initialized binding' cluster (finish feat(hir): Annex B B.3.3 sloppy block-level function hoisting (#5297) #5319 B.3.3). 2. The 72 missed-negatives (Annex B early errors). 3. Triage the 72 dynamic-eval as AOT-limit vs fixable.

Measure: scripts/test262_subset.py --dir annexB --all-features (node v26). Prompt scaffold: ~/perry-bench/prompts/test262-annexb-language-b33.md.

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