Merge main

This commit is contained in:
Chris Tate
2026-10-30 03:40:32 -05:00
1032 changed files with 44893 additions and 2937 deletions
@@ -7,10 +7,10 @@ assert-fences.ts:20:1 - error SC2020: 'assert.strictEqual of '{ n: number }' and
hint: strictEqual on objects is reference equality — deepStrictEqual compares structure
assert-fences.ts:24:1 - error SC2020: 'assert.strictEqual of 'string | undefined' and 'string' values' is part of the standard library types but has no scriptc lowering yet
assert-fences.ts:24:1 - error SC2020: 'assert.strictEqual of '{ n: number } | undefined' and '{ n: number }' values' is part of the standard library types but has no scriptc lowering yet
23 | if ("x".length === 0) maybe = undefined;
24 | assert.strictEqual(maybe, "x"); // union operand — narrow first
24 | assert.strictEqual(maybe, box); // union operand with an object arm — narrow first
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25 |
@@ -0,0 +1,53 @@
builtin-values-without-lowering.ts:7:7 - error SC2009: values of type '{ json: JSON; }' cannot be compiled: the record shape is supported, but its member 'json.parse' has type '{ (text: string, reviver?: ((this: any, key: string, value: any) => any) | undefined): any; (text: string): unknown; (text: string, reviver: (this: unknown, key: string, value: unknown) => unknown): unknown; }', which does not compile
6 |
7 | const inferred = { json: JSON };
| ^~~~~~~~
8 | const loose: any = { intl: Intl, proxy: Proxy };
hint: the outer shape is supported — the named component is the blocker; restate it inside the compilable set (number, string, boolean, arrays, Maps, Sets, RegExp, functions, classes, records, unions of those, and 'unknown')
builtin-values-without-lowering.ts:7:18 - error SC2009: values of type '{ json: JSON; }' cannot be compiled: the record shape is supported, but its member 'json.parse' has type '{ (text: string, reviver?: ((this: any, key: string, value: any) => any) | undefined): any; (text: string): unknown; (text: string, reviver: (this: unknown, key: string, value: unknown) => unknown): unknown; }', which does not compile
6 |
7 | const inferred = { json: JSON };
| ^~~~~~~~~~~~~~
8 | const loose: any = { intl: Intl, proxy: Proxy };
hint: the outer shape is supported — the named component is the blocker; restate it inside the compilable set (number, string, boolean, arrays, Maps, Sets, RegExp, functions, classes, records, unions of those, and 'unknown')
builtin-values-without-lowering.ts:8:28 - error SC2020: 'Intl' is part of the standard library types but has no scriptc lowering yet
7 | const inferred = { json: JSON };
8 | const loose: any = { intl: Intl, proxy: Proxy };
| ^~~~
9 | const timers: Record<string, unknown> = { setTimeout };
hint: native Intl supports Intl.Segmenter with grapheme or word granularity and the composed new Intl.NumberFormat("en-US").format(x), x.toLocaleString("en-US") and x.toLocaleString(); formatter objects, locale negotiation and the other Intl constructors remain unsupported
builtin-values-without-lowering.ts:9:43 - error SC2020: 'setTimeout' is part of the standard library types but has no scriptc lowering yet
8 | const loose: any = { intl: Intl, proxy: Proxy };
9 | const timers: Record<string, unknown> = { setTimeout };
| ^~~~~~~~~~
10 | const list: any[] = [Array, parseInt];
hint: the type checker sees the full standard library, but only the supported surface compiles (https://scriptc.dev/limitations)
builtin-values-without-lowering.ts:10:22 - error SC2020: 'Array' is part of the standard library types but has no scriptc lowering yet
9 | const timers: Record<string, unknown> = { setTimeout };
10 | const list: any[] = [Array, parseInt];
| ^~~~~
11 | console.log(inferred, loose, timers, list, take(process));
hint: the type checker sees the full standard library, but only the supported surface compiles (https://scriptc.dev/limitations)
builtin-values-without-lowering.ts:11:13 - error SC2004: uses of 'inferred' inherit the blocker on its declaration
10 | const list: any[] = [Array, parseInt];
11 | console.log(inferred, loose, timers, list, take(process));
| ^~~~~~~~
12 |
hint: the declaration of 'inferred' did not compile — fix the diagnostic reported there and these sites clear with it
@@ -5,6 +5,6 @@ scriptc coverage tests/coverage-fixtures/dynamic-mix.ts
in dynamic tier 2 (operate on values typed only at runtime; --explain-dynamic lists them)
blockers:
×1 SC2020 'Number.prototype.toLocaleString without a locale' is part of the standard library types but has no scriptc lowering yet
at tests/coverage-fixtures/dynamic-mix.ts:6:12
hint: the default locale is the host environment's, which a compiled binary cannot carry — pass it explicitly: x.toLocaleString("en-US")
×1 SC2020 'Number.prototype.toLocaleString at locale "de-DE"' is part of the standard library types but has no scriptc lowering yet
at tests/coverage-fixtures/dynamic-mix.ts:6:35
hint: what lowers is the default locale (no argument) and the composed en-US form — other locales are ICU data the binary does not negotiate yet
@@ -10,7 +10,5 @@
<- SC1090 reflection at tests/coverage-fixtures/tier-demotions.ts:10:1: assignment to non-variables are not supported yet
-> function <top level> turns dynamic
function <top level> tests/coverage-fixtures/tier-demotions.ts:1:1 (1 site inside)
function precise tests/coverage-fixtures/tier-demotions.ts:21:1 (1 site inside)
binding n in precise tests/coverage-fixtures/tier-demotions.ts:21:18 (1 request)
<- SC2020 operation at tests/coverage-fixtures/tier-demotions.ts:22:10: 'Number.prototype.toLocaleString without a locale' is part of the standard library types but has no scriptc lowering yet
-> function precise turns dynamic
function precise tests/coverage-fixtures/tier-demotions.ts:21:1 (1 request, 1 site inside)
<- SC2020 operation at tests/coverage-fixtures/tier-demotions.ts:22:27: 'Number.prototype.toLocaleString at locale "de-DE"' is part of the standard library types but has no scriptc lowering yet
@@ -8,6 +8,6 @@ scriptc coverage tests/coverage-fixtures/tier-demotions.ts
×1 SC1090 assignment to non-variables
at tests/coverage-fixtures/tier-demotions.ts:10:1
hint: this form is valid TypeScript but does not compile yet — rewrite it with a supported equivalent of the construct the message names (https://scriptc.dev/limitations lists the boundary)
×1 SC2020 'Number.prototype.toLocaleString without a locale' is part of the standard library types but has no scriptc lowering yet
at tests/coverage-fixtures/tier-demotions.ts:22:10
hint: the default locale is the host environment's, which a compiled binary cannot carry — pass it explicitly: x.toLocaleString("en-US")
×1 SC2020 'Number.prototype.toLocaleString at locale "de-DE"' is part of the standard library types but has no scriptc lowering yet
at tests/coverage-fixtures/tier-demotions.ts:22:27
hint: what lowers is the default locale (no argument) and the composed en-US form — other locales are ICU data the binary does not negotiate yet
@@ -1,17 +1,17 @@
date-formatters.ts:4:1 - error SC2020: 'Date.prototype.toLocaleTimeString' is part of the standard library types but has no scriptc lowering yet
date-formatters.ts:6:1 - error SC2020: 'Date.prototype.toLocaleDateString' is part of the standard library types but has no scriptc lowering yet
3 | const date = new Date(0);
4 | date.toLocaleTimeString();
5 | const date = new Date(0);
6 | date.toLocaleDateString();
| ^~~~~~~~~~~~~~~~~~~~~~~~~
5 | date.toLocaleString();
7 | date.toLocaleString("en-US");
hint: getTime(), valueOf(), toISOString(), toUTCString(), toJSON(), toString(), toDateString(), toTimeString(), the local/UTC calendar getters and setters, setTime(), and getTimezoneOffset() are supported; locale formatters have no lowering
hint: getTime(), valueOf(), toISOString(), toUTCString(), toJSON(), toString(), toDateString(), toTimeString(), toLocaleString(), toLocaleTimeString(), the local/UTC calendar getters and setters, setTime(), and getTimezoneOffset() are supported; locale and options arguments, toLocaleDateString() and the Intl.DateTimeFormat surface have no lowering
date-formatters.ts:5:1 - error SC2020: 'Date.prototype.toLocaleString' is part of the standard library types but has no scriptc lowering yet
date-formatters.ts:7:1 - error SC2020: 'Date.prototype.toLocaleString with arguments' is part of the standard library types but has no scriptc lowering yet
4 | date.toLocaleTimeString();
5 | date.toLocaleString();
| ^~~~~~~~~~~~~~~~~~~~~
6 |
6 | date.toLocaleDateString();
7 | date.toLocaleString("en-US");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
8 |
hint: getTime(), valueOf(), toISOString(), toUTCString(), toJSON(), toString(), toDateString(), toTimeString(), the local/UTC calendar getters and setters, setTime(), and getTimezoneOffset() are supported; locale formatters have no lowering
hint: getTime(), valueOf(), toISOString(), toUTCString(), toJSON(), toString(), toDateString(), toTimeString(), toLocaleString(), toLocaleTimeString(), the local/UTC calendar getters and setters, setTime(), and getTimezoneOffset() are supported; locale and options arguments, toLocaleDateString() and the Intl.DateTimeFormat surface have no lowering
@@ -1,8 +1,8 @@
dynamic-surface.ts:13:15 - error SC2020: 'Number.prototype.toLocaleString without a locale' is part of the standard library types but has no scriptc lowering yet
dynamic-surface.ts:13:38 - error SC2020: 'Number.prototype.toLocaleString at locale "de-DE"' is part of the standard library types but has no scriptc lowering yet
12 | const tau = Math.PI * 2;
13 | const price = (19.99).toLocaleString();
| ^~~~~~~~~~~~~~~~~~~~~~~~
13 | const price = (19.99).toLocaleString("de-DE");
| ^~~~~~~
14 | const n = Number.parseFloat("3.14");
hint: the default locale is the host environment's, which a compiled binary cannot carry — pass it explicitly: x.toLocaleString("en-US")
hint: what lowers is the default locale (no argument) and the composed en-US form — other locales are ICU data the binary does not negotiate yet
@@ -1,8 +0,0 @@
ee-computed-listeners.ts:6:1 - error SC2020: 'listeners of the event 'topic:x'' is part of the standard library types but has no scriptc lowering yet
5 | emitter.on(`topic:${suffix}`, () => {});
6 | emitter.listeners("topic:x");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 |
hint: a listener of this event uses checked-dynamic dispatch, so the listener array has no one static element type — listenerCount(name) counts
@@ -0,0 +1,13 @@
function-value-declared-arity-narrowing.ts:10:18 - error SC1090: '(string, number) => number' values where '(string) => number' is expected is not supported yet
9 | // (1) Narrowing at a binding, then calling through the narrow type.
10 | const narrowed = impl as unknown as (text: string) => number;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11 | console.log(narrowed("abc"));
function-value-declared-arity-narrowing.ts:20:19 - error SC1090: '(string, number) => number' values where '(string) => number' is expected is not supported yet
19 | function makeWriter(): Sink {
20 | return { write: impl as unknown as (text: string) => number };
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21 | }
@@ -57,46 +57,62 @@ generic-value-bindings.ts:20:13 - error SC2004: uses of 'flipAlias' inherit the
hint: the declaration of 'flipAlias' did not compile — fix the diagnostic reported there and these sites clear with it
generic-value-bindings.ts:25:17 - error SC1090: generic arrow/function-expression bindings that use the frames of their enclosing functions (the compiled instantiations of 'inner' are module functions and cannot capture its locals, parameters, type parameters or 'this' — pass them as arguments, or declare the binding at module scope) are not supported yet
generic-value-bindings.ts:27:17 - error SC1090: generic arrow/function-expression bindings that use the frames of their enclosing functions (the compiled instantiations of 'inner' are module functions and cannot capture its locals, parameters, type parameters or 'this' — pass them as arguments, or declare the binding at module scope) are not supported yet
24 | function outer(base: number): number {
25 | const inner = <T>(x: T): [T, number] => [x, base];
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26 | return inner(3)[1];
26 | function outer(base: number): number {
27 | const inner = <T>(x: T): [T, number] => [x, scale];
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28 | const scale = base + 1;
generic-value-bindings.ts:26:10 - error SC2004: uses of 'inner' inherit the blocker on its declaration
generic-value-bindings.ts:29:10 - error SC2004: uses of 'inner' inherit the blocker on its declaration
25 | const inner = <T>(x: T): [T, number] => [x, base];
26 | return inner(3)[1];
28 | const scale = base + 1;
29 | return inner(3)[1];
| ^~~~~
27 | }
30 | }
hint: the declaration of 'inner' did not compile — fix the diagnostic reported there and these sites clear with it
generic-value-bindings.ts:35:10 - error SC1090: generic arrow/function-expression bindings declared inside functions as values (each call of the enclosing function makes a new 'same' function object, while its compiled instances are shared module functions — call 'same' directly, or declare it at module scope) are not supported yet
generic-value-bindings.ts:36:17 - error SC1090: generic arrow/function-expression bindings that use the frames of their enclosing functions (the compiled instantiations of 'inner' are module functions and cannot capture its locals, parameters, type parameters or 'this' — pass them as arguments, or declare the binding at module scope) are not supported yet (instantiating 'outerGeneric' with <number>)
34 | const same = <T>(x: T): T => x;
35 | return same<number>;
35 | function outerGeneric<U>(seed: U): string {
36 | const inner = <T>(x: T): string => `${String(x)}${String(seed)}`;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 | return inner(3);
generic-value-bindings.ts:37:10 - error SC2004: uses of 'inner' inherit the blocker on its declaration (instantiating 'outerGeneric' with <number>)
36 | const inner = <T>(x: T): string => `${String(x)}${String(seed)}`;
37 | return inner(3);
| ^~~~~
38 | }
hint: the declaration of 'inner' did not compile — fix the diagnostic reported there and these sites clear with it
generic-value-bindings.ts:46:10 - error SC1090: generic arrow/function-expression bindings declared inside functions as values (each call of the enclosing function makes a new 'same' function object, while its compiled instances are shared module functions — call 'same' directly, or declare it at module scope) are not supported yet
45 | const same = <T>(x: T): T => x;
46 | return same<number>;
| ^~~~~~~~~~~~
36 | }
47 | }
generic-value-bindings.ts:48:13 - error SC1090: results that are themselves generic functions ('<U>(y: U) => string' keeps its type parameters — no call-site instantiation pins them, and the returned value would need the producing call's frame; restructure to one generic function taking all arguments) are not supported yet
generic-value-bindings.ts:59:13 - error SC1090: results that are themselves generic functions ('<U>(y: U) => string' keeps its type parameters — no call-site instantiation pins them, and the returned value would need the producing call's frame; restructure to one generic function taking all arguments) are not supported yet
47 | const curried = <T>(x: T) => <U>(y: U): string => `${x}|${y}`;
48 | console.log(curried(1)("a"));
58 | const curried = <T>(x: T) => <U>(y: U): string => `${x}|${y}`;
59 | console.log(curried(1)("a"));
| ^~~~~~~~~~
49 |
60 |
generic-value-bindings.ts:60:15 - error SC1090: calls of the generic method 'm' through this receiver (no compiled declaration with a body resolves statically here — ambient 'declare class' and interface-only methods are signature-only, and only class, static, and object-literal generic methods with bodies monomorphize) is not supported yet
generic-value-bindings.ts:71:15 - error SC1090: calls of the generic method 'm' through this receiver (no compiled declaration with a body resolves statically here — ambient 'declare class' and interface-only methods are signature-only, and only class, static, and object-literal generic methods with bodies monomorphize) is not supported yet
59 | function throughParam(a: Amb): void {
60 | console.log(a.m(4));
70 | function throughParam(a: Amb): void {
71 | console.log(a.m(4));
| ^~~~~~
61 | }
72 | }
generic-value-bindings.ts:71:32 - error SC1090: generic arrow/function-expression bindings declared inside functions that code can call before their declaration runs (the binding 'picked' is a 'var' in a branch or block, or is called from a place that can run first — declare it with const before its uses) are not supported yet
generic-value-bindings.ts:82:32 - error SC1090: generic arrow/function-expression bindings declared inside functions that code can call before their declaration runs (the binding 'picked' is a 'var' in a branch or block, or is called from a place that can run first — declare it with const before its uses) are not supported yet
70 | }
71 | const invoke = (): number => picked(1);
81 | }
82 | const invoke = (): number => picked(1);
| ^~~~~~
72 | return invoke();
83 | return invoke();
@@ -1,26 +1,26 @@
intl-segmenter.ts:2:1 - error SC2020: 'Intl.Segmenter locale negotiation' is part of the standard library types but has no scriptc lowering yet
intl-segmenter.ts:4:1 - error SC2020: 'Intl.Segmenter locale negotiation' is part of the standard library types but has no scriptc lowering yet
1 | // The native implementation covers Unicode grapheme segmentation.
2 | new Intl.Segmenter(["en-US", "de"]);
3 | // sentence segmentation stay fenced.
4 | new Intl.Segmenter(["en-US", "de"]);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 | new Intl.Segmenter(undefined, { granularity: "word" });
5 | new Intl.Segmenter(undefined, { granularity: "word", localeMatcher: "best fit" });
hint: omit the locale, pass undefined, or pass one language tag as a string literal
intl-segmenter.ts:3:31 - error SC2020: 'Intl.Segmenter options' is part of the standard library types but has no scriptc lowering yet
intl-segmenter.ts:5:31 - error SC2020: 'Intl.Segmenter options' is part of the standard library types but has no scriptc lowering yet
2 | new Intl.Segmenter(["en-US", "de"]);
3 | new Intl.Segmenter(undefined, { granularity: "word" });
| ^~~~~~~~~~~~~~~~~~~~~~~
4 | new Intl.Segmenter(undefined, { granularity: "sentence" });
4 | new Intl.Segmenter(["en-US", "de"]);
5 | new Intl.Segmenter(undefined, { granularity: "word", localeMatcher: "best fit" });
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6 | new Intl.Segmenter(undefined, { granularity: "sentence" });
hint: the native segmenter supports default options and { granularity: "grapheme" }; word and sentence segmentation remain unsupported
hint: the native segmenter supports default options, { granularity: "grapheme" } and { granularity: "word" }; sentence segmentation remains unsupported
intl-segmenter.ts:4:31 - error SC2020: 'Intl.Segmenter options' is part of the standard library types but has no scriptc lowering yet
intl-segmenter.ts:6:31 - error SC2020: 'Intl.Segmenter options' is part of the standard library types but has no scriptc lowering yet
3 | new Intl.Segmenter(undefined, { granularity: "word" });
4 | new Intl.Segmenter(undefined, { granularity: "sentence" });
5 | new Intl.Segmenter(undefined, { granularity: "word", localeMatcher: "best fit" });
6 | new Intl.Segmenter(undefined, { granularity: "sentence" });
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
5 | // End of the diagnostic fixture.
7 | // End of the diagnostic fixture.
hint: the native segmenter supports default options and { granularity: "grapheme" }; word and sentence segmentation remain unsupported
hint: the native segmenter supports default options, { granularity: "grapheme" } and { granularity: "word" }; sentence segmentation remains unsupported
+28 -37
View File
@@ -32,7 +32,7 @@ intl.ts:13:7 - error SC2020: 'NumberFormat' is part of the standard library type
| ^~~~~~~
14 | const viaValue = hoisted.format(1234.5);
hint: Intl formatter values have no representation — the COMPOSED en-US forms lower: new Intl.NumberFormat("en-US").format(x) and x.toLocaleString("en-US") with default options; the rest is ICU locale data the binary does not carry
hint: Intl formatter values have no representation — the COMPOSED forms lower: new Intl.NumberFormat("en-US").format(x), x.toLocaleString("en-US") and x.toLocaleString() with default options, d.toLocaleString(), d.toLocaleTimeString(), and Intl.Segmenter with grapheme or word granularity; the formatter objects themselves (locale negotiation, resolvedOptions, options bags) remain unsupported
intl.ts:13:17 - error SC2020: 'new Intl.NumberFormat' is part of the standard library types but has no scriptc lowering yet
@@ -50,67 +50,58 @@ intl.ts:14:18 - error SC2020: 'NumberFormat.format' is part of the standard libr
| ^~~~~~~~~~~~~~
15 |
hint: locale- and ICU-backed behavior lives outside the static runtime (the localeCompare stance: code-unit order, no collation/locale data) — what lowers: the composed new Intl.NumberFormat("en-US").format(x) and x.toLocaleString("en-US") with default options, plus default Unicode grapheme segmentation with Intl.Segmenter; locale negotiation, word/sentence segmentation, and resolvedOptions remain unsupported
hint: collation and locale negotiation stay outside the static runtime (the localeCompare stance: code-unit order, no collation) — what lowers: the composed new Intl.NumberFormat("en-US").format(x) and x.toLocaleString("en-US") with default options, their default-locale forms (x.toLocaleString(), d.toLocaleString(), d.toLocaleTimeString()), and Intl.Segmenter with grapheme or word granularity; sentence segmentation, resolvedOptions, and the remaining Intl constructors remain unsupported
intl.ts:17:20 - error SC2020: 'Number.prototype.toLocaleString without a locale' is part of the standard library types but has no scriptc lowering yet
intl.ts:17:40 - error SC2020: 'Number.prototype.toLocaleString at locale "de-DE"' is part of the standard library types but has no scriptc lowering yet
16 | // toLocaleString's unlowered variants.
17 | const envDefault = (1234.5).toLocaleString();
| ^~~~~~~~~~~~~~~~~~~~~~~~~
18 | const german = (1234.5).toLocaleString("de-DE");
hint: the default locale is the host environment's, which a compiled binary cannot carry — pass it explicitly: x.toLocaleString("en-US")
intl.ts:18:40 - error SC2020: 'Number.prototype.toLocaleString at locale "de-DE"' is part of the standard library types but has no scriptc lowering yet
17 | const envDefault = (1234.5).toLocaleString();
18 | const german = (1234.5).toLocaleString("de-DE");
17 | const german = (1234.5).toLocaleString("de-DE");
| ^~~~~~~
19 | const grouped = (1234.5).toLocaleString("en-US", { useGrouping: false });
18 | const grouped = (1234.5).toLocaleString("en-US", { useGrouping: false });
hint: "en-US" (Node's default-build locale) is the one locale whose data the runtime embeds — everything else is ICU data the binary does not carry
hint: what lowers is the default locale (no argument) and the composed en-US form — other locales are ICU data the binary does not negotiate yet
intl.ts:19:17 - error SC2020: 'Number.prototype.toLocaleString with an options bag' is part of the standard library types but has no scriptc lowering yet
intl.ts:18:17 - error SC2020: 'Number.prototype.toLocaleString with an options bag' is part of the standard library types but has no scriptc lowering yet
18 | const german = (1234.5).toLocaleString("de-DE");
19 | const grouped = (1234.5).toLocaleString("en-US", { useGrouping: false });
17 | const german = (1234.5).toLocaleString("de-DE");
18 | const grouped = (1234.5).toLocaleString("en-US", { useGrouping: false });
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 |
19 |
hint: the embedded data covers DEFAULT options only (decimal notation, up to 3 fraction digits, grouping) — x.toLocaleString("en-US")
hint: what lowers is the DEFAULT options shape (decimal notation, up to 3 fraction digits, grouping) at the default locale or at en-US — omit the options bag
intl.ts:22:14 - error SC2020: 'new Intl.DateTimeFormat' is part of the standard library types but has no scriptc lowering yet
intl.ts:21:14 - error SC2020: 'new Intl.DateTimeFormat' is part of the standard library types but has no scriptc lowering yet
21 | // The rest of Intl keeps the ICU story.
22 | const when = new Intl.DateTimeFormat("en-US").format();
20 | // The rest of Intl keeps the ICU story.
21 | const when = new Intl.DateTimeFormat("en-US").format();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23 | const dur = new Intl.DurationFormat("en-US").format({ hours: 1, minutes: 23 });
22 | const dur = new Intl.DurationFormat("en-US").format({ hours: 1, minutes: 23 });
hint: the type checker sees the full standard library, but only the supported surface compiles (https://scriptc.dev/limitations)
intl.ts:23:13 - error SC2020: 'new Intl.DurationFormat' is part of the standard library types but has no scriptc lowering yet
intl.ts:22:13 - error SC2020: 'new Intl.DurationFormat' is part of the standard library types but has no scriptc lowering yet
22 | const when = new Intl.DateTimeFormat("en-US").format();
23 | const dur = new Intl.DurationFormat("en-US").format({ hours: 1, minutes: 23 });
21 | const when = new Intl.DateTimeFormat("en-US").format();
22 | const dur = new Intl.DurationFormat("en-US").format({ hours: 1, minutes: 23 });
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24 | const rule = new Intl.PluralRules("en-US").select(1);
23 | const rule = new Intl.PluralRules("en-US").select(1);
hint: the type checker sees the full standard library, but only the supported surface compiles (https://scriptc.dev/limitations)
intl.ts:24:14 - error SC2020: 'new Intl.PluralRules' is part of the standard library types but has no scriptc lowering yet
intl.ts:23:14 - error SC2020: 'new Intl.PluralRules' is part of the standard library types but has no scriptc lowering yet
23 | const dur = new Intl.DurationFormat("en-US").format({ hours: 1, minutes: 23 });
24 | const rule = new Intl.PluralRules("en-US").select(1);
22 | const dur = new Intl.DurationFormat("en-US").format({ hours: 1, minutes: 23 });
23 | const rule = new Intl.PluralRules("en-US").select(1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25 | const canon = Intl.getCanonicalLocales("en-us");
24 | const canon = Intl.getCanonicalLocales("en-us");
hint: the type checker sees the full standard library, but only the supported surface compiles (https://scriptc.dev/limitations)
intl.ts:25:15 - error SC2020: 'Intl.getCanonicalLocales' is part of the standard library types but has no scriptc lowering yet
intl.ts:24:15 - error SC2020: 'Intl.getCanonicalLocales' is part of the standard library types but has no scriptc lowering yet
24 | const rule = new Intl.PluralRules("en-US").select(1);
25 | const canon = Intl.getCanonicalLocales("en-us");
23 | const rule = new Intl.PluralRules("en-US").select(1);
24 | const canon = Intl.getCanonicalLocales("en-us");
| ^~~~~~~~~~~~~~~~~~~~~~~~
26 |
25 |
hint: locale- and ICU-backed behavior lives outside the static runtime (the localeCompare stance: code-unit order, no collation/locale data) — what lowers: the composed new Intl.NumberFormat("en-US").format(x) and x.toLocaleString("en-US") with default options, plus default Unicode grapheme segmentation with Intl.Segmenter; locale negotiation, word/sentence segmentation, and resolvedOptions remain unsupported
hint: collation and locale negotiation stay outside the static runtime (the localeCompare stance: code-unit order, no collation) — what lowers: the composed new Intl.NumberFormat("en-US").format(x) and x.toLocaleString("en-US") with default options, their default-locale forms (x.toLocaleString(), d.toLocaleString(), d.toLocaleTimeString()), and Intl.Segmenter with grapheme or word granularity; sentence segmentation, resolvedOptions, and the remaining Intl constructors remain unsupported
@@ -0,0 +1,41 @@
js-block-redeclaration.js:7:9 - error SC0001: Class declaration cannot implement overload list for 'collide'.
6 | {
7 | class collide {}
| ^~~~~~~
8 | async function collide() {}
js-block-redeclaration.js:8:3 - error SC0005: the declaration 'collide' is already declared in this block's statement list
7 | class collide {}
8 | async function collide() {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
9 | }
js-block-redeclaration.js:8:18 - error SC0001: Function with bodies can only merge with classes that are ambient.
7 | class collide {}
8 | async function collide() {}
| ^~~~~~~
9 | }
js-block-redeclaration.js:13:9 - error SC0006: the lexical declaration 'scoped' collides with a 'var' declaration of the same name in this block
12 | case 1:
13 | let scoped = 1;
| ^~~~~~
14 | break;
js-block-redeclaration.js:15:8 - error SC0001: Type '2' is not comparable to type '1'.
14 | break;
15 | case 2:
| ^
16 | var scoped = 2;
js-block-redeclaration.js:16:9 - error SC0001: Cannot initialize outer scoped variable 'scoped' in the same scope as block scoped declaration 'scoped'.
15 | case 2:
16 | var scoped = 2;
| ^~~~~~
17 | break;
@@ -0,0 +1,48 @@
js-single-statement-declaration.js:6:15 - error SC0007: a function declaration can only appear at the top level, inside a block, or as the body of an if statement
5 | // preflight — the shapes come from Test262's negative-parse suites.
6 | while (false) function inLoop() {}
| ^~~~~~~~~~~~~~~~~~~~
7 | l: class inLabel {}
js-single-statement-declaration.js:7:1 - error SC0001: A label is not allowed here.
6 | while (false) function inLoop() {}
7 | l: class inLabel {}
| ^
8 | if (true) async function inIf() {}
js-single-statement-declaration.js:7:4 - error SC0007: a class declaration cannot appear in a single-statement position
6 | while (false) function inLoop() {}
7 | l: class inLabel {}
| ^~~~~~~~~~~~~~~~
8 | if (true) async function inIf() {}
js-single-statement-declaration.js:8:11 - error SC0007: an async function or generator declaration can only appear at the top level or inside a block
7 | l: class inLabel {}
8 | if (true) async function inIf() {}
| ^~~~~~~~~~~~~~~~~~~~~~~~
9 | if (false) il: function labelledInIf() {}
js-single-statement-declaration.js:9:12 - error SC0001: A label is not allowed here.
8 | if (true) async function inIf() {}
9 | if (false) il: function labelledInIf() {}
| ^~
10 | do function* inDoWhile() {} while (false);
js-single-statement-declaration.js:9:16 - error SC0007: a labelled function declaration cannot be the body of a loop, a 'with' statement, or an 'if' clause
8 | if (true) async function inIf() {}
9 | if (false) il: function labelledInIf() {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
10 | do function* inDoWhile() {} while (false);
js-single-statement-declaration.js:10:4 - error SC0007: an async function or generator declaration can only appear at the top level or inside a block
9 | if (false) il: function labelledInIf() {}
10 | do function* inDoWhile() {} while (false);
| ^~~~~~~~~~~~~~~~~~~~~~~~
11 |
@@ -0,0 +1,20 @@
js-single-statement-strict.js:7:11 - error SC0007: strict mode code may not declare a function in a single-statement position
6 | "use strict";
7 | if (true) function inIf() {}
| ^~~~~~~~~~~~~~~~~~
8 | l: function inLabel() {}
js-single-statement-strict.js:8:1 - error SC0001: A label is not allowed here.
7 | if (true) function inIf() {}
8 | l: function inLabel() {}
| ^
9 |
js-single-statement-strict.js:8:4 - error SC0007: strict mode code may not declare a function in a single-statement position
7 | if (true) function inIf() {}
8 | l: function inLabel() {}
| ^~~~~~~~~~~~~~~~~~~~~
9 |
@@ -0,0 +1,26 @@
native-shim-monkeypatching.ts:11:17 - error SC2007: values of type '{ (path: string | number | URL, encoding: BufferEncoding): string; (path: string | number | URL, options: { encoding: BufferEncoding; }): string; (path: string | ... 1 more ... | URL): Buffer<...>; (path: string | URL, options: unknown): string | Buffer<...>; }' cannot be compiled: the type declares multiple call signatures (overloads), and a compiled function value is always one concrete signature
10 |
11 | export function bindReadFileSync(): typeof fs.readFileSync {
| ^~~~~~~~~~~~~~~~
12 | return fs.readFileSync.bind(fs);
hint: annotate the slot with the ONE signature the program actually calls (e.g. '(x: number) => string'), or wrap the overloaded function in a single-signature arrow
native-shim-monkeypatching.ts:16:3 - error SC2020: 'Object.defineProperty' is part of the standard library types but has no scriptc lowering yet
15 | export function defineReadFileSync(): void {
16 | Object.defineProperty(fs, "readFileSync", { value: () => "" });
| ^~~~~~~~~~~~~~~~~~~~~
17 | }
hint: the type checker sees the full standard library, but only the supported surface compiles (https://scriptc.dev/limitations)
native-shim-monkeypatching.ts:19:1 - error SC2004: uses of 'bindReadFileSync' inherit the blocker on its declaration
18 |
19 | bindReadFileSync();
| ^~~~~~~~~~~~~~~~
20 | defineReadFileSync();
hint: the declaration of 'bindReadFileSync' did not compile — fix the diagnostic reported there and these sites clear with it
@@ -43,18 +43,18 @@ fenced.ts:31:21 - error SC2020: 'ReadableStream.from() over Set<number> iterable
hint: arrays, Uint8Array, and strings are supported — spread other synchronous iterables into an array first: [...iterable]
fenced.ts:38:1 - error SC2020: 'fs.watchFile' is typed by @types/node but has no scriptc lowering yet
fenced.ts:38:1 - error SC2020: 'fs.openAsBlob' is typed by @types/node but has no scriptc lowering yet
37 | import { win32 } from "path";
38 | watchFile("x", () => {});
| ^~~~~~~~~~~~~~~~~~~~~~~~
38 | openAsBlob("x");
| ^~~~~~~~~~~~~~~
39 | on(new EventEmitter(), "tick");
hint: the type checker sees everything @types/node declares, but only the supported surface compiles (https://scriptc.dev/limitations)
fenced.ts:39:1 - error SC2020: 'events.on' is typed by @types/node but has no scriptc lowering yet
38 | watchFile("x", () => {});
38 | openAsBlob("x");
39 | on(new EventEmitter(), "tick");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40 | console.log(win32.sep);
@@ -142,41 +142,23 @@ fenced.ts:80:3 - error SC2020: 'RequestInit option 'integrity' in a static build
hint: the compiler does not preserve this RequestInit member's conversion or transport behavior
fenced.ts:84:3 - error SC2020: 'ReadableStream.tee' is typed by @types/node but has no scriptc lowering yet
83 | const body = (await fetch(url)).body!;
84 | body.tee();
| ^~~~~~~~
85 | const tee = body.tee;
hint: this operation is outside the native readable-stream implementation
fenced.ts:85:15 - error SC2020: 'ReadableStream.tee' is typed by @types/node but has no scriptc lowering yet
fenced.ts:85:15 - error SC2020: 'ReadableStream.tee in a static build' is typed by @types/node but has no scriptc lowering yet
84 | body.tee();
85 | const tee = body.tee;
| ^~~~~~~~
86 | body["tee"]();
hint: this operation is outside the native readable-stream implementation
hint: ReadableStream's locked compiles as a read, and getReader(), cancel(), tee(), pipeTo() and pipeThrough() as direct calls; values()/[Symbol.asyncIterator]() compile when consumed directly by for await, while method values and stored iterator handles remain unsupported
fenced.ts:86:3 - error SC2020: 'ReadableStream.tee' is typed by @types/node but has no scriptc lowering yet
85 | const tee = body.tee;
86 | body["tee"]();
| ^~~~~~~~~~~
87 | const bracketTee = body["tee"];
hint: this operation is outside the native readable-stream implementation
fenced.ts:87:22 - error SC2020: 'ReadableStream.tee' is typed by @types/node but has no scriptc lowering yet
fenced.ts:87:22 - error SC2020: 'ReadableStream.tee in a static build' is typed by @types/node but has no scriptc lowering yet
86 | body["tee"]();
87 | const bracketTee = body["tee"];
| ^~~~~~~~~~~
88 | }
hint: this operation is outside the native readable-stream implementation
hint: ReadableStream's locked compiles as a read, and getReader(), cancel(), tee(), pipeTo() and pipeThrough() as direct calls; values()/[Symbol.asyncIterator]() compile when consumed directly by for await, while method values and stored iterator handles remain unsupported
fenced.ts:93:23 - error SC2020: 'util.callbackify into a callback whose error parameter excludes null' is part of the standard library types but has no scriptc lowering yet
@@ -0,0 +1,8 @@
process-stream-listener-count.ts:5:28 - error SC0001: Property 'listenerCount' does not exist on type 'WriteStream'.
4 | process.stdout.once("drain", () => {});
5 | console.log(process.stdout.listenerCount("drain"));
| ^~~~~~~~~~~~~
6 |
hint: the project has no @types/node, so scriptc types Node with its bundled declarations, which list only the members that compile natively — 'listenerCount' does not compile natively yet (https://scriptc.dev/limitations); installing @types/node turns this into a located refusal with a hint
@@ -7,15 +7,6 @@ record-width.ts:12:25 - error SC2002: record shapes must match exactly or width-
hint: width subtyping compiles as a copy (each expected field copied off the source; extra fields drop) — this pair is outside the copy's rules; build a literal with exactly the expected fields instead
record-width.ts:26:20 - error SC2002: record shapes must match exactly or width-coerce: expected '{ m: ({ a: number; b: number }) => void }', got '{ extra: number; m: ({ a: number }) => void }' — field 'm': '({ a: number }) => void' does not lift into '({ a: number; b: number }) => void'
25 | };
26 | const dstM: DstM = srcM;
| ^~~~
27 | console.log(dstM);
hint: width subtyping compiles as a copy (each expected field copied off the source; extra fields drop) — this pair is outside the copy's rules; build a literal with exactly the expected fields instead
record-width.ts:27:13 - error SC1090: console.log of '{ m: ({ a: number; b: number }) => void }' values (function values have no inspect lowering (no runtime name exists — Node prints '[Function: name]'; pass the function's declared identifier directly to util.inspect for the baked form)) is not supported yet
26 | const dstM: DstM = srcM;
@@ -0,0 +1,8 @@
sloppy-implicit-global-write.js:5:1 - error SC1091: writing the undeclared name 'implicitGlobal' in a JavaScript source is not supported yet
4 | // names the Node-island route the sloppy semantics need (plan D-2/D-5).
5 | implicitGlobal = 42;
| ^~~~~~~~~~~~~~
6 | console.log(implicitGlobal);
hint: a write to an undeclared name has no native lowering: sloppy mode makes it a property on Node's global object, which a native binary has none of, and strict mode makes it throw; declare the name, or keep the module in a Node island (sloppy-mode programs route there)
@@ -7,15 +7,6 @@ stdlib-fence.ts:17:23 - error SC2020: 'Object.assign' is part of the standard li
hint: spread instead: { ...a, ...b } builds the merged record; what lowers: the empty-target literal-source shape (Object.assign({}, { ... }) IS the source literal) and merges INTO an index-signature record whose value slot every source value enters — other aliased targets are real mutation, and a function target (Object.assign(fn, { prop })) is a function-with-properties value the model cannot represent: bind the property separately
stdlib-fence.ts:18:14 - error SC2020: 'Reflect.has' is part of the standard library types but has no scriptc lowering yet
17 | const aliasedAssign = Object.assign(merged, { b: 2 }); // aliased targets stay fenced (real mutation of a live object)
18 | const refl = Reflect.has({ a: 1 }, "a");
| ^~~~~~~~~~~
19 | const parsedMs = Date.parse;
hint: the type checker sees the full standard library, but only the supported surface compiles (https://scriptc.dev/limitations)
stdlib-fence.ts:19:18 - error SC2020: 'Date.parse' is part of the standard library types but has no scriptc lowering yet
18 | const refl = Reflect.has({ a: 1 }, "a");
@@ -32,7 +23,7 @@ stdlib-fence.ts:20:7 - error SC2020: 'NumberFormat' is part of the standard libr
| ^~~
21 |
hint: Intl formatter values have no representation — the COMPOSED en-US forms lower: new Intl.NumberFormat("en-US").format(x) and x.toLocaleString("en-US") with default options; the rest is ICU locale data the binary does not carry
hint: Intl formatter values have no representation — the COMPOSED forms lower: new Intl.NumberFormat("en-US").format(x), x.toLocaleString("en-US") and x.toLocaleString() with default options, d.toLocaleString(), d.toLocaleTimeString(), and Intl.Segmenter with grapheme or word granularity; the formatter objects themselves (locale negotiation, resolvedOptions, options bags) remain unsupported
stdlib-fence.ts:20:13 - error SC2020: 'new Intl.NumberFormat' is part of the standard library types but has no scriptc lowering yet
@@ -77,14 +68,14 @@ stdlib-fence.ts:39:31 - error SC1090: '.split()' on a 'RegExp | string' separato
| ^~~~~~~~~~~~~~~~~~~~~~~~~
40 | const fixed = (1.5).toFixed(); // digit-free toFixed lowers now (the static ties-up integer)
stdlib-fence.ts:41:19 - error SC2020: 'Number.prototype.toLocaleString without a locale' is part of the standard library types but has no scriptc lowering yet
stdlib-fence.ts:41:43 - error SC2020: 'Number.prototype.toLocaleString at locale "de-DE"' is part of the standard library types but has no scriptc lowering yet
40 | const fixed = (1.5).toFixed(); // digit-free toFixed lowers now (the static ties-up integer)
41 | const localized = (1234.5).toLocaleString();
| ^~~~~~~~~~~~~~~~~~~~~~~~~
41 | const localized = (1234.5).toLocaleString("de-DE");
| ^~~~~~~
42 | // Unlowered call FORMS of lowered members. (push is fully variadic now —
hint: the default locale is the host environment's, which a compiled binary cannot carry — pass it explicitly: x.toLocaleString("en-US")
hint: what lowers is the default locale (no argument) and the composed en-US form — other locales are ICU data the binary does not negotiate yet
stdlib-fence.ts:47:1 - error SC2020: '.forEach with 2 arguments' is part of the standard library types but has no scriptc lowering yet
@@ -1,12 +1,3 @@
stream-completion-callback-error.ts:10:17 - error SC2020: 'write completion callbacks taking the error argument' is part of the standard library types but has no scriptc lowering yet
9 | });
10 | sink.write("a", (err) => console.log("written", err));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11 | sink.end((err?: Error | null) => console.log("ended", err));
hint: () => void callbacks are supported (listen for 'error' to observe failures)
stream-completion-callback-error.ts:11:10 - error SC2020: 'end callbacks with parameters' is part of the standard library types but has no scriptc lowering yet
10 | sink.write("a", (err) => console.log("written", err));
@@ -0,0 +1 @@
{ "plain": 1800, "san": 1900 }
@@ -0,0 +1 @@
{ "plain": 1800, "san": 1900 }
@@ -0,0 +1 @@
{ "plain": 3300, "san": 23000 }
@@ -0,0 +1 @@
{ "plain": 2000, "san": 5400 }
@@ -0,0 +1 @@
{ "plain": 3300, "san": 23000 }
@@ -0,0 +1 @@
{ "plain": 3300, "san": 23000 }
@@ -0,0 +1 @@
{ "plain": 2000, "san": 5400 }
@@ -0,0 +1 @@
{ "plain": 1400, "san": 2000 }
@@ -0,0 +1 @@
{ "plain": 1350, "san": 2250 }
@@ -0,0 +1 @@
{ "plain": 1500, "san": 2200 }
@@ -0,0 +1 @@
{ "plain": 1150, "san": 1900 }
@@ -0,0 +1 @@
{ "plain": 1550, "san": 2600 }
@@ -0,0 +1 @@
{ "plain": 1300, "san": 2000 }
@@ -0,0 +1 @@
{ "plain": 1200, "san": 2200 }
@@ -0,0 +1 @@
{ "plain": 2850, "san": 21650 }
@@ -0,0 +1 @@
{ "plain": 4163, "san": 7431 }
@@ -0,0 +1 @@
{ "plain": 2300, "san": 4100 }
@@ -0,0 +1 @@
{ "plain": 2579, "san": 9345 }
@@ -0,0 +1 @@
{ "plain": 2724, "san": 5297 }
@@ -0,0 +1 @@
{ "plain": 2350, "san": 5950 }
@@ -0,0 +1 @@
{ "plain": 2000, "san": 2600 }
@@ -0,0 +1 @@
{ "plain": 3121, "san": 5843 }
@@ -0,0 +1 @@
{ "plain": 2450, "san": 5700 }
@@ -0,0 +1 @@
{ "plain": 2673, "san": 4238 }
@@ -0,0 +1 @@
{ "plain": 4250, "san": 2850 }
@@ -0,0 +1 @@
{ "plain": 2575, "san": 3939 }
@@ -0,0 +1 @@
{ "plain": 2800, "san": 4200 }
@@ -0,0 +1 @@
{ "plain": 2850, "san": 4300 }
@@ -0,0 +1 @@
{ "plain": 2750, "san": 4100 }
@@ -0,0 +1 @@
{ "plain": 8004 }
@@ -0,0 +1 @@
{ "plain": 3300 }
@@ -0,0 +1 @@
{ "plain": 1600, "san": 2900 }
@@ -0,0 +1 @@
{ "plain": 2200, "san": 2500 }
@@ -0,0 +1 @@
{ "plain": 1400, "san": 2400 }
@@ -0,0 +1 @@
{ "plain": 1300, "san": 2700 }
@@ -0,0 +1 @@
{ "plain": 1300, "san": 2800 }
@@ -0,0 +1 @@
{ "plain": 1500, "san": 2400 }
@@ -0,0 +1 @@
{ "plain": 1450, "san": 2350 }
@@ -0,0 +1 @@
{ "plain": 3000, "san": 3600 }
@@ -0,0 +1 @@
{ "plain": 3100, "san": 3700 }
@@ -0,0 +1 @@
{ "plain": 3100, "san": 3700 }
@@ -0,0 +1 @@
{ "plain": 1900, "san": 2200 }
@@ -0,0 +1 @@
{ "plain": 4300, "san": 54700 }
@@ -0,0 +1 @@
{ "plain": 3300, "san": 10100 }
@@ -0,0 +1 @@
{ "plain": 5208, "san": 7954 }
@@ -0,0 +1 @@
{ "plain": 5900, "san": 56800 }
@@ -0,0 +1 @@
{ "plain": 9301, "san": 135316 }
@@ -0,0 +1 @@
{ "plain": 4051, "san": 5400 }
@@ -0,0 +1 @@
{ "plain": 3714, "san": 4365 }
@@ -0,0 +1 @@
{ "plain": 3440, "san": 4500 }
@@ -0,0 +1 @@
{ "plain": 2635, "san": 3894 }
@@ -0,0 +1 @@
{ "plain": 3000, "san": 4500 }
@@ -0,0 +1 @@
{ "plain": 4900, "san": 6100 }
@@ -0,0 +1 @@
{ "plain": 8000, "san": 8100 }
@@ -0,0 +1 @@
{ "plain": 4200, "san": 7100 }
@@ -0,0 +1 @@
{ "plain": 4500, "san": 5000 }
@@ -0,0 +1 @@
{ "plain": 4700, "san": 7300 }
@@ -0,0 +1 @@
{ "plain": 6300, "san": 8700 }
@@ -0,0 +1 @@
{ "plain": 4800, "san": 7700 }
@@ -0,0 +1 @@
{ "plain": 4500, "san": 7100 }
@@ -0,0 +1 @@
{ "plain": 4900, "san": 8500 }
@@ -0,0 +1 @@
{ "plain": 5300, "san": 8800 }
@@ -0,0 +1 @@
{ "plain": 2700, "san": 3400 }
@@ -0,0 +1 @@
{ "plain": 4340, "san": 4815 }
@@ -0,0 +1 @@
{ "plain": 5449, "san": 15501 }
@@ -0,0 +1 @@
{ "plain": 1455, "san": 3000 }
@@ -0,0 +1 @@
{ "plain": 2200, "san": 3200 }
@@ -0,0 +1 @@
{ "plain": 2700, "san": 4500 }
@@ -0,0 +1 @@
{ "plain": 2700, "san": 4500 }
@@ -0,0 +1 @@
{ "plain": 1300, "san": 3300 }
@@ -0,0 +1 @@
{ "plain": 1300, "san": 3800 }
@@ -0,0 +1 @@
{ "plain": 3100, "san": 9200 }
@@ -0,0 +1 @@
{ "plain": 5094, "san": 6883 }
@@ -0,0 +1 @@
{ "plain": 5138, "san": 7006 }
@@ -0,0 +1 @@
{ "plain": 5849, "san": 4152 }
@@ -0,0 +1 @@
{ "plain": 3793, "san": 7466 }
@@ -0,0 +1 @@
{ "plain": 2500, "san": 3400 }
@@ -0,0 +1 @@
{ "plain": 1603, "san": 3000 }

Some files were not shown because too many files have changed in this diff Show More