@scriptc/compiler 0.4.6 → 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 (1082) 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 +29 -6
  4. package/ambient/node-fallback/fs-promises.d.ts +1 -1
  5. package/ambient/node-fallback/fs.d.ts +57 -12
  6. package/ambient/node-fallback/http.d.ts +26 -18
  7. package/ambient/node-fallback/https.d.ts +5 -2
  8. package/ambient/node-fallback/net.d.ts +25 -0
  9. package/ambient/node-fallback/os.d.ts +11 -1
  10. package/ambient/node-fallback/path-posix.d.ts +6 -0
  11. package/ambient/node-fallback/path-win32.d.ts +5 -0
  12. package/ambient/node-fallback/path.d.ts +2 -0
  13. package/ambient/node-fallback/querystring.d.ts +3 -3
  14. package/ambient/node-fallback/zlib.d.ts +31 -2
  15. package/ambient/scriptc-node-fallback.d.ts +95 -20
  16. package/ambient/scriptc.d.ts +7 -2
  17. package/dist/backend/executable-features.js +22 -1
  18. package/dist/backend/executable-features.js.map +1 -1
  19. package/dist/backend/immutability.d.ts +12 -1
  20. package/dist/backend/immutability.js +50 -4
  21. package/dist/backend/immutability.js.map +1 -1
  22. package/dist/backend/immutability.test.js +95 -1
  23. package/dist/backend/immutability.test.js.map +1 -1
  24. package/dist/backend/library-pack.d.ts +6 -0
  25. package/dist/backend/library-pack.js +18 -5
  26. package/dist/backend/library-pack.js.map +1 -1
  27. package/dist/backend/library-pack.test.d.ts +1 -0
  28. package/dist/backend/library-pack.test.js +28 -0
  29. package/dist/backend/library-pack.test.js.map +1 -0
  30. package/dist/backend/linker.d.ts +20 -2
  31. package/dist/backend/linker.js +221 -35
  32. package/dist/backend/linker.js.map +1 -1
  33. package/dist/backend/lld.d.ts +15 -6
  34. package/dist/backend/lld.js +24 -16
  35. package/dist/backend/lld.js.map +1 -1
  36. package/dist/backend/lld.test.js +13 -5
  37. package/dist/backend/lld.test.js.map +1 -1
  38. package/dist/backend/llvm/alloc.d.ts +15 -2
  39. package/dist/backend/llvm/alloc.js +172 -36
  40. package/dist/backend/llvm/alloc.js.map +1 -1
  41. package/dist/backend/llvm/alloc.test.js +69 -1
  42. package/dist/backend/llvm/alloc.test.js.map +1 -1
  43. package/dist/backend/llvm/arenas.d.ts +17 -4
  44. package/dist/backend/llvm/arenas.js +105 -10
  45. package/dist/backend/llvm/arenas.js.map +1 -1
  46. package/dist/backend/llvm/arenas.test.js +229 -0
  47. package/dist/backend/llvm/arenas.test.js.map +1 -1
  48. package/dist/backend/llvm/bytes-alias.js +10 -1
  49. package/dist/backend/llvm/bytes-alias.js.map +1 -1
  50. package/dist/backend/llvm/bytes-headers.js +6 -0
  51. package/dist/backend/llvm/bytes-headers.js.map +1 -1
  52. package/dist/backend/llvm/bytes-loop-versions.test.js +25 -0
  53. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  54. package/dist/backend/llvm/call-lifetimes.js +10 -0
  55. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  56. package/dist/backend/llvm/classes.d.ts +16 -9
  57. package/dist/backend/llvm/classes.js +142 -37
  58. package/dist/backend/llvm/classes.js.map +1 -1
  59. package/dist/backend/llvm/classes.test.js +42 -0
  60. package/dist/backend/llvm/classes.test.js.map +1 -1
  61. package/dist/backend/llvm/constant-callbacks.test.js +50 -1
  62. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  63. package/dist/backend/llvm/cpu-dispatch.d.ts +15 -5
  64. package/dist/backend/llvm/cpu-dispatch.js +34 -9
  65. package/dist/backend/llvm/cpu-dispatch.js.map +1 -1
  66. package/dist/backend/llvm/dyn.d.ts +64 -3
  67. package/dist/backend/llvm/dyn.js +251 -15
  68. package/dist/backend/llvm/dyn.js.map +1 -1
  69. package/dist/backend/llvm/emit-function.js +68 -5
  70. package/dist/backend/llvm/emit-function.js.map +1 -1
  71. package/dist/backend/llvm/emit-module.js +226 -77
  72. package/dist/backend/llvm/emit-module.js.map +1 -1
  73. package/dist/backend/llvm/emit-module.test.d.ts +1 -0
  74. package/dist/backend/llvm/emit-module.test.js +52 -0
  75. package/dist/backend/llvm/emit-module.test.js.map +1 -0
  76. package/dist/backend/llvm/emit-statements.js +138 -34
  77. package/dist/backend/llvm/emit-statements.js.map +1 -1
  78. package/dist/backend/llvm/emitter.d.ts +142 -10
  79. package/dist/backend/llvm/emitter.js +523 -73
  80. package/dist/backend/llvm/emitter.js.map +1 -1
  81. package/dist/backend/llvm/emitter.test.js +31 -3
  82. package/dist/backend/llvm/emitter.test.js.map +1 -1
  83. package/dist/backend/llvm/expr-async.js +19 -1
  84. package/dist/backend/llvm/expr-async.js.map +1 -1
  85. package/dist/backend/llvm/expr-bytes.js +16 -1
  86. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  87. package/dist/backend/llvm/expr-calls.d.ts +4 -1
  88. package/dist/backend/llvm/expr-calls.js +38 -6
  89. package/dist/backend/llvm/expr-calls.js.map +1 -1
  90. package/dist/backend/llvm/expr-dynamic.js +237 -23
  91. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  92. package/dist/backend/llvm/expr-primitives.js +123 -12
  93. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  94. package/dist/backend/llvm/expr-records.d.ts +1 -1
  95. package/dist/backend/llvm/expr-records.js +124 -56
  96. package/dist/backend/llvm/expr-records.js.map +1 -1
  97. package/dist/backend/llvm/expr-stream-bridges.d.ts +8 -0
  98. package/dist/backend/llvm/expr-stream-bridges.js +59 -2
  99. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  100. package/dist/backend/llvm/expr-stream-callbacks.d.ts +16 -0
  101. package/dist/backend/llvm/expr-stream-callbacks.js +206 -20
  102. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  103. package/dist/backend/llvm/integer-values.d.ts +2 -0
  104. package/dist/backend/llvm/integer-values.js +6 -0
  105. package/dist/backend/llvm/integer-values.js.map +1 -1
  106. package/dist/backend/llvm/js-groups.d.ts +21 -0
  107. package/dist/backend/llvm/js-groups.js +277 -0
  108. package/dist/backend/llvm/js-groups.js.map +1 -0
  109. package/dist/backend/llvm/js-ic.d.ts +57 -1
  110. package/dist/backend/llvm/js-ic.js +389 -22
  111. package/dist/backend/llvm/js-ic.js.map +1 -1
  112. package/dist/backend/llvm/lib-dispatch.js +152 -1
  113. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  114. package/dist/backend/llvm/lib-filesystem.js +116 -11
  115. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  116. package/dist/backend/llvm/lib-network.js +33 -6
  117. package/dist/backend/llvm/lib-network.js.map +1 -1
  118. package/dist/backend/llvm/lib-process.js +180 -27
  119. package/dist/backend/llvm/lib-process.js.map +1 -1
  120. package/dist/backend/llvm/lib-shared.js +139 -2
  121. package/dist/backend/llvm/lib-shared.js.map +1 -1
  122. package/dist/backend/llvm/lib-stream.js +67 -0
  123. package/dist/backend/llvm/lib-stream.js.map +1 -1
  124. package/dist/backend/llvm/local-union-storage.test.js +32 -0
  125. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  126. package/dist/backend/llvm/loop-entry-versions.d.ts +2 -2
  127. package/dist/backend/llvm/loop-entry-versions.js +43 -21
  128. package/dist/backend/llvm/loop-entry-versions.js.map +1 -1
  129. package/dist/backend/llvm/loop-state.d.ts +7 -1
  130. package/dist/backend/llvm/loop-state.js +26 -3
  131. package/dist/backend/llvm/loop-state.js.map +1 -1
  132. package/dist/backend/llvm/map-entry-fusion.d.ts +8 -0
  133. package/dist/backend/llvm/map-entry-fusion.js +3 -3
  134. package/dist/backend/llvm/map-entry-fusion.js.map +1 -1
  135. package/dist/backend/llvm/map-number-lookup.d.ts +3 -1
  136. package/dist/backend/llvm/map-number-lookup.js +7 -3
  137. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  138. package/dist/backend/llvm/map-number-lookup.test.js +58 -17
  139. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  140. package/dist/backend/llvm/nullable-unions.js +7 -6
  141. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  142. package/dist/backend/llvm/nullable-unions.test.js +4 -1
  143. package/dist/backend/llvm/nullable-unions.test.js.map +1 -1
  144. package/dist/backend/llvm/receiver-brackets.test.d.ts +1 -0
  145. package/dist/backend/llvm/receiver-brackets.test.js +68 -0
  146. package/dist/backend/llvm/receiver-brackets.test.js.map +1 -0
  147. package/dist/backend/llvm/receivers.js +3 -0
  148. package/dist/backend/llvm/receivers.js.map +1 -1
  149. package/dist/backend/llvm/record-entry-fusion.d.ts +32 -0
  150. package/dist/backend/llvm/record-entry-fusion.js +217 -0
  151. package/dist/backend/llvm/record-entry-fusion.js.map +1 -0
  152. package/dist/backend/llvm/record-results.d.ts +5 -2
  153. package/dist/backend/llvm/record-results.js +13 -12
  154. package/dist/backend/llvm/record-results.js.map +1 -1
  155. package/dist/backend/llvm/record-views.d.ts +22 -2
  156. package/dist/backend/llvm/record-views.js +147 -12
  157. package/dist/backend/llvm/record-views.js.map +1 -1
  158. package/dist/backend/llvm/record-views.test.js +76 -0
  159. package/dist/backend/llvm/record-views.test.js.map +1 -1
  160. package/dist/backend/llvm/reference-effects.js +1 -0
  161. package/dist/backend/llvm/reference-effects.js.map +1 -1
  162. package/dist/backend/llvm/reference-writes.js +4 -0
  163. package/dist/backend/llvm/reference-writes.js.map +1 -1
  164. package/dist/backend/llvm/region-ir.js +1 -0
  165. package/dist/backend/llvm/region-ir.js.map +1 -1
  166. package/dist/backend/llvm/region-sites.d.ts +18 -0
  167. package/dist/backend/llvm/region-sites.js +79 -1
  168. package/dist/backend/llvm/region-sites.js.map +1 -1
  169. package/dist/backend/llvm/runtime-registries.test.js +53 -6
  170. package/dist/backend/llvm/runtime-registries.test.js.map +1 -1
  171. package/dist/backend/llvm/serialized-ir-emission.test.js +3 -1
  172. package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
  173. package/dist/backend/llvm/shapes.d.ts +36 -3
  174. package/dist/backend/llvm/shapes.js +201 -16
  175. package/dist/backend/llvm/shapes.js.map +1 -1
  176. package/dist/backend/llvm/shapes.test.js +4 -0
  177. package/dist/backend/llvm/shapes.test.js.map +1 -1
  178. package/dist/backend/llvm/speculative-integers.d.ts +10 -1
  179. package/dist/backend/llvm/speculative-integers.js +59 -8
  180. package/dist/backend/llvm/speculative-integers.js.map +1 -1
  181. package/dist/backend/llvm/stack-objects.d.ts +1 -2
  182. package/dist/backend/llvm/stack-objects.js +8 -5
  183. package/dist/backend/llvm/stack-objects.js.map +1 -1
  184. package/dist/backend/llvm/unwind-abi.d.ts +3 -3
  185. package/dist/backend/llvm/unwind-abi.js +8 -3
  186. package/dist/backend/llvm/unwind-abi.js.map +1 -1
  187. package/dist/backend/llvm/walkers.d.ts +12 -0
  188. package/dist/backend/llvm/walkers.js +47 -3
  189. package/dist/backend/llvm/walkers.js.map +1 -1
  190. package/dist/backend/may-throw.js +12 -2
  191. package/dist/backend/may-throw.js.map +1 -1
  192. package/dist/backend/may-throw.test.js +13 -0
  193. package/dist/backend/may-throw.test.js.map +1 -1
  194. package/dist/backend/native/contracts.d.ts +94 -0
  195. package/dist/backend/native/executable.js +134 -10
  196. package/dist/backend/native/executable.js.map +1 -1
  197. package/dist/backend/native/helper-identity-record.d.ts +11 -0
  198. package/dist/backend/native/helper-identity-record.js +76 -0
  199. package/dist/backend/native/helper-identity-record.js.map +1 -0
  200. package/dist/backend/native/helper-identity-record.test.d.ts +1 -0
  201. package/dist/backend/native/helper-identity-record.test.js +101 -0
  202. package/dist/backend/native/helper-identity-record.test.js.map +1 -0
  203. package/dist/backend/native/library.js +10 -2
  204. package/dist/backend/native/library.js.map +1 -1
  205. package/dist/backend/native/runtime-inputs.js +8 -1
  206. package/dist/backend/native/runtime-inputs.js.map +1 -1
  207. package/dist/backend/native/vendor.d.ts +1 -1
  208. package/dist/backend/native/vendor.js +1 -1
  209. package/dist/backend/native/vendor.js.map +1 -1
  210. package/dist/backend/native-codegen-core.d.ts +13 -10
  211. package/dist/backend/native-codegen-core.js +26 -13
  212. package/dist/backend/native-codegen-core.js.map +1 -1
  213. package/dist/backend/native-codegen.js +30 -8
  214. package/dist/backend/native-codegen.js.map +1 -1
  215. package/dist/backend/native-codegen.test.js +110 -14
  216. package/dist/backend/native-codegen.test.js.map +1 -1
  217. package/dist/backend/native-link-info-core.d.ts +72 -0
  218. package/dist/backend/native-link-info-core.js.map +1 -1
  219. package/dist/backend/native-link-info.js +1 -0
  220. package/dist/backend/native-link-info.js.map +1 -1
  221. package/dist/backend/native-profile.d.ts +4 -1
  222. package/dist/backend/native-profile.js +12 -1
  223. package/dist/backend/native-profile.js.map +1 -1
  224. package/dist/backend/native-profile.test.js +10 -0
  225. package/dist/backend/native-profile.test.js.map +1 -1
  226. package/dist/backend/publication.d.ts +4 -1
  227. package/dist/backend/publication.js +4 -2
  228. package/dist/backend/publication.js.map +1 -1
  229. package/dist/backend/runtime-abi.d.ts +2 -2
  230. package/dist/backend/runtime-abi.js +2 -2
  231. package/dist/backend/runtime-pack-core.d.ts +46 -7
  232. package/dist/backend/runtime-pack-core.js +37 -2
  233. package/dist/backend/runtime-pack-core.js.map +1 -1
  234. package/dist/backend/runtime-pack-native.d.ts +18 -1
  235. package/dist/backend/runtime-pack-native.js +138 -29
  236. package/dist/backend/runtime-pack-native.js.map +1 -1
  237. package/dist/backend/runtime-pack-native.test.js +166 -4
  238. package/dist/backend/runtime-pack-native.test.js.map +1 -1
  239. package/dist/backend/runtime-pack-targets.test.js +3 -1
  240. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  241. package/dist/backend/runtime-pack.d.ts +7 -0
  242. package/dist/backend/runtime-pack.js +25 -3
  243. package/dist/backend/runtime-pack.js.map +1 -1
  244. package/dist/backend/runtime-pack.test.js +213 -12
  245. package/dist/backend/runtime-pack.test.js.map +1 -1
  246. package/dist/backend/tree-classes.d.ts +42 -0
  247. package/dist/backend/tree-classes.js +723 -0
  248. package/dist/backend/tree-classes.js.map +1 -0
  249. package/dist/backend/tree-classes.test.d.ts +1 -0
  250. package/dist/backend/tree-classes.test.js +338 -0
  251. package/dist/backend/tree-classes.test.js.map +1 -0
  252. package/dist/backend/vendor-archives.d.ts +8 -1
  253. package/dist/backend/vendor-archives.js +313 -8
  254. package/dist/backend/vendor-archives.js.map +1 -1
  255. package/dist/backend/vendor-inputs.d.ts +60 -3
  256. package/dist/backend/vendor-inputs.js +109 -3
  257. package/dist/backend/vendor-inputs.js.map +1 -1
  258. package/dist/backend/vendor-inputs.test.js +62 -1
  259. package/dist/backend/vendor-inputs.test.js.map +1 -1
  260. package/dist/backend/warm-cache.js +2 -0
  261. package/dist/backend/warm-cache.js.map +1 -1
  262. package/dist/compat/fetch-profile.d.ts +7 -1
  263. package/dist/compat/fetch-profile.js +25 -12
  264. package/dist/compat/fetch-profile.js.map +1 -1
  265. package/dist/compile-types.d.ts +7 -0
  266. package/dist/contracts/check.d.ts +3 -0
  267. package/dist/contracts/check.js +18 -5
  268. package/dist/contracts/check.js.map +1 -1
  269. package/dist/coverage/report.js +47 -0
  270. package/dist/coverage/report.js.map +1 -1
  271. package/dist/coverage/surface-manifest.js +1 -1
  272. package/dist/coverage/surface-manifest.js.map +1 -1
  273. package/dist/diagnostics/codes.d.ts +14 -0
  274. package/dist/diagnostics/codes.js +14 -0
  275. package/dist/diagnostics/codes.js.map +1 -1
  276. package/dist/diagnostics/diagnostic.d.ts +68 -0
  277. package/dist/diagnostics/diagnostic.js +186 -6
  278. package/dist/diagnostics/diagnostic.js.map +1 -1
  279. package/dist/diagnostics/dynamic-tier.js +3 -1
  280. package/dist/diagnostics/dynamic-tier.js.map +1 -1
  281. package/dist/diagnostics/envelope.d.ts +18 -0
  282. package/dist/diagnostics/envelope.js.map +1 -1
  283. package/dist/executable/executable-cache.d.ts +48 -0
  284. package/dist/executable/executable-cache.js +38 -0
  285. package/dist/executable/executable-cache.js.map +1 -1
  286. package/dist/executable/executable-cache.test.js +127 -1
  287. package/dist/executable/executable-cache.test.js.map +1 -1
  288. package/dist/executable/prepare.d.ts +13 -3
  289. package/dist/executable/prepare.js +438 -234
  290. package/dist/executable/prepare.js.map +1 -1
  291. package/dist/frontend/analysis.js +200 -18
  292. package/dist/frontend/analysis.js.map +1 -1
  293. package/dist/frontend/builtin-modules.d.ts +4 -0
  294. package/dist/frontend/builtin-modules.js +10 -0
  295. package/dist/frontend/builtin-modules.js.map +1 -1
  296. package/dist/frontend/early-errors.d.ts +24 -0
  297. package/dist/frontend/early-errors.js +836 -0
  298. package/dist/frontend/early-errors.js.map +1 -0
  299. package/dist/frontend/early-errors.test.d.ts +1 -0
  300. package/dist/frontend/early-errors.test.js +207 -0
  301. package/dist/frontend/early-errors.test.js.map +1 -0
  302. package/dist/frontend/inferred-js-diagnostics.test.js +88 -0
  303. package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
  304. package/dist/frontend/input-tracker.d.ts +47 -0
  305. package/dist/frontend/input-tracker.js +173 -36
  306. package/dist/frontend/input-tracker.js.map +1 -1
  307. package/dist/frontend/input-tracker.test.js +86 -2
  308. package/dist/frontend/input-tracker.test.js.map +1 -1
  309. package/dist/frontend/js-inference.d.ts +2 -0
  310. package/dist/frontend/js-inference.js +18 -0
  311. package/dist/frontend/js-inference.js.map +1 -0
  312. package/dist/frontend/jsx-opinion-sites.test.d.ts +1 -0
  313. package/dist/frontend/jsx-opinion-sites.test.js +86 -0
  314. package/dist/frontend/jsx-opinion-sites.test.js.map +1 -0
  315. package/dist/frontend/lib-exports.d.ts +23 -4
  316. package/dist/frontend/lib-exports.js +98 -26
  317. package/dist/frontend/lib-exports.js.map +1 -1
  318. package/dist/frontend/lowering/binding-analysis.d.ts +2 -1
  319. package/dist/frontend/lowering/binding-analysis.js +86 -4
  320. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  321. package/dist/frontend/lowering/buffers.d.ts +8 -0
  322. package/dist/frontend/lowering/buffers.js +43 -0
  323. package/dist/frontend/lowering/buffers.js.map +1 -0
  324. package/dist/frontend/lowering/builtin-calls.js +13 -0
  325. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  326. package/dist/frontend/lowering/builtin-namespaces.d.ts +3 -2
  327. package/dist/frontend/lowering/builtin-namespaces.js +41 -3
  328. package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
  329. package/dist/frontend/lowering/builtin-statics.d.ts +24 -0
  330. package/dist/frontend/lowering/builtin-statics.js +407 -0
  331. package/dist/frontend/lowering/builtin-statics.js.map +1 -0
  332. package/dist/frontend/lowering/builtins/arguments.d.ts +4 -0
  333. package/dist/frontend/lowering/builtins/arguments.js +12 -0
  334. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  335. package/dist/frontend/lowering/builtins/atomics.d.ts +6 -1
  336. package/dist/frontend/lowering/builtins/atomics.js +87 -1
  337. package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
  338. package/dist/frontend/lowering/builtins/child-process-methods.d.ts +7 -0
  339. package/dist/frontend/lowering/builtins/child-process-methods.js +52 -12
  340. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  341. package/dist/frontend/lowering/builtins/child-process-sync.d.ts +13 -0
  342. package/dist/frontend/lowering/builtins/child-process-sync.js +1 -13
  343. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  344. package/dist/frontend/lowering/builtins/child-process.d.ts +10 -4
  345. package/dist/frontend/lowering/builtins/child-process.js +565 -28
  346. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  347. package/dist/frontend/lowering/builtins/compression.d.ts +2 -2
  348. package/dist/frontend/lowering/builtins/compression.js +41 -21
  349. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  350. package/dist/frontend/lowering/builtins/constants.js +7 -2
  351. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  352. package/dist/frontend/lowering/builtins/dates.d.ts +1 -1
  353. package/dist/frontend/lowering/builtins/dates.js +23 -1
  354. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  355. package/dist/frontend/lowering/builtins/environment.d.ts +55 -0
  356. package/dist/frontend/lowering/builtins/environment.js +213 -2
  357. package/dist/frontend/lowering/builtins/environment.js.map +1 -1
  358. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -0
  359. package/dist/frontend/lowering/builtins/filesystem-calls.js +75 -18
  360. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  361. package/dist/frontend/lowering/builtins/filesystem.d.ts +25 -7
  362. package/dist/frontend/lowering/builtins/filesystem.js +185 -16
  363. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  364. package/dist/frontend/lowering/builtins/json.js +4 -0
  365. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  366. package/dist/frontend/lowering/builtins/module-calls.js +42 -3
  367. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  368. package/dist/frontend/lowering/builtins/module-resolution.d.ts +8 -0
  369. package/dist/frontend/lowering/builtins/module-resolution.js +31 -5
  370. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
  371. package/dist/frontend/lowering/builtins/numbers.d.ts +4 -1
  372. package/dist/frontend/lowering/builtins/numbers.js +10 -2
  373. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  374. package/dist/frontend/lowering/builtins/operating-system.d.ts +9 -5
  375. package/dist/frontend/lowering/builtins/operating-system.js +101 -20
  376. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  377. package/dist/frontend/lowering/builtins/process.d.ts +18 -2
  378. package/dist/frontend/lowering/builtins/process.js +386 -25
  379. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  380. package/dist/frontend/lowering/builtins/promises.js +169 -8
  381. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  382. package/dist/frontend/lowering/builtins/properties.js +6 -2
  383. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  384. package/dist/frontend/lowering/builtins/querystring.d.ts +8 -0
  385. package/dist/frontend/lowering/builtins/querystring.js +202 -18
  386. package/dist/frontend/lowering/builtins/querystring.js.map +1 -1
  387. package/dist/frontend/lowering/builtins/readline.d.ts +6 -4
  388. package/dist/frontend/lowering/builtins/readline.js +200 -38
  389. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  390. package/dist/frontend/lowering/builtins/reflection.js +60 -1
  391. package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
  392. package/dist/frontend/lowering/builtins/text-codecs.js +208 -59
  393. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
  394. package/dist/frontend/lowering/builtins/url.js +55 -13
  395. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  396. package/dist/frontend/lowering/builtins/v8.d.ts +5 -5
  397. package/dist/frontend/lowering/builtins/v8.js +7 -5
  398. package/dist/frontend/lowering/builtins/v8.js.map +1 -1
  399. package/dist/frontend/lowering/builtins/web-streams-dyn.d.ts +17 -2
  400. package/dist/frontend/lowering/builtins/web-streams-dyn.js +97 -9
  401. package/dist/frontend/lowering/builtins/web-streams-dyn.js.map +1 -1
  402. package/dist/frontend/lowering/builtins/webassembly.js +2 -0
  403. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
  404. package/dist/frontend/lowering/call-arguments.d.ts +10 -0
  405. package/dist/frontend/lowering/call-arguments.js +37 -2
  406. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  407. package/dist/frontend/lowering/call-signatures.d.ts +10 -0
  408. package/dist/frontend/lowering/call-signatures.js +180 -0
  409. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  410. package/dist/frontend/lowering/cjs-exports-object.d.ts +3 -0
  411. package/dist/frontend/lowering/cjs-exports-object.js +1 -1
  412. package/dist/frontend/lowering/cjs-exports-object.js.map +1 -1
  413. package/dist/frontend/lowering/cjs-inline-require.js +5 -0
  414. package/dist/frontend/lowering/cjs-inline-require.js.map +1 -1
  415. package/dist/frontend/lowering/class-construction.d.ts +14 -2
  416. package/dist/frontend/lowering/class-construction.js +99 -5
  417. package/dist/frontend/lowering/class-construction.js.map +1 -1
  418. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +14 -0
  419. package/dist/frontend/lowering/class-dynamic-dispatch.js +1376 -1009
  420. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  421. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +158 -0
  422. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  423. package/dist/frontend/lowering/class-protocols.js +59 -10
  424. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  425. package/dist/frontend/lowering/class-prototypes.js +20 -15
  426. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  427. package/dist/frontend/lowering/class-runtime-statics.d.ts +8 -0
  428. package/dist/frontend/lowering/class-runtime-statics.js +35 -1
  429. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  430. package/dist/frontend/lowering/class-unions.js +21 -4
  431. package/dist/frontend/lowering/class-unions.js.map +1 -1
  432. package/dist/frontend/lowering/class-views.d.ts +13 -0
  433. package/dist/frontend/lowering/class-views.js +51 -0
  434. package/dist/frontend/lowering/class-views.js.map +1 -0
  435. package/dist/frontend/lowering/coercions/function-adapters.d.ts +15 -1
  436. package/dist/frontend/lowering/coercions/function-adapters.js +63 -10
  437. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  438. package/dist/frontend/lowering/coercions/state.d.ts +15 -0
  439. package/dist/frontend/lowering/coercions/state.js +24 -0
  440. package/dist/frontend/lowering/coercions/state.js.map +1 -1
  441. package/dist/frontend/lowering/coercions/structural-plans.js +75 -3
  442. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  443. package/dist/frontend/lowering/coercions/structural.js +39 -2
  444. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  445. package/dist/frontend/lowering/coercions/unions.d.ts +2 -1
  446. package/dist/frontend/lowering/coercions/unions.js +54 -10
  447. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  448. package/dist/frontend/lowering/constructor-returns.d.ts +23 -2
  449. package/dist/frontend/lowering/constructor-returns.js +284 -58
  450. package/dist/frontend/lowering/constructor-returns.js.map +1 -1
  451. package/dist/frontend/lowering/containers/array-callbacks.d.ts +8 -1
  452. package/dist/frontend/lowering/containers/array-callbacks.js +288 -90
  453. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  454. package/dist/frontend/lowering/containers/array-construction.js +37 -8
  455. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  456. package/dist/frontend/lowering/containers/array-from-async.js +139 -3
  457. package/dist/frontend/lowering/containers/array-from-async.js.map +1 -1
  458. package/dist/frontend/lowering/containers/array-iteration.d.ts +14 -4
  459. package/dist/frontend/lowering/containers/array-iteration.js +24 -7
  460. package/dist/frontend/lowering/containers/array-iteration.js.map +1 -1
  461. package/dist/frontend/lowering/containers/array-methods.js +30 -11
  462. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  463. package/dist/frontend/lowering/containers/bytes.d.ts +6 -0
  464. package/dist/frontend/lowering/containers/bytes.js +450 -86
  465. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  466. package/dist/frontend/lowering/containers/callback-arguments.d.ts +16 -0
  467. package/dist/frontend/lowering/containers/callback-arguments.js +74 -12
  468. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  469. package/dist/frontend/lowering/containers/collection-grouping.js +421 -2
  470. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
  471. package/dist/frontend/lowering/containers/collection-methods.js +52 -17
  472. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  473. package/dist/frontend/lowering/containers/filter-predicates.d.ts +10 -0
  474. package/dist/frontend/lowering/containers/filter-predicates.js +69 -3
  475. package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -1
  476. package/dist/frontend/lowering/containers/indexed-objects.js +46 -2
  477. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  478. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +23 -0
  479. package/dist/frontend/lowering/containers/iterator-helpers.js +176 -10
  480. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
  481. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +5 -2
  482. package/dist/frontend/lowering/containers/string-and-regexp.js +45 -11
  483. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  484. package/dist/frontend/lowering/crypto-tables.d.ts +3 -3
  485. package/dist/frontend/lowering/crypto-tables.js +5 -5
  486. package/dist/frontend/lowering/dispatch-sites.js +3 -0
  487. package/dist/frontend/lowering/dispatch-sites.js.map +1 -1
  488. package/dist/frontend/lowering/divergences.d.ts +40 -0
  489. package/dist/frontend/lowering/divergences.js +239 -20
  490. package/dist/frontend/lowering/divergences.js.map +1 -1
  491. package/dist/frontend/lowering/effect-free.d.ts +12 -0
  492. package/dist/frontend/lowering/effect-free.js +44 -0
  493. package/dist/frontend/lowering/effect-free.js.map +1 -0
  494. package/dist/frontend/lowering/expressions/array-literals.d.ts +24 -0
  495. package/dist/frontend/lowering/expressions/array-literals.js +88 -10
  496. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  497. package/dist/frontend/lowering/expressions/binary.js +216 -14
  498. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  499. package/dist/frontend/lowering/expressions/element-access.js +272 -11
  500. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  501. package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +15 -0
  502. package/dist/frontend/lowering/expressions/hosted-narrowing.js +54 -1
  503. package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -1
  504. package/dist/frontend/lowering/expressions/identifiers.js +173 -4
  505. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  506. package/dist/frontend/lowering/expressions/keyed-field-targets.d.ts +11 -1
  507. package/dist/frontend/lowering/expressions/keyed-field-targets.js +22 -1
  508. package/dist/frontend/lowering/expressions/keyed-field-targets.js.map +1 -1
  509. package/dist/frontend/lowering/expressions/narrowing.d.ts +3 -0
  510. package/dist/frontend/lowering/expressions/narrowing.js +195 -18
  511. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  512. package/dist/frontend/lowering/expressions/object-literals.d.ts +5 -1
  513. package/dist/frontend/lowering/expressions/object-literals.js +951 -240
  514. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  515. package/dist/frontend/lowering/expressions/optional-chains.js +71 -21
  516. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  517. package/dist/frontend/lowering/expressions/property-access.d.ts +39 -0
  518. package/dist/frontend/lowering/expressions/property-access.js +1141 -87
  519. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  520. package/dist/frontend/lowering/expressions/relational.js +262 -4
  521. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  522. package/dist/frontend/lowering/expressions/typeof.js +25 -0
  523. package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
  524. package/dist/frontend/lowering/expressions/union-fields.d.ts +20 -1
  525. package/dist/frontend/lowering/expressions/union-fields.js +103 -13
  526. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  527. package/dist/frontend/lowering/expressions/updates.js +156 -22
  528. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  529. package/dist/frontend/lowering/frozen-records.d.ts +6 -0
  530. package/dist/frontend/lowering/frozen-records.js +10 -4
  531. package/dist/frontend/lowering/frozen-records.js.map +1 -1
  532. package/dist/frontend/lowering/frozen-records.test.d.ts +1 -0
  533. package/dist/frontend/lowering/frozen-records.test.js +44 -0
  534. package/dist/frontend/lowering/frozen-records.test.js.map +1 -0
  535. package/dist/frontend/lowering/function-names.d.ts +9 -0
  536. package/dist/frontend/lowering/function-names.js +95 -0
  537. package/dist/frontend/lowering/function-names.js.map +1 -0
  538. package/dist/frontend/lowering/function-returns.js +42 -13
  539. package/dist/frontend/lowering/function-returns.js.map +1 -1
  540. package/dist/frontend/lowering/general-streams.js +5 -0
  541. package/dist/frontend/lowering/general-streams.js.map +1 -1
  542. package/dist/frontend/lowering/generator-delegation.d.ts +15 -7
  543. package/dist/frontend/lowering/generator-delegation.js +301 -118
  544. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  545. package/dist/frontend/lowering/generic-functions.d.ts +75 -0
  546. package/dist/frontend/lowering/generic-functions.js +790 -18
  547. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  548. package/dist/frontend/lowering/global-function-values.d.ts +25 -0
  549. package/dist/frontend/lowering/global-function-values.js +193 -0
  550. package/dist/frontend/lowering/global-function-values.js.map +1 -0
  551. package/dist/frontend/lowering/global-values.d.ts +15 -4
  552. package/dist/frontend/lowering/global-values.js +67 -9
  553. package/dist/frontend/lowering/global-values.js.map +1 -1
  554. package/dist/frontend/lowering/handle-properties.js +34 -1
  555. package/dist/frontend/lowering/handle-properties.js.map +1 -1
  556. package/dist/frontend/lowering/host-global-values.d.ts +31 -0
  557. package/dist/frontend/lowering/host-global-values.js +121 -0
  558. package/dist/frontend/lowering/host-global-values.js.map +1 -0
  559. package/dist/frontend/lowering/host-globals.d.ts +74 -0
  560. package/dist/frontend/lowering/host-globals.js +344 -0
  561. package/dist/frontend/lowering/host-globals.js.map +1 -0
  562. package/dist/frontend/lowering/http2-constants.js +1 -1
  563. package/dist/frontend/lowering/iterator-adapters.js +46 -17
  564. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  565. package/dist/frontend/lowering/iterator-prototype.d.ts +30 -0
  566. package/dist/frontend/lowering/iterator-prototype.js +160 -0
  567. package/dist/frontend/lowering/iterator-prototype.js.map +1 -0
  568. package/dist/frontend/lowering/key-order-witness.d.ts +54 -0
  569. package/dist/frontend/lowering/key-order-witness.js +571 -9
  570. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  571. package/dist/frontend/lowering/key-order-witness.test.js +1 -0
  572. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
  573. package/dist/frontend/lowering/lib-boundary.js +25 -3
  574. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  575. package/dist/frontend/lowering/lower-assert.js +140 -16
  576. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  577. package/dist/frontend/lowering/lower-async-iteration.d.ts +11 -0
  578. package/dist/frontend/lowering/lower-async-iteration.js +15 -0
  579. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  580. package/dist/frontend/lowering/lower-builtin-values.d.ts +36 -6
  581. package/dist/frontend/lowering/lower-builtin-values.js +342 -58
  582. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  583. package/dist/frontend/lowering/lower-calls.d.ts +47 -1
  584. package/dist/frontend/lowering/lower-calls.js +1354 -273
  585. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  586. package/dist/frontend/lowering/lower-calls.test.d.ts +1 -0
  587. package/dist/frontend/lowering/lower-calls.test.js +121 -0
  588. package/dist/frontend/lowering/lower-calls.test.js.map +1 -0
  589. package/dist/frontend/lowering/lower-classes.d.ts +36 -5
  590. package/dist/frontend/lowering/lower-classes.js +630 -89
  591. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  592. package/dist/frontend/lowering/lower-event-emitter.d.ts +15 -2
  593. package/dist/frontend/lowering/lower-event-emitter.js +610 -98
  594. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  595. package/dist/frontend/lowering/lower-exprs.d.ts +15 -1
  596. package/dist/frontend/lowering/lower-exprs.js +96 -20
  597. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  598. package/dist/frontend/lowering/lower-functions.js +27 -6
  599. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  600. package/dist/frontend/lowering/lower-generators.js +57 -10
  601. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  602. package/dist/frontend/lowering/lower-global-value.d.ts +6 -0
  603. package/dist/frontend/lowering/lower-global-value.js +14 -5
  604. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  605. package/dist/frontend/lowering/lower-inspect.d.ts +4 -0
  606. package/dist/frontend/lowering/lower-inspect.js +713 -92
  607. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  608. package/dist/frontend/lowering/lower-modules.js +135 -27
  609. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  610. package/dist/frontend/lowering/lower-namespaces.js +18 -0
  611. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  612. package/dist/frontend/lowering/lower-node-island.d.ts +35 -4
  613. package/dist/frontend/lowering/lower-node-island.js +472 -67
  614. package/dist/frontend/lowering/lower-node-island.js.map +1 -1
  615. package/dist/frontend/lowering/lower-server.js +463 -96
  616. package/dist/frontend/lowering/lower-server.js.map +1 -1
  617. package/dist/frontend/lowering/lower-shared-modules.js +13 -1
  618. package/dist/frontend/lowering/lower-shared-modules.js.map +1 -1
  619. package/dist/frontend/lowering/lower-stdlib.d.ts +3 -2
  620. package/dist/frontend/lowering/lower-stdlib.js +77 -18
  621. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  622. package/dist/frontend/lowering/lower-stmts.d.ts +24 -4
  623. package/dist/frontend/lowering/lower-stmts.js +831 -136
  624. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  625. package/dist/frontend/lowering/lower-stream.js +126 -8
  626. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  627. package/dist/frontend/lowering/lower-timers.js +243 -48
  628. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  629. package/dist/frontend/lowering/lower-url.js +6 -3
  630. package/dist/frontend/lowering/lower-url.js.map +1 -1
  631. package/dist/frontend/lowering/lowerer.d.ts +363 -21
  632. package/dist/frontend/lowering/lowerer.js +1224 -129
  633. package/dist/frontend/lowering/lowerer.js.map +1 -1
  634. package/dist/frontend/lowering/lowerer.test.js +19 -1
  635. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  636. package/dist/frontend/lowering/lowering-facts.d.ts +110 -0
  637. package/dist/frontend/lowering/lowering-facts.js +323 -0
  638. package/dist/frontend/lowering/lowering-facts.js.map +1 -0
  639. package/dist/frontend/lowering/lowering-facts.test.d.ts +1 -0
  640. package/dist/frontend/lowering/lowering-facts.test.js +100 -0
  641. package/dist/frontend/lowering/lowering-facts.test.js.map +1 -0
  642. package/dist/frontend/lowering/module-namespace-elements.js +15 -0
  643. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  644. package/dist/frontend/lowering/nan-coded-reads.d.ts +27 -4
  645. package/dist/frontend/lowering/nan-coded-reads.js +112 -9
  646. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  647. package/dist/frontend/lowering/new-target.js +2 -2
  648. package/dist/frontend/lowering/nullish-empty-pattern.d.ts +17 -0
  649. package/dist/frontend/lowering/nullish-empty-pattern.js +118 -0
  650. package/dist/frontend/lowering/nullish-empty-pattern.js.map +1 -0
  651. package/dist/frontend/lowering/optional-arguments.d.ts +4 -0
  652. package/dist/frontend/lowering/optional-arguments.js +26 -2
  653. package/dist/frontend/lowering/optional-arguments.js.map +1 -1
  654. package/dist/frontend/lowering/partial-assertions.d.ts +36 -0
  655. package/dist/frontend/lowering/partial-assertions.js +189 -0
  656. package/dist/frontend/lowering/partial-assertions.js.map +1 -0
  657. package/dist/frontend/lowering/primitive-throws.d.ts +100 -0
  658. package/dist/frontend/lowering/primitive-throws.js +241 -0
  659. package/dist/frontend/lowering/primitive-throws.js.map +1 -0
  660. package/dist/frontend/lowering/primitive-wrappers.d.ts +34 -0
  661. package/dist/frontend/lowering/primitive-wrappers.js +221 -0
  662. package/dist/frontend/lowering/primitive-wrappers.js.map +1 -0
  663. package/dist/frontend/lowering/private-statics.d.ts +46 -0
  664. package/dist/frontend/lowering/private-statics.js +322 -0
  665. package/dist/frontend/lowering/private-statics.js.map +1 -0
  666. package/dist/frontend/lowering/record-inherited.d.ts +17 -1
  667. package/dist/frontend/lowering/record-inherited.js +16 -2
  668. package/dist/frontend/lowering/record-inherited.js.map +1 -1
  669. package/dist/frontend/lowering/record-links.d.ts +73 -0
  670. package/dist/frontend/lowering/record-links.js +797 -0
  671. package/dist/frontend/lowering/record-links.js.map +1 -0
  672. package/dist/frontend/lowering/record-sources.d.ts +12 -1
  673. package/dist/frontend/lowering/record-sources.js +60 -0
  674. package/dist/frontend/lowering/record-sources.js.map +1 -1
  675. package/dist/frontend/lowering/runtime-optional-provenance.d.ts +27 -7
  676. package/dist/frontend/lowering/runtime-optional-provenance.js +25 -11
  677. package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
  678. package/dist/frontend/lowering/runtime-optional-report.d.ts +40 -0
  679. package/dist/frontend/lowering/runtime-optional-report.js +300 -0
  680. package/dist/frontend/lowering/runtime-optional-report.js.map +1 -0
  681. package/dist/frontend/lowering/scoped-type-memo.test.d.ts +1 -0
  682. package/dist/frontend/lowering/scoped-type-memo.test.js +86 -0
  683. package/dist/frontend/lowering/scoped-type-memo.test.js.map +1 -0
  684. package/dist/frontend/lowering/static-typeof.d.ts +3 -1
  685. package/dist/frontend/lowering/static-typeof.js +6 -1
  686. package/dist/frontend/lowering/static-typeof.js.map +1 -1
  687. package/dist/frontend/lowering/strict-equality.d.ts +4 -0
  688. package/dist/frontend/lowering/strict-equality.js +14 -0
  689. package/dist/frontend/lowering/strict-equality.js.map +1 -1
  690. package/dist/frontend/lowering/strict-mode.d.ts +1 -5
  691. package/dist/frontend/lowering/strict-mode.js +4 -30
  692. package/dist/frontend/lowering/strict-mode.js.map +1 -1
  693. package/dist/frontend/lowering/structural-instances.d.ts +7 -0
  694. package/dist/frontend/lowering/structural-instances.js +23 -0
  695. package/dist/frontend/lowering/structural-instances.js.map +1 -1
  696. package/dist/frontend/lowering/surfaces.d.ts +42 -1
  697. package/dist/frontend/lowering/surfaces.js +212 -71
  698. package/dist/frontend/lowering/surfaces.js.map +1 -1
  699. package/dist/frontend/lowering/union-retag.d.ts +13 -1
  700. package/dist/frontend/lowering/union-retag.js +55 -1
  701. package/dist/frontend/lowering/union-retag.js.map +1 -1
  702. package/dist/frontend/lowering/union-retag.test.js +51 -0
  703. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  704. package/dist/frontend/lowering/unit-journal.d.ts +136 -17
  705. package/dist/frontend/lowering/unit-journal.js +324 -53
  706. package/dist/frontend/lowering/unit-journal.js.map +1 -1
  707. package/dist/frontend/lowering/unit-journal.test.js +126 -3
  708. package/dist/frontend/lowering/unit-journal.test.js.map +1 -1
  709. package/dist/frontend/lowering/unit-reuse.d.ts +92 -0
  710. package/dist/frontend/lowering/unit-reuse.js +1008 -0
  711. package/dist/frontend/lowering/unit-reuse.js.map +1 -0
  712. package/dist/frontend/lowering/width-lift.d.ts +12 -0
  713. package/dist/frontend/lowering/zlib-constants.js +3 -2
  714. package/dist/frontend/lowering/zlib-constants.js.map +1 -1
  715. package/dist/frontend/npm-file-import.test.d.ts +1 -0
  716. package/dist/frontend/npm-file-import.test.js +76 -0
  717. package/dist/frontend/npm-file-import.test.js.map +1 -0
  718. package/dist/frontend/npm-static.js +95 -11
  719. package/dist/frontend/npm-static.js.map +1 -1
  720. package/dist/frontend/npm-static.test.js +95 -2
  721. package/dist/frontend/npm-static.test.js.map +1 -1
  722. package/dist/frontend/npm.d.ts +9 -0
  723. package/dist/frontend/npm.js +82 -0
  724. package/dist/frontend/npm.js.map +1 -1
  725. package/dist/frontend/pipeline-native.js +2 -1
  726. package/dist/frontend/pipeline-native.js.map +1 -1
  727. package/dist/frontend/pipeline.d.ts +9 -4
  728. package/dist/frontend/pipeline.js +162 -38
  729. package/dist/frontend/pipeline.js.map +1 -1
  730. package/dist/frontend/pipeline.test.js +68 -11
  731. package/dist/frontend/pipeline.test.js.map +1 -1
  732. package/dist/frontend/program-node.d.ts +3 -0
  733. package/dist/frontend/program-node.js +13 -6
  734. package/dist/frontend/program-node.js.map +1 -1
  735. package/dist/frontend/program.d.ts +71 -2
  736. package/dist/frontend/program.js +836 -411
  737. package/dist/frontend/program.js.map +1 -1
  738. package/dist/frontend/program.test.js +37 -1
  739. package/dist/frontend/program.test.js.map +1 -1
  740. package/dist/frontend/provenance-core.js +4 -0
  741. package/dist/frontend/provenance-core.js.map +1 -1
  742. package/dist/frontend/services-node.d.ts +7 -0
  743. package/dist/frontend/services-node.js +32 -1
  744. package/dist/frontend/services-node.js.map +1 -1
  745. package/dist/frontend/services-node.test.js +51 -0
  746. package/dist/frontend/services-node.test.js.map +1 -1
  747. package/dist/frontend/services.d.ts +14 -0
  748. package/dist/frontend/services.js +52 -2
  749. package/dist/frontend/services.js.map +1 -1
  750. package/dist/frontend/services.test.js +61 -1
  751. package/dist/frontend/services.test.js.map +1 -1
  752. package/dist/frontend/shape-inference/analyze.d.ts +5 -0
  753. package/dist/frontend/shape-inference/analyze.js +104 -4
  754. package/dist/frontend/shape-inference/analyze.js.map +1 -1
  755. package/dist/frontend/shape-inference/domain.js +0 -1
  756. package/dist/frontend/shape-inference/domain.js.map +1 -1
  757. package/dist/frontend/shape-inference/index.js +5 -1
  758. package/dist/frontend/shape-inference/index.js.map +1 -1
  759. package/dist/frontend/shape-inference/memo.d.ts +2 -1
  760. package/dist/frontend/shape-inference/memo.js +6 -2
  761. package/dist/frontend/shape-inference/memo.js.map +1 -1
  762. package/dist/frontend/shape-inference/overlay.d.ts +1 -1
  763. package/dist/frontend/shape-inference/overlay.js +184 -4
  764. package/dist/frontend/shape-inference/overlay.js.map +1 -1
  765. package/dist/frontend/shape-inference/static-objects.js +11 -6
  766. package/dist/frontend/shape-inference/static-objects.js.map +1 -1
  767. package/dist/frontend/source-phase-imports.test.d.ts +1 -0
  768. package/dist/frontend/source-phase-imports.test.js +37 -0
  769. package/dist/frontend/source-phase-imports.test.js.map +1 -0
  770. package/dist/frontend/tier-analysis.d.ts +9 -0
  771. package/dist/frontend/tier-analysis.js +1 -0
  772. package/dist/frontend/tier-analysis.js.map +1 -1
  773. package/dist/frontend/ts7/ast-node.d.ts +6 -1
  774. package/dist/frontend/ts7/ast-node.js +12 -0
  775. package/dist/frontend/ts7/ast-node.js.map +1 -1
  776. package/dist/frontend/ts7/ast-wire-protocols.test.js +11 -3
  777. package/dist/frontend/ts7/ast-wire-protocols.test.js.map +1 -1
  778. package/dist/frontend/ts7/ast-wire.js +3 -5
  779. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  780. package/dist/frontend/ts7/checker-backend.d.ts +13 -0
  781. package/dist/frontend/ts7/checker-backend.js +84 -2
  782. package/dist/frontend/ts7/checker-backend.js.map +1 -1
  783. package/dist/frontend/ts7/checker-backend.test.js +126 -2
  784. package/dist/frontend/ts7/checker-backend.test.js.map +1 -1
  785. package/dist/frontend/ts7/program-host.d.ts +22 -1
  786. package/dist/frontend/ts7/program-host.js +49 -4
  787. package/dist/frontend/ts7/program-host.js.map +1 -1
  788. package/dist/frontend/ts7/program-host.test.js +83 -0
  789. package/dist/frontend/ts7/program-host.test.js.map +1 -1
  790. package/dist/frontend/ts7/rpc-process.d.ts +16 -1
  791. package/dist/frontend/ts7/rpc-process.js +170 -92
  792. package/dist/frontend/ts7/rpc-process.js.map +1 -1
  793. package/dist/frontend/ts7/rpc-process.test.js +49 -21
  794. package/dist/frontend/ts7/rpc-process.test.js.map +1 -1
  795. package/dist/frontend/tsc-codes.d.ts +57 -3
  796. package/dist/frontend/tsc-codes.js +956 -101
  797. package/dist/frontend/tsc-codes.js.map +1 -1
  798. package/dist/frontend/tsc-codes.test.js +221 -12
  799. package/dist/frontend/tsc-codes.test.js.map +1 -1
  800. package/dist/frontend/type-mapper.d.ts +98 -11
  801. package/dist/frontend/type-mapper.js +770 -182
  802. package/dist/frontend/type-mapper.js.map +1 -1
  803. package/dist/index.d.ts +1 -1
  804. package/dist/index.js +224 -15
  805. package/dist/index.js.map +1 -1
  806. package/dist/index.test.d.ts +1 -0
  807. package/dist/index.test.js +60 -0
  808. package/dist/index.test.js.map +1 -0
  809. package/dist/ir/api.d.ts +1 -1
  810. package/dist/ir/api.js +1 -1
  811. package/dist/ir/api.js.map +1 -1
  812. package/dist/ir/build.d.ts +3 -2
  813. package/dist/ir/build.js +4 -2
  814. package/dist/ir/build.js.map +1 -1
  815. package/dist/ir/builtin-effects.js +96 -0
  816. package/dist/ir/builtin-effects.js.map +1 -1
  817. package/dist/ir/builtin-signatures.d.ts +1 -1
  818. package/dist/ir/builtin-signatures.js +453 -26
  819. package/dist/ir/builtin-signatures.js.map +1 -1
  820. package/dist/ir/callback-specialization.d.ts +3 -2
  821. package/dist/ir/callback-specialization.js +35 -25
  822. package/dist/ir/callback-specialization.js.map +1 -1
  823. package/dist/ir/capture-values.d.ts +8 -4
  824. package/dist/ir/capture-values.js +9 -6
  825. package/dist/ir/capture-values.js.map +1 -1
  826. package/dist/ir/char-unit-locals.d.ts +6 -2
  827. package/dist/ir/char-unit-locals.js +11 -2
  828. package/dist/ir/char-unit-locals.js.map +1 -1
  829. package/dist/ir/class-key-index.d.ts +18 -0
  830. package/dist/ir/class-key-index.js +29 -0
  831. package/dist/ir/class-key-index.js.map +1 -0
  832. package/dist/ir/class-key-index.test.d.ts +1 -0
  833. package/dist/ir/class-key-index.test.js +25 -0
  834. package/dist/ir/class-key-index.test.js.map +1 -0
  835. package/dist/ir/codec.d.ts +82 -0
  836. package/dist/ir/codec.generated.d.ts +13 -0
  837. package/dist/ir/codec.generated.js +5350 -0
  838. package/dist/ir/codec.generated.js.map +1 -0
  839. package/dist/ir/codec.js +325 -0
  840. package/dist/ir/codec.js.map +1 -0
  841. package/dist/ir/codec.test.d.ts +1 -0
  842. package/dist/ir/codec.test.js +225 -0
  843. package/dist/ir/codec.test.js.map +1 -0
  844. package/dist/ir/constant-globals.d.ts +5 -2
  845. package/dist/ir/constant-globals.js +25 -27
  846. package/dist/ir/constant-globals.js.map +1 -1
  847. package/dist/ir/expression-inlining.d.ts +4 -2
  848. package/dist/ir/expression-inlining.js +8 -2
  849. package/dist/ir/expression-inlining.js.map +1 -1
  850. package/dist/ir/field-values.d.ts +5 -2
  851. package/dist/ir/field-values.js +32 -21
  852. package/dist/ir/field-values.js.map +1 -1
  853. package/dist/ir/fields.generated.d.ts +29 -10
  854. package/dist/ir/fields.generated.js +1039 -11
  855. package/dist/ir/fields.generated.js.map +1 -1
  856. package/dist/ir/fields.test.js +46 -2
  857. package/dist/ir/fields.test.js.map +1 -1
  858. package/dist/ir/final-fields.js +1 -1
  859. package/dist/ir/final-fields.js.map +1 -1
  860. package/dist/ir/function-references.d.ts +6 -4
  861. package/dist/ir/function-references.js +11 -4
  862. package/dist/ir/function-references.js.map +1 -1
  863. package/dist/ir/function-references.test.js +14 -0
  864. package/dist/ir/function-references.test.js.map +1 -1
  865. package/dist/ir/init-only-globals.d.ts +4 -2
  866. package/dist/ir/init-only-globals.js +17 -18
  867. package/dist/ir/init-only-globals.js.map +1 -1
  868. package/dist/ir/inline-array-sources.js +4 -1
  869. package/dist/ir/inline-array-sources.js.map +1 -1
  870. package/dist/ir/inline-array-views.d.ts +13 -0
  871. package/dist/ir/inline-array-views.js +945 -0
  872. package/dist/ir/inline-array-views.js.map +1 -0
  873. package/dist/ir/inline-arrays.d.ts +7 -0
  874. package/dist/ir/inline-arrays.js +190 -55
  875. package/dist/ir/inline-arrays.js.map +1 -1
  876. package/dist/ir/inline-arrays.test.js +140 -2
  877. package/dist/ir/inline-arrays.test.js.map +1 -1
  878. package/dist/ir/int32-slots.js +7 -0
  879. package/dist/ir/int32-slots.js.map +1 -1
  880. package/dist/ir/integer-ranges.js +16 -6
  881. package/dist/ir/integer-ranges.js.map +1 -1
  882. package/dist/ir/ir.d.ts +130 -44
  883. package/dist/ir/ir.js +7 -0
  884. package/dist/ir/ir.js.map +1 -1
  885. package/dist/ir/js-groups.d.ts +51 -0
  886. package/dist/ir/js-groups.js +394 -0
  887. package/dist/ir/js-groups.js.map +1 -0
  888. package/dist/ir/js-groups.test.d.ts +1 -0
  889. package/dist/ir/js-groups.test.js +555 -0
  890. package/dist/ir/js-groups.test.js.map +1 -0
  891. package/dist/ir/js-ic.d.ts +10 -9
  892. package/dist/ir/js-ic.js +58 -25
  893. package/dist/ir/js-ic.js.map +1 -1
  894. package/dist/ir/js-ic.test.js +37 -3
  895. package/dist/ir/js-ic.test.js.map +1 -1
  896. package/dist/ir/jsval.js +374 -63
  897. package/dist/ir/jsval.js.map +1 -1
  898. package/dist/ir/jsval.test.js +96 -2
  899. package/dist/ir/jsval.test.js.map +1 -1
  900. package/dist/ir/loop-entry-ranges.js +112 -9
  901. package/dist/ir/loop-entry-ranges.js.map +1 -1
  902. package/dist/ir/loop-entry-ranges.test.js +40 -0
  903. package/dist/ir/loop-entry-ranges.test.js.map +1 -1
  904. package/dist/ir/node-index.d.ts +23 -6
  905. package/dist/ir/node-index.js +126 -49
  906. package/dist/ir/node-index.js.map +1 -1
  907. package/dist/ir/numeric-call-specialization.d.ts +4 -2
  908. package/dist/ir/numeric-call-specialization.js +40 -26
  909. package/dist/ir/numeric-call-specialization.js.map +1 -1
  910. package/dist/ir/paired-while-loops.d.ts +4 -2
  911. package/dist/ir/paired-while-loops.js +8 -2
  912. package/dist/ir/paired-while-loops.js.map +1 -1
  913. package/dist/ir/parameter-versions.d.ts +13 -3
  914. package/dist/ir/parameter-versions.js +63 -40
  915. package/dist/ir/parameter-versions.js.map +1 -1
  916. package/dist/ir/property-bags.d.ts +4 -2
  917. package/dist/ir/property-bags.js +22 -17
  918. package/dist/ir/property-bags.js.map +1 -1
  919. package/dist/ir/receiver-readers.js +58 -2
  920. package/dist/ir/receiver-readers.js.map +1 -1
  921. package/dist/ir/row-pairs.d.ts +4 -2
  922. package/dist/ir/row-pairs.js +12 -11
  923. package/dist/ir/row-pairs.js.map +1 -1
  924. package/dist/ir/runtime-features.d.ts +139 -5
  925. package/dist/ir/runtime-features.js +397 -19
  926. package/dist/ir/runtime-features.js.map +1 -1
  927. package/dist/ir/runtime-features.test.js +135 -1
  928. package/dist/ir/runtime-features.test.js.map +1 -1
  929. package/dist/ir/runtime-jam-loops.d.ts +35 -0
  930. package/dist/ir/runtime-jam-loops.js +604 -0
  931. package/dist/ir/runtime-jam-loops.js.map +1 -0
  932. package/dist/ir/runtime-jam-loops.test.d.ts +1 -0
  933. package/dist/ir/runtime-jam-loops.test.js +565 -0
  934. package/dist/ir/runtime-jam-loops.test.js.map +1 -0
  935. package/dist/ir/saturating-loop-jams.d.ts +11 -2
  936. package/dist/ir/saturating-loop-jams.js +56 -16
  937. package/dist/ir/saturating-loop-jams.js.map +1 -1
  938. package/dist/ir/saturating-loop-jams.test.js +39 -1
  939. package/dist/ir/saturating-loop-jams.test.js.map +1 -1
  940. package/dist/ir/scalar-records.d.ts +5 -2
  941. package/dist/ir/scalar-records.js +12 -2
  942. package/dist/ir/scalar-records.js.map +1 -1
  943. package/dist/ir/self-captures.d.ts +4 -2
  944. package/dist/ir/self-captures.js +40 -28
  945. package/dist/ir/self-captures.js.map +1 -1
  946. package/dist/ir/self-captures.test.js +15 -0
  947. package/dist/ir/self-captures.test.js.map +1 -1
  948. package/dist/ir/serialize.d.ts +8 -2
  949. package/dist/ir/serialize.js +92 -24
  950. package/dist/ir/serialize.js.map +1 -1
  951. package/dist/ir/serialize.test.js +26 -0
  952. package/dist/ir/serialize.test.js.map +1 -1
  953. package/dist/ir/tiers.js +1 -0
  954. package/dist/ir/tiers.js.map +1 -1
  955. package/dist/ir/traverse.js +4 -0
  956. package/dist/ir/traverse.js.map +1 -1
  957. package/dist/ir/typed-argument-clones.d.ts +30 -0
  958. package/dist/ir/typed-argument-clones.js +789 -0
  959. package/dist/ir/typed-argument-clones.js.map +1 -0
  960. package/dist/ir/union-arm-loops.d.ts +3 -0
  961. package/dist/ir/union-arm-loops.js +373 -0
  962. package/dist/ir/union-arm-loops.js.map +1 -0
  963. package/dist/ir/union-arm-loops.test.d.ts +1 -0
  964. package/dist/ir/union-arm-loops.test.js +230 -0
  965. package/dist/ir/union-arm-loops.test.js.map +1 -0
  966. package/dist/ir/validate.js +170 -22
  967. package/dist/ir/validate.js.map +1 -1
  968. package/dist/ir/validate.test.js +46 -0
  969. package/dist/ir/validate.test.js.map +1 -1
  970. package/dist/library/compiler-self-identity.d.ts +8 -2
  971. package/dist/library/compiler-self-identity.js +92 -18
  972. package/dist/library/compiler-self-identity.js.map +1 -1
  973. package/dist/library/compiler-self-identity.test.js +150 -3
  974. package/dist/library/compiler-self-identity.test.js.map +1 -1
  975. package/dist/library/int-infer.d.ts +5 -0
  976. package/dist/library/int-infer.js +15 -3
  977. package/dist/library/int-infer.js.map +1 -1
  978. package/dist/library/ir-policy.js +4 -0
  979. package/dist/library/ir-policy.js.map +1 -1
  980. package/dist/library/library-cache.d.ts +4 -0
  981. package/dist/library/library-cache.js +2 -0
  982. package/dist/library/library-cache.js.map +1 -1
  983. package/dist/library/library-cache.test.js +26 -0
  984. package/dist/library/library-cache.test.js.map +1 -1
  985. package/dist/library/prepare.js +99 -31
  986. package/dist/library/prepare.js.map +1 -1
  987. package/dist/native/cache.d.ts +7 -0
  988. package/dist/native/cache.js +49 -0
  989. package/dist/native/cache.js.map +1 -1
  990. package/dist/native/cache.test.js +13 -1
  991. package/dist/native/cache.test.js.map +1 -1
  992. package/dist/native/cli.js +2 -0
  993. package/dist/native/cli.js.map +1 -1
  994. package/dist/native/compiler.js +26 -5
  995. package/dist/native/compiler.js.map +1 -1
  996. package/dist/native/executable-cache-open.test.js +31 -5
  997. package/dist/native/executable-cache-open.test.js.map +1 -1
  998. package/dist/native/executable-cache.d.ts +6 -1
  999. package/dist/native/executable-cache.js +7 -1
  1000. package/dist/native/executable-cache.js.map +1 -1
  1001. package/dist/native/prepare.d.ts +3 -0
  1002. package/dist/native/prepare.js +74 -28
  1003. package/dist/native/prepare.js.map +1 -1
  1004. package/dist/native/prepare.test.js +25 -3
  1005. package/dist/native/prepare.test.js.map +1 -1
  1006. package/dist/native/sanitizer.js +63 -4
  1007. package/dist/native/sanitizer.js.map +1 -1
  1008. package/dist/native/sanitizer.test.js +93 -2
  1009. package/dist/native/sanitizer.test.js.map +1 -1
  1010. package/dist/native/toolchain.js +9 -2
  1011. package/dist/native/toolchain.js.map +1 -1
  1012. package/dist/node-islands/boundary.d.ts +37 -1
  1013. package/dist/node-islands/boundary.js +65 -7
  1014. package/dist/node-islands/boundary.js.map +1 -1
  1015. package/dist/node-islands/boundary.test.d.ts +1 -0
  1016. package/dist/node-islands/boundary.test.js +76 -0
  1017. package/dist/node-islands/boundary.test.js.map +1 -0
  1018. package/dist/node-islands/detect.d.ts +27 -1
  1019. package/dist/node-islands/detect.js +475 -40
  1020. package/dist/node-islands/detect.js.map +1 -1
  1021. package/dist/node-islands/detect.test.js +175 -4
  1022. package/dist/node-islands/detect.test.js.map +1 -1
  1023. package/dist/node-islands/effect-gate.js +30 -20
  1024. package/dist/node-islands/effect-gate.js.map +1 -1
  1025. package/dist/node-islands/effect-gate.test.js +4 -1
  1026. package/dist/node-islands/effect-gate.test.js.map +1 -1
  1027. package/dist/node-islands/graph-islands.d.ts +40 -0
  1028. package/dist/node-islands/graph-islands.js +128 -0
  1029. package/dist/node-islands/graph-islands.js.map +1 -0
  1030. package/dist/node-islands/growth.d.ts +57 -0
  1031. package/dist/node-islands/growth.js +205 -0
  1032. package/dist/node-islands/growth.js.map +1 -0
  1033. package/dist/node-islands/libnode.d.ts +1 -1
  1034. package/dist/node-islands/libnode.js +1 -1
  1035. package/dist/node-islands/libnode.js.map +1 -1
  1036. package/dist/node-islands/modules.d.ts +28 -0
  1037. package/dist/node-islands/modules.js +156 -0
  1038. package/dist/node-islands/modules.js.map +1 -1
  1039. package/dist/node-islands/modules.test.js +105 -1
  1040. package/dist/node-islands/modules.test.js.map +1 -1
  1041. package/dist/node-islands/policy.js +2 -3
  1042. package/dist/node-islands/policy.js.map +1 -1
  1043. package/dist/node-islands/probe-recorder.d.ts +1 -0
  1044. package/dist/node-islands/probe-recorder.js +596 -0
  1045. package/dist/node-islands/probe-recorder.js.map +1 -0
  1046. package/dist/node-islands/probe-recorder.test.d.ts +1 -0
  1047. package/dist/node-islands/probe-recorder.test.js +80 -0
  1048. package/dist/node-islands/probe-recorder.test.js.map +1 -0
  1049. package/dist/node-islands/report.d.ts +12 -0
  1050. package/dist/node-islands/report.js +28 -0
  1051. package/dist/node-islands/report.js.map +1 -1
  1052. package/dist/node-islands/report.test.js +4 -0
  1053. package/dist/node-islands/report.test.js.map +1 -1
  1054. package/dist/node-islands/rules.js +9 -0
  1055. package/dist/node-islands/rules.js.map +1 -1
  1056. package/dist/node-islands/scan.d.ts +16 -1
  1057. package/dist/node-islands/scan.js +110 -9
  1058. package/dist/node-islands/scan.js.map +1 -1
  1059. package/dist/node-islands/snapshot.d.ts +38 -1
  1060. package/dist/node-islands/snapshot.js +165 -161
  1061. package/dist/node-islands/snapshot.js.map +1 -1
  1062. package/dist/node-islands/snapshot.test.js +63 -2
  1063. package/dist/node-islands/snapshot.test.js.map +1 -1
  1064. package/dist/node-islands/summary.js +8 -0
  1065. package/dist/node-islands/summary.js.map +1 -1
  1066. package/dist/node-islands/type-strip.d.ts +11 -0
  1067. package/dist/node-islands/type-strip.js +157 -0
  1068. package/dist/node-islands/type-strip.js.map +1 -0
  1069. package/dist/node-islands/type-strip.test.d.ts +1 -0
  1070. package/dist/node-islands/type-strip.test.js +31 -0
  1071. package/dist/node-islands/type-strip.test.js.map +1 -0
  1072. package/dist/project-config.d.ts +4 -0
  1073. package/dist/project-config.js +19 -0
  1074. package/dist/project-config.js.map +1 -1
  1075. package/dist/project-config.test.js +10 -0
  1076. package/dist/project-config.test.js.map +1 -1
  1077. package/dist/wasm/translate.js +11 -5
  1078. package/dist/wasm/translate.js.map +1 -1
  1079. package/dist/wasm/translate.test.js +35 -0
  1080. package/dist/wasm/translate.test.js.map +1 -1
  1081. package/package.json +20 -20
  1082. package/surface-manifest.json +221 -122
@@ -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,7 +220,14 @@ 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 },
229
+ /** Reflect.has's target check: Node's TypeError for a primitive. */
230
+ "dyn.reflectHasTarget": { argTypes: [DYN], result: VOID },
207
231
  "dyn.hasKeyComputed": { argTypes: [DYN, DYN], result: BOOL },
208
232
  "dyn.hasOwnComputed": { argTypes: [DYN, DYN], result: BOOL },
209
233
  "dyn.propertyIsEnumerableComputed": { argTypes: [DYN, DYN], result: BOOL },
@@ -219,6 +243,11 @@ function buildLibFnSignatures() {
219
243
  * whose fallback handles every other value. The key is a literal. */
220
244
  "dyn.typedRefKeyIs": { argTypes: [DYN, STRING], result: BOOL },
221
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 },
222
251
  /** Destructuring pack over a dyn source — `const [a, b] = d`, a
223
252
  * destructured dyn callback param (args: the source and the STATIC
224
253
  * TypeError spelling, "" when the source has none — both borrowed;
@@ -349,8 +378,22 @@ function buildLibFnSignatures() {
349
378
  * the may-throw seed set. */
350
379
  "dyn.defineProps": { argTypes: [DYN, DYN], result: DYN },
351
380
  "dyn.defineProperty": { argTypes: [DYN, DYN, DYN], result: DYN },
381
+ /** dyn.defineProps / dyn.defineProperty / dyn.objCreateWithProperties
382
+ * for a descriptor (or a property-descriptor map) built by an expression
383
+ * instead of a plain object literal: ToPropertyDescriptor accepts any
384
+ * object and reads each field through [[HasProperty]] and [[Get]]. */
385
+ "dyn.definePropsShapes": { argTypes: [DYN, DYN], result: DYN },
386
+ "dyn.definePropertyShapes": { argTypes: [DYN, DYN, DYN], result: DYN },
387
+ "dyn.objCreateWithPropertiesShapes": { argTypes: [DYN, DYN], result: DYN },
352
388
  "dyn.getOwnPropertyDescriptor": { argTypes: [DYN, DYN], result: DYN },
353
389
  "dyn.arrayProtoCall": { argTypes: [DYN, STRING, DYN], result: DYN },
390
+ /** The same call through the array-like unit (JavaScript sources):
391
+ * Array.prototype's generic algorithms over a receiver that is not a
392
+ * native array, and the invoke unit's dispatch for everything else. */
393
+ "dyn.arrayLikeProtoCall": { argTypes: [DYN, STRING, DYN], result: DYN },
394
+ /** Number.prototype / Boolean.prototype as JavaScript values: the
395
+ * prototype object (dyn.builtinPrototype unit). */
396
+ "dyn.builtinPrototype": { argTypes: [STRING], result: DYN },
354
397
  /** Promise.all / Promise.allSettled / Promise.any over a spread
355
398
  * checked-dynamic array: the values, the settled-record array, or the
356
399
  * first fulfillment (AggregateError once every entry rejects).
@@ -363,6 +406,11 @@ function buildLibFnSignatures() {
363
406
  * a promise that adopts a thenable's settlement, or a promise fulfilled
364
407
  * with the value. The second argument reads `then` as above. */
365
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 },
366
414
  /** Bare `typeof v` on a dyn value AS A STRING (arg: the dyn value,
367
415
  * borrowed; result: an owned string) — the dyn kind's JS answer:
368
416
  * undefined→"undefined", null/object/array/bytes→"object" (JS's oldest
@@ -406,6 +454,19 @@ function buildLibFnSignatures() {
406
454
  "module.cacheHas": { argTypes: [STRING], result: BOOL },
407
455
  "module.cacheKeys": { argTypes: [], result: arrayOf(STRING) },
408
456
  "timers.setTimeout": { argTypes: [{ kind: "func", params: [], ret: VOID }, F64], result: VOID },
457
+ /** A setTimeout/setInterval delay that is not a literal in [1, 2^31-1]:
458
+ * the delay unchanged, after the warning Node's Timeout constructor
459
+ * emits when it sets the delay to 1 (scr_timer_user_delay). The second
460
+ * argument is 0 for the global setTimeout, 1 for the global
461
+ * setInterval and 2 for a node:timers import, plus 4 for a delay read
462
+ * from an array element. */
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
+ },
409
470
  /** The repeating timer pair. setInterval takes (callback, ms) like
410
471
  * setTimeout and RETURNS the f64 handle the fallback declarations
411
472
  * promise (ids start at 1, so truthiness narrowing works); the loop
@@ -552,6 +613,11 @@ function buildLibFnSignatures() {
552
613
  * alive. Invalid callbacks and uncatchable signals throw. */
553
614
  "process.onSignal": { argTypes: [STRING, DYN, BOOL], result: VOID },
554
615
  "process.offSignal": { argTypes: [STRING, DYN], result: VOID },
616
+ /** process.prependListener(<signal>, cb): the same listener in front of
617
+ * the signal's existing registrations (Node appends with `on`, so the
618
+ * two differ only in dispatch order). Never `once` — that is
619
+ * prependOnceListener, which has no lowering. */
620
+ "process.prependSignal": { argTypes: [STRING, DYN], result: VOID },
555
621
  /** The process 'exit' event — process.on/once/off("exit"). args: [cb,
556
622
  * once bool] / [cb]. Listeners run SYNCHRONOUSLY at termination
557
623
  * (normal exit, process.exit(), the uncaught/unhandled exit-1 paths)
@@ -560,6 +626,9 @@ function buildLibFnSignatures() {
560
626
  * picks the runtime adapter. Never throw. */
561
627
  "process.onExit": { argTypes: [null, BOOL], result: VOID },
562
628
  "process.offExit": { argTypes: [null], result: VOID },
629
+ /** process.prependListener("exit", cb): the same listener in front of
630
+ * the exit registry's existing entries. */
631
+ "process.prependExit": { argTypes: [null], result: VOID },
563
632
  /** process.stdin listener registration — stdin.on/once("data" | "end" |
564
633
  * "error", cb). args: [cb, once bool]. data callbacks: () => void or
565
634
  * (chunk: Uint8Array) => void; end: () => void; error: () => void or
@@ -573,6 +642,27 @@ function buildLibFnSignatures() {
573
642
  /** process.stdin.on/once('keypress', cb) (scr_readline_tty.c): cb is the
574
643
  * listener as a checked-dynamic function, called with (str, key). */
575
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 },
576
666
  /** The for-await chunk source over process.stdin: no args, result
577
667
  * Promise<Uint8Array> (+1). Fulfills with the next arrived chunk; the
578
668
  * EMPTY bytes value is the done sentinel (POSIX reads never deliver
@@ -755,17 +845,35 @@ function buildLibFnSignatures() {
755
845
  * value: path and options arrive unchecked; the result is a string or a
756
846
  * Buffer by the options' encoding. */
757
847
  "fs.realpathValue": { argTypes: [DYN, DYN, BOOL], result: DYN },
848
+ // Builtin functions read as values: validateString under Node's argument
849
+ // name, and node:path's value adapters (scr_builtin_values.c).
850
+ "dyn.validateString": { argTypes: [DYN, STRING], result: STRING },
851
+ "dyn.validateStrings": { argTypes: [DYN, STRING], result: arrayOf(STRING) },
852
+ "path.resolveValue": { argTypes: [DYN, BOOL], result: STRING },
853
+ "path.parseValue": { argTypes: [DYN, BOOL], result: DYN },
854
+ "path.formatValue": { argTypes: [DYN, BOOL], result: DYN },
855
+ "path.toNamespacedValue": { argTypes: [DYN, BOOL], result: DYN },
758
856
  /** Native realpath with syscall "realpath" on failure. +1 fresh string. */
759
857
  "fs.realpathNativeSync": { argTypes: [STRING], result: STRING },
760
- /** The os.userInfo() field trio (uv_os_get_passwd's slices): pw_name,
761
- * pw_shell, pw_dir — the PASSWD homedir, not os.homedir's $HOME-first
762
- * cascade (Node's own split). The frontend assembles the UserInfo
763
- * record from these plus getuid/getgid. +1 fresh strings; a passwd
764
- * lookup failure aborts (Node throws a system error there — no
765
- * compiled program path reaches it for the running uid). */
858
+ /** The os.userInfo() fields (uv_os_get_passwd's slices of the passwd
859
+ * entry for the effective uid): pw_name, pw_shell, pw_dir — the PASSWD
860
+ * homedir, not os.homedir's $HOME-first cascade (Node's own split) —
861
+ * and pw_uid, pw_gid (-1 on Windows). The frontend assembles the
862
+ * UserInfo record from these. +1 fresh strings; a passwd lookup
863
+ * failure aborts (Node throws a system error there — no compiled
864
+ * program path reaches it for the running uid). */
766
865
  "os.userName": { argTypes: [], result: STRING },
767
866
  "os.userShell": { argTypes: [], result: STRING },
768
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 },
872
+ "os.userUid": { argTypes: [], result: F64 },
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 },
769
877
  "os.tmpdir": { argTypes: [], result: STRING },
770
878
  // Result is the call site's Dict<NetworkInterfaceInfo[]> record (VOID is
771
879
  // the dgram.address sentinel — the libCall case checks the structure).
@@ -952,6 +1060,20 @@ function buildLibFnSignatures() {
952
1060
  * grouping every three integer digits, "∞"/"NaN" texts, and "-0" for
953
1061
  * negative inputs rounding to zero. Result +1; never throws. */
954
1062
  "intl.numFormatEnUs": { argTypes: [F64], result: STRING },
1063
+ /** `x.toLocaleString()` at the default locale: the same ICU number
1064
+ * engine V8 uses, over the full ICU data (scr_intl.c). Throws an Error
1065
+ * when the ICU data file is missing. Result +1. */
1066
+ "icu.numFormatDefault": { argTypes: [F64], result: STRING },
1067
+ /** `process.config.variables.v8_enable_i18n_support`: the number 1, as
1068
+ * Node (which bundles ICU) answers. Reading it selects the `icu`
1069
+ * runtime feature, so the binary that reports ICU is the binary that
1070
+ * carries it (scr_intl.c). */
1071
+ "icu.i18nSupport": { argTypes: [], result: F64 },
1072
+ /** `d.toLocaleString()` / `d.toLocaleTimeString()` at the default
1073
+ * locale over `d`'s time value (scr_intl.c). Throws an Error when the
1074
+ * ICU data file is missing. Result +1. */
1075
+ "icu.dateLocaleString": { argTypes: [DATE_T], result: STRING },
1076
+ "icu.dateLocaleTimeString": { argTypes: [DATE_T], result: STRING },
955
1077
  /** ES Symbol values (scr_symbol.c — link-gated by moduleUsesSymbol).
956
1078
  * sym.new: `Symbol(desc)` — a fresh runtime-unique identity (+1) whose
957
1079
  * one arg is the description string (borrowed); sym.newAnon is the
@@ -970,6 +1092,9 @@ function buildLibFnSignatures() {
970
1092
  "sym.keyFor": { argTypes: [SYMBOL_T], result: VOID },
971
1093
  "sym.desc": { argTypes: [SYMBOL_T], result: VOID },
972
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 },
973
1098
  /** Engine-free arbitrary-precision bigint operations (scr_bigint.c).
974
1099
  * parse accepts the ECMAScript BigInt string grammar; fromF64 accepts
975
1100
  * finite integral Numbers. Arithmetic returns fresh immutable values.
@@ -1020,6 +1145,10 @@ function buildLibFnSignatures() {
1020
1145
  "url.canParseBase": { argTypes: [STRING, STRING], result: BOOL },
1021
1146
  "url.parse": { argTypes: [STRING], result: DYN },
1022
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 },
1023
1152
  "url.protocol": { argTypes: [URL_T], result: STRING },
1024
1153
  "url.origin": { argTypes: [URL_T], result: STRING },
1025
1154
  "url.username": { argTypes: [URL_T], result: STRING },
@@ -1154,8 +1283,21 @@ function buildLibFnSignatures() {
1154
1283
  * All borrow; string results +1; escape and stringify throw URIError
1155
1284
  * [ERR_INVALID_URI] on a lone surrogate. */
1156
1285
  "qs.parse": { argTypes: [STRING, STRING, STRING, F64], result: VOID },
1286
+ /** parse with a decodeURIComponent option: qs, sep, eq, maxKeys and
1287
+ * the option's value (a function decodes; any other value means the
1288
+ * default decoder). The result is the same dictionary as qs.parse's. */
1289
+ "qs.parseCustom": { argTypes: [STRING, STRING, STRING, F64, DYN], result: VOID },
1157
1290
  "qs.stringify": { argTypes: [DYN, STRING, STRING], result: STRING },
1291
+ /** stringify with an encodeURIComponent option's value. */
1292
+ "qs.stringifyCustom": { argTypes: [DYN, STRING, STRING, DYN], result: STRING },
1293
+ /** A sep/eq argument that may not be a string: (value, default, parse). */
1294
+ "qs.separator": { argTypes: [DYN, STRING, BOOL], result: STRING },
1295
+ /** unescapeBuffer(s, decodeSpaces) as a new Buffer. */
1296
+ "qs.unescapeBuffer": { argTypes: [STRING, BOOL], result: BYTES_U8 },
1158
1297
  "qs.escape": { argTypes: [STRING], result: STRING },
1298
+ /** escape of a value that may not be a string: String(value) for an
1299
+ * object or null, value + "" otherwise (a symbol throws TypeError). */
1300
+ "qs.escapeValue": { argTypes: [DYN], result: STRING },
1159
1301
  "qs.unescape": { argTypes: [STRING], result: STRING },
1160
1302
  /** node:util.parseArgs: one checked-dynamic config object in, one
1161
1303
  * checked-dynamic ParsedResults tree out. Statically typed member reads
@@ -1225,17 +1367,18 @@ function buildLibFnSignatures() {
1225
1367
  "fs.statfsSync": { argTypes: [DYN, DYN], result: DYN },
1226
1368
  "fs.readlinkSyncStr": { argTypes: [DYN, DYN], result: STRING },
1227
1369
  "fs.readlinkSyncBuffer": { argTypes: [DYN, DYN], result: BYTES_U8 },
1228
- /** fs.openSync(path, flags) → the raw fd as f64; fs.readSync/fs.writeSync
1229
- * over Buffer windows perform sequential I/O when position is -1 and
1230
- * offset-preserving positioned I/O otherwise; fs.writeStrSync is the
1231
- * utf8 string twin; and fs.closeSync(fd) closes the descriptor. This is
1232
- * 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.
1233
1375
  * flags is Node's string
1234
1376
  * grammar ("r", "w", "a" and the +/x variants; unknown flags throw
1235
- * Node's ERR_INVALID_ARG_VALUE TypeError text). All throw Node-shaped
1236
- * fs errors (openSync ENOENT/EACCES..., readSync EBADF/range errors,
1237
- * closeSync EBADF). */
1238
- "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 },
1239
1382
  "fs.openNumericSync": { argTypes: [STRING, F64, F64], result: F64 },
1240
1383
  "fs.readSync": { argTypes: [F64, BYTES_U8, F64, F64, F64], result: F64 },
1241
1384
  "fs.readSyncDyn": { argTypes: [DYN, DYN, DYN, DYN, DYN], result: F64 },
@@ -1256,6 +1399,23 @@ function buildLibFnSignatures() {
1256
1399
  "fs.watch": { argTypes: [STRING], result: FSWATCHER_T },
1257
1400
  "fs.watchCb": { argTypes: [STRING, null], result: FSWATCHER_T },
1258
1401
  "watcher.close": { argTypes: [FSWATCHER_T], result: VOID },
1402
+ // FSWatcher's EventEmitter surface: (receiver, event code, once|prepend
1403
+ // flags, listener) for on/once/addListener/prependListener/
1404
+ // prependOnceListener, and (receiver, event code, listener) for
1405
+ // off/removeListener. The listener's func type is program-dependent;
1406
+ // the null slot pins the arity and the receiver.
1407
+ "watcher.on": { argTypes: [FSWATCHER_T, F64, F64, null], result: VOID },
1408
+ "watcher.off": { argTypes: [FSWATCHER_T, F64, null], result: VOID },
1409
+ /** fs.watchFile(path, interval, persistent, listener) → void
1410
+ * (scr_watch_file.c — its own gated unit; moduleUsesFsWatchFile is the
1411
+ * switch, and scr_watch_file_install() is emitted with it). One
1412
+ * libuv-shaped stat poller per RESOLVED path, shared by every listener
1413
+ * on it; the listener's (current, previous) Stats func type is
1414
+ * program-dependent, so the slot pins the arity. Statement position
1415
+ * only (Node returns a StatWatcher). fs.unwatchFile(path[, listener])
1416
+ * takes a borrowed listener; the null slot is the absent one. */
1417
+ "fs.watchFile": { argTypes: [STRING, F64, BOOL, null], result: VOID },
1418
+ "fs.unwatchFile": { argTypes: [STRING, null], result: VOID },
1259
1419
  /** The composed `new crypto.X509Certificate(data).fingerprint` read
1260
1420
  * (scr_lib.c — no certificate handle exists): the SHA-1 of the DER,
1261
1421
  * uppercase colon-separated, over PEM or raw-DER Buffer input; other
@@ -1392,6 +1552,12 @@ function buildLibFnSignatures() {
1392
1552
  * clamped like ftruncateSync's) and closes it. */
1393
1553
  "fs.truncateSync": { argTypes: [STRING, F64], result: VOID },
1394
1554
  "fs.copyFileSync": { argTypes: [STRING, STRING], result: VOID },
1555
+ /** copyFileSync(src, dest, mode): libuv's uv_fs_copyfile flag bits —
1556
+ * COPYFILE_EXCL (1) fails on an existing destination, COPYFILE_FICLONE
1557
+ * (2) requests a reflink and falls back to a copy, COPYFILE_FICLONE_FORCE
1558
+ * (4) requires one. Out-of-range modes throw the RangeError Node throws
1559
+ * ("mode is out of range: >= 0 && <= 7"). */
1560
+ "fs.copyFileFlagsSync": { argTypes: [STRING, STRING, F64], result: VOID },
1395
1561
  /** renameSync is the direct two-path syscall wrapper. renameCb defers
1396
1562
  * the operation to the loop and fires a program-shaped Error | null
1397
1563
  * callback through a backend-emitted adapter. */
@@ -1399,6 +1565,10 @@ function buildLibFnSignatures() {
1399
1565
  // Callback type is program-dependent (zero params or Error | null).
1400
1566
  "fs.renameCb": { argTypes: [STRING, STRING, null], result: VOID },
1401
1567
  "fs.writeFileModeSync": { argTypes: [STRING, STRING, F64], result: VOID },
1568
+ /** writeFileSync(path, data, { mode, flag }): the same open(2) write
1569
+ * with the disposition flag — flag 1 is "wx" (O_EXCL: EEXIST when the
1570
+ * path exists), 0 is "w" (the default truncate-or-create). */
1571
+ "fs.writeFileFlagsSync": { argTypes: [STRING, STRING, F64, F64], result: VOID },
1402
1572
  "fs.mkdirModeSync": { argTypes: [STRING, F64], result: VOID },
1403
1573
  "fs.mkdirRecursiveModeSync": { argTypes: [STRING, F64], result: VOID },
1404
1574
  "atomics.wait": { argTypes: [bytesOf("i32"), F64, F64, F64], result: STRING },
@@ -1482,6 +1652,40 @@ function buildLibFnSignatures() {
1482
1652
  argTypes: [STRING, arrayOf(STRING), F64, STRING, STRING],
1483
1653
  result: SPAWNRES_T,
1484
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
+ },
1485
1689
  // node:net (scr_net.c). Listener slots are program-dependent closures —
1486
1690
  // null slots, checked in the libCall case (the child.onExit precedent);
1487
1691
  // the zero-param callbacks pin the exact func type here. The trailing
@@ -1574,6 +1778,12 @@ function buildLibFnSignatures() {
1574
1778
  result: VOID,
1575
1779
  },
1576
1780
  "net.serverOnConnection": { argTypes: [NETSERVER_T, null, BOOL], result: VOID },
1781
+ /** server.off(event, listener) / removeListener: [server, listener
1782
+ * closure, list kind]. The kind selects the event's registry (1 error,
1783
+ * 2 close, 3 listening, 4 connection/secureConnection, 5 timeout,
1784
+ * 6 drop — the scr_net.h SCR_NET_OFF_* values); Node removes the most
1785
+ * recently added matching listener. Never throws. */
1786
+ "net.serverOff": { argTypes: [NETSERVER_T, null, F64], result: VOID },
1577
1787
  /** 'secureConnection' — the TLS server's deferred 'connection' list
1578
1788
  * (handshake-completion timing); on a server without deferred
1579
1789
  * connections (a plain net server) the registration never fires,
@@ -1591,6 +1801,7 @@ function buildLibFnSignatures() {
1591
1801
  * compiler-rendered fence — ALWAYS THROWS (the error.nodeThrow
1592
1802
  * polymorphic-result carve-out). May-throw seed. */
1593
1803
  "net.connectOptsChk": { argTypes: [DYN, STRING], result: VOID },
1804
+ "net.listenPortDyn": { argTypes: [DYN, STRING], result: F64 },
1594
1805
  "net.connectCb": {
1595
1806
  argTypes: [F64, STRING, { kind: "func", params: [], ret: VOID }],
1596
1807
  result: NETSOCKET_T,
@@ -2045,6 +2256,11 @@ function buildLibFnSignatures() {
2045
2256
  * per-shape adapter — the tags are program data). */
2046
2257
  "http.serverOnConnect": { argTypes: [NETSERVER_T, null, BOOL], result: VOID },
2047
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 },
2048
2264
  "http.reqSocket": { argTypes: [HTTPREQ_T], result: NETSOCKET_T },
2049
2265
  // reqH2Stream's program-interned Http2Stream | undefined result is
2050
2266
  // checked in the special libCall cases in validate.ts.
@@ -2074,6 +2290,8 @@ function buildLibFnSignatures() {
2074
2290
  "http.reqHttpVersionMajor": { argTypes: [HTTPREQ_T], result: F64 },
2075
2291
  "http.reqHttpVersionMinor": { argTypes: [HTTPREQ_T], result: F64 },
2076
2292
  "http.reqAborted": { argTypes: [HTTPREQ_T], result: BOOL },
2293
+ "http.reqDestroyed": { argTypes: [HTTPREQ_T], result: BOOL },
2294
+ "http.resDestroyed": { argTypes: [HTTPRES_T], result: BOOL },
2077
2295
  "http.reqComplete": { argTypes: [HTTPREQ_T], result: BOOL },
2078
2296
  "http.resDestroy": { argTypes: [HTTPRES_T], result: VOID },
2079
2297
  "http.resOnClose": {
@@ -2151,6 +2369,11 @@ function buildLibFnSignatures() {
2151
2369
  "http.clientSignal": { argTypes: [HTTPCLIENTREQ_T, DYN], result: VOID },
2152
2370
  /** options.signal checked before the request is built (ERR_INVALID_ARG_TYPE). */
2153
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 },
2154
2377
  /** https.request's servername option, stored for the construction call
2155
2378
  * that follows: the TLS name sent and verified, and part of the pooled
2156
2379
  * socket key. The "https." prefix keeps the TLS unit linked. */
@@ -2195,6 +2418,13 @@ function buildLibFnSignatures() {
2195
2418
  "http.requestDynCb": { argTypes: [DYN, BOOL, null], result: HTTPCLIENTREQ_T },
2196
2419
  "https.requestDyn": { argTypes: [DYN, BOOL], result: HTTPCLIENTREQ_T },
2197
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 },
2198
2428
  /** The paused-mode demux surface (portless's first-byte TLS peek:
2199
2429
  * once('readable') + read(1) + unshift + emit('connection')).
2200
2430
  * sockOnReadable registers a zero-param listener (a consumer: arrived
@@ -2721,10 +2951,11 @@ function buildLibFnSignatures() {
2721
2951
  argTypes: [STRING, arrayOf(STRING), BOOL, STRING, BOOL, arrayOf(STRING), F64],
2722
2952
  result: SPAWNRES_T,
2723
2953
  },
2724
- /** child_process.spawn (scr_child.c + the scr_async.c loop): posix_spawnp
2725
- * with per-slot ignore/inherit/pipe modes (and number output fds), the
2726
- * all-piped Node default, and the child registered with the event loop,
2727
- * 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.
2728
2959
  * NEVER throws: spawn failure defers to the "error" event, Node-exact
2729
2960
  * (the error message is Node's "spawn <cmd> <ERRNO-NAME>"; an "error"
2730
2961
  * event with no listener prints it and exits 1 like an EventEmitter).
@@ -2785,6 +3016,13 @@ function buildLibFnSignatures() {
2785
3016
  * by the validator/backends. The last argument is exec's shell flag:
2786
3017
  * the argv is ["-c", command] and failure messages show the command. */
2787
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
+ },
2788
3026
  // spawn's options form: per-slot stdio modes (0 ignore / 1 inherit /
2789
3027
  // 2 fd) with the out/err fds for mode 2, detached, env replacement
2790
3028
  // pairs, cwd ("" = inherit).
@@ -3222,6 +3460,20 @@ function buildLibFnSignatures() {
3222
3460
  /** Buffer.byteLength as a function value: the encoding arrives at run time. */
3223
3461
  "buffer.byteLenValue": { argTypes: [DYN, DYN], result: F64 },
3224
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 },
3225
3477
  "buffer.isEncoding": { argTypes: [STRING], result: BOOL },
3226
3478
  /** Buffer.concat(list, totalLength): the concatenation truncated or
3227
3479
  * zero-padded to the total. THROWS Node's 'length' RangeError on a
@@ -3253,6 +3505,8 @@ function buildLibFnSignatures() {
3253
3505
  "buffer.installValue": { argTypes: [], result: VOID },
3254
3506
  "buffer.staticValue": { argTypes: [STRING], result: DYN },
3255
3507
  "buffer.prototypeMember": { argTypes: [DYN], result: DYN },
3508
+ "buffer.prototypeObject": { argTypes: [], result: DYN },
3509
+ "buffer.slowBuffer": { argTypes: [DYN], result: BYTES_U8 },
3256
3510
  /** fs._toUnixTimestamp(time) over a dyn value: numeric strings and
3257
3511
  * finite numbers coerce (negatives answer now/1000, Node's shape);
3258
3512
  * everything else throws Node's ERR_INVALID_ARG_TYPE. May-throw. */
@@ -3380,6 +3634,8 @@ function buildLibFnSignatures() {
3380
3634
  * receivers are borrowed. */
3381
3635
  /** Connects scr_brotli.c to the zlib engine (%main, before any module). */
3382
3636
  "zlib.brotliInstall": { argTypes: [], result: VOID },
3637
+ /** Connects scr_zstd.c the same way. */
3638
+ "zlib.zstdInstall": { argTypes: [], result: VOID },
3383
3639
  "zlib.streamNew": { argTypes: [F64, DYN], result: VOID },
3384
3640
  "zlib.streamBytesWritten": { argTypes: [null], result: F64 },
3385
3641
  /** `stream instanceof zlib.Gzip`: the borrowed stream and the class's
@@ -3422,6 +3678,17 @@ function buildLibFnSignatures() {
3422
3678
  argTypes: [STRING, STRING, F64],
3423
3679
  result: { kind: "promise", inner: VOID },
3424
3680
  },
3681
+ /** fs.promises.writeFile(path, data, { mode, flag }) and
3682
+ * fs.promises.copyFile(src, dest, mode): the settled-promise twins of
3683
+ * fs.writeFileFlagsSync and fs.copyFileFlagsSync. */
3684
+ "fsp.writeFileFlags": {
3685
+ argTypes: [STRING, STRING, F64, F64],
3686
+ result: { kind: "promise", inner: VOID },
3687
+ },
3688
+ "fsp.copyFileFlags": {
3689
+ argTypes: [STRING, STRING, F64],
3690
+ result: { kind: "promise", inner: VOID },
3691
+ },
3425
3692
  "fsp.mkdir": { argTypes: [STRING], result: { kind: "promise", inner: VOID } },
3426
3693
  /** The fs/promises option/member tail the certs pipeline uses: mkdir's
3427
3694
  * literal { recursive?, mode? } options (the mkdirSync matrix behind
@@ -3620,6 +3887,7 @@ function buildLibFnSignatures() {
3620
3887
  "process.versions": { argTypes: [], result: DYN },
3621
3888
  "process.builtinId": { argTypes: [DYN, arrayOf(STRING)], result: STRING },
3622
3889
  "process.builtinModule": { argTypes: [STRING, DYN], result: DYN },
3890
+ "process.builtinObject": { argTypes: [STRING, DYN, arrayOf(STRING)], result: DYN },
3623
3891
  "process.builtinUnsupported": { argTypes: [STRING, STRING], result: DYN },
3624
3892
  /** A module namespace object as a checked-dynamic value
3625
3893
  * (scr_module_namespace_value): the module id, its sorted export names
@@ -3630,6 +3898,47 @@ function buildLibFnSignatures() {
3630
3898
  * names, the compiled getter, and the Symbol.toStringTag key. Draws
3631
3899
  * Node's frozen null-prototype object, one per module. Never throws. */
3632
3900
  "module.namespaceDyn": { argTypes: [STRING, arrayOf(STRING), DYN, DYN], result: DYN },
3901
+ /** A primitive wrapper object (scr_js_wrapper_new): the kind
3902
+ * (0 String, 1 Number, 2 Boolean), the value it converts, and the three
3903
+ * constructor values for the prototypes' `constructor`. */
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 },
3913
+ /** ToObject (scr_js_wrapper_to_object): a wrapper for a primitive, the
3914
+ * value for an object, a fresh object for null/undefined; then the
3915
+ * three constructor values. */
3916
+ "wrapper.toObject": { argTypes: [DYN, DYN, DYN, DYN], result: DYN },
3917
+ /** `value instanceof String/Number/Boolean` (scr_js_wrapper_instance_of):
3918
+ * the kind's prototype on the value's chain. */
3919
+ "wrapper.instanceOf": { argTypes: [DYN, F64], result: BOOL },
3920
+ /** Object.prototype.toString with the [[PrimitiveValue]] brands
3921
+ * (scr_js_wrapper_object_tag); dyn.objectTag otherwise. */
3922
+ "wrapper.objectTag": { argTypes: [DYN], result: STRING },
3923
+ /** util.types brands that read the slot (scr_js_wrapper_type_is). */
3924
+ "wrapper.typeIs": { argTypes: [DYN, STRING], result: BOOL },
3925
+ /** The value unchanged, or the not-supported Error when its own data
3926
+ * graph holds a wrapper (scr_js_wrapper_guard; the string names the
3927
+ * consumer). guardList checks each element. */
3928
+ "wrapper.guard": { argTypes: [DYN, STRING], result: DYN },
3929
+ "wrapper.guardList": { argTypes: [arrayOf(DYN), STRING], result: arrayOf(DYN) },
3930
+ /** Whether a member value a call read as `name` is the builtin
3931
+ * String.prototype method of that name (scr_js_wrapper_is_string_method),
3932
+ * and the method's receiver, ToString of the value
3933
+ * (scr_js_wrapper_this_string). */
3934
+ "wrapper.isStringMethod": { argTypes: [DYN, STRING], result: BOOL },
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 },
3633
3942
  "fs.callbackValue": { argTypes: [STRING], result: DYN },
3634
3943
  "fs.callbackCall": { argTypes: [STRING, DYN], result: DYN },
3635
3944
  "process.hrtimeValue": { argTypes: [], result: DYN },
@@ -3655,6 +3964,14 @@ function buildLibFnSignatures() {
3655
3964
  * never throws. */
3656
3965
  "process.stdoutWrite": { argTypes: [STRING], result: BOOL },
3657
3966
  "process.stdio": { argTypes: [F64], result: DYN },
3967
+ /** The same stream object, reached by the typed write-slot lowering
3968
+ * (the write method as a value, its replacement, a patched program's
3969
+ * typed writes): identical at run time, and the link switch for the
3970
+ * SCR_STDIO_WRITE_SLOT build of the events unit. */
3971
+ "process.stdioSlot": { argTypes: [F64], result: DYN },
3972
+ /** process.stdout/stderr.write(chunk) with a run-time chunk: Node's
3973
+ * Writable validation, then a synchronous write. */
3974
+ "process.stdioWriteDyn": { argTypes: [F64, DYN], result: BOOL },
3658
3975
  "process.stderrWrite": { argTypes: [STRING], result: BOOL },
3659
3976
  // error.new's result and the receiver slots are builtin-error classes —
3660
3977
  // program-dependent object types, checked in the libCall case.
@@ -3712,9 +4029,10 @@ function buildLibFnSignatures() {
3712
4029
  * arms (ERR_INVALID_THIS receivers, ERR_MISSING_ARGS arity ladders,
3713
4030
  * the symbol-to-string TypeError): args are [error-kind f64 (the
3714
4031
  * SCR_ERR_* index: 0 Error, 1 TypeError, 2 RangeError), code (empty =
3715
- * no code slot), message]. ALWAYS THROWS catchably; the result type is
3716
- * the replaced expression's own (never materialized — the
3717
- * global.undefRead pattern). May-throw seed. */
4032
+ * no code slot), message], and optionally a fourth string, the error's
4033
+ * own `url` property (ir/validate.ts accepts it). ALWAYS THROWS
4034
+ * catchably; the result type is the replaced expression's own (never
4035
+ * materialized — the global.undefRead pattern). May-throw seed. */
3718
4036
  "error.nodeThrow": { argTypes: [F64, STRING, STRING], result: VOID },
3719
4037
  /** JS ToString over a dyn value WITH the object protocol (a user
3720
4038
  * toString/valueOf member is CALLED and its throw propagates;
@@ -3804,10 +4122,20 @@ function buildLibFnSignatures() {
3804
4122
  "console.clear": { argTypes: [], result: VOID },
3805
4123
  "console.table": { argTypes: [DYN, DYN], result: VOID },
3806
4124
  "console.dirDyn": { argTypes: [DYN, F64], result: STRING },
4125
+ "console.dirHidden": { argTypes: [DYN, F64], result: STRING },
3807
4126
  /** A native reference to the global object; known names retain value fences. */
3808
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 },
3809
4134
  /** Installs the program's builtin-global lookup (global-values.ts). */
3810
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 },
3811
4139
  /** The keys `for (key in globalThis)` visits, as a fresh object. */
3812
4140
  "global.forInObject": { argTypes: [], result: DYN },
3813
4141
  /** Node's navigator global (scr_node_builtin.c). */
@@ -3922,10 +4250,26 @@ function buildLibFnSignatures() {
3922
4250
  "sharedArrayBuffer.new": { argTypes: [DYN], result: DYN },
3923
4251
  "sharedArrayBuffer.is": { argTypes: [DYN], result: BOOL },
3924
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 },
3925
4262
  "ffi.argument": { argTypes: [DYN, STRING], result: DYN },
3926
4263
  "ffi.memoryModule": { argTypes: [DYN], result: DYN },
3927
4264
  "intl.segmenterNew": { argTypes: [], result: DYN },
3928
4265
  "intl.segmenterRefusing": { argTypes: [STRING], result: DYN },
4266
+ /** `new Intl.Segmenter(locale?, { granularity: "word" })`: ICU's UAX
4267
+ * #29 word iterator (scr_intl.c over ICU), which the
4268
+ * table-driven grapheme segmenter above cannot express. The argument is
4269
+ * the negotiated language tag; the empty string selects the default
4270
+ * locale (ICU's, resolved from the host environment like V8's). +1
4271
+ * handle. */
4272
+ "icu.segmenterWord": { argTypes: [STRING], result: DYN },
3929
4273
  "arrayBuffer.is": { argTypes: [DYN], result: BOOL },
3930
4274
  "arrayBuffer.isView": { argTypes: [DYN], result: BOOL },
3931
4275
  "arrayBuffer.byteLengthGetter": { argTypes: [], result: F64 },
@@ -4009,6 +4353,10 @@ function buildLibFnSignatures() {
4009
4353
  "dyn.errorCaptureStackTraceFunction": { argTypes: [], result: DYN },
4010
4354
  "dyn.functionApply": { argTypes: [], result: DYN },
4011
4355
  "dyn.builtinMethod": { argTypes: [STRING, STRING], result: DYN },
4356
+ /** A standard library prototype object as a value (`Date.prototype` read
4357
+ * in a JavaScript source), named by its constructor: the unit in
4358
+ * scr_dyn_stdlib_prototype.c. */
4359
+ "dyn.stdlibPrototype": { argTypes: [STRING], result: DYN },
4012
4360
  "dyn.classPrototype": { argTypes: [DYN, DYN], result: DYN },
4013
4361
  "dyn.classBasePrototype": { argTypes: [DYN], result: DYN },
4014
4362
  "dyn.classInherit": { argTypes: [DYN, DYN], result: DYN },
@@ -4053,6 +4401,13 @@ function buildLibFnSignatures() {
4053
4401
  "dyn.isExtensible": { argTypes: [DYN], result: BOOL },
4054
4402
  "dyn.seal": { argTypes: [DYN], result: DYN },
4055
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 },
4056
4411
  "dyn.objValues": { argTypes: [DYN], result: DYN },
4057
4412
  /** Object.values as a native vector of checked values, for results the
4058
4413
  * program consumes directly (for-of, index reads, read-only methods). */
@@ -4211,6 +4566,9 @@ function buildLibFnSignatures() {
4211
4566
  "emitter.emit": { argTypes: [null, STRING], result: BOOL },
4212
4567
  "emitter.emitFlex": { argTypes: [null, STRING], result: BOOL },
4213
4568
  "emitter.emitAny": { argTypes: [null, STRING], result: BOOL },
4569
+ /** emit('error', ...payload) with a non-Error payload: (recv, then the
4570
+ * arguments boxed) — VARIADIC like emitFlex. */
4571
+ "emitter.emitErrorValue": { argTypes: [null], result: BOOL },
4214
4572
  /** An untyped emit of an event with a fixed tuple: (recv, name, k, then
4215
4573
  * k checked-dynamic arguments as given, then the event's converted
4216
4574
  * tuple) — VARIADIC like emitter.emit. hasTyped answers whether a
@@ -4562,6 +4920,10 @@ function buildLibFnSignatures() {
4562
4920
  "writable.writeU": { argTypes: [null, null], result: BOOL },
4563
4921
  "writable.writeDyn": { argTypes: [null, DYN], result: BOOL },
4564
4922
  "writable.writeEnc": { argTypes: [null, F64, DYN], result: BOOL },
4923
+ /** The error-first write form: (recv, mode, chunk, encoding, cb) where
4924
+ * mode 0 is a bytes chunk, 1 a string, 2 a run-time chunk, and the
4925
+ * callback takes the completion's error (Node's null on success). */
4926
+ "writable.writeEcb": { argTypes: [null, F64, null, DYN, null], result: BOOL },
4565
4927
  "writable.end": { argTypes: [null, F64], result: VOID },
4566
4928
  "writable.cork": { argTypes: [null], result: VOID },
4567
4929
  "writable.uncork": { argTypes: [null], result: VOID },
@@ -4710,7 +5072,7 @@ function buildLibFnSignatures() {
4710
5072
  * message, code — the %error marker skipped) and deep-compare each
4711
5073
  * against the caught value's; a mismatch throws the deep-equal
4712
5074
  * AssertionError (scr_assert.c). MAY THROW by design. */
4713
- "assert.expectsErrDyn": { argTypes: [DYN, DYN, STRING, BOOL], result: VOID },
5075
+ "assert.expectsErrDyn": { argTypes: [DYN, DYN, STRING, BOOL, BOOL], result: VOID },
4714
5076
  /** A validation function against the caught value (Node's expectedException). */
4715
5077
  "assert.throwsValidate": { argTypes: [DYN, DYN, STRING, STRING, BOOL], result: VOID },
4716
5078
  // assert.ifError's typed entries (always throw; unit args never
@@ -4799,9 +5161,27 @@ function buildLibFnSignatures() {
4799
5161
  * 'not supported yet' Error. */
4800
5162
  "insp.dynHidden": { argTypes: [DYN, F64], result: STRING },
4801
5163
  "insp.begin": { argTypes: [F64], result: VOID },
4802
- /** util.inspect's breakLength, compact (-1 for false) and sorted for the
4803
- * renders that follow; the call site restores 80, 3 and false afterwards. */
4804
- "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 },
4805
5185
  "insp.entry": { argTypes: [STRING, BOOL], result: VOID },
4806
5186
  // Circular references: the receiver slot is program-dependent (any
4807
5187
  // cycle-capable record/array/map/class type — the insp.error precedent).
@@ -4824,6 +5204,27 @@ function buildLibFnSignatures() {
4824
5204
  * (key-order-witness.ts ordered spreads). Both are record types. Never
4825
5205
  * throws. */
4826
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 },
5222
+ /** `record.sourceNote(built, keys)`: the record a width spread just
5223
+ * built keeps `keys` (the copy's own keys, in order; declared ones are
5224
+ * placeholders) as its kept source when they hold an undeclared key or
5225
+ * another order (scr_record_source_note). The first is a record type,
5226
+ * the second dyn (borrowed). Never throws. */
5227
+ "record.sourceNote": { argTypes: [null, DYN], result: VOID },
4827
5228
  "insp.key": { argTypes: [STRING], result: STRING },
4828
5229
  "insp.moreItems": { argTypes: [F64], result: STRING },
4829
5230
  "insp.end": { argTypes: [STRING, STRING, STRING, F64, BOOL, BOOL], result: STRING },
@@ -4833,6 +5234,8 @@ function buildLibFnSignatures() {
4833
5234
  * `prefix inner` re-indented at the caller's level (+1). */
4834
5235
  "insp.nestedBegin": { argTypes: [], result: VOID },
4835
5236
  "insp.nestedEnd": { argTypes: [STRING, STRING], result: STRING },
5237
+ /** nestedEnd's restore alone: the caller's context returns. */
5238
+ "insp.nestedRestore": { argTypes: [], result: VOID },
4836
5239
  /** Around a top-level render that an inspection refusal can end: mark
4837
5240
  * records the inspector's frame and nesting depth, unwind (in the
4838
5241
  * render's finally) closes what the render left open above it. */
@@ -4848,11 +5251,20 @@ function buildLibFnSignatures() {
4848
5251
  * packed NEW pending; end: (enc, pending) → the buffered partial's
4849
5252
  * flush (+1). Node-exact per encoding (oracle-pinned); none throws. */
4850
5253
  "strdec.write": { argTypes: [STRING, F64, BYTES_U8], result: STRING },
5254
+ /** The checked-dynamic chunk forms (a stream "data" payload): a string
5255
+ * passes through unchanged without touching the buffered state, an
5256
+ * ArrayBufferView decodes, anything else throws ERR_INVALID_ARG_TYPE. */
5257
+ "strdec.writeDyn": { argTypes: [STRING, F64, DYN], result: STRING },
5258
+ "strdec.nextDyn": { argTypes: [STRING, F64, DYN], result: F64 },
4851
5259
  "strdec.next": { argTypes: [STRING, F64, BYTES_U8], result: F64 },
4852
5260
  "strdec.end": { argTypes: [STRING, F64], result: STRING },
4853
5261
  /** A runtime encoding argument's canonical name (Node's normalizeEncoding:
4854
5262
  * nullish and "" are utf8); an unknown name throws ERR_UNKNOWN_ENCODING. */
4855
5263
  "strdec.encoding": { argTypes: [DYN], result: STRING },
5264
+ /** The same for an encoding that may not be a string (scr_inspect.c):
5265
+ * an object whose `length` is 3 to 9 matches by its string in lower
5266
+ * case; other values throw ERR_UNKNOWN_ENCODING formatted with %s. */
5267
+ "strdec.encodingValue": { argTypes: [DYN], result: STRING },
4856
5268
  // node:readline: the interface handle is f64; the callbacks' func types
4857
5269
  // are program-dependent (the emitter picks the adapter by parameter
4858
5270
  // count), so those slots are null like child.onExit's.
@@ -5073,6 +5485,9 @@ function buildLibFnSignatures() {
5073
5485
  * non-function. */
5074
5486
  /** Uncaught exception handlers and monitors: [callback dyn, once, monitor]. */
5075
5487
  "process.onUncaughtException": { argTypes: [DYN, BOOL, BOOL], result: VOID },
5488
+ /** Uncaught handlers registered in FRONT of the registry's existing
5489
+ * entries: [callback dyn, monitor] (never `once`). */
5490
+ "process.prependUncaughtException": { argTypes: [DYN, BOOL], result: VOID },
5076
5491
  "process.offUncaughtException": { argTypes: [DYN, BOOL], result: VOID },
5077
5492
  "process.onUnhandledRejection": { argTypes: [DYN, BOOL], result: VOID },
5078
5493
  "process.offUnhandledRejection": { argTypes: [DYN], result: VOID },
@@ -5238,6 +5653,10 @@ function buildLibFnSignatures() {
5238
5653
  * lone surrogate as U+FFFD). Borrowed arg; owned (+1) string; never throws. */
5239
5654
  "text.decode": { argTypes: [BYTES_U8], result: STRING },
5240
5655
  "bytes.bufferSource": { argTypes: [DYN], result: BYTES_U8 },
5656
+ "text.decoderInput": { argTypes: [DYN, F64, DYN, BOOL], result: BYTES_U8 },
5657
+ "text.decoderFlag": { argTypes: [DYN, STRING], result: BOOL },
5658
+ "text.decodeStreamOption": { argTypes: [DYN], result: BOOL },
5659
+ "text.decoderEncodingOptions": { argTypes: [DYN, DYN], result: F64 },
5241
5660
  /** Whether an error-first callback's Buffer result is absent: the zlib
5242
5661
  * and crypto callback adapters pass NULL after an error. Borrowed arg;
5243
5662
  * never throws. */
@@ -5323,6 +5742,10 @@ function buildLibFnSignatures() {
5323
5742
  * undefined; tty.isatty exposes the boolean result directly. */
5324
5743
  "process.isTTY": { argTypes: [F64], result: BOOL },
5325
5744
  "process.isTTYValue": { argTypes: [DYN], result: BOOL },
5745
+ /** A promise that never settles (events.once of an event that cannot
5746
+ * occur, e.g. 'drain' on a synchronous process stream). The result is
5747
+ * events.once's own Promise<any[]> type. */
5748
+ "events.pendingForever": { argTypes: [], result: { kind: "promise", inner: arrayOf(DYN) } },
5326
5749
  // Like process.envGet: the result is the module's interned
5327
5750
  // `number | undefined` union — checked by arms in the libCall case.
5328
5751
  /** Terminal width over an fd literal (1/2 — process.stdout/stderr
@@ -5333,6 +5756,10 @@ function buildLibFnSignatures() {
5333
5756
  "process.columns": { argTypes: [F64], result: VOID },
5334
5757
  /** Terminal height, with the same fd and optional-number contract. */
5335
5758
  "process.rows": { argTypes: [F64], result: VOID },
5759
+ /** process.stdin.isRaw: the raw-mode flag of a TTY stdin as the
5760
+ * module's interned `boolean | undefined` union (a pipe-backed stdin
5761
+ * has no such flag — Node answers undefined there). Never throws. */
5762
+ "process.stdinIsRaw": { argTypes: [], result: VOID },
5336
5763
  /** process.stdin.destroy(): a deliberate no-op (no stream machinery
5337
5764
  * exists to tear down; documented in SEMANTICS.md). */
5338
5765
  "process.stdinDestroy": { argTypes: [], result: VOID },