@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,16 +1,16 @@
1
1
  import * as ts from "../ts7/adapter.js";
2
2
  import type { ScrDiagnostic } from "../../diagnostics/diagnostic.js";
3
3
  import { UNSUPPORTED } from "../../diagnostics/diagnostic.js";
4
- import type { IrClassDef, IrExpr, IrFfiImport, IrFunction, IrGlobal, IrLocal, IrModule, IrParam, IrRecordShape, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/nodes.js";
4
+ import type { IrClassDef, IrExpr, IrFfiImport, IrFunction, IrGlobal, IrLocal, IrModule, IrParam, IrRecordShape, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/ir.js";
5
5
  import { type DynamicImportResolution, type NpmBuiltinUse, type NpmLazyTrap } from "../npm.js";
6
6
  import { type StartupCrash } from "../program.js";
7
- import { ShapeRegistry, type TypeMapperCtx, UnionRegistry } from "../types.js";
7
+ import { ShapeRegistry, type TypeMapperCtx, UnionRegistry } from "../type-mapper.js";
8
8
  import { CompoundOp, IslandFnEntry, BuiltinModuleFn } from "./surfaces.js";
9
9
  import { FileParts } from "./lower-modules.js";
10
10
  import { ClassInfo, ClassIteratorInfo, GenericClassInfo, findStaticOn } from "./lower-classes.js";
11
11
  import { MixinFnShape } from "./lower-mixins.js";
12
12
  import { ParamShape, FnSig, GenericFnInfo, GenericInstance } from "./lower-calls.js";
13
- import { type EmitSpecCtx, type EmitSpecRequest } from "./lower-emitter.js";
13
+ import { type EmitSpecCtx, type EmitSpecRequest } from "./lower-event-emitter.js";
14
14
  import { FieldTarget } from "./lower-exprs.js";
15
15
  import type { ExpandoMember } from "./lower-expando.js";
16
16
  /** Entry function name. '%' cannot appear in a TS identifier, so a user
@@ -59,10 +59,6 @@ export declare class PoisonError extends Error {
59
59
  * NAMES user code can spell now that the real lib declares them; treating
60
60
  * an inherited function as a table entry would mis-lower or ICE. */
61
61
  export declare function own<T>(table: Record<string, T | undefined>, key: string): T | undefined;
62
- /** Sentinel binding key for `this` (which has no ts.Symbol): a stable
63
- * object identity used in the same scope/capture maps as real symbols, so
64
- * arrows capturing `this` ride the ordinary capture machinery. */
65
- export declare const THIS_BINDING: ts.Symbol;
66
62
  /** Per-function lowering context. A stack of these models nested functions:
67
63
  * identifier resolution walks outward, and a hit in an enclosing context
68
64
  * turns into a capture (boxing the binding at its origin and threading it
@@ -135,12 +131,6 @@ export interface LowerStats {
135
131
  /** Functions whose signature couldn't be analyzed (bodies not counted). */
136
132
  functionsSkipped: number;
137
133
  }
138
- /** IrStmt discriminants — the island walk below must not descend into
139
- * NESTED statements (each is counted individually by its own lowerStmts
140
- * visit; descending would attribute a nested island statement to every
141
- * enclosing construct too). The top-level statement object itself is
142
- * always visited. */
143
- export declare const IR_STMT_KINDS: Set<string>;
144
134
  /** True when a lowered statement's OWN expressions contain island
145
135
  * constructs — a generic JSON walk (like moduleUsesRegex): `kind`
146
136
  * discriminants live only on IR objects, so user string values can never
@@ -230,6 +220,39 @@ export interface LowerOptions {
230
220
  * to their owning external specifier. */
231
221
  externalTypeSpecifiersByFile?: ReadonlyMap<string, readonly string[]>;
232
222
  }
223
+ interface RuntimeFenceFallback {
224
+ code: `SC${number}`;
225
+ message: string;
226
+ }
227
+ interface RuntimeFenceBase {
228
+ /** Used only by catches that can legitimately have no fresh diagnostic. */
229
+ fallback?: RuntimeFenceFallback;
230
+ /** Legacy function-body fences throw the diagnostic text without a site suffix. */
231
+ bareMessage?: boolean;
232
+ /** The closure-probe fallback historically applies inside diagnostic captures. */
233
+ allowDiagSink?: boolean;
234
+ }
235
+ interface RuntimeFenceStatementTarget extends RuntimeFenceBase {
236
+ kind: "statement";
237
+ }
238
+ interface RuntimeFenceFunctionTarget extends RuntimeFenceBase {
239
+ kind: "function";
240
+ name: string | (() => string);
241
+ params?: IrParam[];
242
+ returnType: IrType;
243
+ paramsMutable?: boolean;
244
+ async?: true;
245
+ generator?: {
246
+ yieldT: IrType;
247
+ nextT: IrType;
248
+ };
249
+ }
250
+ interface RuntimeFenceClosureTarget extends Omit<RuntimeFenceFunctionTarget, "kind"> {
251
+ kind: "closure";
252
+ type: IrType & {
253
+ kind: "func";
254
+ };
255
+ }
233
256
  /** The Lowerer's pass configuration (see lowerToIr). */
234
257
  export interface LowererMode {
235
258
  /** Names of bodies a prior reachability pass reached; null lowers everything. */
@@ -296,7 +319,7 @@ export declare function importCallHandleType(expr: ts.Expression | undefined): I
296
319
  * Ambient (.d.ts) declarations never reach this: they have no compiled
297
320
  * implementation, so their calls lower through the island/builtin paths
298
321
  * whose validated exits keep the checker-trust trap. */
299
- export declare function uncheckedOverloadHandleCall(L: Lowerer, expr: ts.Expression | undefined): boolean;
322
+ export declare function uncheckedOverloadHandleCall(lowerer: Lowerer, expr: ts.Expression | undefined): boolean;
300
323
  /** The JavaScript declaration fallback for unmappable binding types (see
301
324
  * irTypeOf): `any` and every other inference residue is the checked-
302
325
  * dynamic 'unknown' kind, and array types keep their array-ness with the
@@ -314,7 +337,7 @@ export declare function uncheckedOverloadHandleCall(L: Lowerer, expr: ts.Express
314
337
  * checked-dynamic fallbacks apply, the pre-never-mapping behavior. Bare
315
338
  * `never` at the ROOT stays out (`for (const v of [])`'s loop var — the
316
339
  * dead read the f64 mapping is FOR). */
317
- export declare function neverTaintedJsType(L: Lowerer, node: ts.Node, t: ts.Type): boolean;
340
+ export declare function neverTaintedJsType(lowerer: Lowerer, node: ts.Node, t: ts.Type): boolean;
318
341
  /** The dyn undefined value — what an uninitialized checked-dynamic
319
342
  * binding holds (JS: declared bindings read `undefined` before any
320
343
  * assignment). A NULL dyn slot is a trap, never a value, so every dyn
@@ -337,7 +360,7 @@ export declare function nodeThrowExpr(kind: 0 | 1 | 2, code: string, message: st
337
360
  * (scr_throw_lowering_fence). The diagnostic joins the runtime-fence
338
361
  * ledger exactly like a deferred statement fence — nothing silently
339
362
  * drops off the coverage report. */
340
- export declare function ladderFenceExpr(L: Lowerer, surface: string, node: ts.Node, hint?: string): IrExpr;
363
+ export declare function ladderFenceExpr(lowerer: Lowerer, surface: string, node: ts.Node, hint?: string): IrExpr;
341
364
  /** The checked-dynamic declaration fallback for unmappable binding types
342
365
  * (see irTypeOf), two gates over one story:
343
366
  *
@@ -361,7 +384,7 @@ export declare function ladderFenceExpr(L: Lowerer, surface: string, node: ts.No
361
384
  * this fallback for `any` (mapType answers jsval first).
362
385
  *
363
386
  * Null for void (no value exists to represent). */
364
- export declare function dynFallbackType(L: Lowerer, node: ts.Node, t: ts.Type): IrType | null;
387
+ export declare function dynFallbackType(lowerer: Lowerer, node: ts.Node, t: ts.Type): IrType | null;
365
388
  /** The best-effort JS `Function.prototype.name` of an expression flowing
366
389
  * into a dyn slot (the boxed function kind's inspect/error name):
367
390
  * identifier and property reads answer the referenced NAME (a
@@ -481,10 +504,69 @@ export declare class Lowerer {
481
504
  /** All storage slots widened for runtime absence, including slots whose
482
505
  * current control-flow branch has temporarily narrowed the value. */
483
506
  readonly runtimeOptionalStorageLocals: Set<IrLocal>;
507
+ /** Globals whose checker-bare type was widened because an indexed read can
508
+ * carry undefined at runtime. Identifier reads keep the union tag so
509
+ * typeof and later boundaries observe the real value. */
510
+ readonly runtimeOptionalGlobals: Set<IrGlobal>;
511
+ /** Bindings whose unchecked string arithmetic can produce either a number
512
+ * (NaN for an absent read) or a string. Preserve that result union at bare
513
+ * reads instead of applying the checker-bare string narrowing adapter. */
514
+ readonly runtimeOptionalArithmeticLocals: Set<IrLocal>;
515
+ readonly runtimeOptionalArithmeticGlobals: Set<IrGlobal>;
516
+ /** Binding symbols whose IR storage type was widened by the indexed-read
517
+ * prepass. This includes explicit annotations: unchecked TS annotations do
518
+ * not prove that an array property read produced a value. */
519
+ readonly runtimeOptionalBindingTypes: Map<ts.Symbol, IrType>;
520
+ /** Concise callback/lambda returns promoted by the HOF callback prepass;
521
+ * arrows have no declaration symbol to key in fnSigsBySymbol. */
522
+ readonly runtimeOptionalFunctionReturns: WeakMap<ts.Node, IrType>;
523
+ /** Arithmetic over an unchecked string read can answer either NaN or a
524
+ * string. Bindings and returns use this marker to retain that result union
525
+ * through checker-bare string annotations. */
526
+ readonly runtimeOptionalArithmeticTypes: WeakMap<ts.Node, IrType>;
527
+ /** Record fields promoted to an undefined-armed union by an indexed-read
528
+ * value. The key is the concrete emitted shape and field name. */
529
+ readonly runtimeOptionalFields: Set<string>;
530
+ /** Callback pattern parameters carry an optional source without making
531
+ * every name destructured from a present source optional. */
532
+ readonly runtimeOptionalPatternTypes: WeakMap<ts.Node, IrType>;
533
+ readonly runtimeOptionalReduceTypes: WeakMap<ts.CallExpression, IrType>;
484
534
  /** Capture entries and their origin share one mutable box. Normalize each
485
535
  * entry to the origin so writes and flow proofs stay synchronized. */
486
536
  readonly runtimeOptionalRoots: Map<IrLocal, IrLocal>;
487
537
  runtimeOptionalRootOf(local: IrLocal): IrLocal;
538
+ runtimeOptionalBindingType(node: ts.Node): IrType | null;
539
+ runtimeOptionalBindingType(node: ts.Node, fallback: IrType): IrType;
540
+ runtimeOptionalIdentifierValue(node: ts.Expression): {
541
+ value: IrExpr;
542
+ present: IrType;
543
+ unionId: string;
544
+ } | null;
545
+ /** Recover the original optional union when a checked single-arm helper
546
+ * was installed before a strict property consumer could name its member.
547
+ * Recovery is limited to array element reads and storage roots marked by
548
+ * the optional-read analysis, so ordinary assertions keep their generic
549
+ * checked-narrow behavior. */
550
+ runtimeOptionalSourceValue(node: ts.Expression, value: IrExpr): IrExpr | null;
551
+ /** A strict property or method receiver over an array-derived optional
552
+ * value. Stabilize the receiver once, throw Node's member-read TypeError
553
+ * for a unit arm, and extract the expected present arm otherwise. */
554
+ runtimeOptionalPropertyReceiver(node: ts.Expression, value: IrExpr, expected: IrType, member: string): IrExpr | null;
555
+ runtimeOptionalFieldKey(shapeId: string, field: string): string;
556
+ isRuntimeOptionalField(shapeId: string, field: string): boolean;
557
+ isRuntimeOptionalGlobal(global: IrGlobal): boolean;
558
+ isRuntimeOptionalArithmeticGlobal(global: IrGlobal): boolean;
559
+ /** The union produced when an unchecked array read reaches a typed slot
560
+ * whose checker type is the corresponding bare arm. */
561
+ runtimeOptionalWidening(actual: IrType, expected: IrType): IrType | null;
562
+ runtimeOptionalType(t: IrType): IrType;
563
+ promoteRuntimeOptionalParameter(node: ts.Node, type: IrType): IrType;
564
+ promoteRuntimeOptionalFunctionReturn(node: ts.Node, type: IrType): IrType;
565
+ runtimeOptionalFunctionReturnType(node: ts.Node, fallback: IrType): IrType;
566
+ /** Promote one field of a record storage shape to the value's runtime
567
+ * type. Shapes are immutable by identity, so this interns a sibling shape
568
+ * and records the field as runtime-optional for property-read narrowing. */
569
+ runtimeOptionalRecordField(type: IrType, field: string, fieldType: IrType): IrType;
488
570
  /** Runs `fn` with the given aliased-typeof narrows applied (and restored
489
571
  * after) — the branch-scoping primitive. */
490
572
  narrowingAliases<T>(narrows: readonly {
@@ -510,7 +592,7 @@ export declare class Lowerer {
510
592
  * Reachability lowers inits before the declarations they discover, so
511
593
  * these rebuild after the worklist restores historical shape metadata. */
512
594
  readonly shapeOrderHelperFinalizers: (() => void)[];
513
- /** Emit-override specializations (`%C.emit:<event>` — lower-emitter.ts's
595
+ /** Emit-override specializations (`%C.emit:<event>` — lower-event-emitter.ts's
514
596
  * emit-overrides block): interned names, the drive-loop queue, and the
515
597
  * currently-lowering specialization's context (the super-forward
516
598
  * interception reads it). */
@@ -569,6 +651,10 @@ export declare class Lowerer {
569
651
  };
570
652
  }>;
571
653
  readonly narrowHelpers: Map<string, string>;
654
+ /** Exact members of narrowHelpers produced by narrowedArmHelper. This
655
+ * lets property consumers recognize an earlier checked extraction by
656
+ * provenance instead of relying on its generated-name prefix. */
657
+ private readonly checkedNarrowHelpers;
572
658
  /** Interned `%iter.drain.<n>` helpers (classIteratorDrainCall): one per
573
659
  * receiver class — the eager drain of a class iterable's protocol into
574
660
  * a fresh element array, behind array/call spreads. */
@@ -888,6 +974,13 @@ export declare class Lowerer {
888
974
  * point for deferred collection diagnostics: resolving a reference to a
889
975
  * broken declaration reports what collection deferred. */
890
976
  resolveValueSymbol(ident: ts.Identifier): ts.Symbol | null;
977
+ /** Whether this exact direct call belongs to a manifest-validated native
978
+ * binding. Declaration classification uses this as a probe before normal
979
+ * expression lowering: resolving must not flush deferred diagnostics or
980
+ * trigger the merged-namespace fence just because it is asking ownership.
981
+ * Call lowering remains the authority for every ABI and call-shape
982
+ * diagnostic once this answers true. */
983
+ ownsFfiCall(expr: ts.CallExpression): boolean;
891
984
  /** The configured external host module owning an expression's runtime
892
985
  * value, or null. Alias chains are followed to their declaration file so
893
986
  * direct imports and local re-export facades classify identically. Type
@@ -976,6 +1069,12 @@ export declare class Lowerer {
976
1069
  wantBody(name: string): boolean;
977
1070
  collectNpmImports(parts: FileParts[]): void;
978
1071
  collectJsonImports(parts: FileParts[]): void;
1072
+ /** Discover the unchecked-array values that cross static ABI/storage
1073
+ * boundaries before any function body or module initializer is emitted.
1074
+ * TypeScript's default indexed-access type is a useful source annotation,
1075
+ * but it is not a runtime proof; promoting only the affected slots keeps
1076
+ * the rest of the dense ABI unchanged. */
1077
+ analyzeRuntimeOptionalArrayReads(parts: FileParts[]): void;
979
1078
  run(): LowerResult;
980
1079
  /** Final retention, pruning, and module assembly shared by ordinary emit
981
1080
  * and the retained reachability worklist. */
@@ -1030,6 +1129,15 @@ export declare class Lowerer {
1030
1129
  records: IrRecordShape[];
1031
1130
  unions: IrUnionDef[];
1032
1131
  };
1132
+ /** Converts diagnostics recorded since `diagsBefore` into a runtime
1133
+ * fence. ICEs stay on the compile-diagnostic path; every other captured
1134
+ * diagnostic moves to the runtime-fence ledger. Function targets share
1135
+ * the same capture-free trap-function construction, while statement
1136
+ * targets return the fence inline. Null means the conversion was not
1137
+ * eligible (probe mode, no diagnostic/fallback, or an ICE). */
1138
+ deferToRuntimeFence(diagsBefore: number, node: ts.Node, target: RuntimeFenceStatementTarget): IrStmt | null;
1139
+ deferToRuntimeFence(diagsBefore: number, node: ts.Node, target: RuntimeFenceFunctionTarget): IrFunction | null;
1140
+ deferToRuntimeFence(diagsBefore: number, node: ts.Node, target: RuntimeFenceClosureTarget): IrExpr | null;
1033
1141
  /** All diagnostics land here; while a generic instance body is lowering,
1034
1142
  * the instantiation context is appended so the user knows which concrete
1035
1143
  * types made the (source-anchored) construct fail. */
@@ -1103,9 +1211,10 @@ export declare class Lowerer {
1103
1211
  * isArrayValueType so Array.isArray's predicate and its narrowing bridge
1104
1212
  * cannot disagree about fixed tuple arms. */
1105
1213
  arrayValueTags(unionId: string): number[];
1106
- /** isJsonSafeType with this Lowerer's registries — the shared fence for
1107
- * what JSON.stringify accepts and what a checked cast can validate. */
1214
+ /** Checked JSON conversion excludes undefined array slots because JSON
1215
+ * text cannot preserve that distinction. */
1108
1216
  jsonSafe(t: IrType): boolean;
1217
+ jsonStringifySafe(t: IrType): boolean;
1109
1218
  /** True when a type is a BARE undefined-armed union — the one JSON-unsafe
1110
1219
  * shape whose rejections deserve their own wording: Node's stringify of
1111
1220
  * bare undefined is not a string at all and JSON text never matches the
@@ -1167,7 +1276,7 @@ export declare class Lowerer {
1167
1276
  /** Unwraps a HYBRID (function-with-properties) record to its callable:
1168
1277
  * a record whose shape carries the reserved `%call` func field reads
1169
1278
  * that field; anything else returns unchanged. The consumer half of
1170
- * types.ts's chalk-shape mapping — call paths and func-slot coercions
1279
+ * type-mapper.ts's chalk-shape mapping — call paths and func-slot coercions
1171
1280
  * share it. */
1172
1281
  hybridCallUnwrap(expr: IrExpr): IrExpr;
1173
1282
  /** The tag of the union arm equal to `arm`, or -1 (unknown union / no
@@ -1910,7 +2019,7 @@ export declare class Lowerer {
1910
2019
  * node_modules but NOT the standard library (typescript's own lib files
1911
2020
  * live under node_modules too), or inside a registered workspace-linked
1912
2021
  * package (a node_modules symlink whose realpath'd files carry no
1913
- * node_modules segment — shared.ts). The provenance half of the npm
2022
+ * node_modules segment — workspace-registry.ts). The provenance half of the npm
1914
2023
  * typing rule (package types are island handles) and of the per-package
1915
2024
  * requires-dynamic attribution. */
1916
2025
  readonly isNpmFile: (sf: ts.SourceFile) => boolean;
@@ -1942,6 +2051,8 @@ export declare class Lowerer {
1942
2051
  caughtLocalOf(node: ts.Expression): IrLocal | null;
1943
2052
  caughtToString(node: ts.Expression): IrExpr | null;
1944
2053
  lowerInstanceOf(expr: ts.BinaryExpression, loc: SrcLoc): IrExpr;
2054
+ private withRuntimeOptionalClassValue;
2055
+ private withExpressionOverride;
1945
2056
  lowerCall(expr: ts.CallExpression): IrExpr;
1946
2057
  isTopLevelFnSymbol(ident: ts.Identifier): boolean;
1947
2058
  lowerNestedFunctionDecl(stmt: ts.FunctionDeclaration): IrStmt;
@@ -2141,3 +2252,4 @@ export declare class Lowerer {
2141
2252
  islandGlobalFnOf(ident: ts.Identifier): IslandFnEntry | null;
2142
2253
  lowerIslandMethodCall(call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
2143
2254
  }
2255
+ export {};