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.
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)
Measure/verify:
scripts/test262_subset.py --root vendor/test262 --dir annexB/language/eval-code language/eval-code --jobs 8(the.failures.txtsidecar lists failures; diff before/after for zero-regression).Failure reasons
All 45 failing cases (path — reason)
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.shmust pass (files < 2000 lines). Reference this issue. Never reference internal infrastructure hostnames.