Self-contained worklist — 49 failing. Snapshot 2026-07-03 full sweep (perry 0.5.1218, node v26.3.0). Everything you need is in this issue; no history to read, no re-measure to start.
Array exotic-object length/index coupling, Array.prototype.* on non-array receivers, iterator done-flag. Crate: perry-runtime (array).
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 built-ins/Array --jobs 8 (the .failures.txt sidecar lists failures; diff before/after for zero-regression).
Failure reasons
| n |
reason |
| 11 |
Uncaught exception: Expected a TypeError to be thrown b |
| 10 |
(no output) |
| 3 |
Uncaught exception: x.toString() must return "[object A |
| 3 |
Uncaught exception: Exhausted result 'done' flag (after |
| 3 |
Uncaught exception: #3: var obj = {}; obj.reverse = Arr |
| 2 |
Uncaught exception: The value of value is expected to e |
| 2 |
Uncaught exception: Expected SameValue(«"Bike"», «undef |
| 2 |
Uncaught exception: #1: Array.prototype[1] = 1; x = [0] |
| 1 |
Uncaught exception: The value of Array.myproperty is ex |
| 1 |
TypeError: Function is not a constructor |
| 1 |
Uncaught exception: Expected SameValue(«function () { [ |
| 1 |
Uncaught exception: Array[1] Expected SameValue(«undefi |
All 49 failing cases (path — reason)
built-ins/Array/S15.4.1_A1.1_T2.js Uncaught exception: x.toString() must return "[object Array]" Expected SameValue
built-ins/Array/S15.4.2.1_A1.1_T2.js Uncaught exception: x.toString() must return "[object Array]" Expected SameValue
built-ins/Array/S15.4.3_A1.1_T1.js Uncaught exception: The value of Array.myproperty is expected to be 1 Expected S
built-ins/Array/S15.4.5.2_A3_T3.js (no output)
built-ins/Array/from/elements-deleted-after.js Uncaught exception: The value of value is expected to equal the value of array[t
built-ins/Array/from/source-array-boundary.js Uncaught exception: The value of value is expected to equal the value of array[t
built-ins/Array/length/15.4.5.1-3.d-3.js (no output)
built-ins/Array/length/S15.4.2.2_A1.1_T2.js Uncaught exception: x.toString() must return "[object Array]" Expected SameValue
built-ins/Array/length/S15.4.2.2_A2.1_T1.js (no output)
built-ins/Array/length/S15.4.5.2_A3_T4.js (no output)
built-ins/Array/of/return-a-new-array-object.js TypeError: Function is not a constructor
built-ins/Array/of/return-abrupt-from-data-property-using-proxy.js (no output)
built-ins/Array/prototype/Symbol.iterator.js Uncaught exception: Expected SameValue(«function () { [native code] }», «functio
built-ins/Array/prototype/entries/iteration-mutable.js Uncaught exception: Exhausted result `done` flag (after push) Expected SameValue
built-ins/Array/prototype/filter/15.4.4.20-9-b-6.js Uncaught exception: Array[1] Expected SameValue(«undefined», «6.99») to be true
built-ins/Array/prototype/find/array-altered-during-loop.js Uncaught exception: Expected SameValue(«"Bike"», «undefined») to be true
built-ins/Array/prototype/findIndex/array-altered-during-loop.js Uncaught exception: Expected SameValue(«"Bike"», «undefined») to be true
built-ins/Array/prototype/keys/iteration-mutable.js Uncaught exception: Exhausted result `done` flag (after push) Expected SameValue
built-ins/Array/prototype/pop/S15.4.4.6_A4_T1.js Uncaught exception: #1: Array.prototype[1] = 1; x = [0]; x.length = 2; x.pop() =
built-ins/Array/prototype/pop/set-length-array-is-frozen.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Array/prototype/pop/set-length-array-length-is-non-writable.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Array/prototype/push/S15.4.4.7_A2_T2.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Array/prototype/push/S15.4.4.7_A3.js (no output)
built-ins/Array/prototype/push/set-length-array-is-frozen.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Array/prototype/push/set-length-array-length-is-non-writable.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Array/prototype/push/set-length-zero-array-is-frozen.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Array/prototype/push/set-length-zero-array-length-is-non-writable.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-30.js Uncaught exception: testResult !== true
built-ins/Array/prototype/reverse/S15.4.4.8_A2_T1.js Uncaught exception: #3: var obj = {}; obj.reverse = Array.prototype.reverse; obj
built-ins/Array/prototype/reverse/S15.4.4.8_A2_T2.js Uncaught exception: #3: var obj = {}; obj.reverse = Array.prototype.reverse; obj
built-ins/Array/prototype/reverse/S15.4.4.8_A2_T3.js Uncaught exception: #3: var obj = {}; obj.reverse = Array.prototype.reverse; obj
built-ins/Array/prototype/reverse/S15.4.4.8_A4_T1.js Uncaught exception: #1: Array.prototype[1] = 1; x = [0]; x.length = 2; x.reverse
built-ins/Array/prototype/reverse/get_if_present_with_delete.js Uncaught exception: Indexed property '0' not present Expected SameValue(«true»,
built-ins/Array/prototype/shift/S15.4.4.9_A1.2_T1.js Uncaught exception: #9: x = []; x[0] = 0; x[3] = 3; x.shift(); x.length = 1; x.s
built-ins/Array/prototype/shift/S15.4.4.9_A4_T1.js Uncaught exception: #2: Array.prototype[1] = 1; x = [0]; x.length = 2; x.shift()
built-ins/Array/prototype/shift/set-length-array-is-frozen.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Array/prototype/shift/set-length-array-length-is-non-writable.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Array/prototype/shift/throws-when-this-value-length-is-writable-false.js Uncaught exception: Array.prototype.shift.call(function() {}) Expected a TypeErr
built-ins/Array/prototype/slice/S15.4.4.10_A3_T1.js (no output)
built-ins/Array/prototype/slice/S15.4.4.10_A3_T2.js (no output)
built-ins/Array/prototype/slice/create-non-array-invalid-len.js (no output)
built-ins/Array/prototype/slice/create-proxied-array-invalid-len.js (no output)
built-ins/Array/prototype/toLocaleString/primitive_this_value_getter.js Uncaught exception: Expected SameValue(«"object,object"», «"boolean,boolean"») t
built-ins/Array/prototype/toString/call-with-boolean.js Uncaught exception: Array.prototype.toString.call(true) must return "[object Boo
built-ins/Array/prototype/unshift/S15.4.4.13_A4_T1.js Uncaught exception: #7: Object.prototype[0] = -1; Object.prototype.length = 1; O
built-ins/Array/prototype/unshift/S15.4.4.13_A4_T2.js Uncaught exception: #3: Array.prototype[0] = 1; x = []; x.length = 1; x.unshift(
built-ins/Array/prototype/unshift/set-length-array-is-frozen.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Array/prototype/unshift/set-length-array-length-is-non-writable.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Array/prototype/values/iteration-mutable.js Uncaught exception: Exhausted result `done` flag (after push) Expected SameValue
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 — 49 failing. Snapshot 2026-07-03 full sweep (perry 0.5.1218, node v26.3.0). Everything you need is in this issue; no history to read, no re-measure to start.
Array exotic-object length/index coupling,
Array.prototype.*on non-array receivers, iterator done-flag. Crate: perry-runtime (array).Setup (any box)
Measure/verify:
scripts/test262_subset.py --root vendor/test262 --dir built-ins/Array --jobs 8(the.failures.txtsidecar lists failures; diff before/after for zero-regression).Failure reasons
All 49 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.