Skip to content

Commit e9e94ab

Browse files
committed
test(test262): admit iterator helpers globally
1 parent d4f3d37 commit e9e94ab

23 files changed

Lines changed: 5846 additions & 104 deletions

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# The fixed-width Test262 TSV keeps trailing tabs for empty final columns.
22
tests/test262-smoke-baseline.tsv whitespace=-blank-at-eol
3+
tests/test262-iterator-helpers-global-transitions.tsv whitespace=-blank-at-eol
34
tests/test262-typed-array-global-r3bd-r3be-transitions.tsv whitespace=-blank-at-eol

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@ QuickJS-shaped `find`/`findIndex`/`findLast`/`findLastIndex`,
1010
`map`/`filter` and `slice`/`subarray`, plus non-species `with` and
1111
`toReversed`, dedicated `join`/`toLocaleString`, inherited `toString`, and
1212
QuickJS-shaped `sort`/`toSorted`, certified `entries`/`keys` iterators, and
13-
pinned-QuickJS-certified static `of` and `from`. The global `TypedArray`,
14-
`Proxy`, and `optional-chaining` feature tags are now admitted through
15-
checksum-bound audits. The complete conservative vector is 56,526/102,037
16-
with 57,045 runnable variants. Uint8Array codecs, modules,
13+
pinned-QuickJS-certified static `of` and `from`. The 83-tag global Test262
14+
profile now admits `TypedArray`, `Proxy`, `optional-chaining`, and
15+
`iterator-helpers` through checksum-bound audits. The complete conservative
16+
vector is 57,602/102,037 with 58,121 runnable variants. Uint8Array codecs,
17+
modules,
1718
SharedArrayBuffer/Atomics, and broad built-in coverage remain incomplete.
1819
Pinned QuickJS is the test oracle, never a product dependency; detailed
1920
bookkeeping lives in the status documents.

compat/test262-oxide.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ exponentiation
6666
for-in-order
6767
generators
6868
hashbang
69+
iterator-helpers
6970
iterator-sequencing
7071
json-parse-with-source
7172
let

compat/upstream.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ config_sha256 = "79c64748ff1182baf5433d0a8378e3666738a785d02faf71f0d459ed42ae897
1919
test_count = 53125
2020
metadata_records_sha256 = "a37219960819e56a5c5c1723d31d6a33095c778bf5347385187fde96f927a06a"
2121
oxide_profile = "compat/test262-oxide.conf"
22-
oxide_profile_sha256 = "9b155f41c9c7541423c45b57da1bb805d6e7cf350ec7d6442d6700424afdbafc"
22+
oxide_profile_sha256 = "8a3b253f6d2a24b18f9bec66628ba5aec3fb337d677c60bfde37c4c3a33d3910"
2323
expected_errors = "test262_errors.txt"
2424

2525
[test262_es5]

docs/status.md

Lines changed: 74 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,79 @@ Last audited: 2026-07-31. The completion definition remains
44
[`parity.md`](parity.md); this file records progress and must not be used to
55
claim full parity.
66

7-
## R3bm Iterator Helper Proxy-closure refresh
7+
## R3bn global Iterator Helpers admission
8+
9+
R3bn adds exactly `iterator-helpers` to the checksum-pinned global Test262
10+
profile after the R3bm focused gate closed its source-and-harness
11+
dependencies. The profile now contains 83 reviewed feature tags and the same
12+
828 audited negative paths; its SHA-256 is
13+
`8a3b253f6d2a24b18f9bec66628ba5aec3fb337d677c60bfde37c4c3a33d3910`.
14+
15+
The exhaustive tagged population contains 567 paths / 1,134 variants. Its
16+
partition is exact: 538 paths / 1,076 variants are activated, 13 paths / 26
17+
variants remain `unsupported-feature` only because they also require
18+
`globalThis`, and 16 paths / 32 variants remain behind the audited host/config
19+
ledger. All 1,076 activated variants pass. The tagged candidate TSV/JSONL
20+
SHA-256 values are
21+
`21e6b0be9aa662c485176690d5665bc6f79687fc7bf4ae4ddf6335ee419a8f5d`
22+
and
23+
`d62917441f6a7c6a5163316d1c09ccf4540ff54b4a6599a58285d0f34f01a66b`.
24+
The exact transition receipt and data SHA-256 values are
25+
`97d980227d3f9913d6fedb6e97deec7ae0b1db3df3fefe01b74d96320c775d4f`
26+
and
27+
`84cdc0c565ddff0257ff1aff6c29e0297f8d3c3afca72015cfd17d6192e5b108`.
28+
29+
The complete 102,037-key join records exactly 1,076
30+
`unsupported-feature -> pass` transitions and 26 diagnostic-detail-only
31+
changes; all 32 host/config variants and all 100,903 non-Iterator-Helper
32+
variants are unchanged. No previous pass regresses. The canonical vector now
33+
has 57,602 passes and 58,121 runnable variants: 56.45% raw, a 68.93% lower
34+
bound after the 18,475 pinned QuickJS target exclusions, and 99.19% among
35+
58,072 variants with a non-unsupported observed outcome. Its canonical full
36+
TSV/JSONL SHA-256 values are
37+
`7b5bb9d188473f7f7298e131da405f7e77e66c6eddbf10d14949722bf275c6fc`
38+
and
39+
`869d9150a532a72c02e37eae9d1d3ead2c88c8384be23e5222efe055e99a18a2`.
40+
An independent canonical two-worker repeat is byte-identical.
41+
42+
This is a profile and evidence milestone with no production runtime-semantics
43+
change, not a Feature Parity completion claim. `globalThis` and the audited
44+
host/config capabilities remain explicit follow-up frontiers.
45+
46+
## R3bm historical Iterator Helper Proxy-closure refresh
847

9-
R3bm keeps the complete 567-path `iterator-helpers` population and its raw
10-
44-path dependency union explicit. That union partitions into the complete
48+
R3bm kept the complete 567-path `iterator-helpers` population and its raw
49+
44-path dependency union explicit. That union partitioned into the complete
1150
28-path source-and-harness Proxy closure and 16 host/config paths. R3bl had
12-
already promoted the exact 14-path optional-chaining adjacency; R3bm promotes
51+
already promoted the exact 14-path optional-chaining adjacency; R3bm promoted
1352
the remaining 11 source-Proxy and three harness-Proxy paths. The refreshed
14-
manifest therefore contains 551 paths / 1,102 sloppy-strict variants. Pinned
15-
QuickJS passes all 551 paths in each mode, Oxide passes all 1,102 variants,
16-
and independent 8/8/5-worker Oxide reports are byte-identical.
53+
manifest therefore contained 551 paths / 1,102 sloppy-strict variants. Pinned
54+
QuickJS passed all 551 paths in each mode, Oxide passed all 1,102 variants,
55+
and independent 8/8/5-worker Oxide reports were byte-identical.
1756

18-
The 16-path / 32-variant deferred ledger is now exactly 11
19-
`$262.createRealm` paths, four `$262.IsHTMLDDA` paths, and one pinned
20-
QuickJS-config exclusion. Its variant-key SHA-256 is
57+
The 16-path / 32-variant deferred ledger was exactly 11 `$262.createRealm`
58+
paths, four `$262.IsHTMLDDA` paths, and one pinned QuickJS-config exclusion.
59+
Its variant-key SHA-256 was
2160
`5f9105c90732493741b8b652f0a5ad74f775740706d847171c96617fdd23b760`.
2261

23-
The immutable scoped profile still contains 76 feature tags and 802 audited
24-
negative paths. Its complete-file SHA-256 is
62+
The immutable scoped profile contained 76 feature tags and 802 audited
63+
negative paths. Its complete-file SHA-256 was
2564
`a0ed7fa1a5cd46c5c47895d671c0078434635ae41f0a420e66573dcb86d18a7f`.
26-
The manifest path-stream, complete-file, variant-key, TSV, and JSONL hashes are
65+
The manifest path-stream, complete-file, variant-key, TSV, and JSONL hashes
66+
were
2767
`32b3a539828fe72e32cb28bed6b6942749ac1aa6402a04bb809126da0a2cea4c`,
2868
`6db8a38003ba95245dde0e0559b64a75c1a0215e610408811174f482363b729c`,
2969
`cc432f145a9f12ad959f0b856c5b91c73a1b9ce0ebb3fd0c9cc5a18ac0f2f841`,
3070
`47b725903172118e8fbde4ba8f6d87343d44fa280889630e1ee5d620634154e5`,
3171
and
3272
`9c55978a8b8200be94617eb5c80ea97abac7172b93599fdd31769df6a7679d08`.
3373

34-
The independent Iterator sequencing gate remains 64/64 in both engines. Both
35-
Iterator scripts now authenticate immutable historical profile sections
36-
instead of comparing against the growing live global profile. R3bm is a
37-
focused evidence refresh, not global `iterator-helpers` admission: the
38-
complete vector remains at R3bj's 56,526/102,037 passes and 57,045 runnable
39-
variants, with canonical TSV/JSONL hashes
74+
The independent Iterator sequencing gate remained 64/64 in both engines. Both
75+
Iterator scripts authenticated immutable historical profile sections instead
76+
of comparing against the growing live global profile. R3bm was a focused
77+
evidence refresh, not global `iterator-helpers` admission: its complete vector
78+
remained at R3bj's 56,526/102,037 passes and 57,045 runnable variants, with
79+
canonical TSV/JSONL hashes
4080
`84c15d4a25343e1d306e17f431e515993abe09db76590920539eefe93d6fb3eb`
4181
and
4282
`96ebd4a8f51001b403e88d19c128bebb92b74bb9abf1e45c832b187924c635fd`.
@@ -238,7 +278,7 @@ workstream. Build and architecture details live in
238278
Unicode version, and Test262 commit are pinned in `compat/upstream.toml`.
239279
- The process-isolated Rust Test262 runner now saves a complete conservative
240280
outcome vector for all 102,037 sloppy/strict variants. A checksum-pinned
241-
capability profile now admits 82 reviewed feature tags and 828 exact audited
281+
capability profile now admits 83 reviewed feature tags and 828 exact audited
242282
negative-test paths. Those fail-closed canaries and the source/metadata host
243283
requirements keep unsupported grammar,
244284
features, modes, and `$262` hooks from becoming false passes. Bounded workers
@@ -281,19 +321,22 @@ workstream. Build and architecture details live in
281321
gate. R3bm then promotes the remaining 14 source-and-harness Proxy paths,
282322
completing the 28-path Proxy closure. The gate now passes 551 paths / 1,102
283323
variants in both engines while retaining exactly 16 host/config deferrals.
324+
R3bn then admits exactly `iterator-helpers` into the global profile: 1,076
325+
variants activate and pass, 26 remain fail-closed behind `globalThis`, and
326+
all 32 host/config variants remain unchanged.
284327
The cumulative
285328
TypedArray scoped gate still
286329
passes 2,254 paths / 4,463 variants in both engines. The current canonical
287-
measurement has 56,526 passes and 57,045 runnable variants:
288-
55.40% raw,
289-
a 67.65% lower bound after the 18,475 pinned QuickJS target exclusions, or
290-
99.18% among the 56,996 variants with a non-unsupported observed outcome. It
330+
measurement has 57,602 passes and 58,121 runnable variants:
331+
56.45% raw,
332+
a 68.93% lower bound after the 18,475 pinned QuickJS target exclusions, or
333+
99.19% among the 58,072 variants with a non-unsupported observed outcome. It
291334
records 11 parse failures, 400 runtime failures, and 57 harness failures.
292-
The exact R3bj join preserves all 102,037 keys with no previous-pass
335+
The exact R3bn join preserves all 102,037 keys with no previous-pass
293336
regression. Current full TSV/JSONL SHA-256 values are
294-
`84c15d4a25343e1d306e17f431e515993abe09db76590920539eefe93d6fb3eb`
337+
`7b5bb9d188473f7f7298e131da405f7e77e66c6eddbf10d14949722bf275c6fc`
295338
and
296-
`96ebd4a8f51001b403e88d19c128bebb92b74bb9abf1e45c832b187924c635fd`.
339+
`869d9150a532a72c02e37eae9d1d3ead2c88c8384be23e5222efe055e99a18a2`.
297340
Uint8Array codecs, modules, SharedArrayBuffer/Atomics, and broad built-in
298341
coverage remain explicit frontiers.
299342
The fixed smoke now
@@ -2511,9 +2554,10 @@ workstream. Build and architecture details live in
25112554
At that checkpoint the milestone remained scoped because Proxy and the
25122555
required host hooks were separate frontiers, so the conservative global
25132556
vector stayed byte-identical at 43,521/102,037 passes. R3bl later promoted
2514-
the 14-path optional adjacency; R3bm is the current focused gate, completing
2515-
the 28-path Proxy closure and passing 551 paths / 1,102 variants while still
2516-
withholding global `iterator-helpers` admission.
2557+
the 14-path optional adjacency, and R3bm completed the 28-path Proxy closure
2558+
while passing 551 paths / 1,102 variants. R3bn later admitted exactly
2559+
`iterator-helpers` globally; the 13 `globalThis` paths and 16 host/config
2560+
paths remain fail-closed.
25172561
`Iterator.concat` remains in the separate R3w `iterator-sequencing`
25182562
milestone immediately below.
25192563

0 commit comments

Comments
 (0)