@scriptc/compiler 0.2.3 → 0.2.5

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 (1124) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +915 -215
  2. package/ambient/scriptc-overrides.d.ts +5 -1
  3. package/ambient/scriptc.d.ts +22 -2
  4. package/dist/backend/build-cache.d.ts +4 -0
  5. package/dist/backend/build-cache.js +16 -2
  6. package/dist/backend/build-cache.js.map +1 -1
  7. package/dist/backend/cycle-analysis.js +17 -5
  8. package/dist/backend/cycle-analysis.js.map +1 -1
  9. package/dist/backend/cycle-analysis.test.js +50 -11
  10. package/dist/backend/cycle-analysis.test.js.map +1 -1
  11. package/dist/backend/debug-symbols.js.map +1 -1
  12. package/dist/backend/executable-features.js +2 -1
  13. package/dist/backend/executable-features.js.map +1 -1
  14. package/dist/backend/external-c.d.ts +13 -6
  15. package/dist/backend/external-c.js +15 -3
  16. package/dist/backend/external-c.js.map +1 -1
  17. package/dist/backend/ffi-callbacks.js +6 -9
  18. package/dist/backend/ffi-callbacks.js.map +1 -1
  19. package/dist/backend/library-identity-markers.js.map +1 -1
  20. package/dist/backend/library-pack.d.ts +1 -1
  21. package/dist/backend/library-pack.js +81 -24
  22. package/dist/backend/library-pack.js.map +1 -1
  23. package/dist/backend/link-plan-core.js +9 -2
  24. package/dist/backend/link-plan-core.js.map +1 -1
  25. package/dist/backend/link-plan.d.ts +1 -1
  26. package/dist/backend/link-plan.js +4 -5
  27. package/dist/backend/link-plan.js.map +1 -1
  28. package/dist/backend/linker.d.ts +1 -1
  29. package/dist/backend/linker.js +42 -23
  30. package/dist/backend/linker.js.map +1 -1
  31. package/dist/backend/literals.js +5 -4
  32. package/dist/backend/literals.js.map +1 -1
  33. package/dist/backend/literals.test.js +30 -5
  34. package/dist/backend/literals.test.js.map +1 -1
  35. package/dist/backend/llvm/blocks.test.js +5 -2
  36. package/dist/backend/llvm/blocks.test.js.map +1 -1
  37. package/dist/backend/llvm/borrowed-inputs.d.ts +15 -0
  38. package/dist/backend/llvm/borrowed-inputs.js +28 -0
  39. package/dist/backend/llvm/borrowed-inputs.js.map +1 -0
  40. package/dist/backend/llvm/borrowed-receivers.js +43 -19
  41. package/dist/backend/llvm/borrowed-receivers.js.map +1 -1
  42. package/dist/backend/llvm/byte-numbers.d.ts +10 -0
  43. package/dist/backend/llvm/byte-numbers.js +240 -0
  44. package/dist/backend/llvm/byte-numbers.js.map +1 -0
  45. package/dist/backend/llvm/bytes-bounds.d.ts +9 -0
  46. package/dist/backend/llvm/bytes-bounds.js +240 -0
  47. package/dist/backend/llvm/bytes-bounds.js.map +1 -0
  48. package/dist/backend/llvm/call-lifetimes.d.ts +10 -0
  49. package/dist/backend/llvm/call-lifetimes.js +83 -20
  50. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  51. package/dist/backend/llvm/call-lifetimes.test.js +203 -18
  52. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  53. package/dist/backend/llvm/checked-value-lifetimes.d.ts +13 -0
  54. package/dist/backend/llvm/checked-value-lifetimes.js +45 -0
  55. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -0
  56. package/dist/backend/llvm/classes.js +16 -12
  57. package/dist/backend/llvm/classes.js.map +1 -1
  58. package/dist/backend/llvm/common.js +4 -1
  59. package/dist/backend/llvm/common.js.map +1 -1
  60. package/dist/backend/llvm/counted-loops.d.ts +6 -0
  61. package/dist/backend/llvm/counted-loops.js +35 -0
  62. package/dist/backend/llvm/counted-loops.js.map +1 -0
  63. package/dist/backend/llvm/debug-info.js +33 -13
  64. package/dist/backend/llvm/debug-info.js.map +1 -1
  65. package/dist/backend/llvm/debug-info.test.js +28 -6
  66. package/dist/backend/llvm/debug-info.test.js.map +1 -1
  67. package/dist/backend/llvm/dyn.js +68 -22
  68. package/dist/backend/llvm/dyn.js.map +1 -1
  69. package/dist/backend/llvm/emitter.d.ts +34 -12
  70. package/dist/backend/llvm/emitter.js +357 -124
  71. package/dist/backend/llvm/emitter.js.map +1 -1
  72. package/dist/backend/llvm/emitter.test.js +237 -46
  73. package/dist/backend/llvm/emitter.test.js.map +1 -1
  74. package/dist/backend/llvm/expr-async.js +28 -8
  75. package/dist/backend/llvm/expr-async.js.map +1 -1
  76. package/dist/backend/llvm/expr-bytes.d.ts +4 -4
  77. package/dist/backend/llvm/expr-bytes.js +78 -36
  78. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  79. package/dist/backend/llvm/expr-callbacks.js +10 -4
  80. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  81. package/dist/backend/llvm/expr-calls.js +40 -21
  82. package/dist/backend/llvm/expr-calls.js.map +1 -1
  83. package/dist/backend/llvm/expr-containers.d.ts +4 -1
  84. package/dist/backend/llvm/expr-containers.js +157 -76
  85. package/dist/backend/llvm/expr-containers.js.map +1 -1
  86. package/dist/backend/llvm/expr-context.d.ts +11 -0
  87. package/dist/backend/llvm/expr-control.js +27 -8
  88. package/dist/backend/llvm/expr-control.js.map +1 -1
  89. package/dist/backend/llvm/expr-dispatch.js +3 -1
  90. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  91. package/dist/backend/llvm/expr-dynamic.js +50 -33
  92. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  93. package/dist/backend/llvm/expr-island.js +26 -6
  94. package/dist/backend/llvm/expr-island.js.map +1 -1
  95. package/dist/backend/llvm/expr-primitives.js +139 -37
  96. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  97. package/dist/backend/llvm/expr-primitives.test.js +43 -1
  98. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  99. package/dist/backend/llvm/expr-records.js +16 -9
  100. package/dist/backend/llvm/expr-records.js.map +1 -1
  101. package/dist/backend/llvm/expr-stream-bridges.js +44 -26
  102. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  103. package/dist/backend/llvm/expr-stream-bridges.test.js +51 -14
  104. package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
  105. package/dist/backend/llvm/expr-stream-callbacks.js +34 -14
  106. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  107. package/dist/backend/llvm/integer-values.d.ts +10 -0
  108. package/dist/backend/llvm/integer-values.js +52 -0
  109. package/dist/backend/llvm/integer-values.js.map +1 -0
  110. package/dist/backend/llvm/integer-views.d.ts +7 -0
  111. package/dist/backend/llvm/integer-views.js +83 -0
  112. package/dist/backend/llvm/integer-views.js.map +1 -0
  113. package/dist/backend/llvm/integer-views.test.d.ts +1 -0
  114. package/dist/backend/llvm/integer-views.test.js +69 -0
  115. package/dist/backend/llvm/integer-views.test.js.map +1 -0
  116. package/dist/backend/llvm/lib-abi.js +13 -4
  117. package/dist/backend/llvm/lib-abi.js.map +1 -1
  118. package/dist/backend/llvm/lib-connect.js +7 -1
  119. package/dist/backend/llvm/lib-connect.js.map +1 -1
  120. package/dist/backend/llvm/lib-datagram.js +35 -10
  121. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  122. package/dist/backend/llvm/lib-dispatch.js +36 -15
  123. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  124. package/dist/backend/llvm/lib-filesystem.js +38 -23
  125. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  126. package/dist/backend/llvm/lib-http2.js +60 -15
  127. package/dist/backend/llvm/lib-http2.js.map +1 -1
  128. package/dist/backend/llvm/lib-lookup.js +12 -5
  129. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  130. package/dist/backend/llvm/lib-network.js +97 -31
  131. package/dist/backend/llvm/lib-network.js.map +1 -1
  132. package/dist/backend/llvm/lib-process.js +57 -14
  133. package/dist/backend/llvm/lib-process.js.map +1 -1
  134. package/dist/backend/llvm/lib-shared.js +107 -31
  135. package/dist/backend/llvm/lib-shared.js.map +1 -1
  136. package/dist/backend/llvm/lib-stream.js +33 -14
  137. package/dist/backend/llvm/lib-stream.js.map +1 -1
  138. package/dist/backend/llvm/lib-test.js +21 -7
  139. package/dist/backend/llvm/lib-test.js.map +1 -1
  140. package/dist/backend/llvm/lib-tls.js +69 -20
  141. package/dist/backend/llvm/lib-tls.js.map +1 -1
  142. package/dist/backend/llvm/local-array-reads.d.ts +3 -4
  143. package/dist/backend/llvm/local-array-reads.js +100 -121
  144. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  145. package/dist/backend/llvm/local-array-reads.test.js +379 -71
  146. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  147. package/dist/backend/llvm/local-union-storage.d.ts +25 -0
  148. package/dist/backend/llvm/local-union-storage.js +109 -0
  149. package/dist/backend/llvm/local-union-storage.js.map +1 -0
  150. package/dist/backend/llvm/local-union-storage.test.d.ts +1 -0
  151. package/dist/backend/llvm/local-union-storage.test.js +210 -0
  152. package/dist/backend/llvm/local-union-storage.test.js.map +1 -0
  153. package/dist/backend/llvm/map-read-lifetimes.d.ts +6 -2
  154. package/dist/backend/llvm/map-read-lifetimes.js +46 -16
  155. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  156. package/dist/backend/llvm/map-read-lifetimes.test.js +93 -17
  157. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  158. package/dist/backend/llvm/reference-effects.d.ts +23 -0
  159. package/dist/backend/llvm/reference-effects.js +179 -0
  160. package/dist/backend/llvm/reference-effects.js.map +1 -0
  161. package/dist/backend/llvm/reference-effects.test.d.ts +1 -0
  162. package/dist/backend/llvm/reference-effects.test.js +157 -0
  163. package/dist/backend/llvm/reference-effects.test.js.map +1 -0
  164. package/dist/backend/llvm/shapes.d.ts +7 -4
  165. package/dist/backend/llvm/shapes.js +82 -22
  166. package/dist/backend/llvm/shapes.js.map +1 -1
  167. package/dist/backend/llvm/shapes.test.js +3 -1
  168. package/dist/backend/llvm/shapes.test.js.map +1 -1
  169. package/dist/backend/llvm/split.js +4 -4
  170. package/dist/backend/llvm/split.js.map +1 -1
  171. package/dist/backend/llvm/split.test.js +14 -6
  172. package/dist/backend/llvm/split.test.js.map +1 -1
  173. package/dist/backend/llvm/stack-unions.js +14 -5
  174. package/dist/backend/llvm/stack-unions.js.map +1 -1
  175. package/dist/backend/llvm/stack-unions.test.js +172 -32
  176. package/dist/backend/llvm/stack-unions.test.js.map +1 -1
  177. package/dist/backend/llvm/string-construction.d.ts +10 -0
  178. package/dist/backend/llvm/string-construction.js +38 -0
  179. package/dist/backend/llvm/string-construction.js.map +1 -0
  180. package/dist/backend/llvm/string-construction.test.d.ts +1 -0
  181. package/dist/backend/llvm/string-construction.test.js +90 -0
  182. package/dist/backend/llvm/string-construction.test.js.map +1 -0
  183. package/dist/backend/llvm/string-lifetimes.d.ts +2 -2
  184. package/dist/backend/llvm/string-lifetimes.js +19 -11
  185. package/dist/backend/llvm/string-lifetimes.js.map +1 -1
  186. package/dist/backend/llvm/string-lifetimes.test.js +127 -32
  187. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  188. package/dist/backend/llvm/switch-dispatch.d.ts +9 -0
  189. package/dist/backend/llvm/switch-dispatch.js +114 -0
  190. package/dist/backend/llvm/switch-dispatch.js.map +1 -0
  191. package/dist/backend/llvm/switch-dispatch.test.d.ts +1 -0
  192. package/dist/backend/llvm/switch-dispatch.test.js +83 -0
  193. package/dist/backend/llvm/switch-dispatch.test.js.map +1 -0
  194. package/dist/backend/llvm/unsupported.js.map +1 -1
  195. package/dist/backend/llvm/walkers.js +6 -3
  196. package/dist/backend/llvm/walkers.js.map +1 -1
  197. package/dist/backend/mangle.js +9 -3
  198. package/dist/backend/mangle.js.map +1 -1
  199. package/dist/backend/may-throw.js +18 -8
  200. package/dist/backend/may-throw.js.map +1 -1
  201. package/dist/backend/may-throw.test.js +118 -22
  202. package/dist/backend/may-throw.test.js.map +1 -1
  203. package/dist/backend/native/artifact-stamps.d.ts +39 -0
  204. package/dist/backend/native/artifact-stamps.js +371 -0
  205. package/dist/backend/native/artifact-stamps.js.map +1 -0
  206. package/dist/backend/native/cache-warm.d.ts +24 -0
  207. package/dist/backend/native/cache-warm.js +80 -0
  208. package/dist/backend/native/cache-warm.js.map +1 -0
  209. package/dist/backend/native/compiler-fingerprint.d.ts +19 -0
  210. package/dist/backend/native/compiler-fingerprint.js +357 -0
  211. package/dist/backend/native/compiler-fingerprint.js.map +1 -0
  212. package/dist/backend/native/contracts.d.ts +314 -0
  213. package/dist/backend/native/contracts.js +2 -0
  214. package/dist/backend/native/contracts.js.map +1 -0
  215. package/dist/backend/native/dependency-files.d.ts +5 -0
  216. package/dist/backend/native/dependency-files.js +83 -0
  217. package/dist/backend/native/dependency-files.js.map +1 -0
  218. package/dist/backend/native/driver.d.ts +50 -0
  219. package/dist/backend/native/driver.js +294 -0
  220. package/dist/backend/native/driver.js.map +1 -0
  221. package/dist/backend/native/executable.d.ts +18 -0
  222. package/dist/backend/native/executable.js +1267 -0
  223. package/dist/backend/native/executable.js.map +1 -0
  224. package/dist/backend/native/library.d.ts +2 -0
  225. package/dist/backend/native/library.js +614 -0
  226. package/dist/backend/native/library.js.map +1 -0
  227. package/dist/backend/native/linker-fingerprint.d.ts +8 -0
  228. package/dist/backend/native/linker-fingerprint.js +174 -0
  229. package/dist/backend/native/linker-fingerprint.js.map +1 -0
  230. package/dist/backend/native/object-merge.d.ts +2 -0
  231. package/dist/backend/native/object-merge.js +154 -0
  232. package/dist/backend/native/object-merge.js.map +1 -0
  233. package/dist/backend/native/process.d.ts +17 -0
  234. package/dist/backend/native/process.js +42 -0
  235. package/dist/backend/native/process.js.map +1 -0
  236. package/dist/backend/native/program-shards.d.ts +21 -0
  237. package/dist/backend/native/program-shards.js +99 -0
  238. package/dist/backend/native/program-shards.js.map +1 -0
  239. package/dist/backend/native/runtime-inputs.d.ts +12 -0
  240. package/dist/backend/native/runtime-inputs.js +163 -0
  241. package/dist/backend/native/runtime-inputs.js.map +1 -0
  242. package/dist/backend/native/runtime-inputs.test.d.ts +1 -0
  243. package/dist/backend/native/runtime-inputs.test.js +64 -0
  244. package/dist/backend/native/runtime-inputs.test.js.map +1 -0
  245. package/dist/backend/native/runtime-objects.d.ts +16 -0
  246. package/dist/backend/native/runtime-objects.js +122 -0
  247. package/dist/backend/native/runtime-objects.js.map +1 -0
  248. package/dist/backend/native/session.d.ts +12 -0
  249. package/dist/backend/native/session.js +31 -0
  250. package/dist/backend/native/session.js.map +1 -0
  251. package/dist/backend/native/tool-identity.d.ts +37 -0
  252. package/dist/backend/native/tool-identity.js +310 -0
  253. package/dist/backend/native/tool-identity.js.map +1 -0
  254. package/dist/backend/native/trace-paths.d.ts +12 -0
  255. package/dist/backend/native/trace-paths.js +73 -0
  256. package/dist/backend/native/trace-paths.js.map +1 -0
  257. package/dist/backend/native/vendor.d.ts +1 -0
  258. package/dist/backend/native/vendor.js +12 -0
  259. package/dist/backend/native/vendor.js.map +1 -0
  260. package/dist/backend/native-codegen-core.js +2 -1
  261. package/dist/backend/native-codegen-core.js.map +1 -1
  262. package/dist/backend/native-codegen.d.ts +1 -1
  263. package/dist/backend/native-codegen.js +24 -13
  264. package/dist/backend/native-codegen.js.map +1 -1
  265. package/dist/backend/native-codegen.test.js +12 -9
  266. package/dist/backend/native-codegen.test.js.map +1 -1
  267. package/dist/backend/native-link-info-core.js +9 -5
  268. package/dist/backend/native-link-info-core.js.map +1 -1
  269. package/dist/backend/native-link-info.js +14 -5
  270. package/dist/backend/native-link-info.js.map +1 -1
  271. package/dist/backend/native-link-info.test.js +58 -13
  272. package/dist/backend/native-link-info.test.js.map +1 -1
  273. package/dist/backend/native-toolchain.d.ts +17 -450
  274. package/dist/backend/native-toolchain.js +17 -3971
  275. package/dist/backend/native-toolchain.js.map +1 -1
  276. package/dist/backend/native-toolchain.test.js +103 -72
  277. package/dist/backend/native-toolchain.test.js.map +1 -1
  278. package/dist/backend/native-tools.js +27 -8
  279. package/dist/backend/native-tools.js.map +1 -1
  280. package/dist/backend/object-localize.js +17 -14
  281. package/dist/backend/object-localize.js.map +1 -1
  282. package/dist/backend/object-localize.test.js +59 -12
  283. package/dist/backend/object-localize.test.js.map +1 -1
  284. package/dist/backend/runtime-pack-core.js +96 -49
  285. package/dist/backend/runtime-pack-core.js.map +1 -1
  286. package/dist/backend/runtime-pack-native.js +5 -3
  287. package/dist/backend/runtime-pack-native.js.map +1 -1
  288. package/dist/backend/runtime-pack-targets.test.js +87 -15
  289. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  290. package/dist/backend/runtime-pack.d.ts +1 -1
  291. package/dist/backend/runtime-pack.js +11 -12
  292. package/dist/backend/runtime-pack.js.map +1 -1
  293. package/dist/backend/runtime-pack.test.js +40 -24
  294. package/dist/backend/runtime-pack.test.js.map +1 -1
  295. package/dist/backend/source-locations.js.map +1 -1
  296. package/dist/backend/source-locations.test.js +7 -2
  297. package/dist/backend/source-locations.test.js.map +1 -1
  298. package/dist/backend/target-diagnostics.js +44 -14
  299. package/dist/backend/target-diagnostics.js.map +1 -1
  300. package/dist/backend/target-diagnostics.test.js +93 -20
  301. package/dist/backend/target-diagnostics.test.js.map +1 -1
  302. package/dist/backend/targets.js +230 -86
  303. package/dist/backend/targets.js.map +1 -1
  304. package/dist/backend/targets.test.js +32 -18
  305. package/dist/backend/targets.test.js.map +1 -1
  306. package/dist/backend/toolchain-environment.js +5 -1
  307. package/dist/backend/toolchain-environment.js.map +1 -1
  308. package/dist/backend/vendor-archives.d.ts +2 -2
  309. package/dist/backend/vendor-archives.js +84 -35
  310. package/dist/backend/vendor-archives.js.map +1 -1
  311. package/dist/backend/vendor-inputs.js +13 -1
  312. package/dist/backend/vendor-inputs.js.map +1 -1
  313. package/dist/backend/warm-cache.d.ts +1 -1
  314. package/dist/backend/warm-cache.js +33 -9
  315. package/dist/backend/warm-cache.js.map +1 -1
  316. package/dist/cli/command.js +39 -9
  317. package/dist/cli/command.js.map +1 -1
  318. package/dist/cli/output-options.js +14 -4
  319. package/dist/cli/output-options.js.map +1 -1
  320. package/dist/cli/paths.js.map +1 -1
  321. package/dist/cli/wasi-runner.js.map +1 -1
  322. package/dist/compat/fetch-profile.js +36 -35
  323. package/dist/compat/fetch-profile.js.map +1 -1
  324. package/dist/coverage/report.js +16 -17
  325. package/dist/coverage/report.js.map +1 -1
  326. package/dist/coverage/surface-manifest.js +112 -26
  327. package/dist/coverage/surface-manifest.js.map +1 -1
  328. package/dist/diagnostics/diagnostic.js +55 -16
  329. package/dist/diagnostics/diagnostic.js.map +1 -1
  330. package/dist/executable/executable-cache.d.ts +1 -1
  331. package/dist/executable/executable-cache.js +78 -48
  332. package/dist/executable/executable-cache.js.map +1 -1
  333. package/dist/executable/executable-cache.test.js +75 -26
  334. package/dist/executable/executable-cache.test.js.map +1 -1
  335. package/dist/executable/prepare.js +2 -2
  336. package/dist/executable/prepare.js.map +1 -1
  337. package/dist/ffi/ffi-manifest.js +78 -20
  338. package/dist/ffi/ffi-manifest.js.map +1 -1
  339. package/dist/ffi/ffi-manifest.test.js +96 -16
  340. package/dist/ffi/ffi-manifest.test.js.map +1 -1
  341. package/dist/format-integer.js.map +1 -1
  342. package/dist/frontend/analysis.js +12 -2
  343. package/dist/frontend/analysis.js.map +1 -1
  344. package/dist/frontend/arguments-usage.js.map +1 -1
  345. package/dist/frontend/binding-source.js +9 -3
  346. package/dist/frontend/binding-source.js.map +1 -1
  347. package/dist/frontend/builtin-modules.js +46 -2
  348. package/dist/frontend/builtin-modules.js.map +1 -1
  349. package/dist/frontend/cjs-resolve.js +40 -17
  350. package/dist/frontend/cjs-resolve.js.map +1 -1
  351. package/dist/frontend/cjs-syntax.js +31 -10
  352. package/dist/frontend/cjs-syntax.js.map +1 -1
  353. package/dist/frontend/comptime-node.test.js +10 -11
  354. package/dist/frontend/comptime-node.test.js.map +1 -1
  355. package/dist/frontend/dts-paths.js +7 -3
  356. package/dist/frontend/dts-paths.js.map +1 -1
  357. package/dist/frontend/fork-target.js +17 -12
  358. package/dist/frontend/fork-target.js.map +1 -1
  359. package/dist/frontend/function-completion.js +11 -6
  360. package/dist/frontend/function-completion.js.map +1 -1
  361. package/dist/frontend/helper-tokens.js +53 -6
  362. package/dist/frontend/helper-tokens.js.map +1 -1
  363. package/dist/frontend/helper-tokens.test.js +18 -2
  364. package/dist/frontend/helper-tokens.test.js.map +1 -1
  365. package/dist/frontend/inferred-js-diagnostics.js +32 -12
  366. package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
  367. package/dist/frontend/inferred-js-diagnostics.test.js +11 -15
  368. package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
  369. package/dist/frontend/input-tracker.js +11 -11
  370. package/dist/frontend/input-tracker.js.map +1 -1
  371. package/dist/frontend/input-tracker.test.js +4 -1
  372. package/dist/frontend/input-tracker.test.js.map +1 -1
  373. package/dist/frontend/lib-contract.js +38 -9
  374. package/dist/frontend/lib-contract.js.map +1 -1
  375. package/dist/frontend/literal-values.js.map +1 -1
  376. package/dist/frontend/literal-values.test.js +28 -8
  377. package/dist/frontend/literal-values.test.js.map +1 -1
  378. package/dist/frontend/lowering/abstract-equality.js +53 -10
  379. package/dist/frontend/lowering/abstract-equality.js.map +1 -1
  380. package/dist/frontend/lowering/array-indexed-mutation.d.ts +1 -1
  381. package/dist/frontend/lowering/array-indexed-mutation.js +108 -106
  382. package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
  383. package/dist/frontend/lowering/array-values.js +37 -14
  384. package/dist/frontend/lowering/array-values.js.map +1 -1
  385. package/dist/frontend/lowering/binding-analysis.d.ts +50 -0
  386. package/dist/frontend/lowering/binding-analysis.js +376 -0
  387. package/dist/frontend/lowering/binding-analysis.js.map +1 -0
  388. package/dist/frontend/lowering/builtin-calls.d.ts +9 -0
  389. package/dist/frontend/lowering/builtin-calls.js +60 -0
  390. package/dist/frontend/lowering/builtin-calls.js.map +1 -0
  391. package/dist/frontend/lowering/builtins/arguments.d.ts +43 -0
  392. package/dist/frontend/lowering/builtins/arguments.js +247 -0
  393. package/dist/frontend/lowering/builtins/arguments.js.map +1 -0
  394. package/dist/frontend/lowering/builtins/async-context.d.ts +52 -0
  395. package/dist/frontend/lowering/builtins/async-context.js +436 -0
  396. package/dist/frontend/lowering/builtins/async-context.js.map +1 -0
  397. package/dist/frontend/lowering/builtins/atomics.d.ts +15 -0
  398. package/dist/frontend/lowering/builtins/atomics.js +46 -0
  399. package/dist/frontend/lowering/builtins/atomics.js.map +1 -0
  400. package/dist/frontend/lowering/builtins/callable-aliases.d.ts +13 -0
  401. package/dist/frontend/lowering/builtins/callable-aliases.js +87 -0
  402. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -0
  403. package/dist/frontend/lowering/builtins/child-process-async.d.ts +18 -0
  404. package/dist/frontend/lowering/builtins/child-process-async.js +245 -0
  405. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -0
  406. package/dist/frontend/lowering/builtins/child-process-methods.d.ts +21 -0
  407. package/dist/frontend/lowering/builtins/child-process-methods.js +362 -0
  408. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -0
  409. package/dist/frontend/lowering/builtins/child-process-sync.d.ts +4 -0
  410. package/dist/frontend/lowering/builtins/child-process-sync.js +639 -0
  411. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -0
  412. package/dist/frontend/lowering/builtins/child-process.d.ts +55 -0
  413. package/dist/frontend/lowering/builtins/child-process.js +669 -0
  414. package/dist/frontend/lowering/builtins/child-process.js.map +1 -0
  415. package/dist/frontend/lowering/builtins/compression.d.ts +7 -0
  416. package/dist/frontend/lowering/builtins/compression.js +115 -0
  417. package/dist/frontend/lowering/builtins/compression.js.map +1 -0
  418. package/dist/frontend/lowering/builtins/console.d.ts +10 -0
  419. package/dist/frontend/lowering/builtins/console.js +38 -0
  420. package/dist/frontend/lowering/builtins/console.js.map +1 -0
  421. package/dist/frontend/lowering/builtins/constants.d.ts +24 -0
  422. package/dist/frontend/lowering/builtins/constants.js +141 -0
  423. package/dist/frontend/lowering/builtins/constants.js.map +1 -0
  424. package/dist/frontend/lowering/builtins/crypto.d.ts +22 -0
  425. package/dist/frontend/lowering/builtins/crypto.js +517 -0
  426. package/dist/frontend/lowering/builtins/crypto.js.map +1 -0
  427. package/dist/frontend/lowering/builtins/dates.d.ts +7 -0
  428. package/dist/frontend/lowering/builtins/dates.js +101 -0
  429. package/dist/frontend/lowering/builtins/dates.js.map +1 -0
  430. package/dist/frontend/lowering/builtins/environment.d.ts +34 -0
  431. package/dist/frontend/lowering/builtins/environment.js +95 -0
  432. package/dist/frontend/lowering/builtins/environment.js.map +1 -0
  433. package/dist/frontend/lowering/builtins/errors.d.ts +14 -0
  434. package/dist/frontend/lowering/builtins/errors.js +83 -0
  435. package/dist/frontend/lowering/builtins/errors.js.map +1 -0
  436. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +32 -0
  437. package/dist/frontend/lowering/builtins/filesystem-calls.js +678 -0
  438. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -0
  439. package/dist/frontend/lowering/builtins/filesystem.d.ts +108 -0
  440. package/dist/frontend/lowering/builtins/filesystem.js +1061 -0
  441. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -0
  442. package/dist/frontend/lowering/builtins/ipc.d.ts +8 -0
  443. package/dist/frontend/lowering/builtins/ipc.js +76 -0
  444. package/dist/frontend/lowering/builtins/ipc.js.map +1 -0
  445. package/dist/frontend/lowering/builtins/json.d.ts +12 -0
  446. package/dist/frontend/lowering/builtins/json.js +387 -0
  447. package/dist/frontend/lowering/builtins/json.js.map +1 -0
  448. package/dist/frontend/lowering/builtins/module-bindings.d.ts +85 -0
  449. package/dist/frontend/lowering/builtins/module-bindings.js +346 -0
  450. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -0
  451. package/dist/frontend/lowering/builtins/module-calls.d.ts +8 -0
  452. package/dist/frontend/lowering/builtins/module-calls.js +303 -0
  453. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -0
  454. package/dist/frontend/lowering/builtins/module-resolution.d.ts +38 -0
  455. package/dist/frontend/lowering/builtins/module-resolution.js +344 -0
  456. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -0
  457. package/dist/frontend/lowering/builtins/numbers.d.ts +15 -0
  458. package/dist/frontend/lowering/builtins/numbers.js +124 -0
  459. package/dist/frontend/lowering/builtins/numbers.js.map +1 -0
  460. package/dist/frontend/lowering/builtins/operating-system.d.ts +13 -0
  461. package/dist/frontend/lowering/builtins/operating-system.js +148 -0
  462. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -0
  463. package/dist/frontend/lowering/builtins/performance.d.ts +13 -0
  464. package/dist/frontend/lowering/builtins/performance.js +100 -0
  465. package/dist/frontend/lowering/builtins/performance.js.map +1 -0
  466. package/dist/frontend/lowering/builtins/process.d.ts +50 -0
  467. package/dist/frontend/lowering/builtins/process.js +1138 -0
  468. package/dist/frontend/lowering/builtins/process.js.map +1 -0
  469. package/dist/frontend/lowering/builtins/promises.d.ts +14 -0
  470. package/dist/frontend/lowering/builtins/promises.js +356 -0
  471. package/dist/frontend/lowering/builtins/promises.js.map +1 -0
  472. package/dist/frontend/lowering/builtins/properties.d.ts +11 -0
  473. package/dist/frontend/lowering/builtins/properties.js +186 -0
  474. package/dist/frontend/lowering/builtins/properties.js.map +1 -0
  475. package/dist/frontend/lowering/builtins/querystring.d.ts +19 -0
  476. package/dist/frontend/lowering/builtins/querystring.js +150 -0
  477. package/dist/frontend/lowering/builtins/querystring.js.map +1 -0
  478. package/dist/frontend/lowering/builtins/readline.d.ts +13 -0
  479. package/dist/frontend/lowering/builtins/readline.js +138 -0
  480. package/dist/frontend/lowering/builtins/readline.js.map +1 -0
  481. package/dist/frontend/lowering/builtins/receiver-types.d.ts +5 -0
  482. package/dist/frontend/lowering/builtins/receiver-types.js +15 -0
  483. package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -0
  484. package/dist/frontend/lowering/builtins/reflection.d.ts +13 -0
  485. package/dist/frontend/lowering/builtins/reflection.js +95 -0
  486. package/dist/frontend/lowering/builtins/reflection.js.map +1 -0
  487. package/dist/frontend/lowering/builtins/strings.d.ts +14 -0
  488. package/dist/frontend/lowering/builtins/strings.js +121 -0
  489. package/dist/frontend/lowering/builtins/strings.js.map +1 -0
  490. package/dist/frontend/lowering/builtins/text-codecs.d.ts +29 -0
  491. package/dist/frontend/lowering/builtins/text-codecs.js +590 -0
  492. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -0
  493. package/dist/frontend/lowering/builtins/timers.d.ts +22 -0
  494. package/dist/frontend/lowering/builtins/timers.js +180 -0
  495. package/dist/frontend/lowering/builtins/timers.js.map +1 -0
  496. package/dist/frontend/lowering/builtins/url.d.ts +37 -0
  497. package/dist/frontend/lowering/builtins/url.js +596 -0
  498. package/dist/frontend/lowering/builtins/url.js.map +1 -0
  499. package/dist/frontend/lowering/builtins/util-types.d.ts +7 -0
  500. package/dist/frontend/lowering/builtins/util-types.js +31 -0
  501. package/dist/frontend/lowering/builtins/util-types.js.map +1 -0
  502. package/dist/frontend/lowering/call-arguments.d.ts +72 -0
  503. package/dist/frontend/lowering/call-arguments.js +618 -0
  504. package/dist/frontend/lowering/call-arguments.js.map +1 -0
  505. package/dist/frontend/lowering/call-signatures.d.ts +115 -0
  506. package/dist/frontend/lowering/call-signatures.js +719 -0
  507. package/dist/frontend/lowering/call-signatures.js.map +1 -0
  508. package/dist/frontend/lowering/callback-arg.js.map +1 -1
  509. package/dist/frontend/lowering/checked-iterable-spread.js +53 -10
  510. package/dist/frontend/lowering/checked-iterable-spread.js.map +1 -1
  511. package/dist/frontend/lowering/checked-promise-all.js +41 -9
  512. package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
  513. package/dist/frontend/lowering/class-callbacks.d.ts +1 -1
  514. package/dist/frontend/lowering/class-callbacks.js +130 -27
  515. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  516. package/dist/frontend/lowering/class-construction.d.ts +1 -1
  517. package/dist/frontend/lowering/class-construction.js +247 -50
  518. package/dist/frontend/lowering/class-construction.js.map +1 -1
  519. package/dist/frontend/lowering/class-descriptors.js +109 -29
  520. package/dist/frontend/lowering/class-descriptors.js.map +1 -1
  521. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +6 -1
  522. package/dist/frontend/lowering/class-dynamic-dispatch.js +2471 -465
  523. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  524. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +284 -44
  525. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  526. package/dist/frontend/lowering/class-instance-constructor.js +17 -5
  527. package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
  528. package/dist/frontend/lowering/class-method-values.js +199 -51
  529. package/dist/frontend/lowering/class-method-values.js.map +1 -1
  530. package/dist/frontend/lowering/class-prototypes.js +345 -86
  531. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  532. package/dist/frontend/lowering/class-runtime-statics.d.ts +1 -1
  533. package/dist/frontend/lowering/class-runtime-statics.js +80 -17
  534. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  535. package/dist/frontend/lowering/class-static-data.js +76 -16
  536. package/dist/frontend/lowering/class-static-data.js.map +1 -1
  537. package/dist/frontend/lowering/coercions/builders.d.ts +13 -0
  538. package/dist/frontend/lowering/coercions/builders.js +77 -0
  539. package/dist/frontend/lowering/coercions/builders.js.map +1 -0
  540. package/dist/frontend/lowering/coercions/function-adapters.d.ts +58 -0
  541. package/dist/frontend/lowering/coercions/function-adapters.js +430 -0
  542. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -0
  543. package/dist/frontend/lowering/coercions/island.d.ts +37 -0
  544. package/dist/frontend/lowering/coercions/island.js +350 -0
  545. package/dist/frontend/lowering/coercions/island.js.map +1 -0
  546. package/dist/frontend/lowering/coercions/state.d.ts +14 -0
  547. package/dist/frontend/lowering/coercions/state.js +16 -0
  548. package/dist/frontend/lowering/coercions/state.js.map +1 -0
  549. package/dist/frontend/lowering/coercions/structural-plans.d.ts +40 -0
  550. package/dist/frontend/lowering/coercions/structural-plans.js +447 -0
  551. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -0
  552. package/dist/frontend/lowering/coercions/structural.d.ts +63 -0
  553. package/dist/frontend/lowering/coercions/structural.js +616 -0
  554. package/dist/frontend/lowering/coercions/structural.js.map +1 -0
  555. package/dist/frontend/lowering/coercions/unions.d.ts +65 -0
  556. package/dist/frontend/lowering/coercions/unions.js +318 -0
  557. package/dist/frontend/lowering/coercions/unions.js.map +1 -0
  558. package/dist/frontend/lowering/collection-ingestion.js +359 -67
  559. package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
  560. package/dist/frontend/lowering/containers/array-callbacks.d.ts +92 -0
  561. package/dist/frontend/lowering/containers/array-callbacks.js +1646 -0
  562. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -0
  563. package/dist/frontend/lowering/containers/array-construction.d.ts +42 -0
  564. package/dist/frontend/lowering/containers/array-construction.js +1044 -0
  565. package/dist/frontend/lowering/containers/array-construction.js.map +1 -0
  566. package/dist/frontend/lowering/containers/array-iteration.d.ts +16 -0
  567. package/dist/frontend/lowering/containers/array-iteration.js +95 -0
  568. package/dist/frontend/lowering/containers/array-iteration.js.map +1 -0
  569. package/dist/frontend/lowering/containers/array-methods.d.ts +27 -0
  570. package/dist/frontend/lowering/containers/array-methods.js +1854 -0
  571. package/dist/frontend/lowering/containers/array-methods.js.map +1 -0
  572. package/dist/frontend/lowering/containers/bytes.d.ts +17 -17
  573. package/dist/frontend/lowering/containers/bytes.js +419 -105
  574. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  575. package/dist/frontend/lowering/containers/callback-arguments.d.ts +26 -0
  576. package/dist/frontend/lowering/containers/callback-arguments.js +179 -0
  577. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -0
  578. package/dist/frontend/lowering/containers/collection-grouping.d.ts +19 -0
  579. package/dist/frontend/lowering/containers/collection-grouping.js +297 -0
  580. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -0
  581. package/dist/frontend/lowering/containers/collection-methods.d.ts +57 -0
  582. package/dist/frontend/lowering/containers/collection-methods.js +1314 -0
  583. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -0
  584. package/dist/frontend/lowering/containers/dynamic-receivers.d.ts +18 -0
  585. package/dist/frontend/lowering/containers/dynamic-receivers.js +114 -0
  586. package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -0
  587. package/dist/frontend/lowering/containers/for-of.d.ts +60 -0
  588. package/dist/frontend/lowering/containers/for-of.js +643 -0
  589. package/dist/frontend/lowering/containers/for-of.js.map +1 -0
  590. package/dist/frontend/lowering/containers/indexed-objects.d.ts +132 -0
  591. package/dist/frontend/lowering/containers/indexed-objects.js +1743 -0
  592. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -0
  593. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +20 -0
  594. package/dist/frontend/lowering/containers/iterator-helpers.js +809 -0
  595. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -0
  596. package/dist/frontend/lowering/containers/string-and-regexp.js +585 -157
  597. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  598. package/dist/frontend/lowering/containers/string-replacement.js +213 -63
  599. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  600. package/dist/frontend/lowering/crypto-tables.js +263 -64
  601. package/dist/frontend/lowering/crypto-tables.js.map +1 -1
  602. package/dist/frontend/lowering/deferred-module-initializers.js +172 -68
  603. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  604. package/dist/frontend/lowering/deferred-module-initializers.test.js +41 -8
  605. package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
  606. package/dist/frontend/lowering/error-methods.js +339 -65
  607. package/dist/frontend/lowering/error-methods.js.map +1 -1
  608. package/dist/frontend/lowering/expressions/evaluation-safety.js +3 -2
  609. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
  610. package/dist/frontend/lowering/expressions/global-symbols.js +2 -1
  611. package/dist/frontend/lowering/expressions/global-symbols.js.map +1 -1
  612. package/dist/frontend/lowering/expressions/native-proxy.js +11 -5
  613. package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
  614. package/dist/frontend/lowering/expressions/nullish-assignment.js +67 -13
  615. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  616. package/dist/frontend/lowering/expressions/object-literals.js +589 -162
  617. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  618. package/dist/frontend/lowering/expressions/optional-chains.d.ts +1 -1
  619. package/dist/frontend/lowering/expressions/optional-chains.js +68 -17
  620. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  621. package/dist/frontend/lowering/expressions/union-field-write.js +45 -18
  622. package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -1
  623. package/dist/frontend/lowering/function-context.js +5 -1
  624. package/dist/frontend/lowering/function-context.js.map +1 -1
  625. package/dist/frontend/lowering/function-returns.d.ts +67 -0
  626. package/dist/frontend/lowering/function-returns.js +392 -0
  627. package/dist/frontend/lowering/function-returns.js.map +1 -0
  628. package/dist/frontend/lowering/generator-delegation.d.ts +1 -1
  629. package/dist/frontend/lowering/generator-delegation.js +171 -39
  630. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  631. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +1 -1
  632. package/dist/frontend/lowering/generator-dynamic-dispatch.js +176 -36
  633. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
  634. package/dist/frontend/lowering/generic-functions.d.ts +274 -0
  635. package/dist/frontend/lowering/generic-functions.js +1727 -0
  636. package/dist/frontend/lowering/generic-functions.js.map +1 -0
  637. package/dist/frontend/lowering/import-meta.d.ts +1 -1
  638. package/dist/frontend/lowering/import-meta.js +37 -14
  639. package/dist/frontend/lowering/import-meta.js.map +1 -1
  640. package/dist/frontend/lowering/indexed-comparison.js +6 -2
  641. package/dist/frontend/lowering/indexed-comparison.js.map +1 -1
  642. package/dist/frontend/lowering/iterator-consumption.d.ts +9 -0
  643. package/dist/frontend/lowering/iterator-consumption.js +91 -0
  644. package/dist/frontend/lowering/iterator-consumption.js.map +1 -0
  645. package/dist/frontend/lowering/lib-boundary.js +40 -17
  646. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  647. package/dist/frontend/lowering/lib-boundary.test.js +49 -11
  648. package/dist/frontend/lowering/lib-boundary.test.js.map +1 -1
  649. package/dist/frontend/lowering/lower-array-sort.d.ts +0 -19
  650. package/dist/frontend/lowering/lower-array-sort.js +331 -566
  651. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  652. package/dist/frontend/lowering/lower-assert.js +248 -43
  653. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  654. package/dist/frontend/lowering/lower-async-iteration.js +71 -16
  655. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  656. package/dist/frontend/lowering/lower-builtin-values.js +420 -71
  657. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  658. package/dist/frontend/lowering/lower-calls.d.ts +39 -558
  659. package/dist/frontend/lowering/lower-calls.js +2593 -5667
  660. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  661. package/dist/frontend/lowering/lower-classes.d.ts +243 -242
  662. package/dist/frontend/lowering/lower-classes.js +1704 -727
  663. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  664. package/dist/frontend/lowering/lower-comptime.d.ts +35 -35
  665. package/dist/frontend/lowering/lower-comptime.js +39 -37
  666. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  667. package/dist/frontend/lowering/lower-dgram.js +59 -31
  668. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  669. package/dist/frontend/lowering/lower-enums.js +5 -2
  670. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  671. package/dist/frontend/lowering/lower-event-emitter.js +322 -85
  672. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  673. package/dist/frontend/lowering/lower-expando.js +19 -7
  674. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  675. package/dist/frontend/lowering/lower-exprs.d.ts +194 -194
  676. package/dist/frontend/lowering/lower-exprs.js +3455 -1153
  677. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  678. package/dist/frontend/lowering/lower-functions.d.ts +23 -0
  679. package/dist/frontend/lowering/lower-functions.js +449 -0
  680. package/dist/frontend/lowering/lower-functions.js.map +1 -0
  681. package/dist/frontend/lowering/lower-generators.js +121 -32
  682. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  683. package/dist/frontend/lowering/lower-global-value.js +15 -4
  684. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  685. package/dist/frontend/lowering/lower-inspect.js +479 -89
  686. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  687. package/dist/frontend/lowering/lower-island.d.ts +79 -79
  688. package/dist/frontend/lowering/lower-island.js +365 -273
  689. package/dist/frontend/lowering/lower-island.js.map +1 -1
  690. package/dist/frontend/lowering/lower-island.test.js +7 -2
  691. package/dist/frontend/lowering/lower-island.test.js.map +1 -1
  692. package/dist/frontend/lowering/lower-mixins.js +17 -8
  693. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  694. package/dist/frontend/lowering/lower-modules.d.ts +94 -94
  695. package/dist/frontend/lowering/lower-modules.js +612 -321
  696. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  697. package/dist/frontend/lowering/lower-modules.test.js +91 -20
  698. package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
  699. package/dist/frontend/lowering/lower-namespaces.js +25 -8
  700. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  701. package/dist/frontend/lowering/lower-node-module.js +115 -34
  702. package/dist/frontend/lowering/lower-node-module.js.map +1 -1
  703. package/dist/frontend/lowering/lower-server.js +1210 -290
  704. package/dist/frontend/lowering/lower-server.js.map +1 -1
  705. package/dist/frontend/lowering/lower-stmts.d.ts +148 -148
  706. package/dist/frontend/lowering/lower-stmts.js +2312 -984
  707. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  708. package/dist/frontend/lowering/lower-stmts.test.js +13 -5
  709. package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
  710. package/dist/frontend/lowering/lower-stream.js +362 -90
  711. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  712. package/dist/frontend/lowering/lower-system-errors.js +30 -8
  713. package/dist/frontend/lowering/lower-system-errors.js.map +1 -1
  714. package/dist/frontend/lowering/lower-test.js +40 -13
  715. package/dist/frontend/lowering/lower-test.js.map +1 -1
  716. package/dist/frontend/lowering/lower-timers.d.ts +31 -0
  717. package/dist/frontend/lowering/lower-timers.js +336 -0
  718. package/dist/frontend/lowering/lower-timers.js.map +1 -0
  719. package/dist/frontend/lowering/lower-url.d.ts +1 -1
  720. package/dist/frontend/lowering/lower-url.js +46 -13
  721. package/dist/frontend/lowering/lower-url.js.map +1 -1
  722. package/dist/frontend/lowering/lowerer.d.ts +21 -351
  723. package/dist/frontend/lowering/lowerer.js +1031 -2704
  724. package/dist/frontend/lowering/lowerer.js.map +1 -1
  725. package/dist/frontend/lowering/lowerer.test.js +85 -17
  726. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  727. package/dist/frontend/lowering/module-namespace-elements.js +43 -8
  728. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  729. package/dist/frontend/lowering/native-ffi.d.ts +21 -1
  730. package/dist/frontend/lowering/native-ffi.js +487 -18
  731. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  732. package/dist/frontend/lowering/object-enumeration-receiver.js +55 -10
  733. package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -1
  734. package/dist/frontend/lowering/object-factory-new.d.ts +1 -1
  735. package/dist/frontend/lowering/object-factory-new.js +36 -11
  736. package/dist/frontend/lowering/object-factory-new.js.map +1 -1
  737. package/dist/frontend/lowering/optional-arguments.js +49 -20
  738. package/dist/frontend/lowering/optional-arguments.js.map +1 -1
  739. package/dist/frontend/lowering/pairs-snapshot.js +66 -14
  740. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
  741. package/dist/frontend/lowering/runtime-optional-locals.js +3 -1
  742. package/dist/frontend/lowering/runtime-optional-locals.js.map +1 -1
  743. package/dist/frontend/lowering/runtime-optional-locals.test.js.map +1 -1
  744. package/dist/frontend/lowering/sanitize-class-types.js +4 -1
  745. package/dist/frontend/lowering/sanitize-class-types.js.map +1 -1
  746. package/dist/frontend/lowering/sanitize-class-types.test.js +86 -18
  747. package/dist/frontend/lowering/sanitize-class-types.test.js.map +1 -1
  748. package/dist/frontend/lowering/static-this.js +13 -6
  749. package/dist/frontend/lowering/static-this.js.map +1 -1
  750. package/dist/frontend/lowering/string-index.js +32 -10
  751. package/dist/frontend/lowering/string-index.js.map +1 -1
  752. package/dist/frontend/lowering/surfaces.d.ts +42 -42
  753. package/dist/frontend/lowering/surfaces.js +1094 -249
  754. package/dist/frontend/lowering/surfaces.js.map +1 -1
  755. package/dist/frontend/lowering/symbol-fields.js +40 -15
  756. package/dist/frontend/lowering/symbol-fields.js.map +1 -1
  757. package/dist/frontend/lowering/symbol-methods.js.map +1 -1
  758. package/dist/frontend/lowering/text-decoder-encoding.js +236 -24
  759. package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -1
  760. package/dist/frontend/lowering/text-decoder-encoding.test.js +84 -12
  761. package/dist/frontend/lowering/text-decoder-encoding.test.js.map +1 -1
  762. package/dist/frontend/lowering/union-narrow.js +59 -16
  763. package/dist/frontend/lowering/union-narrow.js.map +1 -1
  764. package/dist/frontend/lowering/union-narrow.test.js +24 -7
  765. package/dist/frontend/lowering/union-narrow.test.js.map +1 -1
  766. package/dist/frontend/lowering/union-retag.js +155 -40
  767. package/dist/frontend/lowering/union-retag.js.map +1 -1
  768. package/dist/frontend/lowering/union-retag.test.js +131 -33
  769. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  770. package/dist/frontend/lowering/unregistered-class-types.js.map +1 -1
  771. package/dist/frontend/lowering/unregistered-class-types.test.js +34 -8
  772. package/dist/frontend/lowering/unregistered-class-types.test.js.map +1 -1
  773. package/dist/frontend/module-syntax.js +21 -8
  774. package/dist/frontend/module-syntax.js.map +1 -1
  775. package/dist/frontend/module-syntax.test.js +37 -13
  776. package/dist/frontend/module-syntax.test.js.map +1 -1
  777. package/dist/frontend/npm-fetch-analysis.js +13 -4
  778. package/dist/frontend/npm-fetch-analysis.js.map +1 -1
  779. package/dist/frontend/npm-fetch-analysis.test.js +33 -10
  780. package/dist/frontend/npm-fetch-analysis.test.js.map +1 -1
  781. package/dist/frontend/npm-fetch-node.js.map +1 -1
  782. package/dist/frontend/npm-fetch-syntax.js +4 -9
  783. package/dist/frontend/npm-fetch-syntax.js.map +1 -1
  784. package/dist/frontend/npm-node.js +3 -1
  785. package/dist/frontend/npm-node.js.map +1 -1
  786. package/dist/frontend/npm-static-bundled-cjs.js +88 -29
  787. package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
  788. package/dist/frontend/npm-static-bundled-cjs.test.js +29 -10
  789. package/dist/frontend/npm-static-bundled-cjs.test.js.map +1 -1
  790. package/dist/frontend/npm-static-declaration-syntax.js +148 -56
  791. package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
  792. package/dist/frontend/npm-static-declarations.d.ts +1 -1
  793. package/dist/frontend/npm-static-declarations.js.map +1 -1
  794. package/dist/frontend/npm-static-declarations.test.js +33 -7
  795. package/dist/frontend/npm-static-declarations.test.js.map +1 -1
  796. package/dist/frontend/npm-static-prune.js +26 -12
  797. package/dist/frontend/npm-static-prune.js.map +1 -1
  798. package/dist/frontend/npm-static-prune.test.js +17 -3
  799. package/dist/frontend/npm-static-prune.test.js.map +1 -1
  800. package/dist/frontend/npm-static-rewrite-host.js +2 -3
  801. package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
  802. package/dist/frontend/npm-static-rewrite-syntax.js +64 -21
  803. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  804. package/dist/frontend/npm-static-rewrite.js.map +1 -1
  805. package/dist/frontend/npm-static-subtyping.js +9 -4
  806. package/dist/frontend/npm-static-subtyping.js.map +1 -1
  807. package/dist/frontend/npm-static-subtyping.test.js +30 -6
  808. package/dist/frontend/npm-static-subtyping.test.js.map +1 -1
  809. package/dist/frontend/npm-static.js +15 -4
  810. package/dist/frontend/npm-static.js.map +1 -1
  811. package/dist/frontend/npm.js +122 -36
  812. package/dist/frontend/npm.js.map +1 -1
  813. package/dist/frontend/npm.test.js +30 -10
  814. package/dist/frontend/npm.test.js.map +1 -1
  815. package/dist/frontend/pipeline-native.js.map +1 -1
  816. package/dist/frontend/pipeline.js +25 -8
  817. package/dist/frontend/pipeline.js.map +1 -1
  818. package/dist/frontend/pipeline.test.js +21 -7
  819. package/dist/frontend/pipeline.test.js.map +1 -1
  820. package/dist/frontend/program-node.js +5 -3
  821. package/dist/frontend/program-node.js.map +1 -1
  822. package/dist/frontend/program.d.ts +2 -2
  823. package/dist/frontend/program.js +234 -101
  824. package/dist/frontend/program.js.map +1 -1
  825. package/dist/frontend/program.test.js +27 -27
  826. package/dist/frontend/program.test.js.map +1 -1
  827. package/dist/frontend/provenance-core.js +8 -4
  828. package/dist/frontend/provenance-core.js.map +1 -1
  829. package/dist/frontend/provenance-registry.js +1 -4
  830. package/dist/frontend/provenance-registry.js.map +1 -1
  831. package/dist/frontend/resolve.js +32 -20
  832. package/dist/frontend/resolve.js.map +1 -1
  833. package/dist/frontend/resolve.test.js +1 -1
  834. package/dist/frontend/resolve.test.js.map +1 -1
  835. package/dist/frontend/runtime-resolve.js +13 -4
  836. package/dist/frontend/runtime-resolve.js.map +1 -1
  837. package/dist/frontend/runtime-resolve.test.js +25 -9
  838. package/dist/frontend/runtime-resolve.test.js.map +1 -1
  839. package/dist/frontend/services-node.js +6 -2
  840. package/dist/frontend/services-node.js.map +1 -1
  841. package/dist/frontend/services-node.test.js +18 -6
  842. package/dist/frontend/services-node.test.js.map +1 -1
  843. package/dist/frontend/services.js +8 -4
  844. package/dist/frontend/services.js.map +1 -1
  845. package/dist/frontend/services.test.js +6 -2
  846. package/dist/frontend/services.test.js.map +1 -1
  847. package/dist/frontend/ts7/api.js +12 -4
  848. package/dist/frontend/ts7/api.js.map +1 -1
  849. package/dist/frontend/ts7/ast-bytes.js +10 -3
  850. package/dist/frontend/ts7/ast-bytes.js.map +1 -1
  851. package/dist/frontend/ts7/ast-bytes.test.js +23 -4
  852. package/dist/frontend/ts7/ast-bytes.test.js.map +1 -1
  853. package/dist/frontend/ts7/ast-guards.test.js +14 -5
  854. package/dist/frontend/ts7/ast-guards.test.js.map +1 -1
  855. package/dist/frontend/ts7/ast-node.d.ts +6 -1
  856. package/dist/frontend/ts7/ast-node.js +484 -164
  857. package/dist/frontend/ts7/ast-node.js.map +1 -1
  858. package/dist/frontend/ts7/ast-node.test.js +109 -36
  859. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  860. package/dist/frontend/ts7/ast-text.js +13 -3
  861. package/dist/frontend/ts7/ast-text.js.map +1 -1
  862. package/dist/frontend/ts7/ast-text.test.js.map +1 -1
  863. package/dist/frontend/ts7/ast-types.js.map +1 -1
  864. package/dist/frontend/ts7/ast-wire.d.ts +1 -1
  865. package/dist/frontend/ts7/ast-wire.js +55 -20
  866. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  867. package/dist/frontend/ts7/ast-wire.test.js +53 -8
  868. package/dist/frontend/ts7/ast-wire.test.js.map +1 -1
  869. package/dist/frontend/ts7/ast.js +47 -28
  870. package/dist/frontend/ts7/ast.js.map +1 -1
  871. package/dist/frontend/ts7/census-check.js +1 -1
  872. package/dist/frontend/ts7/census-check.js.map +1 -1
  873. package/dist/frontend/ts7/checker-cache.js.map +1 -1
  874. package/dist/frontend/ts7/checker.js +5 -3
  875. package/dist/frontend/ts7/checker.js.map +1 -1
  876. package/dist/frontend/ts7/checker.test.js +54 -17
  877. package/dist/frontend/ts7/checker.test.js.map +1 -1
  878. package/dist/frontend/ts7/enums.test.js +9 -4
  879. package/dist/frontend/ts7/enums.test.js.map +1 -1
  880. package/dist/frontend/ts7/native-api.js.map +1 -1
  881. package/dist/frontend/ts7/native-host.js.map +1 -1
  882. package/dist/frontend/ts7/native-process.js +9 -3
  883. package/dist/frontend/ts7/native-process.js.map +1 -1
  884. package/dist/frontend/ts7/program-adapter.js +1 -1
  885. package/dist/frontend/ts7/program-adapter.js.map +1 -1
  886. package/dist/frontend/ts7/program-host.js +7 -4
  887. package/dist/frontend/ts7/program-host.js.map +1 -1
  888. package/dist/frontend/ts7/program-host.test.js +43 -11
  889. package/dist/frontend/ts7/program-host.test.js.map +1 -1
  890. package/dist/frontend/ts7/rpc-api.js +3 -1
  891. package/dist/frontend/ts7/rpc-api.js.map +1 -1
  892. package/dist/frontend/ts7/rpc-client.js +15 -5
  893. package/dist/frontend/ts7/rpc-client.js.map +1 -1
  894. package/dist/frontend/ts7/rpc-client.test.js +26 -8
  895. package/dist/frontend/ts7/rpc-client.test.js.map +1 -1
  896. package/dist/frontend/ts7/rpc-filesystem.js.map +1 -1
  897. package/dist/frontend/ts7/rpc-filesystem.test.js +43 -10
  898. package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -1
  899. package/dist/frontend/ts7/rpc-process.js +16 -6
  900. package/dist/frontend/ts7/rpc-process.js.map +1 -1
  901. package/dist/frontend/ts7/rpc-process.test.js.map +1 -1
  902. package/dist/frontend/ts7/rpc-wire.d.ts +1 -0
  903. package/dist/frontend/ts7/rpc-wire.js +41 -14
  904. package/dist/frontend/ts7/rpc-wire.js.map +1 -1
  905. package/dist/frontend/ts7/rpc-wire.test.js +36 -6
  906. package/dist/frontend/ts7/rpc-wire.test.js.map +1 -1
  907. package/dist/frontend/ts7/semantic-checker.js +209 -68
  908. package/dist/frontend/ts7/semantic-checker.js.map +1 -1
  909. package/dist/frontend/ts7/semantic-checker.test.js +29 -14
  910. package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
  911. package/dist/frontend/ts7/semantic-json.js +7 -1
  912. package/dist/frontend/ts7/semantic-json.js.map +1 -1
  913. package/dist/frontend/ts7/semantic-json.test.js +17 -3
  914. package/dist/frontend/ts7/semantic-json.test.js.map +1 -1
  915. package/dist/frontend/ts7/semantic-model.js +147 -51
  916. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  917. package/dist/frontend/ts7/semantic-model.test.js +72 -19
  918. package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
  919. package/dist/frontend/ts7/semantic-types.d.ts +2 -2
  920. package/dist/frontend/ts7/session-cache.js +10 -3
  921. package/dist/frontend/ts7/session-cache.js.map +1 -1
  922. package/dist/frontend/ts7/session-cache.test.js +13 -4
  923. package/dist/frontend/ts7/session-cache.test.js.map +1 -1
  924. package/dist/frontend/ts7/session-path.js +25 -10
  925. package/dist/frontend/ts7/session-path.js.map +1 -1
  926. package/dist/frontend/ts7/session-path.test.js +47 -4
  927. package/dist/frontend/ts7/session-path.test.js.map +1 -1
  928. package/dist/frontend/ts7/session-timing.js +22 -3
  929. package/dist/frontend/ts7/session-timing.js.map +1 -1
  930. package/dist/frontend/ts7/session-timing.test.js +12 -3
  931. package/dist/frontend/ts7/session-timing.test.js.map +1 -1
  932. package/dist/frontend/ts7/session.d.ts +1 -0
  933. package/dist/frontend/ts7/session.js +109 -35
  934. package/dist/frontend/ts7/session.js.map +1 -1
  935. package/dist/frontend/ts7/session.test.js +69 -15
  936. package/dist/frontend/ts7/session.test.js.map +1 -1
  937. package/dist/frontend/ts7/source-parser.js +17 -6
  938. package/dist/frontend/ts7/source-parser.js.map +1 -1
  939. package/dist/frontend/ts7/source-parser.test.js +32 -9
  940. package/dist/frontend/ts7/source-parser.test.js.map +1 -1
  941. package/dist/frontend/tsc-codes.js +56 -11
  942. package/dist/frontend/tsc-codes.js.map +1 -1
  943. package/dist/frontend/tsc-codes.test.d.ts +1 -0
  944. package/dist/frontend/tsc-codes.test.js +16 -0
  945. package/dist/frontend/tsc-codes.test.js.map +1 -0
  946. package/dist/frontend/type-mapper.js +547 -206
  947. package/dist/frontend/type-mapper.js.map +1 -1
  948. package/dist/frontend/type-mapper.test.js +108 -33
  949. package/dist/frontend/type-mapper.test.js.map +1 -1
  950. package/dist/frontend/union-discriminants.js +8 -2
  951. package/dist/frontend/union-discriminants.js.map +1 -1
  952. package/dist/frontend/union-discriminants.test.js +77 -20
  953. package/dist/frontend/union-discriminants.test.js.map +1 -1
  954. package/dist/index.d.ts +9 -8
  955. package/dist/index.js +150 -81
  956. package/dist/index.js.map +1 -1
  957. package/dist/ir/analysis.js +97 -38
  958. package/dist/ir/analysis.js.map +1 -1
  959. package/dist/ir/analysis.test.js +91 -15
  960. package/dist/ir/analysis.test.js.map +1 -1
  961. package/dist/ir/api.d.ts +4 -0
  962. package/dist/ir/api.js +6 -0
  963. package/dist/ir/api.js.map +1 -0
  964. package/dist/ir/build.d.ts +7 -0
  965. package/dist/ir/build.js +27 -1
  966. package/dist/ir/build.js.map +1 -1
  967. package/dist/ir/builtin-effects.d.ts +9 -0
  968. package/dist/ir/builtin-effects.js +631 -0
  969. package/dist/ir/builtin-effects.js.map +1 -0
  970. package/dist/ir/builtin-signatures.d.ts +15 -0
  971. package/dist/ir/builtin-signatures.js +3396 -0
  972. package/dist/ir/builtin-signatures.js.map +1 -0
  973. package/dist/ir/byte-numbers.d.ts +20 -0
  974. package/dist/ir/byte-numbers.js +116 -0
  975. package/dist/ir/byte-numbers.js.map +1 -0
  976. package/dist/ir/byte-numbers.test.d.ts +1 -0
  977. package/dist/ir/byte-numbers.test.js +55 -0
  978. package/dist/ir/byte-numbers.test.js.map +1 -0
  979. package/dist/ir/constant-tables.js +13 -5
  980. package/dist/ir/constant-tables.js.map +1 -1
  981. package/dist/ir/constant-tables.test.js +47 -7
  982. package/dist/ir/constant-tables.test.js.map +1 -1
  983. package/dist/ir/control-flow.js +2 -1
  984. package/dist/ir/control-flow.js.map +1 -1
  985. package/dist/ir/control-flow.test.js +35 -11
  986. package/dist/ir/control-flow.test.js.map +1 -1
  987. package/dist/ir/initializer-bindings.d.ts +9 -0
  988. package/dist/ir/initializer-bindings.js +115 -0
  989. package/dist/ir/initializer-bindings.js.map +1 -0
  990. package/dist/ir/initializer-bindings.test.d.ts +1 -0
  991. package/dist/ir/initializer-bindings.test.js +118 -0
  992. package/dist/ir/initializer-bindings.test.js.map +1 -0
  993. package/dist/ir/integer-loop-facts.d.ts +12 -0
  994. package/dist/ir/integer-loop-facts.js +137 -0
  995. package/dist/ir/integer-loop-facts.js.map +1 -0
  996. package/dist/ir/integer-loops.d.ts +19 -0
  997. package/dist/ir/integer-loops.js +172 -11
  998. package/dist/ir/integer-loops.js.map +1 -1
  999. package/dist/ir/integer-loops.test.js +122 -9
  1000. package/dist/ir/integer-loops.test.js.map +1 -1
  1001. package/dist/ir/integer-ranges.d.ts +8 -6
  1002. package/dist/ir/integer-ranges.js +416 -90
  1003. package/dist/ir/integer-ranges.js.map +1 -1
  1004. package/dist/ir/integer-ranges.test.js +239 -10
  1005. package/dist/ir/integer-ranges.test.js.map +1 -1
  1006. package/dist/ir/intrinsic-signatures.d.ts +20 -0
  1007. package/dist/ir/intrinsic-signatures.js +57 -0
  1008. package/dist/ir/intrinsic-signatures.js.map +1 -0
  1009. package/dist/ir/ir.d.ts +14 -2155
  1010. package/dist/ir/ir.js +169 -1394
  1011. package/dist/ir/ir.js.map +1 -1
  1012. package/dist/ir/ir.test.js +98 -77
  1013. package/dist/ir/ir.test.js.map +1 -1
  1014. package/dist/ir/runtime-features.d.ts +221 -0
  1015. package/dist/ir/runtime-features.js +551 -0
  1016. package/dist/ir/runtime-features.js.map +1 -0
  1017. package/dist/ir/runtime-features.test.d.ts +1 -0
  1018. package/dist/ir/runtime-features.test.js +98 -0
  1019. package/dist/ir/runtime-features.test.js.map +1 -0
  1020. package/dist/ir/scalar-records.js +130 -40
  1021. package/dist/ir/scalar-records.js.map +1 -1
  1022. package/dist/ir/scalar-records.test.js +146 -27
  1023. package/dist/ir/scalar-records.test.js.map +1 -1
  1024. package/dist/ir/serialize.js +4 -2
  1025. package/dist/ir/serialize.js.map +1 -1
  1026. package/dist/ir/serialize.test.js +44 -9
  1027. package/dist/ir/serialize.test.js.map +1 -1
  1028. package/dist/ir/traverse.js +156 -43
  1029. package/dist/ir/traverse.js.map +1 -1
  1030. package/dist/ir/traverse.test.js +99 -24
  1031. package/dist/ir/traverse.test.js.map +1 -1
  1032. package/dist/ir/validate.d.ts +1 -31
  1033. package/dist/ir/validate.js +826 -1915
  1034. package/dist/ir/validate.js.map +1 -1
  1035. package/dist/ir/validate.test.js +627 -111
  1036. package/dist/ir/validate.test.js.map +1 -1
  1037. package/dist/library/cache-primitives.js +9 -10
  1038. package/dist/library/cache-primitives.js.map +1 -1
  1039. package/dist/library/cache-reset.test.js +2 -1
  1040. package/dist/library/cache-reset.test.js.map +1 -1
  1041. package/dist/library/compiler-self-identity.js +11 -5
  1042. package/dist/library/compiler-self-identity.js.map +1 -1
  1043. package/dist/library/compiler-self-identity.test.js +10 -3
  1044. package/dist/library/compiler-self-identity.test.js.map +1 -1
  1045. package/dist/library/fence-eval.js +24 -7
  1046. package/dist/library/fence-eval.js.map +1 -1
  1047. package/dist/library/fence-eval.test.js +31 -7
  1048. package/dist/library/fence-eval.test.js.map +1 -1
  1049. package/dist/library/int-infer.js +199 -59
  1050. package/dist/library/int-infer.js.map +1 -1
  1051. package/dist/library/int-infer.test.js +133 -57
  1052. package/dist/library/int-infer.test.js.map +1 -1
  1053. package/dist/library/ir-policy.d.ts +27 -0
  1054. package/dist/library/ir-policy.js +232 -0
  1055. package/dist/library/ir-policy.js.map +1 -0
  1056. package/dist/library/library-cache.js +40 -17
  1057. package/dist/library/library-cache.js.map +1 -1
  1058. package/dist/library/library-cache.test.js +24 -13
  1059. package/dist/library/library-cache.test.js.map +1 -1
  1060. package/dist/library/library-profile.js +68 -13
  1061. package/dist/library/library-profile.js.map +1 -1
  1062. package/dist/library/prepare.js +48 -20
  1063. package/dist/library/prepare.js.map +1 -1
  1064. package/dist/library/semantic-source.js +16 -14
  1065. package/dist/library/semantic-source.js.map +1 -1
  1066. package/dist/library/semantic-source.test.js +9 -14
  1067. package/dist/library/semantic-source.test.js.map +1 -1
  1068. package/dist/library/sidecar-validate.js +53 -12
  1069. package/dist/library/sidecar-validate.js.map +1 -1
  1070. package/dist/library/sidecar.js +85 -24
  1071. package/dist/library/sidecar.js.map +1 -1
  1072. package/dist/library/trap-teaching.js +11 -2
  1073. package/dist/library/trap-teaching.js.map +1 -1
  1074. package/dist/native/cache.js +10 -4
  1075. package/dist/native/cache.js.map +1 -1
  1076. package/dist/native/cli.js +34 -9
  1077. package/dist/native/cli.js.map +1 -1
  1078. package/dist/native/compiler.js +167 -43
  1079. package/dist/native/compiler.js.map +1 -1
  1080. package/dist/native/compiler.test.js +129 -32
  1081. package/dist/native/compiler.test.js.map +1 -1
  1082. package/dist/native/comptime.js +23 -7
  1083. package/dist/native/comptime.js.map +1 -1
  1084. package/dist/native/comptime.test.js +26 -6
  1085. package/dist/native/comptime.test.js.map +1 -1
  1086. package/dist/native/executable-cache.js +77 -27
  1087. package/dist/native/executable-cache.js.map +1 -1
  1088. package/dist/native/executable-cache.test.js +41 -6
  1089. package/dist/native/executable-cache.test.js.map +1 -1
  1090. package/dist/native/file-identity.js +9 -2
  1091. package/dist/native/file-identity.js.map +1 -1
  1092. package/dist/native/file-identity.test.js.map +1 -1
  1093. package/dist/native/library.js +50 -12
  1094. package/dist/native/library.js.map +1 -1
  1095. package/dist/native/prepare.js +119 -34
  1096. package/dist/native/prepare.js.map +1 -1
  1097. package/dist/native/prepare.test.js +22 -6
  1098. package/dist/native/prepare.test.js.map +1 -1
  1099. package/dist/native/runtime-typescript.js +24 -11
  1100. package/dist/native/runtime-typescript.js.map +1 -1
  1101. package/dist/native/runtime-typescript.test.js.map +1 -1
  1102. package/dist/native/sanitizer.js +71 -18
  1103. package/dist/native/sanitizer.js.map +1 -1
  1104. package/dist/native/sanitizer.test.js +77 -20
  1105. package/dist/native/sanitizer.test.js.map +1 -1
  1106. package/dist/native/task.js.map +1 -1
  1107. package/dist/native/task.test.js +7 -2
  1108. package/dist/native/task.test.js.map +1 -1
  1109. package/dist/native/toolchain.js +74 -29
  1110. package/dist/native/toolchain.js.map +1 -1
  1111. package/dist/native/toolchain.test.js +95 -18
  1112. package/dist/native/toolchain.test.js.map +1 -1
  1113. package/dist/startup-cache.d.ts +1 -1
  1114. package/dist/startup-cache.js +1 -1
  1115. package/dist/startup-cache.js.map +1 -1
  1116. package/dist/timing.js.map +1 -1
  1117. package/package.json +20 -20
  1118. package/surface-manifest.json +1 -1
  1119. package/dist/frontend/lowering/lower-builtins.d.ts +0 -601
  1120. package/dist/frontend/lowering/lower-builtins.js +0 -8984
  1121. package/dist/frontend/lowering/lower-builtins.js.map +0 -1
  1122. package/dist/frontend/lowering/lower-containers.d.ts +0 -382
  1123. package/dist/frontend/lowering/lower-containers.js +0 -7366
  1124. package/dist/frontend/lowering/lower-containers.js.map +0 -1
@@ -6,7 +6,7 @@
6
6
  * (ambient scriptc.d.ts / standard lib / @types/node provenance). */
7
7
  import * as ts from "../ts7/adapter.js";
8
8
  import { UNSUPPORTED } from "../../diagnostics/diagnostic.js";
9
- import { BOOL, BYTES_U8, CHILD_T, CRYPTOHASH_T, CRYPTOHMAC_T, DYN, F64, FILEHANDLE_T, SPAWNRES_T, STATS_T, STRING, URL_T, VOID, arrayOf } from "../../ir/ir.js";
9
+ import { BOOL, BYTES_U8, CHILD_T, CRYPTOHASH_T, CRYPTOHMAC_T, DYN, F64, FILEHANDLE_T, SPAWNRES_T, STATS_T, STRING, URL_T, VOID, arrayOf, } from "../../ir/ir.js";
10
10
  import { isJsSourceFile, isNodeTypesPath, requireSpecOf } from "../program.js";
11
11
  /** Statement-level constructs rejected wholesale, keyed by syntax kind. */
12
12
  export const UNSUPPORTED_STMT = {
@@ -96,19 +96,22 @@ export function sideEffectFreeOptionValue(node) {
96
96
  return true; // includes `undefined`
97
97
  if (ts.isStringLiteralLike(e) || ts.isNumericLiteral(e) || ts.isBigIntLiteral(e))
98
98
  return true;
99
- if (e.kind === ts.SyntaxKind.TrueKeyword || e.kind === ts.SyntaxKind.FalseKeyword ||
99
+ if (e.kind === ts.SyntaxKind.TrueKeyword ||
100
+ e.kind === ts.SyntaxKind.FalseKeyword ||
100
101
  e.kind === ts.SyntaxKind.NullKeyword)
101
102
  return true;
102
103
  if (ts.isArrowFunction(e) || ts.isFunctionExpression(e))
103
104
  return true;
104
105
  if (ts.isPrefixUnaryExpression(e) &&
105
- (e.operator === ts.SyntaxKind.MinusToken || e.operator === ts.SyntaxKind.PlusToken ||
106
+ (e.operator === ts.SyntaxKind.MinusToken ||
107
+ e.operator === ts.SyntaxKind.PlusToken ||
106
108
  e.operator === ts.SyntaxKind.ExclamationToken)) {
107
109
  return sideEffectFreeOptionValue(e.operand);
108
110
  }
109
111
  if (ts.isObjectLiteralExpression(e)) {
110
112
  return e.properties.every((p) => ts.isShorthandPropertyAssignment(p) ||
111
- (ts.isPropertyAssignment(p) && !ts.isComputedPropertyName(p.name) &&
113
+ (ts.isPropertyAssignment(p) &&
114
+ !ts.isComputedPropertyName(p.name) &&
112
115
  sideEffectFreeOptionValue(p.initializer)));
113
116
  }
114
117
  if (ts.isArrayLiteralExpression(e)) {
@@ -158,11 +161,31 @@ export function fenceOrDropOptionKey(lowerer, prop, key, api, documented, suppor
158
161
  * `http.request(options)` and `net.socket.connect` tables); everything
159
162
  * else on a client options literal is undocumented and drops. */
160
163
  export const HTTP_CLIENT_DOCUMENTED_OPTIONS = new Set([
161
- "agent", "auth", "createConnection", "defaultPort", "family", "headers",
162
- "hints", "host", "hostname", "insecureHTTPParser", "joinDuplicateHeaders",
163
- "localAddress", "localPort", "lookup", "maxHeaderSize", "method", "path",
164
- "port", "protocol", "setDefaultHeaders", "setHost", "signal", "socketPath",
165
- "timeout", "uniqueHeaders",
164
+ "agent",
165
+ "auth",
166
+ "createConnection",
167
+ "defaultPort",
168
+ "family",
169
+ "headers",
170
+ "hints",
171
+ "host",
172
+ "hostname",
173
+ "insecureHTTPParser",
174
+ "joinDuplicateHeaders",
175
+ "localAddress",
176
+ "localPort",
177
+ "lookup",
178
+ "maxHeaderSize",
179
+ "method",
180
+ "path",
181
+ "port",
182
+ "protocol",
183
+ "setDefaultHeaders",
184
+ "setHost",
185
+ "signal",
186
+ "socketPath",
187
+ "timeout",
188
+ "uniqueHeaders",
166
189
  ]);
167
190
  /** http.createServer / http.Server's documented option keys (Node v24 —
168
191
  * http.createServer options + the net.Server knobs it forwards). The
@@ -170,11 +193,25 @@ export const HTTP_CLIENT_DOCUMENTED_OPTIONS = new Set([
170
193
  * keepAliveTimeoutBuffer storage; the rest fence by name here, and
171
194
  * unknown keys drop like Node drops them. */
172
195
  export const HTTP_SERVER_DOCUMENTED_OPTIONS = new Set([
173
- "IncomingMessage", "ServerResponse", "allowHalfOpen", "connectionsCheckingInterval",
174
- "headersTimeout", "highWaterMark", "insecureHTTPParser", "joinDuplicateHeaders",
175
- "keepAlive", "keepAliveInitialDelay", "keepAliveTimeout", "keepAliveTimeoutBuffer", "maxHeaderSize",
176
- "noDelay", "pauseOnConnect", "rejectNonStandardBodyWrites", "requestTimeout",
177
- "requireHostHeader", "uniqueHeaders",
196
+ "IncomingMessage",
197
+ "ServerResponse",
198
+ "allowHalfOpen",
199
+ "connectionsCheckingInterval",
200
+ "headersTimeout",
201
+ "highWaterMark",
202
+ "insecureHTTPParser",
203
+ "joinDuplicateHeaders",
204
+ "keepAlive",
205
+ "keepAliveInitialDelay",
206
+ "keepAliveTimeout",
207
+ "keepAliveTimeoutBuffer",
208
+ "maxHeaderSize",
209
+ "noDelay",
210
+ "pauseOnConnect",
211
+ "rejectNonStandardBodyWrites",
212
+ "requestTimeout",
213
+ "requireHostHeader",
214
+ "uniqueHeaders",
178
215
  ]);
179
216
  /** new http.Agent(options)'s documented keys (Node v24 — the Agent
180
217
  * constructor table plus the socket.connect() options it forwards into
@@ -182,73 +219,161 @@ export const HTTP_SERVER_DOCUMENTED_OPTIONS = new Set([
182
219
  * maxFreeSockets/timeout/port (+ scheduling, dropped: no free pool
183
220
  * exists); the rest fence by name and unknown keys drop like Node. */
184
221
  export const AGENT_DOCUMENTED_OPTIONS = new Set([
185
- "family", "hints", "host", "keepAliveInitialDelay", "localAddress",
186
- "localPort", "lookup", "maxTotalSockets", "noDelay", "path",
222
+ "family",
223
+ "hints",
224
+ "host",
225
+ "keepAliveInitialDelay",
226
+ "localAddress",
227
+ "localPort",
228
+ "lookup",
229
+ "maxTotalSockets",
230
+ "noDelay",
231
+ "path",
187
232
  ]);
188
233
  /** https.request adds tls.connect's client-side TLS knobs. */
189
234
  export const HTTPS_CLIENT_DOCUMENTED_OPTIONS = new Set([
190
235
  ...HTTP_CLIENT_DOCUMENTED_OPTIONS,
191
- "ca", "cert", "checkServerIdentity", "ciphers", "clientCertEngine", "crl",
192
- "dhparam", "ecdhCurve", "highWaterMark", "honorCipherOrder", "key",
193
- "maxVersion", "minVersion", "passphrase", "pfx", "privateKeyEngine",
194
- "privateKeyIdentifier", "rejectUnauthorized", "secureOptions",
195
- "secureProtocol", "servername", "session", "sessionIdContext",
196
- "sessionTimeout", "sigalgs", "ticketKeys",
236
+ "ca",
237
+ "cert",
238
+ "checkServerIdentity",
239
+ "ciphers",
240
+ "clientCertEngine",
241
+ "crl",
242
+ "dhparam",
243
+ "ecdhCurve",
244
+ "highWaterMark",
245
+ "honorCipherOrder",
246
+ "key",
247
+ "maxVersion",
248
+ "minVersion",
249
+ "passphrase",
250
+ "pfx",
251
+ "privateKeyEngine",
252
+ "privateKeyIdentifier",
253
+ "rejectUnauthorized",
254
+ "secureOptions",
255
+ "secureProtocol",
256
+ "servername",
257
+ "session",
258
+ "sessionIdContext",
259
+ "sessionTimeout",
260
+ "sigalgs",
261
+ "ticketKeys",
197
262
  ]);
198
263
  /** tls.createServer / tls.createSecureContext / https.createServer /
199
264
  * http2.createSecureServer's documented TLS-side option keys (Node v24 —
200
265
  * tls.createSecureContext + tls.createServer + net.createServer). */
201
266
  export const TLS_SERVER_DOCUMENTED_OPTIONS = new Set([
202
- "ALPNProtocols", "ALPNCallback", "SNICallback", "allowHalfOpen", "ca",
203
- "cert", "ciphers", "clientCertEngine", "crl", "dhparam", "ecdhCurve",
204
- "enableTrace", "handshakeTimeout", "highWaterMark", "honorCipherOrder",
205
- "keepAlive", "keepAliveInitialDelay", "key", "maxVersion", "minVersion",
206
- "noDelay", "passphrase", "pauseOnConnect", "pfx", "privateKeyEngine",
207
- "privateKeyIdentifier", "pskCallback", "pskIdentityHint",
208
- "rejectUnauthorized", "requestCert", "requestOCSP", "secureContext",
209
- "secureOptions", "secureProtocol", "sessionIdContext", "sessionTimeout",
210
- "sigalgs", "ticketKeys",
267
+ "ALPNProtocols",
268
+ "ALPNCallback",
269
+ "SNICallback",
270
+ "allowHalfOpen",
271
+ "ca",
272
+ "cert",
273
+ "ciphers",
274
+ "clientCertEngine",
275
+ "crl",
276
+ "dhparam",
277
+ "ecdhCurve",
278
+ "enableTrace",
279
+ "handshakeTimeout",
280
+ "highWaterMark",
281
+ "honorCipherOrder",
282
+ "keepAlive",
283
+ "keepAliveInitialDelay",
284
+ "key",
285
+ "maxVersion",
286
+ "minVersion",
287
+ "noDelay",
288
+ "passphrase",
289
+ "pauseOnConnect",
290
+ "pfx",
291
+ "privateKeyEngine",
292
+ "privateKeyIdentifier",
293
+ "pskCallback",
294
+ "pskIdentityHint",
295
+ "rejectUnauthorized",
296
+ "requestCert",
297
+ "requestOCSP",
298
+ "secureContext",
299
+ "secureOptions",
300
+ "secureProtocol",
301
+ "sessionIdContext",
302
+ "sessionTimeout",
303
+ "sigalgs",
304
+ "ticketKeys",
211
305
  ]);
212
306
  /** http2.createSecureServer's documented keys: the h2 knobs on top of the
213
307
  * TLS server set. */
214
308
  export const HTTP2_SECURE_SERVER_DOCUMENTED_OPTIONS = new Set([
215
309
  ...TLS_SERVER_DOCUMENTED_OPTIONS,
216
- "allowHTTP1", "maxDeflateDynamicTableSize", "maxSettings",
217
- "maxSessionMemory", "maxHeaderListPairs", "maxOutstandingPings",
218
- "maxSendHeaderBlockLength", "origins", "paddingStrategy",
219
- "peerMaxConcurrentStreams", "remoteCustomSettings", "selectPadding",
220
- "settings", "streamResetBurst", "streamResetRate",
310
+ "allowHTTP1",
311
+ "maxDeflateDynamicTableSize",
312
+ "maxSettings",
313
+ "maxSessionMemory",
314
+ "maxHeaderListPairs",
315
+ "maxOutstandingPings",
316
+ "maxSendHeaderBlockLength",
317
+ "origins",
318
+ "paddingStrategy",
319
+ "peerMaxConcurrentStreams",
320
+ "remoteCustomSettings",
321
+ "selectPadding",
322
+ "settings",
323
+ "streamResetBurst",
324
+ "streamResetRate",
221
325
  "unknownProtocolTimeout",
222
326
  ]);
223
327
  /** fs.watch's documented option keys. */
224
328
  export const FS_WATCH_DOCUMENTED_OPTIONS = new Set([
225
- "persistent", "recursive", "encoding", "signal",
329
+ "persistent",
330
+ "recursive",
331
+ "encoding",
332
+ "signal",
226
333
  ]);
227
334
  /** fs.readdirSync's documented option keys. */
228
335
  export const FS_READDIR_DOCUMENTED_OPTIONS = new Set([
229
- "encoding", "withFileTypes", "recursive",
336
+ "encoding",
337
+ "withFileTypes",
338
+ "recursive",
230
339
  ]);
231
340
  /** fs.writeFileSync's documented option keys. */
232
341
  export const FS_WRITE_FILE_DOCUMENTED_OPTIONS = new Set([
233
- "encoding", "mode", "flag", "flush", "signal",
342
+ "encoding",
343
+ "mode",
344
+ "flag",
345
+ "flush",
346
+ "signal",
234
347
  ]);
235
348
  /** dns.lookup's documented option keys. */
236
349
  export const DNS_LOOKUP_DOCUMENTED_OPTIONS = new Set([
237
- "family", "hints", "all", "order", "verbatim",
350
+ "family",
351
+ "hints",
352
+ "all",
353
+ "order",
354
+ "verbatim",
238
355
  ]);
239
356
  /** querystring.parse's documented option keys (Node v24). */
240
357
  export const QS_PARSE_DOCUMENTED_OPTIONS = new Set([
241
- "maxKeys", "decodeURIComponent",
358
+ "maxKeys",
359
+ "decodeURIComponent",
242
360
  ]);
243
361
  /** querystring.stringify's documented option keys (Node v24). */
244
- export const QS_STRINGIFY_DOCUMENTED_OPTIONS = new Set([
245
- "encodeURIComponent",
246
- ]);
362
+ export const QS_STRINGIFY_DOCUMENTED_OPTIONS = new Set(["encodeURIComponent"]);
247
363
  /** readline.createInterface's documented option keys. */
248
364
  export const READLINE_DOCUMENTED_OPTIONS = new Set([
249
- "input", "output", "completer", "terminal", "history", "historySize",
250
- "removeHistoryDuplicates", "prompt", "crlfDelay", "escapeCodeTimeout",
251
- "tabSize", "signal",
365
+ "input",
366
+ "output",
367
+ "completer",
368
+ "terminal",
369
+ "history",
370
+ "historySize",
371
+ "removeHistoryDuplicates",
372
+ "prompt",
373
+ "crlfDelay",
374
+ "escapeCodeTimeout",
375
+ "tabSize",
376
+ "signal",
252
377
  ]);
253
378
  /** The lowered Array<T> method surface. Like STR_METHODS, membership is
254
379
  * only half the check — the resolved symbol must be declared by the
@@ -291,10 +416,25 @@ export const ARRAY_METHODS = new Set([
291
416
  * standard library (isStdlibMember). `size` is a property, handled in
292
417
  * property-access position. */
293
418
  export const COLLECTION_ITERATOR_METHODS = new Set(["keys", "values", "entries"]);
294
- export const MAP_METHODS = new Set(["get", "set", "has", "delete", "clear", "forEach", ...COLLECTION_ITERATOR_METHODS]);
419
+ export const MAP_METHODS = new Set([
420
+ "get",
421
+ "set",
422
+ "has",
423
+ "delete",
424
+ "clear",
425
+ "forEach",
426
+ ...COLLECTION_ITERATOR_METHODS,
427
+ ]);
295
428
  /** The lowered Set<T> method surface — Map's minus get/set plus add.
296
429
  * `size` is a property, handled in property-access position. */
297
- export const SET_METHODS = new Set(["add", "has", "delete", "clear", "forEach", ...COLLECTION_ITERATOR_METHODS]);
430
+ export const SET_METHODS = new Set([
431
+ "add",
432
+ "has",
433
+ "delete",
434
+ "clear",
435
+ "forEach",
436
+ ...COLLECTION_ITERATOR_METHODS,
437
+ ]);
298
438
  /** The ES2025 Set composition surface (union/intersection/…): desugared
299
439
  * to interned helper loops over the set iteration primitives — no user
300
440
  * code runs mid-loop, so the walks need no enter/exit bracketing. The
@@ -413,13 +553,37 @@ export const ISLAND_SURFACE = {
413
553
  math: {
414
554
  // The static table below handles these methods at its admitted arities.
415
555
  fns: {
416
- abs: ISL_N1, acos: ISL_N1, asin: ISL_N1, atan: ISL_N1, atan2: ISL_N2,
417
- acosh: ISL_N1, asinh: ISL_N1, atanh: ISL_N1,
418
- cbrt: ISL_N1, ceil: ISL_N1, clz32: ISL_N1, cos: ISL_N1, cosh: ISL_N1,
419
- exp: ISL_N1, expm1: ISL_N1, fround: ISL_N1,
420
- hypot: ISL_N2, imul: ISL_N2, log: ISL_N1, log1p: ISL_N1, log2: ISL_N1, log10: ISL_N1, pow: ISL_N2,
556
+ abs: ISL_N1,
557
+ acos: ISL_N1,
558
+ asin: ISL_N1,
559
+ atan: ISL_N1,
560
+ atan2: ISL_N2,
561
+ acosh: ISL_N1,
562
+ asinh: ISL_N1,
563
+ atanh: ISL_N1,
564
+ cbrt: ISL_N1,
565
+ ceil: ISL_N1,
566
+ clz32: ISL_N1,
567
+ cos: ISL_N1,
568
+ cosh: ISL_N1,
569
+ exp: ISL_N1,
570
+ expm1: ISL_N1,
571
+ fround: ISL_N1,
572
+ hypot: ISL_N2,
573
+ imul: ISL_N2,
574
+ log: ISL_N1,
575
+ log1p: ISL_N1,
576
+ log2: ISL_N1,
577
+ log10: ISL_N1,
578
+ pow: ISL_N2,
421
579
  round: ISL_N1,
422
- sign: ISL_N1, sin: ISL_N1, sinh: ISL_N1, sqrt: ISL_N1, tan: ISL_N1, tanh: ISL_N1, trunc: ISL_N1,
580
+ sign: ISL_N1,
581
+ sin: ISL_N1,
582
+ sinh: ISL_N1,
583
+ sqrt: ISL_N1,
584
+ tan: ISL_N1,
585
+ tanh: ISL_N1,
586
+ trunc: ISL_N1,
423
587
  },
424
588
  // Math constants are compile-time literals, not island properties.
425
589
  props: {},
@@ -530,19 +694,69 @@ function exactValueParams(...types) {
530
694
  /** Object helpers whose checked-native ABI is also their stored value ABI.
531
695
  * These adapters operate on the live checked object/property table. */
532
696
  export const OBJECT_CALLABLE_VALUES = {
533
- is: { fn: "dyn.sameValue", params: [DYN, DYN], result: BOOL, valueParams: exactValueParams(DYN, DYN) },
534
- create: { fn: "dyn.objCreateWithProperties", params: [DYN, DYN], result: DYN, valueParams: exactValueParams(DYN, DYN) },
535
- defineProperty: { fn: "dyn.defineProperty", params: [DYN, DYN, DYN], result: DYN, valueParams: exactValueParams(DYN, DYN, DYN) },
536
- getOwnPropertyDescriptor: { fn: "dyn.getOwnPropertyDescriptor", params: [DYN, DYN], result: DYN, valueParams: exactValueParams(DYN, DYN) },
537
- getOwnPropertyDescriptors: { fn: "dyn.getOwnPropertyDescriptors", params: [DYN], result: DYN, valueParams: exactValueParams(DYN) },
538
- defineProperties: { fn: "dyn.defineProps", params: [DYN, DYN], result: DYN, valueParams: exactValueParams(DYN, DYN) },
697
+ is: {
698
+ fn: "dyn.sameValue",
699
+ params: [DYN, DYN],
700
+ result: BOOL,
701
+ valueParams: exactValueParams(DYN, DYN),
702
+ },
703
+ create: {
704
+ fn: "dyn.objCreateWithProperties",
705
+ params: [DYN, DYN],
706
+ result: DYN,
707
+ valueParams: exactValueParams(DYN, DYN),
708
+ },
709
+ defineProperty: {
710
+ fn: "dyn.defineProperty",
711
+ params: [DYN, DYN, DYN],
712
+ result: DYN,
713
+ valueParams: exactValueParams(DYN, DYN, DYN),
714
+ },
715
+ getOwnPropertyDescriptor: {
716
+ fn: "dyn.getOwnPropertyDescriptor",
717
+ params: [DYN, DYN],
718
+ result: DYN,
719
+ valueParams: exactValueParams(DYN, DYN),
720
+ },
721
+ getOwnPropertyDescriptors: {
722
+ fn: "dyn.getOwnPropertyDescriptors",
723
+ params: [DYN],
724
+ result: DYN,
725
+ valueParams: exactValueParams(DYN),
726
+ },
727
+ defineProperties: {
728
+ fn: "dyn.defineProps",
729
+ params: [DYN, DYN],
730
+ result: DYN,
731
+ valueParams: exactValueParams(DYN, DYN),
732
+ },
539
733
  keys: { fn: "dyn.objKeys", params: [DYN], result: DYN, valueParams: exactValueParams(DYN) },
540
734
  values: { fn: "dyn.objValues", params: [DYN], result: DYN, valueParams: exactValueParams(DYN) },
541
735
  entries: { fn: "dyn.objEntries", params: [DYN], result: DYN, valueParams: exactValueParams(DYN) },
542
- fromEntries: { fn: "dyn.fromEntries", params: [DYN], result: DYN, valueParams: exactValueParams(DYN) },
543
- getOwnPropertySymbols: { fn: "dyn.getOwnPropertySymbols", params: [DYN], result: DYN, valueParams: exactValueParams(DYN) },
544
- getOwnPropertyNames: { fn: "dyn.getOwnPropertyNames", params: [DYN], result: DYN, valueParams: exactValueParams(DYN) },
545
- getPrototypeOf: { fn: "dyn.getPrototype", params: [DYN], result: DYN, valueParams: exactValueParams(DYN) },
736
+ fromEntries: {
737
+ fn: "dyn.fromEntries",
738
+ params: [DYN],
739
+ result: DYN,
740
+ valueParams: exactValueParams(DYN),
741
+ },
742
+ getOwnPropertySymbols: {
743
+ fn: "dyn.getOwnPropertySymbols",
744
+ params: [DYN],
745
+ result: DYN,
746
+ valueParams: exactValueParams(DYN),
747
+ },
748
+ getOwnPropertyNames: {
749
+ fn: "dyn.getOwnPropertyNames",
750
+ params: [DYN],
751
+ result: DYN,
752
+ valueParams: exactValueParams(DYN),
753
+ },
754
+ getPrototypeOf: {
755
+ fn: "dyn.getPrototype",
756
+ params: [DYN],
757
+ result: DYN,
758
+ valueParams: exactValueParams(DYN),
759
+ },
546
760
  };
547
761
  /** The lowerable surface of the supported node builtin modules, keyed by
548
762
  * CANONICAL module name (both "fs" and "node:fs" land on "fs" — see
@@ -557,29 +771,137 @@ export const OBJECT_CALLABLE_VALUES = {
557
771
  * platform's rules on any host). toNamespacedPath is the posix identity
558
772
  * (Node: a non-op on posix systems). */
559
773
  const PATH_MODULE_FNS = {
560
- join: { fn: "path.join", params: [STRING], result: STRING, variadicPack: true, valueParams: [{ mode: "rest", type: STRING }] },
561
- resolve: { fn: "path.resolve", params: [STRING], result: STRING, variadicPack: true, valueParams: [{ mode: "rest", type: STRING }] },
562
- normalize: { fn: "path.normalize", params: [STRING], result: STRING, valueParams: [{ mode: "required", type: STRING }] },
563
- dirname: { fn: "path.dirname", params: [STRING], result: STRING, valueParams: [{ mode: "required", type: STRING }] },
564
- basename: { fn: "path.basename", params: [STRING, STRING], result: STRING, defaults: [""], valueParams: [{ mode: "required", type: STRING }, { mode: "optional", type: STRING, defaultValue: "" }] },
565
- extname: { fn: "path.extname", params: [STRING], result: STRING, valueParams: [{ mode: "required", type: STRING }] },
566
- isAbsolute: { fn: "path.isAbsolute", params: [STRING], result: BOOL, valueParams: [{ mode: "required", type: STRING }] },
567
- relative: { fn: "path.relative", params: [STRING, STRING], result: STRING, valueParams: [{ mode: "required", type: STRING }, { mode: "required", type: STRING }] },
568
- toNamespacedPath: { fn: "path.toNamespacedPath", params: [STRING], result: STRING, valueParams: [{ mode: "required", type: STRING }] },
774
+ join: {
775
+ fn: "path.join",
776
+ params: [STRING],
777
+ result: STRING,
778
+ variadicPack: true,
779
+ valueParams: [{ mode: "rest", type: STRING }],
780
+ },
781
+ resolve: {
782
+ fn: "path.resolve",
783
+ params: [STRING],
784
+ result: STRING,
785
+ variadicPack: true,
786
+ valueParams: [{ mode: "rest", type: STRING }],
787
+ },
788
+ normalize: {
789
+ fn: "path.normalize",
790
+ params: [STRING],
791
+ result: STRING,
792
+ valueParams: [{ mode: "required", type: STRING }],
793
+ },
794
+ dirname: {
795
+ fn: "path.dirname",
796
+ params: [STRING],
797
+ result: STRING,
798
+ valueParams: [{ mode: "required", type: STRING }],
799
+ },
800
+ basename: {
801
+ fn: "path.basename",
802
+ params: [STRING, STRING],
803
+ result: STRING,
804
+ defaults: [""],
805
+ valueParams: [
806
+ { mode: "required", type: STRING },
807
+ { mode: "optional", type: STRING, defaultValue: "" },
808
+ ],
809
+ },
810
+ extname: {
811
+ fn: "path.extname",
812
+ params: [STRING],
813
+ result: STRING,
814
+ valueParams: [{ mode: "required", type: STRING }],
815
+ },
816
+ isAbsolute: {
817
+ fn: "path.isAbsolute",
818
+ params: [STRING],
819
+ result: BOOL,
820
+ valueParams: [{ mode: "required", type: STRING }],
821
+ },
822
+ relative: {
823
+ fn: "path.relative",
824
+ params: [STRING, STRING],
825
+ result: STRING,
826
+ valueParams: [
827
+ { mode: "required", type: STRING },
828
+ { mode: "required", type: STRING },
829
+ ],
830
+ },
831
+ toNamespacedPath: {
832
+ fn: "path.toNamespacedPath",
833
+ params: [STRING],
834
+ result: STRING,
835
+ valueParams: [{ mode: "required", type: STRING }],
836
+ },
569
837
  };
570
838
  /** The win32 twins (scr_path.c's Node-v24 path.win32 port, byte-for-byte):
571
839
  * "path/win32" everywhere, and the bare-module table when the build
572
840
  * TARGETS win32 — Node on Windows is path.win32. */
573
841
  const PATH_WIN32_MODULE_FNS = {
574
- join: { fn: "path.win32Join", params: [STRING], result: STRING, variadicPack: true, valueParams: [{ mode: "rest", type: STRING }] },
575
- resolve: { fn: "path.win32Resolve", params: [STRING], result: STRING, variadicPack: true, valueParams: [{ mode: "rest", type: STRING }] },
576
- normalize: { fn: "path.win32Normalize", params: [STRING], result: STRING, valueParams: [{ mode: "required", type: STRING }] },
577
- dirname: { fn: "path.win32Dirname", params: [STRING], result: STRING, valueParams: [{ mode: "required", type: STRING }] },
578
- basename: { fn: "path.win32Basename", params: [STRING, STRING], result: STRING, defaults: [""], valueParams: [{ mode: "required", type: STRING }, { mode: "optional", type: STRING, defaultValue: "" }] },
579
- extname: { fn: "path.win32Extname", params: [STRING], result: STRING, valueParams: [{ mode: "required", type: STRING }] },
580
- isAbsolute: { fn: "path.win32IsAbsolute", params: [STRING], result: BOOL, valueParams: [{ mode: "required", type: STRING }] },
581
- relative: { fn: "path.win32Relative", params: [STRING, STRING], result: STRING, valueParams: [{ mode: "required", type: STRING }, { mode: "required", type: STRING }] },
582
- toNamespacedPath: { fn: "path.win32ToNamespacedPath", params: [STRING], result: STRING, valueParams: [{ mode: "required", type: STRING }] },
842
+ join: {
843
+ fn: "path.win32Join",
844
+ params: [STRING],
845
+ result: STRING,
846
+ variadicPack: true,
847
+ valueParams: [{ mode: "rest", type: STRING }],
848
+ },
849
+ resolve: {
850
+ fn: "path.win32Resolve",
851
+ params: [STRING],
852
+ result: STRING,
853
+ variadicPack: true,
854
+ valueParams: [{ mode: "rest", type: STRING }],
855
+ },
856
+ normalize: {
857
+ fn: "path.win32Normalize",
858
+ params: [STRING],
859
+ result: STRING,
860
+ valueParams: [{ mode: "required", type: STRING }],
861
+ },
862
+ dirname: {
863
+ fn: "path.win32Dirname",
864
+ params: [STRING],
865
+ result: STRING,
866
+ valueParams: [{ mode: "required", type: STRING }],
867
+ },
868
+ basename: {
869
+ fn: "path.win32Basename",
870
+ params: [STRING, STRING],
871
+ result: STRING,
872
+ defaults: [""],
873
+ valueParams: [
874
+ { mode: "required", type: STRING },
875
+ { mode: "optional", type: STRING, defaultValue: "" },
876
+ ],
877
+ },
878
+ extname: {
879
+ fn: "path.win32Extname",
880
+ params: [STRING],
881
+ result: STRING,
882
+ valueParams: [{ mode: "required", type: STRING }],
883
+ },
884
+ isAbsolute: {
885
+ fn: "path.win32IsAbsolute",
886
+ params: [STRING],
887
+ result: BOOL,
888
+ valueParams: [{ mode: "required", type: STRING }],
889
+ },
890
+ relative: {
891
+ fn: "path.win32Relative",
892
+ params: [STRING, STRING],
893
+ result: STRING,
894
+ valueParams: [
895
+ { mode: "required", type: STRING },
896
+ { mode: "required", type: STRING },
897
+ ],
898
+ },
899
+ toNamespacedPath: {
900
+ fn: "path.win32ToNamespacedPath",
901
+ params: [STRING],
902
+ result: STRING,
903
+ valueParams: [{ mode: "required", type: STRING }],
904
+ },
583
905
  };
584
906
  export const BUILTIN_MODULE_FNS = {
585
907
  fs: {
@@ -590,7 +912,12 @@ export const BUILTIN_MODULE_FNS = {
590
912
  // options before entering the fixed runtime call.
591
913
  writeFileSync: { fn: "fs.writeFileSync", params: [STRING, STRING], result: VOID },
592
914
  appendFileSync: { fn: "fs.appendFileSync", params: [STRING, STRING], result: VOID },
593
- existsSync: { fn: "fs.existsSync", params: [STRING], result: BOOL, valueParams: exactValueParams(STRING) },
915
+ existsSync: {
916
+ fn: "fs.existsSync",
917
+ params: [STRING],
918
+ result: BOOL,
919
+ valueParams: exactValueParams(STRING),
920
+ },
594
921
  mkdirSync: { fn: "fs.mkdirSync", params: [STRING], result: VOID },
595
922
  rmSync: { fn: "fs.rmSync", params: [STRING], result: VOID },
596
923
  rmdirSync: { fn: "fs.rmdirSync", params: [STRING], result: VOID },
@@ -600,9 +927,24 @@ export const BUILTIN_MODULE_FNS = {
600
927
  // accessSync's omitted mode completes to 0 (F_OK) in the special case
601
928
  // in lowerBuiltinModuleCall — string `defaults` can't spell a number.
602
929
  accessSync: { fn: "fs.accessSync", params: [STRING, F64], result: VOID },
603
- unlinkSync: { fn: "fs.unlinkSync", params: [STRING], result: VOID, valueParams: exactValueParams(STRING) },
604
- chmodSync: { fn: "fs.chmodSync", params: [STRING, F64], result: VOID, valueParams: exactValueParams(STRING, F64) },
605
- chownSync: { fn: "fs.chownSync", params: [STRING, F64, F64], result: VOID, valueParams: exactValueParams(STRING, F64, F64) },
930
+ unlinkSync: {
931
+ fn: "fs.unlinkSync",
932
+ params: [STRING],
933
+ result: VOID,
934
+ valueParams: exactValueParams(STRING),
935
+ },
936
+ chmodSync: {
937
+ fn: "fs.chmodSync",
938
+ params: [STRING, F64],
939
+ result: VOID,
940
+ valueParams: exactValueParams(STRING, F64),
941
+ },
942
+ chownSync: {
943
+ fn: "fs.chownSync",
944
+ params: [STRING, F64, F64],
945
+ result: VOID,
946
+ valueParams: exactValueParams(STRING, F64, F64),
947
+ },
606
948
  // The 2-argument form only: Node's mode flags (COPYFILE_EXCL, ...)
607
949
  // land on the arity fence.
608
950
  copyFileSync: { fn: "fs.copyFileSync", params: [STRING, STRING], result: VOID },
@@ -611,30 +953,78 @@ export const BUILTIN_MODULE_FNS = {
611
953
  // adapter. The row still projects the static surface and routes the
612
954
  // dispatch.
613
955
  rename: { fn: "fs.renameCb", params: [], result: VOID },
614
- renameSync: { fn: "fs.renameSync", params: [STRING, STRING], result: VOID, valueParams: exactValueParams(STRING, STRING) },
956
+ renameSync: {
957
+ fn: "fs.renameSync",
958
+ params: [STRING, STRING],
959
+ result: VOID,
960
+ valueParams: exactValueParams(STRING, STRING),
961
+ },
615
962
  // statSync's no-follow sibling; stats.isSymbolicLink answers what the
616
963
  // follow-free snapshot saw.
617
964
  lstatSync: { fn: "fs.lstatSync", params: [STRING], result: STATS_T },
618
- fstatSync: { fn: "fs.fstatSync", params: [F64], result: STATS_T, valueParams: exactValueParams(F64) },
619
- fchmodSync: { fn: "fs.fchmodSync", params: [F64, F64], result: VOID, valueParams: exactValueParams(F64, F64) },
620
- fsyncSync: { fn: "fs.fsyncSync", params: [F64], result: VOID, valueParams: exactValueParams(F64) },
621
- fdatasyncSync: { fn: "fs.fdatasyncSync", params: [F64], result: VOID, valueParams: exactValueParams(F64) },
965
+ fstatSync: {
966
+ fn: "fs.fstatSync",
967
+ params: [F64],
968
+ result: STATS_T,
969
+ valueParams: exactValueParams(F64),
970
+ },
971
+ fchmodSync: {
972
+ fn: "fs.fchmodSync",
973
+ params: [F64, F64],
974
+ result: VOID,
975
+ valueParams: exactValueParams(F64, F64),
976
+ },
977
+ fsyncSync: {
978
+ fn: "fs.fsyncSync",
979
+ params: [F64],
980
+ result: VOID,
981
+ valueParams: exactValueParams(F64),
982
+ },
983
+ fdatasyncSync: {
984
+ fn: "fs.fdatasyncSync",
985
+ params: [F64],
986
+ result: VOID,
987
+ valueParams: exactValueParams(F64),
988
+ },
622
989
  ftruncateSync: { fn: "fs.ftruncateSync", params: [F64, F64], result: VOID },
623
990
  utimesSync: { fn: "fs.utimesSync", params: [DYN, DYN, DYN], result: VOID },
624
991
  futimesSync: { fn: "fs.futimesSync", params: [DYN, DYN, DYN], result: VOID },
625
992
  lutimesSync: { fn: "fs.lutimesSync", params: [DYN, DYN, DYN], result: VOID },
626
993
  readvSync: { fn: "fs.readvSync", params: [F64, arrayOf(BYTES_U8), F64], result: F64 },
627
994
  writevSync: { fn: "fs.writevSync", params: [F64, arrayOf(BYTES_U8), F64], result: F64 },
628
- linkSync: { fn: "fs.linkSync", params: [DYN, DYN], result: VOID, valueParams: exactValueParams(DYN, DYN) },
629
- symlinkSync: { fn: "fs.symlinkSync", params: [DYN, DYN, DYN], result: VOID, valueParams: [
630
- ...exactValueParams(DYN, DYN), { mode: "optional", type: DYN, defaultValue: undefined },
631
- ] },
632
- readlinkSync: { fn: "fs.readlinkSync", params: [DYN, DYN], result: DYN, valueParams: [
633
- ...exactValueParams(DYN), { mode: "optional", type: DYN, defaultValue: undefined },
634
- ] },
635
- statfsSync: { fn: "fs.statfsSync", params: [DYN, DYN], result: DYN, valueParams: [
636
- ...exactValueParams(DYN), { mode: "optional", type: DYN, defaultValue: undefined },
637
- ] },
995
+ linkSync: {
996
+ fn: "fs.linkSync",
997
+ params: [DYN, DYN],
998
+ result: VOID,
999
+ valueParams: exactValueParams(DYN, DYN),
1000
+ },
1001
+ symlinkSync: {
1002
+ fn: "fs.symlinkSync",
1003
+ params: [DYN, DYN, DYN],
1004
+ result: VOID,
1005
+ valueParams: [
1006
+ ...exactValueParams(DYN, DYN),
1007
+ { mode: "optional", type: DYN, defaultValue: undefined },
1008
+ ],
1009
+ },
1010
+ readlinkSync: {
1011
+ fn: "fs.readlinkSync",
1012
+ params: [DYN, DYN],
1013
+ result: DYN,
1014
+ valueParams: [
1015
+ ...exactValueParams(DYN),
1016
+ { mode: "optional", type: DYN, defaultValue: undefined },
1017
+ ],
1018
+ },
1019
+ statfsSync: {
1020
+ fn: "fs.statfsSync",
1021
+ params: [DYN, DYN],
1022
+ result: DYN,
1023
+ valueParams: [
1024
+ ...exactValueParams(DYN),
1025
+ { mode: "optional", type: DYN, defaultValue: undefined },
1026
+ ],
1027
+ },
638
1028
  // realpath(3) — Node's realpathSync (failures spell syscall "lstat",
639
1029
  // Node's own message shape).
640
1030
  realpathSync: { fn: "fs.realpathSync", params: [STRING], result: STRING },
@@ -654,7 +1044,12 @@ export const BUILTIN_MODULE_FNS = {
654
1044
  // overloads lower to separate fixed-width runtime ABIs. As with
655
1045
  // readSync, -1 is the current-offset sentinel.
656
1046
  writeSync: { fn: "fs.writeSync", params: [F64, BYTES_U8, F64, F64, F64], result: F64 },
657
- closeSync: { fn: "fs.closeSync", params: [F64], result: VOID, valueParams: exactValueParams(F64) },
1047
+ closeSync: {
1048
+ fn: "fs.closeSync",
1049
+ params: [F64],
1050
+ result: VOID,
1051
+ valueParams: exactValueParams(F64),
1052
+ },
658
1053
  // Entirely special-cased (lowerFsWatchCall — the callback needs an
659
1054
  // adapter per listener shape); this entry only routes the dispatch.
660
1055
  watch: { fn: "fs.watch", params: [], result: VOID },
@@ -663,37 +1058,96 @@ export const BUILTIN_MODULE_FNS = {
663
1058
  // The sync operations behind already-settled promises: failures
664
1059
  // REJECT (catchable at the await) instead of throwing. readFile is
665
1060
  // utf8-fenced exactly like readFileSync (same special case below).
666
- readFile: { fn: "fsp.readFile", params: [STRING, STRING], result: { kind: "promise", inner: STRING } },
667
- writeFile: { fn: "fsp.writeFile", params: [STRING, STRING], result: { kind: "promise", inner: VOID } },
1061
+ readFile: {
1062
+ fn: "fsp.readFile",
1063
+ params: [STRING, STRING],
1064
+ result: { kind: "promise", inner: STRING },
1065
+ },
1066
+ writeFile: {
1067
+ fn: "fsp.writeFile",
1068
+ params: [STRING, STRING],
1069
+ result: { kind: "promise", inner: VOID },
1070
+ },
668
1071
  mkdir: { fn: "fsp.mkdir", params: [STRING], result: { kind: "promise", inner: VOID } },
669
- readdir: { fn: "fsp.readdir", params: [STRING], result: { kind: "promise", inner: arrayOf(STRING) } },
1072
+ readdir: {
1073
+ fn: "fsp.readdir",
1074
+ params: [STRING],
1075
+ result: { kind: "promise", inner: arrayOf(STRING) },
1076
+ },
670
1077
  rm: { fn: "fsp.rm", params: [STRING], result: { kind: "promise", inner: VOID } },
671
1078
  stat: { fn: "fsp.stat", params: [STRING], result: { kind: "promise", inner: STATS_T } },
672
1079
  realpath: { fn: "fsp.realpath", params: [STRING], result: { kind: "promise", inner: STRING } },
673
1080
  lstat: { fn: "fsp.lstat", params: [STRING], result: { kind: "promise", inner: STATS_T } },
674
- unlink: { fn: "fsp.unlink", params: [STRING], result: { kind: "promise", inner: VOID }, valueParams: exactValueParams(STRING) },
675
- chmod: { fn: "fsp.chmod", params: [STRING, F64], result: { kind: "promise", inner: VOID }, valueParams: exactValueParams(STRING, F64) },
676
- link: { fn: "fsp.link", params: [DYN, DYN], result: { kind: "promise", inner: VOID }, valueParams: exactValueParams(DYN, DYN) },
677
- symlink: { fn: "fsp.symlink", params: [DYN, DYN, DYN], result: { kind: "promise", inner: VOID }, valueParams: [
678
- ...exactValueParams(DYN, DYN), { mode: "optional", type: DYN, defaultValue: undefined },
679
- ] },
680
- readlink: { fn: "fsp.readlink", params: [DYN, DYN], result: { kind: "promise", inner: DYN }, valueParams: [
681
- ...exactValueParams(DYN), { mode: "optional", type: DYN, defaultValue: undefined },
682
- ] },
683
- statfs: { fn: "fsp.statfs", params: [DYN, DYN], result: { kind: "promise", inner: DYN }, valueParams: [
684
- ...exactValueParams(DYN), { mode: "optional", type: DYN, defaultValue: undefined },
685
- ] },
1081
+ unlink: {
1082
+ fn: "fsp.unlink",
1083
+ params: [STRING],
1084
+ result: { kind: "promise", inner: VOID },
1085
+ valueParams: exactValueParams(STRING),
1086
+ },
1087
+ chmod: {
1088
+ fn: "fsp.chmod",
1089
+ params: [STRING, F64],
1090
+ result: { kind: "promise", inner: VOID },
1091
+ valueParams: exactValueParams(STRING, F64),
1092
+ },
1093
+ link: {
1094
+ fn: "fsp.link",
1095
+ params: [DYN, DYN],
1096
+ result: { kind: "promise", inner: VOID },
1097
+ valueParams: exactValueParams(DYN, DYN),
1098
+ },
1099
+ symlink: {
1100
+ fn: "fsp.symlink",
1101
+ params: [DYN, DYN, DYN],
1102
+ result: { kind: "promise", inner: VOID },
1103
+ valueParams: [
1104
+ ...exactValueParams(DYN, DYN),
1105
+ { mode: "optional", type: DYN, defaultValue: undefined },
1106
+ ],
1107
+ },
1108
+ readlink: {
1109
+ fn: "fsp.readlink",
1110
+ params: [DYN, DYN],
1111
+ result: { kind: "promise", inner: DYN },
1112
+ valueParams: [
1113
+ ...exactValueParams(DYN),
1114
+ { mode: "optional", type: DYN, defaultValue: undefined },
1115
+ ],
1116
+ },
1117
+ statfs: {
1118
+ fn: "fsp.statfs",
1119
+ params: [DYN, DYN],
1120
+ result: { kind: "promise", inner: DYN },
1121
+ valueParams: [
1122
+ ...exactValueParams(DYN),
1123
+ { mode: "optional", type: DYN, defaultValue: undefined },
1124
+ ],
1125
+ },
686
1126
  utimes: { fn: "fsp.utimes", params: [DYN, DYN, DYN], result: { kind: "promise", inner: VOID } },
687
- lutimes: { fn: "fsp.lutimes", params: [DYN, DYN, DYN], result: { kind: "promise", inner: VOID } },
688
- rename: { fn: "fsp.rename", params: [STRING, STRING], result: { kind: "promise", inner: VOID }, valueParams: exactValueParams(STRING, STRING) },
1127
+ lutimes: {
1128
+ fn: "fsp.lutimes",
1129
+ params: [DYN, DYN, DYN],
1130
+ result: { kind: "promise", inner: VOID },
1131
+ },
1132
+ rename: {
1133
+ fn: "fsp.rename",
1134
+ params: [STRING, STRING],
1135
+ result: { kind: "promise", inner: VOID },
1136
+ valueParams: exactValueParams(STRING, STRING),
1137
+ },
689
1138
  // open's optional flags/mode completion is special-cased in
690
1139
  // lowerBuiltinModuleCall; this row routes all import spellings and
691
1140
  // gives coverage the static member.
692
- open: { fn: "fsp.open", params: [STRING, STRING, F64], result: { kind: "promise", inner: FILEHANDLE_T }, valueParams: [
1141
+ open: {
1142
+ fn: "fsp.open",
1143
+ params: [STRING, STRING, F64],
1144
+ result: { kind: "promise", inner: FILEHANDLE_T },
1145
+ valueParams: [
693
1146
  { mode: "required", type: STRING },
694
1147
  { mode: "optional", type: STRING, defaultValue: "r" },
695
1148
  { mode: "optional", type: F64, defaultValue: 0o666 },
696
- ] },
1149
+ ],
1150
+ },
697
1151
  },
698
1152
  // The bare module's POSIX-target binding; a win32 target rebinds it to
699
1153
  // the win32 table (builtinModuleFnsOf — Node on Windows IS path.win32).
@@ -733,7 +1187,12 @@ export const BUILTIN_MODULE_FNS = {
733
1187
  // form KEEPS its one-libCall lowering (lowerCryptoComposedCall runs
734
1188
  // first and the Buffer never materializes there); this entry covers
735
1189
  // the bare calls and non-composed uses.
736
- randomBytes: { fn: "crypto.randomBytes", params: [F64], result: BYTES_U8, valueParams: exactValueParams(F64) },
1190
+ randomBytes: {
1191
+ fn: "crypto.randomBytes",
1192
+ params: [F64],
1193
+ result: BYTES_U8,
1194
+ valueParams: exactValueParams(F64),
1195
+ },
737
1196
  // The crypto utility surface is special-cased for overloads and
738
1197
  // string/Buffer splits in lowerCryptoModuleCall. These rows carry the
739
1198
  // canonical signatures for manifest projection and fallback dispatch.
@@ -743,9 +1202,17 @@ export const BUILTIN_MODULE_FNS = {
743
1202
  timingSafeEqual: { fn: "crypto.timingSafeEqual", params: [BYTES_U8, BYTES_U8], result: BOOL },
744
1203
  randomFillSync: { fn: "crypto.randomFill", params: [BYTES_U8, F64, F64], result: BYTES_U8 },
745
1204
  randomInt: { fn: "crypto.randomInt", params: [F64, F64], result: F64 },
746
- pbkdf2Sync: { fn: "crypto.pbkdf2", params: [BYTES_U8, BYTES_U8, F64, F64, STRING], result: BYTES_U8 },
1205
+ pbkdf2Sync: {
1206
+ fn: "crypto.pbkdf2",
1207
+ params: [BYTES_U8, BYTES_U8, F64, F64, STRING],
1208
+ result: BYTES_U8,
1209
+ },
747
1210
  pbkdf2: { fn: "crypto.pbkdf2Cb", params: [], result: VOID },
748
- hkdfSync: { fn: "crypto.hkdf", params: [STRING, BYTES_U8, BYTES_U8, BYTES_U8, F64], result: DYN },
1211
+ hkdfSync: {
1212
+ fn: "crypto.hkdf",
1213
+ params: [STRING, BYTES_U8, BYTES_U8, BYTES_U8, F64],
1214
+ result: DYN,
1215
+ },
749
1216
  hkdf: { fn: "crypto.hkdfCb", params: [], result: VOID },
750
1217
  scryptSync: { fn: "crypto.scrypt", params: [BYTES_U8, BYTES_U8, F64, DYN], result: BYTES_U8 },
751
1218
  scrypt: { fn: "crypto.scryptCb", params: [], result: VOID },
@@ -772,9 +1239,33 @@ export const BUILTIN_MODULE_FNS = {
772
1239
  crc32: { fn: "zlib.crc32", params: [], result: F64 },
773
1240
  },
774
1241
  url: {
775
- fileURLToPath: { fn: "url.fileURLToPathOptions", params: [DYN, DYN], result: STRING, valueParams: [{ mode: "required", type: DYN }, { mode: "optional", type: DYN, defaultValue: undefined }] },
776
- fileURLToPathBuffer: { fn: "url.fileURLToPathBuffer", params: [DYN, DYN], result: BYTES_U8, valueParams: [{ mode: "required", type: DYN }, { mode: "optional", type: DYN, defaultValue: undefined }] },
777
- pathToFileURL: { fn: "url.pathToFileURLChecked", params: [DYN, DYN], result: URL_T, valueParams: [{ mode: "required", type: DYN }, { mode: "optional", type: DYN, defaultValue: undefined }] },
1242
+ fileURLToPath: {
1243
+ fn: "url.fileURLToPathOptions",
1244
+ params: [DYN, DYN],
1245
+ result: STRING,
1246
+ valueParams: [
1247
+ { mode: "required", type: DYN },
1248
+ { mode: "optional", type: DYN, defaultValue: undefined },
1249
+ ],
1250
+ },
1251
+ fileURLToPathBuffer: {
1252
+ fn: "url.fileURLToPathBuffer",
1253
+ params: [DYN, DYN],
1254
+ result: BYTES_U8,
1255
+ valueParams: [
1256
+ { mode: "required", type: DYN },
1257
+ { mode: "optional", type: DYN, defaultValue: undefined },
1258
+ ],
1259
+ },
1260
+ pathToFileURL: {
1261
+ fn: "url.pathToFileURLChecked",
1262
+ params: [DYN, DYN],
1263
+ result: URL_T,
1264
+ valueParams: [
1265
+ { mode: "required", type: DYN },
1266
+ { mode: "optional", type: DYN, defaultValue: undefined },
1267
+ ],
1268
+ },
778
1269
  },
779
1270
  child_process: {
780
1271
  // spawnSync's and spawn's call completions are entirely special-cased
@@ -804,15 +1295,53 @@ export const BUILTIN_MODULE_FNS = {
804
1295
  // the dedicated static member; the spoke owns its optional arity and
805
1296
  // call-site-specific result type before this canonical signature is used.
806
1297
  util: {
807
- styleText: { fn: "util.styleText", params: [DYN, DYN, DYN], result: STRING, valueParams: [{ mode: "required", type: DYN }, { mode: "required", type: DYN }, { mode: "optional", type: DYN, defaultValue: undefined }] },
808
- isDeepStrictEqual: { fn: "util.isDeepStrictEqual", params: [DYN, DYN, DYN], result: BOOL, valueParams: [{ mode: "required", type: DYN }, { mode: "required", type: DYN }, { mode: "optional", type: DYN, defaultValue: undefined }] },
1298
+ styleText: {
1299
+ fn: "util.styleText",
1300
+ params: [DYN, DYN, DYN],
1301
+ result: STRING,
1302
+ valueParams: [
1303
+ { mode: "required", type: DYN },
1304
+ { mode: "required", type: DYN },
1305
+ { mode: "optional", type: DYN, defaultValue: undefined },
1306
+ ],
1307
+ },
1308
+ isDeepStrictEqual: {
1309
+ fn: "util.isDeepStrictEqual",
1310
+ params: [DYN, DYN, DYN],
1311
+ result: BOOL,
1312
+ valueParams: [
1313
+ { mode: "required", type: DYN },
1314
+ { mode: "required", type: DYN },
1315
+ { mode: "optional", type: DYN, defaultValue: undefined },
1316
+ ],
1317
+ },
809
1318
  parseArgs: { fn: "util.parseArgs", params: [DYN], result: DYN },
810
1319
  parseEnv: { fn: "util.parseEnv", params: [DYN], result: DYN },
811
- getSystemErrorName: { fn: "util.getSystemErrorName", params: [DYN], result: STRING, valueParams: exactValueParams(DYN) },
812
- getSystemErrorMessage: { fn: "util.getSystemErrorMessage", params: [DYN], result: STRING, valueParams: exactValueParams(DYN) },
1320
+ getSystemErrorName: {
1321
+ fn: "util.getSystemErrorName",
1322
+ params: [DYN],
1323
+ result: STRING,
1324
+ valueParams: exactValueParams(DYN),
1325
+ },
1326
+ getSystemErrorMessage: {
1327
+ fn: "util.getSystemErrorMessage",
1328
+ params: [DYN],
1329
+ result: STRING,
1330
+ valueParams: exactValueParams(DYN),
1331
+ },
813
1332
  getSystemErrorMap: { fn: "util.systemErrorEntries", params: [], result: DYN },
814
- stripVTControlCharacters: { fn: "util.stripVTControlCharacters", params: [DYN], result: STRING, valueParams: exactValueParams(DYN) },
815
- toUSVString: { fn: "util.toUSVString", params: [DYN], result: STRING, valueParams: exactValueParams(DYN) },
1333
+ stripVTControlCharacters: {
1334
+ fn: "util.stripVTControlCharacters",
1335
+ params: [DYN],
1336
+ result: STRING,
1337
+ valueParams: exactValueParams(DYN),
1338
+ },
1339
+ toUSVString: {
1340
+ fn: "util.toUSVString",
1341
+ params: [DYN],
1342
+ result: STRING,
1343
+ valueParams: exactValueParams(DYN),
1344
+ },
816
1345
  },
817
1346
  // The util/types spoke supplies the probe name to the shared brand check.
818
1347
  "util/types": {
@@ -868,8 +1397,18 @@ export const BUILTIN_MODULE_FNS = {
868
1397
  decode: { fn: "qs.parse", params: [STRING], result: VOID },
869
1398
  stringify: { fn: "qs.stringify", params: [DYN], result: STRING },
870
1399
  encode: { fn: "qs.stringify", params: [DYN], result: STRING },
871
- escape: { fn: "qs.escape", params: [STRING], result: STRING, valueParams: [{ mode: "required", type: STRING }] },
872
- unescape: { fn: "qs.unescape", params: [STRING], result: STRING, valueParams: [{ mode: "required", type: STRING }] },
1400
+ escape: {
1401
+ fn: "qs.escape",
1402
+ params: [STRING],
1403
+ result: STRING,
1404
+ valueParams: [{ mode: "required", type: STRING }],
1405
+ },
1406
+ unescape: {
1407
+ fn: "qs.unescape",
1408
+ params: [STRING],
1409
+ result: STRING,
1410
+ valueParams: [{ mode: "required", type: STRING }],
1411
+ },
873
1412
  },
874
1413
  // node:readline: createInterface's options are entirely special-cased
875
1414
  // (exactly { input: process.stdin, output?: process.stdout } — see
@@ -889,8 +1428,16 @@ export const BUILTIN_MODULE_FNS = {
889
1428
  // The process-wide happy-eyeballs attempt budget: one runtime double
890
1429
  // in the core unit (never links scr_net.c by itself), default 250ms
891
1430
  // like Node's.
892
- getDefaultAutoSelectFamilyAttemptTimeout: { fn: "net.getAutoSelTimeout", params: [], result: F64 },
893
- setDefaultAutoSelectFamilyAttemptTimeout: { fn: "net.setAutoSelTimeout", params: [F64], result: VOID },
1431
+ getDefaultAutoSelectFamilyAttemptTimeout: {
1432
+ fn: "net.getAutoSelTimeout",
1433
+ params: [],
1434
+ result: F64,
1435
+ },
1436
+ setDefaultAutoSelectFamilyAttemptTimeout: {
1437
+ fn: "net.setAutoSelTimeout",
1438
+ params: [F64],
1439
+ result: VOID,
1440
+ },
894
1441
  },
895
1442
  http: {},
896
1443
  // node:tls and node:https ride the same spoke (tls.createServer's
@@ -939,7 +1486,7 @@ export const BUILTIN_MODULE_FNS = {
939
1486
  // handle (type-mapper.ts maps Channel to F64); the subscriber arguments box
940
1487
  // into the checked-dynamic tree (special-cased in lowerBuiltinModuleCall — the entries
941
1488
  // carry canonical shapes and route the dispatch). The Channel method
942
- // surface lowers through lowerDcChannelMethodCall/lowerDcChannelProperty.
1489
+ // surface lowers through lowerDiagnosticsChannelMethodCall/lowerDiagnosticsChannelProperty.
943
1490
  diagnostics_channel: {
944
1491
  channel: { fn: "dc.channel", params: [STRING], result: F64 },
945
1492
  subscribe: { fn: "dc.subscribe", params: [STRING, DYN], result: VOID },
@@ -985,7 +1532,13 @@ export const BUILTIN_MODULE_FN_ALIASES = {
985
1532
  openSync: ["fs.openNumericSync"],
986
1533
  // The Buffer form (no encoding), the fd forms (readFileSync(fd[,
987
1534
  // "utf8"])), and the checked-dynamic encoding form.
988
- readFileSync: ["fs.readFileSyncBuf", "fs.readFileSyncBytes", "fs.readFileSyncDyn", "fs.readFdSync", "fs.readFdSyncBytes"],
1535
+ readFileSync: [
1536
+ "fs.readFileSyncBuf",
1537
+ "fs.readFileSyncBytes",
1538
+ "fs.readFileSyncDyn",
1539
+ "fs.readFdSync",
1540
+ "fs.readFdSyncBytes",
1541
+ ],
989
1542
  readlinkSync: ["fs.readlinkSyncStr", "fs.readlinkSyncBuffer"],
990
1543
  // The bytes-data form and the { mode } options form.
991
1544
  writeFileSync: ["fs.writeFileSyncBytes", "fs.writeFileModeSync"],
@@ -1091,23 +1644,103 @@ export const AMBIENT_SURFACE_FNS = [
1091
1644
  fns: ["date.toISOString", "date.toISOStringValue"],
1092
1645
  note: "UTC ISO formatting over constructed and stored Date values",
1093
1646
  },
1094
- { id: "stdlib.date.getFullYear", kind: "stdlib", name: "Date.prototype.getFullYear", fns: ["date.getFullYear"] },
1095
- { id: "stdlib.date.getUTCFullYear", kind: "stdlib", name: "Date.prototype.getUTCFullYear", fns: ["date.getUTCFullYear"] },
1096
- { id: "stdlib.date.getMonth", kind: "stdlib", name: "Date.prototype.getMonth", fns: ["date.getMonth"] },
1097
- { id: "stdlib.date.getUTCMonth", kind: "stdlib", name: "Date.prototype.getUTCMonth", fns: ["date.getUTCMonth"] },
1098
- { id: "stdlib.date.getDate", kind: "stdlib", name: "Date.prototype.getDate", fns: ["date.getDate"] },
1099
- { id: "stdlib.date.getUTCDate", kind: "stdlib", name: "Date.prototype.getUTCDate", fns: ["date.getUTCDate"] },
1647
+ {
1648
+ id: "stdlib.date.getFullYear",
1649
+ kind: "stdlib",
1650
+ name: "Date.prototype.getFullYear",
1651
+ fns: ["date.getFullYear"],
1652
+ },
1653
+ {
1654
+ id: "stdlib.date.getUTCFullYear",
1655
+ kind: "stdlib",
1656
+ name: "Date.prototype.getUTCFullYear",
1657
+ fns: ["date.getUTCFullYear"],
1658
+ },
1659
+ {
1660
+ id: "stdlib.date.getMonth",
1661
+ kind: "stdlib",
1662
+ name: "Date.prototype.getMonth",
1663
+ fns: ["date.getMonth"],
1664
+ },
1665
+ {
1666
+ id: "stdlib.date.getUTCMonth",
1667
+ kind: "stdlib",
1668
+ name: "Date.prototype.getUTCMonth",
1669
+ fns: ["date.getUTCMonth"],
1670
+ },
1671
+ {
1672
+ id: "stdlib.date.getDate",
1673
+ kind: "stdlib",
1674
+ name: "Date.prototype.getDate",
1675
+ fns: ["date.getDate"],
1676
+ },
1677
+ {
1678
+ id: "stdlib.date.getUTCDate",
1679
+ kind: "stdlib",
1680
+ name: "Date.prototype.getUTCDate",
1681
+ fns: ["date.getUTCDate"],
1682
+ },
1100
1683
  { id: "stdlib.date.getDay", kind: "stdlib", name: "Date.prototype.getDay", fns: ["date.getDay"] },
1101
- { id: "stdlib.date.getUTCDay", kind: "stdlib", name: "Date.prototype.getUTCDay", fns: ["date.getUTCDay"] },
1102
- { id: "stdlib.date.getHours", kind: "stdlib", name: "Date.prototype.getHours", fns: ["date.getHours"] },
1103
- { id: "stdlib.date.getUTCHours", kind: "stdlib", name: "Date.prototype.getUTCHours", fns: ["date.getUTCHours"] },
1104
- { id: "stdlib.date.getMinutes", kind: "stdlib", name: "Date.prototype.getMinutes", fns: ["date.getMinutes"] },
1105
- { id: "stdlib.date.getUTCMinutes", kind: "stdlib", name: "Date.prototype.getUTCMinutes", fns: ["date.getUTCMinutes"] },
1106
- { id: "stdlib.date.getSeconds", kind: "stdlib", name: "Date.prototype.getSeconds", fns: ["date.getSeconds"] },
1107
- { id: "stdlib.date.getUTCSeconds", kind: "stdlib", name: "Date.prototype.getUTCSeconds", fns: ["date.getUTCSeconds"] },
1108
- { id: "stdlib.date.getMilliseconds", kind: "stdlib", name: "Date.prototype.getMilliseconds", fns: ["date.getMilliseconds"] },
1109
- { id: "stdlib.date.getUTCMilliseconds", kind: "stdlib", name: "Date.prototype.getUTCMilliseconds", fns: ["date.getUTCMilliseconds"] },
1110
- { id: "stdlib.date.getTimezoneOffset", kind: "stdlib", name: "Date.prototype.getTimezoneOffset", fns: ["date.getTimezoneOffset"] },
1684
+ {
1685
+ id: "stdlib.date.getUTCDay",
1686
+ kind: "stdlib",
1687
+ name: "Date.prototype.getUTCDay",
1688
+ fns: ["date.getUTCDay"],
1689
+ },
1690
+ {
1691
+ id: "stdlib.date.getHours",
1692
+ kind: "stdlib",
1693
+ name: "Date.prototype.getHours",
1694
+ fns: ["date.getHours"],
1695
+ },
1696
+ {
1697
+ id: "stdlib.date.getUTCHours",
1698
+ kind: "stdlib",
1699
+ name: "Date.prototype.getUTCHours",
1700
+ fns: ["date.getUTCHours"],
1701
+ },
1702
+ {
1703
+ id: "stdlib.date.getMinutes",
1704
+ kind: "stdlib",
1705
+ name: "Date.prototype.getMinutes",
1706
+ fns: ["date.getMinutes"],
1707
+ },
1708
+ {
1709
+ id: "stdlib.date.getUTCMinutes",
1710
+ kind: "stdlib",
1711
+ name: "Date.prototype.getUTCMinutes",
1712
+ fns: ["date.getUTCMinutes"],
1713
+ },
1714
+ {
1715
+ id: "stdlib.date.getSeconds",
1716
+ kind: "stdlib",
1717
+ name: "Date.prototype.getSeconds",
1718
+ fns: ["date.getSeconds"],
1719
+ },
1720
+ {
1721
+ id: "stdlib.date.getUTCSeconds",
1722
+ kind: "stdlib",
1723
+ name: "Date.prototype.getUTCSeconds",
1724
+ fns: ["date.getUTCSeconds"],
1725
+ },
1726
+ {
1727
+ id: "stdlib.date.getMilliseconds",
1728
+ kind: "stdlib",
1729
+ name: "Date.prototype.getMilliseconds",
1730
+ fns: ["date.getMilliseconds"],
1731
+ },
1732
+ {
1733
+ id: "stdlib.date.getUTCMilliseconds",
1734
+ kind: "stdlib",
1735
+ name: "Date.prototype.getUTCMilliseconds",
1736
+ fns: ["date.getUTCMilliseconds"],
1737
+ },
1738
+ {
1739
+ id: "stdlib.date.getTimezoneOffset",
1740
+ kind: "stdlib",
1741
+ name: "Date.prototype.getTimezoneOffset",
1742
+ fns: ["date.getTimezoneOffset"],
1743
+ },
1111
1744
  // ── perf_hooks (lowerPerfHooksCall): the monotonic clock.
1112
1745
  {
1113
1746
  id: "node-builtin.perf_hooks.performance.now",
@@ -1126,25 +1759,75 @@ export const AMBIENT_SURFACE_FNS = [
1126
1759
  fns: ["process.envGet", "process.envSet", "process.envUnset", "process.envPairs"],
1127
1760
  note: "reads, writes, deletes, and enumeration of the process environment (the process global)",
1128
1761
  },
1129
- { id: "node-builtin.process.argv", kind: "node-builtin", name: "process.argv", fns: ["process.argv"] },
1130
- { id: "node-builtin.process.hrtime", kind: "node-builtin", name: "process.hrtime", fns: ["process.hrtimeValue"], note: "native monotonic tuple clock and bigint member; direct calls and stored JavaScript callable values" },
1131
1762
  {
1132
- id: "node-builtin.process.getBuiltinModule", kind: "node-builtin", name: "process.getBuiltinModule",
1763
+ id: "node-builtin.process.argv",
1764
+ kind: "node-builtin",
1765
+ name: "process.argv",
1766
+ fns: ["process.argv"],
1767
+ },
1768
+ {
1769
+ id: "node-builtin.process.hrtime",
1770
+ kind: "node-builtin",
1771
+ name: "process.hrtime",
1772
+ fns: ["process.hrtimeValue"],
1773
+ note: "native monotonic tuple clock and bigint member; direct calls and stored JavaScript callable values",
1774
+ },
1775
+ {
1776
+ id: "node-builtin.process.getBuiltinModule",
1777
+ kind: "node-builtin",
1778
+ name: "process.getBuiltinModule",
1133
1779
  fns: ["process.builtinId", "process.builtinModule", "process.builtinUnsupported"],
1134
1780
  note: "native path and os export subsets plus main-thread worker_threads metadata; other modules and exports throw SC2020",
1135
1781
  },
1136
1782
  {
1137
- id: "node-builtin.process.versions", kind: "node-builtin", name: "process.versions",
1783
+ id: "node-builtin.process.versions",
1784
+ kind: "node-builtin",
1785
+ name: "process.versions",
1138
1786
  fns: ["process.versions"],
1139
1787
  note: "shared version dictionary containing node and openssl; other components are absent unless defined by the program",
1140
1788
  },
1141
- { id: "node-builtin.process.cwd", kind: "node-builtin", name: "process.cwd", fns: ["process.cwd"] },
1142
- { id: "node-builtin.process.chdir", kind: "node-builtin", name: "process.chdir", fns: ["process.chdir"] },
1143
- { id: "node-builtin.process.pid", kind: "node-builtin", name: "process.pid", fns: ["process.pid"] },
1144
- { id: "node-builtin.process.getuid", kind: "node-builtin", name: "process.getuid", fns: ["process.getuid"] },
1145
- { id: "node-builtin.process.getgid", kind: "node-builtin", name: "process.getgid", fns: ["process.getgid"] },
1146
- { id: "node-builtin.process.execPath", kind: "node-builtin", name: "process.execPath", fns: ["process.execPath"] },
1147
- { id: "node-builtin.process.uptime", kind: "node-builtin", name: "process.uptime", fns: ["process.uptime"] },
1789
+ {
1790
+ id: "node-builtin.process.cwd",
1791
+ kind: "node-builtin",
1792
+ name: "process.cwd",
1793
+ fns: ["process.cwd"],
1794
+ },
1795
+ {
1796
+ id: "node-builtin.process.chdir",
1797
+ kind: "node-builtin",
1798
+ name: "process.chdir",
1799
+ fns: ["process.chdir"],
1800
+ },
1801
+ {
1802
+ id: "node-builtin.process.pid",
1803
+ kind: "node-builtin",
1804
+ name: "process.pid",
1805
+ fns: ["process.pid"],
1806
+ },
1807
+ {
1808
+ id: "node-builtin.process.getuid",
1809
+ kind: "node-builtin",
1810
+ name: "process.getuid",
1811
+ fns: ["process.getuid"],
1812
+ },
1813
+ {
1814
+ id: "node-builtin.process.getgid",
1815
+ kind: "node-builtin",
1816
+ name: "process.getgid",
1817
+ fns: ["process.getgid"],
1818
+ },
1819
+ {
1820
+ id: "node-builtin.process.execPath",
1821
+ kind: "node-builtin",
1822
+ name: "process.execPath",
1823
+ fns: ["process.execPath"],
1824
+ },
1825
+ {
1826
+ id: "node-builtin.process.uptime",
1827
+ kind: "node-builtin",
1828
+ name: "process.uptime",
1829
+ fns: ["process.uptime"],
1830
+ },
1148
1831
  {
1149
1832
  id: "node-builtin.process.availableMemory",
1150
1833
  kind: "node-builtin",
@@ -1168,14 +1851,25 @@ export const AMBIENT_SURFACE_FNS = [
1168
1851
  id: "node-builtin.process.cpuUsage",
1169
1852
  kind: "node-builtin",
1170
1853
  name: "process.cpuUsage",
1171
- fns: ["process.cpuUser", "process.cpuSystem", "process.cpuUserDiff", "process.cpuSystemDiff", "process.cpuPrevValidate"],
1854
+ fns: [
1855
+ "process.cpuUser",
1856
+ "process.cpuSystem",
1857
+ "process.cpuUserDiff",
1858
+ "process.cpuSystemDiff",
1859
+ "process.cpuPrevValidate",
1860
+ ],
1172
1861
  note: "the plain-sample and previous-value diff forms are one surface",
1173
1862
  },
1174
1863
  {
1175
1864
  id: "node-builtin.process.threadCpuUsage",
1176
1865
  kind: "node-builtin",
1177
1866
  name: "process.threadCpuUsage",
1178
- fns: ["process.threadCpuUser", "process.threadCpuSystem", "process.threadCpuUserDiff", "process.threadCpuSystemDiff"],
1867
+ fns: [
1868
+ "process.threadCpuUser",
1869
+ "process.threadCpuSystem",
1870
+ "process.threadCpuUserDiff",
1871
+ "process.threadCpuSystemDiff",
1872
+ ],
1179
1873
  note: "the plain-sample and previous-value diff forms are one surface",
1180
1874
  },
1181
1875
  {
@@ -1206,7 +1900,12 @@ export const AMBIENT_SURFACE_FNS = [
1206
1900
  fns: ["process.kill", "process.killNum"],
1207
1901
  note: "the signal-name and signal-number forms are one surface",
1208
1902
  },
1209
- { id: "node-builtin.process.umask", kind: "node-builtin", name: "process.umask", fns: ["process.umask"] },
1903
+ {
1904
+ id: "node-builtin.process.umask",
1905
+ kind: "node-builtin",
1906
+ name: "process.umask",
1907
+ fns: ["process.umask"],
1908
+ },
1210
1909
  {
1211
1910
  id: "node-builtin.process.exit",
1212
1911
  kind: "node-builtin",
@@ -1287,9 +1986,44 @@ export function builtinModuleFnOf(lowerer, module, member) {
1287
1986
  }
1288
1987
  /** Native error-first function values used by platform service adapters. */
1289
1988
  export const FS_CALLBACK_MEMBERS = new Set([
1290
- "access", "cp", "copyFile", "chmod", "chown", "glob", "link", "mkdir", "mkdtemp", "rm", "rmdir", "unlink",
1291
- "open", "close", "fstat", "ftruncate", "fsync", "fdatasync", "fchmod", "read", "write", "readv", "writev", "readlink", "realpath", "rename", "stat", "lstat",
1292
- "symlink", "statfs", "truncate", "utimes", "futimes", "lutimes", "readFile", "writeFile", "appendFile", "readdir",
1989
+ "access",
1990
+ "cp",
1991
+ "copyFile",
1992
+ "chmod",
1993
+ "chown",
1994
+ "glob",
1995
+ "link",
1996
+ "mkdir",
1997
+ "mkdtemp",
1998
+ "rm",
1999
+ "rmdir",
2000
+ "unlink",
2001
+ "open",
2002
+ "close",
2003
+ "fstat",
2004
+ "ftruncate",
2005
+ "fsync",
2006
+ "fdatasync",
2007
+ "fchmod",
2008
+ "read",
2009
+ "write",
2010
+ "readv",
2011
+ "writev",
2012
+ "readlink",
2013
+ "realpath",
2014
+ "rename",
2015
+ "stat",
2016
+ "lstat",
2017
+ "symlink",
2018
+ "statfs",
2019
+ "truncate",
2020
+ "utimes",
2021
+ "futimes",
2022
+ "lutimes",
2023
+ "readFile",
2024
+ "writeFile",
2025
+ "appendFile",
2026
+ "readdir",
1293
2027
  ]);
1294
2028
  /** One member's fence hint, own-property-safe (a collision would print an
1295
2029
  * inherited function into the diagnostic text). */
@@ -1327,20 +2061,78 @@ export function builtinConstLit(value, loc) {
1327
2061
  * array — a divergence only mutation could observe, and mutating Node's
1328
2062
  * frozen array throws anyway. */
1329
2063
  export const NODE_BUILTIN_MODULES_V24 = [
1330
- "_http_agent", "_http_client", "_http_common", "_http_incoming",
1331
- "_http_outgoing", "_http_server", "_stream_duplex", "_stream_passthrough",
1332
- "_stream_readable", "_stream_transform", "_stream_wrap", "_stream_writable",
1333
- "_tls_common", "_tls_wrap", "assert", "assert/strict", "async_hooks",
1334
- "buffer", "child_process", "cluster", "console", "constants", "crypto",
1335
- "dgram", "diagnostics_channel", "dns", "dns/promises", "domain", "events",
1336
- "fs", "fs/promises", "http", "http2", "https", "inspector",
1337
- "inspector/promises", "module", "net", "os", "path", "path/posix",
1338
- "path/win32", "perf_hooks", "process", "punycode", "querystring",
1339
- "readline", "readline/promises", "repl", "stream", "stream/consumers",
1340
- "stream/promises", "stream/web", "string_decoder", "sys", "timers",
1341
- "timers/promises", "tls", "trace_events", "tty", "url", "util",
1342
- "util/types", "v8", "vm", "wasi", "worker_threads", "zlib",
1343
- "node:sea", "node:sqlite", "node:test", "node:test/reporters",
2064
+ "_http_agent",
2065
+ "_http_client",
2066
+ "_http_common",
2067
+ "_http_incoming",
2068
+ "_http_outgoing",
2069
+ "_http_server",
2070
+ "_stream_duplex",
2071
+ "_stream_passthrough",
2072
+ "_stream_readable",
2073
+ "_stream_transform",
2074
+ "_stream_wrap",
2075
+ "_stream_writable",
2076
+ "_tls_common",
2077
+ "_tls_wrap",
2078
+ "assert",
2079
+ "assert/strict",
2080
+ "async_hooks",
2081
+ "buffer",
2082
+ "child_process",
2083
+ "cluster",
2084
+ "console",
2085
+ "constants",
2086
+ "crypto",
2087
+ "dgram",
2088
+ "diagnostics_channel",
2089
+ "dns",
2090
+ "dns/promises",
2091
+ "domain",
2092
+ "events",
2093
+ "fs",
2094
+ "fs/promises",
2095
+ "http",
2096
+ "http2",
2097
+ "https",
2098
+ "inspector",
2099
+ "inspector/promises",
2100
+ "module",
2101
+ "net",
2102
+ "os",
2103
+ "path",
2104
+ "path/posix",
2105
+ "path/win32",
2106
+ "perf_hooks",
2107
+ "process",
2108
+ "punycode",
2109
+ "querystring",
2110
+ "readline",
2111
+ "readline/promises",
2112
+ "repl",
2113
+ "stream",
2114
+ "stream/consumers",
2115
+ "stream/promises",
2116
+ "stream/web",
2117
+ "string_decoder",
2118
+ "sys",
2119
+ "timers",
2120
+ "timers/promises",
2121
+ "tls",
2122
+ "trace_events",
2123
+ "tty",
2124
+ "url",
2125
+ "util",
2126
+ "util/types",
2127
+ "v8",
2128
+ "vm",
2129
+ "wasi",
2130
+ "worker_threads",
2131
+ "zlib",
2132
+ "node:sea",
2133
+ "node:sqlite",
2134
+ "node:test",
2135
+ "node:test/reporters",
1344
2136
  ];
1345
2137
  /** The array-literal read of module.builtinModules — both value paths
1346
2138
  * (the named-import binding and the namespace member read) mint the
@@ -1348,7 +2140,12 @@ export const NODE_BUILTIN_MODULES_V24 = [
1348
2140
  export function builtinModulesArrayLit(loc) {
1349
2141
  return {
1350
2142
  kind: "arrayLit",
1351
- elems: NODE_BUILTIN_MODULES_V24.map((m) => ({ kind: "strLit", value: m, type: STRING, loc })),
2143
+ elems: NODE_BUILTIN_MODULES_V24.map((m) => ({
2144
+ kind: "strLit",
2145
+ value: m,
2146
+ type: STRING,
2147
+ loc,
2148
+ })),
1352
2149
  type: arrayOf(STRING),
1353
2150
  loc,
1354
2151
  };
@@ -1367,7 +2164,7 @@ const ASSERT_MODULE_HINTS = {
1367
2164
  ifError: "test explicitly instead: assert.strictEqual(err, null) / " +
1368
2165
  "assert.strictEqual(err, undefined)",
1369
2166
  rejects: "await the promise inside assert.throws's callback story instead: " +
1370
- "try { await p; assert.fail(\"expected rejection\") } catch { ... }",
2167
+ 'try { await p; assert.fail("expected rejection") } catch { ... }',
1371
2168
  doesNotReject: "await the promise directly — an unexpected rejection already fails the test",
1372
2169
  AssertionError: "the class itself has no lowering — catch and test err.name === " +
1373
2170
  '"AssertionError" or err.code === "ERR_ASSERTION"',
@@ -1409,12 +2206,26 @@ export const BUILTIN_MODULE_FENCE_HINTS = {
1409
2206
  },
1410
2207
  crypto: {
1411
2208
  ...Object.fromEntries([
1412
- "generateKeyPair", "generateKeyPairSync", "generateKey", "generateKeySync",
1413
- "createPrivateKey", "createPublicKey", "createSecretKey",
1414
- "createSign", "createVerify", "sign", "verify",
1415
- "createDiffieHellman", "createDiffieHellmanGroup", "getDiffieHellman",
1416
- "createECDH", "diffieHellman",
1417
- "publicEncrypt", "publicDecrypt", "privateEncrypt", "privateDecrypt",
2209
+ "generateKeyPair",
2210
+ "generateKeyPairSync",
2211
+ "generateKey",
2212
+ "generateKeySync",
2213
+ "createPrivateKey",
2214
+ "createPublicKey",
2215
+ "createSecretKey",
2216
+ "createSign",
2217
+ "createVerify",
2218
+ "sign",
2219
+ "verify",
2220
+ "createDiffieHellman",
2221
+ "createDiffieHellmanGroup",
2222
+ "getDiffieHellman",
2223
+ "createECDH",
2224
+ "diffieHellman",
2225
+ "publicEncrypt",
2226
+ "publicDecrypt",
2227
+ "privateEncrypt",
2228
+ "privateDecrypt",
1418
2229
  ].map((m) => [
1419
2230
  m,
1420
2231
  "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a " +
@@ -1451,12 +2262,12 @@ export const BUILTIN_MODULE_FENCE_HINTS = {
1451
2262
  },
1452
2263
  };
1453
2264
  /** The MEMBER chokepoint of the lib fence: called from the property-read
1454
- * and method-call fallbacks after every lowering has passed. When the
1455
- * accessed member is stdlib-declared, the use is standard-library surface
1456
- * with no lowering — report SC2020 naming `<container>.<member>` (the
1457
- * receiver's global name when it IS a stdlib global like Math or Promise,
1458
- * its widened type text otherwise). Returns silently for non-stdlib
1459
- * members so the caller's generic rejection applies. */
2265
+ * and method-call fallbacks after every lowering has passed. When the
2266
+ * accessed member is stdlib-declared, the use is standard-library surface
2267
+ * with no lowering — report SC2020 naming `<container>.<member>` (the
2268
+ * receiver's global name when it IS a stdlib global like Math or Promise,
2269
+ * its widened type text otherwise). Returns silently for non-stdlib
2270
+ * members so the caller's generic rejection applies. */
1460
2271
  export function stdlibMemberFence(lowerer, access) {
1461
2272
  const sym = lowerer.checker.getSymbolAtLocation(access.name);
1462
2273
  if (!sym || !lowerer.isStdlibSymbol(sym))
@@ -1490,13 +2301,15 @@ export function stdlibMemberFence(lowerer, access) {
1490
2301
  lowerer.checker.typeToString(lowerer.checker.getBaseTypeOfLiteralType(lowerer.typeOf(recv)));
1491
2302
  let hint;
1492
2303
  const recvIr = lowerer.mapTypeOf(lowerer.typeOf(recv));
1493
- if (recvIr?.kind === "promise" && (member === "then" || member === "catch" || member === "finally")) {
2304
+ if (recvIr?.kind === "promise" &&
2305
+ (member === "then" || member === "catch" || member === "finally")) {
1494
2306
  hint =
1495
2307
  "'await' is the supported way to chain (p.then(f) with one fulfillment handler, p.catch " +
1496
2308
  "with an INLINE handler, and p.finally(cb) compile) — try { await p } catch (e) is the general form";
1497
2309
  }
1498
2310
  else if (recvIr?.kind === "f64" && member === "toString") {
1499
- hint = "radix-free conversion is a template literal away: `${x}`; toString(radix) runs under --dynamic";
2311
+ hint =
2312
+ "radix-free conversion is a template literal away: `${x}`; toString(radix) runs under --dynamic";
1500
2313
  }
1501
2314
  else if (container === "Math" && (member === "min" || member === "max")) {
1502
2315
  hint =
@@ -1581,11 +2394,24 @@ export function stdlibMemberFence(lowerer, access) {
1581
2394
  "no shared-memory threads exist in a compiled program — Uint8Array is the byte storage " +
1582
2395
  "(a fixed-length allocation: grow has nothing to share it with)";
1583
2396
  }
1584
- else if (container === "Intl" || container.startsWith("Intl.") ||
1585
- ["NumberFormat", "DateTimeFormat", "DurationFormat", "PluralRules", "Collator", "Locale",
1586
- "RelativeTimeFormat", "ListFormat", "Segmenter", "DisplayNames"].includes(container) ||
1587
- member === "toLocaleString" || member === "toLocaleDateString" ||
1588
- member === "toLocaleTimeString" || member === "toLocaleLowerCase" ||
2397
+ else if (container === "Intl" ||
2398
+ container.startsWith("Intl.") ||
2399
+ [
2400
+ "NumberFormat",
2401
+ "DateTimeFormat",
2402
+ "DurationFormat",
2403
+ "PluralRules",
2404
+ "Collator",
2405
+ "Locale",
2406
+ "RelativeTimeFormat",
2407
+ "ListFormat",
2408
+ "Segmenter",
2409
+ "DisplayNames",
2410
+ ].includes(container) ||
2411
+ member === "toLocaleString" ||
2412
+ member === "toLocaleDateString" ||
2413
+ member === "toLocaleTimeString" ||
2414
+ member === "toLocaleLowerCase" ||
1589
2415
  member === "toLocaleUpperCase") {
1590
2416
  hint =
1591
2417
  "locale- and ICU-backed behavior lives outside the static runtime (the localeCompare " +
@@ -1605,7 +2431,7 @@ export function stdlibMemberFence(lowerer, access) {
1605
2431
  lowerer.noLowering(`${container}.${member}`, access, hint, sym);
1606
2432
  }
1607
2433
  /** True iff the accessed member is declared by the standard library —
1608
- * the same technique as isConsoleLog: trust declarations, not names. */
2434
+ * the same technique as isConsoleLog: trust declarations, not names. */
1609
2435
  export function isStdlibMember(lowerer, access) {
1610
2436
  const direct = lowerer.checker.getSymbolAtLocation(access.name);
1611
2437
  if (direct)
@@ -1624,11 +2450,11 @@ export function isStdlibMember(lowerer, access) {
1624
2450
  return false;
1625
2451
  }
1626
2452
  /** The provenance check the CHILD receiver lowerings use: a stdlib
1627
- * member, OR a member the user's own child-shaped interface declares
1628
- * (the NgrokChildProcess idiom — mapType's duck rule admits an
1629
- * interface only when EVERY member names the lowered ChildProcess
1630
- * surface, so accepting its members here cannot widen the surface;
1631
- * the receiver-kind gate already proved the type maps to child). */
2453
+ * member, OR a member the user's own child-shaped interface declares
2454
+ * (the NgrokChildProcess idiom — mapType's duck rule admits an
2455
+ * interface only when EVERY member names the lowered ChildProcess
2456
+ * surface, so accepting its members here cannot widen the surface;
2457
+ * the receiver-kind gate already proved the type maps to child). */
1632
2458
  export function isChildSurfaceMember(lowerer, access) {
1633
2459
  if (isStdlibMember(lowerer, access))
1634
2460
  return true;
@@ -1642,12 +2468,13 @@ export function isChildSurfaceMember(lowerer, access) {
1642
2468
  return lowerer.mapTypeOf(lowerer.checker.getTypeAtLocation(iface.name))?.kind === "child";
1643
2469
  }
1644
2470
  /** True iff some declaration of the symbol lives in the standard library
1645
- * (shipped ambient or default lib — the provenance half of every
1646
- * supported-surface check). `some`, not `[0]`: divergence overrides merge
1647
- * with lib interfaces, so a member can carry declarations from both. A
1648
- * user's own declaration is in neither, so shadowing never matches. */
2471
+ * (shipped ambient or default lib — the provenance half of every
2472
+ * supported-surface check). `some`, not `[0]`: divergence overrides merge
2473
+ * with lib interfaces, so a member can carry declarations from both. A
2474
+ * user's own declaration is in neither, so shadowing never matches. */
1649
2475
  export function isStdlibSymbol(lowerer, symbol) {
1650
- return !!symbol && lowerer.checker.declarationsOf(symbol).some((d) => lowerer.isStdlibFile(d.getSourceFile()));
2476
+ return (!!symbol &&
2477
+ lowerer.checker.declarationsOf(symbol).some((d) => lowerer.isStdlibFile(d.getSourceFile())));
1651
2478
  }
1652
2479
  /** The canonical stdlib-global name `expr` denotes, or null. Three
1653
2480
  * spellings reach the same global (Node's own aliasing):
@@ -1655,12 +2482,12 @@ export function isStdlibSymbol(lowerer, symbol) {
1655
2482
  * - the default import from `process`/`node:process`, whose value is
1656
2483
  * exactly the global process object;
1657
2484
  * - the `global` identifier — Node's alias of globalThis — and
1658
- * `globalThis` itself both canonicalize to "globalThis";
1659
- * - a property read off globalThis (`globalThis.process`,
1660
- * `global.process`) — `declare var` globals ARE properties of
1661
- * `typeof globalThis`, same symbol either way;
1662
- * - a local alias binding (`const process = globalThis.process`, the
1663
- * tamper-guard prologue) registered in stdlibGlobalAliases. */
2485
+ * `globalThis` itself both canonicalize to "globalThis";
2486
+ * - a property read off globalThis (`globalThis.process`,
2487
+ * `global.process`) — `declare var` globals ARE properties of
2488
+ * `typeof globalThis`, same symbol either way;
2489
+ * - a local alias binding (`const process = globalThis.process`, the
2490
+ * tamper-guard prologue) registered in stdlibGlobalAliases. */
1664
2491
  export function stdlibGlobalNameOf(lowerer, expr) {
1665
2492
  if (ts.isParenthesizedExpression(expr))
1666
2493
  return stdlibGlobalNameOf(lowerer, expr.expression);
@@ -1669,7 +2496,10 @@ export function stdlibGlobalNameOf(lowerer, expr) {
1669
2496
  // `globalThis` itself: a reserved intrinsic — tsc rejects user
1670
2497
  // global bindings, but local parameters can shadow it. Its special
1671
2498
  // symbol has no ordinary declarations for the provenance check.
1672
- if (expr.text === "globalThis" && (!symbol || lowerer.checker.declarationsOf(symbol).length === 0 || lowerer.isStdlibSymbol(symbol)))
2499
+ if (expr.text === "globalThis" &&
2500
+ (!symbol ||
2501
+ lowerer.checker.declarationsOf(symbol).length === 0 ||
2502
+ lowerer.isStdlibSymbol(symbol)))
1673
2503
  return "globalThis";
1674
2504
  if (!symbol)
1675
2505
  return null;
@@ -1707,32 +2537,32 @@ export function stdlibGlobalNameOf(lowerer, expr) {
1707
2537
  return null;
1708
2538
  }
1709
2539
  /** True iff `expr` denotes THE standard-library global `name` — name AND
1710
- * provenance, because neither alone suffices: several globals share
1711
- * member names (Math.log must never lower as console.log), and a user
1712
- * binding shadowing a global's name has a different, non-stdlib symbol.
1713
- * All of stdlibGlobalNameOf's spellings answer (globalThis.process is
1714
- * process; `const process = globalThis.process` aliases through). */
2540
+ * provenance, because neither alone suffices: several globals share
2541
+ * member names (Math.log must never lower as console.log), and a user
2542
+ * binding shadowing a global's name has a different, non-stdlib symbol.
2543
+ * All of stdlibGlobalNameOf's spellings answer (globalThis.process is
2544
+ * process; `const process = globalThis.process` aliases through). */
1715
2545
  export function isStdlibGlobal(lowerer, expr, name) {
1716
2546
  return stdlibGlobalNameOf(lowerer, expr) === name;
1717
2547
  }
1718
2548
  /** The member name of a `<global>.<member>` access whose receiver is THE
1719
- * standard-library global `name` (console, JSON, process, Math). Null for
1720
- * anything else, so property-lowering chains keep trying other
1721
- * receivers. */
2549
+ * standard-library global `name` (console, JSON, process, Math). Null for
2550
+ * anything else, so property-lowering chains keep trying other
2551
+ * receivers. */
1722
2552
  export function stdlibGlobalMember(lowerer, access, name) {
1723
2553
  if (lowerer.chainBlocked(access))
1724
2554
  return null;
1725
2555
  return lowerer.isStdlibGlobal(access.expression, name) ? access.name.text : null;
1726
2556
  }
1727
2557
  /** `const process = globalThis.process` (and any `const x = <stdlib
1728
- * global>` snapshot — the suite harness's tamper-guard prologue): the
1729
- * binding is pure alias plumbing. Nothing in a compiled program can
1730
- * reassign a stdlib global, so the snapshot IS the global: the symbol
1731
- * registers in stdlibGlobalAliases (every receiver check resolves
1732
- * through it — see stdlibGlobalNameOf) and the declaration emits
1733
- * nothing. Only the globals with lowered member surfaces alias this
1734
- * way; aliasing, say, `Math` would change nothing (its members lower
1735
- * by receiver too). Returns true when recognized. */
2558
+ * global>` snapshot — the suite harness's tamper-guard prologue): the
2559
+ * binding is pure alias plumbing. Nothing in a compiled program can
2560
+ * reassign a stdlib global, so the snapshot IS the global: the symbol
2561
+ * registers in stdlibGlobalAliases (every receiver check resolves
2562
+ * through it — see stdlibGlobalNameOf) and the declaration emits
2563
+ * nothing. Only the globals with lowered member surfaces alias this
2564
+ * way; aliasing, say, `Math` would change nothing (its members lower
2565
+ * by receiver too). Returns true when recognized. */
1736
2566
  export function stdlibGlobalAliasNameOf(lowerer, init) {
1737
2567
  if (!init)
1738
2568
  return null;
@@ -1770,15 +2600,29 @@ export function stdlibGlobalAliasNameOf(lowerer, init) {
1770
2600
  let directInit = init;
1771
2601
  while (ts.isParenthesizedExpression(directInit))
1772
2602
  directInit = directInit.expression;
1773
- if (name === "globalThis" && lowerer.dynamic && !isJsSourceFile(init.getSourceFile()) &&
1774
- ts.isIdentifier(directInit) && directInit.text === "globalThis" &&
2603
+ if (name === "globalThis" &&
2604
+ lowerer.dynamic &&
2605
+ !isJsSourceFile(init.getSourceFile()) &&
2606
+ ts.isIdentifier(directInit) &&
2607
+ directInit.text === "globalThis" &&
1775
2608
  ts.isVariableDeclaration(init.parent) &&
1776
2609
  (lowerer.typeOf(init.parent.name).flags & ts.TypeFlags.Any) !== 0)
1777
2610
  return null;
1778
2611
  // These globals have provenance-aware call or member lowering, so a
1779
2612
  // stable snapshot keeps the same dispatch as the original global.
1780
2613
  // Other callable globals still use their ordinary value paths.
1781
- return ["process", "console", "globalThis", "performance", "Array", "Buffer", "BigInt", "Number", "String", "Boolean"].includes(name)
2614
+ return [
2615
+ "process",
2616
+ "console",
2617
+ "globalThis",
2618
+ "performance",
2619
+ "Array",
2620
+ "Buffer",
2621
+ "BigInt",
2622
+ "Number",
2623
+ "String",
2624
+ "Boolean",
2625
+ ].includes(name)
1782
2626
  ? name
1783
2627
  : null;
1784
2628
  }
@@ -1790,7 +2634,8 @@ export function stdlibGlobalAliasDecl(lowerer, nameNode, init) {
1790
2634
  return false;
1791
2635
  // Mutable global-object bindings keep real storage, even when never
1792
2636
  // reassigned: var can be observed before initialization and let has TDZ.
1793
- if (name === "globalThis" && ts.isVariableDeclaration(nameNode.parent) &&
2637
+ if (name === "globalThis" &&
2638
+ ts.isVariableDeclaration(nameNode.parent) &&
1794
2639
  (ts.getCombinedNodeFlags(nameNode.parent) & ts.NodeFlags.Const) === 0)
1795
2640
  return false;
1796
2641
  const symbol = lowerer.checker.getSymbolAtLocation(nameNode);
@@ -1800,9 +2645,9 @@ export function stdlibGlobalAliasDecl(lowerer, nameNode, init) {
1800
2645
  return true;
1801
2646
  }
1802
2647
  /** True iff the symbol is declared ONLY by the adopted @types/node
1803
- * surface (no es-lib or shipped-ambient declaration merges in) — chooses
1804
- * the SC2020 fence's wording: "typed by @types/node", not "standard
1805
- * library". */
2648
+ * surface (no es-lib or shipped-ambient declaration merges in) — chooses
2649
+ * the SC2020 fence's wording: "typed by @types/node", not "standard
2650
+ * library". */
1806
2651
  export function nodeTypesOnlySymbol(lowerer, sym) {
1807
2652
  const decls = sym ? lowerer.checker.declarationsOf(sym) : undefined;
1808
2653
  if (!decls || decls.length === 0)