@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,20 +1,16 @@
1
1
  import * as ts from "../ts7/adapter.js";
2
2
  import type { Lowerer } from "./lowerer.js";
3
- import { IrExpr, SrcLoc } from "../../ir/nodes.js";
4
- /** The lowered value members of the dgram/dns modules — the surfaces.ts
5
- * tables' spoke-side twins (call shapes are all special-cased here). */
6
- export declare const DGRAM_MODULE_FNS: ReadonlySet<string>;
7
- export declare const DNS_MODULE_FNS: ReadonlySet<string>;
3
+ import { IrExpr, SrcLoc } from "../../ir/ir.js";
8
4
  /** Module-function calls on dgram/dns import bindings (named imports AND
9
5
  * namespace members — both funnel here): createSocket("udp4" | { type,
10
6
  * reuseAddr? }), dns.lookup(hostname, { family: 4 }, cb). Null for other
11
7
  * modules (the caller falls through); every dgram/dns member lands here —
12
8
  * unlowered ones fence with their module-qualified name. */
13
- export declare function lowerDgramDnsModuleCall(L: Lowerer, expr: ts.CallExpression, bi: {
9
+ export declare function lowerDgramDnsModuleCall(lowerer: Lowerer, expr: ts.CallExpression, bi: {
14
10
  module: string;
15
11
  member: string;
16
12
  }, loc: SrcLoc): IrExpr | null;
17
13
  /** Method calls on dgram.Socket receivers — one entry in lower-calls.ts's
18
14
  * intrinsic chain (after lowerServerMethodCall). Null for other
19
15
  * receivers. */
20
- export declare function lowerDgramMethodCall(L: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
16
+ export declare function lowerDgramMethodCall(lowerer: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
@@ -10,54 +10,40 @@
10
10
  import * as ts from "../ts7/adapter.js";
11
11
  import { ladderFenceExpr } from "./lowerer.js";
12
12
  import { isJsSourceFile, locOf } from "../program.js";
13
- import { BOOL, canBoxFuncIntoDyn, DGRAMSOCK_T, DYN, F64, funcOf, STRING, UNDEFINED_T, VOID } from "../../ir/nodes.js";
13
+ import { BOOL, canBoxFuncIntoDyn, DGRAMSOCK_T, DYN, F64, STRING, UNDEFINED_T, VOID } from "../../ir/ir.js";
14
14
  import { DNS_LOOKUP_DOCUMENTED_OPTIONS, fenceOrDropOptionKey } from "./surfaces.js";
15
+ import { boolLit } from "../../ir/build.js";
16
+ import { resultIsDiscarded } from "./call-position.js";
17
+ import { lowerCallbackArg as lowerCallbackArgShared } from "./callback-arg.js";
15
18
  const DGRAM_SURFACE_HINT = "bind, connect, send, address, close, unref/ref, and on/once of " +
16
19
  "message/listening/close/connect/error are the supported dgram.Socket members";
17
- /** The lowered value members of the dgram/dns modules — the surfaces.ts
18
- * tables' spoke-side twins (call shapes are all special-cased here). */
19
- export const DGRAM_MODULE_FNS = new Set(["createSocket"]);
20
- export const DNS_MODULE_FNS = new Set(["lookup"]);
20
+ /** Dgram's callback policy: validate every positional parameter and require
21
+ * callbacks to return void; raw dyn values adapt only to zero-arg slots. */
22
+ function lowerCallbackArg(lowerer, node, what, maxParams, paramOk, paramHint) {
23
+ return lowerCallbackArgShared(lowerer, node, what, maxParams, paramOk, paramHint, {
24
+ dynZero: true,
25
+ checkAllParams: true,
26
+ rejectValueReturn: true,
27
+ });
28
+ }
21
29
  /** VOID-result socket calls are usable as statements and as concise arrow
22
30
  * bodies; anything consuming the result (Node returns `this` where this
23
31
  * surface returns void) is fenced — the lower-server stance. */
24
- function requireStatementPosition(L, call, what) {
25
- if (ts.isExpressionStatement(call.parent) || ts.isArrowFunction(call.parent))
32
+ function requireStatementPosition(lowerer, call, what) {
33
+ if (resultIsDiscarded(call))
26
34
  return;
27
- L.unsupported("SC1090", call, `using the result of ${what} (the result is void here — call it as its own statement)`);
35
+ lowerer.unsupported("SC1090", call, `using the result of ${what} (the result is void here — call it as its own statement)`);
28
36
  }
29
37
  /** Lowers a listener/callback argument, pinning the closure shape: void
30
38
  * return, at most `maxParams` parameters, each parameter's IR kind
31
39
  * satisfying `paramOk` (indexed). The lower-server helper's shape,
32
40
  * re-stated here so the spoke stays self-contained. */
33
- function lowerCallbackArg(L, node, what, maxParams, paramOk, paramHint) {
34
- let cb = L.lowerExpr(node);
35
- // A checked-dynamic callback (test/common's mustCall wrapper — a dyn
36
- // value): the zero-parameter slots adapt through the dynCheck function
37
- // boundary, the lower-server listen-callback precedent.
38
- if (cb.type.kind === "dyn" && maxParams === 0) {
39
- cb = { kind: "dynCheck", value: cb, type: funcOf([], VOID), loc: locOf(node) };
40
- }
41
- if (cb.type.kind !== "func" || cb.type.params.length > maxParams) {
42
- L.unsupported("SC1090", node, `${what} with more than ${maxParams} parameter${maxParams === 1 ? "" : "s"} (${paramHint})`);
43
- }
44
- if (cb.type.ret.kind !== "void") {
45
- L.unsupported("SC1090", node, "listeners returning a value (make the callback body a block, or return nothing)");
46
- }
47
- for (let i = 0; i < cb.type.params.length; i++) {
48
- if (!paramOk(cb.type.params[i], i)) {
49
- L.unsupported("SC1090", node, `${what} whose parameter is not supported (${paramHint})`);
50
- }
51
- }
52
- return { cb, nparams: cb.type.params.length };
53
- }
54
- const boolLit = (value, loc) => ({ kind: "boolLit", value, type: BOOL, loc });
55
41
  /** True iff `t` is the `Error | null` union — dns.lookup's first callback
56
- * parameter (NodeJS.ErrnoException maps to %Error in types.ts). */
57
- function isErrorOrNullUnion(L, t) {
42
+ * parameter (NodeJS.ErrnoException maps to %Error in type-mapper.ts). */
43
+ function isErrorOrNullUnion(lowerer, t) {
58
44
  if (t.kind !== "union")
59
45
  return false;
60
- const def = L.unions.get(t.unionId);
46
+ const def = lowerer.unions.get(t.unionId);
61
47
  if (!def || def.arms.length !== 2)
62
48
  return false;
63
49
  const hasNull = def.arms.some((a) => a.kind === "nullT");
@@ -66,10 +52,10 @@ function isErrorOrNullUnion(L, t) {
66
52
  }
67
53
  /** True iff `t` is a record of exactly the given (name-sorted) string/f64
68
54
  * fields — the AddressInfo/RemoteInfo shape check. */
69
- function isRecordOfFields(L, t, fields) {
55
+ function isRecordOfFields(lowerer, t, fields) {
70
56
  if (t.kind !== "record")
71
57
  return false;
72
- const shape = L.shapes.get(t.shapeId);
58
+ const shape = lowerer.shapes.get(t.shapeId);
73
59
  if (!shape || shape.tuple || shape.indexValue || shape.fields.length !== fields.length)
74
60
  return false;
75
61
  return shape.fields.every((f, i) => f.name === fields[i][0] && f.type.kind === fields[i][1]);
@@ -85,24 +71,24 @@ const RINFO_FIELDS = [
85
71
  * reuseAddr? }), dns.lookup(hostname, { family: 4 }, cb). Null for other
86
72
  * modules (the caller falls through); every dgram/dns member lands here —
87
73
  * unlowered ones fence with their module-qualified name. */
88
- export function lowerDgramDnsModuleCall(L, expr, bi, loc) {
74
+ export function lowerDgramDnsModuleCall(lowerer, expr, bi, loc) {
89
75
  if (bi.module === "dns")
90
- return lowerDnsModuleCall(L, expr, bi, loc);
76
+ return lowerDnsModuleCall(lowerer, expr, bi, loc);
91
77
  if (bi.module !== "dgram")
92
78
  return null;
93
79
  const args = expr.arguments;
94
80
  if (bi.member === "createSocket") {
95
81
  if (args.length !== 1) {
96
- L.noLowering(`createSocket with ${args.length} arguments`, expr, 'the supported forms are createSocket("udp4") and createSocket({ type: "udp4", reuseAddr? })');
82
+ lowerer.noLowering(`createSocket with ${args.length} arguments`, expr, 'the supported forms are createSocket("udp4") and createSocket({ type: "udp4", reuseAddr? })');
97
83
  }
98
84
  const arg = args[0];
99
85
  // createSocket("udp4") — the bare string form.
100
- const argT = L.typeOf(arg);
86
+ const argT = lowerer.typeOf(arg);
101
87
  if (argT.isStringLiteralType()) {
102
88
  if (argT.value !== "udp4") {
103
- L.noLowering(`createSocket("${argT.value}")`, arg, '"udp4" is the supported socket type');
89
+ lowerer.noLowering(`createSocket("${argT.value}")`, arg, '"udp4" is the supported socket type');
104
90
  }
105
- L.lowerExpr(arg); // side-effect order (a call producing the literal type)
91
+ lowerer.lowerExpr(arg); // side-effect order (a call producing the literal type)
106
92
  return {
107
93
  kind: "libCall", fn: "dgram.createSocket",
108
94
  args: [boolLit(false, loc)], type: DGRAMSOCK_T, loc,
@@ -111,34 +97,34 @@ export function lowerDgramDnsModuleCall(L, expr, bi, loc) {
111
97
  // createSocket({ type: "udp4", reuseAddr?: <bool> }) — an OBJECT
112
98
  // LITERAL with literal keys; type must be the "udp4" literal.
113
99
  if (!ts.isObjectLiteralExpression(arg)) {
114
- L.noLowering("createSocket with a non-literal options argument", arg, 'pass the options as an object literal: createSocket({ type: "udp4" })');
100
+ lowerer.noLowering("createSocket with a non-literal options argument", arg, 'pass the options as an object literal: createSocket({ type: "udp4" })');
115
101
  }
116
102
  let sawType = false;
117
103
  let reuseAddr = null;
118
104
  for (const prop of arg.properties) {
119
105
  if (!ts.isPropertyAssignment(prop) || !ts.isIdentifier(prop.name)) {
120
- L.noLowering("createSocket options with computed keys, spreads, or shorthand entries", prop, "each option must be a plain `name: value` entry with a literal key");
106
+ lowerer.noLowering("createSocket options with computed keys, spreads, or shorthand entries", prop, "each option must be a plain `name: value` entry with a literal key");
121
107
  }
122
108
  const name = prop.name.text;
123
109
  if (name === "type") {
124
- const t = L.typeOf(prop.initializer);
110
+ const t = lowerer.typeOf(prop.initializer);
125
111
  if (!t.isStringLiteralType() || t.value !== "udp4") {
126
- L.noLowering('createSocket with a type other than the "udp4" literal', prop.initializer, '"udp4" is the supported socket type');
112
+ lowerer.noLowering('createSocket with a type other than the "udp4" literal', prop.initializer, '"udp4" is the supported socket type');
127
113
  }
128
114
  sawType = true;
129
115
  }
130
116
  else if (name === "reuseAddr") {
131
- reuseAddr = L.lowerExprExpecting(prop.initializer, BOOL);
117
+ reuseAddr = lowerer.lowerExprExpecting(prop.initializer, BOOL);
132
118
  }
133
119
  else if (name === "signal" && isJsSourceFile(expr.getSourceFile())) {
134
120
  // A provably-non-AbortSignal signal (the invalid-input probes:
135
121
  // strings, numbers, plain records) throws Node's
136
122
  // validateAbortSignal ladder; plausible signal values keep the
137
123
  // fence — abort-driven close has no lowering yet.
138
- const raw = L.lowerExpr(prop.initializer);
124
+ const raw = lowerer.lowerExpr(prop.initializer);
139
125
  const provablyNot = raw.type.kind === "string" || raw.type.kind === "f64" ||
140
126
  raw.type.kind === "bool" || raw.type.kind === "record" || raw.type.kind === "array";
141
- if (provablyNot && L.dynConvertible(raw.type)) {
127
+ if (provablyNot && lowerer.dynConvertible(raw.type)) {
142
128
  return {
143
129
  kind: "libCall",
144
130
  fn: "error.propTypeThrow",
@@ -151,66 +137,66 @@ export function lowerDgramDnsModuleCall(L, expr, bi, loc) {
151
137
  loc,
152
138
  };
153
139
  }
154
- L.noLowering(`createSocket option 'signal'`, prop, "abort-driven close has no lowering yet — type and reuseAddr are the supported options");
140
+ lowerer.noLowering(`createSocket option 'signal'`, prop, "abort-driven close has no lowering yet — type and reuseAddr are the supported options");
155
141
  }
156
142
  else {
157
- L.noLowering(`createSocket option '${name}'`, prop, "type and reuseAddr are the supported options");
143
+ lowerer.noLowering(`createSocket option '${name}'`, prop, "type and reuseAddr are the supported options");
158
144
  }
159
145
  }
160
146
  if (!sawType) {
161
- L.noLowering("createSocket options without a type", arg, 'the supported form is createSocket({ type: "udp4", reuseAddr? })');
147
+ lowerer.noLowering("createSocket options without a type", arg, 'the supported form is createSocket({ type: "udp4", reuseAddr? })');
162
148
  }
163
149
  return {
164
150
  kind: "libCall", fn: "dgram.createSocket",
165
151
  args: [reuseAddr ?? boolLit(false, loc)], type: DGRAMSOCK_T, loc,
166
152
  };
167
153
  }
168
- L.noLowering(`dgram.${bi.member}`, expr, "createSocket is the lowered dgram module function", ts.isIdentifier(expr.expression) ? L.resolveValueSymbol(expr.expression) : undefined);
154
+ lowerer.noLowering(`dgram.${bi.member}`, expr, "createSocket is the lowered dgram module function", ts.isIdentifier(expr.expression) ? lowerer.resolveValueSymbol(expr.expression) : undefined);
169
155
  }
170
156
  /** dns.lookup(hostname, { family: 4 }, (err, address[, family]) => ...) —
171
157
  * the ONE lowered dns member. getaddrinfo runs at call time; the callback
172
158
  * defers to the next loop turn (SEMANTICS.md documents the split). */
173
- function lowerDnsModuleCall(L, expr, bi, loc) {
159
+ function lowerDnsModuleCall(lowerer, expr, bi, loc) {
174
160
  if (bi.member !== "lookup") {
175
- L.noLowering(`dns.${bi.member}`, expr, "lookup is the lowered dns module function", ts.isIdentifier(expr.expression) ? L.resolveValueSymbol(expr.expression) : undefined);
161
+ lowerer.noLowering(`dns.${bi.member}`, expr, "lookup is the lowered dns module function", ts.isIdentifier(expr.expression) ? lowerer.resolveValueSymbol(expr.expression) : undefined);
176
162
  }
177
- requireStatementPosition(L, expr, "dns.lookup(...)");
163
+ requireStatementPosition(lowerer, expr, "dns.lookup(...)");
178
164
  const args = expr.arguments;
179
165
  if (args.length !== 3) {
180
- L.noLowering(`lookup with ${args.length} arguments`, expr, "the supported form is lookup(hostname, { family: 4 }, callback)");
166
+ lowerer.noLowering(`lookup with ${args.length} arguments`, expr, "the supported form is lookup(hostname, { family: 4 }, callback)");
181
167
  }
182
- const hostname = L.lowerExprExpecting(args[0], STRING);
168
+ const hostname = lowerer.lowerExprExpecting(args[0], STRING);
183
169
  // The options: an object literal whose one meaningful entry is the
184
170
  // IPv4 pin — `{ family: 4 }`. Node's family-less and family-6 lookups
185
171
  // have no lowering (the runtime resolves over getaddrinfo/AF_INET).
186
172
  const opts = args[1];
187
173
  if (!ts.isObjectLiteralExpression(opts)) {
188
- L.noLowering("lookup with a non-literal options argument", opts, "pass the options as an object literal: lookup(hostname, { family: 4 }, cb)");
174
+ lowerer.noLowering("lookup with a non-literal options argument", opts, "pass the options as an object literal: lookup(hostname, { family: 4 }, cb)");
189
175
  }
190
176
  let family = null;
191
177
  for (const prop of opts.properties) {
192
178
  if (!ts.isPropertyAssignment(prop) || !ts.isIdentifier(prop.name)) {
193
- L.noLowering("lookup options with computed keys, spreads, or shorthand entries", prop, "each option must be a plain `name: value` entry with a literal key");
179
+ lowerer.noLowering("lookup options with computed keys, spreads, or shorthand entries", prop, "each option must be a plain `name: value` entry with a literal key");
194
180
  }
195
181
  if (prop.name.text !== "family") {
196
182
  // The options-record stance: hints/all/order/verbatim are
197
183
  // documented dns.lookup knobs with no lowering — they fence by
198
184
  // name; undocumented keys drop like Node drops them.
199
- fenceOrDropOptionKey(L, prop, prop.name.text, "lookup", DNS_LOOKUP_DOCUMENTED_OPTIONS, "family: 4 is the supported option", {
185
+ fenceOrDropOptionKey(lowerer, prop, prop.name.text, "lookup", DNS_LOOKUP_DOCUMENTED_OPTIONS, "family: 4 is the supported option", {
200
186
  all: "the all-addresses callback shape has no lowering — the lowered callback is (err, address, family) over one IPv4 answer",
201
187
  });
202
188
  continue; // an undocumented key, dropped like Node drops it
203
189
  }
204
- const t = L.typeOf(prop.initializer);
190
+ const t = lowerer.typeOf(prop.initializer);
205
191
  if (!t.isNumberLiteralType() || t.value !== 4) {
206
- L.noLowering("lookup with a family other than the literal 4", prop.initializer, "IPv4 lookups ({ family: 4 }) are the supported form");
192
+ lowerer.noLowering("lookup with a family other than the literal 4", prop.initializer, "IPv4 lookups ({ family: 4 }) are the supported form");
207
193
  }
208
- family = L.lowerExprExpecting(prop.initializer, F64);
194
+ family = lowerer.lowerExprExpecting(prop.initializer, F64);
209
195
  }
210
196
  if (!family) {
211
- L.noLowering("lookup options without a family", opts, "the supported form is lookup(hostname, { family: 4 }, cb)");
197
+ lowerer.noLowering("lookup options without a family", opts, "the supported form is lookup(hostname, { family: 4 }, cb)");
212
198
  }
213
- const { cb } = lowerCallbackArg(L, args[2], "lookup callbacks", 3, (p, i) => i === 0 ? isErrorOrNullUnion(L, p)
199
+ const { cb } = lowerCallbackArg(lowerer, args[2], "lookup callbacks", 3, (p, i) => i === 0 ? isErrorOrNullUnion(lowerer, p)
214
200
  : i === 1 ? p.kind === "string"
215
201
  : p.kind === "f64", "use (err, address) — err is Error | null, address a string");
216
202
  return { kind: "libCall", fn: "dns.lookup", args: [hostname, family, cb], type: VOID, loc };
@@ -218,29 +204,29 @@ function lowerDnsModuleCall(L, expr, bi, loc) {
218
204
  /** Method calls on dgram.Socket receivers — one entry in lower-calls.ts's
219
205
  * intrinsic chain (after lowerServerMethodCall). Null for other
220
206
  * receivers. */
221
- export function lowerDgramMethodCall(L, call, access) {
207
+ export function lowerDgramMethodCall(lowerer, call, access) {
222
208
  if (call.questionDotToken || access.questionDotToken)
223
209
  return null;
224
- if (L.mapTypeOf(L.typeOf(access.expression))?.kind !== "dgramSocket")
210
+ if (lowerer.mapTypeOf(lowerer.typeOf(access.expression))?.kind !== "dgramSocket")
225
211
  return null;
226
- if (!L.isStdlibMember(access))
212
+ if (!lowerer.isStdlibMember(access))
227
213
  return null;
228
214
  const name = access.name.text;
229
215
  const loc = locOf(call);
230
216
  const args = call.arguments;
231
217
  if (name === "bind" || name === "connect") {
232
- requireStatementPosition(L, call, `socket.${name}(...)`);
218
+ requireStatementPosition(lowerer, call, `socket.${name}(...)`);
233
219
  // bind(port[, address][, cb]) / connect(port[, address][, cb]) — the
234
220
  // net.connect optional-middle rule: a 2-arg call's second argument is
235
221
  // the address when string-typed, the callback when func-typed.
236
222
  if (args.length < 1 || args.length > 3) {
237
- L.noLowering(`${name} with ${args.length} arguments`, call, `the supported form is ${name}(port[, address][, callback])`);
223
+ lowerer.noLowering(`${name} with ${args.length} arguments`, call, `the supported form is ${name}(port[, address][, callback])`);
238
224
  }
239
- const port = L.lowerExprExpecting(args[0], F64);
225
+ const port = lowerer.lowerExprExpecting(args[0], F64);
240
226
  let hostNode;
241
227
  let cbNode;
242
228
  if (args.length === 2) {
243
- if (L.mapTypeOf(L.typeOf(args[1]))?.kind === "string")
229
+ if (lowerer.mapTypeOf(lowerer.typeOf(args[1]))?.kind === "string")
244
230
  hostNode = args[1];
245
231
  else
246
232
  cbNode = args[1];
@@ -252,19 +238,19 @@ export function lowerDgramMethodCall(L, call, access) {
252
238
  // Omitted-address completions: bind's is Node's 0.0.0.0 (the runtime
253
239
  // reads "" as any); connect's is 127.0.0.1, Node's udp4 default.
254
240
  const host = hostNode
255
- ? L.lowerExprExpecting(hostNode, STRING)
241
+ ? lowerer.lowerExprExpecting(hostNode, STRING)
256
242
  : { kind: "strLit", value: name === "bind" ? "" : "127.0.0.1", type: STRING, loc };
257
- const receiver = L.lowerExpr(access.expression);
243
+ const receiver = lowerer.lowerExpr(access.expression);
258
244
  if (!cbNode) {
259
245
  const fn = name === "bind" ? "dgram.bind" : "dgram.connect";
260
246
  return { kind: "libCall", fn, args: [receiver, port, host], type: VOID, loc };
261
247
  }
262
- const { cb } = lowerCallbackArg(L, cbNode, `${name} callbacks`, 0, () => false, "use ()");
248
+ const { cb } = lowerCallbackArg(lowerer, cbNode, `${name} callbacks`, 0, () => false, "use ()");
263
249
  const fn = name === "bind" ? "dgram.bindCb" : "dgram.connectCb";
264
250
  return { kind: "libCall", fn, args: [receiver, port, host, cb], type: VOID, loc };
265
251
  }
266
252
  if (name === "send") {
267
- requireStatementPosition(L, call, "socket.send(...)");
253
+ requireStatementPosition(lowerer, call, "socket.send(...)");
268
254
  // send(msg, port, address) — one datagram to an explicit destination
269
255
  // (the static fast path). Every OTHER shape in a JS source rides the
270
256
  // checked-dynamic ladder (dgram.sendChk): Node's signature shuffle,
@@ -273,22 +259,22 @@ export function lowerDgramMethodCall(L, call, access) {
273
259
  // the post-validation tail for the callback/list/connected forms.
274
260
  const staticShape = args.length === 3 && !args.some(ts.isSpreadElement) &&
275
261
  (() => {
276
- const dataT = L.mapTypeOf(L.typeOf(args[0]));
277
- const portT = L.mapTypeOf(L.typeOf(args[1]));
278
- const hostT = L.mapTypeOf(L.typeOf(args[2]));
262
+ const dataT = lowerer.mapTypeOf(lowerer.typeOf(args[0]));
263
+ const portT = lowerer.mapTypeOf(lowerer.typeOf(args[1]));
264
+ const hostT = lowerer.mapTypeOf(lowerer.typeOf(args[2]));
279
265
  return (dataT?.kind === "string" || (dataT?.kind === "bytes" && dataT.elem === "u8")) &&
280
266
  portT?.kind === "f64" && hostT?.kind === "string";
281
267
  })();
282
268
  if (staticShape) {
283
- const receiver = L.lowerExpr(access.expression);
284
- const data = L.lowerExpr(args[0]);
285
- const port = L.lowerExprExpecting(args[1], F64);
286
- const host = L.lowerExprExpecting(args[2], STRING);
269
+ const receiver = lowerer.lowerExpr(access.expression);
270
+ const data = lowerer.lowerExpr(args[0]);
271
+ const port = lowerer.lowerExprExpecting(args[1], F64);
272
+ const host = lowerer.lowerExprExpecting(args[2], STRING);
287
273
  const fn = data.type.kind === "string" ? "dgram.sendStr" : "dgram.sendBytes";
288
274
  return { kind: "libCall", fn, args: [receiver, data, port, host], type: VOID, loc };
289
275
  }
290
276
  if (isJsSourceFile(call.getSourceFile()) && args.length <= 5 && !args.some(ts.isSpreadElement)) {
291
- const receiver = L.lowerExpr(access.expression);
277
+ const receiver = lowerer.lowerExpr(access.expression);
292
278
  const slots = [];
293
279
  let ok = true;
294
280
  for (let i = 0; i < 5; i++) {
@@ -302,12 +288,12 @@ export function lowerDgramMethodCall(L, call, access) {
302
288
  });
303
289
  continue;
304
290
  }
305
- const raw = L.lowerExpr(n);
291
+ const raw = lowerer.lowerExpr(n);
306
292
  if (raw.type.kind === "dyn")
307
293
  slots.push(raw);
308
- else if (raw.kind === "unitLit" || L.dynConvertible(raw.type) ||
294
+ else if (raw.kind === "unitLit" || lowerer.dynConvertible(raw.type) ||
309
295
  (raw.type.kind === "func" &&
310
- canBoxFuncIntoDyn(raw.type, (id) => L.shapes.get(id), (id) => L.unions.get(id)))) {
296
+ canBoxFuncIntoDyn(raw.type, (id) => lowerer.shapes.get(id), (id) => lowerer.unions.get(id)))) {
311
297
  slots.push({ kind: "dynFrom", value: raw, type: DYN, loc });
312
298
  }
313
299
  else {
@@ -319,76 +305,76 @@ export function lowerDgramMethodCall(L, call, access) {
319
305
  return {
320
306
  kind: "libCall",
321
307
  fn: "dgram.sendChk",
322
- args: [receiver, ...slots, ladderFenceExpr(L, `send in this form`, call, "send(msg, port, address) — one string or Buffer datagram — is the lowered form; callback, list, and connected sends have no lowering yet")],
308
+ args: [receiver, ...slots, ladderFenceExpr(lowerer, `send in this form`, call, "send(msg, port, address) — one string or Buffer datagram — is the lowered form; callback, list, and connected sends have no lowering yet")],
323
309
  type: VOID,
324
310
  loc,
325
311
  };
326
312
  }
327
313
  }
328
- L.noLowering(`send with ${args.length} arguments`, call, "the supported form is send(msg, port, address) — one string or Buffer datagram");
314
+ lowerer.noLowering(`send with ${args.length} arguments`, call, "the supported form is send(msg, port, address) — one string or Buffer datagram");
329
315
  }
330
316
  if (name === "address") {
331
317
  if (args.length !== 0) {
332
- L.noLowering(`address with ${args.length} arguments`, call, "address() takes no arguments");
318
+ lowerer.noLowering(`address with ${args.length} arguments`, call, "address() takes no arguments");
333
319
  }
334
320
  // The declared AddressInfo return must map to the {address, family,
335
321
  // port} record — the runtime fills exactly those three fields.
336
- const result = L.mapTypeOf(L.typeOf(call));
337
- if (!result || !isRecordOfFields(L, result, ADDRINFO_FIELDS)) {
338
- L.noLowering("address() where the result is not the {address, family, port} record", call, "the AddressInfo shape is the supported result");
322
+ const result = lowerer.mapTypeOf(lowerer.typeOf(call));
323
+ if (!result || !isRecordOfFields(lowerer, result, ADDRINFO_FIELDS)) {
324
+ lowerer.noLowering("address() where the result is not the {address, family, port} record", call, "the AddressInfo shape is the supported result");
339
325
  }
340
- const receiver = L.lowerExpr(access.expression);
326
+ const receiver = lowerer.lowerExpr(access.expression);
341
327
  return { kind: "libCall", fn: "dgram.address", args: [receiver], type: result, loc };
342
328
  }
343
329
  if (name === "close") {
344
- requireStatementPosition(L, call, "socket.close(...)");
330
+ requireStatementPosition(lowerer, call, "socket.close(...)");
345
331
  if (args.length > 1) {
346
- L.noLowering(`close with ${args.length} arguments`, call, "the supported form is close([callback])");
332
+ lowerer.noLowering(`close with ${args.length} arguments`, call, "the supported form is close([callback])");
347
333
  }
348
- const receiver = L.lowerExpr(access.expression);
334
+ const receiver = lowerer.lowerExpr(access.expression);
349
335
  if (args.length === 0) {
350
336
  return { kind: "libCall", fn: "dgram.close", args: [receiver], type: VOID, loc };
351
337
  }
352
- const { cb } = lowerCallbackArg(L, args[0], "close callbacks", 0, () => false, "use ()");
338
+ const { cb } = lowerCallbackArg(lowerer, args[0], "close callbacks", 0, () => false, "use ()");
353
339
  return { kind: "libCall", fn: "dgram.closeCb", args: [receiver, cb], type: VOID, loc };
354
340
  }
355
341
  if (name === "unref" || name === "ref") {
356
- requireStatementPosition(L, call, `socket.${name}()`);
342
+ requireStatementPosition(lowerer, call, `socket.${name}()`);
357
343
  if (args.length !== 0) {
358
- L.noLowering(`${name} with ${args.length} arguments`, call, `${name}() takes no arguments`);
344
+ lowerer.noLowering(`${name} with ${args.length} arguments`, call, `${name}() takes no arguments`);
359
345
  }
360
- const receiver = L.lowerExpr(access.expression);
346
+ const receiver = lowerer.lowerExpr(access.expression);
361
347
  const fn = name === "unref" ? "dgram.unref" : "dgram.ref";
362
348
  return { kind: "libCall", fn, args: [receiver], type: VOID, loc };
363
349
  }
364
350
  if ((name === "on" || name === "once") && args.length === 2) {
365
- requireStatementPosition(L, call, `socket.${name}(...)`);
351
+ requireStatementPosition(lowerer, call, `socket.${name}(...)`);
366
352
  const once = boolLit(name === "once", loc);
367
- const evT = L.typeOf(args[0]);
353
+ const evT = lowerer.typeOf(args[0]);
368
354
  const event = evT.isStringLiteralType() ? evT.value : null;
369
- const receiver = L.lowerExpr(access.expression);
355
+ const receiver = lowerer.lowerExpr(access.expression);
370
356
  if (event === "message") {
371
- const { cb } = lowerCallbackArg(L, args[1], "message listeners", 2, (p, i) => i === 0 ? p.kind === "bytes" && p.elem === "u8"
372
- : isRecordOfFields(L, p, RINFO_FIELDS), "use (msg: Buffer, rinfo) or (msg: Buffer) or ()");
357
+ const { cb } = lowerCallbackArg(lowerer, args[1], "message listeners", 2, (p, i) => i === 0 ? p.kind === "bytes" && p.elem === "u8"
358
+ : isRecordOfFields(lowerer, p, RINFO_FIELDS), "use (msg: Buffer, rinfo) or (msg: Buffer) or ()");
373
359
  return { kind: "libCall", fn: "dgram.onMessage", args: [receiver, cb, once], type: VOID, loc };
374
360
  }
375
361
  if (event === "error") {
376
- const { cb } = lowerCallbackArg(L, args[1], "error listeners", 1, (p) => p.kind === "object" && p.className === "%Error", "use (err) or ()");
362
+ const { cb } = lowerCallbackArg(lowerer, args[1], "error listeners", 1, (p) => p.kind === "object" && p.className === "%Error", "use (err) or ()");
377
363
  return { kind: "libCall", fn: "dgram.onError", args: [receiver, cb, once], type: VOID, loc };
378
364
  }
379
365
  if (event === "listening" || event === "close" || event === "connect") {
380
- const { cb } = lowerCallbackArg(L, args[1], `${event} listeners`, 0, () => false, "use ()");
366
+ const { cb } = lowerCallbackArg(lowerer, args[1], `${event} listeners`, 0, () => false, "use ()");
381
367
  const fn = event === "listening" ? "dgram.onListening"
382
368
  : event === "close" ? "dgram.onClose"
383
369
  : "dgram.onConnect";
384
370
  return { kind: "libCall", fn, args: [receiver, cb, once], type: VOID, loc };
385
371
  }
386
- L.noLowering(`socket.${name}(${event === null ? "non-literal event" : `"${event}"`}, ...)`, args[0], '"message", "listening", "close", "connect", and "error" are the supported socket events (as literals)');
372
+ lowerer.noLowering(`socket.${name}(${event === null ? "non-literal event" : `"${event}"`}, ...)`, args[0], '"message", "listening", "close", "connect", and "error" are the supported socket events (as literals)');
387
373
  }
388
374
  if (name.startsWith("setMulticast") || name === "addMembership" || name === "dropMembership" ||
389
375
  name === "setBroadcast" || name === "setTTL") {
390
- L.noLowering(`dgram.Socket.${name}`, call, `multicast/TTL options have no lowering (${DGRAM_SURFACE_HINT})`, L.checker.getSymbolAtLocation(access.name));
376
+ lowerer.noLowering(`dgram.Socket.${name}`, call, `multicast/TTL options have no lowering (${DGRAM_SURFACE_HINT})`, lowerer.checker.getSymbolAtLocation(access.name));
391
377
  }
392
- L.noLowering(`dgram.Socket.${name}`, call, DGRAM_SURFACE_HINT, L.checker.getSymbolAtLocation(access.name));
378
+ lowerer.noLowering(`dgram.Socket.${name}`, call, DGRAM_SURFACE_HINT, lowerer.checker.getSymbolAtLocation(access.name));
393
379
  }
394
380
  //# sourceMappingURL=lower-dgram.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lower-dgram.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-dgram.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lower-dgram.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-dgram.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import * as ts from "../ts7/adapter.js";
2
2
  import type { Lowerer } from "./lowerer.js";
3
- import { IrExpr } from "../../ir/nodes.js";
3
+ import { IrExpr } from "../../ir/ir.js";
4
4
  /** The access-site chokepoint, tried FIRST by both the property- and
5
5
  * element-access lowerings: claims enum member reads (fold to the constant)
6
6
  * and enum reverse-mapping reads. Null when the access is not enum-shaped
7
7
  * at all — the caller's ordinary paths apply. */
8
- export declare function lowerEnumAccess(L: Lowerer, expr: ts.PropertyAccessExpression | ts.ElementAccessExpression): IrExpr | null;
8
+ export declare function lowerEnumAccess(lowerer: Lowerer, expr: ts.PropertyAccessExpression | ts.ElementAccessExpression): IrExpr | null;
9
9
  /** The declaration statement. Ambient declarations emit nothing (Node's
10
10
  * type stripping drops them too). Runtime declarations whose members are
11
11
  * ALL compile-time constants also emit nothing: constant initializers have
@@ -14,9 +14,9 @@ export declare function lowerEnumAccess(L: Lowerer, expr: ts.PropertyAccessExpre
14
14
  * fence per site. A computed member's initializer is a runtime expression
15
15
  * Node evaluates at the declaration — dropping it would be observable, so
16
16
  * the declaration fences on that member. */
17
- export declare function lowerEnumDeclaration(L: Lowerer, stmt: ts.EnumDeclaration): null;
17
+ export declare function lowerEnumDeclaration(lowerer: Lowerer, stmt: ts.EnumDeclaration): null;
18
18
  /** The identifier chokepoint's enum arm: the enum OBJECT used as a VALUE
19
19
  * (passed around, iterated, stored). Member reads never reach here (the
20
20
  * access hook claims them); everything else is the object itself, which
21
21
  * has no lowering. Returns false when the symbol is not an enum. */
22
- export declare function fenceEnumObjectValue(L: Lowerer, expr: ts.Identifier, sym: ts.Symbol): void;
22
+ export declare function fenceEnumObjectValue(lowerer: Lowerer, expr: ts.Identifier, sym: ts.Symbol): void;