@scriptc/compiler 0.3.1 → 0.3.2
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 +342 -16
- package/dist/backend/executable-features.js +1 -0
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/literals.d.ts +7 -0
- package/dist/backend/literals.js +32 -0
- package/dist/backend/literals.js.map +1 -1
- package/dist/backend/literals.test.js +17 -1
- package/dist/backend/literals.test.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +15 -4
- package/dist/backend/llvm/alloc.js +39 -15
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/alloc.test.js +15 -1
- package/dist/backend/llvm/alloc.test.js.map +1 -1
- package/dist/backend/llvm/appended-array-literals.d.ts +2 -0
- package/dist/backend/llvm/appended-array-literals.js +109 -0
- package/dist/backend/llvm/appended-array-literals.js.map +1 -0
- package/dist/backend/llvm/appended-array-literals.test.d.ts +1 -0
- package/dist/backend/llvm/appended-array-literals.test.js +90 -0
- package/dist/backend/llvm/appended-array-literals.test.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.d.ts +4 -1
- package/dist/backend/llvm/call-lifetimes.js +51 -3
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/classes.js +10 -2
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +2 -2
- package/dist/backend/llvm/dense-array-access.js +17 -12
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.test.js +15 -2
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +2 -0
- package/dist/backend/llvm/dyn.js +11 -2
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +43 -2
- package/dist/backend/llvm/emitter.js +306 -32
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +122 -6
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +8 -0
- package/dist/backend/llvm/expr-callbacks.js +81 -1
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +12 -1
- package/dist/backend/llvm/expr-calls.js +126 -54
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +7 -0
- package/dist/backend/llvm/expr-containers.js +38 -7
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +2 -0
- package/dist/backend/llvm/expr-control.d.ts +8 -0
- package/dist/backend/llvm/expr-control.js +103 -69
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +2 -2
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +7 -0
- package/dist/backend/llvm/expr-primitives.js +30 -26
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +11 -1
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.d.ts +8 -0
- package/dist/backend/llvm/expr-stream-bridges.js +77 -8
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js +49 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
- package/dist/backend/llvm/int32-abi.d.ts +18 -2
- package/dist/backend/llvm/int32-abi.js +23 -2
- package/dist/backend/llvm/int32-abi.js.map +1 -1
- package/dist/backend/llvm/int32-abi.test.js +75 -1
- package/dist/backend/llvm/int32-abi.test.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +7 -0
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +58 -0
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +76 -9
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +5 -3
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.d.ts +24 -2
- package/dist/backend/llvm/local-union-storage.js +127 -12
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +106 -1
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
- package/dist/backend/llvm/record-results.d.ts +26 -0
- package/dist/backend/llvm/record-results.js +252 -0
- package/dist/backend/llvm/record-results.js.map +1 -0
- package/dist/backend/llvm/reference-effects.js +2 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-writes.js +15 -9
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/regions.d.ts +67 -0
- package/dist/backend/llvm/regions.js +309 -0
- package/dist/backend/llvm/regions.js.map +1 -0
- package/dist/backend/llvm/regions.test.d.ts +1 -0
- package/dist/backend/llvm/regions.test.js +173 -0
- package/dist/backend/llvm/regions.test.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +34 -7
- package/dist/backend/llvm/shapes.js +31 -16
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +7 -6
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/split-loops.js +1 -1
- package/dist/backend/llvm/split-loops.js.map +1 -1
- package/dist/backend/llvm/stack-objects.d.ts +29 -0
- package/dist/backend/llvm/stack-objects.js +130 -0
- package/dist/backend/llvm/stack-objects.js.map +1 -0
- package/dist/backend/llvm/stack-objects.test.d.ts +1 -0
- package/dist/backend/llvm/stack-objects.test.js +252 -0
- package/dist/backend/llvm/stack-objects.test.js.map +1 -0
- package/dist/backend/llvm/string-reads.d.ts +4 -1
- package/dist/backend/llvm/string-reads.js +89 -9
- package/dist/backend/llvm/string-reads.js.map +1 -1
- package/dist/backend/llvm/switch-dispatch.js +5 -4
- package/dist/backend/llvm/switch-dispatch.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +2 -0
- package/dist/backend/llvm/walkers.js +4 -2
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/may-throw.js +1 -0
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +5 -0
- package/dist/backend/native/executable.js +16 -1
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +1 -1
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +2 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +1 -0
- package/dist/backend/native-link-info-core.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-core.d.ts +1 -0
- package/dist/backend/runtime-pack-core.js +1 -0
- package/dist/backend/runtime-pack-core.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/target-diagnostics.js +14 -0
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +13 -0
- package/dist/backend/target-diagnostics.test.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +1 -0
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/frontend/experimental-import.d.ts +12 -0
- package/dist/frontend/experimental-import.js +63 -0
- package/dist/frontend/experimental-import.js.map +1 -0
- package/dist/frontend/lowering/builtin-calls.d.ts +6 -1
- package/dist/frontend/lowering/builtin-calls.js +36 -0
- package/dist/frontend/lowering/builtin-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/console.d.ts +16 -6
- package/dist/frontend/lowering/builtins/console.js +33 -9
- package/dist/frontend/lowering/builtins/console.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.js +20 -0
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.d.ts +2 -2
- package/dist/frontend/lowering/builtins/json.js +13 -4
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +16 -1
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/numbers.d.ts +1 -0
- package/dist/frontend/lowering/builtins/numbers.js +17 -0
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/operating-system.d.ts +18 -0
- package/dist/frontend/lowering/builtins/operating-system.js +361 -1
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.js +15 -3
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.js +109 -2
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/text-codecs.d.ts +3 -4
- package/dist/frontend/lowering/builtins/text-codecs.js +3 -4
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
- package/dist/frontend/lowering/checked-promise-all.d.ts +10 -3
- package/dist/frontend/lowering/checked-promise-all.js +52 -6
- package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +6 -3
- package/dist/frontend/lowering/class-dynamic-dispatch.js +54 -31
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.js +34 -4
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.js +8 -4
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.js +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.js +91 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.d.ts +18 -2
- package/dist/frontend/lowering/cycle-initialization.js +166 -12
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.js +7 -2
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.test.js +28 -0
- package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +5 -56
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/generator-delegation.d.ts +8 -0
- package/dist/frontend/lowering/generator-delegation.js +231 -10
- package/dist/frontend/lowering/generator-delegation.js.map +1 -1
- package/dist/frontend/lowering/lifetime-regions.d.ts +11 -0
- package/dist/frontend/lowering/lifetime-regions.js +216 -0
- package/dist/frontend/lowering/lifetime-regions.js.map +1 -0
- package/dist/frontend/lowering/lower-array-sort.d.ts +28 -2
- package/dist/frontend/lowering/lower-array-sort.js +100 -3
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.test.js +99 -2
- package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +72 -102
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +4 -3
- package/dist/frontend/lowering/lower-classes.js +116 -2
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-console.d.ts +13 -0
- package/dist/frontend/lowering/lower-console.js +460 -4
- package/dist/frontend/lowering/lower-console.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +6 -0
- package/dist/frontend/lowering/lower-event-emitter.js +124 -38
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.js +137 -22
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +15 -7
- package/dist/frontend/lowering/lower-generators.js +183 -99
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +8 -1
- package/dist/frontend/lowering/lower-inspect.js +119 -18
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +20 -14
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +4 -0
- package/dist/frontend/lowering/lower-stdlib.js +35 -1
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +66 -11
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +22 -1
- package/dist/frontend/lowering/lowerer.js +116 -8
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/regex-span-reads.d.ts +12 -0
- package/dist/frontend/lowering/regex-span-reads.js +164 -0
- package/dist/frontend/lowering/regex-span-reads.js.map +1 -0
- package/dist/frontend/lowering/surfaces.js +112 -10
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/var-hoisting.d.ts +3 -0
- package/dist/frontend/lowering/var-hoisting.js +261 -0
- package/dist/frontend/lowering/var-hoisting.js.map +1 -0
- package/dist/frontend/pipeline.js +5 -3
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/program.d.ts +3 -2
- package/dist/frontend/program.js +23 -5
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +13 -0
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +13 -1
- package/dist/frontend/type-mapper.js +146 -13
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ir/builtin-effects.js +29 -2
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +1 -1
- package/dist/ir/builtin-signatures.js +145 -15
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/function-references.test.js +1 -0
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/int32-slots.js +1 -0
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/intrinsic-signatures.js +2 -0
- package/dist/ir/intrinsic-signatures.js.map +1 -1
- package/dist/ir/ir.d.ts +65 -20
- package/dist/ir/ir.js +5 -0
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +1 -0
- package/dist/ir/runtime-features.js +35 -1
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/scalar-records.js +1 -2
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/validate.js +150 -25
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +65 -0
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/ir-policy.js +1 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/native/sanitizer.test.js +1 -0
- package/dist/native/sanitizer.test.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +159 -1
|
@@ -7,6 +7,7 @@ import { type Int32Local } from "./int32-locals.js";
|
|
|
7
7
|
import { type ConstantNumericTable } from "../../ir/constant-tables.js";
|
|
8
8
|
import { type FfiCallbackAdapter } from "../ffi-callbacks.js";
|
|
9
9
|
import { type CallLifetimes } from "./call-lifetimes.js";
|
|
10
|
+
import { type UnionSources } from "./local-union-storage.js";
|
|
10
11
|
import { BlockBuilder } from "./blocks.js";
|
|
11
12
|
import { NullableRefFields, type NullableRefField } from "./nullable-fields.js";
|
|
12
13
|
import { OptionalArrayReads, type LocalArrayRead } from "./local-array-reads.js";
|
|
@@ -63,6 +64,10 @@ export declare class LlEmitter {
|
|
|
63
64
|
private scalarStringSlices;
|
|
64
65
|
readonly stringSlices: Map<string, StringSliceSnapshot>;
|
|
65
66
|
private localStackUnions;
|
|
67
|
+
private localStackObjects;
|
|
68
|
+
private reassignedStackObjects;
|
|
69
|
+
/** The binding slot of each reassigned stack-object local. */
|
|
70
|
+
private stackObjectSlots;
|
|
66
71
|
private localUnionStorageProofs;
|
|
67
72
|
private localUnionStorage;
|
|
68
73
|
integerArrayBindings: Set<string>;
|
|
@@ -74,13 +79,18 @@ export declare class LlEmitter {
|
|
|
74
79
|
* operations and record views conservatively alias all of them. */
|
|
75
80
|
private markFieldPointer;
|
|
76
81
|
markMemoryPointer(ptr: string, field: string): void;
|
|
82
|
+
/** The alias tag of a runtime word that emitted code reads and writes
|
|
83
|
+
* outside every field (the lifetime-region count, owner and cursors). */
|
|
84
|
+
memoryAliasAttachment(category: string): string;
|
|
77
85
|
fieldAliasAttachment(ptr: string): string;
|
|
78
86
|
private fieldAliasMetadata;
|
|
79
87
|
private readonly debug;
|
|
88
|
+
/** Projection-only scalar objects may live in frame storage (stack-objects.ts). */
|
|
89
|
+
readonly stackObjects: boolean;
|
|
80
90
|
private debugScope;
|
|
81
91
|
readonly sizeType: "i32" | "i64";
|
|
82
92
|
readonly ffiExtendNarrowIntegers: boolean;
|
|
83
|
-
readonly
|
|
93
|
+
readonly cycleBufOffset: number;
|
|
84
94
|
/** Emitted ScrCycType descriptors so far (their collector statistics
|
|
85
95
|
* indices; see ShapeHost.nextCycKind). */
|
|
86
96
|
private cycKinds;
|
|
@@ -176,6 +186,8 @@ export declare class LlEmitter {
|
|
|
176
186
|
* when inline RC is off. */
|
|
177
187
|
private readonly rcHelpers;
|
|
178
188
|
readonly fnByName: Map<string, IrFunction>;
|
|
189
|
+
/** Empty literals that construct with inline slots (appended-array-literals.ts). */
|
|
190
|
+
appendedArrayLiterals: ReadonlySet<IrExpr>;
|
|
179
191
|
/** Emitted LLVM text of every IR function body, by function name: the
|
|
180
192
|
* fiberless-async analysis scans it for suspension entry points. */
|
|
181
193
|
private readonly fnDefText;
|
|
@@ -187,6 +199,8 @@ export declare class LlEmitter {
|
|
|
187
199
|
* whose bindings end with the list (emitBlock and function bodies). */
|
|
188
200
|
private stmtCursor;
|
|
189
201
|
readonly optionalArrayReads: OptionalArrayReads;
|
|
202
|
+
/** Union sources a binding or projection can hold in a stack box. */
|
|
203
|
+
readonly unionSources: UnionSources;
|
|
190
204
|
readonly checkedNarrows: CheckedNarrows;
|
|
191
205
|
callArrayReads: Map<IrExpr, LocalArrayRead>;
|
|
192
206
|
mapReadLifetimes: MapReadLifetimes;
|
|
@@ -278,6 +292,8 @@ export declare class LlEmitter {
|
|
|
278
292
|
* typeKey → thunk symbol. */
|
|
279
293
|
readonly resolveThunks: Map<string, string>;
|
|
280
294
|
readonly resolveThunkDefs: string[];
|
|
295
|
+
/** Typed-ref recipe constants by type key (lazy receivers). */
|
|
296
|
+
readonly typedRefRecipes: Map<string, string>;
|
|
281
297
|
/** ReadableStream.from adapters keep typed arrays by reference and box
|
|
282
298
|
* one current element per pull. */
|
|
283
299
|
readonly streamFromArrayAdapters: Map<string, string>;
|
|
@@ -399,9 +415,12 @@ export declare class LlEmitter {
|
|
|
399
415
|
private tryStack;
|
|
400
416
|
/** Return type of the function being emitted — the unwind path returns
|
|
401
417
|
* a dummy of this type (never read: callers check the flag first). */
|
|
402
|
-
|
|
418
|
+
currentReturnType: IrType;
|
|
403
419
|
/** The current body returns its number result as i32. */
|
|
404
420
|
private currentInt32Result;
|
|
421
|
+
/** The function's i32 entry returns its scalar union result as tag and
|
|
422
|
+
* payload bits (Int32Abi.union). */
|
|
423
|
+
private currentUnionResult;
|
|
405
424
|
/** Active only while emitting a body lowered with LLVM's
|
|
406
425
|
* switched-coroutine intrinsics (wasm32 async bodies and generators,
|
|
407
426
|
* native synchronous generators; see coroLowered). */
|
|
@@ -421,6 +440,8 @@ export declare class LlEmitter {
|
|
|
421
440
|
yieldT: IrType;
|
|
422
441
|
nextT: IrType;
|
|
423
442
|
} | null;
|
|
443
|
+
/** The function being emitted is an async generator body. */
|
|
444
|
+
private currentAsyncGenerator;
|
|
424
445
|
/** Active optional-chain bind slots, by chain id (chainRecv reads). */
|
|
425
446
|
readonly chainSlots: Map<string, LlValue>;
|
|
426
447
|
logArgSlots: number;
|
|
@@ -802,6 +823,15 @@ export declare class LlEmitter {
|
|
|
802
823
|
* that is not a direct call (closures, dispatch, adapters, the runtime)
|
|
803
824
|
* enters here. A pending exception passes through to its caller. */
|
|
804
825
|
private emitInt32AbiWrapper;
|
|
826
|
+
/** The SCALAR_UNION_RESULT pair of a `%ScrUnion` box of `type`. */
|
|
827
|
+
scalarUnionPair(box: string, type: IrType): string;
|
|
828
|
+
/** A private stack box holding a SCALAR_UNION_RESULT pair of `type`. */
|
|
829
|
+
stackScalarUnion(pair: string, type: IrType): LlValue;
|
|
830
|
+
/** A direct call whose i32 entry returns its scalar union in registers. */
|
|
831
|
+
scalarResultCall(e: IrExpr): boolean;
|
|
832
|
+
/** A fresh heap box (+1) for a SCALAR_UNION_RESULT pair of `type`; the
|
|
833
|
+
* exception dummy (tag -1) answers NULL. */
|
|
834
|
+
boxScalarUnion(pair: string, type: IrType): string;
|
|
805
835
|
/** The i32 bits of a number proven an int32 (a direct call's i32
|
|
806
836
|
* argument or an i32 result): its exact integer when the value carries
|
|
807
837
|
* one, else the conversion the proof makes exact. */
|
|
@@ -854,6 +884,9 @@ export declare class LlEmitter {
|
|
|
854
884
|
* runs afterwards with no handler in scope: a rejection settles the
|
|
855
885
|
* function's promise instead of reaching its own catch clauses. */
|
|
856
886
|
private emitAdoptingReturn;
|
|
887
|
+
/** An async generator completing without a further turn: its request
|
|
888
|
+
* settles as the body returns (scr_async_gen_hop_done). */
|
|
889
|
+
private emitAsyncGenSettled;
|
|
857
890
|
/** `return x` of a local whose slot is an owned scope entry of the same
|
|
858
891
|
* type: the return can take over the local's reference. */
|
|
859
892
|
private movableReturn;
|
|
@@ -960,6 +993,12 @@ export declare class LlEmitter {
|
|
|
960
993
|
emitRecordExpr(e: ExprOf<"fieldGet" | "recordGet" | "recordLit" | "recordClone" | "recordKeyGet" | "recordOvfKeys" | "recordOvfHas" | "recordHas" | "fieldAbsent">): LlValue;
|
|
961
994
|
emitDynamicExpr(e: ExprOf<"dynFrom" | "dynCall" | "dynInvoke" | "dynArrLit" | "dynObjLit" | "unionWrap" | "unionNarrow" | "unionDisc" | "unionKeyGet" | "unionIsTag" | "dynKeyGet" | "dynHasKey" | "dynScalarEq" | "dynTest" | "unionEq" | "unionFuncEq" | "caughtTest" | "caughtCheck" | "caughtNarrow" | "caughtToDyn">): LlValue;
|
|
962
995
|
emitIntrinsicExpr(e: ExprOf<"intrinsic">): LlValue;
|
|
996
|
+
/** Lifetime regions in modules with lifetimeRegions (llvm/regions.ts).
|
|
997
|
+
* Created with the class graph; null elsewhere. */
|
|
998
|
+
private regions;
|
|
999
|
+
/** LifetimeRegion's runtime calls: create answers the region id, enter
|
|
1000
|
+
* and leave bracket run(), release condemns. */
|
|
1001
|
+
private emitRegionIntrinsic;
|
|
963
1002
|
private publishWalkersCache;
|
|
964
1003
|
/** Per-type publication walkers, created on the first publish. */
|
|
965
1004
|
private get publishWalkers();
|
|
@@ -993,6 +1032,8 @@ export declare class LlEmitter {
|
|
|
993
1032
|
* their ordinary statement-frame ownership. The caller must retain any
|
|
994
1033
|
* reference result before evaluating another expression. */
|
|
995
1034
|
emitReadReceiver(e: IrExpr): LlValue;
|
|
1035
|
+
/** The frame slot a reassigned stack-object local keeps for its value. */
|
|
1036
|
+
private stackObjectSlot;
|
|
996
1037
|
/** A private stack union source with an independently owned payload. */
|
|
997
1038
|
canStackReceiver(e: IrExpr): boolean;
|
|
998
1039
|
/** True for union sources that emitReadReceiver can produce as a private
|