Current state — 33 failing. Snapshot from the 2026-06-29 full sweep (perry 0.5.1208, node v26.3.0). Supersedes the original body; the complete current failing-test list is inline below — no re-run needed to start.
Residual of the #5579 regression. Annex B.3.3 global-eval function-declaration hoisting for direct eval and declaration-bearing bodies (binding is not reinitialized / f should be an own property). The structurally-harder cases need creating a new caller-visible binding from inside the eval-fold IIFE.
Failure reasons
| n |
reason |
| 7 |
Uncaught exception: Expected a ReferenceError to be thrown but no exce |
| 4 |
Uncaught exception: indirect eval |
| 3 |
Uncaught exception: Expected true but got false |
| 3 |
Uncaught exception: Expected a TypeError to be thrown but no exception |
| 2 |
Uncaught exception: Expected SameValue(«"undefined"», «"function"») to |
| 2 |
Uncaught exception: x descriptor value should be 45; x value should be |
| 1 |
SyntaxError: Identifier 'err' has already been declared |
| 1 |
Uncaught exception: Expected SameValue(«function () { [native code] }» |
| 1 |
Uncaught exception: Expected SameValue(«"local"», «"param"») to be tru |
| 1 |
Uncaught exception: Expected SameValue(«"function"», «"undefined"») to |
| 1 |
TypeError: Cannot convert undefined or null to object |
| 1 |
Uncaught exception: binding may be deleted Expected a ReferenceError t |
All 33 failing tests (path — reason)
full list — click to expand
annexB/language/eval-code/direct/var-env-lower-lex-catch-non-strict.js SyntaxError: Identifier 'err' has already been declared
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"») to be t
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 thrown at
language/eval-code/direct/lex-env-no-init-const.js Uncaught exception: Expected a ReferenceError to be thrown but no exception was thrown at
language/eval-code/direct/lex-env-no-init-let.js Uncaught exception: Expected a ReferenceError to be thrown but no exception was thrown at
language/eval-code/direct/non-definable-global-function.js Uncaught exception: Expected true but got false
language/eval-code/direct/non-definable-global-generator.js Uncaught exception: Expected true but got false
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 thrown but no e
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; x descriptor sh
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 thrown at
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"») to be true
language/eval-code/indirect/lex-env-no-init-cls.js Uncaught exception: Expected a ReferenceError to be thrown but no exception was thrown at
language/eval-code/indirect/lex-env-no-init-const.js Uncaught exception: Expected a ReferenceError to be thrown but no exception was thrown at
language/eval-code/indirect/lex-env-no-init-let.js Uncaught exception: Expected a ReferenceError to be thrown but no exception was thrown at
language/eval-code/indirect/non-definable-global-function.js Uncaught exception: Expected a TypeError to be thrown but no exception was thrown at all
language/eval-code/indirect/non-definable-global-generator.js Uncaught exception: Expected a TypeError to be thrown but no exception was thrown at all
language/eval-code/indirect/non-definable-global-var.js Uncaught exception: Expected a TypeError to be thrown but no exception was thrown at all
language/eval-code/indirect/var-env-func-non-strict.js Uncaught exception: Expected SameValue(«"undefined"», «"function"») to be true
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; x descriptor sh
language/eval-code/indirect/var-env-var-non-strict.js ReferenceError: x is not defined
Reproduce
scripts/test262_subset.py --root vendor/test262 --dir annexB language/eval-code --jobs 6
Each path is under vendor/test262/test/; assemble harness + case per test-compat/test262/README.md to run one under perry compile.
Current state — 33 failing. Snapshot from the 2026-06-29 full sweep (perry 0.5.1208, node v26.3.0). Supersedes the original body; the complete current failing-test list is inline below — no re-run needed to start.
Residual of the #5579 regression. Annex B.3.3 global-eval function-declaration hoisting for direct eval and declaration-bearing bodies (
binding is not reinitialized/f should be an own property). The structurally-harder cases need creating a new caller-visible binding from inside the eval-fold IIFE.Failure reasons
All 33 failing tests (path — reason)
full list — click to expand
Reproduce
Each path is under
vendor/test262/test/; assemble harness + case pertest-compat/test262/README.mdto run one underperry compile.