Skip to content

test262 eval-code annexB+language — 45 (self-contained worklist) #5841

Description

@proggeramlug

Self-contained worklist — 45 failing. Snapshot 2026-07-01 full sweep (perry 0.5.1209, node v26.3.0). Everything you need is in this issue; no history to read, no re-measure to start.

Annex B.3.3 global-eval declaration hoisting. NOTE a live regression: global-eval decls publish with the WRONG property descriptor (must be configurable per CreateGlobalVar/FunctionBinding) — f/x descriptor should be. Some dynamic-string eval is a genuine AOT limit (document those). Crate: perry-hir (lower/global_eval_hoist.rs, lower/const_fold_fn.rs).

Setup (any box)

git clone https://github.com/PerryTS/perry && cd perry
cargo build --release -p perry -p perry-runtime-static -p perry-stdlib-static
git clone --depth 1 https://github.com/tc39/test262 vendor/test262   # checkout test-compat/test262/pinned-sha.txt
# node on PATH (differential oracle). See test-compat/test262/README.md.

Measure/verify: scripts/test262_subset.py --root vendor/test262 --dir annexB/language/eval-code language/eval-code --jobs 8 (the .failures.txt sidecar lists failures; diff before/after for zero-regression).

Failure reasons

n reason
16 Uncaught exception: f descriptor should be configurable
7 Uncaught exception: Expected a ReferenceError to be thr
4 Uncaught exception: indirect eval
2 Uncaught exception: x descriptor value should be 45; x
2 Uncaught exception: x descriptor should be configurable
1 SyntaxError: Identifier 'err' has already been declared
1 Uncaught exception: Expected SameValue(«function () { [
1 Uncaught exception: Expected SameValue(«"local"», «"par
1 Uncaught exception: Expected SameValue(«"function"», «"
1 Uncaught exception: Expected true but got false
1 TypeError: Cannot convert undefined or null to object
1 Uncaught exception: binding may be deleted Expected a R

All 45 failing cases (path — reason)

annexB/language/eval-code/direct/global-block-decl-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/direct/global-switch-case-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/direct/global-switch-dflt-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/direct/var-env-lower-lex-catch-non-strict.js    SyntaxError: Identifier 'err' has already been declared
annexB/language/eval-code/indirect/global-block-decl-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/indirect/global-switch-case-eval-global-init.js    Uncaught exception: f descriptor should be configurable
annexB/language/eval-code/indirect/global-switch-dflt-eval-global-init.js    Uncaught exception: f descriptor should be configurable
language/eval-code/direct/arrow-fn-body-cntns-arguments-func-decl-arrow-func-declare-arguments-assign-incl-def-param-arrow-arguments.js    Uncaught exception: Expected SameValue(«function () { [native code] }», «"param"
language/eval-code/direct/arrow-fn-body-cntns-arguments-var-bind-arrow-func-declare-arguments-assign-incl-def-param-arrow-arguments.js    Uncaught exception: Expected SameValue(«"local"», «"param"») to be true
language/eval-code/direct/lex-env-distinct-cls.js    Uncaught exception: Expected SameValue(«"function"», «"undefined"») to be true
language/eval-code/direct/lex-env-no-init-cls.js    Uncaught exception: Expected a ReferenceError to be thrown but no exception was 
language/eval-code/direct/lex-env-no-init-const.js    Uncaught exception: Expected a ReferenceError to be thrown but no exception was 
language/eval-code/direct/lex-env-no-init-let.js    Uncaught exception: Expected a ReferenceError to be thrown but no exception was 
language/eval-code/direct/non-definable-global-var.js    Uncaught exception: Expected true but got false
language/eval-code/direct/super-prop-method.js    TypeError: Cannot convert undefined or null to object
language/eval-code/direct/var-env-func-init-local-new-delete.js    Uncaught exception: binding may be deleted Expected a ReferenceError to be throw
language/eval-code/direct/var-env-func-non-strict.js    Uncaught exception: Expected SameValue(«"undefined"», «"function"») to be true
language/eval-code/direct/var-env-var-init-global-exstng.js    Uncaught exception: x descriptor value should be 45; x value should be 45
language/eval-code/direct/var-env-var-init-global-new.js    Uncaught exception: x descriptor should be configurable
language/eval-code/direct/var-env-var-init-local-exstng.js    Uncaught exception: Expected SameValue(«undefined», «44443») to be true
language/eval-code/direct/var-env-var-init-local-new-delete.js    Uncaught exception: Expected a ReferenceError to be thrown but no exception was 
language/eval-code/indirect/always-non-strict.js    SyntaxError: Function constructor: invalid function body
language/eval-code/indirect/global-env-rec-catch.js    Uncaught exception: indirect eval
language/eval-code/indirect/global-env-rec-eval.js    Uncaught exception: Expected true but got undefined
language/eval-code/indirect/global-env-rec-fun.js    Uncaught exception: indirect eval
language/eval-code/indirect/global-env-rec-with.js    Uncaught exception: indirect eval
language/eval-code/indirect/global-env-rec.js    Uncaught exception: indirect eval
language/eval-code/indirect/lex-env-heritage.js    Uncaught exception: non strict mode Expected SameValue(«"inside"», «"outside"») 
language/eval-code/indirect/lex-env-no-init-cls.js    Uncaught exception: Expected a ReferenceError to be thrown but no exception was 
language/eval-code/indirect/lex-env-no-init-const.js    Uncaught exception: Expected a ReferenceError to be thrown but no exception was 
language/eval-code/indirect/lex-env-no-init-let.js    Uncaught exception: Expected a ReferenceError to be thrown but no exception was 
language/eval-code/indirect/var-env-global-lex-non-strict.js    Uncaught exception: Expected SameValue(«undefined», «undefined») to be false
language/eval-code/indirect/var-env-var-init-global-exstng.js    Uncaught exception: x descriptor value should be 45; x value should be 45
language/eval-code/indirect/var-env-var-init-global-new.js    Uncaught exception: x descriptor should be configurable
language/eval-code/indirect/var-env-var-non-strict.js    ReferenceError: x is not defined

Workflow

Pick a coherent single-root subcluster, localize (cargo run --release -- f.ts --trace hir --focus <fn> / --trace llvm), fix, verify listed cases pass AND re-run the slice for zero regressions. Code-only PR (no Cargo.toml/Cargo.lock version bump, no CLAUDE.md Current-Version, no CHANGELOG — maintainer folds metadata). cargo fmt --all -- --check + bash scripts/check_file_size.sh must pass (files < 2000 lines). Reference this issue. Never reference internal infrastructure hostnames.

Metadata

Metadata

Assignees

No one assigned

    Labels

    parityCompatibility gap with Node.js, ECMAScript, or the supported ecosystem

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions