Test262 survey (static-adapted-v5): per-chapter results on main vs integration branch
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 20/100
- Tipo di issue
- Documentazione
- Chiarezza
- Da chiarire
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, typescript
Direzione di ricerca
The issue reports Test262 results and methodology but does not name project files or a specific change to make. Start by reading the Test262 runner documentation and the tests/test262 entry point mentioned in the report. The issue does not define a code change or completion criteria, so clarify the intended follow-up before taking it on.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
This is a full run of the pinned Test262 snapshot through the scriptc Test262 runner (tests/test262, profile static-adapted-v5). It covers main and an integration branch that combines main with the currently open PRs. Every admitted variant was compiled and executed on both. These are adapted-profile results, not whole-suite ECMAScript conformance. Pass counts describe the selected adapted profile only. Exclusions are runner capabilities, not scriptc implementation classifications.
Headline numbers for main:
- 37.5% of admitted variants pass (28,066 of 74,793), which is 27.3% of all 102,956 variants in the snapshot.
- 5,131 wrong results (6.9% of admitted): assertion failures and unexpected exceptions that are not refusals, plus 6 crashes. This is the real spec-divergence figure.
- 41,367 refusals (55.3% of admitted): explicit compile, runtime and harness refusals, plus 5,168 runner
failresults that are refusals underneath (see "Runner issues" below). - 229 other outcomes: 220 internal compiler errors, 7 build errors, 2 timeouts.
The runner reports 10,293 fail + 6 crash. About half of those fail results are refusals rather than wrong results; the classification is explained under Methodology.
On the integration branch, passes rise by 189 to 37.8%, but wrong results rise by 729 to 5,860. The extra wrong results come mostly from built-in members that main refuses with SC2020 and that now compile but read as undefined (details below).
Methodology
- Test262: tc39/test262 at
7ab7fafa0003f73fc85c1b95d88094d33f7eb8bd, fetched withpnpm test:test262:fetch(snapshot digest verified). 53,597 test files, which expand to 102,956 variants: sloppy and strict for scripts without a flag, plus module and raw variants. - scriptc:
mainatab70d3d36(2026-10-19).- The integration branch is
mainatbf2afee9fplus the open PRs. It lacks onlymain's most recent commit (#1432). - Both trees were built fresh, including the LLVM helper and the runtime pack.
- Runner:
pnpm test:test262 --root <snapshot>, profilestatic-adapted-v5, default backend policy. The actual backend was LLVM for every variant that produced a binary (48,689 on main, 55,618 on the integration branch). No sanitizers. - Timeouts: runner defaults, 120 s per compile and 10 s per program.
- Host: Linux x86_64, 8 vCPU / 16 GB, Node 24.15, LLVM 22.1.8.
- Execution:
- Variants were split 20 ways with
SCRIPTC_TEST_SHARD=i/20, using--workers 8and--journal. - Some shards were interrupted by dropped remote sessions. Their remaining variants were rerun individually with the unmodified
runSource/matchesParseNegativelogic, so the union covers every admitted variant exactly once on both trees. - Nothing was sampled.
- Variants were split 20 ways with
- Exclusions (28,163 variants, 27.4%) come from the runner's capability checks. They are the same on both trees:
harness-includes(15,338): the test includes a harness file other thancompareArray.js/propertyHelper.js. The largest aretemporalHelpers.js5,618,testTypedArray.js4,128,isConstructor.js1,288,regExpUtils.js1,172 andasyncHelpers.js756.harness:assert-surface3,780.host:eval2,183,host:script-environment1,548,host:Function1,372 andhost:arguments1,268.harness:propertyHelper-surface643,execution:module596,host:$262540 andharness:Test262Error-surface387.- Negative parse tests in module or raw variants 227; runtime negatives 66 and resolution negatives 34.
host:globalThis144,host:agents18, and smaller reasons.
- Outcome classification:
- The runner's own categories (pass, compile refusal, runtime refusal, harness refusal,
fail, build error, internal compiler error, crash, timeout) are reported unchanged. - The runner's
failcategory mixes real divergences with refusals. To separate them, every non-refusal-shapedfailwas rerun with a scratch copy of the host harness that prints the error caught byassert.throws, the reason passed to$DONE, and the values compared byassert.sameValue/notSameValue. Runner semantics were otherwise unchanged; the rerun outcomes matched the original runs. - A
failcounts as a refusal in three cases:- Its stderr is an unlocated scriptc refusal (
… is not supported yet,[SCnnnn]without a source location). - The error caught by
assert.throwsor passed to$DONEis a scriptc refusal. - It is
ReferenceError: Temporal is not defined. On the integration branch, this replacesmain's compile refusal "Cannot find name 'Temporal'".
- Its stderr is an unlocated scriptc refusal (
- Everything else in
fail, plus crashes, is a wrong result.
- The runner's own categories (pass, compile refusal, runtime refusal, harness refusal,
Totals
| outcome | main | integration branch |
|---|---|---|
| variants (total) | 102,956 | 102,956 |
| excluded | 28,163 | 28,163 |
| admitted | 74,793 | 74,793 |
| pass | 28,066 (37.5% adm. / 27.3% total) | 28,255 (37.8% / 27.4%) |
| compile refusal | 18,660 | 11,731 |
| runtime refusal (located fence) | 15,154 | 15,249 |
| harness refusal (reference assertion) | 2,385 | 2,427 |
runner fail |
10,293 | 16,890 |
| — of which refusal: unlocated fence | 1,918 | 2,112 |
| — of which refusal: caught by assert.throws / $DONE | 3,250 | 3,188 |
— of which refusal: Temporal is not defined |
0 | 5,736 |
| — of which wrong result | 5,125 | 5,854 |
| crash | 6 | 6 |
| wrong results (fail-wrong + crash) | 5,131 (6.9%) | 5,860 (7.8%) |
| internal compiler error | 220 | 220 |
| build error | 7 | 7 |
| timeout | 2 | 8 |
Per-chapter results: requested chapters
Columns are variant counts. "Refused" covers all refusal kinds above; "wrong" is wrong results.
| chapter | total | excluded | admitted | pass main | pass integration | refused main | refused integration | wrong main | wrong integration | pass % adm. main | pass % total main |
|---|---|---|---|---|---|---|---|---|---|---|---|
| built-ins/Array | 6117 | 928 | 5189 | 2837 | 2841 | 1861 | 1850 | 483 | 490 | 54.7% | 46.4% |
| built-ins/String | 2443 | 342 | 2101 | 870 | 870 | 1093 | 1077 | 138 | 154 | 41.4% | 35.6% |
| built-ins/JSON | 330 | 60 | 270 | 134 | 134 | 98 | 98 | 36 | 36 | 49.6% | 40.6% |
| built-ins/Promise | 1458 | 443 | 1015 | 148 | 150 | 730 | 644 | 137 | 215 | 14.6% | 10.2% |
| built-ins/Object | 6802 | 1078 | 5724 | 2720 | 2730 | 2421 | 2247 | 583 | 747 | 47.5% | 40.0% |
| built-ins/Map | 405 | 61 | 344 | 119 | 123 | 209 | 163 | 16 | 58 | 34.6% | 29.4% |
| built-ins/Set | 764 | 65 | 699 | 189 | 193 | 502 | 456 | 8 | 50 | 27.0% | 24.7% |
| built-ins/Math | 654 | 82 | 572 | 420 | 420 | 14 | 14 | 138 | 138 | 73.4% | 64.2% |
| built-ins/Number | 680 | 64 | 616 | 348 | 348 | 128 | 128 | 140 | 140 | 56.5% | 51.2% |
| built-ins/RegExp | 3756 | 1425 | 2331 | 934 | 946 | 1273 | 1119 | 124 | 266 | 40.1% | 24.9% |
| built-ins/Date | 1188 | 300 | 888 | 146 | 216 | 708 | 510 | 34 | 162 | 16.4% | 12.3% |
| built-ins/Symbol | 192 | 54 | 138 | 20 | 20 | 78 | 78 | 40 | 40 | 14.5% | 10.4% |
| built-ins/Function | 893 | 713 | 180 | 40 | 40 | 117 | 117 | 23 | 23 | 22.2% | 4.5% |
| built-ins/Error | 186 | 84 | 102 | 22 | 22 | 72 | 72 | 8 | 8 | 21.6% | 11.8% |
| built-ins/TypedArray | 2890 | 2858 | 32 | 2 | 2 | 30 | 30 | 0 | 0 | 6.3% | 0.1% |
| built-ins/TypedArrayConstructors | 1446 | 1306 | 140 | 78 | 78 | 48 | 48 | 14 | 14 | 55.7% | 5.4% |
| built-ins/Reflect | 306 | 82 | 224 | 40 | 40 | 156 | 156 | 28 | 28 | 17.9% | 13.1% |
| built-ins/Proxy | 607 | 141 | 466 | 150 | 150 | 298 | 298 | 18 | 18 | 32.2% | 24.7% |
| language/expressions | 21286 | 2926 | 18360 | 8208 | 8218 | 8898 | 8884 | 1159 | 1163 | 44.7% | 38.6% |
| language/statements | 18015 | 2249 | 15766 | 6182 | 6184 | 8365 | 8347 | 1101 | 1117 | 39.2% | 34.3% |
| language/types | 211 | 30 | 181 | 132 | 132 | 45 | 47 | 4 | 2 | 72.9% | 62.6% |
| language/literals | 1041 | 53 | 988 | 939 | 939 | 49 | 49 | 0 | 0 | 95.0% | 90.2% |
| language/function-code | 281 | 102 | 179 | 136 | 136 | 26 | 26 | 17 | 17 | 76.0% | 48.4% |
| language/arguments-object | 460 | 95 | 365 | 281 | 299 | 84 | 66 | 0 | 0 | 77.0% | 61.1% |
| language/block-scope | 287 | 2 | 285 | 130 | 130 | 155 | 155 | 0 | 0 | 45.6% | 45.3% |
| language/computed-property-names | 96 | 4 | 92 | 32 | 32 | 60 | 60 | 0 | 0 | 34.8% | 33.3% |
| language/destructuring | 37 | 2 | 35 | 30 | 30 | 1 | 1 | 4 | 4 | 85.7% | 81.1% |
| language/rest-parameters | 22 | 0 | 22 | 12 | 12 | 10 | 10 | 0 | 0 | 54.5% | 54.5% |
Per-chapter results: all top-level chapters with at least 100 admitted variants
| chapter | total | admitted | pass main | pass integration | Δ pass | refused main | refused integration | wrong main | wrong integration | Δ wrong |
|---|---|---|---|---|---|---|---|---|---|---|
| all | 102956 | 74793 | 28066 (37.5%) | 28255 (37.8%) | +189 | 41367 | 40443 | 5131 | 5860 | +729 |
| language | 44497 | 37601 | 17260 (45.9%) | 17290 (46.0%) | +30 | 17834 | 17786 | 2294 | 2312 | +18 |
| built-ins | 47337 | 31415 | 10373 (33.0%) | 10511 (33.5%) | +138 | 18458 | 17653 | 2574 | 3235 | +661 |
| intl402 | 6730 | 3494 | 16 (0.5%) | 16 (0.5%) | 0 | 3438 | 3438 | 40 | 40 | 0 |
| staging | 2783 | 1587 | 337 (21.2%) | 358 (22.6%) | +21 | 1099 | 1048 | 145 | 175 | +30 |
| annexB | 1377 | 674 | 68 (10.1%) | 68 (10.1%) | 0 | 530 | 510 | 76 | 96 | +20 |
| harness | 232 | 22 | 12 (54.5%) | 12 (54.5%) | 0 | 8 | 8 | 2 | 2 | 0 |
| language/expressions | 21286 | 18360 | 8208 (44.7%) | 8218 (44.8%) | +10 | 8898 | 8884 | 1159 | 1163 | +4 |
| language/statements | 18015 | 15766 | 6182 (39.2%) | 6184 (39.2%) | +2 | 8365 | 8347 | 1101 | 1117 | +16 |
| built-ins/Object | 6802 | 5724 | 2720 (47.5%) | 2730 (47.7%) | +10 | 2421 | 2247 | 583 | 747 | +164 |
| built-ins/Temporal | 9210 | 5602 | 0 (0.0%) | 0 (0.0%) | 0 | 5602 | 5602 | 0 | 0 | 0 |
| built-ins/Array | 6117 | 5189 | 2837 (54.7%) | 2841 (54.8%) | +4 | 1861 | 1850 | 483 | 490 | +7 |
| built-ins/RegExp | 3756 | 2331 | 934 (40.1%) | 946 (40.6%) | +12 | 1273 | 1119 | 124 | 266 | +142 |
| built-ins/String | 2443 | 2101 | 870 (41.4%) | 870 (41.4%) | 0 | 1093 | 1077 | 138 | 154 | +16 |
| intl402/Temporal | 4058 | 1428 | 0 (0.0%) | 0 (0.0%) | 0 | 1428 | 1428 | 0 | 0 | 0 |
| built-ins/Promise | 1458 | 1015 | 148 (14.6%) | 150 (14.8%) | +2 | 730 | 644 | 137 | 215 | +78 |
| language/literals | 1041 | 988 | 939 (95.0%) | 939 (95.0%) | 0 | 49 | 49 | 0 | 0 | 0 |
| built-ins/Iterator | 1308 | 966 | 108 (11.2%) | 108 (11.2%) | 0 | 732 | 732 | 126 | 126 | 0 |
| built-ins/Date | 1188 | 888 | 146 (16.4%) | 216 (24.3%) | +70 | 708 | 510 | 34 | 162 | +128 |
| built-ins/DataView | 1122 | 730 | 246 (33.7%) | 246 (33.7%) | 0 | 372 | 372 | 112 | 112 | 0 |
| built-ins/Set | 764 | 699 | 189 (27.0%) | 193 (27.6%) | +4 | 502 | 456 | 8 | 50 | +42 |
| built-ins/Number | 680 | 616 | 348 (56.5%) | 348 (56.5%) | 0 | 128 | 128 | 140 | 140 | 0 |
| built-ins/Math | 654 | 572 | 420 (73.4%) | 420 (73.4%) | 0 | 14 | 14 | 138 | 138 | 0 |
| language/identifiers | 535 | 535 | 503 (94.0%) | 503 (94.0%) | 0 | 32 | 32 | 0 | 0 | 0 |
| built-ins/Proxy | 607 | 466 | 150 (32.2%) | 150 (32.2%) | 0 | 298 | 298 | 18 | 18 | 0 |
| intl402/DateTimeFormat | 490 | 406 | 0 (0.0%) | 0 (0.0%) | 0 | 404 | 404 | 2 | 2 | 0 |
| intl402/NumberFormat | 502 | 366 | 0 (0.0%) | 0 (0.0%) | 0 | 360 | 360 | 6 | 6 | 0 |
| language/arguments-object | 460 | 365 | 281 (77.0%) | 299 (81.9%) | +18 | 84 | 66 | 0 | 0 | 0 |
| built-ins/ArrayBuffer | 442 | 356 | 84 (23.6%) | 84 (23.6%) | 0 | 178 | 178 | 94 | 94 | 0 |
| built-ins/Map | 405 | 344 | 119 (34.6%) | 123 (35.8%) | +4 | 209 | 163 | 16 | 58 | +42 |
| intl402/Locale | 346 | 336 | 0 (0.0%) | 0 (0.0%) | 0 | 336 | 336 | 0 | 0 | 0 |
| language/block-scope | 287 | 285 | 130 (45.6%) | 130 (45.6%) | 0 | 155 | 155 | 0 | 0 | 0 |
| built-ins/JSON | 330 | 270 | 134 (49.6%) | 134 (49.6%) | 0 | 98 | 98 | 36 | 36 | 0 |
| built-ins/WeakMap | 281 | 245 | 52 (21.2%) | 76 (31.0%) | +24 | 163 | 115 | 30 | 54 | +24 |
| built-ins/Atomics | 778 | 230 | 26 (11.3%) | 26 (11.3%) | 0 | 162 | 162 | 42 | 42 | 0 |
| built-ins/Reflect | 306 | 224 | 40 (17.9%) | 40 (17.9%) | 0 | 156 | 156 | 28 | 28 | 0 |
| language/asi | 204 | 204 | 182 (89.2%) | 182 (89.2%) | 0 | 22 | 22 | 0 | 0 | 0 |
| built-ins/SharedArrayBuffer | 208 | 186 | 42 (22.6%) | 42 (22.6%) | 0 | 138 | 138 | 6 | 6 | 0 |
| language/types | 211 | 181 | 132 (72.9%) | 132 (72.9%) | 0 | 45 | 47 | 4 | 2 | -2 |
| built-ins/Function | 893 | 180 | 40 (22.2%) | 40 (22.2%) | 0 | 117 | 117 | 23 | 23 | 0 |
| language/function-code | 281 | 179 | 136 (76.0%) | 136 (76.0%) | 0 | 26 | 26 | 17 | 17 | 0 |
| built-ins/DisposableStack | 186 | 162 | 56 (34.6%) | 56 (34.6%) | 0 | 98 | 98 | 8 | 8 | 0 |
| built-ins/NativeErrors | 188 | 148 | 24 (16.2%) | 24 (16.2%) | 0 | 100 | 100 | 24 | 24 | 0 |
| built-ins/WeakSet | 170 | 148 | 34 (23.0%) | 38 (25.7%) | +4 | 96 | 74 | 18 | 36 | +18 |
| intl402/RelativeTimeFormat | 160 | 148 | 0 (0.0%) | 0 (0.0%) | 0 | 148 | 148 | 0 | 0 | 0 |
| built-ins/TypedArrayConstructors | 1446 | 140 | 78 (55.7%) | 78 (55.7%) | 0 | 48 | 48 | 14 | 14 | 0 |
| built-ins/Symbol | 192 | 138 | 20 (14.5%) | 20 (14.5%) | 0 | 78 | 78 | 40 | 40 | 0 |
| intl402/ListFormat | 162 | 138 | 0 (0.0%) | 0 (0.0%) | 0 | 138 | 138 | 0 | 0 | 0 |
| intl402/DurationFormat | 220 | 136 | 0 (0.0%) | 0 (0.0%) | 0 | 134 | 134 | 2 | 2 | 0 |
| intl402/Segmenter | 158 | 132 | 8 (6.1%) | 8 (6.1%) | 0 | 122 | 122 | 2 | 2 | 0 |
| built-ins/AsyncDisposableStack | 208 | 130 | 2 (1.5%) | 2 (1.5%) | 0 | 122 | 122 | 6 | 6 | 0 |
| built-ins/BigInt | 154 | 124 | 44 (35.5%) | 44 (35.5%) | 0 | 18 | 18 | 62 | 62 | 0 |
| built-ins/Uint8Array | 140 | 112 | 0 (0.0%) | 0 (0.0%) | 0 | 76 | 76 | 36 | 36 | 0 |
| built-ins/Error | 186 | 102 | 22 (21.6%) | 22 (21.6%) | 0 | 72 | 72 | 8 | 8 | 0 |
| language/white-space | 134 | 102 | 102 (100.0%) | 102 (100.0%) | 0 | 0 | 0 | 0 | 0 | 0 |
| built-ins/parseFloat | 108 | 100 | 82 (82.0%) | 82 (82.0%) | 0 | 18 | 18 | 0 | 0 | 0 |
The full per-chapter and second-level tables, with every outcome column, were generated with this survey (tables.md per branch, available on request). Second-level chapters with the most wrong results on main:
language/statements/class502 andlanguage/expressions/class456language/statements/for-await-of202language/expressions/object194built-ins/Object/getOwnPropertyDescriptor172staging/sm141language/statements/for-of134language/expressions/async-generator132language/expressions/compound-assignment116built-ins/RegExp(top level) 106built-ins/Number/prototype/toString84built-ins/Array/prototype/slice80
Top wrong-result clusters (main), by root cause
These were grouped heuristically from test paths and diagnostic stderr. Counts are variants (sloppy and strict counted separately).
| # | root cause | variants | main chapters | examples |
|---|---|---|---|---|
| 1 | Function/class name inference (SetFunctionName) in binding initializers and destructuring defaults: anonymous classes get name '' instead of the binding name, and named function/generator expressions are renamed to the binding name instead of keeping their own name. | 940 | language/statements (498), language/expressions (442) | language/expressions/arrow-function/dstr/dflt-ary-ptrn-elem-id-init-fn-name-fn.js#sloppylanguage/expressions/arrow-function/dstr/dflt-obj-ptrn-id-init-fn-name-gen.js#sloppy |
| 2 | Values crossing a typed boundary throw scriptc's own TypeError ('expected number at $, got undefined/object', 'not representable in a … slot') where the spec performs ToNumber/ToIndex/ToBoolean coercion (valueOf objects, undefined arguments, Number.prototype as receiver, booleans in arithmetic). | 730 | language/expressions (140), language/statements (108), built-ins/DataView (96) | built-ins/BigInt/asUintN/order-of-steps.js#strictbuilt-ins/DataView/prototype/getFloat16/to-boolean-littleendian.js#strict |
| 3 | Destructuring null/undefined (mostly generator, async-generator and class-method parameters with defaults) does not throw TypeError, or throws a plain Error instead. | 502 | language/expressions (278), language/statements (212), built-ins/String (6) | language/expressions/async-generator/dstr/ary-ptrn-elem-obj-val-null.js#strictlanguage/expressions/async-generator/dstr/dflt-ary-ptrn-elem-ary-val-null.js#strict |
| 4 | Own-property layout of functions: 'name'/'prototype' are not own properties of built-in functions (e.g. Math.*, escape) or classes, 'length' is not ordered before 'name', private method names wrong. | 424 | built-ins/Math (88), built-ins/Symbol (36), built-ins/Atomics (28) | annexB/built-ins/escape/name.js#sloppybuilt-ins/Array/isArray/descriptor.js#sloppy |
| 5 | Property descriptors of built-in members read as undefined (Object.getOwnPropertyDescriptor / verifyProperty on built-in prototypes and accessors), so the test throws 'Cannot convert undefined or null to object' or reads '.writable' of undefined. | 380 | built-ins/Object (114), built-ins/Iterator (46), annexB (44) | annexB/built-ins/String/prototype/link/prop-desc.js#strictannexB/built-ins/RegExp/legacy-accessors/rightContext/prop-desc.js#strict |
| 6 | Properties assigned onto arrays/functions (arr.getClass = Object.prototype.toString; f.reduce = Array.prototype.reduce) are not observable when read back ('… is not a function'). | 348 | built-ins/Array (260), built-ins/Object (46), built-ins/String (32) | built-ins/Array/prototype/every/15.4.4.16-8-2.js#sloppybuilt-ins/Array/prototype/filter/15.4.4.20-6-3.js#strict |
| 7 | Unimplemented built-in members read as undefined instead of being refused (e.g. Array.prototype[Symbol.unscopables], ArrayBuffer.prototype.resize/transfer, Iterator.prototype.chunks/windows), and the test then fails with a TypeError. | 205 | built-ins/ArrayBuffer (50), built-ins/Iterator (48), built-ins/Array (34) | built-ins/Array/prototype/Symbol.unscopables/value.js#strictbuilt-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-13.js#strict |
| 8 | Object.create/defineProperties/defineProperty reject non-plain descriptor objects (functions, arrays, arguments, Date, Error, …) with 'Property description must be an object' / 'called on non-object', or apply attributes differently. | 196 | built-ins/Object (196) | built-ins/Object/create/15.2.3.5-4-113.js#strictbuilt-ins/Object/create/15.2.3.5-4-159.js#strict |
| 9 | Array destructuring ignores a user-replaced Array.prototype[Symbol.iterator] (actual 3, expected 42) and some iterator-protocol steps. | 166 | language/statements (98), language/expressions (68) | language/expressions/class/dstr/meth-ary-ptrn-elem-id-iter-val-array-prototype.js#sloppylanguage/expressions/class/dstr/meth-dflt-ary-ptrn-elem-id-iter-val-array-prototype.js#sloppy |
| 10 | RegExp patterns with invalid class ranges built at runtime (new RegExp with class escapes as range endpoints, S15.10.2.15_A1_*) do not throw SyntaxError. | 94 | built-ins/RegExp (94) | built-ins/RegExp/S15.10.2.15_A1_T18.js#sloppybuilt-ins/RegExp/S15.10.2.15_A1_T39.js#sloppy |
| 11 | An expected exception is not thrown (assorted: species on non-extensible arrays, Map/Set constructor iterator items that are not objects, Proxy invariants). | 90 | built-ins/Array (20), language/statements (20), staging (10) | built-ins/Array/prototype/concat/create-species-non-extensible.js#sloppybuilt-ins/Map/iterator-items-are-not-object.js#strict |
| 12 | Integrity levels report wrong results: Object.isFrozen/isSealed/isExtensible and Reflect.preventExtensions. | 81 | built-ins/Object (77), built-ins/Reflect (4) | built-ins/Object/isFrozen/15.2.3.12-3-15.js#sloppybuilt-ins/Reflect/preventExtensions/preventExtensions.js#sloppy |
Unclassified long tail: 802 of 5131 wrong results.
The integration branch has the same clusters with similar counts. Two clusters grow: "missing member reads as undefined" goes from 205 to 596 and "built-in property descriptors read as undefined" goes from 380 to 582. Both trace to the change described in the next section.
Integration branch vs main
Per-variant transitions (coarse categories):
| transition | variants |
|---|---|
| refusal -> wrong | 769 |
| refusal -> pass | 169 |
| wrong -> pass | 34 |
| wrong -> refusal | 16 |
| pass -> wrong | 10 |
| refusal -> other | 6 |
| pass -> refusal | 4 |
- Refusal → wrong (769 variants).
- On
main, these variants hit the SC2020 fence "'X' is part of the standard library types but has no scriptc lowering yet". The most common subjects areObject.getOwnPropertyDescriptor(174),Date.prototype(134),RegExp.prototype(54),Map.prototype(30),Object.defineProperty(26),Set.prototype,WeakMap.prototype,WeakSet.prototype,Object.isExtensible/isSealed/isFrozenandPromise.prototype. - On the integration branch these compile, but the value reads as
undefined. Tests then fail with "Cannot convert undefined or null to object" or "Cannot read properties of undefined". - Examples:
annexB/built-ins/Date/prototype/getYear/B.2.4.js,built-ins/Map/prototype/size/length.js,built-ins/Map/properties-of-the-map-prototype-object.js. - In these cases an explicit refusal has become a silent divergence.
- On
- Refusal → pass (169) and wrong → pass (34). These are concentrated in
built-ins/Date(+70 passes),built-ins/WeakMap(+24),language/arguments-object(+18),staging(+21) andbuilt-ins/RegExp(+12). Examples:built-ins/Date/name.js,built-ins/Date/parse/without-utc-offset.js,built-ins/Array/prototype/exotic-array.js. - Pass → wrong (10). Examples:
built-ins/Promise/resolve/S25.4.4.5_A1.1_T1.jsandbuilt-ins/RegExp/escape/is-function.js. - Pass → refusal (4).
built-ins/Array/from/source-object-iterator-2.jsandbuilt-ins/Array/from/source-object-missing.jsnow hit an unlocated refusal. - Reclassified refusals.
- 5,736 Temporal variants move from compile refusal ("Cannot find name 'Temporal'") to a runtime
ReferenceError. - 1,166 variants move from compile refusal to a located runtime fence.
- 5,736 Temporal variants move from compile refusal ("Cannot find name 'Temporal'") to a runtime
Top refusal messages (main)
| # | message | variants | reported as | most common subjects | example |
|---|---|---|---|---|---|
| 1 | SC0001: Cannot find name '…'. | 11411 | compile 11411 | Temporal 7166, $DONOTEVALUATE 1199, x 769, w 736 |
annexB/language/function-code/block-decl-func-existing-block-fn-no-init.js#sloppy |
| 2 | '…' is part of the standard library types but has no scriptc lowering yet [SC2020] | 7985 | fence 7108, caught by assert.throws/$DONE 877 | Object.defineProperty 627, new String 564, Object.getOwnPropertyDescriptor 324, new Number 316 |
annexB/built-ins/Date/prototype/getYear/B.2.4.js#sloppy |
| 3 | harness: reference-assertion | 2385 | harness 2385 | annexB/built-ins/RegExp/RegExp-control-escape-russian-letter.js#sloppy |
|
| 4 | method calls like '…' is not supported yet [SC1090] | 1565 | caught by assert.throws/$DONE 74, fence 1491 | C.method 1236, Iterator.concat 40, Iterator.zipKeyed 32, C.$ 32 |
built-ins/Function/prototype/bind/15.3.4.5-2-7.js#sloppy |
| 5 | class prototype reflection and accessor replacement (named prototype data and methods compile) is not supported yet [SC1090] | 980 | fence 914, caught by assert.throws/$DONE 66 | built-ins/Error/prototype/S15.11.4_A1.js#sloppy |
|
| 6 | assignment to non-variables are not supported yet [SC1090] | 947 | fence 941, caught by assert.throws/$DONE 6 | built-ins/Array/prototype/every/15.4.4.16-1-10.js#sloppy |
|
| 7 | values of type '…' cannot be compiled yet (supported: number, string, boolean, arrays, Maps, Sets, RegExp, read-only Date values, functions, classes, records, unions of t | 908 | fence 842, caught by assert.throws/$DONE 66 | () => Generator<never, number, unknown> 428, () => AsyncGenerator<never, number, unknown> 148, (string: string) => string 50, void 46 |
annexB/built-ins/escape/argument_bigint.js#sloppy |
| 8 | SC0001: Type '…' must have a '…' method that returns an async iterator. | 892 | compile 892 | never 24, { readonly [Symbol.iterator]: void; readonly [Symb 24, { readonly [Symbol.iterator]: void; [Symbol.asyncI 24, { readonly [Symbol.iterator]: void; [Symbol.asyncI 24 |
language/expressions/async-generator/named-yield-star-expr-abrupt.js#sloppy |
| 9 | Function.prototype.call on a function whose signature cannot cross the checked-value boundary (call '…' directly) is not supported yet [SC1090] | 649 | fence 281, caught by assert.throws/$DONE 368 | Promise.allSettled(...) 38, Promise.all(...) 28, Promise.any(...) 24, RegExp.prototype[Symbol.split](...) 22 |
annexB/built-ins/String/prototype/anchor/B.2.3.2.js#sloppy |
| 10 | Object.defineProperty on an array index or length is not supported yet | 645 | caught by assert.throws/$DONE 100, unlocated fence 545 | built-ins/Array/length/define-own-prop-length-error.js#sloppy |
More detail on the largest refusals:
- "Cannot find name" (11,411). Mostly
Temporal(7,166). It also covers 1,199 negative parse tests where$DONOTEVALUATEis reported because the expected early error was not raised, and tests that deliberately reference undeclared identifiers (x,w,unresolvableReference, …). - SC2020 (7,985). Led by
Object.defineProperty(627),new String(564),Object.getOwnPropertyDescriptor(324),new Number(316),new Intl.NumberFormat(286) andnew Boolean(261).
Runner issues found
failresults whose stderr is a refusal (1,918 on main, 2,112 on the integration branch).- The runner recognizes a runtime refusal only when stderr is exactly
Uncaught Error: … [SCnnnn at <file>:<line>]. - Unlocated fences are classified as
fail. Examples:Object.defineProperty on an array index or length is not supported yet,Object.getPrototypeOf on this value is not supported yet,… [SC2020]without a location, andTypeError: scriptc: Object.prototype reflection and mutation are not supported yet. - These should be classified as runtime refusals.
- The runner recognizes a runtime refusal only when stderr is exactly
- Refusals caught by
assert.throwsbecome assertion failures (2,057 variants on main).- When the callback hits a scriptc refusal, the host
assert.throwssees anErrorwhose constructor differs from the expected one. It then reports "Expected exception". - The host harness should detect refusal errors and exit with a refusal status, as it already does for reference assertions.
- When the callback hits a scriptc refusal, the host
- The async-completion cluster is mostly refusals, not a harness artifact.
- "SCRIPTC_TEST262_HARNESS: async completion failed" accounts for 1,750 variants on main.
- 1,193 (68%) are refusals passed to
$DONEas the rejection reason, 1,187 of them located SC fences. Examples:yield*in async generators (SC1071),for awaitover unsupported sources (SC1070), andPromise.allover unsupported argument shapes (SC2020). - The remaining 557 are real assertion failures inside async tests, largely the same function-name and destructuring root causes listed above.
- No double
$DONEcalls were observed. $DONEshould print the reason and classify refusal-shaped reasons as runtime refusals.
- Missed early errors are reported as compile refusals.
- About 1,199 admitted negative parse tests fail with "Cannot find name '$DONOTEVALUATE'". scriptc did not report the expected early error, and the type checker then flagged the harness sentinel.
- These are accepted invalid programs, closer to wrong results than refusals. They deserve their own outcome.
- The caught error is not reported.
assert.throwsfailures print only "Expected exception", and$DONEfailures print only "async completion failed". The actual error or rejection reason is dropped.- Printing it would make
failtriage possible without a diagnostic rerun.
🤖 Generated with Claude Code
- Lingua principale
- TypeScript
- Stelle
- 6.2k
- Fork
- 183
- Merge medio
- 2h 20m
- PR unite (30g)
- 893
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di vercel-labs/scriptc
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
vercel-labs/scriptc#1437 ·
I maintainer di solito rispondono entro 1 giorno
-
node:tls: SNICallback, new tls.TLSSocket(socket, {isServer}), and ALPNProtocols not supportedAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
vercel-labs/scriptc#1438 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
vercel-labs/scriptc#1439 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 63/100
vercel-labs/scriptc#1440 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
vercel-labs/scriptc#1441 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di vercel-labs/scriptc
Issue simili
-
area:editor bug issue-form:bug P0 platform:windows review: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
1lck/Lithe-IDEA#1388 ·
I maintainer di solito rispondono entro 1 giorno
-
fix(api): isToolAuditEnabled swallows database read errors on auditToolOperations without loggingApertaarea: backend bug priority: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
snapotter-hq/SnapOtter#3238 ·
I maintainer di solito rispondono entro 1 giorno
-
rig up --plan times out after 5 s and reports an UNKNOWN outcome while the daemon completes the planAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
filesystem: search_files does not expand non-wildcard excludePatterns like directory_tree doesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
modelcontextprotocol/servers#5216 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno