@scriptc/compiler 0.0.0 → 0.0.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/LICENSE +202 -0
- package/ambient/package.json +3 -0
- package/ambient/scriptc-node-fallback.d.ts +3001 -0
- package/ambient/scriptc-overrides.d.ts +95 -0
- package/ambient/scriptc.d.ts +74 -0
- package/dist/backend/cc.d.ts +169 -0
- package/dist/backend/cc.js +897 -0
- package/dist/backend/cc.js.map +1 -0
- package/dist/backend/emission/emit-async.d.ts +145 -0
- package/dist/backend/emission/emit-async.js +996 -0
- package/dist/backend/emission/emit-async.js.map +1 -0
- package/dist/backend/emission/emit-exprs.d.ts +3 -0
- package/dist/backend/emission/emit-exprs.js +5947 -0
- package/dist/backend/emission/emit-exprs.js.map +1 -0
- package/dist/backend/emission/emit-island.d.ts +45 -0
- package/dist/backend/emission/emit-island.js +271 -0
- package/dist/backend/emission/emit-island.js.map +1 -0
- package/dist/backend/emission/emit-shapes.d.ts +142 -0
- package/dist/backend/emission/emit-shapes.js +575 -0
- package/dist/backend/emission/emit-shapes.js.map +1 -0
- package/dist/backend/emission/emit-stmts.d.ts +78 -0
- package/dist/backend/emission/emit-stmts.js +960 -0
- package/dist/backend/emission/emit-stmts.js.map +1 -0
- package/dist/backend/emission/emit-types.d.ts +65 -0
- package/dist/backend/emission/emit-types.js +652 -0
- package/dist/backend/emission/emit-types.js.map +1 -0
- package/dist/backend/emission/emit-walkers.d.ts +154 -0
- package/dist/backend/emission/emit-walkers.js +1587 -0
- package/dist/backend/emission/emit-walkers.js.map +1 -0
- package/dist/backend/emission/emitter.d.ts +452 -0
- package/dist/backend/emission/emitter.js +1249 -0
- package/dist/backend/emission/emitter.js.map +1 -0
- package/dist/backend/emission/may-throw.d.ts +15 -0
- package/dist/backend/emission/may-throw.js +250 -0
- package/dist/backend/emission/may-throw.js.map +1 -0
- package/dist/backend/llvm/blocks.d.ts +21 -0
- package/dist/backend/llvm/blocks.js +68 -0
- package/dist/backend/llvm/blocks.js.map +1 -0
- package/dist/backend/llvm/classes.d.ts +84 -0
- package/dist/backend/llvm/classes.js +438 -0
- package/dist/backend/llvm/classes.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +123 -0
- package/dist/backend/llvm/dyn.js +2624 -0
- package/dist/backend/llvm/dyn.js.map +1 -0
- package/dist/backend/llvm/emitter.d.ts +3 -0
- package/dist/backend/llvm/emitter.js +10087 -0
- package/dist/backend/llvm/emitter.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +78 -0
- package/dist/backend/llvm/shapes.js +754 -0
- package/dist/backend/llvm/shapes.js.map +1 -0
- package/dist/backend/llvm/unsupported.d.ts +6 -0
- package/dist/backend/llvm/unsupported.js +12 -0
- package/dist/backend/llvm/unsupported.js.map +1 -0
- package/dist/backend/llvm/walkers.d.ts +58 -0
- package/dist/backend/llvm/walkers.js +793 -0
- package/dist/backend/llvm/walkers.js.map +1 -0
- package/dist/backend/mangle.d.ts +124 -0
- package/dist/backend/mangle.js +232 -0
- package/dist/backend/mangle.js.map +1 -0
- package/dist/coverage/report.d.ts +64 -0
- package/dist/coverage/report.js +226 -0
- package/dist/coverage/report.js.map +1 -0
- package/dist/diagnostics/diagnostic.d.ts +140 -0
- package/dist/diagnostics/diagnostic.js +458 -0
- package/dist/diagnostics/diagnostic.js.map +1 -0
- package/dist/diagnostics/render.d.ts +11 -0
- package/dist/diagnostics/render.js +58 -0
- package/dist/diagnostics/render.js.map +1 -0
- package/dist/frontend/cjs-lexer.d.ts +20 -0
- package/dist/frontend/cjs-lexer.js +813 -0
- package/dist/frontend/cjs-lexer.js.map +1 -0
- package/dist/frontend/lowering/http2-constants.d.ts +1 -0
- package/dist/frontend/lowering/http2-constants.js +251 -0
- package/dist/frontend/lowering/http2-constants.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.d.ts +6 -0
- package/dist/frontend/lowering/lib-boundary.js +143 -0
- package/dist/frontend/lowering/lib-boundary.js.map +1 -0
- package/dist/frontend/lowering/lower-assert.d.ts +18 -0
- package/dist/frontend/lowering/lower-assert.js +1269 -0
- package/dist/frontend/lowering/lower-assert.js.map +1 -0
- package/dist/frontend/lowering/lower-builtins.d.ts +511 -0
- package/dist/frontend/lowering/lower-builtins.js +5249 -0
- package/dist/frontend/lowering/lower-builtins.js.map +1 -0
- package/dist/frontend/lowering/lower-calls.d.ts +581 -0
- package/dist/frontend/lowering/lower-calls.js +6281 -0
- package/dist/frontend/lowering/lower-calls.js.map +1 -0
- package/dist/frontend/lowering/lower-classes.d.ts +727 -0
- package/dist/frontend/lowering/lower-classes.js +4701 -0
- package/dist/frontend/lowering/lower-classes.js.map +1 -0
- package/dist/frontend/lowering/lower-comptime.d.ts +53 -0
- package/dist/frontend/lowering/lower-comptime.js +244 -0
- package/dist/frontend/lowering/lower-comptime.js.map +1 -0
- package/dist/frontend/lowering/lower-containers.d.ts +483 -0
- package/dist/frontend/lowering/lower-containers.js +6281 -0
- package/dist/frontend/lowering/lower-containers.js.map +1 -0
- package/dist/frontend/lowering/lower-dgram.d.ts +20 -0
- package/dist/frontend/lowering/lower-dgram.js +319 -0
- package/dist/frontend/lowering/lower-dgram.js.map +1 -0
- package/dist/frontend/lowering/lower-emitter.d.ts +10 -0
- package/dist/frontend/lowering/lower-emitter.js +688 -0
- package/dist/frontend/lowering/lower-emitter.js.map +1 -0
- package/dist/frontend/lowering/lower-enums.d.ts +22 -0
- package/dist/frontend/lowering/lower-enums.js +235 -0
- package/dist/frontend/lowering/lower-enums.js.map +1 -0
- package/dist/frontend/lowering/lower-expando.d.ts +35 -0
- package/dist/frontend/lowering/lower-expando.js +276 -0
- package/dist/frontend/lowering/lower-expando.js.map +1 -0
- package/dist/frontend/lowering/lower-exprs.d.ts +524 -0
- package/dist/frontend/lowering/lower-exprs.js +8099 -0
- package/dist/frontend/lowering/lower-exprs.js.map +1 -0
- package/dist/frontend/lowering/lower-generators.d.ts +50 -0
- package/dist/frontend/lowering/lower-generators.js +421 -0
- package/dist/frontend/lowering/lower-generators.js.map +1 -0
- package/dist/frontend/lowering/lower-inspect.d.ts +20 -0
- package/dist/frontend/lowering/lower-inspect.js +1069 -0
- package/dist/frontend/lowering/lower-inspect.js.map +1 -0
- package/dist/frontend/lowering/lower-island.d.ts +108 -0
- package/dist/frontend/lowering/lower-island.js +650 -0
- package/dist/frontend/lowering/lower-island.js.map +1 -0
- package/dist/frontend/lowering/lower-mixins.d.ts +96 -0
- package/dist/frontend/lowering/lower-mixins.js +534 -0
- package/dist/frontend/lowering/lower-mixins.js.map +1 -0
- package/dist/frontend/lowering/lower-modules.d.ts +135 -0
- package/dist/frontend/lowering/lower-modules.js +1613 -0
- package/dist/frontend/lowering/lower-modules.js.map +1 -0
- package/dist/frontend/lowering/lower-namespaces.d.ts +168 -0
- package/dist/frontend/lowering/lower-namespaces.js +706 -0
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -0
- package/dist/frontend/lowering/lower-server.d.ts +90 -0
- package/dist/frontend/lowering/lower-server.js +3471 -0
- package/dist/frontend/lowering/lower-server.js.map +1 -0
- package/dist/frontend/lowering/lower-stmts.d.ts +361 -0
- package/dist/frontend/lowering/lower-stmts.js +5341 -0
- package/dist/frontend/lowering/lower-stmts.js.map +1 -0
- package/dist/frontend/lowering/lower-stream.d.ts +88 -0
- package/dist/frontend/lowering/lower-stream.js +1533 -0
- package/dist/frontend/lowering/lower-stream.js.map +1 -0
- package/dist/frontend/lowering/lower-test.d.ts +27 -0
- package/dist/frontend/lowering/lower-test.js +353 -0
- package/dist/frontend/lowering/lower-test.js.map +1 -0
- package/dist/frontend/lowering/lowerer.d.ts +1748 -0
- package/dist/frontend/lowering/lowerer.js +6256 -0
- package/dist/frontend/lowering/lowerer.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +272 -0
- package/dist/frontend/lowering/surfaces.js +1096 -0
- package/dist/frontend/lowering/surfaces.js.map +1 -0
- package/dist/frontend/npm-static.d.ts +55 -0
- package/dist/frontend/npm-static.js +300 -0
- package/dist/frontend/npm-static.js.map +1 -0
- package/dist/frontend/npm.d.ts +330 -0
- package/dist/frontend/npm.js +1259 -0
- package/dist/frontend/npm.js.map +1 -0
- package/dist/frontend/program.d.ts +186 -0
- package/dist/frontend/program.js +2172 -0
- package/dist/frontend/program.js.map +1 -0
- package/dist/frontend/provenance-registry.d.ts +48 -0
- package/dist/frontend/provenance-registry.js +87 -0
- package/dist/frontend/provenance-registry.js.map +1 -0
- package/dist/frontend/provenance.d.ts +6 -0
- package/dist/frontend/provenance.js +459 -0
- package/dist/frontend/provenance.js.map +1 -0
- package/dist/frontend/resolve.d.ts +56 -0
- package/dist/frontend/resolve.js +682 -0
- package/dist/frontend/resolve.js.map +1 -0
- package/dist/frontend/shared.d.ts +60 -0
- package/dist/frontend/shared.js +232 -0
- package/dist/frontend/shared.js.map +1 -0
- package/dist/frontend/ts7/adapter.d.ts +7 -0
- package/dist/frontend/ts7/adapter.js +54 -0
- package/dist/frontend/ts7/adapter.js.map +1 -0
- package/dist/frontend/ts7/ast.d.ts +50 -0
- package/dist/frontend/ts7/ast.js +211 -0
- package/dist/frontend/ts7/ast.js.map +1 -0
- package/dist/frontend/ts7/census-check.d.ts +1 -0
- package/dist/frontend/ts7/census-check.js +12 -0
- package/dist/frontend/ts7/census-check.js.map +1 -0
- package/dist/frontend/ts7/checker.d.ts +140 -0
- package/dist/frontend/ts7/checker.js +544 -0
- package/dist/frontend/ts7/checker.js.map +1 -0
- package/dist/frontend/ts7/enums.d.ts +18 -0
- package/dist/frontend/ts7/enums.js +43 -0
- package/dist/frontend/ts7/enums.js.map +1 -0
- package/dist/frontend/ts7/program.d.ts +99 -0
- package/dist/frontend/ts7/program.js +278 -0
- package/dist/frontend/ts7/program.js.map +1 -0
- package/dist/frontend/ts7/world-check.d.ts +3 -0
- package/dist/frontend/ts7/world-check.js +34 -0
- package/dist/frontend/ts7/world-check.js.map +1 -0
- package/dist/frontend/types.d.ts +205 -0
- package/dist/frontend/types.js +2485 -0
- package/dist/frontend/types.js.map +1 -0
- package/dist/index.d.ts +85 -0
- package/dist/index.js +424 -0
- package/dist/index.js.map +1 -0
- package/dist/ir/nodes.d.ts +4334 -0
- package/dist/ir/nodes.js +1906 -0
- package/dist/ir/nodes.js.map +1 -0
- package/dist/ir/serialize.d.ts +4 -0
- package/dist/ir/serialize.js +34 -0
- package/dist/ir/serialize.js.map +1 -0
- package/dist/ir/validate.d.ts +36 -0
- package/dist/ir/validate.js +4884 -0
- package/dist/ir/validate.js.map +1 -0
- package/package.json +30 -6
- package/README.md +0 -3
- package/index.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit-walkers.js","sourceRoot":"","sources":["../../../src/backend/emission/emit-walkers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
import type { IrGlobal, IrRecordShape, IrExpr, IrFunction, IrLocal, IrModule, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/nodes.js";
|
|
2
|
+
import { VtSlot, ClassMeta } from "./emit-shapes.js";
|
|
3
|
+
export declare function emitModule(mod: IrModule, sourceText?: string): string;
|
|
4
|
+
/** A declared C value with its IR type — the unit frames and scopes track
|
|
5
|
+
* so releases can be type-directed. */
|
|
6
|
+
export interface Temp {
|
|
7
|
+
name: string;
|
|
8
|
+
type: IrType;
|
|
9
|
+
}
|
|
10
|
+
/** A scope entry: a refcounted local, either held directly or through a
|
|
11
|
+
* capture box (boxed locals release their BOX; the box frees its contents). */
|
|
12
|
+
export interface ScopeEntry extends Temp {
|
|
13
|
+
boxed?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare class CEmitter {
|
|
16
|
+
readonly mod: IrModule;
|
|
17
|
+
readonly lines: string[];
|
|
18
|
+
indent: number;
|
|
19
|
+
tempCounter: number;
|
|
20
|
+
/** Interned string literals: UTF-8 text → static symbol name. */
|
|
21
|
+
readonly literals: Map<string, string>;
|
|
22
|
+
/** Interned unit-armed union instances: "unionId:tag" → static symbol.
|
|
23
|
+
* A unit arm (undefined/null) has no payload, so every instance of one
|
|
24
|
+
* (union, tag) pair is identical — ONE immortal (rc == SIZE_MAX) static
|
|
25
|
+
* serves them all. Immortals are skipped by retain/release and by the
|
|
26
|
+
* cycle collector's child filter (SCR_CYC_SKIP), so the missing cycle
|
|
27
|
+
* header is fine even when a traced container points at one. */
|
|
28
|
+
readonly unitInstances: Map<string, string>;
|
|
29
|
+
/** Interned regex literals: "<flags>/<pattern>" → static symbol. One
|
|
30
|
+
* immortal (rc == SIZE_MAX) ScrRegex per distinct (pattern, flags) pair —
|
|
31
|
+
* the bytecode slot starts NULL and the runtime compiles it lazily on
|
|
32
|
+
* first use. The source/flags strings ride the ordinary literal table. */
|
|
33
|
+
readonly regexInstances: Map<string, string>;
|
|
34
|
+
/** Interned tagged-template strings objects: per-site key → symbol +
|
|
35
|
+
* cooked spans. One immortal (rc == SIZE_MAX) ScrArr of interned string
|
|
36
|
+
* literals per template-literal SITE — the spec's per-occurrence
|
|
37
|
+
* identity: the same site evaluated twice hands the tag the same array,
|
|
38
|
+
* two sites never share even with identical text. */
|
|
39
|
+
readonly templateStringsInstances: Map<string, {
|
|
40
|
+
sym: string;
|
|
41
|
+
cooked: string[];
|
|
42
|
+
}>;
|
|
43
|
+
/** Class objects (classes as first-class values): className → static
|
|
44
|
+
* symbol. One immortal ScrClassObj per class some classRef names —
|
|
45
|
+
* preorder interval baked as constants, the .name string in the literal
|
|
46
|
+
* table, and a per-class construct thunk (void *sc_ct_*) newValue
|
|
47
|
+
* dispatches through. Registered during body emission (the regex
|
|
48
|
+
* pattern); the statics and thunks are assembled around the bodies. */
|
|
49
|
+
readonly classObjs: Map<string, string>;
|
|
50
|
+
/** Stack of statement frames: refcounted temps not yet released or moved. */
|
|
51
|
+
frames: Temp[][];
|
|
52
|
+
/** Stack of scopes: refcounted locals (with types) declared in each. */
|
|
53
|
+
scopes: ScopeEntry[][];
|
|
54
|
+
/** The function being emitted: local table (for boxedness) and whether
|
|
55
|
+
* each local arrived through the closure environment (env captures are
|
|
56
|
+
* borrowed — never declared, never released here). */
|
|
57
|
+
currentLocals: Map<string, IrLocal>;
|
|
58
|
+
captureIds: Set<string>;
|
|
59
|
+
/** Declared functions referenced as values: each needs an env-signature
|
|
60
|
+
* wrapper + an interned immortal closure (so `f === f` holds). */
|
|
61
|
+
readonly fnValues: Set<string>;
|
|
62
|
+
/** Emitted ref-kind resolve thunks for new Promise, interned per inner
|
|
63
|
+
* typeKey → thunk symbol. */
|
|
64
|
+
readonly resolveThunks: Map<string, string>;
|
|
65
|
+
readonly genResThunks: Map<string, string>;
|
|
66
|
+
/** Emitted child exit adapters, interned per union id (childExitThunkFor). */
|
|
67
|
+
readonly childExitThunks: Map<string, string>;
|
|
68
|
+
/** Emitted child-stream data adapters, interned per union id
|
|
69
|
+
* (childDataThunkFor). */
|
|
70
|
+
readonly childDataThunks: Map<string, string>;
|
|
71
|
+
/** Emitted bound-close adapters, interned per union id
|
|
72
|
+
* (closeBindThunkFor). */
|
|
73
|
+
readonly closeBindThunks: Map<string, string>;
|
|
74
|
+
/** Emitted close-override wrappers, interned per (union id, ret kind)
|
|
75
|
+
* (closeOverrideWrapFor). */
|
|
76
|
+
readonly closeOverrideWraps: Map<string, string>;
|
|
77
|
+
/** Emitted dgram message adapters, interned per rinfo shape id
|
|
78
|
+
* (dgramMsgThunkFor). */
|
|
79
|
+
readonly dgramMsgThunks: Map<string, string>;
|
|
80
|
+
/** Emitted dns.lookup callback adapters, interned per union id + param
|
|
81
|
+
* count (dnsLookupThunkFor). */
|
|
82
|
+
readonly dnsLookupThunks: Map<string, string>;
|
|
83
|
+
/** Emitted SNI answer-closure thunks, interned per cb func-type key
|
|
84
|
+
* (sniAnswerThunkFor). */
|
|
85
|
+
readonly sniAnswerThunks: Map<string, string>;
|
|
86
|
+
/** Emitted net.connect lookup answer thunks, interned per cb func-type
|
|
87
|
+
* key (netLookupAnswerThunkFor). */
|
|
88
|
+
readonly netLookupAnswerThunks: Map<string, string>;
|
|
89
|
+
/** Emitted EventEmitter listener invoke adapters, interned per listener
|
|
90
|
+
* func-type key (emitterInvokeThunkFor). */
|
|
91
|
+
readonly emitterInvokeThunks: Map<string, string>;
|
|
92
|
+
/** Emitted stream option-callback invoke adapters (read/write/final/
|
|
93
|
+
* destroy/transform/flush — the leading-`this` closures), interned per
|
|
94
|
+
* (kind, callback func-type) key (streamCbThunkFor). */
|
|
95
|
+
readonly streamCbThunks: Map<string, string>;
|
|
96
|
+
/** Emitted stream completion-callback closure fns (the `callback` a
|
|
97
|
+
* user's write/final/destroy/transform/flush receives and calls),
|
|
98
|
+
* interned per (kind, done func-type) key (streamDoneFnFor). */
|
|
99
|
+
readonly streamDoneFns: Map<string, string>;
|
|
100
|
+
/** Emitted CONNECT-listener union-socket adapters, interned per cb
|
|
101
|
+
* func-type key (connectSockThunkFor). */
|
|
102
|
+
readonly connectSockThunks: Map<string, string>;
|
|
103
|
+
/** Emitted Promise.race fulfillment adapters, interned per
|
|
104
|
+
* `entryInner=>resultInner` typeKey pair (raceAdapterFor). */
|
|
105
|
+
readonly raceThunks: Map<string, string>;
|
|
106
|
+
/** setTimeout appeared somewhere: main must run the event loop even in
|
|
107
|
+
* programs with no async functions. */
|
|
108
|
+
usesTimers: boolean;
|
|
109
|
+
readonly fnByName: Map<string, IrFunction>;
|
|
110
|
+
readonly globalsById: Map<string, IrGlobal>;
|
|
111
|
+
readonly unionsById: Map<string, IrUnionDef>;
|
|
112
|
+
/** Active optional-chain bind temps, by chain id (chainRecv reads). */
|
|
113
|
+
readonly chainTemps: Map<string, Temp>;
|
|
114
|
+
readonly recordsById: Map<string, IrRecordShape>;
|
|
115
|
+
/** Type-directed JSON walkers, interned per typeKey — one serializer per
|
|
116
|
+
* type used in jsonStringify position (sc_jw_*), one match predicate
|
|
117
|
+
* (sc_dm_*) and one checked builder (sc_dc_*) per type used in dynCheck
|
|
118
|
+
* position. Emitted as prototypes + definitions after the struct block
|
|
119
|
+
* (they reference struct types, per-shape RC helpers, and each other, so
|
|
120
|
+
* the prototypes make definition order irrelevant). */
|
|
121
|
+
readonly jsonWriters: Map<string, string>;
|
|
122
|
+
/** The pretty-print re-indenter (type-independent, interned once):
|
|
123
|
+
* emitted on the first `JSON.stringify(v, null, space)` site. */
|
|
124
|
+
jsonIndentFn: string | null;
|
|
125
|
+
/** The dyn ToString pair (type-independent, interned once): emitted on
|
|
126
|
+
* the first String(unknown) / `${unknown}` site. */
|
|
127
|
+
dynToStrFn: string | null;
|
|
128
|
+
/** The caught→dyn converter (type-independent, interned once): emitted
|
|
129
|
+
* on the first catch binding flowing into an `unknown` slot. */
|
|
130
|
+
caughtToDynFn: string | null;
|
|
131
|
+
/** Interned per-union helpers: unionId → emitted function name. */
|
|
132
|
+
readonly unionTruthyFns: Map<string, string>;
|
|
133
|
+
readonly unionEqFns: Map<string, string>;
|
|
134
|
+
readonly unionToStrFns: Map<string, string>;
|
|
135
|
+
readonly unionJoinFns: Map<string, string>;
|
|
136
|
+
readonly dynMatchers: Map<string, string>;
|
|
137
|
+
readonly dynBuilders: Map<string, string>;
|
|
138
|
+
/** Static→DOM converters (sc_td_*), per typeKey; dynamic-keyed record
|
|
139
|
+
* read helpers (sc_rkg_*), per shapeId|result typeKey; dynamic-keyed
|
|
140
|
+
* write helpers (sc_rks_*), per shapeId. */
|
|
141
|
+
readonly toDynFns: Map<string, string>;
|
|
142
|
+
/** The checked-dynamic function boundary's per-signature helpers (see
|
|
143
|
+
* emit-walkers.ts): call thunks (sc_dfk_*), box builders (sc_dfb_*),
|
|
144
|
+
* and dynCheck adapters (sc_dfa_*), each per func typeKey. */
|
|
145
|
+
readonly dynFuncThunks: Map<string, string>;
|
|
146
|
+
readonly dynFuncBoxes: Map<string, string>;
|
|
147
|
+
readonly dynFuncAdapters: Map<string, string>;
|
|
148
|
+
/** DOM-promise settle adapters (sc_pda_*), per INNER typeKey: convert a
|
|
149
|
+
* typed fulfillment payload into the boxed destination's DOM payload
|
|
150
|
+
* (scr_dyn_new_promise_adapting's callback — toDynHelper's promise arm). */
|
|
151
|
+
readonly promiseDynAdapters: Map<string, string>;
|
|
152
|
+
readonly recordKeyGetFns: Map<string, string>;
|
|
153
|
+
readonly recordKeySetFns: Map<string, string>;
|
|
154
|
+
readonly walkerProtos: string[];
|
|
155
|
+
readonly walkerDefs: string[];
|
|
156
|
+
/** Island host-call adapters, interned per (arity, void-ness): the one
|
|
157
|
+
* uniform shape scr_jsval_from_closure calls — unpack the cell array,
|
|
158
|
+
* call the closure through its real ABI (which CONSUMES its params, so
|
|
159
|
+
* each cell is retained in), return the +1 result cell or NULL for void.
|
|
160
|
+
* Definitions ride walkerDefs (self-contained over the closure ABI). */
|
|
161
|
+
readonly islandAdapters: Map<string, string>;
|
|
162
|
+
/** TYPED island host-call adapters, interned per full signature (param
|
|
163
|
+
* typeKeys + return classification): each incoming engine argument
|
|
164
|
+
* converts to the param's static type through the exit machinery before
|
|
165
|
+
* the closure runs — see islandTypedAdapter (emit-island.ts). */
|
|
166
|
+
readonly islandTypedAdapters: Map<string, string>;
|
|
167
|
+
/** Enclosing break/continue targets. An unlabeled `break` binds to the
|
|
168
|
+
* innermost loop-or-switch entry (labeled BLOCK entries are skipped); an
|
|
169
|
+
* unlabeled `continue` searches inward-out for the innermost LOOP,
|
|
170
|
+
* skipping switches and blocks. A LABELED jump binds to the entry whose
|
|
171
|
+
* `labels` contains its label: `break lbl` jumps to the target's
|
|
172
|
+
* endLabel (loops allocate one lazily via `usedEnd` — a C `break` only
|
|
173
|
+
* exits the innermost loop), `continue lbl` to the target loop's
|
|
174
|
+
* continueLabel. Loops: `continueLabel` is null when C `continue` is
|
|
175
|
+
* correct (unlabeled while/forOf); for/do-while loops need a goto label
|
|
176
|
+
* so `continue` still runs the update/condition, and LABELED loops of
|
|
177
|
+
* every shape allocate one up front (a labeled continue from a nested
|
|
178
|
+
* loop needs a goto). Switches are emitted as goto chains — never as C
|
|
179
|
+
* `switch` — so a C `break`/`continue` inside an emitted switch region
|
|
180
|
+
* still binds to the enclosing C loop; a break targeting the switch
|
|
181
|
+
* itself jumps to `endLabel` instead. Labeled blocks carry only an
|
|
182
|
+
* endLabel (`break lbl` is the only jump that can target them).
|
|
183
|
+
* `scopeDepth` = scopes.length at entry — a break/continue releases
|
|
184
|
+
* every scope pushed after that before jumping. `frameDepth` =
|
|
185
|
+
* frames.length at entry: statements the jump exits may still hold
|
|
186
|
+
* pending refcounted temps in their frames (a switch's discriminant,
|
|
187
|
+
* most notably), whose normal end-of-statement releases sit on the
|
|
188
|
+
* fall-through path the jump bypasses — the jump releases every frame
|
|
189
|
+
* pushed after the target's own before jumping. */
|
|
190
|
+
jumpTargets: ({
|
|
191
|
+
kind: "loop";
|
|
192
|
+
continueLabel: string | null;
|
|
193
|
+
usedContinue: boolean;
|
|
194
|
+
endLabel: string | null;
|
|
195
|
+
usedEnd: boolean;
|
|
196
|
+
labels?: string[];
|
|
197
|
+
scopeDepth: number;
|
|
198
|
+
frameDepth: number;
|
|
199
|
+
} | {
|
|
200
|
+
kind: "switch";
|
|
201
|
+
endLabel: string;
|
|
202
|
+
usedEnd: boolean;
|
|
203
|
+
labels?: string[];
|
|
204
|
+
scopeDepth: number;
|
|
205
|
+
frameDepth: number;
|
|
206
|
+
} | {
|
|
207
|
+
kind: "block";
|
|
208
|
+
endLabel: string;
|
|
209
|
+
usedEnd: boolean;
|
|
210
|
+
labels: string[];
|
|
211
|
+
scopeDepth: number;
|
|
212
|
+
frameDepth: number;
|
|
213
|
+
})[];
|
|
214
|
+
labelCounter: number;
|
|
215
|
+
readonly returnTypeByFn: Map<string, IrType>;
|
|
216
|
+
lineStarts: number[] | null;
|
|
217
|
+
/** May-throw analysis results (computeMayThrow): pending-exception checks
|
|
218
|
+
* are emitted only after calls that can actually raise. */
|
|
219
|
+
readonly mayThrow: Set<string>;
|
|
220
|
+
readonly indirectMayThrow: boolean;
|
|
221
|
+
/** Enclosing try contexts, innermost last — the compile-time analogue of
|
|
222
|
+
* the jump-target stack for UNWINDING: a pending check (or `throw`) inside
|
|
223
|
+
* a try releases frames/scopes down to the recorded depths and jumps to
|
|
224
|
+
* `label` (the catch, or the exception-path finally) instead of returning
|
|
225
|
+
* out of the function. Purely compile-time: entering a try emits no code. */
|
|
226
|
+
tryStack: {
|
|
227
|
+
label: string;
|
|
228
|
+
used: boolean;
|
|
229
|
+
frameDepth: number;
|
|
230
|
+
scopeDepth: number;
|
|
231
|
+
}[];
|
|
232
|
+
/** Enclosing try-with-FINALLY regions, innermost last — the pending-
|
|
233
|
+
* return analogue of tryStack: a `return` inside one snapshots its value
|
|
234
|
+
* into the function's pending-return slot (sc_pret), releases down to
|
|
235
|
+
* the region's depths, and jumps to `label` (the region's pending-return
|
|
236
|
+
* finally copy), whose tail dispatches to the next region out or emits
|
|
237
|
+
* the actual return. Spans tryBody and catchBody; the finally body
|
|
238
|
+
* itself is outside (the frontend fences jumps there). */
|
|
239
|
+
finallyStack: {
|
|
240
|
+
label: string;
|
|
241
|
+
used: boolean;
|
|
242
|
+
frameDepth: number;
|
|
243
|
+
scopeDepth: number;
|
|
244
|
+
}[];
|
|
245
|
+
/** Return type of the function being emitted — the unwind path returns a
|
|
246
|
+
* dummy of this type (never read: callers check the pending flag first). */
|
|
247
|
+
currentReturnType: IrType;
|
|
248
|
+
/** The generator channels of the function being emitted (null outside
|
|
249
|
+
* generator bodies): yieldExpr emission reads them, and emitTryCatch's
|
|
250
|
+
* catch prologue emits the GENRET sentinel re-unwind exactly here. */
|
|
251
|
+
currentGenerator: {
|
|
252
|
+
yieldT: IrType;
|
|
253
|
+
nextT: IrType;
|
|
254
|
+
} | null;
|
|
255
|
+
/** Cycle-capable shapes ("object:<name>" / "record:<id>") and unions
|
|
256
|
+
* (unionId): instances get a cycle header + emitted trace/teardown, and
|
|
257
|
+
* fields/payloads of these types are visited by container traces.
|
|
258
|
+
* Computed as a greatest fixpoint in the constructor — see there. */
|
|
259
|
+
readonly tracedShapes: Set<string>;
|
|
260
|
+
readonly tracedUnions: Set<string>;
|
|
261
|
+
/** The class graph (single inheritance): base/children links, hierarchy
|
|
262
|
+
* membership (extends anywhere ⇒ vtable word + dynamic release), the
|
|
263
|
+
* whole-program preorder numbering behind O(1) instanceof, and the
|
|
264
|
+
* per-hierarchy virtual slot lists (root classes only). Computed once in
|
|
265
|
+
* the constructor. */
|
|
266
|
+
readonly classMeta: Map<string, ClassMeta>;
|
|
267
|
+
/** Method names with at least one may-throw implementation: a
|
|
268
|
+
* virtualCall's pending check keys on this (same over-approximation as
|
|
269
|
+
* computeMayThrow's callee cover). */
|
|
270
|
+
readonly mayThrowMethods: Set<string>;
|
|
271
|
+
/** Vtable slot adapters to define after the function signatures (they
|
|
272
|
+
* call sc_f_* bodies): dedupe key "implClass.method". */
|
|
273
|
+
readonly vtAdapters: Map<string, {
|
|
274
|
+
impl: ClassMeta;
|
|
275
|
+
slot: VtSlot;
|
|
276
|
+
}>;
|
|
277
|
+
constructor(mod: IrModule, sourceText?: string);
|
|
278
|
+
emit(): string;
|
|
279
|
+
emitAsyncScaffolding(out: string[]): void;
|
|
280
|
+
emitStructDefs(out: string[]): void;
|
|
281
|
+
vtEntriesFor(meta: ClassMeta): {
|
|
282
|
+
slot: VtSlot;
|
|
283
|
+
impl: ClassMeta | null;
|
|
284
|
+
}[];
|
|
285
|
+
vtSlotParams(slot: VtSlot, named: boolean): string[];
|
|
286
|
+
emitVtableDecls(out: string[], hierarchyClasses: ClassMeta[]): void;
|
|
287
|
+
emitVtableInstances(out: string[], hierarchyClasses: ClassMeta[]): void;
|
|
288
|
+
emitVtAdapterDefs(out: string[]): void;
|
|
289
|
+
emitHierarchyClassHelpers(out: string[], meta: ClassMeta, s: {
|
|
290
|
+
struct: string;
|
|
291
|
+
newFn: string;
|
|
292
|
+
retain: string;
|
|
293
|
+
release: string;
|
|
294
|
+
trace: string;
|
|
295
|
+
gcFree: string;
|
|
296
|
+
traced: boolean;
|
|
297
|
+
fields: {
|
|
298
|
+
name: string;
|
|
299
|
+
type: IrType;
|
|
300
|
+
}[];
|
|
301
|
+
}): void;
|
|
302
|
+
dynDesc(t: IrType): string;
|
|
303
|
+
islandAdapter(arity: number, retKind: "void" | "jsval" | "f64" | "bool" | "string"): string;
|
|
304
|
+
islandTypedAdapter(fn: IrType & {
|
|
305
|
+
kind: "func";
|
|
306
|
+
}): string;
|
|
307
|
+
unionTruthyHelper(unionId: string): string;
|
|
308
|
+
unionEqHelper(unionId: string): string;
|
|
309
|
+
unionToStrHelper(unionId: string): string;
|
|
310
|
+
unionJoinHelper(unionId: string): string;
|
|
311
|
+
jsonWriteHelper(t: IrType): string;
|
|
312
|
+
jsonIndentHelper(): string;
|
|
313
|
+
dynMatchHelper(t: IrType): string;
|
|
314
|
+
dynCheckHelper(t: IrType): string;
|
|
315
|
+
toDynHelper(t: IrType): string;
|
|
316
|
+
dynFuncBoxHelper(t: IrType & {
|
|
317
|
+
kind: "func";
|
|
318
|
+
}): string;
|
|
319
|
+
recordKeyGetHelper(shapeId: string, t: IrType, overflowOnly?: boolean): string;
|
|
320
|
+
recordKeySetHelper(shapeId: string): string;
|
|
321
|
+
dynToStrHelper(): string;
|
|
322
|
+
caughtToDynHelper(): string;
|
|
323
|
+
traceAdapterC(t: IrType): string | null;
|
|
324
|
+
traceArgC(t: IrType): string;
|
|
325
|
+
boxNewC(t: IrType): string;
|
|
326
|
+
arrNewC(elem: IrType, capExpr: string | number): string;
|
|
327
|
+
line(text: string): void;
|
|
328
|
+
srcComment(loc: SrcLoc): string;
|
|
329
|
+
newTemp(type: IrType, init: string): Temp;
|
|
330
|
+
/** newTemp for a MAY-THROW runtime call: the result joins its frame
|
|
331
|
+
* BEFORE the standard pending check, so an unwind releases the dummy
|
|
332
|
+
* (NULL for refcounted kinds) harmlessly and the value is only read past
|
|
333
|
+
* the check. The shared shape of every fallible boundary call — jsOp,
|
|
334
|
+
* jsExit, composite jsMarshal, dynCheck, await reads. */
|
|
335
|
+
fallibleTemp(type: IrType, call: string): Temp;
|
|
336
|
+
currentFrame(): Temp[];
|
|
337
|
+
/** Strike a refcounted temp from its frame: ownership is being moved. */
|
|
338
|
+
moveTemp(t: Temp): void;
|
|
339
|
+
/** The release call for one owned refcounted value. */
|
|
340
|
+
releaseValue(name: string, type: IrType): void;
|
|
341
|
+
releaseFrame(frame: ScopeEntry[]): void;
|
|
342
|
+
/** THE release-on-jump path (break/continue/return): pending statement
|
|
343
|
+
* frames and entered scopes down to (and excluding nothing above) the
|
|
344
|
+
* given depths, innermost first — everything whose normal fall-through
|
|
345
|
+
* releases the jump bypasses. The jump target's own frame/scope stay
|
|
346
|
+
* live: a loop's releases after the loop and a switch's after its end
|
|
347
|
+
* label are still on the jump's path (return passes 0/0 — it leaves the
|
|
348
|
+
* whole function). */
|
|
349
|
+
releaseForJump(frameDepth: number, scopeDepth: number): void;
|
|
350
|
+
/** True when the last statement is a jump — its emission already released
|
|
351
|
+
* everything it had to, and the fall-through releases after it would be
|
|
352
|
+
* dead double-release code. `throw` counts: it unwinds (to a handler or
|
|
353
|
+
* out of the function) through the same release path. */
|
|
354
|
+
endsWithJump(stmts: IrStmt[]): boolean;
|
|
355
|
+
/** THE unwind path at a point where an exception is pending: release
|
|
356
|
+
* everything between here and the innermost try handler — or the whole
|
|
357
|
+
* function — via releaseForJump, then jump to the handler / return a
|
|
358
|
+
* dummy value (never read: callers of a may-throw function test the
|
|
359
|
+
* pending flag before using the result). Callers own the surrounding
|
|
360
|
+
* `if (scr_exc_pending())`; a `throw` unwinds unconditionally. */
|
|
361
|
+
emitUnwind(): void;
|
|
362
|
+
errorVtStampLines(): string[];
|
|
363
|
+
/** The C symbol a direct call or closure enters a function through:
|
|
364
|
+
* async bodies are entered via their emitted spawn wrapper (which runs
|
|
365
|
+
* the fiber eagerly to its first suspension and returns the promise);
|
|
366
|
+
* generator bodies via theirs (which only ALLOCATES the suspended
|
|
367
|
+
* fiber and returns the generator object). */
|
|
368
|
+
callTargetC(fnName: string): string;
|
|
369
|
+
/** The emitter contract for exceptions: after EVERY call that can throw
|
|
370
|
+
* (per the may-throw analysis), test the pending flag and unwind. */
|
|
371
|
+
emitPendingCheck(): void;
|
|
372
|
+
internLiteral(text: string): string;
|
|
373
|
+
/** The class object's static symbol (classes as values), registering it
|
|
374
|
+
* for assembly on first use and interning the .name literal while the
|
|
375
|
+
* literal table is still open (bodies emit before the file assembles —
|
|
376
|
+
* the regex-literal discipline). */
|
|
377
|
+
classObjSym(className: string): string;
|
|
378
|
+
/** True when construction through a classval of `className` can throw:
|
|
379
|
+
* the runtime callee is the static class's constructor or any strict
|
|
380
|
+
* descendant's (classval flows never leave the subtree). */
|
|
381
|
+
newValueMayThrow(className: string): boolean;
|
|
382
|
+
/** The undefined arm's tag of a union type, or -1 (not a union / no
|
|
383
|
+
* undefined arm). A record FIELD with such a type is optional-flavored:
|
|
384
|
+
* the JSON serializer DROPS it while it holds the undefined arm and the
|
|
385
|
+
* dynCheck builder produces the undefined arm for a MISSING key — both
|
|
386
|
+
* exactly Node's optional-field behavior. */
|
|
387
|
+
undefinedArmTag(t: IrType): number;
|
|
388
|
+
/** The interned immortal instance for a UNIT arm of a union — asserts the
|
|
389
|
+
* arm really is payload-less (undefined/null). */
|
|
390
|
+
internUnitInstance(unionId: string, tag: number): string;
|
|
391
|
+
/** The C expression for that instance — the one pointer every unit-arm
|
|
392
|
+
* value of this (union, tag) is: rc == SIZE_MAX, so RC entry points and
|
|
393
|
+
* the collector both skip it and no retain is ever owed. */
|
|
394
|
+
unitInstanceRef(unionId: string, tag: number): string;
|
|
395
|
+
/** The class-newFn initialization line for a field whose type ADMITS
|
|
396
|
+
* undefined — such fields start as JS's `undefined`, never the calloc
|
|
397
|
+
* NULL: tsc's strictPropertyInitialization accepts them with no
|
|
398
|
+
* initializer and no constructor assignment (undefined is in the type),
|
|
399
|
+
* so a fresh instance is readable before any assignment runs — a method
|
|
400
|
+
* assigns later, a constructor branch skips it, a base constructor's
|
|
401
|
+
* virtual call reads a derived field before super() returns. Node reads
|
|
402
|
+
* `undefined` there; a NULL payload pointer would be a segfault (union
|
|
403
|
+
* fields) or a silent nothing (jsval fields). Undefined-armed unions get
|
|
404
|
+
* the interned immortal unit instance (free; releases skip it); jsval
|
|
405
|
+
* (`any`) fields get an engine undefined cell — such classes exist only
|
|
406
|
+
* in --dynamic builds, and the field's release balances it. Empty for
|
|
407
|
+
* every type that cannot hold undefined (tsc's SPI guards those) and for
|
|
408
|
+
* record shapes' construction paths, which write every field. */
|
|
409
|
+
undefFieldInitLineC(name: string, t: IrType): string[];
|
|
410
|
+
signature(fn: IrFunction): string;
|
|
411
|
+
emitFunction(fn: IrFunction): void;
|
|
412
|
+
emitBlock(stmts: IrStmt[], setup?: (scope: ScopeEntry[]) => void): void;
|
|
413
|
+
emitStmts(stmts: IrStmt[]): void;
|
|
414
|
+
emitStmt(s: IrStmt): void;
|
|
415
|
+
/** A fresh loop jump-target entry. `continueLabel` null means "C
|
|
416
|
+
* continue is correct" (while/forOf) — but a LABELED loop always
|
|
417
|
+
* allocates one (a labeled continue arriving from a nested loop needs a
|
|
418
|
+
* goto), and every labeled loop gets a lazy end label for labeled break
|
|
419
|
+
* (a C break only exits the innermost loop). */
|
|
420
|
+
loopTarget(continueLabel: string | null, labels: string[] | undefined): (typeof this.jumpTargets)[number] & {
|
|
421
|
+
kind: "loop";
|
|
422
|
+
};
|
|
423
|
+
emitTryCatch(s: IrStmt & {
|
|
424
|
+
kind: "tryCatch";
|
|
425
|
+
}): void;
|
|
426
|
+
emitSwitch(s: IrStmt & {
|
|
427
|
+
kind: "switch";
|
|
428
|
+
}): void;
|
|
429
|
+
mergeBrace(emitBlockFn: () => void): void;
|
|
430
|
+
emitBranchInto(target: string, expr: IrExpr): void;
|
|
431
|
+
emitCondition(cond: IrExpr): string;
|
|
432
|
+
/** C expression testing JS truthiness of a temp (falsy: 0, -0, NaN, "").
|
|
433
|
+
* `x == x` rejects NaN, `x != 0` rejects both zeros; strings only need
|
|
434
|
+
* their length — no runtime call, no ownership change. */
|
|
435
|
+
truthyC(t: Temp): string;
|
|
436
|
+
emitExpr(e: IrExpr): Temp;
|
|
437
|
+
childExitThunkFor(param: IrType): string;
|
|
438
|
+
childDataThunkFor(param: IrType): string;
|
|
439
|
+
closeBindThunkFor(cbUnion: IrType, retServer: boolean): string;
|
|
440
|
+
closeOverrideWrapFor(cbUnion: IrType, retServer: boolean): string;
|
|
441
|
+
childExitThunkFor2(codeParam: IrType, sigParam: IrType): string;
|
|
442
|
+
dgramMsgThunkFor(param: IrType): string;
|
|
443
|
+
dnsLookupThunkFor(cbT: IrType): string;
|
|
444
|
+
sniAnswerThunkFor(cbT: IrType): string;
|
|
445
|
+
netLookupAnswerThunkFor(cbT: IrType): string;
|
|
446
|
+
emitterInvokeThunkFor(cbT: IrType): string;
|
|
447
|
+
streamDataThunkFor(cbT: IrType): string;
|
|
448
|
+
streamCbThunkFor(kind: "r" | "w" | "f" | "d" | "t" | "l" | "e", cbT: IrType): string;
|
|
449
|
+
connectSockThunkFor(cbT: IrType): string;
|
|
450
|
+
raceAdapterFor(from: IrType, to: IrType): string;
|
|
451
|
+
resolveThunkFor(inner: IrType): string;
|
|
452
|
+
}
|