@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
@@ -0,0 +1,11 @@
1
+ import { type IrExpr, type IrLibFn, type IrParam, type IrType, type SrcLoc } from "../../ir/ir.js";
2
+ import type { Lowerer } from "./lowerer.js";
3
+ /** Intern a helper that materializes a pure string-index record from a flat
4
+ * `[key, value, ...]` array returned by a runtime call. */
5
+ export declare function pairsSnapshotHelper(lowerer: Lowerer, shapeId: string, loc: SrcLoc, options: {
6
+ keyPrefix: string;
7
+ libCall: IrLibFn;
8
+ params?: IrParam[];
9
+ callArgs?: IrExpr[];
10
+ indexValueOk?: (indexValue: IrType) => boolean;
11
+ }): string | null;
@@ -0,0 +1,85 @@
1
+ import { arrayOf, BOOL, F64, STRING } from "../../ir/ir.js";
2
+ import { numLit, varRef } from "../../ir/build.js";
3
+ /** Intern a helper that materializes a pure string-index record from a flat
4
+ * `[key, value, ...]` array returned by a runtime call. */
5
+ export function pairsSnapshotHelper(lowerer, shapeId, loc, options) {
6
+ const shape = lowerer.shapes.get(shapeId);
7
+ if (!shape || shape.tuple || shape.fields.length > 0 || !shape.indexValue)
8
+ return null;
9
+ const indexValue = shape.indexValue;
10
+ if (options.indexValueOk && !options.indexValueOk(indexValue))
11
+ return null;
12
+ if (indexValue.kind !== "union")
13
+ return null;
14
+ const stringTag = lowerer.armTag(indexValue.unionId, STRING);
15
+ if (stringTag < 0)
16
+ return null;
17
+ const key = `${options.keyPrefix}.snapshot:${shapeId}`;
18
+ const existing = lowerer.widthHelpers.get(key);
19
+ if (existing)
20
+ return existing;
21
+ const name = `%${options.keyPrefix}.snapshot.${lowerer.widthHelpers.size}`;
22
+ lowerer.widthHelpers.set(key, name);
23
+ const recordType = { kind: "record", shapeId };
24
+ const pairsType = arrayOf(STRING);
25
+ const pairAt = (offset) => ({
26
+ kind: "arrayGet",
27
+ arr: varRef("ps.0", pairsType, loc),
28
+ index: offset === 0
29
+ ? varRef("i.0", F64, loc)
30
+ : { kind: "bin", op: "+", left: varRef("i.0", F64, loc), right: numLit(offset, loc), type: F64, loc },
31
+ type: STRING,
32
+ loc,
33
+ });
34
+ lowerer.liftedFns.push({
35
+ name,
36
+ params: options.params ?? [],
37
+ returnType: recordType,
38
+ locals: [
39
+ ...(options.params ?? []).map((param) => ({ id: param.localId, name: param.name, type: param.type, mutable: false })),
40
+ { id: "ps.0", name: "ps", type: pairsType, mutable: false },
41
+ { id: "out.0", name: "out", type: recordType, mutable: false },
42
+ { id: "i.0", name: "i", type: F64, mutable: true },
43
+ ],
44
+ body: [
45
+ {
46
+ kind: "varDecl",
47
+ localId: "ps.0",
48
+ init: { kind: "libCall", fn: options.libCall, args: options.callArgs ?? [], type: pairsType, loc },
49
+ loc,
50
+ },
51
+ { kind: "varDecl", localId: "out.0", init: { kind: "recordLit", fields: [], type: recordType, loc }, loc },
52
+ {
53
+ kind: "for",
54
+ init: { kind: "varDecl", localId: "i.0", init: numLit(0, loc), loc },
55
+ cond: {
56
+ kind: "bin",
57
+ op: "<",
58
+ left: varRef("i.0", F64, loc),
59
+ right: { kind: "arrIntrinsic", method: "length", receiver: varRef("ps.0", pairsType, loc), args: [], type: F64, loc },
60
+ type: BOOL,
61
+ loc,
62
+ },
63
+ update: {
64
+ kind: "assign",
65
+ localId: "i.0",
66
+ value: { kind: "bin", op: "+", left: varRef("i.0", F64, loc), right: numLit(2, loc), type: F64, loc },
67
+ loc,
68
+ },
69
+ body: [{
70
+ kind: "recordKeySet",
71
+ obj: varRef("out.0", recordType, loc),
72
+ shapeId,
73
+ key: pairAt(0),
74
+ value: { kind: "unionWrap", unionId: indexValue.unionId, tag: stringTag, value: pairAt(1), type: indexValue, loc },
75
+ loc,
76
+ }],
77
+ loc,
78
+ },
79
+ { kind: "return", value: varRef("out.0", recordType, loc), loc },
80
+ ],
81
+ loc,
82
+ });
83
+ return name;
84
+ }
85
+ //# sourceMappingURL=pairs-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairs-snapshot.js","sourceRoot":"","sources":["../../../src/frontend/lowering/pairs-snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import * as ts from "../ts7/adapter.js";
2
+ import type { Lowerer } from "./lowerer.js";
3
+ /** Walk a static class context for `this`/`super`. Arrows inherit the
4
+ * surrounding receiver and remain transparent; declarations that bind
5
+ * their own receiver (and nested classes) are opaque. */
6
+ export declare function rejectStaticThis(lowerer: Lowerer, root: ts.Node, message: (keyword: "this" | "super") => string, includeRoot?: boolean): void;
@@ -0,0 +1,24 @@
1
+ import * as ts from "../ts7/adapter.js";
2
+ /** Walk a static class context for `this`/`super`. Arrows inherit the
3
+ * surrounding receiver and remain transparent; declarations that bind
4
+ * their own receiver (and nested classes) are opaque. */
5
+ export function rejectStaticThis(lowerer, root, message, includeRoot = false) {
6
+ const visit = (node) => {
7
+ if (ts.isFunctionExpression(node) || ts.isFunctionDeclaration(node) ||
8
+ ts.isMethodDeclaration(node) || ts.isConstructorDeclaration(node) ||
9
+ ts.isGetAccessor(node) || ts.isSetAccessor(node) ||
10
+ ts.isClassDeclaration(node) || ts.isClassExpression(node)) {
11
+ return;
12
+ }
13
+ if (node.kind === ts.SyntaxKind.ThisKeyword || node.kind === ts.SyntaxKind.SuperKeyword) {
14
+ const keyword = node.kind === ts.SyntaxKind.ThisKeyword ? "this" : "super";
15
+ lowerer.unsupported("SC1090", node, message(keyword));
16
+ }
17
+ node.forEachChild(visit);
18
+ };
19
+ if (includeRoot)
20
+ visit(root);
21
+ else
22
+ root.forEachChild(visit);
23
+ }
24
+ //# sourceMappingURL=static-this.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-this.js","sourceRoot":"","sources":["../../../src/frontend/lowering/static-this.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGxC;;yDAEyD;AACzD,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,IAAa,EACb,OAA8C,EAC9C,WAAW,GAAG,KAAK;IAEnB,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;QACpC,IACE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC/D,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC;YACjE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;YAChD,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EACzD,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YACxF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3E,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,CAAC;IACF,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC;;QACxB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import * as ts from "../ts7/adapter.js";
2
2
  import type { Lowerer } from "./lowerer.js";
3
3
  import { UNSUPPORTED } from "../../diagnostics/diagnostic.js";
4
- import { IrExpr, IrLibFn, IrStrIntrinsicMethod, IrType } from "../../ir/nodes.js";
4
+ import { IrExpr, IrLibFn, IrStrIntrinsicMethod, IrType } from "../../ir/ir.js";
5
5
  /** Statement-level constructs rejected wholesale, keyed by syntax kind. */
6
6
  export declare const UNSUPPORTED_STMT: Partial<Record<ts.SyntaxKind, {
7
7
  code: keyof typeof UNSUPPORTED;
@@ -27,7 +27,7 @@ export declare function sideEffectFreeOptionValue(node: ts.Expression): boolean;
27
27
  * supported-options hint otherwise); undocumented keys drop like Node
28
28
  * drops them when the value is side-effect-free, and fence when it is
29
29
  * not. `prop` is the property entry (assignment or shorthand) for spans. */
30
- export declare function fenceOrDropOptionKey(L: Lowerer, prop: ts.ObjectLiteralElementLike, key: string, api: string, documented: ReadonlySet<string>, supportedHint: string, pointedHints?: Record<string, string | undefined>): void;
30
+ export declare function fenceOrDropOptionKey(lowerer: Lowerer, prop: ts.ObjectLiteralElementLike, key: string, api: string, documented: ReadonlySet<string>, supportedHint: string, pointedHints?: Record<string, string | undefined>): void;
31
31
  /** http.request/http.get's documented option keys (Node v24 — the
32
32
  * `http.request(options)` and `net.socket.connect` tables); everything
33
33
  * else on a client options literal is undocumented and drops. */
@@ -111,12 +111,11 @@ export interface IslandFnEntry {
111
111
  args: IrType[];
112
112
  ret: IrType;
113
113
  }
114
- export declare const ISL_N1: IslandFnEntry;
115
- export declare const ISL_N2: IslandFnEntry;
116
114
  export declare const boundaryIntoIslandMsg: (typeName: string) => string;
117
115
  export declare const boundaryOutOfIslandMsg: (typeName: string) => string;
118
116
  /** The island-backed surface — standard-library APIs with no static
119
- * runtime implementation (Math.*, number/string methods beyond the
117
+ * runtime implementation (Math methods/properties beyond the compile-time
118
+ * constants, number/string methods beyond the
120
119
  * intrinsic set, parseFloat, ...). ONE table drives both sides of the
121
120
  * gate: under --dynamic each entry lowers to marshal → engine execution →
122
121
  * validated exit to the declared return type; without the flag each use
@@ -131,7 +130,8 @@ export declare const boundaryOutOfIslandMsg: (typeName: string) => string;
131
130
  * user. */
132
131
  export declare const ISLAND_SURFACE: {
133
132
  /** `Math.<fn>(...)` lowers to callMethod(globalGet("Math"), fn, args);
134
- * the readonly number props (`Math.PI`) to getProp(globalGet("Math")).
133
+ * Math.PI and Math.E are compile-time numeric literals in STATIC_MATH_PROPS;
134
+ * remaining Math properties retain island/fence behavior.
135
135
  * min/max/atan2/hypot/pow are declared with exactly two parameters
136
136
  * (rest/optional parameters aren't representable). */
137
137
  math: {
@@ -158,6 +158,12 @@ export declare const ISLAND_SURFACE: {
158
158
  * coercions stay engine territory. */
159
159
  globals: Record<string, IslandFnEntry | undefined>;
160
160
  };
161
+ /** Math properties with a STATIC lowering: each read becomes the exact
162
+ * JavaScript numeric constant in the typed IR. No runtime Math object read or
163
+ * dynamic-engine dependency is involved. Remaining Math properties retain
164
+ * their island/fence behavior through ISLAND_SURFACE.math.props and the
165
+ * generic standard-library member fence. */
166
+ export declare const STATIC_MATH_PROPS: Record<string, number | undefined>;
161
167
  /** Math members with a STATIC lowering — each is one C call that IS the
162
168
  * JS operation, at the tabled arity (floor: libm's floor; min/max: the
163
169
  * NaN-poisoning ±0-ordered scalar folds; random: arc4random-backed
@@ -215,7 +221,7 @@ export declare const BUILTIN_MODULE_FN_ALIASES: Record<string, Record<string, re
215
221
  /** Ambient surfaces lowered through DEDICATED code paths (no lowering-table
216
222
  * row): the Date compositions, perf_hooks' performance.now, and the process
217
223
  * global's ambient reads and authority calls. These are the determinism
218
- * attestation's ground (ir/nodes.ts's LIB_NONDETERMINISTIC_PREFIXES), so
224
+ * attestation's ground (ir/ir.ts's LIB_NONDETERMINISTIC_PREFIXES), so
219
225
  * each row projects one surface-manifest entry — a permanent, fenceable id
220
226
  * — and carries the libCall spellings that witness the surface's reach in
221
227
  * a compiled graph (the fence detector and the attestation must agree; the
@@ -231,20 +237,15 @@ export interface AmbientSurfaceRow {
231
237
  note?: string;
232
238
  }
233
239
  export declare const AMBIENT_SURFACE_FNS: readonly AmbientSurfaceRow[];
234
- /** BUILTIN_MODULE_FNS with the platform-conditional modules bound per
235
- * TARGET: a win32 triple compiles Node-on-Windows semantics — `path` is
236
- * path.win32 and url's bridge takes the win32 flavors. Fence wording is
237
- * unaffected — callers keep naming the module the source spelled. */
238
- export declare function builtinModuleFnsOf(L: Lowerer, module: string): Record<string, BuiltinModuleFn | undefined> | undefined;
239
240
  /** One MEMBER's table entry, own-property-safe (`path.toString` must not
240
241
  * answer Object.prototype.toString as a BuiltinModuleFn). */
241
- export declare function builtinModuleFnOf(L: Lowerer, module: string, member: string): BuiltinModuleFn | undefined;
242
+ export declare function builtinModuleFnOf(lowerer: Lowerer, module: string, member: string): BuiltinModuleFn | undefined;
242
243
  /** One member's fence hint, own-property-safe (a collision would print an
243
244
  * inherited function into the diagnostic text). */
244
245
  export declare function builtinFenceHintOf(module: string, member: string): string | undefined;
245
246
  /** BUILTIN_MODULE_CONSTS with the win32-target overrides applied — the
246
247
  * constants twin of builtinModuleFnsOf. */
247
- export declare function builtinModuleConstOf(L: Lowerer, module: string, member: string): string | number | boolean | undefined;
248
+ export declare function builtinModuleConstOf(lowerer: Lowerer, module: string, member: string): string | number | boolean | undefined;
248
249
  /** The IR literal of a builtin-module constant — one place so both value
249
250
  * paths (named-import bindings and namespace member reads) emit the same
250
251
  * kinds. */
@@ -253,14 +254,6 @@ export declare function builtinConstLit(value: string | number | boolean, loc: {
253
254
  start: number;
254
255
  end: number;
255
256
  }): IrExpr;
256
- /** node:module's builtinModules, BAKED — Node v24's exact list (verbatim
257
- * order: the bare names, then the node:-prefix-only tails), pinned to
258
- * the compat target rather than read from the COMPILING host's Node so
259
- * emitted programs are host-independent (the cache-identity contract).
260
- * Node ships one frozen singleton; each read here mints a fresh string
261
- * array — a divergence only mutation could observe, and mutating Node's
262
- * frozen array throws anyway. */
263
- export declare const NODE_BUILTIN_MODULES_V24: readonly string[];
264
257
  /** The array-literal read of module.builtinModules — both value paths
265
258
  * (the named-import binding and the namespace member read) mint the
266
259
  * same fresh string[]. */
@@ -269,10 +262,6 @@ export declare function builtinModulesArrayLit(loc: {
269
262
  start: number;
270
263
  end: number;
271
264
  }): IrExpr;
272
- /** Member-specific hints for RECOGNIZED builtin modules whose member has
273
- * no lowering. deflateSync/inflateSync lower now (Buffers are real);
274
- * the rest of the zlib surface points at the lowered pair. */
275
- export declare const ZLIB_HINT = "deflateSync and inflateSync are the lowered zlib surface";
276
265
  export declare const BUILTIN_MODULE_FENCE_HINTS: Record<string, Record<string, string | undefined> | undefined>;
277
266
  /** The MEMBER chokepoint of the lib fence: called from the property-read
278
267
  * and method-call fallbacks after every lowering has passed. When the
@@ -281,23 +270,23 @@ export declare const BUILTIN_MODULE_FENCE_HINTS: Record<string, Record<string, s
281
270
  * receiver's global name when it IS a stdlib global like Math or Promise,
282
271
  * its widened type text otherwise). Returns silently for non-stdlib
283
272
  * members so the caller's generic rejection applies. */
284
- export declare function stdlibMemberFence(L: Lowerer, access: ts.PropertyAccessExpression): void;
273
+ export declare function stdlibMemberFence(lowerer: Lowerer, access: ts.PropertyAccessExpression): void;
285
274
  /** True iff the accessed member is declared by the standard library —
286
275
  * the same technique as isConsoleLog: trust declarations, not names. */
287
- export declare function isStdlibMember(L: Lowerer, access: ts.PropertyAccessExpression): boolean;
276
+ export declare function isStdlibMember(lowerer: Lowerer, access: ts.PropertyAccessExpression): boolean;
288
277
  /** The provenance check the CHILD receiver lowerings use: a stdlib
289
278
  * member, OR a member the user's own child-shaped interface declares
290
279
  * (the NgrokChildProcess idiom — mapType's duck rule admits an
291
280
  * interface only when EVERY member names the lowered ChildProcess
292
281
  * surface, so accepting its members here cannot widen the surface;
293
282
  * the receiver-kind gate already proved the type maps to child). */
294
- export declare function isChildSurfaceMember(L: Lowerer, access: ts.PropertyAccessExpression): boolean;
283
+ export declare function isChildSurfaceMember(lowerer: Lowerer, access: ts.PropertyAccessExpression): boolean;
295
284
  /** True iff some declaration of the symbol lives in the standard library
296
285
  * (shipped ambient or default lib — the provenance half of every
297
286
  * supported-surface check). `some`, not `[0]`: divergence overrides merge
298
287
  * with lib interfaces, so a member can carry declarations from both. A
299
288
  * user's own declaration is in neither, so shadowing never matches. */
300
- export declare function isStdlibSymbol(L: Lowerer, symbol: ts.Symbol | undefined): boolean;
289
+ export declare function isStdlibSymbol(lowerer: Lowerer, symbol: ts.Symbol | undefined): boolean;
301
290
  /** The canonical stdlib-global name `expr` denotes, or null. Three
302
291
  * spellings reach the same global (Node's own aliasing):
303
292
  * - the bare identifier (`process`), name + provenance checked;
@@ -308,19 +297,19 @@ export declare function isStdlibSymbol(L: Lowerer, symbol: ts.Symbol | undefined
308
297
  * `typeof globalThis`, same symbol either way;
309
298
  * - a local alias binding (`const process = globalThis.process`, the
310
299
  * tamper-guard prologue) registered in stdlibGlobalAliases. */
311
- export declare function stdlibGlobalNameOf(L: Lowerer, expr: ts.Expression): string | null;
300
+ export declare function stdlibGlobalNameOf(lowerer: Lowerer, expr: ts.Expression): string | null;
312
301
  /** True iff `expr` denotes THE standard-library global `name` — name AND
313
302
  * provenance, because neither alone suffices: several globals share
314
303
  * member names (Math.log must never lower as console.log), and a user
315
304
  * binding shadowing a global's name has a different, non-stdlib symbol.
316
305
  * All of stdlibGlobalNameOf's spellings answer (globalThis.process is
317
306
  * process; `const process = globalThis.process` aliases through). */
318
- export declare function isStdlibGlobal(L: Lowerer, expr: ts.Expression, name: string): boolean;
307
+ export declare function isStdlibGlobal(lowerer: Lowerer, expr: ts.Expression, name: string): boolean;
319
308
  /** The member name of a `<global>.<member>` access whose receiver is THE
320
309
  * standard-library global `name` (console, JSON, process, Math). Null for
321
310
  * anything else, so property-lowering chains keep trying other
322
311
  * receivers. */
323
- export declare function stdlibGlobalMember(L: Lowerer, access: ts.PropertyAccessExpression, name: string): string | null;
312
+ export declare function stdlibGlobalMember(lowerer: Lowerer, access: ts.PropertyAccessExpression, name: string): string | null;
324
313
  /** `const process = globalThis.process` (and any `const x = <stdlib
325
314
  * global>` snapshot — the suite harness's tamper-guard prologue): the
326
315
  * binding is pure alias plumbing. Nothing in a compiled program can
@@ -330,9 +319,9 @@ export declare function stdlibGlobalMember(L: Lowerer, access: ts.PropertyAccess
330
319
  * nothing. Only the globals with lowered member surfaces alias this
331
320
  * way; aliasing, say, `Math` would change nothing (its members lower
332
321
  * by receiver too). Returns true when recognized. */
333
- export declare function stdlibGlobalAliasDecl(L: Lowerer, nameNode: ts.Node, init: ts.Expression | undefined): boolean;
322
+ export declare function stdlibGlobalAliasDecl(lowerer: Lowerer, nameNode: ts.Node, init: ts.Expression | undefined): boolean;
334
323
  /** True iff the symbol is declared ONLY by the adopted @types/node
335
324
  * surface (no es-lib or shipped-ambient declaration merges in) — chooses
336
325
  * the SC2020 fence's wording: "typed by @types/node", not "standard
337
326
  * library". */
338
- export declare function nodeTypesOnlySymbol(L: Lowerer, sym: ts.Symbol | null | undefined): boolean;
327
+ export declare function nodeTypesOnlySymbol(lowerer: Lowerer, sym: ts.Symbol | null | undefined): boolean;