@scriptc/compiler 0.0.35 → 0.1.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 (439) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +14 -11
  2. package/ambient/scriptc-overrides.d.ts +0 -7
  3. package/ambient/scriptc.d.ts +1 -1
  4. package/dist/backend/build-cache.d.ts +44 -0
  5. package/dist/backend/build-cache.js +241 -0
  6. package/dist/backend/build-cache.js.map +1 -0
  7. package/dist/backend/{emission/emit-async.d.ts → c/async.d.ts} +21 -30
  8. package/dist/backend/{emission/emit-async.js → c/async.js} +270 -286
  9. package/dist/backend/c/async.js.map +1 -0
  10. package/dist/backend/{emission/emitter.d.ts → c/c-emitter.d.ts} +6 -23
  11. package/dist/backend/{emission/emitter.js → c/c-emitter.js} +53 -107
  12. package/dist/backend/c/c-emitter.js.map +1 -0
  13. package/dist/backend/c/exprs.d.ts +8 -0
  14. package/dist/backend/c/exprs.js +7937 -0
  15. package/dist/backend/c/exprs.js.map +1 -0
  16. package/dist/backend/{emission/emit-island.d.ts → c/island.d.ts} +5 -5
  17. package/dist/backend/{emission/emit-island.js → c/island.js} +24 -22
  18. package/dist/backend/c/island.js.map +1 -0
  19. package/dist/backend/{emission → c}/may-throw.d.ts +1 -1
  20. package/dist/backend/{emission → c}/may-throw.js +4 -1
  21. package/dist/backend/c/may-throw.js.map +1 -0
  22. package/dist/backend/{emission/emit-shapes.d.ts → c/shapes.d.ts} +19 -19
  23. package/dist/backend/{emission/emit-shapes.js → c/shapes.js} +78 -87
  24. package/dist/backend/c/shapes.js.map +1 -0
  25. package/dist/backend/{emission/emit-stmts.d.ts → c/stmts.d.ts} +12 -12
  26. package/dist/backend/{emission/emit-stmts.js → c/stmts.js} +395 -343
  27. package/dist/backend/c/stmts.js.map +1 -0
  28. package/dist/backend/{emission/emit-types.d.ts → c/types.d.ts} +1 -1
  29. package/dist/backend/{emission/emit-types.js → c/types.js} +42 -286
  30. package/dist/backend/c/types.js.map +1 -0
  31. package/dist/backend/c/types.test.js +25 -0
  32. package/dist/backend/c/types.test.js.map +1 -0
  33. package/dist/backend/{emission/emit-walkers.d.ts → c/walkers.d.ts} +19 -41
  34. package/dist/backend/{emission/emit-walkers.js → c/walkers.js} +242 -304
  35. package/dist/backend/c/walkers.js.map +1 -0
  36. package/dist/backend/external-c.d.ts +33 -0
  37. package/dist/backend/external-c.js +51 -0
  38. package/dist/backend/external-c.js.map +1 -0
  39. package/dist/backend/ffi-callbacks.d.ts +1 -1
  40. package/dist/backend/ffi-callbacks.js +4 -3
  41. package/dist/backend/ffi-callbacks.js.map +1 -1
  42. package/dist/backend/{library-identity.d.ts → library-identity-markers.d.ts} +0 -4
  43. package/dist/backend/{library-identity.js → library-identity-markers.js} +10 -9
  44. package/dist/backend/library-identity-markers.js.map +1 -0
  45. package/dist/backend/link-plan.d.ts +37 -0
  46. package/dist/backend/link-plan.js +26 -0
  47. package/dist/backend/link-plan.js.map +1 -0
  48. package/dist/backend/linker.d.ts +22 -0
  49. package/dist/backend/linker.js +236 -0
  50. package/dist/backend/linker.js.map +1 -0
  51. package/dist/backend/llvm/blocks.d.ts +4 -0
  52. package/dist/backend/llvm/blocks.js +29 -0
  53. package/dist/backend/llvm/blocks.js.map +1 -1
  54. package/dist/backend/llvm/classes.d.ts +2 -19
  55. package/dist/backend/llvm/classes.js +20 -52
  56. package/dist/backend/llvm/classes.js.map +1 -1
  57. package/dist/backend/llvm/common.d.ts +4 -0
  58. package/dist/backend/llvm/common.js +27 -0
  59. package/dist/backend/llvm/common.js.map +1 -0
  60. package/dist/backend/llvm/dyn.d.ts +3 -8
  61. package/dist/backend/llvm/dyn.js +159 -224
  62. package/dist/backend/llvm/dyn.js.map +1 -1
  63. package/dist/backend/llvm/emitter.d.ts +4 -1
  64. package/dist/backend/llvm/emitter.js +548 -9988
  65. package/dist/backend/llvm/emitter.js.map +1 -1
  66. package/dist/backend/llvm/expr-async.d.ts +4 -0
  67. package/dist/backend/llvm/expr-async.js +726 -0
  68. package/dist/backend/llvm/expr-async.js.map +1 -0
  69. package/dist/backend/llvm/expr-bytes.d.ts +13 -0
  70. package/dist/backend/llvm/expr-bytes.js +456 -0
  71. package/dist/backend/llvm/expr-bytes.js.map +1 -0
  72. package/dist/backend/llvm/expr-callbacks.d.ts +22 -0
  73. package/dist/backend/llvm/expr-callbacks.js +520 -0
  74. package/dist/backend/llvm/expr-callbacks.js.map +1 -0
  75. package/dist/backend/llvm/expr-calls.d.ts +2 -0
  76. package/dist/backend/llvm/expr-calls.js +618 -0
  77. package/dist/backend/llvm/expr-calls.js.map +1 -0
  78. package/dist/backend/llvm/expr-containers.d.ts +25 -0
  79. package/dist/backend/llvm/expr-containers.js +637 -0
  80. package/dist/backend/llvm/expr-containers.js.map +1 -0
  81. package/dist/backend/llvm/expr-context.d.ts +255 -0
  82. package/dist/backend/llvm/expr-context.js +2 -0
  83. package/dist/backend/llvm/expr-context.js.map +1 -0
  84. package/dist/backend/llvm/expr-control.d.ts +2 -0
  85. package/dist/backend/llvm/expr-control.js +473 -0
  86. package/dist/backend/llvm/expr-control.js.map +1 -0
  87. package/dist/backend/llvm/expr-dispatch.d.ts +4 -0
  88. package/dist/backend/llvm/expr-dispatch.js +153 -0
  89. package/dist/backend/llvm/expr-dispatch.js.map +1 -0
  90. package/dist/backend/llvm/expr-dynamic.d.ts +2 -0
  91. package/dist/backend/llvm/expr-dynamic.js +810 -0
  92. package/dist/backend/llvm/expr-dynamic.js.map +1 -0
  93. package/dist/backend/llvm/expr-island.d.ts +15 -0
  94. package/dist/backend/llvm/expr-island.js +690 -0
  95. package/dist/backend/llvm/expr-island.js.map +1 -0
  96. package/dist/backend/llvm/expr-primitives.d.ts +6 -0
  97. package/dist/backend/llvm/expr-primitives.js +642 -0
  98. package/dist/backend/llvm/expr-primitives.js.map +1 -0
  99. package/dist/backend/llvm/expr-records.d.ts +9 -0
  100. package/dist/backend/llvm/expr-records.js +299 -0
  101. package/dist/backend/llvm/expr-records.js.map +1 -0
  102. package/dist/backend/llvm/expr-stream-bridges.d.ts +13 -0
  103. package/dist/backend/llvm/expr-stream-bridges.js +420 -0
  104. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -0
  105. package/dist/backend/llvm/expr-stream-callbacks.d.ts +12 -0
  106. package/dist/backend/llvm/expr-stream-callbacks.js +360 -0
  107. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -0
  108. package/dist/backend/llvm/lib-dispatch.d.ts +5 -0
  109. package/dist/backend/llvm/lib-dispatch.js +267 -0
  110. package/dist/backend/llvm/lib-dispatch.js.map +1 -0
  111. package/dist/backend/llvm/lib-filesystem.d.ts +6 -0
  112. package/dist/backend/llvm/lib-filesystem.js +594 -0
  113. package/dist/backend/llvm/lib-filesystem.js.map +1 -0
  114. package/dist/backend/llvm/lib-network.d.ts +2 -0
  115. package/dist/backend/llvm/lib-network.js +429 -0
  116. package/dist/backend/llvm/lib-network.js.map +1 -0
  117. package/dist/backend/llvm/lib-process.d.ts +5 -0
  118. package/dist/backend/llvm/lib-process.js +585 -0
  119. package/dist/backend/llvm/lib-process.js.map +1 -0
  120. package/dist/backend/llvm/lib-shared.d.ts +6 -0
  121. package/dist/backend/llvm/lib-shared.js +687 -0
  122. package/dist/backend/llvm/lib-shared.js.map +1 -0
  123. package/dist/backend/llvm/lib-stream.d.ts +2 -0
  124. package/dist/backend/llvm/lib-stream.js +470 -0
  125. package/dist/backend/llvm/lib-stream.js.map +1 -0
  126. package/dist/backend/llvm/shapes.d.ts +12 -2
  127. package/dist/backend/llvm/shapes.js +66 -307
  128. package/dist/backend/llvm/shapes.js.map +1 -1
  129. package/dist/backend/llvm/shapes.test.js +52 -0
  130. package/dist/backend/llvm/shapes.test.js.map +1 -0
  131. package/dist/backend/llvm/unsupported.d.ts +1 -1
  132. package/dist/backend/llvm/walkers.d.ts +2 -3
  133. package/dist/backend/llvm/walkers.js +195 -222
  134. package/dist/backend/llvm/walkers.js.map +1 -1
  135. package/dist/backend/native-codegen.d.ts +45 -0
  136. package/dist/backend/native-codegen.js +275 -0
  137. package/dist/backend/native-codegen.js.map +1 -0
  138. package/dist/backend/native-codegen.test.js +226 -0
  139. package/dist/backend/native-codegen.test.js.map +1 -0
  140. package/dist/backend/native-link-info.d.ts +96 -0
  141. package/dist/backend/native-link-info.js +243 -0
  142. package/dist/backend/native-link-info.js.map +1 -0
  143. package/dist/backend/native-link-info.test.d.ts +1 -0
  144. package/dist/backend/native-link-info.test.js +134 -0
  145. package/dist/backend/native-link-info.test.js.map +1 -0
  146. package/dist/backend/{cc.d.ts → native-toolchain.d.ts} +54 -34
  147. package/dist/backend/{cc.js → native-toolchain.js} +231 -810
  148. package/dist/backend/native-toolchain.js.map +1 -0
  149. package/dist/backend/native-toolchain.test.d.ts +1 -0
  150. package/dist/backend/{cc-cache.test.js → native-toolchain.test.js} +219 -7
  151. package/dist/backend/native-toolchain.test.js.map +1 -0
  152. package/dist/backend/object-localize.js +1 -1
  153. package/dist/backend/runtime-abi.d.ts +10 -0
  154. package/dist/backend/runtime-abi.js +11 -0
  155. package/dist/backend/runtime-abi.js.map +1 -0
  156. package/dist/backend/runtime-pack-targets.test.d.ts +1 -0
  157. package/dist/backend/runtime-pack-targets.test.js +54 -0
  158. package/dist/backend/runtime-pack-targets.test.js.map +1 -0
  159. package/dist/backend/runtime-pack.d.ts +112 -0
  160. package/dist/backend/runtime-pack.js +305 -0
  161. package/dist/backend/runtime-pack.js.map +1 -0
  162. package/dist/backend/runtime-pack.test.d.ts +1 -0
  163. package/dist/backend/runtime-pack.test.js +473 -0
  164. package/dist/backend/runtime-pack.test.js.map +1 -0
  165. package/dist/backend/targets.d.ts +76 -0
  166. package/dist/backend/targets.js +262 -0
  167. package/dist/backend/targets.js.map +1 -0
  168. package/dist/backend/targets.test.d.ts +1 -0
  169. package/dist/backend/targets.test.js +41 -0
  170. package/dist/backend/targets.test.js.map +1 -0
  171. package/dist/backend/vendor-archives.d.ts +41 -0
  172. package/dist/backend/vendor-archives.js +462 -0
  173. package/dist/backend/vendor-archives.js.map +1 -0
  174. package/dist/compat/fetch-profile.d.ts +0 -1
  175. package/dist/compat/fetch-profile.js +0 -1
  176. package/dist/compat/fetch-profile.js.map +1 -1
  177. package/dist/coverage/report.js +3 -3
  178. package/dist/coverage/report.js.map +1 -1
  179. package/dist/coverage/surface-manifest.js +35 -33
  180. package/dist/coverage/surface-manifest.js.map +1 -1
  181. package/dist/diagnostics/diagnostic.d.ts +11 -12
  182. package/dist/diagnostics/diagnostic.js +19 -17
  183. package/dist/diagnostics/diagnostic.js.map +1 -1
  184. package/dist/diagnostics/render.d.ts +1 -1
  185. package/dist/diagnostics/render.js +1 -1
  186. package/dist/diagnostics/render.js.map +1 -1
  187. package/dist/errors.d.ts +5 -0
  188. package/dist/errors.js +9 -0
  189. package/dist/errors.js.map +1 -0
  190. package/dist/executable/{early-cache.d.ts → executable-cache.d.ts} +2 -2
  191. package/dist/executable/{early-cache.js → executable-cache.js} +36 -98
  192. package/dist/executable/executable-cache.js.map +1 -0
  193. package/dist/executable/executable-cache.test.d.ts +1 -0
  194. package/dist/executable/{early-cache.test.js → executable-cache.test.js} +3 -3
  195. package/dist/executable/executable-cache.test.js.map +1 -0
  196. package/dist/ffi/{profile.js → ffi-manifest.js} +1 -1
  197. package/dist/ffi/ffi-manifest.js.map +1 -0
  198. package/dist/frontend/builtin-modules.d.ts +21 -0
  199. package/dist/frontend/builtin-modules.js +82 -0
  200. package/dist/frontend/builtin-modules.js.map +1 -0
  201. package/dist/frontend/cjs-lexer.d.ts +7 -0
  202. package/dist/frontend/cjs-lexer.js +15 -17
  203. package/dist/frontend/cjs-lexer.js.map +1 -1
  204. package/dist/frontend/dts-paths.d.ts +26 -0
  205. package/dist/frontend/dts-paths.js +41 -0
  206. package/dist/frontend/dts-paths.js.map +1 -0
  207. package/dist/frontend/input-tracker.d.ts +0 -2
  208. package/dist/frontend/input-tracker.js +1 -4
  209. package/dist/frontend/input-tracker.js.map +1 -1
  210. package/dist/frontend/lib-contract.d.ts +1 -5
  211. package/dist/frontend/lib-contract.js +1 -1
  212. package/dist/frontend/lib-contract.js.map +1 -1
  213. package/dist/frontend/lib-exports.d.ts +1 -1
  214. package/dist/frontend/lowering/array-values.d.ts +8 -0
  215. package/dist/frontend/lowering/array-values.js +60 -0
  216. package/dist/frontend/lowering/array-values.js.map +1 -0
  217. package/dist/frontend/lowering/call-position.d.ts +4 -0
  218. package/dist/frontend/lowering/call-position.js +7 -0
  219. package/dist/frontend/lowering/call-position.js.map +1 -0
  220. package/dist/frontend/lowering/callback-arg.d.ts +20 -0
  221. package/dist/frontend/lowering/callback-arg.js +44 -0
  222. package/dist/frontend/lowering/callback-arg.js.map +1 -0
  223. package/dist/frontend/lowering/lib-boundary.d.ts +1 -1
  224. package/dist/frontend/lowering/lib-boundary.js +34 -34
  225. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  226. package/dist/frontend/lowering/lower-array-sort.d.ts +22 -0
  227. package/dist/frontend/lowering/lower-array-sort.js +619 -0
  228. package/dist/frontend/lowering/lower-array-sort.js.map +1 -0
  229. package/dist/frontend/lowering/lower-assert.d.ts +3 -3
  230. package/dist/frontend/lowering/lower-assert.js +214 -241
  231. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  232. package/dist/frontend/lowering/lower-builtins.d.ts +74 -146
  233. package/dist/frontend/lowering/lower-builtins.js +1285 -1233
  234. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  235. package/dist/frontend/lowering/lower-calls.d.ts +59 -192
  236. package/dist/frontend/lowering/lower-calls.js +1644 -1506
  237. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  238. package/dist/frontend/lowering/lower-classes.d.ts +62 -125
  239. package/dist/frontend/lowering/lower-classes.js +832 -866
  240. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  241. package/dist/frontend/lowering/lower-comptime.d.ts +5 -12
  242. package/dist/frontend/lowering/lower-comptime.js +32 -31
  243. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  244. package/dist/frontend/lowering/lower-containers.d.ts +35 -135
  245. package/dist/frontend/lowering/lower-containers.js +1984 -2227
  246. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  247. package/dist/frontend/lowering/lower-dgram.d.ts +3 -7
  248. package/dist/frontend/lowering/lower-dgram.js +97 -111
  249. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  250. package/dist/frontend/lowering/lower-enums.d.ts +4 -4
  251. package/dist/frontend/lowering/lower-enums.js +30 -30
  252. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  253. package/dist/frontend/lowering/{lower-emitter.d.ts → lower-event-emitter.d.ts} +7 -18
  254. package/dist/frontend/lowering/{lower-emitter.js → lower-event-emitter.js} +172 -174
  255. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -0
  256. package/dist/frontend/lowering/lower-expando.d.ts +5 -5
  257. package/dist/frontend/lowering/lower-expando.js +40 -40
  258. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  259. package/dist/frontend/lowering/lower-exprs.d.ts +60 -264
  260. package/dist/frontend/lowering/lower-exprs.js +2361 -1765
  261. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  262. package/dist/frontend/lowering/lower-generators.d.ts +6 -6
  263. package/dist/frontend/lowering/lower-generators.js +73 -72
  264. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  265. package/dist/frontend/lowering/lower-inspect.d.ts +5 -17
  266. package/dist/frontend/lowering/lower-inspect.js +273 -261
  267. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  268. package/dist/frontend/lowering/lower-island.d.ts +39 -49
  269. package/dist/frontend/lowering/lower-island.js +447 -513
  270. package/dist/frontend/lowering/lower-island.js.map +1 -1
  271. package/dist/frontend/lowering/lower-mixins.d.ts +7 -10
  272. package/dist/frontend/lowering/lower-mixins.js +85 -85
  273. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  274. package/dist/frontend/lowering/lower-modules.d.ts +12 -18
  275. package/dist/frontend/lowering/lower-modules.js +284 -283
  276. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  277. package/dist/frontend/lowering/lower-namespaces.d.ts +23 -49
  278. package/dist/frontend/lowering/lower-namespaces.js +123 -115
  279. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  280. package/dist/frontend/lowering/lower-server.d.ts +18 -25
  281. package/dist/frontend/lowering/lower-server.js +909 -899
  282. package/dist/frontend/lowering/lower-server.js.map +1 -1
  283. package/dist/frontend/lowering/lower-stmts.d.ts +30 -149
  284. package/dist/frontend/lowering/lower-stmts.js +1463 -1285
  285. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  286. package/dist/frontend/lowering/lower-stream.d.ts +12 -12
  287. package/dist/frontend/lowering/lower-stream.js +300 -301
  288. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  289. package/dist/frontend/lowering/lower-test.d.ts +5 -5
  290. package/dist/frontend/lowering/lower-test.js +82 -82
  291. package/dist/frontend/lowering/lower-test.js.map +1 -1
  292. package/dist/frontend/lowering/lowerer.d.ts +134 -22
  293. package/dist/frontend/lowering/lowerer.js +1277 -126
  294. package/dist/frontend/lowering/lowerer.js.map +1 -1
  295. package/dist/frontend/lowering/pairs-snapshot.d.ts +11 -0
  296. package/dist/frontend/lowering/pairs-snapshot.js +85 -0
  297. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -0
  298. package/dist/frontend/lowering/static-this.d.ts +6 -0
  299. package/dist/frontend/lowering/static-this.js +24 -0
  300. package/dist/frontend/lowering/static-this.js.map +1 -0
  301. package/dist/frontend/lowering/surfaces.d.ts +24 -35
  302. package/dist/frontend/lowering/surfaces.js +78 -66
  303. package/dist/frontend/lowering/surfaces.js.map +1 -1
  304. package/dist/frontend/npm-static-rewrite.js +6 -28
  305. package/dist/frontend/npm-static-rewrite.js.map +1 -1
  306. package/dist/frontend/npm-static.d.ts +0 -10
  307. package/dist/frontend/npm-static.js +4 -7
  308. package/dist/frontend/npm-static.js.map +1 -1
  309. package/dist/frontend/npm.d.ts +0 -24
  310. package/dist/frontend/npm.js +11 -85
  311. package/dist/frontend/npm.js.map +1 -1
  312. package/dist/frontend/program.d.ts +3 -1
  313. package/dist/frontend/program.js +9 -4
  314. package/dist/frontend/program.js.map +1 -1
  315. package/dist/frontend/provenance-registry.d.ts +0 -2
  316. package/dist/frontend/provenance-registry.js +0 -10
  317. package/dist/frontend/provenance-registry.js.map +1 -1
  318. package/dist/frontend/provenance.js +4 -7
  319. package/dist/frontend/provenance.js.map +1 -1
  320. package/dist/frontend/resolve.d.ts +7 -2
  321. package/dist/frontend/resolve.js +12 -17
  322. package/dist/frontend/resolve.js.map +1 -1
  323. package/dist/frontend/resolve.test.d.ts +1 -0
  324. package/dist/frontend/resolve.test.js +29 -0
  325. package/dist/frontend/resolve.test.js.map +1 -0
  326. package/dist/frontend/ts7/adapter.d.ts +2 -2
  327. package/dist/frontend/ts7/adapter.js +1 -1
  328. package/dist/frontend/ts7/adapter.js.map +1 -1
  329. package/dist/frontend/ts7/checker.js +2 -36
  330. package/dist/frontend/ts7/checker.js.map +1 -1
  331. package/dist/frontend/ts7/enums.js +2 -1
  332. package/dist/frontend/ts7/enums.js.map +1 -1
  333. package/dist/frontend/ts7/{program.js → program-adapter.js} +7 -6
  334. package/dist/frontend/ts7/program-adapter.js.map +1 -0
  335. package/dist/frontend/ts7/world-check.d.ts +1 -3
  336. package/dist/frontend/ts7/world-check.js +3 -1
  337. package/dist/frontend/ts7/world-check.js.map +1 -1
  338. package/dist/frontend/tsc-codes.d.ts +8 -0
  339. package/dist/frontend/tsc-codes.js +109 -0
  340. package/dist/frontend/tsc-codes.js.map +1 -0
  341. package/dist/frontend/{types.d.ts → type-mapper.d.ts} +2 -25
  342. package/dist/frontend/{types.js → type-mapper.js} +12 -11
  343. package/dist/frontend/type-mapper.js.map +1 -0
  344. package/dist/frontend/workspace-registry.d.ts +26 -0
  345. package/dist/frontend/workspace-registry.js +71 -0
  346. package/dist/frontend/workspace-registry.js.map +1 -0
  347. package/dist/index.d.ts +113 -31
  348. package/dist/index.js +536 -128
  349. package/dist/index.js.map +1 -1
  350. package/dist/ir/analysis.d.ts +37 -0
  351. package/dist/ir/analysis.js +118 -0
  352. package/dist/ir/analysis.js.map +1 -0
  353. package/dist/ir/analysis.test.d.ts +1 -0
  354. package/dist/ir/analysis.test.js +21 -0
  355. package/dist/ir/analysis.test.js.map +1 -0
  356. package/dist/ir/build.d.ts +9 -0
  357. package/dist/ir/build.js +33 -0
  358. package/dist/ir/build.js.map +1 -0
  359. package/dist/ir/integer-loops.d.ts +1 -1
  360. package/dist/ir/{nodes.d.ts → ir.d.ts} +119 -37
  361. package/dist/ir/{nodes.js → ir.js} +170 -166
  362. package/dist/ir/ir.js.map +1 -0
  363. package/dist/ir/ir.test.d.ts +1 -0
  364. package/dist/ir/ir.test.js +17 -0
  365. package/dist/ir/ir.test.js.map +1 -0
  366. package/dist/ir/serialize.d.ts +2 -2
  367. package/dist/ir/serialize.js +3 -2
  368. package/dist/ir/serialize.js.map +1 -1
  369. package/dist/ir/validate.d.ts +1 -1
  370. package/dist/ir/validate.js +93 -41
  371. package/dist/ir/validate.js.map +1 -1
  372. package/dist/library/cache-primitives.d.ts +24 -0
  373. package/dist/library/cache-primitives.js +83 -0
  374. package/dist/library/cache-primitives.js.map +1 -0
  375. package/dist/library/cache-reset.test.d.ts +1 -0
  376. package/dist/library/cache-reset.test.js +47 -0
  377. package/dist/library/cache-reset.test.js.map +1 -0
  378. package/dist/library/{implementation-identity.js → compiler-self-identity.js} +1 -1
  379. package/dist/library/compiler-self-identity.js.map +1 -0
  380. package/dist/library/fence-eval.d.ts +3 -1
  381. package/dist/library/fence-eval.js +8 -2
  382. package/dist/library/fence-eval.js.map +1 -1
  383. package/dist/library/int-infer.d.ts +1 -36
  384. package/dist/library/int-infer.js +29 -18
  385. package/dist/library/int-infer.js.map +1 -1
  386. package/dist/library/int-infer.test.js +4 -4
  387. package/dist/library/{early-cache.d.ts → library-cache.d.ts} +1 -1
  388. package/dist/library/{early-cache.js → library-cache.js} +34 -89
  389. package/dist/library/library-cache.js.map +1 -0
  390. package/dist/library/library-cache.test.d.ts +1 -0
  391. package/dist/library/{early-cache.test.js → library-cache.test.js} +7 -7
  392. package/dist/library/library-cache.test.js.map +1 -0
  393. package/dist/library/{profile.d.ts → library-profile.d.ts} +4 -7
  394. package/dist/library/{profile.js → library-profile.js} +18 -11
  395. package/dist/library/library-profile.js.map +1 -0
  396. package/dist/library/semantic-source.js +2 -1
  397. package/dist/library/semantic-source.js.map +1 -1
  398. package/dist/library/sidecar.d.ts +5 -2
  399. package/dist/library/sidecar.js +11 -5
  400. package/dist/library/sidecar.js.map +1 -1
  401. package/dist/startup-cache.d.ts +11 -3
  402. package/dist/startup-cache.js +17 -2
  403. package/dist/startup-cache.js.map +1 -1
  404. package/package.json +19 -2
  405. package/surface-manifest.json +5 -5
  406. package/dist/backend/cc-cache.test.js.map +0 -1
  407. package/dist/backend/cc.js.map +0 -1
  408. package/dist/backend/emission/emit-async.js.map +0 -1
  409. package/dist/backend/emission/emit-exprs.d.ts +0 -13
  410. package/dist/backend/emission/emit-exprs.js +0 -7407
  411. package/dist/backend/emission/emit-exprs.js.map +0 -1
  412. package/dist/backend/emission/emit-island.js.map +0 -1
  413. package/dist/backend/emission/emit-shapes.js.map +0 -1
  414. package/dist/backend/emission/emit-stmts.js.map +0 -1
  415. package/dist/backend/emission/emit-types.js.map +0 -1
  416. package/dist/backend/emission/emit-walkers.js.map +0 -1
  417. package/dist/backend/emission/emitter.js.map +0 -1
  418. package/dist/backend/emission/may-throw.js.map +0 -1
  419. package/dist/backend/library-identity.js.map +0 -1
  420. package/dist/executable/early-cache.js.map +0 -1
  421. package/dist/executable/early-cache.test.js.map +0 -1
  422. package/dist/ffi/profile.js.map +0 -1
  423. package/dist/frontend/lowering/lower-emitter.js.map +0 -1
  424. package/dist/frontend/shared.d.ts +0 -82
  425. package/dist/frontend/shared.js +0 -308
  426. package/dist/frontend/shared.js.map +0 -1
  427. package/dist/frontend/ts7/program.js.map +0 -1
  428. package/dist/frontend/types.js.map +0 -1
  429. package/dist/ir/nodes.js.map +0 -1
  430. package/dist/library/early-cache.js.map +0 -1
  431. package/dist/library/early-cache.test.js.map +0 -1
  432. package/dist/library/implementation-identity.js.map +0 -1
  433. package/dist/library/profile.js.map +0 -1
  434. /package/dist/backend/{cc-cache.test.d.ts → c/types.test.d.ts} +0 -0
  435. /package/dist/{executable/early-cache.test.d.ts → backend/llvm/shapes.test.d.ts} +0 -0
  436. /package/dist/{library/early-cache.test.d.ts → backend/native-codegen.test.d.ts} +0 -0
  437. /package/dist/ffi/{profile.d.ts → ffi-manifest.d.ts} +0 -0
  438. /package/dist/frontend/ts7/{program.d.ts → program-adapter.d.ts} +0 -0
  439. /package/dist/library/{implementation-identity.d.ts → compiler-self-identity.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
- import type { CEmitter } from "./emitter.js";
2
- import { IrType } from "../../ir/nodes.js";
1
+ import type { CEmitter } from "./c-emitter.js";
2
+ import { IrType } from "../../ir/ir.js";
3
3
  /** Embedded npm modules (--dynamic): every reached module's SOURCE as a
4
4
  * static string plus the resolution edges — the island's module loader
5
5
  * and require shim read these tables; binaries never touch node_modules
@@ -14,14 +14,14 @@ import { IrType } from "../../ir/nodes.js";
14
14
  * links scr_zlib.c/libz on the same moduleEmbedsCompressedNpm predicate),
15
15
  * so boot touches no compressed page a run never loads — cold start
16
16
  * SHRINKS with the binary. */
17
- export declare function emitNpmEmbedding(E: CEmitter, out: string[]): void;
17
+ export declare function emitNpmEmbedding(emitter: CEmitter, out: string[]): void;
18
18
  /** The host-call adapter for closures of a given (arity, return kind) —
19
19
  * see islandAdapters. `argv` cells are BORROWED by the wrapper; the
20
20
  * closure ABI consumes (+1) each param, so the adapter retains them in.
21
21
  * A jsval-returning closure's +1 result passes straight through;
22
22
  * primitive returns marshal back by value; void closures return NULL
23
23
  * (the wrapper turns that into `undefined`). */
24
- export declare function islandAdapter(E: CEmitter, arity: number, retKind: "void" | "jsval" | "f64" | "bool" | "string"): string;
24
+ export declare function islandAdapter(emitter: CEmitter, arity: number, retKind: "void" | "jsval" | "f64" | "bool" | "string"): string;
25
25
  /** The host-call adapter for a closure with TYPED parameters — one per
26
26
  * full signature (param typeKeys + return classification), interned like
27
27
  * the all-'any' adapters above. On invocation from the engine, each
@@ -40,6 +40,6 @@ export declare function islandAdapter(E: CEmitter, arity: number, retKind: "void
40
40
  * returns marshal back like the all-'any' adapters; a Promise return
41
41
  * (async callbacks) wraps as an engine promise settled when the scriptc
42
42
  * promise settles (scr_jsval_from_promise). */
43
- export declare function islandTypedAdapter(E: CEmitter, fn: IrType & {
43
+ export declare function islandTypedAdapter(emitter: CEmitter, fn: IrType & {
44
44
  kind: "func";
45
45
  }): string;
@@ -1,11 +1,13 @@
1
+ import { InternalCompilerError } from "../../errors.js";
1
2
  /* Island-boundary C emission owned pieces: the embedded npm module/edge
2
3
  * tables (--dynamic builds embed every reached npm source; the island's
3
4
  * module loader and require shim read them — binaries never touch
4
5
  * node_modules at runtime) and the interned host-call adapters that let the
5
6
  * engine invoke scriptc closures. */
6
7
  import { deflateRawSync } from "node:zlib";
7
- import { cDecl, cFnPtrCast, cStringLiteral, releaseCallC } from "./emit-types.js";
8
- import { islandCallbackRet, NPM_COMPRESS_MIN, typeKey } from "../../ir/nodes.js";
8
+ import { cDecl, cFnPtrCast, cStringLiteral, releaseCallC } from "./types.js";
9
+ import { islandCallbackRet, NPM_COMPRESS_MIN, typeKey } from "../../ir/ir.js";
10
+ import { undefinedArmTag } from "../../ir/analysis.js";
9
11
  /** Embedded npm modules (--dynamic): every reached module's SOURCE as a
10
12
  * static string plus the resolution edges — the island's module loader
11
13
  * and require shim read these tables; binaries never touch node_modules
@@ -20,8 +22,8 @@ import { islandCallbackRet, NPM_COMPRESS_MIN, typeKey } from "../../ir/nodes.js"
20
22
  * links scr_zlib.c/libz on the same moduleEmbedsCompressedNpm predicate),
21
23
  * so boot touches no compressed page a run never loads — cold start
22
24
  * SHRINKS with the binary. */
23
- export function emitNpmEmbedding(E, out) {
24
- const embedded = E.mod.embedded;
25
+ export function emitNpmEmbedding(emitter, out) {
26
+ const embedded = emitter.mod.embedded;
25
27
  if (embedded && embedded.modules.length > 0) {
26
28
  const emitChunked = (name, bytes, comment) => {
27
29
  out.push(`static const char ${name}[] = ${comment !== undefined ? `/* ${comment} */` : ""}`);
@@ -89,14 +91,14 @@ export function emitNpmEmbedding(E, out) {
89
91
  * A jsval-returning closure's +1 result passes straight through;
90
92
  * primitive returns marshal back by value; void closures return NULL
91
93
  * (the wrapper turns that into `undefined`). */
92
- export function islandAdapter(E, arity, retKind) {
94
+ export function islandAdapter(emitter, arity, retKind) {
93
95
  const tag = { void: "v", jsval: "j", f64: "f", bool: "b", string: "s" }[retKind];
94
96
  const key = `${arity}:${tag}`;
95
- const existing = E.islandAdapters.get(key);
97
+ const existing = emitter.islandAdapters.get(key);
96
98
  if (existing)
97
99
  return existing;
98
100
  const name = `sc_ia_${arity}${tag}`;
99
- E.islandAdapters.set(key, name);
101
+ emitter.islandAdapters.set(key, name);
100
102
  const cRet = { void: "void", jsval: "ScrJsval *", f64: "double", bool: "bool", string: "ScrStr *" }[retKind];
101
103
  const params = ["ScrClosure *"].concat(Array(arity).fill("ScrJsval *"));
102
104
  const callArgs = ["c", ...Array.from({ length: arity }, (_, i) => `scr_jsval_retain(argv[${i}])`)];
@@ -120,8 +122,8 @@ export function islandAdapter(E, arity, retKind) {
120
122
  ` return r;`,
121
123
  ];
122
124
  const sig = `static ScrJsval *${name}(ScrClosure *c, ScrJsval **argv)`;
123
- E.walkerProtos.push(`${sig}; /* island host-call adapter (${arity} arg${arity === 1 ? "" : "s"}, ${retKind}) */`);
124
- E.walkerDefs.push(`${sig} {`, ` typedef ${cRet} (*Fn)(${params.join(", ")});`, ...(arity === 0 ? [` (void)argv;`] : []), ...body, `}`);
125
+ emitter.walkerProtos.push(`${sig}; /* island host-call adapter (${arity} arg${arity === 1 ? "" : "s"}, ${retKind}) */`);
126
+ emitter.walkerDefs.push(`${sig} {`, ` typedef ${cRet} (*Fn)(${params.join(", ")});`, ...(arity === 0 ? [` (void)argv;`] : []), ...body, `}`);
125
127
  return name;
126
128
  }
127
129
  /** The host-call adapter for a closure with TYPED parameters — one per
@@ -142,16 +144,16 @@ export function islandAdapter(E, arity, retKind) {
142
144
  * returns marshal back like the all-'any' adapters; a Promise return
143
145
  * (async callbacks) wraps as an engine promise settled when the scriptc
144
146
  * promise settles (scr_jsval_from_promise). */
145
- export function islandTypedAdapter(E, fn) {
146
- const ret = islandCallbackRet(fn.ret, (id) => E.recordsById.get(id), (id) => E.unionsById.get(id));
147
+ export function islandTypedAdapter(emitter, fn) {
148
+ const ret = islandCallbackRet(fn.ret, (id) => emitter.recordsById.get(id), (id) => emitter.unionsById.get(id));
147
149
  if (!ret)
148
- throw new Error("emitter bug: typed island adapter with unsupported return");
150
+ throw new InternalCompilerError("emitter bug: typed island adapter with unsupported return");
149
151
  const key = `${fn.params.map((p) => typeKey(p)).join(",")}=>${ret.async ? "P:" : ""}${ret.tag}`;
150
- const existing = E.islandTypedAdapters.get(key);
152
+ const existing = emitter.islandTypedAdapters.get(key);
151
153
  if (existing)
152
154
  return existing;
153
- const name = `sc_ita_${E.islandTypedAdapters.size}`;
154
- E.islandTypedAdapters.set(key, name);
155
+ const name = `sc_ita_${emitter.islandTypedAdapters.size}`;
156
+ emitter.islandTypedAdapters.set(key, name);
155
157
  const decls = [];
156
158
  const conv = [];
157
159
  const cleanup = [];
@@ -184,7 +186,7 @@ export function islandTypedAdapter(E, fn) {
184
186
  // Composite (record/array/union): the jsExit pipeline — engine
185
187
  // JSON.stringify, json.parse, the interned dynCheck builder.
186
188
  canFail = true;
187
- const utag = E.undefinedArmTag(p);
189
+ const utag = undefinedArmTag(p, emitter.unionsById);
188
190
  decls.push(` ${cDecl(p, a)} = NULL;`);
189
191
  const roundTrip = [
190
192
  ` ScrStr *sc_j = scr_jsval_to_json(argv[${i}]);`,
@@ -192,12 +194,12 @@ export function islandTypedAdapter(E, fn) {
192
194
  ` ScrDyn *sc_d = scr_json_parse(sc_j);`,
193
195
  ` scr_str_release(sc_j);`,
194
196
  ` if (!sc_d) goto sc_convfail;`,
195
- ` ${a} = ${E.dynCheckHelper(p)}(sc_d, NULL);`,
197
+ ` ${a} = ${emitter.dynCheckHelper(p)}(sc_d, NULL);`,
196
198
  ` scr_dyn_release(sc_d);`,
197
199
  ` if (scr_exc_pending()) goto sc_convfail;`,
198
200
  ];
199
201
  if (p.kind === "union" && utag >= 0) {
200
- conv.push(` if (scr_jsval_is_undefined(argv[${i}])) {`, ` ${a} = ${E.unitInstanceRef(p.unionId, utag)}; /* absent/undefined argument -> the undefined arm */`, ` } else {`, ...roundTrip, ` }`);
202
+ conv.push(` if (scr_jsval_is_undefined(argv[${i}])) {`, ` ${a} = ${emitter.unitInstanceRef(p.unionId, utag)}; /* absent/undefined argument -> the undefined arm */`, ` } else {`, ...roundTrip, ` }`);
201
203
  }
202
204
  else {
203
205
  conv.push(` {`, ...roundTrip, ` }`);
@@ -254,7 +256,7 @@ export function islandTypedAdapter(E, fn) {
254
256
  // type-directed serializer, then the engine's JSON parser (deep
255
257
  // copy; the documented aliasing divergence). NULL result is the
256
258
  // throw-path dummy.
257
- const helper = E.jsonWriteHelper(fn.ret);
259
+ const helper = emitter.jsonWriteHelper(fn.ret);
258
260
  body.push(` ${cDecl(fn.ret, "sc_rv")} = ${call};`, ` if (scr_exc_pending()) { ${releaseCallC(fn.ret, "sc_rv")}; return NULL; }`, ` ScrJsonBuf sc_jb; scr_jb_init(&sc_jb);`, ` ${helper}(&sc_jb, sc_rv);`, ` ${releaseCallC(fn.ret, "sc_rv")};`, ` ScrStr *sc_rj = scr_jb_finish(&sc_jb);`, ` ScrJsval *sc_r = scr_jsval_from_json(sc_rj);`, ` scr_str_release(sc_rj);`, ` return sc_r;`);
259
261
  break;
260
262
  }
@@ -272,8 +274,8 @@ export function islandTypedAdapter(E, fn) {
272
274
  ]
273
275
  : [];
274
276
  const sig = `static ScrJsval *${name}(ScrClosure *c, ScrJsval **argv)`;
275
- E.walkerProtos.push(`${sig}; /* typed island host-call adapter: ${key} */`);
276
- E.walkerDefs.push(`${sig} { /* ${key} */`, ...(fn.params.length === 0 ? [` (void)argv;`] : []), ...decls, ...conv, ...body, ...fail, `}`, ``);
277
+ emitter.walkerProtos.push(`${sig}; /* typed island host-call adapter: ${key} */`);
278
+ emitter.walkerDefs.push(`${sig} { /* ${key} */`, ...(fn.params.length === 0 ? [` (void)argv;`] : []), ...decls, ...conv, ...body, ...fail, `}`, ``);
277
279
  return name;
278
280
  }
279
- //# sourceMappingURL=emit-island.js.map
281
+ //# sourceMappingURL=island.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"island.js","sourceRoot":"","sources":["../../../src/backend/c/island.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { IrModule } from "../../ir/nodes.js";
1
+ import type { IrModule } from "../../ir/ir.js";
2
2
  /** Cheap may-throw analysis (cost discipline: functions that transitively
3
3
  * CANNOT throw pay for no pending-exception checks). A function may throw
4
4
  * iff it contains a `throw`, calls a may-throw function (direct `call` or
@@ -1,4 +1,4 @@
1
- import { isFfiCallbackParam, MAY_THROW_ARR_METHODS, MAY_THROW_BYTES_METHODS, MAY_THROW_LIB_FNS } from "../../ir/nodes.js";
1
+ import { isFfiCallbackParam, MAY_THROW_ARR_METHODS, MAY_THROW_BYTES_METHODS, MAY_THROW_LIB_FNS } from "../../ir/ir.js";
2
2
  import { hasRetainedFfiCallback } from "../ffi-callbacks.js";
3
3
  /** Cheap may-throw analysis (cost discipline: functions that transitively
4
4
  * CANNOT throw pay for no pending-exception checks). A function may throw
@@ -195,6 +195,9 @@ export function computeMayThrow(mod) {
195
195
  f.throws = true;
196
196
  }
197
197
  break;
198
+ case "arraySetLength":
199
+ f.throws = true;
200
+ break;
198
201
  case "regexIntrinsic":
199
202
  // replaceAll and matchAll without /g throw Node's TypeError;
200
203
  // split throws on a pattern with capture groups — all catchable.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"may-throw.js","sourceRoot":"","sources":["../../../src/backend/c/may-throw.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;;;;+EAS+E;AAC/E,MAAM,UAAU,eAAe,CAAC,GAAa;IAM3C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;IACvC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,uEAAuE;IACvE,+DAA+D;IAC/D,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACtF,mEAAmE;IACnE,sEAAsE;IACtE,uEAAuE;IACvE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAChC,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;SACnB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACxD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAC9B,CAAC;IACF,MAAM,2BAA2B,GAAG,sBAAsB,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACjF,0EAA0E;IAC1E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YAClC,IAAI,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI;gBAAE,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACnE,qEAAqE;QACrE,yDAAyD;QACzD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,wEAAwE;QACxE,mEAAmE;QACnE,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;YACpC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,KAAK,MAAM,IAAI,IAAI,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;YACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO;YACtD,MAAM,GAAG,GAAG,IAA+B,CAAC;YAC5C,QAAQ,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpB,KAAK,OAAO,CAAC;gBACb,KAAK,SAAS,CAAC;gBACf,gEAAgE;gBAChE,KAAK,cAAc;oBACjB,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACR,KAAK,QAAQ;oBACX,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAW,CAAC;wBAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC7E,MAAM;gBACR,KAAK,UAAU,CAAC;gBAChB,KAAK,aAAa;oBAChB,4DAA4D;oBAC5D,yDAAyD;oBACzD,gEAAgE;oBAChE,yDAAyD;oBACzD,iEAAiE;oBACjE,8DAA8D;oBAC9D,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAChB,IAAK,GAAG,CAAC,MAAM,CAAmC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;wBACpE,iBAAiB,GAAG,IAAI,CAAC;oBAC3B,CAAC;oBACD,MAAM;gBACR,KAAK,aAAa;oBAChB,8DAA8D;oBAC9D,2DAA2D;oBAC3D,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI;wBAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC9C,MAAM;gBACR,KAAK,SAAS,CAAC;gBACf,6DAA6D;gBAC7D,+DAA+D;gBAC/D,KAAK,WAAW;oBACd,2DAA2D;oBAC3D,wDAAwD;oBACxD,6DAA6D;oBAC7D,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACR,KAAK,WAAW;oBACd,4DAA4D;oBAC5D,0DAA0D;oBAC1D,yDAAyD;oBACzD,qCAAqC;oBACrC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACR,KAAK,eAAe,CAAC;gBACrB,KAAK,UAAU;oBACb,0DAA0D;oBAC1D,wBAAwB;oBACxB,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACR,KAAK,WAAW,CAAC;gBACjB,KAAK,gBAAgB;oBACnB,0DAA0D;oBAC1D,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACR,KAAK,WAAW;oBACd,+DAA+D;oBAC/D,kEAAkE;oBAClE,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,cAAc;wBAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBACpD,MAAM;gBACR,KAAK,WAAW;oBACd,6DAA6D;oBAC7D,0CAA0C;oBAC1C,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACR,KAAK,WAAW;oBACd,wDAAwD;oBACxD,4DAA4D;oBAC5D,wCAAwC;oBACxC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACR,KAAK,cAAc,CAAC,CAAC,CAAC;oBACpB,iEAAiE;oBACjE,8DAA8D;oBAC9D,6DAA6D;oBAC7D,4DAA4D;oBAC5D,mDAAmD;oBACnD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;oBACvE,IACE,GAAG,CAAC,cAAc,CAAC,KAAK,IAAI;wBAC5B,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAC5F,CAAC;wBACD,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAClB,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,eAAe,CAAC,CAAC,CAAC;oBACrB,8DAA8D;oBAC9D,+DAA+D;oBAC/D,gEAAgE;oBAChE,8DAA8D;oBAC9D,4DAA4D;oBAC5D,QAAQ;oBACR,MAAM,EAAE,GAAI,GAAG,CAAC,OAAO,CAAkC,CAAC,IAAI,EAAE,IAAI,CAAC;oBACrE,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,OAAO;wBAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBACzF,MAAM;gBACR,CAAC;gBACD,KAAK,MAAM,CAAC;gBACZ,KAAK,QAAQ,CAAC;gBACd,KAAK,WAAW,CAAC;gBACjB,KAAK,iBAAiB;oBACpB,2DAA2D;oBAC3D,4DAA4D;oBAC5D,+CAA+C;oBAC/C,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACR,KAAK,SAAS;oBACZ,yDAAyD;oBACzD,sDAAsD;oBACtD,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAY,CAAC;wBAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBACjE,MAAM;gBACR,KAAK,SAAS;oBACZ,kEAAkE;oBAClE,gEAAgE;oBAChE,8DAA8D;oBAC9D,IACE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAW,CAAC;wBAC/C,2BAA2B;wBAC3B,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAClB,MAAM;gBACR,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,6DAA6D;oBAC7D,6DAA6D;oBAC7D,uBAAuB;oBACvB,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAwC,CAAC;oBACpE,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,KAAK,KAAK;wBAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC3D,MAAM;gBACR,CAAC;gBACD,KAAK,gBAAgB;oBACnB,8DAA8D;oBAC9D,2DAA2D;oBAC3D,eAAe;oBACf,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAA2B,CAAC,EAAE,CAAC;wBACzE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAClB,CAAC;oBACD,MAAM;gBACR,KAAK,cAAc;oBACjB,IAAI,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAyB,CAAC,EAAE,CAAC;wBACrE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAClB,CAAC;oBACD,MAAM;gBACR,KAAK,gBAAgB;oBACnB,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACR,KAAK,gBAAgB;oBACnB,6DAA6D;oBAC7D,iEAAiE;oBACjE,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,YAAY,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,UAAU,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,cAAc,EAAE,CAAC;wBACpI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAClB,CAAC;oBACD,MAAM;gBACR,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,6DAA6D;oBAC7D,6DAA6D;oBAC7D,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAW,CAAC;oBACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;wBAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACzE,MAAM;gBACR,CAAC;gBACD,KAAK,KAAK;oBACR,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,CAAW,cAAc,CAAC,CAAC;oBAC7D,MAAM;gBACR,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,gEAAgE;oBAChE,6DAA6D;oBAC7D,wDAAwD;oBACxD,4CAA4C;oBAC5C,MAAM,GAAG,GAAG,CAAE,GAAG,CAAC,QAAQ,CAAuC,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;oBACnF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;wBACtB,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAW,EAAE;4BACzC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gCAC1H,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG;oCAAE,OAAO,IAAI,CAAC;gCAChC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;oCAAE,MAAM;4BAClC,CAAC;4BACD,OAAO,KAAK,CAAC;wBACf,CAAC,CAAC;wBACF,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;4BAClC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;gCAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC;wBACjE,CAAC;oBACH,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,aAAa,CAAC,CAAC,CAAC;oBACnB,gEAAgE;oBAChE,iEAAiE;oBACjE,oDAAoD;oBACpD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAW,CAAC,CAAC;oBACvD,IAAI,KAAK;wBAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;oBACpC,MAAM;gBACR,CAAC;gBACD,KAAK,WAAW;oBACd,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;oBACpB,MAAM;gBACR,KAAK,SAAS;oBACZ,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAW,CAAC,CAAC;oBAC5C,MAAM;YACV,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM;oBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC;QACF,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACf,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK;QAAE,IAAI,CAAC,CAAC,MAAM;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,QAAQ,GACV,iBAAiB;QACjB,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,EAAE,CAAC;QACf,OAAO,GAAG,KAAK,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;YAC9B,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC5B,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnG,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC"}
@@ -1,6 +1,6 @@
1
- import type { CEmitter } from "./emitter.js";
2
- import type { IrFunction } from "../../ir/nodes.js";
3
- import { IrClassDef, IrType } from "../../ir/nodes.js";
1
+ import type { CEmitter } from "./c-emitter.js";
2
+ import type { IrFunction } from "../../ir/ir.js";
3
+ import { IrClassDef, IrType } from "../../ir/ir.js";
4
4
  /** The overflow map's C member name on index-signature record structs.
5
5
  * User fields mangle to `sc_fld_*`, so no field can collide. */
6
6
  export declare const OVERFLOW_MEMBER = "sc_ovf";
@@ -46,28 +46,28 @@ export interface ClassMeta {
46
46
  * exactly the other refcounted fields (the trace/teardown complement
47
47
  * contract in scr_runtime.h) — and their retain/release feed the
48
48
  * candidate-root buffer. Acyclic shapes keep the lean 1-word header. */
49
- export declare function emitStructDefs(E: CEmitter, out: string[]): void;
49
+ export declare function emitStructDefs(emitter: CEmitter, out: string[]): void;
50
50
  /** The root's slot list as seen by one class: the implementation the
51
51
  * class dispatches to, or null outside the slot's declaring subtree (a
52
52
  * call through this class's vtable can never reach that slot). An
53
53
  * ABSTRACT class whose chain holds only abstract declarations of the
54
54
  * slot also answers null — the class never instantiates (tsc), so its
55
55
  * own vtable entry can never dispatch. */
56
- export declare function vtEntriesFor(E: CEmitter, meta: ClassMeta): {
56
+ export declare function vtEntriesFor(emitter: CEmitter, meta: ClassMeta): {
57
57
  slot: VtSlot;
58
58
  impl: ClassMeta | null;
59
59
  }[];
60
60
  /** The C parameter list of a slot (declaring-class `this` first). */
61
- export declare function vtSlotParams(E: CEmitter, slot: VtSlot, named: boolean): string[];
61
+ export declare function vtSlotParams(emitter: CEmitter, slot: VtSlot, named: boolean): string[];
62
62
  /** Vtable struct typedefs + adapter prototypes (the definitions call
63
63
  * function bodies, so they flush after the signature block — see emit). */
64
- export declare function emitVtableDecls(E: CEmitter, out: string[], hierarchyClasses: ClassMeta[]): void;
64
+ export declare function emitVtableDecls(emitter: CEmitter, out: string[], hierarchyClasses: ClassMeta[]): void;
65
65
  /** One static const vtable per hierarchy class: interval, direct
66
66
  * release, and the class's dispatch entry for every slot. */
67
- export declare function emitVtableInstances(E: CEmitter, out: string[], hierarchyClasses: ClassMeta[]): void;
67
+ export declare function emitVtableInstances(emitter: CEmitter, out: string[], hierarchyClasses: ClassMeta[]): void;
68
68
  /** Adapter definitions (flushed after the signature block): the impl
69
69
  * class's method behind the slot's declaring-class signature. */
70
- export declare function emitVtAdapterDefs(E: CEmitter, out: string[]): void;
70
+ export declare function emitVtAdapterDefs(emitter: CEmitter, out: string[]): void;
71
71
  /** RC helpers of one hierarchy class. Retain is layout-generic (rc sits
72
72
  * at offset 0 in every subclass); the PUBLIC release dispatches through
73
73
  * the object's vtable so a base-typed release tears down the derived
@@ -75,7 +75,7 @@ export declare function emitVtAdapterDefs(E: CEmitter, out: string[]): void;
75
75
  * teardown. Cycle capability is hierarchy-uniform (constructor fixpoint),
76
76
  * and the cycle header's trace/teardown are stamped with the concrete
77
77
  * class's functions at allocation — the collector needs no vtable. */
78
- export declare function emitHierarchyClassHelpers(E: CEmitter, out: string[], meta: ClassMeta, s: {
78
+ export declare function emitHierarchyClassHelpers(emitter: CEmitter, out: string[], meta: ClassMeta, s: {
79
79
  struct: string;
80
80
  newFn: string;
81
81
  retain: string;
@@ -94,7 +94,7 @@ export declare function emitHierarchyClassHelpers(E: CEmitter, out: string[], me
94
94
  * (definitions land later with the other synthesized bodies —
95
95
  * emitCtorThunkDefs). The interval constants are the same numbering the
96
96
  * vtables carry, so instanceOfValue agrees with compiled instanceOf. */
97
- export declare function emitClassObjs(E: CEmitter, out: string[]): void;
97
+ export declare function emitClassObjs(emitter: CEmitter, out: string[]): void;
98
98
  /** Construct-thunk definitions (`void *sc_ct_C(args…)`): allocate, run
99
99
  * the constructor over a +1 `this` like the inline `new` emission, and
100
100
  * hand the remaining +1 out as `void *` — the one well-defined
@@ -103,30 +103,30 @@ export declare function emitClassObjs(E: CEmitter, out: string[]): void;
103
103
  * constructor leaves the pending flag set: the thunk releases the
104
104
  * half-built object and returns NULL (a dummy the checked call site
105
105
  * never reads). */
106
- export declare function emitCtorThunkDefs(E: CEmitter, out: string[]): void;
106
+ export declare function emitCtorThunkDefs(emitter: CEmitter, out: string[]): void;
107
107
  /** main()'s stamping of the runtime error vtables: preorder intervals
108
108
  * from THIS module's numbering, plus the traced-mode switch when the
109
109
  * cycle fixpoint marked the Error hierarchy (a user subclass holds
110
110
  * cycle-capable fields — capability is hierarchy-uniform, so the
111
111
  * runtime's own allocations need collector headers too). Empty for
112
112
  * hand-written IR without the builtin defs. */
113
- export declare function errorVtStampLines(E: CEmitter): string[];
113
+ export declare function errorVtStampLines(emitter: CEmitter): string[];
114
114
  /** main()'s stamping of the runtime emitter vtable: its preorder
115
115
  * interval from THIS module's numbering (the errorVtStampLines story).
116
116
  * Empty when the program never touches the emitter surface — the class
117
117
  * def only rides modules that reference it. */
118
- export declare function emitterVtStampLines(E: CEmitter): string[];
118
+ export declare function emitterVtStampLines(emitter: CEmitter): string[];
119
119
  /** main()'s stamping of the runtime stream vtables (Readable/Writable/
120
120
  * Duplex/Transform/PassThrough) — the emitterVtStampLines story: each
121
121
  * def rides the module only when the program touches the stream
122
122
  * surface, and instanceof needs their preorder intervals under the
123
123
  * emitter root. */
124
- export declare function streamVtStampLines(E: CEmitter): string[];
124
+ export declare function streamVtStampLines(emitter: CEmitter): string[];
125
125
  /** The trace entry point symbol for a payload/field type, or null when
126
126
  * the type cannot participate in a cycle (see the constructor fixpoint). */
127
- export declare function traceAdapterC(E: CEmitter, t: IrType): string | null;
127
+ export declare function traceAdapterC(emitter: CEmitter, t: IrType): string | null;
128
128
  /** `&<trace>` or `NULL` — the trace argument at a container call site. */
129
- export declare function traceArgC(E: CEmitter, t: IrType): string;
129
+ export declare function traceArgC(emitter: CEmitter, t: IrType): string;
130
130
  /** Array construction expression for one element type. Ref elements
131
131
  * (records, class instances, unions — and cycle-capable inner arrays,
132
132
  * whose SCR_ELEM_ARR spelling would hide them from the outer array's
@@ -135,8 +135,8 @@ export declare function traceArgC(E: CEmitter, t: IrType): string;
135
135
  * allocates with the collector header exactly when the element type
136
136
  * carries one (trace non-NULL). Every other element kind keeps the
137
137
  * historic scr_arr_new call. */
138
- export declare function arrNewC(E: CEmitter, elem: IrType, capExpr: string | number): string;
138
+ export declare function arrNewC(emitter: CEmitter, elem: IrType, capExpr: string | number): string;
139
139
  /** Box construction expression — object/record/union/promise boxes carry
140
140
  * their RC entry points (and the payload's trace) as function pointers
141
141
  * (the SCR_BOX_OBJ mechanism: the runtime can't know per-shape layouts). */
142
- export declare function boxNewC(E: CEmitter, t: IrType): string;
142
+ export declare function boxNewC(emitter: CEmitter, t: IrType): string;