@scriptc/compiler 0.4.7 → 0.4.8

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 (776) hide show
  1. package/ambient/node-fallback/child_process.d.ts +71 -22
  2. package/ambient/node-fallback/crypto.d.ts +15 -7
  3. package/ambient/node-fallback/events.d.ts +23 -5
  4. package/ambient/node-fallback/fs.d.ts +3 -2
  5. package/ambient/node-fallback/http.d.ts +23 -17
  6. package/ambient/node-fallback/https.d.ts +5 -2
  7. package/ambient/node-fallback/net.d.ts +6 -0
  8. package/ambient/node-fallback/os.d.ts +11 -1
  9. package/ambient/node-fallback/path-posix.d.ts +6 -0
  10. package/ambient/node-fallback/path-win32.d.ts +5 -0
  11. package/ambient/node-fallback/path.d.ts +2 -0
  12. package/ambient/node-fallback/zlib.d.ts +31 -2
  13. package/ambient/scriptc-node-fallback.d.ts +37 -7
  14. package/ambient/scriptc.d.ts +7 -2
  15. package/dist/backend/executable-features.js +11 -3
  16. package/dist/backend/executable-features.js.map +1 -1
  17. package/dist/backend/library-pack.d.ts +6 -0
  18. package/dist/backend/library-pack.js +17 -6
  19. package/dist/backend/library-pack.js.map +1 -1
  20. package/dist/backend/library-pack.test.d.ts +1 -0
  21. package/dist/backend/library-pack.test.js +28 -0
  22. package/dist/backend/library-pack.test.js.map +1 -0
  23. package/dist/backend/linker.d.ts +9 -2
  24. package/dist/backend/linker.js +190 -32
  25. package/dist/backend/linker.js.map +1 -1
  26. package/dist/backend/lld.d.ts +8 -4
  27. package/dist/backend/lld.js +19 -13
  28. package/dist/backend/lld.js.map +1 -1
  29. package/dist/backend/lld.test.js +3 -1
  30. package/dist/backend/lld.test.js.map +1 -1
  31. package/dist/backend/llvm/alloc.d.ts +15 -2
  32. package/dist/backend/llvm/alloc.js +172 -36
  33. package/dist/backend/llvm/alloc.js.map +1 -1
  34. package/dist/backend/llvm/alloc.test.js +69 -1
  35. package/dist/backend/llvm/alloc.test.js.map +1 -1
  36. package/dist/backend/llvm/arenas.d.ts +17 -4
  37. package/dist/backend/llvm/arenas.js +105 -10
  38. package/dist/backend/llvm/arenas.js.map +1 -1
  39. package/dist/backend/llvm/arenas.test.js +229 -0
  40. package/dist/backend/llvm/arenas.test.js.map +1 -1
  41. package/dist/backend/llvm/bytes-alias.js +10 -1
  42. package/dist/backend/llvm/bytes-alias.js.map +1 -1
  43. package/dist/backend/llvm/bytes-headers.js +6 -0
  44. package/dist/backend/llvm/bytes-headers.js.map +1 -1
  45. package/dist/backend/llvm/bytes-loop-versions.test.js +25 -0
  46. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  47. package/dist/backend/llvm/call-lifetimes.js +10 -0
  48. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  49. package/dist/backend/llvm/classes.d.ts +16 -9
  50. package/dist/backend/llvm/classes.js +142 -37
  51. package/dist/backend/llvm/classes.js.map +1 -1
  52. package/dist/backend/llvm/classes.test.js +42 -0
  53. package/dist/backend/llvm/classes.test.js.map +1 -1
  54. package/dist/backend/llvm/cpu-dispatch.d.ts +15 -5
  55. package/dist/backend/llvm/cpu-dispatch.js +31 -7
  56. package/dist/backend/llvm/cpu-dispatch.js.map +1 -1
  57. package/dist/backend/llvm/dyn.d.ts +12 -3
  58. package/dist/backend/llvm/dyn.js +31 -7
  59. package/dist/backend/llvm/dyn.js.map +1 -1
  60. package/dist/backend/llvm/emit-function.js +67 -4
  61. package/dist/backend/llvm/emit-function.js.map +1 -1
  62. package/dist/backend/llvm/emit-module.js +90 -39
  63. package/dist/backend/llvm/emit-module.js.map +1 -1
  64. package/dist/backend/llvm/emit-module.test.d.ts +1 -0
  65. package/dist/backend/llvm/emit-module.test.js +52 -0
  66. package/dist/backend/llvm/emit-module.test.js.map +1 -0
  67. package/dist/backend/llvm/emit-statements.js +99 -15
  68. package/dist/backend/llvm/emit-statements.js.map +1 -1
  69. package/dist/backend/llvm/emitter.d.ts +113 -8
  70. package/dist/backend/llvm/emitter.js +438 -67
  71. package/dist/backend/llvm/emitter.js.map +1 -1
  72. package/dist/backend/llvm/emitter.test.js +31 -3
  73. package/dist/backend/llvm/emitter.test.js.map +1 -1
  74. package/dist/backend/llvm/expr-async.js +19 -1
  75. package/dist/backend/llvm/expr-async.js.map +1 -1
  76. package/dist/backend/llvm/expr-bytes.js +16 -1
  77. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  78. package/dist/backend/llvm/expr-calls.js +18 -2
  79. package/dist/backend/llvm/expr-calls.js.map +1 -1
  80. package/dist/backend/llvm/expr-dynamic.js +31 -10
  81. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  82. package/dist/backend/llvm/expr-primitives.js +31 -3
  83. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  84. package/dist/backend/llvm/expr-records.d.ts +1 -1
  85. package/dist/backend/llvm/expr-records.js +124 -56
  86. package/dist/backend/llvm/expr-records.js.map +1 -1
  87. package/dist/backend/llvm/expr-stream-bridges.js +17 -0
  88. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  89. package/dist/backend/llvm/js-groups.d.ts +21 -0
  90. package/dist/backend/llvm/js-groups.js +277 -0
  91. package/dist/backend/llvm/js-groups.js.map +1 -0
  92. package/dist/backend/llvm/js-ic.d.ts +19 -1
  93. package/dist/backend/llvm/js-ic.js +96 -23
  94. package/dist/backend/llvm/js-ic.js.map +1 -1
  95. package/dist/backend/llvm/lib-dispatch.js +132 -1
  96. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  97. package/dist/backend/llvm/lib-network.js +33 -6
  98. package/dist/backend/llvm/lib-network.js.map +1 -1
  99. package/dist/backend/llvm/lib-process.js +44 -3
  100. package/dist/backend/llvm/lib-process.js.map +1 -1
  101. package/dist/backend/llvm/lib-shared.js +69 -2
  102. package/dist/backend/llvm/lib-shared.js.map +1 -1
  103. package/dist/backend/llvm/local-union-storage.test.js +32 -0
  104. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  105. package/dist/backend/llvm/loop-state.js +7 -2
  106. package/dist/backend/llvm/loop-state.js.map +1 -1
  107. package/dist/backend/llvm/map-entry-fusion.d.ts +8 -0
  108. package/dist/backend/llvm/map-entry-fusion.js +3 -3
  109. package/dist/backend/llvm/map-entry-fusion.js.map +1 -1
  110. package/dist/backend/llvm/map-number-lookup.test.js +6 -6
  111. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  112. package/dist/backend/llvm/nullable-unions.js +7 -6
  113. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  114. package/dist/backend/llvm/nullable-unions.test.js +4 -1
  115. package/dist/backend/llvm/nullable-unions.test.js.map +1 -1
  116. package/dist/backend/llvm/receivers.js +3 -0
  117. package/dist/backend/llvm/receivers.js.map +1 -1
  118. package/dist/backend/llvm/record-entry-fusion.d.ts +32 -0
  119. package/dist/backend/llvm/record-entry-fusion.js +217 -0
  120. package/dist/backend/llvm/record-entry-fusion.js.map +1 -0
  121. package/dist/backend/llvm/record-results.d.ts +5 -2
  122. package/dist/backend/llvm/record-results.js +13 -12
  123. package/dist/backend/llvm/record-results.js.map +1 -1
  124. package/dist/backend/llvm/record-views.js +12 -6
  125. package/dist/backend/llvm/record-views.js.map +1 -1
  126. package/dist/backend/llvm/reference-effects.js +1 -0
  127. package/dist/backend/llvm/reference-effects.js.map +1 -1
  128. package/dist/backend/llvm/reference-writes.js +3 -0
  129. package/dist/backend/llvm/reference-writes.js.map +1 -1
  130. package/dist/backend/llvm/region-ir.js +1 -0
  131. package/dist/backend/llvm/region-ir.js.map +1 -1
  132. package/dist/backend/llvm/region-sites.d.ts +18 -0
  133. package/dist/backend/llvm/region-sites.js +79 -1
  134. package/dist/backend/llvm/region-sites.js.map +1 -1
  135. package/dist/backend/llvm/runtime-registries.test.js +53 -6
  136. package/dist/backend/llvm/runtime-registries.test.js.map +1 -1
  137. package/dist/backend/llvm/serialized-ir-emission.test.js +3 -1
  138. package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
  139. package/dist/backend/llvm/shapes.d.ts +33 -3
  140. package/dist/backend/llvm/shapes.js +183 -13
  141. package/dist/backend/llvm/shapes.js.map +1 -1
  142. package/dist/backend/llvm/stack-objects.d.ts +1 -2
  143. package/dist/backend/llvm/stack-objects.js +8 -5
  144. package/dist/backend/llvm/stack-objects.js.map +1 -1
  145. package/dist/backend/llvm/walkers.d.ts +12 -0
  146. package/dist/backend/llvm/walkers.js +46 -2
  147. package/dist/backend/llvm/walkers.js.map +1 -1
  148. package/dist/backend/may-throw.js +12 -2
  149. package/dist/backend/may-throw.js.map +1 -1
  150. package/dist/backend/may-throw.test.js +13 -0
  151. package/dist/backend/may-throw.test.js.map +1 -1
  152. package/dist/backend/native/contracts.d.ts +48 -8
  153. package/dist/backend/native/executable.js +55 -13
  154. package/dist/backend/native/executable.js.map +1 -1
  155. package/dist/backend/native/helper-identity-record.d.ts +11 -0
  156. package/dist/backend/native/helper-identity-record.js +76 -0
  157. package/dist/backend/native/helper-identity-record.js.map +1 -0
  158. package/dist/backend/native/helper-identity-record.test.d.ts +1 -0
  159. package/dist/backend/native/helper-identity-record.test.js +101 -0
  160. package/dist/backend/native/helper-identity-record.test.js.map +1 -0
  161. package/dist/backend/native/library.js +9 -1
  162. package/dist/backend/native/library.js.map +1 -1
  163. package/dist/backend/native/runtime-inputs.js +4 -1
  164. package/dist/backend/native/runtime-inputs.js.map +1 -1
  165. package/dist/backend/native/vendor.d.ts +1 -1
  166. package/dist/backend/native/vendor.js +1 -1
  167. package/dist/backend/native/vendor.js.map +1 -1
  168. package/dist/backend/native-codegen-core.d.ts +13 -10
  169. package/dist/backend/native-codegen-core.js +26 -13
  170. package/dist/backend/native-codegen-core.js.map +1 -1
  171. package/dist/backend/native-codegen.js +27 -8
  172. package/dist/backend/native-codegen.js.map +1 -1
  173. package/dist/backend/native-codegen.test.js +110 -14
  174. package/dist/backend/native-codegen.test.js.map +1 -1
  175. package/dist/backend/native-link-info-core.d.ts +37 -8
  176. package/dist/backend/native-link-info-core.js.map +1 -1
  177. package/dist/backend/runtime-pack-core.d.ts +17 -2
  178. package/dist/backend/runtime-pack-core.js +18 -3
  179. package/dist/backend/runtime-pack-core.js.map +1 -1
  180. package/dist/backend/runtime-pack-targets.test.js +1 -1
  181. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  182. package/dist/backend/runtime-pack.test.js +211 -2
  183. package/dist/backend/runtime-pack.test.js.map +1 -1
  184. package/dist/backend/tree-classes.d.ts +42 -0
  185. package/dist/backend/tree-classes.js +723 -0
  186. package/dist/backend/tree-classes.js.map +1 -0
  187. package/dist/backend/tree-classes.test.d.ts +1 -0
  188. package/dist/backend/tree-classes.test.js +338 -0
  189. package/dist/backend/tree-classes.test.js.map +1 -0
  190. package/dist/backend/vendor-archives.d.ts +5 -1
  191. package/dist/backend/vendor-archives.js +51 -7
  192. package/dist/backend/vendor-archives.js.map +1 -1
  193. package/dist/backend/vendor-inputs.d.ts +25 -4
  194. package/dist/backend/vendor-inputs.js +68 -4
  195. package/dist/backend/vendor-inputs.js.map +1 -1
  196. package/dist/backend/vendor-inputs.test.js +35 -1
  197. package/dist/backend/vendor-inputs.test.js.map +1 -1
  198. package/dist/backend/warm-cache.js +1 -1
  199. package/dist/backend/warm-cache.js.map +1 -1
  200. package/dist/compat/fetch-profile.js +2 -2
  201. package/dist/coverage/report.js +47 -0
  202. package/dist/coverage/report.js.map +1 -1
  203. package/dist/coverage/surface-manifest.js +1 -1
  204. package/dist/diagnostics/codes.d.ts +8 -0
  205. package/dist/diagnostics/codes.js +8 -0
  206. package/dist/diagnostics/codes.js.map +1 -1
  207. package/dist/diagnostics/diagnostic.d.ts +27 -9
  208. package/dist/diagnostics/diagnostic.js +60 -19
  209. package/dist/diagnostics/diagnostic.js.map +1 -1
  210. package/dist/diagnostics/envelope.d.ts +18 -0
  211. package/dist/diagnostics/envelope.js.map +1 -1
  212. package/dist/executable/executable-cache.d.ts +21 -2
  213. package/dist/executable/executable-cache.js +21 -1
  214. package/dist/executable/executable-cache.js.map +1 -1
  215. package/dist/executable/executable-cache.test.js +123 -1
  216. package/dist/executable/executable-cache.test.js.map +1 -1
  217. package/dist/executable/prepare.js +199 -248
  218. package/dist/executable/prepare.js.map +1 -1
  219. package/dist/frontend/analysis.js +200 -18
  220. package/dist/frontend/analysis.js.map +1 -1
  221. package/dist/frontend/builtin-modules.d.ts +4 -0
  222. package/dist/frontend/builtin-modules.js +10 -0
  223. package/dist/frontend/builtin-modules.js.map +1 -1
  224. package/dist/frontend/early-errors.d.ts +12 -2
  225. package/dist/frontend/early-errors.js +535 -4
  226. package/dist/frontend/early-errors.js.map +1 -1
  227. package/dist/frontend/early-errors.test.js +165 -0
  228. package/dist/frontend/early-errors.test.js.map +1 -1
  229. package/dist/frontend/inferred-js-diagnostics.test.js +65 -0
  230. package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
  231. package/dist/frontend/jsx-opinion-sites.test.d.ts +1 -0
  232. package/dist/frontend/jsx-opinion-sites.test.js +86 -0
  233. package/dist/frontend/jsx-opinion-sites.test.js.map +1 -0
  234. package/dist/frontend/lib-exports.d.ts +23 -4
  235. package/dist/frontend/lib-exports.js +98 -26
  236. package/dist/frontend/lib-exports.js.map +1 -1
  237. package/dist/frontend/lowering/binding-analysis.js +21 -3
  238. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  239. package/dist/frontend/lowering/buffers.d.ts +8 -0
  240. package/dist/frontend/lowering/buffers.js +43 -0
  241. package/dist/frontend/lowering/buffers.js.map +1 -0
  242. package/dist/frontend/lowering/builtin-calls.js +4 -0
  243. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  244. package/dist/frontend/lowering/builtin-namespaces.d.ts +3 -2
  245. package/dist/frontend/lowering/builtin-namespaces.js +24 -3
  246. package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
  247. package/dist/frontend/lowering/builtin-statics.d.ts +24 -0
  248. package/dist/frontend/lowering/builtin-statics.js +407 -0
  249. package/dist/frontend/lowering/builtin-statics.js.map +1 -0
  250. package/dist/frontend/lowering/builtins/arguments.d.ts +4 -0
  251. package/dist/frontend/lowering/builtins/arguments.js +12 -0
  252. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  253. package/dist/frontend/lowering/builtins/atomics.d.ts +6 -1
  254. package/dist/frontend/lowering/builtins/atomics.js +87 -1
  255. package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
  256. package/dist/frontend/lowering/builtins/child-process-methods.js +2 -2
  257. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  258. package/dist/frontend/lowering/builtins/child-process-sync.d.ts +13 -0
  259. package/dist/frontend/lowering/builtins/child-process-sync.js +1 -13
  260. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  261. package/dist/frontend/lowering/builtins/child-process.d.ts +10 -4
  262. package/dist/frontend/lowering/builtins/child-process.js +560 -27
  263. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  264. package/dist/frontend/lowering/builtins/compression.d.ts +2 -2
  265. package/dist/frontend/lowering/builtins/compression.js +41 -21
  266. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  267. package/dist/frontend/lowering/builtins/constants.js +7 -2
  268. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  269. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -0
  270. package/dist/frontend/lowering/builtins/filesystem-calls.js +28 -2
  271. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  272. package/dist/frontend/lowering/builtins/json.js +4 -0
  273. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  274. package/dist/frontend/lowering/builtins/module-calls.js +3 -1
  275. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  276. package/dist/frontend/lowering/builtins/numbers.d.ts +4 -1
  277. package/dist/frontend/lowering/builtins/numbers.js +10 -2
  278. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  279. package/dist/frontend/lowering/builtins/operating-system.d.ts +6 -3
  280. package/dist/frontend/lowering/builtins/operating-system.js +96 -16
  281. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  282. package/dist/frontend/lowering/builtins/process.d.ts +2 -2
  283. package/dist/frontend/lowering/builtins/process.js +103 -8
  284. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  285. package/dist/frontend/lowering/builtins/promises.js +169 -8
  286. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  287. package/dist/frontend/lowering/builtins/properties.js +6 -2
  288. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  289. package/dist/frontend/lowering/builtins/readline.d.ts +6 -4
  290. package/dist/frontend/lowering/builtins/readline.js +180 -36
  291. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  292. package/dist/frontend/lowering/builtins/url.js +35 -12
  293. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  294. package/dist/frontend/lowering/builtins/webassembly.js +2 -0
  295. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
  296. package/dist/frontend/lowering/call-arguments.d.ts +10 -0
  297. package/dist/frontend/lowering/call-arguments.js +37 -2
  298. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  299. package/dist/frontend/lowering/call-signatures.d.ts +10 -0
  300. package/dist/frontend/lowering/call-signatures.js +103 -0
  301. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  302. package/dist/frontend/lowering/class-construction.d.ts +14 -2
  303. package/dist/frontend/lowering/class-construction.js +99 -5
  304. package/dist/frontend/lowering/class-construction.js.map +1 -1
  305. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +9 -0
  306. package/dist/frontend/lowering/class-dynamic-dispatch.js +1283 -1030
  307. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  308. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +158 -0
  309. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  310. package/dist/frontend/lowering/class-prototypes.js +20 -15
  311. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  312. package/dist/frontend/lowering/class-runtime-statics.d.ts +8 -0
  313. package/dist/frontend/lowering/class-runtime-statics.js +20 -1
  314. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  315. package/dist/frontend/lowering/class-unions.js +21 -4
  316. package/dist/frontend/lowering/class-unions.js.map +1 -1
  317. package/dist/frontend/lowering/coercions/function-adapters.js +9 -0
  318. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  319. package/dist/frontend/lowering/coercions/state.d.ts +8 -0
  320. package/dist/frontend/lowering/coercions/state.js +17 -0
  321. package/dist/frontend/lowering/coercions/state.js.map +1 -1
  322. package/dist/frontend/lowering/coercions/structural-plans.js +20 -5
  323. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  324. package/dist/frontend/lowering/coercions/structural.js +10 -1
  325. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  326. package/dist/frontend/lowering/coercions/unions.d.ts +2 -1
  327. package/dist/frontend/lowering/coercions/unions.js +54 -10
  328. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  329. package/dist/frontend/lowering/constructor-returns.d.ts +23 -2
  330. package/dist/frontend/lowering/constructor-returns.js +284 -58
  331. package/dist/frontend/lowering/constructor-returns.js.map +1 -1
  332. package/dist/frontend/lowering/containers/array-callbacks.js +156 -62
  333. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  334. package/dist/frontend/lowering/containers/array-construction.js +21 -3
  335. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  336. package/dist/frontend/lowering/containers/array-from-async.js +139 -3
  337. package/dist/frontend/lowering/containers/array-from-async.js.map +1 -1
  338. package/dist/frontend/lowering/containers/array-iteration.d.ts +14 -4
  339. package/dist/frontend/lowering/containers/array-iteration.js +24 -7
  340. package/dist/frontend/lowering/containers/array-iteration.js.map +1 -1
  341. package/dist/frontend/lowering/containers/array-methods.js +14 -11
  342. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  343. package/dist/frontend/lowering/containers/bytes.d.ts +6 -0
  344. package/dist/frontend/lowering/containers/bytes.js +446 -86
  345. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  346. package/dist/frontend/lowering/containers/callback-arguments.d.ts +5 -0
  347. package/dist/frontend/lowering/containers/callback-arguments.js +21 -12
  348. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  349. package/dist/frontend/lowering/containers/collection-grouping.js +421 -2
  350. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
  351. package/dist/frontend/lowering/containers/collection-methods.js +52 -17
  352. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  353. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +23 -0
  354. package/dist/frontend/lowering/containers/iterator-helpers.js +176 -10
  355. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
  356. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +5 -2
  357. package/dist/frontend/lowering/containers/string-and-regexp.js +45 -11
  358. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  359. package/dist/frontend/lowering/crypto-tables.d.ts +3 -3
  360. package/dist/frontend/lowering/crypto-tables.js +5 -5
  361. package/dist/frontend/lowering/dispatch-sites.js +3 -0
  362. package/dist/frontend/lowering/dispatch-sites.js.map +1 -1
  363. package/dist/frontend/lowering/divergences.d.ts +40 -0
  364. package/dist/frontend/lowering/divergences.js +239 -20
  365. package/dist/frontend/lowering/divergences.js.map +1 -1
  366. package/dist/frontend/lowering/effect-free.d.ts +12 -0
  367. package/dist/frontend/lowering/effect-free.js +44 -0
  368. package/dist/frontend/lowering/effect-free.js.map +1 -0
  369. package/dist/frontend/lowering/expressions/array-literals.d.ts +10 -0
  370. package/dist/frontend/lowering/expressions/array-literals.js +62 -0
  371. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  372. package/dist/frontend/lowering/expressions/binary.js +115 -5
  373. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  374. package/dist/frontend/lowering/expressions/element-access.js +151 -7
  375. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  376. package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +15 -0
  377. package/dist/frontend/lowering/expressions/hosted-narrowing.js +54 -1
  378. package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -1
  379. package/dist/frontend/lowering/expressions/identifiers.js +31 -2
  380. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  381. package/dist/frontend/lowering/expressions/narrowing.d.ts +3 -0
  382. package/dist/frontend/lowering/expressions/narrowing.js +175 -22
  383. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  384. package/dist/frontend/lowering/expressions/object-literals.js +173 -11
  385. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  386. package/dist/frontend/lowering/expressions/optional-chains.js +5 -1
  387. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  388. package/dist/frontend/lowering/expressions/property-access.d.ts +8 -0
  389. package/dist/frontend/lowering/expressions/property-access.js +379 -109
  390. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  391. package/dist/frontend/lowering/expressions/relational.js +237 -7
  392. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  393. package/dist/frontend/lowering/expressions/typeof.js +8 -0
  394. package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
  395. package/dist/frontend/lowering/expressions/union-fields.d.ts +20 -1
  396. package/dist/frontend/lowering/expressions/union-fields.js +103 -13
  397. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  398. package/dist/frontend/lowering/expressions/updates.js +74 -55
  399. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  400. package/dist/frontend/lowering/function-returns.js +37 -10
  401. package/dist/frontend/lowering/function-returns.js.map +1 -1
  402. package/dist/frontend/lowering/general-streams.js +5 -0
  403. package/dist/frontend/lowering/general-streams.js.map +1 -1
  404. package/dist/frontend/lowering/generator-delegation.d.ts +15 -7
  405. package/dist/frontend/lowering/generator-delegation.js +301 -118
  406. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  407. package/dist/frontend/lowering/generic-functions.d.ts +27 -1
  408. package/dist/frontend/lowering/generic-functions.js +432 -18
  409. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  410. package/dist/frontend/lowering/global-function-values.d.ts +25 -0
  411. package/dist/frontend/lowering/global-function-values.js +193 -0
  412. package/dist/frontend/lowering/global-function-values.js.map +1 -0
  413. package/dist/frontend/lowering/global-values.d.ts +6 -4
  414. package/dist/frontend/lowering/global-values.js +24 -10
  415. package/dist/frontend/lowering/global-values.js.map +1 -1
  416. package/dist/frontend/lowering/host-global-values.d.ts +31 -0
  417. package/dist/frontend/lowering/host-global-values.js +121 -0
  418. package/dist/frontend/lowering/host-global-values.js.map +1 -0
  419. package/dist/frontend/lowering/host-globals.d.ts +74 -0
  420. package/dist/frontend/lowering/host-globals.js +344 -0
  421. package/dist/frontend/lowering/host-globals.js.map +1 -0
  422. package/dist/frontend/lowering/http2-constants.js +1 -1
  423. package/dist/frontend/lowering/iterator-adapters.js +46 -17
  424. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  425. package/dist/frontend/lowering/iterator-prototype.d.ts +30 -0
  426. package/dist/frontend/lowering/iterator-prototype.js +160 -0
  427. package/dist/frontend/lowering/iterator-prototype.js.map +1 -0
  428. package/dist/frontend/lowering/key-order-witness.js +43 -22
  429. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  430. package/dist/frontend/lowering/key-order-witness.test.js +1 -0
  431. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
  432. package/dist/frontend/lowering/lib-boundary.js +11 -3
  433. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  434. package/dist/frontend/lowering/lower-assert.js +30 -15
  435. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  436. package/dist/frontend/lowering/lower-async-iteration.d.ts +11 -0
  437. package/dist/frontend/lowering/lower-async-iteration.js +15 -0
  438. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  439. package/dist/frontend/lowering/lower-builtin-values.js +11 -1
  440. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  441. package/dist/frontend/lowering/lower-calls.d.ts +25 -0
  442. package/dist/frontend/lowering/lower-calls.js +929 -227
  443. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  444. package/dist/frontend/lowering/lower-calls.test.js +59 -16
  445. package/dist/frontend/lowering/lower-calls.test.js.map +1 -1
  446. package/dist/frontend/lowering/lower-classes.d.ts +20 -0
  447. package/dist/frontend/lowering/lower-classes.js +468 -44
  448. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  449. package/dist/frontend/lowering/lower-event-emitter.d.ts +6 -2
  450. package/dist/frontend/lowering/lower-event-emitter.js +253 -83
  451. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  452. package/dist/frontend/lowering/lower-exprs.d.ts +1 -1
  453. package/dist/frontend/lowering/lower-exprs.js +71 -20
  454. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  455. package/dist/frontend/lowering/lower-functions.js +25 -6
  456. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  457. package/dist/frontend/lowering/lower-generators.js +57 -10
  458. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  459. package/dist/frontend/lowering/lower-global-value.d.ts +6 -0
  460. package/dist/frontend/lowering/lower-global-value.js +14 -5
  461. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  462. package/dist/frontend/lowering/lower-inspect.d.ts +4 -0
  463. package/dist/frontend/lowering/lower-inspect.js +638 -64
  464. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  465. package/dist/frontend/lowering/lower-modules.js +48 -2
  466. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  467. package/dist/frontend/lowering/lower-namespaces.js +18 -0
  468. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  469. package/dist/frontend/lowering/lower-node-island.js +16 -6
  470. package/dist/frontend/lowering/lower-node-island.js.map +1 -1
  471. package/dist/frontend/lowering/lower-server.js +303 -87
  472. package/dist/frontend/lowering/lower-server.js.map +1 -1
  473. package/dist/frontend/lowering/lower-stdlib.js +45 -0
  474. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  475. package/dist/frontend/lowering/lower-stmts.d.ts +14 -11
  476. package/dist/frontend/lowering/lower-stmts.js +270 -52
  477. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  478. package/dist/frontend/lowering/lower-timers.js +110 -27
  479. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  480. package/dist/frontend/lowering/lower-url.js +6 -3
  481. package/dist/frontend/lowering/lower-url.js.map +1 -1
  482. package/dist/frontend/lowering/lowerer.d.ts +227 -21
  483. package/dist/frontend/lowering/lowerer.js +651 -92
  484. package/dist/frontend/lowering/lowerer.js.map +1 -1
  485. package/dist/frontend/lowering/lowerer.test.js +18 -0
  486. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  487. package/dist/frontend/lowering/lowering-facts.d.ts +110 -0
  488. package/dist/frontend/lowering/lowering-facts.js +323 -0
  489. package/dist/frontend/lowering/lowering-facts.js.map +1 -0
  490. package/dist/frontend/lowering/lowering-facts.test.d.ts +1 -0
  491. package/dist/frontend/lowering/lowering-facts.test.js +100 -0
  492. package/dist/frontend/lowering/lowering-facts.test.js.map +1 -0
  493. package/dist/frontend/lowering/nan-coded-reads.d.ts +27 -4
  494. package/dist/frontend/lowering/nan-coded-reads.js +112 -9
  495. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  496. package/dist/frontend/lowering/optional-arguments.d.ts +4 -0
  497. package/dist/frontend/lowering/optional-arguments.js +26 -2
  498. package/dist/frontend/lowering/optional-arguments.js.map +1 -1
  499. package/dist/frontend/lowering/partial-assertions.d.ts +0 -3
  500. package/dist/frontend/lowering/partial-assertions.js +9 -15
  501. package/dist/frontend/lowering/partial-assertions.js.map +1 -1
  502. package/dist/frontend/lowering/primitive-throws.d.ts +100 -0
  503. package/dist/frontend/lowering/primitive-throws.js +241 -0
  504. package/dist/frontend/lowering/primitive-throws.js.map +1 -0
  505. package/dist/frontend/lowering/primitive-wrappers.js +1 -0
  506. package/dist/frontend/lowering/primitive-wrappers.js.map +1 -1
  507. package/dist/frontend/lowering/record-inherited.d.ts +17 -1
  508. package/dist/frontend/lowering/record-inherited.js +16 -2
  509. package/dist/frontend/lowering/record-inherited.js.map +1 -1
  510. package/dist/frontend/lowering/record-links.d.ts +73 -0
  511. package/dist/frontend/lowering/record-links.js +797 -0
  512. package/dist/frontend/lowering/record-links.js.map +1 -0
  513. package/dist/frontend/lowering/runtime-optional-provenance.d.ts +27 -7
  514. package/dist/frontend/lowering/runtime-optional-provenance.js +25 -11
  515. package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
  516. package/dist/frontend/lowering/runtime-optional-report.d.ts +40 -0
  517. package/dist/frontend/lowering/runtime-optional-report.js +300 -0
  518. package/dist/frontend/lowering/runtime-optional-report.js.map +1 -0
  519. package/dist/frontend/lowering/scoped-type-memo.test.d.ts +1 -0
  520. package/dist/frontend/lowering/scoped-type-memo.test.js +86 -0
  521. package/dist/frontend/lowering/scoped-type-memo.test.js.map +1 -0
  522. package/dist/frontend/lowering/static-typeof.d.ts +3 -1
  523. package/dist/frontend/lowering/static-typeof.js +6 -1
  524. package/dist/frontend/lowering/static-typeof.js.map +1 -1
  525. package/dist/frontend/lowering/strict-mode.d.ts +1 -5
  526. package/dist/frontend/lowering/strict-mode.js +4 -30
  527. package/dist/frontend/lowering/strict-mode.js.map +1 -1
  528. package/dist/frontend/lowering/structural-instances.d.ts +7 -0
  529. package/dist/frontend/lowering/structural-instances.js +23 -0
  530. package/dist/frontend/lowering/structural-instances.js.map +1 -1
  531. package/dist/frontend/lowering/surfaces.d.ts +15 -1
  532. package/dist/frontend/lowering/surfaces.js +78 -10
  533. package/dist/frontend/lowering/surfaces.js.map +1 -1
  534. package/dist/frontend/lowering/union-retag.d.ts +13 -1
  535. package/dist/frontend/lowering/union-retag.js +55 -1
  536. package/dist/frontend/lowering/union-retag.js.map +1 -1
  537. package/dist/frontend/lowering/union-retag.test.js +51 -0
  538. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  539. package/dist/frontend/lowering/unit-journal.d.ts +8 -0
  540. package/dist/frontend/lowering/unit-journal.js +14 -0
  541. package/dist/frontend/lowering/unit-journal.js.map +1 -1
  542. package/dist/frontend/lowering/unit-journal.test.js +36 -1
  543. package/dist/frontend/lowering/unit-journal.test.js.map +1 -1
  544. package/dist/frontend/lowering/zlib-constants.js +3 -2
  545. package/dist/frontend/lowering/zlib-constants.js.map +1 -1
  546. package/dist/frontend/npm-static.js +78 -9
  547. package/dist/frontend/npm-static.js.map +1 -1
  548. package/dist/frontend/npm-static.test.js +95 -2
  549. package/dist/frontend/npm-static.test.js.map +1 -1
  550. package/dist/frontend/pipeline.d.ts +5 -4
  551. package/dist/frontend/pipeline.js +94 -31
  552. package/dist/frontend/pipeline.js.map +1 -1
  553. package/dist/frontend/pipeline.test.js +68 -11
  554. package/dist/frontend/pipeline.test.js.map +1 -1
  555. package/dist/frontend/program.d.ts +62 -2
  556. package/dist/frontend/program.js +695 -422
  557. package/dist/frontend/program.js.map +1 -1
  558. package/dist/frontend/program.test.js +37 -1
  559. package/dist/frontend/program.test.js.map +1 -1
  560. package/dist/frontend/services-node.d.ts +7 -0
  561. package/dist/frontend/services-node.js +32 -1
  562. package/dist/frontend/services-node.js.map +1 -1
  563. package/dist/frontend/services-node.test.js +51 -0
  564. package/dist/frontend/services-node.test.js.map +1 -1
  565. package/dist/frontend/shape-inference/overlay.js +68 -2
  566. package/dist/frontend/shape-inference/overlay.js.map +1 -1
  567. package/dist/frontend/tier-analysis.d.ts +9 -0
  568. package/dist/frontend/tier-analysis.js +1 -0
  569. package/dist/frontend/tier-analysis.js.map +1 -1
  570. package/dist/frontend/tsc-codes.d.ts +57 -3
  571. package/dist/frontend/tsc-codes.js +935 -150
  572. package/dist/frontend/tsc-codes.js.map +1 -1
  573. package/dist/frontend/tsc-codes.test.js +221 -12
  574. package/dist/frontend/tsc-codes.test.js.map +1 -1
  575. package/dist/frontend/type-mapper.d.ts +91 -9
  576. package/dist/frontend/type-mapper.js +622 -181
  577. package/dist/frontend/type-mapper.js.map +1 -1
  578. package/dist/index.d.ts +1 -1
  579. package/dist/index.js +80 -15
  580. package/dist/index.js.map +1 -1
  581. package/dist/index.test.d.ts +1 -0
  582. package/dist/index.test.js +60 -0
  583. package/dist/index.test.js.map +1 -0
  584. package/dist/ir/builtin-effects.js +43 -0
  585. package/dist/ir/builtin-effects.js.map +1 -1
  586. package/dist/ir/builtin-signatures.d.ts +1 -1
  587. package/dist/ir/builtin-signatures.js +242 -16
  588. package/dist/ir/builtin-signatures.js.map +1 -1
  589. package/dist/ir/callback-specialization.d.ts +3 -2
  590. package/dist/ir/callback-specialization.js +35 -25
  591. package/dist/ir/callback-specialization.js.map +1 -1
  592. package/dist/ir/capture-values.d.ts +8 -4
  593. package/dist/ir/capture-values.js +9 -6
  594. package/dist/ir/capture-values.js.map +1 -1
  595. package/dist/ir/char-unit-locals.d.ts +6 -2
  596. package/dist/ir/char-unit-locals.js +11 -2
  597. package/dist/ir/char-unit-locals.js.map +1 -1
  598. package/dist/ir/class-key-index.d.ts +18 -0
  599. package/dist/ir/class-key-index.js +29 -0
  600. package/dist/ir/class-key-index.js.map +1 -0
  601. package/dist/ir/class-key-index.test.d.ts +1 -0
  602. package/dist/ir/class-key-index.test.js +25 -0
  603. package/dist/ir/class-key-index.test.js.map +1 -0
  604. package/dist/ir/codec.generated.d.ts +1 -1
  605. package/dist/ir/codec.generated.js +724 -648
  606. package/dist/ir/codec.generated.js.map +1 -1
  607. package/dist/ir/constant-globals.d.ts +5 -2
  608. package/dist/ir/constant-globals.js +25 -27
  609. package/dist/ir/constant-globals.js.map +1 -1
  610. package/dist/ir/expression-inlining.d.ts +4 -2
  611. package/dist/ir/expression-inlining.js +8 -2
  612. package/dist/ir/expression-inlining.js.map +1 -1
  613. package/dist/ir/field-values.d.ts +5 -2
  614. package/dist/ir/field-values.js +32 -21
  615. package/dist/ir/field-values.js.map +1 -1
  616. package/dist/ir/fields.generated.d.ts +11 -2
  617. package/dist/ir/fields.generated.js +8 -0
  618. package/dist/ir/fields.generated.js.map +1 -1
  619. package/dist/ir/final-fields.js +1 -1
  620. package/dist/ir/final-fields.js.map +1 -1
  621. package/dist/ir/function-references.d.ts +5 -4
  622. package/dist/ir/function-references.js +7 -4
  623. package/dist/ir/function-references.js.map +1 -1
  624. package/dist/ir/function-references.test.js +7 -0
  625. package/dist/ir/function-references.test.js.map +1 -1
  626. package/dist/ir/init-only-globals.d.ts +4 -2
  627. package/dist/ir/init-only-globals.js +17 -18
  628. package/dist/ir/init-only-globals.js.map +1 -1
  629. package/dist/ir/inline-array-views.js +1 -0
  630. package/dist/ir/inline-array-views.js.map +1 -1
  631. package/dist/ir/int32-slots.js +7 -0
  632. package/dist/ir/int32-slots.js.map +1 -1
  633. package/dist/ir/ir.d.ts +59 -4
  634. package/dist/ir/ir.js +7 -0
  635. package/dist/ir/ir.js.map +1 -1
  636. package/dist/ir/js-groups.d.ts +51 -0
  637. package/dist/ir/js-groups.js +394 -0
  638. package/dist/ir/js-groups.js.map +1 -0
  639. package/dist/ir/js-groups.test.d.ts +1 -0
  640. package/dist/ir/js-groups.test.js +555 -0
  641. package/dist/ir/js-groups.test.js.map +1 -0
  642. package/dist/ir/js-ic.js +30 -5
  643. package/dist/ir/js-ic.js.map +1 -1
  644. package/dist/ir/js-ic.test.js +27 -1
  645. package/dist/ir/js-ic.test.js.map +1 -1
  646. package/dist/ir/node-index.d.ts +23 -6
  647. package/dist/ir/node-index.js +126 -49
  648. package/dist/ir/node-index.js.map +1 -1
  649. package/dist/ir/numeric-call-specialization.d.ts +4 -2
  650. package/dist/ir/numeric-call-specialization.js +40 -26
  651. package/dist/ir/numeric-call-specialization.js.map +1 -1
  652. package/dist/ir/paired-while-loops.d.ts +4 -2
  653. package/dist/ir/paired-while-loops.js +8 -2
  654. package/dist/ir/paired-while-loops.js.map +1 -1
  655. package/dist/ir/parameter-versions.d.ts +13 -4
  656. package/dist/ir/parameter-versions.js +63 -42
  657. package/dist/ir/parameter-versions.js.map +1 -1
  658. package/dist/ir/property-bags.d.ts +4 -2
  659. package/dist/ir/property-bags.js +22 -17
  660. package/dist/ir/property-bags.js.map +1 -1
  661. package/dist/ir/row-pairs.d.ts +4 -2
  662. package/dist/ir/row-pairs.js +12 -11
  663. package/dist/ir/row-pairs.js.map +1 -1
  664. package/dist/ir/runtime-features.d.ts +87 -12
  665. package/dist/ir/runtime-features.js +263 -160
  666. package/dist/ir/runtime-features.js.map +1 -1
  667. package/dist/ir/runtime-features.test.js +109 -139
  668. package/dist/ir/runtime-features.test.js.map +1 -1
  669. package/dist/ir/runtime-jam-loops.d.ts +35 -0
  670. package/dist/ir/runtime-jam-loops.js +604 -0
  671. package/dist/ir/runtime-jam-loops.js.map +1 -0
  672. package/dist/ir/runtime-jam-loops.test.d.ts +1 -0
  673. package/dist/ir/runtime-jam-loops.test.js +565 -0
  674. package/dist/ir/runtime-jam-loops.test.js.map +1 -0
  675. package/dist/ir/saturating-loop-jams.d.ts +4 -2
  676. package/dist/ir/saturating-loop-jams.js +11 -10
  677. package/dist/ir/saturating-loop-jams.js.map +1 -1
  678. package/dist/ir/scalar-records.d.ts +5 -2
  679. package/dist/ir/scalar-records.js +12 -2
  680. package/dist/ir/scalar-records.js.map +1 -1
  681. package/dist/ir/self-captures.d.ts +4 -2
  682. package/dist/ir/self-captures.js +32 -27
  683. package/dist/ir/self-captures.js.map +1 -1
  684. package/dist/ir/serialize.d.ts +6 -1
  685. package/dist/ir/serialize.js +87 -23
  686. package/dist/ir/serialize.js.map +1 -1
  687. package/dist/ir/serialize.test.js +26 -0
  688. package/dist/ir/serialize.test.js.map +1 -1
  689. package/dist/ir/tiers.js +1 -0
  690. package/dist/ir/tiers.js.map +1 -1
  691. package/dist/ir/traverse.js +4 -0
  692. package/dist/ir/traverse.js.map +1 -1
  693. package/dist/ir/typed-argument-clones.d.ts +30 -0
  694. package/dist/ir/typed-argument-clones.js +789 -0
  695. package/dist/ir/typed-argument-clones.js.map +1 -0
  696. package/dist/ir/union-arm-loops.d.ts +3 -0
  697. package/dist/ir/union-arm-loops.js +373 -0
  698. package/dist/ir/union-arm-loops.js.map +1 -0
  699. package/dist/ir/union-arm-loops.test.d.ts +1 -0
  700. package/dist/ir/union-arm-loops.test.js +230 -0
  701. package/dist/ir/union-arm-loops.test.js.map +1 -0
  702. package/dist/ir/validate.js +88 -18
  703. package/dist/ir/validate.js.map +1 -1
  704. package/dist/library/compiler-self-identity.d.ts +8 -2
  705. package/dist/library/compiler-self-identity.js +92 -18
  706. package/dist/library/compiler-self-identity.js.map +1 -1
  707. package/dist/library/compiler-self-identity.test.js +150 -3
  708. package/dist/library/compiler-self-identity.test.js.map +1 -1
  709. package/dist/library/int-infer.d.ts +5 -0
  710. package/dist/library/int-infer.js +15 -3
  711. package/dist/library/int-infer.js.map +1 -1
  712. package/dist/library/ir-policy.js +1 -0
  713. package/dist/library/ir-policy.js.map +1 -1
  714. package/dist/library/library-cache.d.ts +4 -0
  715. package/dist/library/library-cache.js +2 -0
  716. package/dist/library/library-cache.js.map +1 -1
  717. package/dist/library/library-cache.test.js +26 -0
  718. package/dist/library/library-cache.test.js.map +1 -1
  719. package/dist/library/prepare.js +99 -31
  720. package/dist/library/prepare.js.map +1 -1
  721. package/dist/native/cache.d.ts +7 -0
  722. package/dist/native/cache.js +47 -0
  723. package/dist/native/cache.js.map +1 -1
  724. package/dist/native/cache.test.js +13 -1
  725. package/dist/native/cache.test.js.map +1 -1
  726. package/dist/native/cli.js +1 -1
  727. package/dist/native/cli.js.map +1 -1
  728. package/dist/native/compiler.js +18 -3
  729. package/dist/native/compiler.js.map +1 -1
  730. package/dist/native/executable-cache-open.test.js +31 -5
  731. package/dist/native/executable-cache-open.test.js.map +1 -1
  732. package/dist/native/executable-cache.d.ts +6 -1
  733. package/dist/native/executable-cache.js +7 -1
  734. package/dist/native/executable-cache.js.map +1 -1
  735. package/dist/native/prepare.d.ts +3 -0
  736. package/dist/native/prepare.js +43 -26
  737. package/dist/native/prepare.js.map +1 -1
  738. package/dist/native/prepare.test.js +25 -3
  739. package/dist/native/prepare.test.js.map +1 -1
  740. package/dist/native/sanitizer.js +10 -1
  741. package/dist/native/sanitizer.js.map +1 -1
  742. package/dist/native/sanitizer.test.js +7 -2
  743. package/dist/native/sanitizer.test.js.map +1 -1
  744. package/dist/node-islands/boundary.d.ts +12 -0
  745. package/dist/node-islands/boundary.js +38 -6
  746. package/dist/node-islands/boundary.js.map +1 -1
  747. package/dist/node-islands/boundary.test.d.ts +1 -0
  748. package/dist/node-islands/boundary.test.js +76 -0
  749. package/dist/node-islands/boundary.test.js.map +1 -0
  750. package/dist/node-islands/detect.d.ts +9 -0
  751. package/dist/node-islands/detect.js +110 -0
  752. package/dist/node-islands/detect.js.map +1 -1
  753. package/dist/node-islands/detect.test.js +24 -0
  754. package/dist/node-islands/detect.test.js.map +1 -1
  755. package/dist/node-islands/graph-islands.d.ts +40 -0
  756. package/dist/node-islands/graph-islands.js +128 -0
  757. package/dist/node-islands/graph-islands.js.map +1 -0
  758. package/dist/node-islands/growth.d.ts +57 -0
  759. package/dist/node-islands/growth.js +205 -0
  760. package/dist/node-islands/growth.js.map +1 -0
  761. package/dist/node-islands/report.d.ts +12 -0
  762. package/dist/node-islands/report.js +28 -0
  763. package/dist/node-islands/report.js.map +1 -1
  764. package/dist/node-islands/report.test.js +2 -0
  765. package/dist/node-islands/report.test.js.map +1 -1
  766. package/dist/node-islands/rules.js +5 -0
  767. package/dist/node-islands/rules.js.map +1 -1
  768. package/dist/node-islands/scan.d.ts +11 -2
  769. package/dist/node-islands/scan.js +61 -9
  770. package/dist/node-islands/scan.js.map +1 -1
  771. package/dist/wasm/translate.js +11 -5
  772. package/dist/wasm/translate.js.map +1 -1
  773. package/dist/wasm/translate.test.js +35 -0
  774. package/dist/wasm/translate.test.js.map +1 -1
  775. package/package.json +20 -20
  776. package/surface-manifest.json +184 -117
@@ -45,6 +45,23 @@ function buildLibFnSignatures() {
45
45
  "event.handleEventReader": { argTypes: [DYN], result: VOID },
46
46
  "event.targetDispatch": { argTypes: [null, DYN, DYN], result: BOOL },
47
47
  "event.targetCall": { argTypes: [null, DYN, STRING, DYN], result: DYN },
48
+ /** events.getEventListeners over an EventTarget: the type's listeners
49
+ * in registration order, as a checked-dynamic array. The receiver is
50
+ * the target as a checked-dynamic value (a plain target, an
51
+ * AbortSignal, or a compiled subclass's capsule); `type` is the string
52
+ * name, or the checked-dynamic form, where a value that is not a string
53
+ * matches no type and the answer is empty. */
54
+ "event.targetListeners": { argTypes: [DYN, STRING], result: DYN },
55
+ "event.targetListenersDyn": { argTypes: [DYN, DYN], result: DYN },
56
+ /** events.listenerCount over an EventTarget: the type's listeners, 0
57
+ * for a type it has none of (the `_dyn` form answers 0 for a value that
58
+ * is not a string). */
59
+ "event.targetListenerCount": { argTypes: [DYN, STRING], result: F64 },
60
+ "event.targetListenerCountDyn": { argTypes: [DYN, DYN], result: F64 },
61
+ /** events.getMaxListeners and events.setMaxListeners over an
62
+ * EventTarget: the target's limit, and its assignment. */
63
+ "event.targetGetMax": { argTypes: [DYN], result: F64 },
64
+ "event.targetSetMax": { argTypes: [DYN, F64], result: VOID },
48
65
  "event.call": { argTypes: [null, STRING, DYN], result: DYN },
49
66
  "event.get": { argTypes: [null, STRING], result: DYN },
50
67
  "event.set": { argTypes: [null, STRING, DYN], result: VOID },
@@ -203,6 +220,11 @@ function buildLibFnSignatures() {
203
220
  * arguments; other receiver representations retain a runtime refusal. */
204
221
  "dyn.keyDelete": { argTypes: [DYN, STRING, BOOL], result: VOID },
205
222
  "dyn.keyDeleteComputed": { argTypes: [DYN, DYN, BOOL], result: VOID },
223
+ /** `delete` on a primitive base: ToPropertyKey of the key, then the
224
+ * ToObject wrapper's own properties (a String's indexes and `length`
225
+ * answer false in sloppy code and throw in strict code). Borrows both
226
+ * operands; answers the delete's value. */
227
+ "dyn.primitiveDelete": { argTypes: [DYN, DYN, BOOL], result: BOOL },
206
228
  "dyn.reflectDeleteProperty": { argTypes: [DYN, DYN], result: BOOL },
207
229
  /** Reflect.has's target check: Node's TypeError for a primitive. */
208
230
  "dyn.reflectHasTarget": { argTypes: [DYN], result: VOID },
@@ -221,6 +243,11 @@ function buildLibFnSignatures() {
221
243
  * whose fallback handles every other value. The key is a literal. */
222
244
  "dyn.typedRefKeyIs": { argTypes: [DYN, STRING], result: BOOL },
223
245
  "dyn.classIs": { argTypes: [DYN, STRING], result: BOOL },
246
+ /** A generated class table's indexed dispatch: the receiver's class key
247
+ * folded to the case it selects, or -1 for a value that is not a capsule
248
+ * or whose key is shorter than four bytes. The table switches on it and
249
+ * keeps its exact key guards (frontend/lowering/class-dynamic-dispatch.ts). */
250
+ "dyn.classHash": { argTypes: [DYN], result: F64 },
224
251
  /** Destructuring pack over a dyn source — `const [a, b] = d`, a
225
252
  * destructured dyn callback param (args: the source and the STATIC
226
253
  * TypeError spelling, "" when the source has none — both borrowed;
@@ -379,6 +406,11 @@ function buildLibFnSignatures() {
379
406
  * a promise that adopts a thenable's settlement, or a promise fulfilled
380
407
  * with the value. The second argument reads `then` as above. */
381
408
  "dyn.promiseResolve": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
409
+ /** `Promise.<s>.call(C, value)` in a JavaScript source (scr_js_
410
+ * promise_generic.c): the static's name, the `this` constructor and the
411
+ * one argument the algorithm takes. Answers the capability's promise as
412
+ * a checked-dynamic value (a foreign C may answer anything). */
413
+ "promise.genericStatic": { argTypes: [STRING, DYN, DYN], result: DYN },
382
414
  /** Bare `typeof v` on a dyn value AS A STRING (arg: the dyn value,
383
415
  * borrowed; result: an owned string) — the dyn kind's JS answer:
384
416
  * undefined→"undefined", null/object/array/bytes→"object" (JS's oldest
@@ -429,6 +461,12 @@ function buildLibFnSignatures() {
429
461
  * setInterval and 2 for a node:timers import, plus 4 for a delay read
430
462
  * from an array element. */
431
463
  "timers.userDelay": { argTypes: [F64, F64], result: F64 },
464
+ /** A timer callback that runs with `this` bound to its handle, as Node
465
+ * calls it with the Timeout or Immediate (scr_timer_this_callback). */
466
+ "timers.thisCallback": {
467
+ argTypes: [{ kind: "func", params: [], ret: VOID }],
468
+ result: { kind: "func", params: [], ret: VOID },
469
+ },
432
470
  /** The repeating timer pair. setInterval takes (callback, ms) like
433
471
  * setTimeout and RETURNS the f64 handle the fallback declarations
434
472
  * promise (ids start at 1, so truthiness narrowing works); the loop
@@ -604,6 +642,27 @@ function buildLibFnSignatures() {
604
642
  /** process.stdin.on/once('keypress', cb) (scr_readline_tty.c): cb is the
605
643
  * listener as a checked-dynamic function, called with (str, key). */
606
644
  "stdin.onKeypress": { argTypes: [DYN, BOOL], result: VOID },
645
+ /** process.stdin.on/once("readable", cb): the paused-mode event —
646
+ * input stays buffered for read(), and the listener (no parameters)
647
+ * runs on the next tick when input arrives while a read wanted more,
648
+ * and once at EOF. Like a 'data' listener it keeps the loop alive
649
+ * until EOF. Never throws. */
650
+ "stdin.onReadable": { argTypes: [{ kind: "func", params: [], ret: VOID }, BOOL], result: VOID },
651
+ /** process.stdin.pause()/resume(): Node's flowing flag. Buffered
652
+ * input stops reaching 'data' listeners while paused and flows again
653
+ * on resume. */
654
+ "stdin.pause": { argTypes: [], result: VOID },
655
+ "stdin.resume": { argTypes: [], result: VOID },
656
+ /** process.stdin.isPaused() — true in paused mode, which a 'readable'
657
+ * listener pins. */
658
+ "stdin.isPaused": { argTypes: [], result: BOOL },
659
+ /** process.stdin.readableLength — bytes buffered for read(). */
660
+ "stdin.readableLength": { argTypes: [], result: F64 },
661
+ /** process.stdin.read([size]): args [all bool, size]. Readable#read's
662
+ * size coercion (parseInt, NaN reads everything held, non-positive
663
+ * reads nothing) and its ERR_OUT_OF_RANGE above 1 GiB; the result is
664
+ * the `Uint8Array | null` union (the emitter constructs it). */
665
+ "stdin.read": { argTypes: [BOOL, F64], result: VOID },
607
666
  /** The for-await chunk source over process.stdin: no args, result
608
667
  * Promise<Uint8Array> (+1). Fulfills with the next arrived chunk; the
609
668
  * EMPTY bytes value is the done sentinel (POSIX reads never deliver
@@ -806,8 +865,15 @@ function buildLibFnSignatures() {
806
865
  "os.userName": { argTypes: [], result: STRING },
807
866
  "os.userShell": { argTypes: [], result: STRING },
808
867
  "os.userHomedir": { argTypes: [], result: STRING },
868
+ /** The same three fields as Buffers (os.userInfo({ encoding: 'buffer' })). */
869
+ "os.userNameBuf": { argTypes: [], result: BYTES_U8 },
870
+ "os.userShellBuf": { argTypes: [], result: BYTES_U8 },
871
+ "os.userHomedirBuf": { argTypes: [], result: BYTES_U8 },
809
872
  "os.userUid": { argTypes: [], result: F64 },
810
873
  "os.userGid": { argTypes: [], result: F64 },
874
+ /** The single passwd lookup the field libCalls above read: one per
875
+ * userInfo() record instead of one per field. */
876
+ "os.userInfoBegin": { argTypes: [], result: VOID },
811
877
  "os.tmpdir": { argTypes: [], result: STRING },
812
878
  // Result is the call site's Dict<NetworkInterfaceInfo[]> record (VOID is
813
879
  // the dgram.address sentinel — the libCall case checks the structure).
@@ -1026,6 +1092,9 @@ function buildLibFnSignatures() {
1026
1092
  "sym.keyFor": { argTypes: [SYMBOL_T], result: VOID },
1027
1093
  "sym.desc": { argTypes: [SYMBOL_T], result: VOID },
1028
1094
  "sym.toString": { argTypes: [SYMBOL_T], result: STRING },
1095
+ /** Symbol.keyFor called through its function value: the key or
1096
+ * undefined, or Node's TypeError for a value that is not a symbol. */
1097
+ "sym.keyForDyn": { argTypes: [DYN], result: DYN },
1029
1098
  /** Engine-free arbitrary-precision bigint operations (scr_bigint.c).
1030
1099
  * parse accepts the ECMAScript BigInt string grammar; fromF64 accepts
1031
1100
  * finite integral Numbers. Arithmetic returns fresh immutable values.
@@ -1076,6 +1145,10 @@ function buildLibFnSignatures() {
1076
1145
  "url.canParseBase": { argTypes: [STRING, STRING], result: BOOL },
1077
1146
  "url.parse": { argTypes: [STRING], result: DYN },
1078
1147
  "url.parseBase": { argTypes: [STRING, STRING], result: DYN },
1148
+ /** URL.revokeObjectURL(id): the id arrives already converted. A
1149
+ * compiled program registers no blob URLs, so Node's registry lookup
1150
+ * always misses and the call answers undefined. Never throws. */
1151
+ "url.revokeObjectURL": { argTypes: [STRING], result: VOID },
1079
1152
  "url.protocol": { argTypes: [URL_T], result: STRING },
1080
1153
  "url.origin": { argTypes: [URL_T], result: STRING },
1081
1154
  "url.username": { argTypes: [URL_T], result: STRING },
@@ -1294,17 +1367,18 @@ function buildLibFnSignatures() {
1294
1367
  "fs.statfsSync": { argTypes: [DYN, DYN], result: DYN },
1295
1368
  "fs.readlinkSyncStr": { argTypes: [DYN, DYN], result: STRING },
1296
1369
  "fs.readlinkSyncBuffer": { argTypes: [DYN, DYN], result: BYTES_U8 },
1297
- /** fs.openSync(path, flags) → the raw fd as f64; fs.readSync/fs.writeSync
1298
- * over Buffer windows perform sequential I/O when position is -1 and
1299
- * offset-preserving positioned I/O otherwise; fs.writeStrSync is the
1300
- * utf8 string twin; and fs.closeSync(fd) closes the descriptor. This is
1301
- * the fd slice behind spawn/log-processing forms.
1370
+ /** fs.openSync(path, flags, mode) → the raw fd as f64; fs.readSync/
1371
+ * fs.writeSync over Buffer windows perform sequential I/O when position
1372
+ * is -1 and offset-preserving positioned I/O otherwise; fs.writeStrSync
1373
+ * is the utf8 string twin; and fs.closeSync(fd) closes the descriptor.
1374
+ * This is the fd slice behind spawn/log-processing forms.
1302
1375
  * flags is Node's string
1303
1376
  * grammar ("r", "w", "a" and the +/x variants; unknown flags throw
1304
- * Node's ERR_INVALID_ARG_VALUE TypeError text). All throw Node-shaped
1305
- * fs errors (openSync ENOENT/EACCES..., readSync EBADF/range errors,
1306
- * closeSync EBADF). */
1307
- "fs.openSync": { argTypes: [STRING, STRING], result: F64 },
1377
+ * Node's ERR_INVALID_ARG_VALUE TypeError text), and mode is open(2)'s
1378
+ * creation mode (Node's 0o666 default, ERR_OUT_OF_RANGE outside
1379
+ * 0..0xFFFFFFFF). All throw Node-shaped fs errors (openSync
1380
+ * ENOENT/EACCES..., readSync EBADF/range errors, closeSync EBADF). */
1381
+ "fs.openSync": { argTypes: [STRING, STRING, F64], result: F64 },
1308
1382
  "fs.openNumericSync": { argTypes: [STRING, F64, F64], result: F64 },
1309
1383
  "fs.readSync": { argTypes: [F64, BYTES_U8, F64, F64, F64], result: F64 },
1310
1384
  "fs.readSyncDyn": { argTypes: [DYN, DYN, DYN, DYN, DYN], result: F64 },
@@ -1578,6 +1652,40 @@ function buildLibFnSignatures() {
1578
1652
  argTypes: [STRING, arrayOf(STRING), F64, STRING, STRING],
1579
1653
  result: SPAWNRES_T,
1580
1654
  },
1655
+ /** spawnSync with the `cwd`, `input`, and `shell` options (the
1656
+ * SCR_CHILD_CP_OPTIONS build of scr_child.c): the cp.spawnSyncOpts
1657
+ * contract plus the child's working directory ("" = inherit), stdin
1658
+ * input (has_input false leaves fd 0 to the stdio mode — an absent
1659
+ * `input` option; "" pipes an empty stdin), and the shell form
1660
+ * (the complete command line through /bin/sh -c — the compiler emits
1661
+ * it with an empty args list only, since Node warns DEP0190 for
1662
+ * separate shell arguments), exactly Node's reading of the members.
1663
+ * Args (cmd, argv, timeout, killSignal, inMode, outMode, errMode,
1664
+ * cwd, input, hasInput, shell). Never throws, like every spawnSync
1665
+ * form. */
1666
+ "cp.spawnSyncExt": {
1667
+ argTypes: [STRING, arrayOf(STRING), F64, STRING, F64, F64, F64, STRING, STRING, BOOL, BOOL],
1668
+ result: SPAWNRES_T,
1669
+ },
1670
+ /** cp.spawnSyncExt with the `env` option: the trailing [k,v,...] pairs
1671
+ * replace the child's environment. */
1672
+ "cp.spawnSyncExtEnv": {
1673
+ argTypes: [
1674
+ STRING,
1675
+ arrayOf(STRING),
1676
+ F64,
1677
+ STRING,
1678
+ F64,
1679
+ F64,
1680
+ F64,
1681
+ STRING,
1682
+ STRING,
1683
+ BOOL,
1684
+ BOOL,
1685
+ arrayOf(STRING),
1686
+ ],
1687
+ result: SPAWNRES_T,
1688
+ },
1581
1689
  // node:net (scr_net.c). Listener slots are program-dependent closures —
1582
1690
  // null slots, checked in the libCall case (the child.onExit precedent);
1583
1691
  // the zero-param callbacks pin the exact func type here. The trailing
@@ -2148,6 +2256,11 @@ function buildLibFnSignatures() {
2148
2256
  * per-shape adapter — the tags are program data). */
2149
2257
  "http.serverOnConnect": { argTypes: [NETSERVER_T, null, BOOL], result: VOID },
2150
2258
  "http.clientOnUpgrade": { argTypes: [HTTPCLIENTREQ_T, null, BOOL], result: VOID },
2259
+ /** server.on("clientError", (err, socket) => ...): a request the parser
2260
+ * rejects, or a connection error, goes to the listeners instead of the
2261
+ * default 400/413/431 answer, as in Node. (err, socket) and shorter
2262
+ * prefixes (the libCall case checks). */
2263
+ "http.serverOnClientError": { argTypes: [NETSERVER_T, null, BOOL], result: VOID },
2151
2264
  "http.reqSocket": { argTypes: [HTTPREQ_T], result: NETSOCKET_T },
2152
2265
  // reqH2Stream's program-interned Http2Stream | undefined result is
2153
2266
  // checked in the special libCall cases in validate.ts.
@@ -2256,6 +2369,11 @@ function buildLibFnSignatures() {
2256
2369
  "http.clientSignal": { argTypes: [HTTPCLIENTREQ_T, DYN], result: VOID },
2257
2370
  /** options.signal checked before the request is built (ERR_INVALID_ARG_TYPE). */
2258
2371
  "http.clientSignalCheck": { argTypes: [DYN], result: VOID },
2372
+ /** options.protocol checked before the request is built: the declared
2373
+ * scheme against the agent's (the calling module's when the options
2374
+ * carry no Agent value). MAY THROW ERR_INVALID_PROTOCOL. */
2375
+ "http.clientProtocolCheck": { argTypes: [DYN, BOOL], result: VOID },
2376
+ "http.clientProtocolCheckAgent": { argTypes: [DYN, BOOL, DYN], result: VOID },
2259
2377
  /** https.request's servername option, stored for the construction call
2260
2378
  * that follows: the TLS name sent and verified, and part of the pooled
2261
2379
  * socket key. The "https." prefix keeps the TLS unit linked. */
@@ -2300,6 +2418,13 @@ function buildLibFnSignatures() {
2300
2418
  "http.requestDynCb": { argTypes: [DYN, BOOL, null], result: HTTPCLIENTREQ_T },
2301
2419
  "https.requestDyn": { argTypes: [DYN, BOOL], result: HTTPCLIENTREQ_T },
2302
2420
  "https.requestDynCb": { argTypes: [DYN, BOOL, null], result: HTTPCLIENTREQ_T },
2421
+ /** request/get with a URL and an options record: Node's
2422
+ * `{...urlToHttpOptions(new URL(url)), ...options}` merge at run time,
2423
+ * then the walk above. Args (url, options, autoEnd[, cb]). MAY THROW. */
2424
+ "http.requestUrlDyn": { argTypes: [STRING, DYN, BOOL], result: HTTPCLIENTREQ_T },
2425
+ "http.requestUrlDynCb": { argTypes: [STRING, DYN, BOOL, null], result: HTTPCLIENTREQ_T },
2426
+ "https.requestUrlDyn": { argTypes: [STRING, DYN, BOOL], result: HTTPCLIENTREQ_T },
2427
+ "https.requestUrlDynCb": { argTypes: [STRING, DYN, BOOL, null], result: HTTPCLIENTREQ_T },
2303
2428
  /** The paused-mode demux surface (portless's first-byte TLS peek:
2304
2429
  * once('readable') + read(1) + unshift + emit('connection')).
2305
2430
  * sockOnReadable registers a zero-param listener (a consumer: arrived
@@ -2826,10 +2951,11 @@ function buildLibFnSignatures() {
2826
2951
  argTypes: [STRING, arrayOf(STRING), BOOL, STRING, BOOL, arrayOf(STRING), F64],
2827
2952
  result: SPAWNRES_T,
2828
2953
  },
2829
- /** child_process.spawn (scr_child.c + the scr_async.c loop): posix_spawnp
2830
- * with per-slot ignore/inherit/pipe modes (and number output fds), the
2831
- * all-piped Node default, and the child registered with the event loop,
2832
- * which polls waitpid(WNOHANG) at quiescence like timers.
2954
+ /** child_process.spawn (scr_child.c + the scr_async.c loop): posix_spawn
2955
+ * after the PATH search in the parent, with per-slot ignore/inherit/pipe
2956
+ * modes (and number output fds), the all-piped Node default, and the
2957
+ * child registered with the event loop, which polls waitpid(WNOHANG) at
2958
+ * quiescence like timers.
2833
2959
  * NEVER throws: spawn failure defers to the "error" event, Node-exact
2834
2960
  * (the error message is Node's "spawn <cmd> <ERRNO-NAME>"; an "error"
2835
2961
  * event with no listener prints it and exits 1 like an EventEmitter).
@@ -2890,6 +3016,13 @@ function buildLibFnSignatures() {
2890
3016
  * by the validator/backends. The last argument is exec's shell flag:
2891
3017
  * the argv is ["-c", command] and failure messages show the command. */
2892
3018
  "cp.execFile": { argTypes: [STRING, arrayOf(STRING), null, BOOL], result: CHILD_T },
3019
+ /** The same callback slice with the `cwd` option (the
3020
+ * SCR_CHILD_CP_OPTIONS build): the child starts in cwd.
3021
+ * (cmd, argv, callback, shell, cwd). */
3022
+ "cp.execFileCwd": {
3023
+ argTypes: [STRING, arrayOf(STRING), null, BOOL, STRING],
3024
+ result: CHILD_T,
3025
+ },
2893
3026
  // spawn's options form: per-slot stdio modes (0 ignore / 1 inherit /
2894
3027
  // 2 fd) with the out/err fds for mode 2, detached, env replacement
2895
3028
  // pairs, cwd ("" = inherit).
@@ -3327,6 +3460,20 @@ function buildLibFnSignatures() {
3327
3460
  /** Buffer.byteLength as a function value: the encoding arrives at run time. */
3328
3461
  "buffer.byteLenValue": { argTypes: [DYN, DYN], result: F64 },
3329
3462
  "buffer.byteLenStr": { argTypes: [STRING, STRING], result: F64 },
3463
+ /** A run-time Buffer encoding name, normalized the way the method's
3464
+ * owner reads it. normalizeEncoding is Node's getEncodingOps (empty and
3465
+ * unknown names throw ERR_UNKNOWN_ENCODING); normalizeEncodingEmptyUtf8
3466
+ * is Node's normalizeEncoding (an empty name reads as utf8, unknown
3467
+ * names throw); normalizeEncodingOrUtf8 is Buffer.byteLength's read (an
3468
+ * unknown name counts as utf8, nothing throws). */
3469
+ "buffer.normalizeEncoding": { argTypes: [STRING], result: STRING },
3470
+ "buffer.normalizeEncodingEmptyUtf8": { argTypes: [STRING], result: STRING },
3471
+ "buffer.normalizeEncodingOrUtf8": { argTypes: [STRING], result: STRING },
3472
+ /** buf.write with an encoding name known only at run time: Node checks
3473
+ * the offset and length BEFORE it reads the name, so the raw value goes
3474
+ * to the runtime and the range errors win over an unknown name. */
3475
+ "buffer.writeStrDyn": { argTypes: [BYTES_U8, STRING, STRING, F64], result: F64 },
3476
+ "buffer.writeStrDynLen": { argTypes: [BYTES_U8, STRING, STRING, F64, F64], result: F64 },
3330
3477
  "buffer.isEncoding": { argTypes: [STRING], result: BOOL },
3331
3478
  /** Buffer.concat(list, totalLength): the concatenation truncated or
3332
3479
  * zero-padded to the total. THROWS Node's 'length' RangeError on a
@@ -3358,6 +3505,8 @@ function buildLibFnSignatures() {
3358
3505
  "buffer.installValue": { argTypes: [], result: VOID },
3359
3506
  "buffer.staticValue": { argTypes: [STRING], result: DYN },
3360
3507
  "buffer.prototypeMember": { argTypes: [DYN], result: DYN },
3508
+ "buffer.prototypeObject": { argTypes: [], result: DYN },
3509
+ "buffer.slowBuffer": { argTypes: [DYN], result: BYTES_U8 },
3361
3510
  /** fs._toUnixTimestamp(time) over a dyn value: numeric strings and
3362
3511
  * finite numbers coerce (negatives answer now/1000, Node's shape);
3363
3512
  * everything else throws Node's ERR_INVALID_ARG_TYPE. May-throw. */
@@ -3485,6 +3634,8 @@ function buildLibFnSignatures() {
3485
3634
  * receivers are borrowed. */
3486
3635
  /** Connects scr_brotli.c to the zlib engine (%main, before any module). */
3487
3636
  "zlib.brotliInstall": { argTypes: [], result: VOID },
3637
+ /** Connects scr_zstd.c the same way. */
3638
+ "zlib.zstdInstall": { argTypes: [], result: VOID },
3488
3639
  "zlib.streamNew": { argTypes: [F64, DYN], result: VOID },
3489
3640
  "zlib.streamBytesWritten": { argTypes: [null], result: F64 },
3490
3641
  /** `stream instanceof zlib.Gzip`: the borrowed stream and the class's
@@ -3751,6 +3902,14 @@ function buildLibFnSignatures() {
3751
3902
  * (0 String, 1 Number, 2 Boolean), the value it converts, and the three
3752
3903
  * constructor values for the prototypes' `constructor`. */
3753
3904
  "wrapper.new": { argTypes: [F64, DYN, DYN, DYN, DYN], result: DYN },
3905
+ /** %Iterator.prototype% and %Iterator% (scr_js_iterator.c), `new
3906
+ * Iterator()` (always the abstract-class TypeError), Iterator.from over
3907
+ * a checked value, and OrdinaryHasInstance(%Iterator%, value). */
3908
+ "iterator.prototype": { argTypes: [], result: DYN },
3909
+ "iterator.constructor": { argTypes: [], result: DYN },
3910
+ "iterator.construct": { argTypes: [], result: DYN },
3911
+ "iterator.from": { argTypes: [DYN], result: DYN },
3912
+ "iterator.instanceOf": { argTypes: [DYN], result: BOOL },
3754
3913
  /** ToObject (scr_js_wrapper_to_object): a wrapper for a primitive, the
3755
3914
  * value for an object, a fresh object for null/undefined; then the
3756
3915
  * three constructor values. */
@@ -3774,6 +3933,12 @@ function buildLibFnSignatures() {
3774
3933
  * (scr_js_wrapper_this_string). */
3775
3934
  "wrapper.isStringMethod": { argTypes: [DYN, STRING], result: BOOL },
3776
3935
  "wrapper.thisString": { argTypes: [DYN, STRING], result: DYN },
3936
+ /** Boolean.prototype as a value in a JavaScript source: the wrapper
3937
+ * unit's Boolean prototype object (the one `new Boolean(v)` instances
3938
+ * inherit from), so its valueOf/toString accept a primitive boolean or
3939
+ * a Boolean wrapper receiver and throw Node's brand-check TypeError for
3940
+ * a foreign one. `constructor` is the compiled Boolean constructor. */
3941
+ "wrapper.booleanPrototype": { argTypes: [DYN], result: DYN },
3777
3942
  "fs.callbackValue": { argTypes: [STRING], result: DYN },
3778
3943
  "fs.callbackCall": { argTypes: [STRING, DYN], result: DYN },
3779
3944
  "process.hrtimeValue": { argTypes: [], result: DYN },
@@ -3957,10 +4122,20 @@ function buildLibFnSignatures() {
3957
4122
  "console.clear": { argTypes: [], result: VOID },
3958
4123
  "console.table": { argTypes: [DYN, DYN], result: VOID },
3959
4124
  "console.dirDyn": { argTypes: [DYN, F64], result: STRING },
4125
+ "console.dirHidden": { argTypes: [DYN, F64], result: STRING },
3960
4126
  /** A native reference to the global object; known names retain value fences. */
3961
4127
  "global.native": { argTypes: [arrayOf(STRING)], result: DYN },
4128
+ /** Arms the runtime check for the Node globals the native runtime does not
4129
+ * implement (host-globals.ts): the compiler's derived name table. */
4130
+ "global.hostAbsent": { argTypes: [arrayOf(STRING)], result: VOID },
4131
+ /** `key in globalThis`: the host-global check, then the global object's
4132
+ * own presence answer (scr_global_host_absent.c). */
4133
+ "dyn.globalHas": { argTypes: [STRING], result: BOOL },
3962
4134
  /** Installs the program's builtin-global lookup (global-values.ts). */
3963
4135
  "global.installValues": { argTypes: [DYN], result: VOID },
4136
+ /** Installs the program's static-member lookup for builtin constructor
4137
+ * values (builtin-statics.ts). */
4138
+ "dyn.installBuiltinStatics": { argTypes: [DYN], result: VOID },
3964
4139
  /** The keys `for (key in globalThis)` visits, as a fresh object. */
3965
4140
  "global.forInObject": { argTypes: [], result: DYN },
3966
4141
  /** Node's navigator global (scr_node_builtin.c). */
@@ -4075,6 +4250,15 @@ function buildLibFnSignatures() {
4075
4250
  "sharedArrayBuffer.new": { argTypes: [DYN], result: DYN },
4076
4251
  "sharedArrayBuffer.is": { argTypes: [DYN], result: BOOL },
4077
4252
  "arrayBuffer.new": { argTypes: [DYN], result: DYN },
4253
+ /** `new ArrayBuffer(len, { maxByteLength })` in a JavaScript source
4254
+ * (t262-dc C2): the maxByteLength reserved up front, the visible length
4255
+ * len. */
4256
+ "arrayBuffer.newResizable": { argTypes: [DYN, DYN], result: DYN },
4257
+ /** `new SharedArrayBuffer(len, { maxByteLength })`: the same, growable. */
4258
+ "sharedArrayBuffer.newGrowable": { argTypes: [DYN, DYN], result: DYN },
4259
+ /** The %main prologue call that arms scr_js_buffers's views registry
4260
+ * (buffers.ts): never throws, never answers. */
4261
+ "arrayBuffer.armMutable": { argTypes: [], result: VOID },
4078
4262
  "ffi.argument": { argTypes: [DYN, STRING], result: DYN },
4079
4263
  "ffi.memoryModule": { argTypes: [DYN], result: DYN },
4080
4264
  "intl.segmenterNew": { argTypes: [], result: DYN },
@@ -4217,6 +4401,13 @@ function buildLibFnSignatures() {
4217
4401
  "dyn.isExtensible": { argTypes: [DYN], result: BOOL },
4218
4402
  "dyn.seal": { argTypes: [DYN], result: DYN },
4219
4403
  "dyn.isSealed": { argTypes: [DYN], result: BOOL },
4404
+ /** Object.isExtensible / Object.isSealed of a value whose kind is known
4405
+ * only at runtime: a native handle or a promise has no modeled integrity
4406
+ * state, so these refuse (SC2020) instead of answering like
4407
+ * dyn.isExtensible/dyn.isSealed, which the static arms (a class
4408
+ * instance's checked view, a typed function value) keep using. */
4409
+ "dyn.isExtensibleQuery": { argTypes: [DYN], result: BOOL },
4410
+ "dyn.isSealedQuery": { argTypes: [DYN], result: BOOL },
4220
4411
  "dyn.objValues": { argTypes: [DYN], result: DYN },
4221
4412
  /** Object.values as a native vector of checked values, for results the
4222
4413
  * program consumes directly (for-of, index reads, read-only methods). */
@@ -4970,9 +5161,27 @@ function buildLibFnSignatures() {
4970
5161
  * 'not supported yet' Error. */
4971
5162
  "insp.dynHidden": { argTypes: [DYN, F64], result: STRING },
4972
5163
  "insp.begin": { argTypes: [F64], result: VOID },
4973
- /** util.inspect's breakLength, compact (-1 for false) and sorted for the
4974
- * renders that follow; the call site restores 80, 3 and false afterwards. */
4975
- "insp.layout": { argTypes: [F64, F64, BOOL], result: VOID },
5164
+ /** util.inspect's breakLength, compact (-1 for false), sorted and
5165
+ * maxArrayLength (Infinity for null) for the renders that follow; the
5166
+ * call site restores 80, 3, false and 100 afterwards. */
5167
+ "insp.layout": { argTypes: [F64, F64, BOOL, F64], result: VOID },
5168
+ /** The render's maxArrayLength, which the array, Map and Set traversals
5169
+ * read: the option applies at every nesting level. */
5170
+ "insp.maxArrayLength": { argTypes: [], result: F64 },
5171
+ /** ctx.maxStringLength for the renders that follow; answers the previous
5172
+ * value so the call site can restore it. */
5173
+ "insp.maxStringLength": { argTypes: [F64], result: F64 },
5174
+ /** ctx.getters for the renders that follow: whether an accessor
5175
+ * property's getter runs (0 the labels only, 1 every getter, 2 the
5176
+ * getters without a setter, 3 the getters with one); answers the previous
5177
+ * value so the call site can restore it. */
5178
+ "insp.getters": { argTypes: [F64], result: F64 },
5179
+ /** The current ctx.getters, which the interned per-type helpers read: the
5180
+ * option is run-time state shared by every call site. */
5181
+ "insp.gettersMode": { argTypes: [], result: F64 },
5182
+ /** An invoked accessor property's value, by the result's kind:
5183
+ * `[Label: <primitive>]` or `[Label] <object>`. */
5184
+ "insp.accessorValue": { argTypes: [DYN, STRING, F64, F64], result: STRING },
4976
5185
  "insp.entry": { argTypes: [STRING, BOOL], result: VOID },
4977
5186
  // Circular references: the receiver slot is program-dependent (any
4978
5187
  // cycle-capable record/array/map/class type — the insp.error precedent).
@@ -4995,6 +5204,21 @@ function buildLibFnSignatures() {
4995
5204
  * (key-order-witness.ts ordered spreads). Both are record types. Never
4996
5205
  * throws. */
4997
5206
  "record.sourceSpread": { argTypes: [null, null], result: VOID },
5207
+ /** `record.sourceShare(built, value)`: the record `built`, of value's
5208
+ * record type, keeps value's kept source too (record-links.ts compose
5209
+ * helpers). Never throws. */
5210
+ "record.sourceShare": { argTypes: [null, null], result: VOID },
5211
+ /** `record.link(copy, source, pair)`: the copy a narrowing conversion
5212
+ * just built links to its source record (IrModule.recordLinks; `pair`
5213
+ * a numLit). Borrows both. Never throws. */
5214
+ "record.link": { argTypes: [null, null, F64], result: VOID },
5215
+ /** `record.linkIs(copy, pair)`: whether the record links to a source
5216
+ * through the pair (a numLit). Never throws. */
5217
+ "record.linkIs": { argTypes: [null, F64], result: BOOL },
5218
+ /** `record.linkSource(copy, pair)`: the source a record links to
5219
+ * through the pair, which the caller has tested (record.linkIs); its
5220
+ * type is the pair's source type. Never throws. */
5221
+ "record.linkSource": { argTypes: [null, F64], result: VOID },
4998
5222
  /** `record.sourceNote(built, keys)`: the record a width spread just
4999
5223
  * built keeps `keys` (the copy's own keys, in order; declared ones are
5000
5224
  * placeholders) as its kept source when they hold an undeclared key or
@@ -5010,6 +5234,8 @@ function buildLibFnSignatures() {
5010
5234
  * `prefix inner` re-indented at the caller's level (+1). */
5011
5235
  "insp.nestedBegin": { argTypes: [], result: VOID },
5012
5236
  "insp.nestedEnd": { argTypes: [STRING, STRING], result: STRING },
5237
+ /** nestedEnd's restore alone: the caller's context returns. */
5238
+ "insp.nestedRestore": { argTypes: [], result: VOID },
5013
5239
  /** Around a top-level render that an inspection refusal can end: mark
5014
5240
  * records the inspector's frame and nesting depth, unwind (in the
5015
5241
  * render's finally) closes what the render left open above it. */