Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Test262 survey (static-adapted-v5): per-chapter results on main vs integration branch

Aperta
#1,472 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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
Ambito
compilers, testing

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 fail results 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 with pnpm 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:
    • main at ab70d3d36 (2026-10-19).
    • The integration branch is main at bf2afee9f plus the open PRs. It lacks only main's most recent commit (#1432).
    • Both trees were built fresh, including the LLVM helper and the runtime pack.
  • Runner: pnpm test:test262 --root <snapshot>, profile static-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 8 and --journal.
    • Some shards were interrupted by dropped remote sessions. Their remaining variants were rerun individually with the unmodified runSource/matchesParseNegative logic, so the union covers every admitted variant exactly once on both trees.
    • Nothing was sampled.
  • 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 than compareArray.js/propertyHelper.js. The largest are temporalHelpers.js 5,618, testTypedArray.js 4,128, isConstructor.js 1,288, regExpUtils.js 1,172 and asyncHelpers.js 756.
    • harness:assert-surface 3,780.
    • host:eval 2,183, host:script-environment 1,548, host:Function 1,372 and host:arguments 1,268.
    • harness:propertyHelper-surface 643, execution:module 596, host:$262 540 and harness:Test262Error-surface 387.
    • Negative parse tests in module or raw variants 227; runtime negatives 66 and resolution negatives 34.
    • host:globalThis 144, host:agents 18, 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 fail category mixes real divergences with refusals. To separate them, every non-refusal-shaped fail was rerun with a scratch copy of the host harness that prints the error caught by assert.throws, the reason passed to $DONE, and the values compared by assert.sameValue/notSameValue. Runner semantics were otherwise unchanged; the rerun outcomes matched the original runs.
    • A fail counts as a refusal in three cases:
      1. Its stderr is an unlocated scriptc refusal (… is not supported yet, [SCnnnn] without a source location).
      2. The error caught by assert.throws or passed to $DONE is a scriptc refusal.
      3. It is ReferenceError: Temporal is not defined. On the integration branch, this replaces main's compile refusal "Cannot find name 'Temporal'".
    • Everything else in fail, plus crashes, is a wrong result.

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/class 502 and language/expressions/class 456
  • language/statements/for-await-of 202
  • language/expressions/object 194
  • built-ins/Object/getOwnPropertyDescriptor 172
  • staging/sm 141
  • language/statements/for-of 134
  • language/expressions/async-generator 132
  • language/expressions/compound-assignment 116
  • built-ins/RegExp (top level) 106
  • built-ins/Number/prototype/toString 84
  • built-ins/Array/prototype/slice 80

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#sloppy
language/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#strict
built-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#strict
language/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#sloppy
built-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#strict
annexB/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#sloppy
built-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#strict
built-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#strict
built-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#sloppy
language/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#sloppy
built-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#sloppy
built-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#sloppy
built-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 are Object.getOwnPropertyDescriptor (174), Date.prototype (134), RegExp.prototype (54), Map.prototype (30), Object.defineProperty (26), Set.prototype, WeakMap.prototype, WeakSet.prototype, Object.isExtensible/isSealed/isFrozen and Promise.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.
  • 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) and built-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.js and built-ins/RegExp/escape/is-function.js.
  • Pass → refusal (4). built-ins/Array/from/source-object-iterator-2.js and built-ins/Array/from/source-object-missing.js now 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.

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 $DONOTEVALUATE is 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) and new Boolean (261).

Runner issues found

  1. fail results 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, and TypeError: scriptc: Object.prototype reflection and mutation are not supported yet.
    • These should be classified as runtime refusals.
  2. Refusals caught by assert.throws become assertion failures (2,057 variants on main).
    • When the callback hits a scriptc refusal, the host assert.throws sees an Error whose 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.
  3. 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 $DONE as the rejection reason, 1,187 of them located SC fences. Examples: yield* in async generators (SC1071), for await over unsupported sources (SC1070), and Promise.all over 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 $DONE calls were observed.
    • $DONE should print the reason and classify refusal-shaped reasons as runtime refusals.
  4. 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.
  5. The caught error is not reported.
    • assert.throws failures print only "Expected exception", and $DONE failures print only "async completion failed". The actual error or rejection reason is dropped.
    • Printing it would make fail triage 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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di vercel-labs/scriptc

Tutte le issue di vercel-labs/scriptc

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.