@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.
Files changed (206) hide show
  1. package/LICENSE +202 -0
  2. package/ambient/package.json +3 -0
  3. package/ambient/scriptc-node-fallback.d.ts +3001 -0
  4. package/ambient/scriptc-overrides.d.ts +95 -0
  5. package/ambient/scriptc.d.ts +74 -0
  6. package/dist/backend/cc.d.ts +169 -0
  7. package/dist/backend/cc.js +897 -0
  8. package/dist/backend/cc.js.map +1 -0
  9. package/dist/backend/emission/emit-async.d.ts +145 -0
  10. package/dist/backend/emission/emit-async.js +996 -0
  11. package/dist/backend/emission/emit-async.js.map +1 -0
  12. package/dist/backend/emission/emit-exprs.d.ts +3 -0
  13. package/dist/backend/emission/emit-exprs.js +5947 -0
  14. package/dist/backend/emission/emit-exprs.js.map +1 -0
  15. package/dist/backend/emission/emit-island.d.ts +45 -0
  16. package/dist/backend/emission/emit-island.js +271 -0
  17. package/dist/backend/emission/emit-island.js.map +1 -0
  18. package/dist/backend/emission/emit-shapes.d.ts +142 -0
  19. package/dist/backend/emission/emit-shapes.js +575 -0
  20. package/dist/backend/emission/emit-shapes.js.map +1 -0
  21. package/dist/backend/emission/emit-stmts.d.ts +78 -0
  22. package/dist/backend/emission/emit-stmts.js +960 -0
  23. package/dist/backend/emission/emit-stmts.js.map +1 -0
  24. package/dist/backend/emission/emit-types.d.ts +65 -0
  25. package/dist/backend/emission/emit-types.js +652 -0
  26. package/dist/backend/emission/emit-types.js.map +1 -0
  27. package/dist/backend/emission/emit-walkers.d.ts +154 -0
  28. package/dist/backend/emission/emit-walkers.js +1587 -0
  29. package/dist/backend/emission/emit-walkers.js.map +1 -0
  30. package/dist/backend/emission/emitter.d.ts +452 -0
  31. package/dist/backend/emission/emitter.js +1249 -0
  32. package/dist/backend/emission/emitter.js.map +1 -0
  33. package/dist/backend/emission/may-throw.d.ts +15 -0
  34. package/dist/backend/emission/may-throw.js +250 -0
  35. package/dist/backend/emission/may-throw.js.map +1 -0
  36. package/dist/backend/llvm/blocks.d.ts +21 -0
  37. package/dist/backend/llvm/blocks.js +68 -0
  38. package/dist/backend/llvm/blocks.js.map +1 -0
  39. package/dist/backend/llvm/classes.d.ts +84 -0
  40. package/dist/backend/llvm/classes.js +438 -0
  41. package/dist/backend/llvm/classes.js.map +1 -0
  42. package/dist/backend/llvm/dyn.d.ts +123 -0
  43. package/dist/backend/llvm/dyn.js +2624 -0
  44. package/dist/backend/llvm/dyn.js.map +1 -0
  45. package/dist/backend/llvm/emitter.d.ts +3 -0
  46. package/dist/backend/llvm/emitter.js +10087 -0
  47. package/dist/backend/llvm/emitter.js.map +1 -0
  48. package/dist/backend/llvm/shapes.d.ts +78 -0
  49. package/dist/backend/llvm/shapes.js +754 -0
  50. package/dist/backend/llvm/shapes.js.map +1 -0
  51. package/dist/backend/llvm/unsupported.d.ts +6 -0
  52. package/dist/backend/llvm/unsupported.js +12 -0
  53. package/dist/backend/llvm/unsupported.js.map +1 -0
  54. package/dist/backend/llvm/walkers.d.ts +58 -0
  55. package/dist/backend/llvm/walkers.js +793 -0
  56. package/dist/backend/llvm/walkers.js.map +1 -0
  57. package/dist/backend/mangle.d.ts +124 -0
  58. package/dist/backend/mangle.js +232 -0
  59. package/dist/backend/mangle.js.map +1 -0
  60. package/dist/coverage/report.d.ts +64 -0
  61. package/dist/coverage/report.js +226 -0
  62. package/dist/coverage/report.js.map +1 -0
  63. package/dist/diagnostics/diagnostic.d.ts +140 -0
  64. package/dist/diagnostics/diagnostic.js +458 -0
  65. package/dist/diagnostics/diagnostic.js.map +1 -0
  66. package/dist/diagnostics/render.d.ts +11 -0
  67. package/dist/diagnostics/render.js +58 -0
  68. package/dist/diagnostics/render.js.map +1 -0
  69. package/dist/frontend/cjs-lexer.d.ts +20 -0
  70. package/dist/frontend/cjs-lexer.js +813 -0
  71. package/dist/frontend/cjs-lexer.js.map +1 -0
  72. package/dist/frontend/lowering/http2-constants.d.ts +1 -0
  73. package/dist/frontend/lowering/http2-constants.js +251 -0
  74. package/dist/frontend/lowering/http2-constants.js.map +1 -0
  75. package/dist/frontend/lowering/lib-boundary.d.ts +6 -0
  76. package/dist/frontend/lowering/lib-boundary.js +143 -0
  77. package/dist/frontend/lowering/lib-boundary.js.map +1 -0
  78. package/dist/frontend/lowering/lower-assert.d.ts +18 -0
  79. package/dist/frontend/lowering/lower-assert.js +1269 -0
  80. package/dist/frontend/lowering/lower-assert.js.map +1 -0
  81. package/dist/frontend/lowering/lower-builtins.d.ts +511 -0
  82. package/dist/frontend/lowering/lower-builtins.js +5249 -0
  83. package/dist/frontend/lowering/lower-builtins.js.map +1 -0
  84. package/dist/frontend/lowering/lower-calls.d.ts +581 -0
  85. package/dist/frontend/lowering/lower-calls.js +6281 -0
  86. package/dist/frontend/lowering/lower-calls.js.map +1 -0
  87. package/dist/frontend/lowering/lower-classes.d.ts +727 -0
  88. package/dist/frontend/lowering/lower-classes.js +4701 -0
  89. package/dist/frontend/lowering/lower-classes.js.map +1 -0
  90. package/dist/frontend/lowering/lower-comptime.d.ts +53 -0
  91. package/dist/frontend/lowering/lower-comptime.js +244 -0
  92. package/dist/frontend/lowering/lower-comptime.js.map +1 -0
  93. package/dist/frontend/lowering/lower-containers.d.ts +483 -0
  94. package/dist/frontend/lowering/lower-containers.js +6281 -0
  95. package/dist/frontend/lowering/lower-containers.js.map +1 -0
  96. package/dist/frontend/lowering/lower-dgram.d.ts +20 -0
  97. package/dist/frontend/lowering/lower-dgram.js +319 -0
  98. package/dist/frontend/lowering/lower-dgram.js.map +1 -0
  99. package/dist/frontend/lowering/lower-emitter.d.ts +10 -0
  100. package/dist/frontend/lowering/lower-emitter.js +688 -0
  101. package/dist/frontend/lowering/lower-emitter.js.map +1 -0
  102. package/dist/frontend/lowering/lower-enums.d.ts +22 -0
  103. package/dist/frontend/lowering/lower-enums.js +235 -0
  104. package/dist/frontend/lowering/lower-enums.js.map +1 -0
  105. package/dist/frontend/lowering/lower-expando.d.ts +35 -0
  106. package/dist/frontend/lowering/lower-expando.js +276 -0
  107. package/dist/frontend/lowering/lower-expando.js.map +1 -0
  108. package/dist/frontend/lowering/lower-exprs.d.ts +524 -0
  109. package/dist/frontend/lowering/lower-exprs.js +8099 -0
  110. package/dist/frontend/lowering/lower-exprs.js.map +1 -0
  111. package/dist/frontend/lowering/lower-generators.d.ts +50 -0
  112. package/dist/frontend/lowering/lower-generators.js +421 -0
  113. package/dist/frontend/lowering/lower-generators.js.map +1 -0
  114. package/dist/frontend/lowering/lower-inspect.d.ts +20 -0
  115. package/dist/frontend/lowering/lower-inspect.js +1069 -0
  116. package/dist/frontend/lowering/lower-inspect.js.map +1 -0
  117. package/dist/frontend/lowering/lower-island.d.ts +108 -0
  118. package/dist/frontend/lowering/lower-island.js +650 -0
  119. package/dist/frontend/lowering/lower-island.js.map +1 -0
  120. package/dist/frontend/lowering/lower-mixins.d.ts +96 -0
  121. package/dist/frontend/lowering/lower-mixins.js +534 -0
  122. package/dist/frontend/lowering/lower-mixins.js.map +1 -0
  123. package/dist/frontend/lowering/lower-modules.d.ts +135 -0
  124. package/dist/frontend/lowering/lower-modules.js +1613 -0
  125. package/dist/frontend/lowering/lower-modules.js.map +1 -0
  126. package/dist/frontend/lowering/lower-namespaces.d.ts +168 -0
  127. package/dist/frontend/lowering/lower-namespaces.js +706 -0
  128. package/dist/frontend/lowering/lower-namespaces.js.map +1 -0
  129. package/dist/frontend/lowering/lower-server.d.ts +90 -0
  130. package/dist/frontend/lowering/lower-server.js +3471 -0
  131. package/dist/frontend/lowering/lower-server.js.map +1 -0
  132. package/dist/frontend/lowering/lower-stmts.d.ts +361 -0
  133. package/dist/frontend/lowering/lower-stmts.js +5341 -0
  134. package/dist/frontend/lowering/lower-stmts.js.map +1 -0
  135. package/dist/frontend/lowering/lower-stream.d.ts +88 -0
  136. package/dist/frontend/lowering/lower-stream.js +1533 -0
  137. package/dist/frontend/lowering/lower-stream.js.map +1 -0
  138. package/dist/frontend/lowering/lower-test.d.ts +27 -0
  139. package/dist/frontend/lowering/lower-test.js +353 -0
  140. package/dist/frontend/lowering/lower-test.js.map +1 -0
  141. package/dist/frontend/lowering/lowerer.d.ts +1748 -0
  142. package/dist/frontend/lowering/lowerer.js +6256 -0
  143. package/dist/frontend/lowering/lowerer.js.map +1 -0
  144. package/dist/frontend/lowering/surfaces.d.ts +272 -0
  145. package/dist/frontend/lowering/surfaces.js +1096 -0
  146. package/dist/frontend/lowering/surfaces.js.map +1 -0
  147. package/dist/frontend/npm-static.d.ts +55 -0
  148. package/dist/frontend/npm-static.js +300 -0
  149. package/dist/frontend/npm-static.js.map +1 -0
  150. package/dist/frontend/npm.d.ts +330 -0
  151. package/dist/frontend/npm.js +1259 -0
  152. package/dist/frontend/npm.js.map +1 -0
  153. package/dist/frontend/program.d.ts +186 -0
  154. package/dist/frontend/program.js +2172 -0
  155. package/dist/frontend/program.js.map +1 -0
  156. package/dist/frontend/provenance-registry.d.ts +48 -0
  157. package/dist/frontend/provenance-registry.js +87 -0
  158. package/dist/frontend/provenance-registry.js.map +1 -0
  159. package/dist/frontend/provenance.d.ts +6 -0
  160. package/dist/frontend/provenance.js +459 -0
  161. package/dist/frontend/provenance.js.map +1 -0
  162. package/dist/frontend/resolve.d.ts +56 -0
  163. package/dist/frontend/resolve.js +682 -0
  164. package/dist/frontend/resolve.js.map +1 -0
  165. package/dist/frontend/shared.d.ts +60 -0
  166. package/dist/frontend/shared.js +232 -0
  167. package/dist/frontend/shared.js.map +1 -0
  168. package/dist/frontend/ts7/adapter.d.ts +7 -0
  169. package/dist/frontend/ts7/adapter.js +54 -0
  170. package/dist/frontend/ts7/adapter.js.map +1 -0
  171. package/dist/frontend/ts7/ast.d.ts +50 -0
  172. package/dist/frontend/ts7/ast.js +211 -0
  173. package/dist/frontend/ts7/ast.js.map +1 -0
  174. package/dist/frontend/ts7/census-check.d.ts +1 -0
  175. package/dist/frontend/ts7/census-check.js +12 -0
  176. package/dist/frontend/ts7/census-check.js.map +1 -0
  177. package/dist/frontend/ts7/checker.d.ts +140 -0
  178. package/dist/frontend/ts7/checker.js +544 -0
  179. package/dist/frontend/ts7/checker.js.map +1 -0
  180. package/dist/frontend/ts7/enums.d.ts +18 -0
  181. package/dist/frontend/ts7/enums.js +43 -0
  182. package/dist/frontend/ts7/enums.js.map +1 -0
  183. package/dist/frontend/ts7/program.d.ts +99 -0
  184. package/dist/frontend/ts7/program.js +278 -0
  185. package/dist/frontend/ts7/program.js.map +1 -0
  186. package/dist/frontend/ts7/world-check.d.ts +3 -0
  187. package/dist/frontend/ts7/world-check.js +34 -0
  188. package/dist/frontend/ts7/world-check.js.map +1 -0
  189. package/dist/frontend/types.d.ts +205 -0
  190. package/dist/frontend/types.js +2485 -0
  191. package/dist/frontend/types.js.map +1 -0
  192. package/dist/index.d.ts +85 -0
  193. package/dist/index.js +424 -0
  194. package/dist/index.js.map +1 -0
  195. package/dist/ir/nodes.d.ts +4334 -0
  196. package/dist/ir/nodes.js +1906 -0
  197. package/dist/ir/nodes.js.map +1 -0
  198. package/dist/ir/serialize.d.ts +4 -0
  199. package/dist/ir/serialize.js +34 -0
  200. package/dist/ir/serialize.js.map +1 -0
  201. package/dist/ir/validate.d.ts +36 -0
  202. package/dist/ir/validate.js +4884 -0
  203. package/dist/ir/validate.js.map +1 -0
  204. package/package.json +30 -6
  205. package/README.md +0 -3
  206. 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
+ }