@scriptc/compiler 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ambient/scriptc-node-fallback.d.ts +25 -15
- package/dist/backend/cycle-analysis.js +1 -0
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/llvm/classes.js +21 -5
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +5 -0
- package/dist/backend/llvm/dyn.js +166 -99
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +2 -2
- package/dist/backend/llvm/emitter.js +79 -20
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +1 -1
- package/dist/backend/llvm/expr-bytes.js +28 -17
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-control.js +1 -1
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +18 -9
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +11 -1
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +11 -3
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +125 -17
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +23 -3
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +45 -2
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/shapes.js +8 -2
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +3 -6
- package/dist/backend/native-toolchain.js +53 -23
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +72 -0
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-native.js +4 -1
- package/dist/backend/runtime-pack-native.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.test.js +1 -1
- package/dist/backend/targets.js +10 -6
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +7 -0
- package/dist/backend/targets.test.js.map +1 -1
- package/dist/compat/fetch-profile.js +34 -4
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/diagnostics/diagnostic.js +2 -7
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/frontend/lowering/class-callbacks.d.ts +3 -3
- package/dist/frontend/lowering/class-callbacks.js +26 -15
- package/dist/frontend/lowering/class-callbacks.js.map +1 -1
- package/dist/frontend/lowering/class-construction.d.ts +12 -0
- package/dist/frontend/lowering/class-construction.js +156 -0
- package/dist/frontend/lowering/class-construction.js.map +1 -0
- package/dist/frontend/lowering/class-descriptors.d.ts +1 -0
- package/dist/frontend/lowering/class-descriptors.js +46 -5
- package/dist/frontend/lowering/class-descriptors.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +11 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.js +403 -48
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +2 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-instance-constructor.js +4 -1
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
- package/dist/frontend/lowering/class-method-values.d.ts +4 -1
- package/dist/frontend/lowering/class-method-values.js +72 -7
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.d.ts +5 -2
- package/dist/frontend/lowering/class-prototypes.js +121 -13
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-runtime-statics.d.ts +8 -0
- package/dist/frontend/lowering/class-runtime-statics.js +66 -0
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -0
- package/dist/frontend/lowering/class-static-data.js +2 -2
- package/dist/frontend/lowering/class-static-data.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.js +49 -13
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.js +19 -47
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/error-methods.d.ts +4 -1
- package/dist/frontend/lowering/error-methods.js +100 -1
- package/dist/frontend/lowering/error-methods.js.map +1 -1
- package/dist/frontend/lowering/expressions/native-proxy.js +3 -1
- package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +19 -11
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +38 -7
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +3 -4
- package/dist/frontend/lowering/expressions/optional-chains.js +69 -17
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/function-context.d.ts +11 -3
- package/dist/frontend/lowering/function-context.js +11 -5
- package/dist/frontend/lowering/function-context.js.map +1 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +1 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +39 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/lib-boundary.d.ts +2 -0
- package/dist/frontend/lowering/lib-boundary.js +54 -1
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.d.ts +7 -1
- package/dist/frontend/lowering/lower-builtin-values.js +113 -3
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +6 -5
- package/dist/frontend/lowering/lower-builtins.js +156 -41
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +8 -5
- package/dist/frontend/lowering/lower-calls.js +448 -83
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +13 -13
- package/dist/frontend/lowering/lower-classes.js +650 -176
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +9 -0
- package/dist/frontend/lowering/lower-containers.js +135 -36
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.js +3 -2
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +2 -2
- package/dist/frontend/lowering/lower-exprs.js +531 -126
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.js +12 -1
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +2 -0
- package/dist/frontend/lowering/lower-island.js +32 -10
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +220 -17
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.test.d.ts +1 -0
- package/dist/frontend/lowering/lower-modules.test.js +39 -0
- package/dist/frontend/lowering/lower-modules.test.js.map +1 -0
- package/dist/frontend/lowering/lower-stmts.d.ts +7 -3
- package/dist/frontend/lowering/lower-stmts.js +135 -26
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +1 -1
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +27 -1
- package/dist/frontend/lowering/lowerer.js +172 -50
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +149 -3
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +2 -0
- package/dist/frontend/lowering/surfaces.js +25 -8
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/text-decoder-encoding.d.ts +2 -0
- package/dist/frontend/lowering/text-decoder-encoding.js +5 -0
- package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -1
- package/dist/frontend/lowering/unregistered-class-types.test.js +3 -3
- package/dist/frontend/lowering/unregistered-class-types.test.js.map +1 -1
- package/dist/frontend/npm-static-prune.js +116 -34
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-prune.test.js +8 -0
- package/dist/frontend/npm-static-prune.test.js.map +1 -1
- package/dist/frontend/program.d.ts +1 -1
- package/dist/frontend/program.js +53 -24
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +18 -0
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/ts7/ast.js +4 -3
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.js +5 -10
- package/dist/frontend/ts7/semantic-json.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +9 -1
- package/dist/frontend/type-mapper.js +90 -13
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +23 -0
- package/dist/frontend/type-mapper.test.js.map +1 -1
- package/dist/frontend/union-discriminants.d.ts +1 -1
- package/dist/frontend/union-discriminants.js +2 -2
- package/dist/frontend/union-discriminants.js.map +1 -1
- package/dist/ir/analysis.js +2 -0
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/ir.d.ts +52 -33
- package/dist/ir/ir.js +142 -42
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +35 -0
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/serialize.js +15 -3
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.js +5 -1
- package/dist/ir/serialize.test.js.map +1 -1
- package/dist/ir/validate.js +80 -11
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +61 -1
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/native/sanitizer.js +3 -1
- package/dist/native/sanitizer.js.map +1 -1
- package/dist/native/toolchain.d.ts +1 -1
- package/dist/native/toolchain.js +26 -6
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +53 -1
- package/dist/native/toolchain.test.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +56 -81
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
import { describe, expect, test } from "vitest";
|
|
2
2
|
import { F64, NULL_T, STRING, UNDEFINED_T, VOID, mapOf, setOf } from "../ir/ir.js";
|
|
3
3
|
import { formatIrType, genResultRecord, ShapeRegistry, UnionRegistry, withUndefinedArm } from "./type-mapper.js";
|
|
4
|
+
describe("union arm lookup", () => {
|
|
5
|
+
test("indexes large unions while preserving exact equality for colliding function keys", () => {
|
|
6
|
+
const unions = new UnionRegistry();
|
|
7
|
+
const ordinary = { kind: "func", params: [], ret: VOID };
|
|
8
|
+
const explicit = { kind: "func", params: [], ret: VOID, argumentsAll: true };
|
|
9
|
+
const arms = [ordinary, explicit, ...Array.from({ length: 12 }, (_, i) => ({ kind: "record", shapeId: `r${i}` }))];
|
|
10
|
+
const union = unions.intern(arms);
|
|
11
|
+
for (let i = 0; i < arms.length; i++)
|
|
12
|
+
expect(unions.armTag(union, arms[i])).toBe(i);
|
|
13
|
+
expect(unions.armTag(union, { kind: "func", params: [], ret: VOID, restAbi: "typed" })).toBe(-1);
|
|
14
|
+
expect(unions.armTag(union, STRING)).toBe(-1);
|
|
15
|
+
expect(unions.armTag("missing", STRING)).toBe(-1);
|
|
16
|
+
});
|
|
17
|
+
test("sees finalized recursive arms after a missing lookup", () => {
|
|
18
|
+
const unions = new UnionRegistry();
|
|
19
|
+
const recursive = {};
|
|
20
|
+
const union = unions.recursiveRef(recursive);
|
|
21
|
+
expect(unions.armTag(union, STRING)).toBe(-1);
|
|
22
|
+
unions.finalizeRecursive(recursive, [F64, STRING, ...Array.from({ length: 10 }, (_, i) => ({ kind: "record", shapeId: `r${i}` }))]);
|
|
23
|
+
expect(unions.armTag(union, STRING)).toBe(1);
|
|
24
|
+
expect(unions.armTag(union, { kind: "record", shapeId: "r9" })).toBe(11);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
4
27
|
describe("nullable collection union builders", () => {
|
|
5
28
|
test.each([mapOf(STRING, F64), setOf(STRING)])("optional %j fields and generator results share the same union", (type) => {
|
|
6
29
|
const shapes = new ShapeRegistry();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-mapper.test.js","sourceRoot":"","sources":["../../src/frontend/type-mapper.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"type-mapper.test.js","sourceRoot":"","sources":["../../src/frontend/type-mapper.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export declare function discriminantField(shape: IrRecordShape | undefined, fiel
|
|
|
7
7
|
export declare function discriminantOwners(union: IrUnionDef, shapeOf: (id: string) => IrRecordShape | undefined): Map<string, number> | null;
|
|
8
8
|
/** A known literal set selects one storage arm only when every value has
|
|
9
9
|
* that same owner. The caller must still validate the payload conversion. */
|
|
10
|
-
export declare function literalUnionArm(union: IrUnionDef, values: readonly UnionLiteral[], shapeOf: (id: string) => IrRecordShape | undefined): (IrType & {
|
|
10
|
+
export declare function literalUnionArm(union: IrUnionDef, values: readonly UnionLiteral[], shapeOf: (id: string) => IrRecordShape | undefined, validatedOwners?: ReadonlyMap<string, number> | null): (IrType & {
|
|
11
11
|
kind: "record";
|
|
12
12
|
}) | null;
|
|
13
13
|
/** Preserve semantic cases through an exact arm permutation/subset.
|
|
@@ -49,10 +49,10 @@ export function discriminantOwners(union, shapeOf) {
|
|
|
49
49
|
}
|
|
50
50
|
/** A known literal set selects one storage arm only when every value has
|
|
51
51
|
* that same owner. The caller must still validate the payload conversion. */
|
|
52
|
-
export function literalUnionArm(union, values, shapeOf) {
|
|
52
|
+
export function literalUnionArm(union, values, shapeOf, validatedOwners) {
|
|
53
53
|
if (values.length === 0)
|
|
54
54
|
return null;
|
|
55
|
-
const owners = discriminantOwners(union, shapeOf);
|
|
55
|
+
const owners = validatedOwners === undefined ? discriminantOwners(union, shapeOf) : validatedOwners;
|
|
56
56
|
if (owners === null)
|
|
57
57
|
return null;
|
|
58
58
|
let tag;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union-discriminants.js","sourceRoot":"","sources":["../../src/frontend/union-discriminants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,mEAAmE;AACnE,MAAM,UAAU,iBAAiB,CAAC,KAAgC,EAAE,KAAa;IAC/E,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAChE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,KAAK,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAChH,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,IAAI,CAAC;IACtE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACvG,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,KAAmB;IACvD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;IAC5D,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpF,CAAC;AAED;mEACmE;AACnE,MAAM,UAAU,kBAAkB,CAChC,KAAiB,EACjB,OAAkD;IAElD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACxC,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACtG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,KAAK,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YAClE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QACjD,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IACxE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;6EAC6E;AAC7E,MAAM,UAAU,eAAe,CAC7B,KAAiB,EACjB,MAA+B,EAC/B,OAAkD;
|
|
1
|
+
{"version":3,"file":"union-discriminants.js","sourceRoot":"","sources":["../../src/frontend/union-discriminants.ts"],"names":[],"mappings":"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"}
|
package/dist/ir/analysis.js
CHANGED
|
@@ -48,6 +48,7 @@ export function dynDesc(t, recordsById, unionsById) {
|
|
|
48
48
|
case "nullT": return "null";
|
|
49
49
|
case "undefinedT": return "undefined";
|
|
50
50
|
case "dyn": return "unknown";
|
|
51
|
+
case "promise": return "Promise";
|
|
51
52
|
case "bytes": return BYTES_ELEMENT_NAME[t.elem];
|
|
52
53
|
case "object": return t.className.replace(/^%/, "");
|
|
53
54
|
case "union": {
|
|
@@ -63,6 +64,7 @@ export function dynDesc(t, recordsById, unionsById) {
|
|
|
63
64
|
case "set": return "Set";
|
|
64
65
|
case "regex": return "RegExp";
|
|
65
66
|
case "url": return "URL";
|
|
67
|
+
case "date": return "Date";
|
|
66
68
|
default: {
|
|
67
69
|
const handle = DYN_HANDLE_KINDS.get(t.kind);
|
|
68
70
|
if (handle)
|
package/dist/ir/analysis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/ir/analysis.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/ir/analysis.ts"],"names":[],"mappings":"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"}
|
package/dist/ir/ir.d.ts
CHANGED
|
@@ -360,8 +360,8 @@ export type IrType = {
|
|
|
360
360
|
| {
|
|
361
361
|
kind: "jsval";
|
|
362
362
|
}
|
|
363
|
-
/** A catch binding
|
|
364
|
-
*
|
|
363
|
+
/** A catch binding or its closure capture (never parameters, returns,
|
|
364
|
+
* fields, arms, elements or globals).
|
|
365
365
|
* Runtime representation is a refcounted snapshot box (ScrCaught) holding
|
|
366
366
|
* the taken exception: a kind tag plus the payload. Even NARROWER than
|
|
367
367
|
* dyn: the only expressions a caught value may appear in are `caughtTest`
|
|
@@ -789,6 +789,8 @@ export interface IrClassDef {
|
|
|
789
789
|
localCaptures?: IrParam[];
|
|
790
790
|
/** Capture holding the evaluated local base constructor, if any. */
|
|
791
791
|
localBaseCapture?: number;
|
|
792
|
+
/** Evaluated module-scope heritage constructor for a factory-produced base. */
|
|
793
|
+
baseValueGlobal?: string;
|
|
792
794
|
/** The JS-observable `.name` of the class (the runtime class object's
|
|
793
795
|
* name string, and what `C.name` folds to). Differs from `name` because
|
|
794
796
|
* IR names are program-qualified (`%m1.C`, `%cx…` for class
|
|
@@ -801,6 +803,13 @@ export interface IrClassDef {
|
|
|
801
803
|
/** Zero-argument native helper returning the shared prototype data object.
|
|
802
804
|
* Used when materializing an instance's own-property view. */
|
|
803
805
|
prototypeDataHelper?: string;
|
|
806
|
+
/** Native instance to its actual prototype, including factory captures and subclasses. */
|
|
807
|
+
instancePrototypeHelper?: string;
|
|
808
|
+
/** Stable module symbol identities for public instance layout fields. */
|
|
809
|
+
symbolFields?: {
|
|
810
|
+
field: string;
|
|
811
|
+
globalId: string;
|
|
812
|
+
}[];
|
|
804
813
|
/** RUNTIME-PROVIDED class (the builtin Error hierarchy): the struct, RC
|
|
805
814
|
* helpers, and vtable live in the runtime (ScrError / scr_error_*), so
|
|
806
815
|
* backends emit no definitions for it — only the preorder-interval
|
|
@@ -1550,14 +1559,15 @@ export declare const MAY_THROW_BYTES_METHODS: ReadonlySet<IrBytesIntrinsicMethod
|
|
|
1550
1559
|
* capture groups (JS would splice the captured values into the result) —
|
|
1551
1560
|
* both catchable: backends' may-throw analyses must seed on these two
|
|
1552
1561
|
* methods like a `throw`. */
|
|
1553
|
-
/** `match` takes a STRING receiver with args[0] the regex
|
|
1554
|
-
*
|
|
1555
|
-
*
|
|
1556
|
-
* `string[] | null` union: the matched slice [whole, ...captures] wrapped
|
|
1557
|
-
* into the array arm, or the interned null-arm instance for no match. A
|
|
1562
|
+
/** `match` takes a STRING receiver with args[0] the regex and produces
|
|
1563
|
+
* the PROGRAM-DEPENDENT `string[] | null` union: all whole matches for a
|
|
1564
|
+
* global regex, otherwise [whole, ...captures], or null for no match. A
|
|
1558
1565
|
* NONPARTICIPATING capture holds "" where Node's slot is undefined
|
|
1559
1566
|
* (SEMANTICS.md divergence). Never throws. */
|
|
1560
1567
|
export type IrRegexIntrinsicMethod = "test" | "match"
|
|
1568
|
+
/** exec uses the same string-first operands but keeps the g/y
|
|
1569
|
+
* lastIndex refusal, independently of global String.match iteration. */
|
|
1570
|
+
| "exec" | "lastIndex"
|
|
1561
1571
|
/** `s.matchAll(re)` — every match as its honest string[] slice (match's
|
|
1562
1572
|
* rule), drained EAGERLY into a fresh string[][]: the lazy iterator is
|
|
1563
1573
|
* unobservable across the lowered surface (strings are immutable; the
|
|
@@ -1587,12 +1597,12 @@ export type IrRegexIntrinsicMethod = "test" | "match"
|
|
|
1587
1597
|
* --dynamic builds — the frontend rejects it otherwise, so backends may
|
|
1588
1598
|
* assume the island runtime is linked when they see it; island exceptions
|
|
1589
1599
|
* bridge into the exception cell as catchable strings (may-throw). */
|
|
1590
|
-
export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew" | "weakMap.is" | "weakSet.is" | "weakMap.new" | "weakSet.new" | "dyn.fromEntries" | "arrayBuffer.new" | "arrayBuffer.is" | "arrayBuffer.isView" | "arrayBuffer.byteLengthGetter" | "arrayBuffer.byteLengthDescriptor" | "arrayBuffer.viewU8C" | "arrayBuffer.viewI8" | "arrayBuffer.viewU16" | "arrayBuffer.viewI16" | "arrayBuffer.viewU8" | "arrayBuffer.viewU32" | "arrayBuffer.viewI32" | "arrayBuffer.viewF32" | "arrayBuffer.viewF64" | "arrayBuffer.viewDV"
|
|
1600
|
+
export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew" | "weakMap.is" | "weakSet.is" | "weakMap.new" | "weakSet.new" | "dyn.fromEntries" | "bytes.constructor" | "bytes.instanceOf" | "bytes.construct" | "arrayBuffer.constructor" | "arrayBuffer.new" | "arrayBuffer.is" | "arrayBuffer.isView" | "arrayBuffer.byteLengthGetter" | "arrayBuffer.byteLengthDescriptor" | "arrayBuffer.viewU8C" | "arrayBuffer.viewI8" | "arrayBuffer.viewU16" | "arrayBuffer.viewI16" | "arrayBuffer.viewU8" | "arrayBuffer.viewU32" | "arrayBuffer.viewI32" | "arrayBuffer.viewF32" | "arrayBuffer.viewF64" | "arrayBuffer.viewDV"
|
|
1591
1601
|
/** Native static fetch and its Web-platform companions. fetch.start
|
|
1592
1602
|
* answers once the response head arrives; the response body readers
|
|
1593
1603
|
* consume the native body stream. AbortSignal and ReadableStream values
|
|
1594
1604
|
* are opaque checked-dynamic handles. */
|
|
1595
|
-
| "fetch.start" | "fetch.responseNew" | "fetch.responseArrayBuffer" | "fetch.responseJson" | "fetch.responseText" | "fetch.responseBytes" | "fetch.abortControllerNew" | "fetch.abortTimeout" | "fetch.abortNow" | "fetch.abortAny" | "fetch.streamNew" | "fetch.streamFrom" | "fetch.readerRead" | "island.eval"
|
|
1605
|
+
| "fetch.start" | "fetch.input" | "fetch.function" | "fetch.requestNew" | "fetch.headersNew" | "fetch.responseNew" | "fetch.responseArrayBuffer" | "fetch.responseJson" | "fetch.responseText" | "fetch.responseBytes" | "fetch.abortControllerNew" | "fetch.abortTimeout" | "fetch.abortNow" | "fetch.abortAny" | "fetch.webIs" | "fetch.streamIs" | "fetch.streamNew" | "fetch.streamFrom" | "fetch.readerRead" | "island.eval"
|
|
1596
1606
|
/** Load an embedded npm package's runtime entry in the island (cached by
|
|
1597
1607
|
* the engine's module registry) and take one export: args are the entry
|
|
1598
1608
|
* KEY (an embedded module's key, from IrModule.embedded) and the export
|
|
@@ -1637,7 +1647,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
1637
1647
|
/** Native own properties on globalThis keyed by symbol identity. */
|
|
1638
1648
|
| "dyn.globalSymbolGet" | "dyn.globalSymbolSet" | "dyn.globalSymbolHas" | "dyn.globalSymbolDelete"
|
|
1639
1649
|
/** Exact native class capsule identity, without materializing its fields. */
|
|
1640
|
-
| "dyn.typedRefIs"
|
|
1650
|
+
| "dyn.typedRefIs" | "dyn.classIs"
|
|
1641
1651
|
/** Destructuring pack over a dyn source — `const [a, b] = d`, a
|
|
1642
1652
|
* destructured dyn callback param (args: the source and the STATIC
|
|
1643
1653
|
* TypeError spelling, "" when the source has none — both borrowed;
|
|
@@ -1797,7 +1807,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
1797
1807
|
* forms, surrogate code points, and >U+10FFFF refused, per UTF8-decode
|
|
1798
1808
|
* without replacement); bad hex or an invalid sequence THROWS the
|
|
1799
1809
|
* spec's URIError ("URI malformed"), catchable. Borrow; results +1. */
|
|
1800
|
-
| "str.encodeUriComponent" | "str.decodeUriComponent"
|
|
1810
|
+
| "str.encodeUriComponent" | "str.decodeUriComponent" | "str.decodeUri"
|
|
1801
1811
|
/** RegExp.escape (ES2025): per-code-point EncodeForRegExpEscape —
|
|
1802
1812
|
* leading ASCII alphanumeric hex-escapes, syntax characters and '/'
|
|
1803
1813
|
* take a backslash, other punctuators/whitespace/line terminators
|
|
@@ -1826,12 +1836,14 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
1826
1836
|
* toFixed() fast path; num.toFixed implements an explicit fractionDigits
|
|
1827
1837
|
* with exact binary-value rounding and THROWS RangeError outside 0..100.
|
|
1828
1838
|
* Successful results +1. */
|
|
1829
|
-
| "num.toExponential" | "num.toFixed0" | "num.toFixed"
|
|
1839
|
+
| "num.toExponential" | "num.toFixed0" | "num.toFixed" | "num.toStringRadix"
|
|
1830
1840
|
/** Object.is over two numbers — the spec's SameValue on doubles: NaN
|
|
1831
1841
|
* equals NaN, +0 differs from -0, everything else is `===`. Plain bool
|
|
1832
1842
|
* result; never throws. (Union-armed operands take unionEq's sameValue
|
|
1833
1843
|
* flag instead — this is the both-f64 fast path.) */
|
|
1834
1844
|
| "num.sameValue"
|
|
1845
|
+
/** SameValue over checked values, including NaN, signed zero and reference identity. */
|
|
1846
|
+
| "dyn.sameValue"
|
|
1835
1847
|
/** `new Intl.NumberFormat("en-US").format(x)` and
|
|
1836
1848
|
* `x.toLocaleString("en-US")` with DEFAULT options — the one locale
|
|
1837
1849
|
* whose data the runtime embeds (Node's default-build locale): decimal
|
|
@@ -1880,7 +1892,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
1880
1892
|
* bools; sp.size/sp.toString are pure reads. sp.keyAt/sp.valAt are
|
|
1881
1893
|
* the for-of/forEach desugar's index reads (live — the loop re-reads
|
|
1882
1894
|
* sp.size each pass). */
|
|
1883
|
-
| "sp.new" | "sp.parse" | "sp.copy" | "sp.fromPairs" | "sp.with" | "url.searchParams" | "url.search" | "url.hash" | "sp.get" | "sp.getAll" | "sp.append" | "sp.set" | "sp.delete" | "sp.deleteValue" | "sp.has" | "sp.hasValue" | "sp.sort" | "sp.size" | "sp.toString" | "sp.keyAt" | "sp.valAt"
|
|
1895
|
+
| "sp.new" | "sp.newChecked" | "sp.parse" | "sp.copy" | "sp.fromPairs" | "sp.with" | "url.searchParams" | "url.search" | "url.hash" | "sp.get" | "sp.getAll" | "sp.append" | "sp.set" | "sp.delete" | "sp.deleteValue" | "sp.has" | "sp.hasValue" | "sp.sort" | "sp.size" | "sp.toString" | "sp.keyAt" | "sp.valAt"
|
|
1884
1896
|
/** node:querystring (scr_qs.c — link-gated by moduleUsesQs; NOT
|
|
1885
1897
|
* URLSearchParams: the legacy codec's escaping and '+' rules differ).
|
|
1886
1898
|
* qs.escape is Node's qsEscape, which encodes exactly the component
|
|
@@ -1971,7 +1983,9 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
1971
1983
|
/** Static-native fork startup and IPC. process.forkTarget initializes a
|
|
1972
1984
|
* re-executed child's inherited channel and returns its embedded target id
|
|
1973
1985
|
* (-1 in the parent). The remaining entries mirror Node's JSON channel. */
|
|
1974
|
-
| "process.forkTarget" | "cp.fork" | "child.connected" | "child.send" | "child.sendCb" | "child.disconnect" | "child.onMessage" | "child.onDisconnect" | "
|
|
1986
|
+
| "process.forkTarget" | "cp.fork" | "child.connected" | "child.send" | "child.sendCb" | "child.disconnect" | "child.onMessage" | "child.onDisconnect" | "child.onSpawn"
|
|
1987
|
+
/** Rest listeners use the checked function bridge to pack event arguments. */
|
|
1988
|
+
| "child.onDyn" | "process.connected" | "process.send" | "process.sendCb" | "process.disconnect" | "process.onMessage" | "process.onDisconnect"
|
|
1975
1989
|
/** child_process.execFile's callback slice: starts an all-piped child,
|
|
1976
1990
|
* captures stdout/stderr, and moves the error-first callback into the
|
|
1977
1991
|
* child registry. The callback shape is program-dependent and checked
|
|
@@ -1991,7 +2005,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
1991
2005
|
* child from the loop's keep-alive set — it is still reaped while the
|
|
1992
2006
|
* loop runs for other reasons, and one the loop never reaps is left to
|
|
1993
2007
|
* the OS at exit. All receivers borrowed. */
|
|
1994
|
-
| "child.pid" | "child.exitCode" | "child.killed" | "child.kill" | "child.killNum" | "child.unref"
|
|
2008
|
+
| "child.pid" | "child.exitCode" | "child.killed" | "child.kill" | "child.killNum" | "child.unref" | "child.ref"
|
|
1995
2009
|
/** The piped-output streams (stdio mode 3 — scr_child.c's stream
|
|
1996
2010
|
* slice). child.stdout/child.stderr answer the checker's
|
|
1997
2011
|
* `Readable | null` union (type-directed construction in the backend
|
|
@@ -2467,7 +2481,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
2467
2481
|
* runtime algorithm string (md5/sha1/sha256); update returns the same
|
|
2468
2482
|
* handle by retained identity, copy snapshots Hash state, and digest
|
|
2469
2483
|
* finalizes the handle and returns either a Buffer or encoded string. */
|
|
2470
|
-
| "crypto.hashNew" | "crypto.hmacNewStr" | "crypto.hmacNewBytes" | "crypto.hashUpdateStr" | "crypto.hashUpdateBytes" | "crypto.hmacUpdateStr" | "crypto.hmacUpdateBytes" | "crypto.hashCopy" | "crypto.hashDigestString" | "crypto.hashDigestBuffer" | "crypto.hmacDigestString" | "crypto.hmacDigestBuffer" | "crypto.timingSafeEqual" | "crypto.randomFill" | "crypto.randomFillRest" | "crypto.randomInt" | "crypto.pbkdf2" | "crypto.randomBytesCb" | "crypto.pbkdf2Cb"
|
|
2484
|
+
| "crypto.native" | "crypto.hashNew" | "crypto.hmacNewStr" | "crypto.hmacNewBytes" | "crypto.hashUpdateStr" | "crypto.hashUpdateBytes" | "crypto.hmacUpdateStr" | "crypto.hmacUpdateBytes" | "crypto.hashCopy" | "crypto.hashDigestString" | "crypto.hashDigestBuffer" | "crypto.hmacDigestString" | "crypto.hmacDigestBuffer" | "crypto.timingSafeEqual" | "crypto.randomFill" | "crypto.randomFillRest" | "crypto.randomInt" | "crypto.pbkdf2" | "crypto.randomBytesCb" | "crypto.pbkdf2Cb"
|
|
2471
2485
|
/** crypto.randomBytes(n) → a real u8 Buffer (+1). THROWS Node's
|
|
2472
2486
|
* RangeError on out-of-range sizes, exactly like the composed
|
|
2473
2487
|
* randomBytesToString (which keeps its one-libCall lowering — the two
|
|
@@ -2489,7 +2503,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
2489
2503
|
/** Buffer.byteLength(string, enc) — enc a NORMALIZED literal like
|
|
2490
2504
|
* fromStr's — and Buffer.isEncoding(name) over a runtime string
|
|
2491
2505
|
* (case-insensitive against Node's alias set). Pure; never throw. */
|
|
2492
|
-
| "buffer.byteLenStr" | "buffer.isEncoding"
|
|
2506
|
+
| "buffer.byteLenDyn" | "buffer.byteLenStr" | "buffer.isEncoding"
|
|
2493
2507
|
/** Buffer.concat(list, totalLength): the concatenation truncated or
|
|
2494
2508
|
* zero-padded to the total. THROWS Node's 'length' RangeError on a
|
|
2495
2509
|
* negative/non-integer total (may-throw seed). */
|
|
@@ -2611,7 +2625,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
2611
2625
|
* apply/call thisArg), or the undefined dyn singleton with none bound
|
|
2612
2626
|
* (the strict-mode plain-call answer, the old constant). Zero args →
|
|
2613
2627
|
* dyn (+1). Never throws. */
|
|
2614
|
-
| "dyn.this"
|
|
2628
|
+
| "dyn.dataViewIs" | "dyn.construct" | "dyn.this" | "dyn.generatorThis"
|
|
2615
2629
|
/** process.execPath: the compiled binary's own resolved absolute path
|
|
2616
2630
|
* (one interned string, +1 per read) — the honest answer where Node's
|
|
2617
2631
|
* is the node executable's (SEMANTICS.md divergence 12). Never throws. */
|
|
@@ -2622,7 +2636,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
2622
2636
|
| "process.arch"
|
|
2623
2637
|
/** Stable native version dictionary. node/openssl identify compatibility
|
|
2624
2638
|
* targets; components absent from the native runtime are omitted. */
|
|
2625
|
-
| "process.versions" | "process.builtinId" | "process.builtinModule" | "process.builtinUnsupported" | "process.hrtimeValue"
|
|
2639
|
+
| "process.versions" | "process.builtinId" | "process.builtinModule" | "process.builtinUnsupported" | "fs.callbackValue" | "fs.callbackCall" | "process.hrtimeValue"
|
|
2626
2640
|
/** process.versions.node: the runtime's Node COMPATIBILITY TARGET —
|
|
2627
2641
|
* there is no Node under the binary, so this reports the version whose
|
|
2628
2642
|
* semantics the runtime implements (SEMANTICS.md divergence 60, the
|
|
@@ -2789,7 +2803,8 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
2789
2803
|
* receiver (already allocated by the derived class's new) + borrowed
|
|
2790
2804
|
* message, void; the receiver's type names the builtin class whose name
|
|
2791
2805
|
* field to stamp. error.toString: borrowed `%Error`-typed receiver, +1
|
|
2792
|
-
* string in Node's "name: message" shape.
|
|
2806
|
+
* string in Node's "name: message" shape. Formatting can invoke a user
|
|
2807
|
+
* message accessor, which can throw. */
|
|
2793
2808
|
| "error.new"
|
|
2794
2809
|
/** ECMAScript constructors with raw checked-dynamic message/options.
|
|
2795
2810
|
* Options retain cause presence; constructor calls borrow their args.
|
|
@@ -2799,7 +2814,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
2799
2814
|
* when absent); hasCause distinguishes absence from present undefined. */
|
|
2800
2815
|
| "error.cause" | "error.hasCause"
|
|
2801
2816
|
/** Assignment borrows both operands and retains the new cause. */
|
|
2802
|
-
| "error.setCause" | "error.deleteCause"
|
|
2817
|
+
| "error.setCause" | "error.defineCause" | "error.deleteCause"
|
|
2803
2818
|
/** The compiler-resolved Node-parity throw for always-throwing lowered
|
|
2804
2819
|
* arms (ERR_INVALID_THIS receivers, ERR_MISSING_ARGS arity ladders,
|
|
2805
2820
|
* the symbol-to-string TypeError): args are [error-kind f64 (the
|
|
@@ -2818,7 +2833,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
2818
2833
|
* valueOf/toString ordering; user throws propagate). Borrowed dyn;
|
|
2819
2834
|
* f64 result, or a throw. Used by statically lowered numeric coercions
|
|
2820
2835
|
* whose checker type remained any. */
|
|
2821
|
-
| "dyn.numberConstructor" | "dyn.toNumberCoerce" | "dyn.add" | "dyn.arithmetic" | "dyn.bitwise" | "dyn.proxyNew"
|
|
2836
|
+
| "dyn.numberConstructor" | "dyn.bigintConstructor" | "dyn.toNumberCoerce" | "dyn.add" | "dyn.arithmetic" | "dyn.compare" | "dyn.bitwise" | "dyn.proxyNew"
|
|
2822
2837
|
/** A read of a `declare`d const NOTHING defines (the bundler-define
|
|
2823
2838
|
* pattern — __VERSION__): always throws the catchable ReferenceError
|
|
2824
2839
|
* Node raises at the access ("<name> is not defined"). args[0] is the
|
|
@@ -2875,7 +2890,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
2875
2890
|
* JS). Strings/arrays/bytes answer their index keys; other scalars an
|
|
2876
2891
|
* empty array; null/undefined throw Node's catchable TypeError
|
|
2877
2892
|
* ("Cannot convert undefined or null to object"). */
|
|
2878
|
-
| "dyn.objKeys" | "dyn.forInKeys" | "dyn.hasOwn" | "dyn.propertyIsEnumerable" | "dyn.assign" | "dyn.copyDataProperties"
|
|
2893
|
+
| "dyn.objKeys" | "dyn.forInKeys" | "dyn.hasOwn" | "dyn.propertyIsEnumerable" | "dyn.assign" | "dyn.copyDataProperties" | "dyn.objectRest"
|
|
2879
2894
|
/** Variadic Object.assign over CHECKED-DYNAMIC targets (`Object.assign(
|
|
2880
2895
|
* {}, ...arr.map(f), tail)` — the option-table merge): the lowering
|
|
2881
2896
|
* builds one fresh dyn pack of sources (packPush retains a plain source
|
|
@@ -2893,14 +2908,14 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
2893
2908
|
* drives the real iterator protocol, whose failure describes the VALUE
|
|
2894
2909
|
* ("object null is not iterable (cannot read property
|
|
2895
2910
|
* Symbol(Symbol.iterator))"). The frontend picks by position. */
|
|
2896
|
-
| "dyn.packPushSpreadIter" | "dyn.assignAll"
|
|
2911
|
+
| "dyn.packPushSpreadIter" | "dyn.assignAll" | "dyn.reflectApply"
|
|
2897
2912
|
/** `Object.create(null)` (scr_json.c): a fresh NULL-PROTOTYPE dyn
|
|
2898
2913
|
* dictionary. The checked-dynamic tree's OBJ dispatch is already own-member-only —
|
|
2899
2914
|
* Node's null-proto answer — so the flag's whole job is the observations
|
|
2900
2915
|
* that SEE the prototype: inspect's "[Object: null prototype]" prefix
|
|
2901
2916
|
* and deepStrictEqual's prototype gate. Never throws. Static builds
|
|
2902
2917
|
* only; --dynamic routes Object.create through the engine instead. */
|
|
2903
|
-
| "dyn.objCreateNullProto" | "dyn.arrayPrototype" | "dyn.classPrototype" | "dyn.classBasePrototype" | "dyn.classSuper" | "dyn.assignPrototype" | "dyn.objCreate" | "dyn.objCreateWithProperties" | "dyn.getPrototype" | "dyn.setPrototype" | "dyn.getOwnPropertyNames" | "dyn.getOwnPropertySymbols" | "dyn.getOwnPropertyDescriptors" | "dyn.preventExtensions" | "dyn.isExtensible" | "dyn.seal" | "dyn.isSealed" | "dyn.objValues" | "dyn.objEntries"
|
|
2918
|
+
| "dyn.objCreateNullProto" | "dyn.arrayPrototype" | "dyn.objectPrototype" | "dyn.functionApply" | "dyn.builtinMethod" | "dyn.classPrototype" | "dyn.classBasePrototype" | "dyn.classInherit" | "dyn.classSuper" | "dyn.assignPrototype" | "dyn.objCreate" | "dyn.objCreateWithProperties" | "dyn.getPrototype" | "dyn.setPrototype" | "dyn.getOwnPropertyNames" | "dyn.ownKeys" | "dyn.getOwnPropertySymbols" | "dyn.getOwnPropertyDescriptors" | "dyn.preventExtensions" | "dyn.isExtensible" | "dyn.seal" | "dyn.isSealed" | "dyn.objValues" | "dyn.objEntries"
|
|
2904
2919
|
/** structuredClone over the checked-dynamic tree (scr_json.c): the JSON-safe subset plus
|
|
2905
2920
|
* bytes (a fresh copy — a Buffer clones as a plain Uint8Array, like
|
|
2906
2921
|
* Node), deep. Functions and handle kinds throw the spec's catchable
|
|
@@ -2921,7 +2936,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
2921
2936
|
* strings (the lowering completes an absent flags to ""); result +1.
|
|
2922
2937
|
* The result TYPE is the regex kind, so the link switch pulls the
|
|
2923
2938
|
* engine exactly like a literal. */
|
|
2924
|
-
| "regex.new" | "regex.newChecked"
|
|
2939
|
+
| "regex.new" | "regex.resetLastIndex" | "regex.newChecked"
|
|
2925
2940
|
/** structuredClone with a NON-EMPTY transfer array of static values:
|
|
2926
2941
|
* nothing static is transferable, so the call always throws Node's
|
|
2927
2942
|
* catchable DataCloneError ("Found invalid value in transferList.") —
|
|
@@ -3017,7 +3032,7 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
3017
3032
|
* parsed dyn — malformed input rejects with the parse's SyntaxError,
|
|
3018
3033
|
* sc.buffer: the concatenated bytes) or rejected with the stream's
|
|
3019
3034
|
* error / ERR_STREAM_PREMATURE_CLOSE. */
|
|
3020
|
-
| "sc.text" | "sc.json" | "sc.buffer" | "readable.newDyn" | "writable.newDyn" | "duplex.newDyn" | "transform.newDyn" | "passthrough.newDyn" | "readable.initDyn" | "writable.initDyn" | "duplex.initDyn" | "transform.initDyn" | "passthrough.initDyn" | "readable.push" | "readable.pushStr" | "readable.pushNull" | "readable.pushU" | "readable.pushDyn" | "readable.unshift" | "readable.unshiftStr" | "readable.read" | "readable.pause" | "readable.resume" | "readable.setEncoding"
|
|
3035
|
+
| "sc.text" | "sc.json" | "sc.buffer" | "readable.newDyn" | "writable.newDyn" | "duplex.newDyn" | "transform.newDyn" | "passthrough.newDyn" | "readable.initDyn" | "writable.initDyn" | "duplex.initDyn" | "transform.initDyn" | "passthrough.initDyn" | "readable.push" | "readable.pushStr" | "readable.pushNull" | "readable.pushU" | "readable.pushDyn" | "readable.unshift" | "readable.unshiftStr" | "readable.read" | "readable.readDyn" | "stream.onDyn" | "readable.pause" | "readable.resume" | "readable.setEncoding"
|
|
3021
3036
|
/** push(chunk, enc) with a literal non-utf8 encoding, and the
|
|
3022
3037
|
* defaultEncoding option's push side (how push(string) decodes —
|
|
3023
3038
|
* Buffer.from(chunk, enc)); both carry the CANONICAL literal. */
|
|
@@ -3350,14 +3365,14 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
3350
3365
|
* TextEncoder.encode needs no libFn: its matching forms
|
|
3351
3366
|
* lower to buffer.fromStr(s, "utf8") (identical bytes — ScrStr storage
|
|
3352
3367
|
* is well-formed UTF-8). Borrowed arg; owned (+1) string; never throws. */
|
|
3353
|
-
| "text.decode"
|
|
3368
|
+
| "text.decode" | "bytes.bufferSource" | "text.decodeBufferSource" | "text.decodeOptions" | "text.decodeStream" | "text.decodeLegacyOptions"
|
|
3354
3369
|
/** TextDecoder.decode for a compile-time non-UTF-8 WHATWG label. The
|
|
3355
3370
|
* second f64 is the frontend-owned encoding id consumed by scr_bytes.c;
|
|
3356
3371
|
* label aliases/case/ASCII whitespace are canonicalized before IR. The
|
|
3357
3372
|
* mapping tables are generated from the pinned Node 24 oracle, keeping
|
|
3358
3373
|
* output portable without an ICU/iconv dependency. Borrowed args; owned
|
|
3359
3374
|
* (+1) string; never throws. */
|
|
3360
|
-
| "text.decodeLegacy"
|
|
3375
|
+
| "text.decodeLegacy" | "text.decoderEncoding"
|
|
3361
3376
|
/** The wider sync fs slice (scr_lib.c), all throwing catchably with
|
|
3362
3377
|
* Node's errno message shapes and `.code` stamped like the rest of
|
|
3363
3378
|
* sync fs. unlink/chmod/chown wrap the syscalls 1:1 (Node reports the
|
|
@@ -3441,6 +3456,9 @@ export type IrLibFn = "ffi.argument" | "ffi.memoryModule" | "intl.segmenterNew"
|
|
|
3441
3456
|
* pairs like cp.execSync's), cwd ""=inherit. Same event/loop story as
|
|
3442
3457
|
* cp.spawn. */
|
|
3443
3458
|
| "cp.spawnOpts"
|
|
3459
|
+
/** Runtime options normalized into the native spawn core; unsupported
|
|
3460
|
+
* process features retain explicit refusals. (command, args, options). */
|
|
3461
|
+
| "cp.spawnDynamic"
|
|
3444
3462
|
/** Atomics.wait(int32Array, idx, expected, timeoutMs) → "not-equal"
|
|
3445
3463
|
* when the element differs from `expected`, else a real nanosleep for
|
|
3446
3464
|
* the timeout and "timed-out" (scr_lib.c). scriptc has no threads —
|
|
@@ -4620,6 +4638,7 @@ export type IrExpr =
|
|
|
4620
4638
|
kind: "dynIterN";
|
|
4621
4639
|
value: IrExpr;
|
|
4622
4640
|
count: number;
|
|
4641
|
+
notIterableMessage?: string;
|
|
4623
4642
|
type: IrType;
|
|
4624
4643
|
loc: SrcLoc;
|
|
4625
4644
|
}
|
|
@@ -5185,23 +5204,23 @@ export declare function classDynViewSupported(fields: readonly {
|
|
|
5185
5204
|
* JSON-safe data, numeric typed arrays (retained views), identity-preserving class
|
|
5186
5205
|
* references, undefined-armed unions of those arms, boxable function types,
|
|
5187
5206
|
* and the runtime HANDLE kinds (boxed by reference — DYN_HANDLE_KINDS). */
|
|
5188
|
-
export declare function canConvertToDyn(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5207
|
+
export declare function canConvertToDyn(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined, visiting?: Set<string>): boolean;
|
|
5189
5208
|
/** A type a dyn value can be VALIDATED into — the dynCheck domain:
|
|
5190
5209
|
* JSON-safe data, numeric typed arrays (retained views), the %Error extraction,
|
|
5191
5210
|
* undefined-armed unions of JSON-safe arms, adaptable function types,
|
|
5192
5211
|
* and the runtime HANDLE kinds (a tag-checked reference unwrap —
|
|
5193
5212
|
* DYN_HANDLE_KINDS). */
|
|
5194
|
-
export declare function canDynCheckTo(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5213
|
+
export declare function canDynCheckTo(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined, visiting?: Set<string>): boolean;
|
|
5195
5214
|
/** A closure type that can BOX into the checked-dynamic tree's function kind (dynFrom):
|
|
5196
5215
|
* every param dyn or dynCheckable (the thunk validates dyn arguments into
|
|
5197
5216
|
* them), return void, dyn, or dyn-convertible (the thunk converts it
|
|
5198
5217
|
* back). */
|
|
5199
|
-
export declare function canBoxFuncIntoDyn(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5218
|
+
export declare function canBoxFuncIntoDyn(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined, visiting?: Set<string>): boolean;
|
|
5200
5219
|
/** A closure type a dyn function value can ADAPT to (dynCheck): every
|
|
5201
5220
|
* param dyn or dyn-convertible (the adapter converts typed arguments into
|
|
5202
5221
|
* dyn), return void, dyn, or dynCheckable (the adapter validates the dyn
|
|
5203
5222
|
* result). */
|
|
5204
|
-
export declare function canAdaptDynFuncTo(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined): boolean;
|
|
5223
|
+
export declare function canAdaptDynFuncTo(t: IrType, getRecord: (shapeId: string) => IrRecordShape | undefined, getUnion: (unionId: string) => IrUnionDef | undefined, visiting?: Set<string>): boolean;
|
|
5205
5224
|
/** The MARSHAL-direction boundary (jsMarshal): everything that can cross
|
|
5206
5225
|
* out and back (canCrossIslandBoundary) plus qualifying closures — those
|
|
5207
5226
|
* enter as host functions but never EXIT (jsExit keeps the narrower
|