@scriptc/compiler 0.3.5 → 0.4.0

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 (1243) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +960 -82
  2. package/ambient/scriptc.d.ts +134 -0
  3. package/dist/backend/cycle-analysis.d.ts +1 -1
  4. package/dist/backend/cycle-analysis.js +1 -0
  5. package/dist/backend/cycle-analysis.js.map +1 -1
  6. package/dist/backend/cycle-analysis.test.js +13 -1
  7. package/dist/backend/cycle-analysis.test.js.map +1 -1
  8. package/dist/backend/cycle-mutability.js +16 -5
  9. package/dist/backend/cycle-mutability.js.map +1 -1
  10. package/dist/backend/executable-features.js +13 -0
  11. package/dist/backend/executable-features.js.map +1 -1
  12. package/dist/backend/immutability.test.js +1 -1
  13. package/dist/backend/library-pack.js +6 -0
  14. package/dist/backend/library-pack.js.map +1 -1
  15. package/dist/backend/llvm/alloc.d.ts +41 -4
  16. package/dist/backend/llvm/alloc.js +138 -7
  17. package/dist/backend/llvm/alloc.js.map +1 -1
  18. package/dist/backend/llvm/alloc.test.js +30 -1
  19. package/dist/backend/llvm/alloc.test.js.map +1 -1
  20. package/dist/backend/llvm/appended-array-literals.test.js +1 -1
  21. package/dist/backend/llvm/array-search.test.js +1 -1
  22. package/dist/backend/llvm/blocks.d.ts +8 -0
  23. package/dist/backend/llvm/blocks.js +43 -1
  24. package/dist/backend/llvm/blocks.js.map +1 -1
  25. package/dist/backend/llvm/blocks.test.js +22 -1
  26. package/dist/backend/llvm/blocks.test.js.map +1 -1
  27. package/dist/backend/llvm/byte-numbers.js +15 -5
  28. package/dist/backend/llvm/byte-numbers.js.map +1 -1
  29. package/dist/backend/llvm/bytes-alias.d.ts +14 -0
  30. package/dist/backend/llvm/bytes-alias.js +20 -0
  31. package/dist/backend/llvm/bytes-alias.js.map +1 -0
  32. package/dist/backend/llvm/bytes-loop-versions.d.ts +86 -0
  33. package/dist/backend/llvm/bytes-loop-versions.js +506 -0
  34. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -0
  35. package/dist/backend/llvm/bytes-loop-versions.test.d.ts +1 -0
  36. package/dist/backend/llvm/bytes-loop-versions.test.js +244 -0
  37. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -0
  38. package/dist/backend/llvm/call-lifetimes.js +50 -1
  39. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  40. package/dist/backend/llvm/call-lifetimes.test.js +34 -0
  41. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  42. package/dist/backend/llvm/checked-narrows.test.js +1 -1
  43. package/dist/backend/llvm/checked-value-lifetimes.js +4 -1
  44. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
  45. package/dist/backend/llvm/classes.d.ts +11 -0
  46. package/dist/backend/llvm/classes.js +71 -14
  47. package/dist/backend/llvm/classes.js.map +1 -1
  48. package/dist/backend/llvm/classes.test.js +58 -8
  49. package/dist/backend/llvm/classes.test.js.map +1 -1
  50. package/dist/backend/llvm/common.js +1 -0
  51. package/dist/backend/llvm/common.js.map +1 -1
  52. package/dist/backend/llvm/constant-callbacks.d.ts +5 -1
  53. package/dist/backend/llvm/constant-callbacks.js +55 -12
  54. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  55. package/dist/backend/llvm/constant-callbacks.test.js +88 -1
  56. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  57. package/dist/backend/llvm/counted-loops.d.ts +4 -0
  58. package/dist/backend/llvm/counted-loops.js +37 -0
  59. package/dist/backend/llvm/counted-loops.js.map +1 -1
  60. package/dist/backend/llvm/dense-array-access.d.ts +12 -3
  61. package/dist/backend/llvm/dense-array-access.js +72 -14
  62. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  63. package/dist/backend/llvm/dense-array-access.test.js +59 -3
  64. package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
  65. package/dist/backend/llvm/dense-array-loops.d.ts +51 -0
  66. package/dist/backend/llvm/dense-array-loops.js +162 -0
  67. package/dist/backend/llvm/dense-array-loops.js.map +1 -0
  68. package/dist/backend/llvm/dense-array-loops.test.d.ts +1 -0
  69. package/dist/backend/llvm/dense-array-loops.test.js +128 -0
  70. package/dist/backend/llvm/dense-array-loops.test.js.map +1 -0
  71. package/dist/backend/llvm/dyn-handle-tags.test.d.ts +1 -0
  72. package/dist/backend/llvm/dyn-handle-tags.test.js +38 -0
  73. package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -0
  74. package/dist/backend/llvm/dyn.d.ts +28 -4
  75. package/dist/backend/llvm/dyn.js +324 -179
  76. package/dist/backend/llvm/dyn.js.map +1 -1
  77. package/dist/backend/llvm/emit-function.d.ts +64 -0
  78. package/dist/backend/llvm/emit-function.js +1190 -0
  79. package/dist/backend/llvm/emit-function.js.map +1 -0
  80. package/dist/backend/llvm/emit-module.d.ts +24 -0
  81. package/dist/backend/llvm/emit-module.js +1535 -0
  82. package/dist/backend/llvm/emit-module.js.map +1 -0
  83. package/dist/backend/llvm/emit-statements.d.ts +58 -0
  84. package/dist/backend/llvm/emit-statements.js +1964 -0
  85. package/dist/backend/llvm/emit-statements.js.map +1 -0
  86. package/dist/backend/llvm/emitter.d.ts +576 -268
  87. package/dist/backend/llvm/emitter.js +801 -4447
  88. package/dist/backend/llvm/emitter.js.map +1 -1
  89. package/dist/backend/llvm/emitter.test.js +57 -3
  90. package/dist/backend/llvm/emitter.test.js.map +1 -1
  91. package/dist/backend/llvm/expr-async.js +73 -46
  92. package/dist/backend/llvm/expr-async.js.map +1 -1
  93. package/dist/backend/llvm/expr-async.test.js +1 -1
  94. package/dist/backend/llvm/expr-bytes.d.ts +2 -0
  95. package/dist/backend/llvm/expr-bytes.js +76 -29
  96. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  97. package/dist/backend/llvm/expr-callbacks.d.ts +6 -2
  98. package/dist/backend/llvm/expr-callbacks.js +48 -11
  99. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  100. package/dist/backend/llvm/expr-calls.d.ts +1 -1
  101. package/dist/backend/llvm/expr-calls.js +71 -53
  102. package/dist/backend/llvm/expr-calls.js.map +1 -1
  103. package/dist/backend/llvm/expr-calls.test.js +1 -1
  104. package/dist/backend/llvm/expr-containers.js +39 -15
  105. package/dist/backend/llvm/expr-containers.js.map +1 -1
  106. package/dist/backend/llvm/expr-control.js +16 -16
  107. package/dist/backend/llvm/expr-control.js.map +1 -1
  108. package/dist/backend/llvm/expr-dispatch.js +1 -0
  109. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  110. package/dist/backend/llvm/expr-dynamic.d.ts +3 -0
  111. package/dist/backend/llvm/expr-dynamic.js +92 -63
  112. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  113. package/dist/backend/llvm/expr-primitives.d.ts +1 -1
  114. package/dist/backend/llvm/expr-primitives.js +132 -25
  115. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  116. package/dist/backend/llvm/expr-primitives.test.js +2 -2
  117. package/dist/backend/llvm/expr-records.d.ts +1 -1
  118. package/dist/backend/llvm/expr-records.js +32 -11
  119. package/dist/backend/llvm/expr-records.js.map +1 -1
  120. package/dist/backend/llvm/expr-stream-bridges.js +54 -12
  121. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  122. package/dist/backend/llvm/expr-stream-bridges.test.js +2 -2
  123. package/dist/backend/llvm/expr-stream-callbacks.js +22 -1
  124. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  125. package/dist/backend/llvm/int32-abi.test.js +2 -2
  126. package/dist/backend/llvm/integer-clones.test.js +3 -3
  127. package/dist/backend/llvm/integer-remainder.d.ts +34 -13
  128. package/dist/backend/llvm/integer-remainder.js +156 -22
  129. package/dist/backend/llvm/integer-remainder.js.map +1 -1
  130. package/dist/backend/llvm/intern-tables.test.js +1 -1
  131. package/dist/backend/llvm/jsval-encoding.d.ts +21 -0
  132. package/dist/backend/llvm/jsval-encoding.js +20 -0
  133. package/dist/backend/llvm/jsval-encoding.js.map +1 -0
  134. package/dist/backend/llvm/jsval.d.ts +12 -0
  135. package/dist/backend/llvm/jsval.js +488 -0
  136. package/dist/backend/llvm/jsval.js.map +1 -0
  137. package/dist/backend/llvm/lazy-captures.d.ts +12 -2
  138. package/dist/backend/llvm/lazy-captures.js +39 -17
  139. package/dist/backend/llvm/lazy-captures.js.map +1 -1
  140. package/dist/backend/llvm/lib-abi.js +1 -1
  141. package/dist/backend/llvm/lib-abi.js.map +1 -1
  142. package/dist/backend/llvm/lib-connect.js +1 -1
  143. package/dist/backend/llvm/lib-connect.js.map +1 -1
  144. package/dist/backend/llvm/lib-datagram.js +14 -8
  145. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  146. package/dist/backend/llvm/lib-dispatch.js +217 -24
  147. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  148. package/dist/backend/llvm/lib-filesystem.js +102 -13
  149. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  150. package/dist/backend/llvm/lib-http2.js +3 -3
  151. package/dist/backend/llvm/lib-http2.js.map +1 -1
  152. package/dist/backend/llvm/lib-lookup.js +2 -2
  153. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  154. package/dist/backend/llvm/lib-network.js +77 -25
  155. package/dist/backend/llvm/lib-network.js.map +1 -1
  156. package/dist/backend/llvm/lib-process.js +100 -50
  157. package/dist/backend/llvm/lib-process.js.map +1 -1
  158. package/dist/backend/llvm/lib-shared.d.ts +12 -0
  159. package/dist/backend/llvm/lib-shared.js +229 -5
  160. package/dist/backend/llvm/lib-shared.js.map +1 -1
  161. package/dist/backend/llvm/lib-stream.js +46 -16
  162. package/dist/backend/llvm/lib-stream.js.map +1 -1
  163. package/dist/backend/llvm/lib-test.js +57 -8
  164. package/dist/backend/llvm/lib-test.js.map +1 -1
  165. package/dist/backend/llvm/lib-tls.js +4 -9
  166. package/dist/backend/llvm/lib-tls.js.map +1 -1
  167. package/dist/backend/llvm/local-array-reads.js +2 -2
  168. package/dist/backend/llvm/local-array-reads.test.js +1 -1
  169. package/dist/backend/llvm/local-extents.d.ts +19 -0
  170. package/dist/backend/llvm/local-extents.js +169 -0
  171. package/dist/backend/llvm/local-extents.js.map +1 -0
  172. package/dist/backend/llvm/local-extents.test.d.ts +1 -0
  173. package/dist/backend/llvm/local-extents.test.js +92 -0
  174. package/dist/backend/llvm/local-extents.test.js.map +1 -0
  175. package/dist/backend/llvm/local-union-storage.js +7 -7
  176. package/dist/backend/llvm/local-union-storage.js.map +1 -1
  177. package/dist/backend/llvm/local-union-storage.test.js +2 -2
  178. package/dist/backend/llvm/map-entry-fusion.test.js +1 -1
  179. package/dist/backend/llvm/map-number-lookup.js +2 -2
  180. package/dist/backend/llvm/map-number-lookup.test.js +2 -2
  181. package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
  182. package/dist/backend/llvm/narrow-guards.d.ts +38 -0
  183. package/dist/backend/llvm/narrow-guards.js +151 -0
  184. package/dist/backend/llvm/narrow-guards.js.map +1 -0
  185. package/dist/backend/llvm/nullable-unions.d.ts +70 -9
  186. package/dist/backend/llvm/nullable-unions.js +105 -6
  187. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  188. package/dist/backend/llvm/nullable-unions.test.d.ts +1 -0
  189. package/dist/backend/llvm/nullable-unions.test.js +65 -0
  190. package/dist/backend/llvm/nullable-unions.test.js.map +1 -0
  191. package/dist/backend/llvm/publish.d.ts +4 -0
  192. package/dist/backend/llvm/publish.js +14 -2
  193. package/dist/backend/llvm/publish.js.map +1 -1
  194. package/dist/backend/llvm/publish.test.js +1 -1
  195. package/dist/backend/llvm/receivers.d.ts +31 -0
  196. package/dist/backend/llvm/receivers.js +395 -0
  197. package/dist/backend/llvm/receivers.js.map +1 -0
  198. package/dist/backend/llvm/record-results.d.ts +13 -2
  199. package/dist/backend/llvm/record-results.js +66 -6
  200. package/dist/backend/llvm/record-results.js.map +1 -1
  201. package/dist/backend/llvm/reference-effects.js +9 -0
  202. package/dist/backend/llvm/reference-effects.js.map +1 -1
  203. package/dist/backend/llvm/reference-writes.d.ts +4 -0
  204. package/dist/backend/llvm/reference-writes.js +143 -6
  205. package/dist/backend/llvm/reference-writes.js.map +1 -1
  206. package/dist/backend/llvm/reference-writes.test.d.ts +1 -0
  207. package/dist/backend/llvm/reference-writes.test.js +88 -0
  208. package/dist/backend/llvm/reference-writes.test.js.map +1 -0
  209. package/dist/backend/llvm/regex-matchers.d.ts +8 -0
  210. package/dist/backend/llvm/regex-matchers.js +33 -0
  211. package/dist/backend/llvm/regex-matchers.js.map +1 -1
  212. package/dist/backend/llvm/regex-matchers.test.js +23 -1
  213. package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
  214. package/dist/backend/llvm/regions.d.ts +1 -1
  215. package/dist/backend/llvm/regions.js +9 -6
  216. package/dist/backend/llvm/regions.js.map +1 -1
  217. package/dist/backend/llvm/regions.test.js +1 -1
  218. package/dist/backend/llvm/shapes.d.ts +69 -43
  219. package/dist/backend/llvm/shapes.js +285 -21
  220. package/dist/backend/llvm/shapes.js.map +1 -1
  221. package/dist/backend/llvm/shapes.test.js +37 -3
  222. package/dist/backend/llvm/shapes.test.js.map +1 -1
  223. package/dist/backend/llvm/speculative-integers.d.ts +74 -0
  224. package/dist/backend/llvm/speculative-integers.js +571 -0
  225. package/dist/backend/llvm/speculative-integers.js.map +1 -0
  226. package/dist/backend/llvm/speculative-integers.test.d.ts +1 -0
  227. package/dist/backend/llvm/speculative-integers.test.js +148 -0
  228. package/dist/backend/llvm/speculative-integers.test.js.map +1 -0
  229. package/dist/backend/llvm/split-loops.js +2 -2
  230. package/dist/backend/llvm/split-loops.js.map +1 -1
  231. package/dist/backend/llvm/stack-objects.d.ts +26 -6
  232. package/dist/backend/llvm/stack-objects.js +133 -10
  233. package/dist/backend/llvm/stack-objects.js.map +1 -1
  234. package/dist/backend/llvm/stack-objects.test.js +55 -1
  235. package/dist/backend/llvm/stack-objects.test.js.map +1 -1
  236. package/dist/backend/llvm/stack-unions.test.js +1 -1
  237. package/dist/backend/llvm/string-construction.test.js +1 -1
  238. package/dist/backend/llvm/string-lifetimes.test.js +15 -14
  239. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  240. package/dist/backend/llvm/string-slices.d.ts +25 -0
  241. package/dist/backend/llvm/string-slices.js +207 -1
  242. package/dist/backend/llvm/string-slices.js.map +1 -1
  243. package/dist/backend/llvm/string-slices.test.js +139 -2
  244. package/dist/backend/llvm/string-slices.test.js.map +1 -1
  245. package/dist/backend/llvm/switch-dispatch.test.js +2 -2
  246. package/dist/backend/llvm/thread-slots.d.ts +5 -0
  247. package/dist/backend/llvm/thread-slots.js +142 -0
  248. package/dist/backend/llvm/thread-slots.js.map +1 -0
  249. package/dist/backend/llvm/thread-slots.test.d.ts +1 -0
  250. package/dist/backend/llvm/thread-slots.test.js +110 -0
  251. package/dist/backend/llvm/thread-slots.test.js.map +1 -0
  252. package/dist/backend/llvm/union-repr.d.ts +7 -7
  253. package/dist/backend/llvm/union-repr.js +18 -2
  254. package/dist/backend/llvm/union-repr.js.map +1 -1
  255. package/dist/backend/llvm/union-retype.test.js +17 -3
  256. package/dist/backend/llvm/union-retype.test.js.map +1 -1
  257. package/dist/backend/llvm/walkers.d.ts +2 -2
  258. package/dist/backend/llvm/walkers.js +51 -26
  259. package/dist/backend/llvm/walkers.js.map +1 -1
  260. package/dist/backend/llvm/wasm-modules.d.ts +16 -0
  261. package/dist/backend/llvm/wasm-modules.js +66 -0
  262. package/dist/backend/llvm/wasm-modules.js.map +1 -0
  263. package/dist/backend/llvm/wrapping-sums.d.ts +7 -0
  264. package/dist/backend/llvm/wrapping-sums.js +11 -3
  265. package/dist/backend/llvm/wrapping-sums.js.map +1 -1
  266. package/dist/backend/mangle.d.ts +7 -0
  267. package/dist/backend/mangle.js +11 -0
  268. package/dist/backend/mangle.js.map +1 -1
  269. package/dist/backend/may-throw.d.ts +3 -0
  270. package/dist/backend/may-throw.js +6 -2
  271. package/dist/backend/may-throw.js.map +1 -1
  272. package/dist/backend/may-throw.test.js +1 -1
  273. package/dist/backend/native/contracts.d.ts +37 -0
  274. package/dist/backend/native/executable.js +192 -134
  275. package/dist/backend/native/executable.js.map +1 -1
  276. package/dist/backend/native/library.js +1 -0
  277. package/dist/backend/native/library.js.map +1 -1
  278. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  279. package/dist/backend/native/runtime-inputs.js +2 -0
  280. package/dist/backend/native/runtime-inputs.js.map +1 -1
  281. package/dist/backend/native-link-info-core.d.ts +30 -0
  282. package/dist/backend/native-link-info-core.js.map +1 -1
  283. package/dist/backend/publication.test.js +1 -1
  284. package/dist/backend/runtime-pack-core.d.ts +9 -1
  285. package/dist/backend/runtime-pack-core.js +10 -1
  286. package/dist/backend/runtime-pack-core.js.map +1 -1
  287. package/dist/backend/runtime-pack-native.js +1 -1
  288. package/dist/backend/runtime-pack-native.js.map +1 -1
  289. package/dist/backend/runtime-pack-native.test.d.ts +1 -0
  290. package/dist/backend/runtime-pack-native.test.js +31 -0
  291. package/dist/backend/runtime-pack-native.test.js.map +1 -0
  292. package/dist/backend/runtime-pack-targets.test.js +5 -0
  293. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  294. package/dist/backend/runtime-pack.d.ts +7 -3
  295. package/dist/backend/runtime-pack.js +12 -6
  296. package/dist/backend/runtime-pack.js.map +1 -1
  297. package/dist/backend/runtime-pack.test.js +20 -6
  298. package/dist/backend/runtime-pack.test.js.map +1 -1
  299. package/dist/backend/stack-observations.d.ts +22 -0
  300. package/dist/backend/stack-observations.js +382 -0
  301. package/dist/backend/stack-observations.js.map +1 -0
  302. package/dist/backend/stack-observations.test.d.ts +1 -0
  303. package/dist/backend/stack-observations.test.js +233 -0
  304. package/dist/backend/stack-observations.test.js.map +1 -0
  305. package/dist/backend/target-diagnostics.js +8 -0
  306. package/dist/backend/target-diagnostics.js.map +1 -1
  307. package/dist/backend/target-diagnostics.test.js +1 -1
  308. package/dist/backend/warm-cache.js +5 -0
  309. package/dist/backend/warm-cache.js.map +1 -1
  310. package/dist/backend/young-nursery.d.ts +7 -0
  311. package/dist/backend/young-nursery.js +10 -0
  312. package/dist/backend/young-nursery.js.map +1 -0
  313. package/dist/cli/command.js +44 -4
  314. package/dist/cli/command.js.map +1 -1
  315. package/dist/cli/usage.d.ts +11 -1
  316. package/dist/cli/usage.js +20 -1
  317. package/dist/cli/usage.js.map +1 -1
  318. package/dist/compat/fetch-profile.js +10 -1
  319. package/dist/compat/fetch-profile.js.map +1 -1
  320. package/dist/compile-types.d.ts +13 -0
  321. package/dist/contracts/check.js +25 -6
  322. package/dist/contracts/check.js.map +1 -1
  323. package/dist/contracts/int32-elements.d.ts +115 -0
  324. package/dist/contracts/int32-elements.js +1179 -0
  325. package/dist/contracts/int32-elements.js.map +1 -0
  326. package/dist/coverage/report.d.ts +16 -0
  327. package/dist/coverage/report.js +182 -1
  328. package/dist/coverage/report.js.map +1 -1
  329. package/dist/coverage/surface-manifest.js +19 -6
  330. package/dist/coverage/surface-manifest.js.map +1 -1
  331. package/dist/coverage/verdict-cache.d.ts +2 -0
  332. package/dist/coverage/verdict-cache.js +12 -0
  333. package/dist/coverage/verdict-cache.js.map +1 -1
  334. package/dist/coverage/verdict-cache.test.js +2 -1
  335. package/dist/coverage/verdict-cache.test.js.map +1 -1
  336. package/dist/diagnostics/diagnostic.d.ts +11 -7
  337. package/dist/diagnostics/diagnostic.js +35 -23
  338. package/dist/diagnostics/diagnostic.js.map +1 -1
  339. package/dist/diagnostics/envelope.d.ts +39 -2
  340. package/dist/diagnostics/envelope.js.map +1 -1
  341. package/dist/diagnostics/render.d.ts +7 -0
  342. package/dist/diagnostics/render.js +50 -13
  343. package/dist/diagnostics/render.js.map +1 -1
  344. package/dist/diagnostics/render.test.d.ts +1 -0
  345. package/dist/diagnostics/render.test.js +49 -0
  346. package/dist/diagnostics/render.test.js.map +1 -0
  347. package/dist/executable/executable-cache.d.ts +17 -0
  348. package/dist/executable/executable-cache.js +13 -1
  349. package/dist/executable/executable-cache.js.map +1 -1
  350. package/dist/executable/executable-cache.test.js +7 -1
  351. package/dist/executable/executable-cache.test.js.map +1 -1
  352. package/dist/executable/prepare.js +2 -1
  353. package/dist/executable/prepare.js.map +1 -1
  354. package/dist/frontend/analysis.js +6 -1
  355. package/dist/frontend/analysis.js.map +1 -1
  356. package/dist/frontend/builtin-modules.d.ts +16 -2
  357. package/dist/frontend/builtin-modules.js +40 -7
  358. package/dist/frontend/builtin-modules.js.map +1 -1
  359. package/dist/frontend/cjs-syntax.js +52 -51
  360. package/dist/frontend/cjs-syntax.js.map +1 -1
  361. package/dist/frontend/contract-types.d.ts +3 -0
  362. package/dist/frontend/contract-types.js +36 -7
  363. package/dist/frontend/contract-types.js.map +1 -1
  364. package/dist/frontend/experimental-import.d.ts +5 -1
  365. package/dist/frontend/experimental-import.js +26 -7
  366. package/dist/frontend/experimental-import.js.map +1 -1
  367. package/dist/frontend/fork-target.js +20 -22
  368. package/dist/frontend/fork-target.js.map +1 -1
  369. package/dist/frontend/fork-target.test.js +2 -1
  370. package/dist/frontend/fork-target.test.js.map +1 -1
  371. package/dist/frontend/function-completion.js +6 -6
  372. package/dist/frontend/function-completion.js.map +1 -1
  373. package/dist/frontend/helper-tokens.js +15 -3
  374. package/dist/frontend/helper-tokens.js.map +1 -1
  375. package/dist/frontend/helper-tokens.test.js +7 -1
  376. package/dist/frontend/helper-tokens.test.js.map +1 -1
  377. package/dist/frontend/inferred-js-diagnostics.js +14 -17
  378. package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
  379. package/dist/frontend/input-tracker.d.ts +3 -0
  380. package/dist/frontend/input-tracker.js +32 -3
  381. package/dist/frontend/input-tracker.js.map +1 -1
  382. package/dist/frontend/lib-contract.js +36 -32
  383. package/dist/frontend/lib-contract.js.map +1 -1
  384. package/dist/frontend/lib-exports.js +3 -3
  385. package/dist/frontend/lib-exports.js.map +1 -1
  386. package/dist/frontend/lowering/array-values.d.ts +8 -3
  387. package/dist/frontend/lowering/array-values.js +60 -11
  388. package/dist/frontend/lowering/array-values.js.map +1 -1
  389. package/dist/frontend/lowering/assert-instances.js +4 -4
  390. package/dist/frontend/lowering/assert-instances.js.map +1 -1
  391. package/dist/frontend/lowering/assertion-identity.d.ts +12 -0
  392. package/dist/frontend/lowering/assertion-identity.js +70 -0
  393. package/dist/frontend/lowering/assertion-identity.js.map +1 -0
  394. package/dist/frontend/lowering/assertion-members.d.ts +28 -0
  395. package/dist/frontend/lowering/assertion-members.js +185 -0
  396. package/dist/frontend/lowering/assertion-members.js.map +1 -0
  397. package/dist/frontend/lowering/binding-analysis.js +27 -20
  398. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  399. package/dist/frontend/lowering/builtin-calls.js +72 -4
  400. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  401. package/dist/frontend/lowering/builtin-function-fences.d.ts +14 -0
  402. package/dist/frontend/lowering/builtin-function-fences.js +42 -0
  403. package/dist/frontend/lowering/builtin-function-fences.js.map +1 -0
  404. package/dist/frontend/lowering/builtins/arguments.js +1 -1
  405. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  406. package/dist/frontend/lowering/builtins/async-context.js +53 -52
  407. package/dist/frontend/lowering/builtins/async-context.js.map +1 -1
  408. package/dist/frontend/lowering/builtins/atomics.js +6 -6
  409. package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
  410. package/dist/frontend/lowering/builtins/blob.js +8 -6
  411. package/dist/frontend/lowering/builtins/blob.js.map +1 -1
  412. package/dist/frontend/lowering/builtins/builtin-class-dyn.d.ts +23 -0
  413. package/dist/frontend/lowering/builtins/builtin-class-dyn.js +156 -0
  414. package/dist/frontend/lowering/builtins/builtin-class-dyn.js.map +1 -0
  415. package/dist/frontend/lowering/builtins/callable-aliases.js +45 -6
  416. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
  417. package/dist/frontend/lowering/builtins/child-process-async.js +7 -7
  418. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
  419. package/dist/frontend/lowering/builtins/child-process-methods.d.ts +6 -4
  420. package/dist/frontend/lowering/builtins/child-process-methods.js +310 -57
  421. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  422. package/dist/frontend/lowering/builtins/child-process-sync.js +16 -10
  423. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  424. package/dist/frontend/lowering/builtins/child-process.d.ts +6 -4
  425. package/dist/frontend/lowering/builtins/child-process.js +85 -61
  426. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  427. package/dist/frontend/lowering/builtins/class-values.d.ts +60 -0
  428. package/dist/frontend/lowering/builtins/class-values.js +226 -0
  429. package/dist/frontend/lowering/builtins/class-values.js.map +1 -0
  430. package/dist/frontend/lowering/builtins/compression.d.ts +18 -0
  431. package/dist/frontend/lowering/builtins/compression.js +230 -52
  432. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  433. package/dist/frontend/lowering/builtins/constants.d.ts +9 -1
  434. package/dist/frontend/lowering/builtins/constants.js +28 -7
  435. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  436. package/dist/frontend/lowering/builtins/crypto.d.ts +19 -0
  437. package/dist/frontend/lowering/builtins/crypto.js +223 -38
  438. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  439. package/dist/frontend/lowering/builtins/dates.d.ts +7 -1
  440. package/dist/frontend/lowering/builtins/dates.js +92 -16
  441. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  442. package/dist/frontend/lowering/builtins/disposable-stack.d.ts +18 -0
  443. package/dist/frontend/lowering/builtins/disposable-stack.js +137 -0
  444. package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -0
  445. package/dist/frontend/lowering/builtins/environment.js +3 -3
  446. package/dist/frontend/lowering/builtins/environment.js.map +1 -1
  447. package/dist/frontend/lowering/builtins/errors.d.ts +14 -10
  448. package/dist/frontend/lowering/builtins/errors.js +174 -6
  449. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  450. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +4 -0
  451. package/dist/frontend/lowering/builtins/filesystem-calls.js +136 -113
  452. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  453. package/dist/frontend/lowering/builtins/filesystem.d.ts +8 -0
  454. package/dist/frontend/lowering/builtins/filesystem.js +213 -76
  455. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  456. package/dist/frontend/lowering/builtins/fs-glob.js +3 -3
  457. package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -1
  458. package/dist/frontend/lowering/builtins/fs-streams.js +10 -11
  459. package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -1
  460. package/dist/frontend/lowering/builtins/hash-stream.d.ts +12 -0
  461. package/dist/frontend/lowering/builtins/hash-stream.js +80 -0
  462. package/dist/frontend/lowering/builtins/hash-stream.js.map +1 -0
  463. package/dist/frontend/lowering/builtins/ipc.js +45 -8
  464. package/dist/frontend/lowering/builtins/ipc.js.map +1 -1
  465. package/dist/frontend/lowering/builtins/json.js +232 -24
  466. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  467. package/dist/frontend/lowering/builtins/key-object.js +4 -4
  468. package/dist/frontend/lowering/builtins/key-object.js.map +1 -1
  469. package/dist/frontend/lowering/builtins/module-bindings.d.ts +8 -0
  470. package/dist/frontend/lowering/builtins/module-bindings.js +71 -22
  471. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
  472. package/dist/frontend/lowering/builtins/module-calls.js +67 -46
  473. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  474. package/dist/frontend/lowering/builtins/module-resolution.d.ts +4 -3
  475. package/dist/frontend/lowering/builtins/module-resolution.js +24 -23
  476. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
  477. package/dist/frontend/lowering/builtins/navigator.d.ts +13 -0
  478. package/dist/frontend/lowering/builtins/navigator.js +40 -0
  479. package/dist/frontend/lowering/builtins/navigator.js.map +1 -0
  480. package/dist/frontend/lowering/builtins/net-address.d.ts +19 -0
  481. package/dist/frontend/lowering/builtins/net-address.js +156 -0
  482. package/dist/frontend/lowering/builtins/net-address.js.map +1 -0
  483. package/dist/frontend/lowering/builtins/numbers.js +25 -9
  484. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  485. package/dist/frontend/lowering/builtins/operating-system.d.ts +4 -0
  486. package/dist/frontend/lowering/builtins/operating-system.js +25 -12
  487. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  488. package/dist/frontend/lowering/builtins/performance.d.ts +12 -0
  489. package/dist/frontend/lowering/builtins/performance.js +259 -8
  490. package/dist/frontend/lowering/builtins/performance.js.map +1 -1
  491. package/dist/frontend/lowering/builtins/process.d.ts +32 -1
  492. package/dist/frontend/lowering/builtins/process.js +468 -99
  493. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  494. package/dist/frontend/lowering/builtins/promises.d.ts +5 -1
  495. package/dist/frontend/lowering/builtins/promises.js +326 -43
  496. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  497. package/dist/frontend/lowering/builtins/promisify-callback.d.ts +37 -0
  498. package/dist/frontend/lowering/builtins/promisify-callback.js +320 -0
  499. package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -0
  500. package/dist/frontend/lowering/builtins/properties.js +37 -1
  501. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  502. package/dist/frontend/lowering/builtins/querystring.js +14 -14
  503. package/dist/frontend/lowering/builtins/querystring.js.map +1 -1
  504. package/dist/frontend/lowering/builtins/readline.d.ts +55 -13
  505. package/dist/frontend/lowering/builtins/readline.js +931 -69
  506. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  507. package/dist/frontend/lowering/builtins/receiver-types.js +3 -5
  508. package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -1
  509. package/dist/frontend/lowering/builtins/reflection.js +16 -14
  510. package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
  511. package/dist/frontend/lowering/builtins/runtime-constructor.d.ts +26 -0
  512. package/dist/frontend/lowering/builtins/runtime-constructor.js +165 -0
  513. package/dist/frontend/lowering/builtins/runtime-constructor.js.map +1 -0
  514. package/dist/frontend/lowering/builtins/strings.js +101 -12
  515. package/dist/frontend/lowering/builtins/strings.js.map +1 -1
  516. package/dist/frontend/lowering/builtins/text-codecs.js +41 -38
  517. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
  518. package/dist/frontend/lowering/builtins/timers.js +75 -30
  519. package/dist/frontend/lowering/builtins/timers.js.map +1 -1
  520. package/dist/frontend/lowering/builtins/url.d.ts +3 -0
  521. package/dist/frontend/lowering/builtins/url.js +120 -17
  522. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  523. package/dist/frontend/lowering/builtins/util-types.js +20 -4
  524. package/dist/frontend/lowering/builtins/util-types.js.map +1 -1
  525. package/dist/frontend/lowering/builtins/v8.d.ts +11 -0
  526. package/dist/frontend/lowering/builtins/v8.js +105 -0
  527. package/dist/frontend/lowering/builtins/v8.js.map +1 -0
  528. package/dist/frontend/lowering/builtins/webassembly.d.ts +33 -0
  529. package/dist/frontend/lowering/builtins/webassembly.js +388 -0
  530. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -0
  531. package/dist/frontend/lowering/builtins/webcrypto.d.ts +20 -0
  532. package/dist/frontend/lowering/builtins/webcrypto.js +112 -0
  533. package/dist/frontend/lowering/builtins/webcrypto.js.map +1 -0
  534. package/dist/frontend/lowering/builtins/workers.d.ts +16 -0
  535. package/dist/frontend/lowering/builtins/workers.js +246 -3
  536. package/dist/frontend/lowering/builtins/workers.js.map +1 -1
  537. package/dist/frontend/lowering/call-arguments.js +69 -14
  538. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  539. package/dist/frontend/lowering/call-signatures.d.ts +19 -1
  540. package/dist/frontend/lowering/call-signatures.js +254 -47
  541. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  542. package/dist/frontend/lowering/checked-promise-all.d.ts +3 -0
  543. package/dist/frontend/lowering/checked-promise-all.js +1 -1
  544. package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
  545. package/dist/frontend/lowering/cjs-exports-object.d.ts +53 -0
  546. package/dist/frontend/lowering/cjs-exports-object.js +528 -0
  547. package/dist/frontend/lowering/cjs-exports-object.js.map +1 -0
  548. package/dist/frontend/lowering/cjs-inline-require.d.ts +86 -0
  549. package/dist/frontend/lowering/cjs-inline-require.js +314 -0
  550. package/dist/frontend/lowering/cjs-inline-require.js.map +1 -0
  551. package/dist/frontend/lowering/cjs-tsc-interop.d.ts +28 -0
  552. package/dist/frontend/lowering/cjs-tsc-interop.js +208 -0
  553. package/dist/frontend/lowering/cjs-tsc-interop.js.map +1 -0
  554. package/dist/frontend/lowering/class-attributes.d.ts +19 -0
  555. package/dist/frontend/lowering/class-attributes.js +378 -0
  556. package/dist/frontend/lowering/class-attributes.js.map +1 -0
  557. package/dist/frontend/lowering/class-callbacks.d.ts +3 -1
  558. package/dist/frontend/lowering/class-callbacks.js +21 -10
  559. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  560. package/dist/frontend/lowering/class-construction.js +49 -4
  561. package/dist/frontend/lowering/class-construction.js.map +1 -1
  562. package/dist/frontend/lowering/class-descriptors.d.ts +2 -0
  563. package/dist/frontend/lowering/class-descriptors.js +8 -8
  564. package/dist/frontend/lowering/class-descriptors.js.map +1 -1
  565. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +64 -0
  566. package/dist/frontend/lowering/class-dynamic-dispatch.js +1115 -89
  567. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  568. package/dist/frontend/lowering/class-instance-constructor.js +1 -1
  569. package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
  570. package/dist/frontend/lowering/class-iterables.d.ts +11 -0
  571. package/dist/frontend/lowering/class-iterables.js +31 -0
  572. package/dist/frontend/lowering/class-iterables.js.map +1 -0
  573. package/dist/frontend/lowering/class-method-mutations.js +73 -35
  574. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  575. package/dist/frontend/lowering/class-method-values.js +56 -10
  576. package/dist/frontend/lowering/class-method-values.js.map +1 -1
  577. package/dist/frontend/lowering/class-protocol-dispatch.js +24 -22
  578. package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -1
  579. package/dist/frontend/lowering/class-protocols.d.ts +55 -0
  580. package/dist/frontend/lowering/class-protocols.js +738 -22
  581. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  582. package/dist/frontend/lowering/class-prototypes.d.ts +6 -0
  583. package/dist/frontend/lowering/class-prototypes.js +80 -18
  584. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  585. package/dist/frontend/lowering/class-runtime-statics.js +1 -1
  586. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  587. package/dist/frontend/lowering/class-static-data.js +2 -2
  588. package/dist/frontend/lowering/class-static-data.js.map +1 -1
  589. package/dist/frontend/lowering/class-to-primitive.d.ts +25 -0
  590. package/dist/frontend/lowering/class-to-primitive.js +261 -0
  591. package/dist/frontend/lowering/class-to-primitive.js.map +1 -0
  592. package/dist/frontend/lowering/class-unions.d.ts +25 -0
  593. package/dist/frontend/lowering/class-unions.js +102 -1
  594. package/dist/frontend/lowering/class-unions.js.map +1 -1
  595. package/dist/frontend/lowering/code-generation.d.ts +14 -0
  596. package/dist/frontend/lowering/code-generation.js +127 -0
  597. package/dist/frontend/lowering/code-generation.js.map +1 -0
  598. package/dist/frontend/lowering/coercions/function-adapters.d.ts +16 -2
  599. package/dist/frontend/lowering/coercions/function-adapters.js +145 -3
  600. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  601. package/dist/frontend/lowering/coercions/structural-plans.js +25 -3
  602. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  603. package/dist/frontend/lowering/coercions/structural.js +35 -3
  604. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  605. package/dist/frontend/lowering/coercions/unions.d.ts +15 -0
  606. package/dist/frontend/lowering/coercions/unions.js +57 -1
  607. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  608. package/dist/frontend/lowering/collection-ingestion.js +2 -2
  609. package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
  610. package/dist/frontend/lowering/collection-narrowing.js +2 -4
  611. package/dist/frontend/lowering/collection-narrowing.js.map +1 -1
  612. package/dist/frontend/lowering/construction-escapes.js +8 -8
  613. package/dist/frontend/lowering/construction-escapes.js.map +1 -1
  614. package/dist/frontend/lowering/construction-escapes.test.js +4 -4
  615. package/dist/frontend/lowering/construction-escapes.test.js.map +1 -1
  616. package/dist/frontend/lowering/constructor-returns.d.ts +61 -0
  617. package/dist/frontend/lowering/constructor-returns.js +477 -0
  618. package/dist/frontend/lowering/constructor-returns.js.map +1 -0
  619. package/dist/frontend/lowering/containers/array-callback-call.js +1 -1
  620. package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
  621. package/dist/frontend/lowering/containers/array-callbacks.d.ts +9 -0
  622. package/dist/frontend/lowering/containers/array-callbacks.js +266 -100
  623. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  624. package/dist/frontend/lowering/containers/array-concat.js +1 -1
  625. package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
  626. package/dist/frontend/lowering/containers/array-construction.d.ts +0 -1
  627. package/dist/frontend/lowering/containers/array-construction.js +51 -13
  628. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  629. package/dist/frontend/lowering/containers/array-from-async.d.ts +19 -0
  630. package/dist/frontend/lowering/containers/array-from-async.js +427 -0
  631. package/dist/frontend/lowering/containers/array-from-async.js.map +1 -0
  632. package/dist/frontend/lowering/containers/array-methods.js +89 -77
  633. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  634. package/dist/frontend/lowering/containers/array-pipelines.js +1 -0
  635. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
  636. package/dist/frontend/lowering/containers/bytes.js +161 -101
  637. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  638. package/dist/frontend/lowering/containers/callback-arguments.d.ts +9 -1
  639. package/dist/frontend/lowering/containers/callback-arguments.js +55 -5
  640. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  641. package/dist/frontend/lowering/containers/collection-grouping.d.ts +7 -8
  642. package/dist/frontend/lowering/containers/collection-grouping.js +219 -27
  643. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
  644. package/dist/frontend/lowering/containers/collection-methods.js +81 -48
  645. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  646. package/dist/frontend/lowering/containers/dynamic-receivers.js +1 -1
  647. package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -1
  648. package/dist/frontend/lowering/containers/exec-result-uses.js +2 -2
  649. package/dist/frontend/lowering/containers/exec-result-uses.js.map +1 -1
  650. package/dist/frontend/lowering/containers/for-of.d.ts +6 -0
  651. package/dist/frontend/lowering/containers/for-of.js +19 -19
  652. package/dist/frontend/lowering/containers/for-of.js.map +1 -1
  653. package/dist/frontend/lowering/containers/indexed-objects.js +142 -57
  654. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  655. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +53 -4
  656. package/dist/frontend/lowering/containers/iterator-helpers.js +1581 -462
  657. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
  658. package/dist/frontend/lowering/containers/match-row-uses.d.ts +17 -0
  659. package/dist/frontend/lowering/containers/match-row-uses.js +264 -0
  660. package/dist/frontend/lowering/containers/match-row-uses.js.map +1 -0
  661. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +14 -0
  662. package/dist/frontend/lowering/containers/string-and-regexp.js +419 -30
  663. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  664. package/dist/frontend/lowering/containers/string-replacement.js +1 -1
  665. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  666. package/dist/frontend/lowering/cycle-initialization.d.ts +4 -0
  667. package/dist/frontend/lowering/cycle-initialization.js +39 -0
  668. package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
  669. package/dist/frontend/lowering/deferred-module-initializers.js +47 -43
  670. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  671. package/dist/frontend/lowering/devirtualize.d.ts +1 -1
  672. package/dist/frontend/lowering/devirtualize.js +27 -7
  673. package/dist/frontend/lowering/devirtualize.js.map +1 -1
  674. package/dist/frontend/lowering/divergences.d.ts +0 -5
  675. package/dist/frontend/lowering/divergences.js +238 -128
  676. package/dist/frontend/lowering/divergences.js.map +1 -1
  677. package/dist/frontend/lowering/dyn-streams.d.ts +25 -0
  678. package/dist/frontend/lowering/dyn-streams.js +257 -0
  679. package/dist/frontend/lowering/dyn-streams.js.map +1 -0
  680. package/dist/frontend/lowering/error-methods.js +4 -1
  681. package/dist/frontend/lowering/error-methods.js.map +1 -1
  682. package/dist/frontend/lowering/error-name-order.d.ts +19 -0
  683. package/dist/frontend/lowering/error-name-order.js +93 -0
  684. package/dist/frontend/lowering/error-name-order.js.map +1 -0
  685. package/dist/frontend/lowering/expressions/array-literals.d.ts +21 -0
  686. package/dist/frontend/lowering/expressions/array-literals.js +703 -0
  687. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -0
  688. package/dist/frontend/lowering/expressions/binary.d.ts +35 -0
  689. package/dist/frontend/lowering/expressions/binary.js +2483 -0
  690. package/dist/frontend/lowering/expressions/binary.js.map +1 -0
  691. package/dist/frontend/lowering/expressions/element-access.d.ts +31 -0
  692. package/dist/frontend/lowering/expressions/element-access.js +1797 -0
  693. package/dist/frontend/lowering/expressions/element-access.js.map +1 -0
  694. package/dist/frontend/lowering/expressions/evaluation-safety.js +4 -3
  695. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
  696. package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +38 -0
  697. package/dist/frontend/lowering/expressions/hosted-narrowing.js +160 -0
  698. package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -0
  699. package/dist/frontend/lowering/expressions/identifiers.d.ts +4 -0
  700. package/dist/frontend/lowering/expressions/identifiers.js +830 -0
  701. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -0
  702. package/dist/frontend/lowering/expressions/keyed-field-targets.d.ts +40 -0
  703. package/dist/frontend/lowering/expressions/keyed-field-targets.js +226 -0
  704. package/dist/frontend/lowering/expressions/keyed-field-targets.js.map +1 -0
  705. package/dist/frontend/lowering/expressions/narrowing.d.ts +37 -0
  706. package/dist/frontend/lowering/expressions/narrowing.js +1322 -0
  707. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -0
  708. package/dist/frontend/lowering/expressions/native-proxy.js +4 -4
  709. package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
  710. package/dist/frontend/lowering/expressions/nullish-assignment.js +45 -0
  711. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  712. package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -0
  713. package/dist/frontend/lowering/expressions/object-literals.js +253 -85
  714. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  715. package/dist/frontend/lowering/expressions/optional-chains.d.ts +2 -1
  716. package/dist/frontend/lowering/expressions/optional-chains.js +91 -14
  717. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  718. package/dist/frontend/lowering/expressions/property-access.d.ts +110 -0
  719. package/dist/frontend/lowering/expressions/property-access.js +3544 -0
  720. package/dist/frontend/lowering/expressions/property-access.js.map +1 -0
  721. package/dist/frontend/lowering/expressions/relational.d.ts +28 -0
  722. package/dist/frontend/lowering/expressions/relational.js +1679 -0
  723. package/dist/frontend/lowering/expressions/relational.js.map +1 -0
  724. package/dist/frontend/lowering/expressions/typeof.d.ts +22 -0
  725. package/dist/frontend/lowering/expressions/typeof.js +538 -0
  726. package/dist/frontend/lowering/expressions/typeof.js.map +1 -0
  727. package/dist/frontend/lowering/expressions/union-fields.js +1 -1
  728. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  729. package/dist/frontend/lowering/expressions/updates.d.ts +21 -0
  730. package/dist/frontend/lowering/expressions/updates.js +780 -0
  731. package/dist/frontend/lowering/expressions/updates.js.map +1 -0
  732. package/dist/frontend/lowering/function-context.d.ts +10 -0
  733. package/dist/frontend/lowering/function-context.js +11 -1
  734. package/dist/frontend/lowering/function-context.js.map +1 -1
  735. package/dist/frontend/lowering/function-returns.js +52 -28
  736. package/dist/frontend/lowering/function-returns.js.map +1 -1
  737. package/dist/frontend/lowering/general-streams.d.ts +25 -0
  738. package/dist/frontend/lowering/general-streams.js +108 -0
  739. package/dist/frontend/lowering/general-streams.js.map +1 -0
  740. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +7 -0
  741. package/dist/frontend/lowering/generator-dynamic-dispatch.js +172 -69
  742. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
  743. package/dist/frontend/lowering/generic-functions.d.ts +39 -0
  744. package/dist/frontend/lowering/generic-functions.js +393 -75
  745. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  746. package/dist/frontend/lowering/import-meta.js +2 -2
  747. package/dist/frontend/lowering/import-meta.js.map +1 -1
  748. package/dist/frontend/lowering/intern-tables.js +10 -9
  749. package/dist/frontend/lowering/intern-tables.js.map +1 -1
  750. package/dist/frontend/lowering/iterator-adapters.d.ts +19 -0
  751. package/dist/frontend/lowering/iterator-adapters.js +331 -3
  752. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  753. package/dist/frontend/lowering/js-class-fields.d.ts +28 -0
  754. package/dist/frontend/lowering/js-class-fields.js +170 -0
  755. package/dist/frontend/lowering/js-class-fields.js.map +1 -0
  756. package/dist/frontend/lowering/js-dynamic-objects.d.ts +15 -0
  757. package/dist/frontend/lowering/js-dynamic-objects.js +299 -0
  758. package/dist/frontend/lowering/js-dynamic-objects.js.map +1 -0
  759. package/dist/frontend/lowering/js-dynamic-objects.test.d.ts +1 -0
  760. package/dist/frontend/lowering/js-dynamic-objects.test.js +35 -0
  761. package/dist/frontend/lowering/js-dynamic-objects.test.js.map +1 -0
  762. package/dist/frontend/lowering/json-require.d.ts +22 -0
  763. package/dist/frontend/lowering/json-require.js +131 -0
  764. package/dist/frontend/lowering/json-require.js.map +1 -0
  765. package/dist/frontend/lowering/key-order-witness.d.ts +44 -0
  766. package/dist/frontend/lowering/key-order-witness.js +641 -0
  767. package/dist/frontend/lowering/key-order-witness.js.map +1 -0
  768. package/dist/frontend/lowering/key-order-witness.test.d.ts +1 -0
  769. package/dist/frontend/lowering/key-order-witness.test.js +239 -0
  770. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -0
  771. package/dist/frontend/lowering/lifetime-regions.js +7 -7
  772. package/dist/frontend/lowering/lifetime-regions.js.map +1 -1
  773. package/dist/frontend/lowering/lower-assert.js +61 -60
  774. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  775. package/dist/frontend/lowering/lower-async-iteration.d.ts +10 -1
  776. package/dist/frontend/lowering/lower-async-iteration.js +34 -6
  777. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  778. package/dist/frontend/lowering/lower-builtin-values.d.ts +5 -0
  779. package/dist/frontend/lowering/lower-builtin-values.js +32 -3
  780. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  781. package/dist/frontend/lowering/lower-calls.js +1298 -452
  782. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  783. package/dist/frontend/lowering/lower-classes.d.ts +50 -3
  784. package/dist/frontend/lowering/lower-classes.js +1499 -456
  785. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  786. package/dist/frontend/lowering/lower-comptime.d.ts +4 -2
  787. package/dist/frontend/lowering/lower-comptime.js +111 -13
  788. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  789. package/dist/frontend/lowering/lower-console.js +13 -11
  790. package/dist/frontend/lowering/lower-console.js.map +1 -1
  791. package/dist/frontend/lowering/lower-dgram.d.ts +10 -0
  792. package/dist/frontend/lowering/lower-dgram.js +179 -8
  793. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  794. package/dist/frontend/lowering/lower-enums.js +113 -14
  795. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  796. package/dist/frontend/lowering/lower-event-emitter.d.ts +16 -7
  797. package/dist/frontend/lowering/lower-event-emitter.js +268 -71
  798. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  799. package/dist/frontend/lowering/lower-event-target.js +2 -2
  800. package/dist/frontend/lowering/lower-event-target.js.map +1 -1
  801. package/dist/frontend/lowering/lower-expando.js +17 -13
  802. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  803. package/dist/frontend/lowering/lower-exprs.d.ts +188 -186
  804. package/dist/frontend/lowering/lower-exprs.js +1493 -12407
  805. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  806. package/dist/frontend/lowering/lower-functions.js +68 -22
  807. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  808. package/dist/frontend/lowering/lower-generators.d.ts +6 -0
  809. package/dist/frontend/lowering/lower-generators.js +29 -16
  810. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  811. package/dist/frontend/lowering/lower-global-value.js +5 -1
  812. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  813. package/dist/frontend/lowering/lower-inspect.js +354 -99
  814. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  815. package/dist/frontend/lowering/lower-mixins.js +23 -20
  816. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  817. package/dist/frontend/lowering/lower-mock.d.ts +19 -2
  818. package/dist/frontend/lowering/lower-mock.js +557 -74
  819. package/dist/frontend/lowering/lower-mock.js.map +1 -1
  820. package/dist/frontend/lowering/lower-modules.js +268 -61
  821. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  822. package/dist/frontend/lowering/lower-namespaces.d.ts +6 -0
  823. package/dist/frontend/lowering/lower-namespaces.js +45 -33
  824. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  825. package/dist/frontend/lowering/lower-node-module.d.ts +16 -0
  826. package/dist/frontend/lowering/lower-node-module.js +147 -14
  827. package/dist/frontend/lowering/lower-node-module.js.map +1 -1
  828. package/dist/frontend/lowering/lower-server.d.ts +6 -6
  829. package/dist/frontend/lowering/lower-server.js +638 -105
  830. package/dist/frontend/lowering/lower-server.js.map +1 -1
  831. package/dist/frontend/lowering/lower-stdlib.d.ts +4 -0
  832. package/dist/frontend/lowering/lower-stdlib.js +151 -109
  833. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  834. package/dist/frontend/lowering/lower-stmts.d.ts +28 -2
  835. package/dist/frontend/lowering/lower-stmts.js +1589 -398
  836. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  837. package/dist/frontend/lowering/lower-stream.d.ts +4 -3
  838. package/dist/frontend/lowering/lower-stream.js +714 -75
  839. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  840. package/dist/frontend/lowering/lower-test.d.ts +3 -0
  841. package/dist/frontend/lowering/lower-test.js +574 -100
  842. package/dist/frontend/lowering/lower-test.js.map +1 -1
  843. package/dist/frontend/lowering/lower-timers.js +80 -32
  844. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  845. package/dist/frontend/lowering/lower-url.js +1 -1
  846. package/dist/frontend/lowering/lower-url.js.map +1 -1
  847. package/dist/frontend/lowering/lowerer.d.ts +409 -26
  848. package/dist/frontend/lowering/lowerer.js +1918 -305
  849. package/dist/frontend/lowering/lowerer.js.map +1 -1
  850. package/dist/frontend/lowering/lowerer.test.js +10 -4
  851. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  852. package/dist/frontend/lowering/maybe-promise.d.ts +46 -0
  853. package/dist/frontend/lowering/maybe-promise.js +249 -0
  854. package/dist/frontend/lowering/maybe-promise.js.map +1 -0
  855. package/dist/frontend/lowering/module-member-this.d.ts +3 -0
  856. package/dist/frontend/lowering/module-member-this.js +262 -0
  857. package/dist/frontend/lowering/module-member-this.js.map +1 -0
  858. package/dist/frontend/lowering/module-namespace-elements.js +1 -1
  859. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  860. package/dist/frontend/lowering/nan-coded-reads.d.ts +3 -0
  861. package/dist/frontend/lowering/nan-coded-reads.js +45 -32
  862. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  863. package/dist/frontend/lowering/narrowing-stability.d.ts +18 -3
  864. package/dist/frontend/lowering/narrowing-stability.js +104 -32
  865. package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
  866. package/dist/frontend/lowering/native-ffi.js +11 -11
  867. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  868. package/dist/frontend/lowering/null-prototype.d.ts +13 -0
  869. package/dist/frontend/lowering/null-prototype.js +33 -0
  870. package/dist/frontend/lowering/null-prototype.js.map +1 -0
  871. package/dist/frontend/lowering/object-factory-new.js +6 -8
  872. package/dist/frontend/lowering/object-factory-new.js.map +1 -1
  873. package/dist/frontend/lowering/private-brands.d.ts +46 -0
  874. package/dist/frontend/lowering/private-brands.js +265 -0
  875. package/dist/frontend/lowering/private-brands.js.map +1 -0
  876. package/dist/frontend/lowering/promise-executor-adapter.d.ts +11 -0
  877. package/dist/frontend/lowering/promise-executor-adapter.js +87 -0
  878. package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -0
  879. package/dist/frontend/lowering/require-initialization.d.ts +32 -0
  880. package/dist/frontend/lowering/require-initialization.js +246 -0
  881. package/dist/frontend/lowering/require-initialization.js.map +1 -0
  882. package/dist/frontend/lowering/runtime-optional-bounds.js +7 -7
  883. package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -1
  884. package/dist/frontend/lowering/runtime-optional-elements.js +12 -12
  885. package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
  886. package/dist/frontend/lowering/runtime-optional-guards.js +10 -10
  887. package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -1
  888. package/dist/frontend/lowering/runtime-optional-guards.test.js +1 -1
  889. package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -1
  890. package/dist/frontend/lowering/runtime-optional-ownership.js +10 -9
  891. package/dist/frontend/lowering/runtime-optional-ownership.js.map +1 -1
  892. package/dist/frontend/lowering/runtime-optional-provenance.js +2 -2
  893. package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
  894. package/dist/frontend/lowering/runtime-optional-records.d.ts +35 -0
  895. package/dist/frontend/lowering/runtime-optional-records.js +205 -32
  896. package/dist/frontend/lowering/runtime-optional-records.js.map +1 -1
  897. package/dist/frontend/lowering/runtime-optional-records.test.js +19 -1
  898. package/dist/frontend/lowering/runtime-optional-records.test.js.map +1 -1
  899. package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
  900. package/dist/frontend/lowering/split-consumers.js +4 -4
  901. package/dist/frontend/lowering/split-consumers.js.map +1 -1
  902. package/dist/frontend/lowering/static-function-names.d.ts +28 -0
  903. package/dist/frontend/lowering/static-function-names.js +212 -0
  904. package/dist/frontend/lowering/static-function-names.js.map +1 -0
  905. package/dist/frontend/lowering/static-this.js +6 -6
  906. package/dist/frontend/lowering/static-this.js.map +1 -1
  907. package/dist/frontend/lowering/strict-mode.d.ts +5 -0
  908. package/dist/frontend/lowering/strict-mode.js +31 -0
  909. package/dist/frontend/lowering/strict-mode.js.map +1 -0
  910. package/dist/frontend/lowering/string-index-bounds.js +10 -10
  911. package/dist/frontend/lowering/string-index-bounds.js.map +1 -1
  912. package/dist/frontend/lowering/string-index.d.ts +12 -0
  913. package/dist/frontend/lowering/string-index.js +72 -1
  914. package/dist/frontend/lowering/string-index.js.map +1 -1
  915. package/dist/frontend/lowering/surfaces.d.ts +15 -6
  916. package/dist/frontend/lowering/surfaces.js +278 -45
  917. package/dist/frontend/lowering/surfaces.js.map +1 -1
  918. package/dist/frontend/lowering/symbol-fields.d.ts +7 -0
  919. package/dist/frontend/lowering/symbol-fields.js +204 -36
  920. package/dist/frontend/lowering/symbol-fields.js.map +1 -1
  921. package/dist/frontend/lowering/symbol-methods.d.ts +2 -1
  922. package/dist/frontend/lowering/symbol-methods.js +24 -6
  923. package/dist/frontend/lowering/symbol-methods.js.map +1 -1
  924. package/dist/frontend/lowering/thread-slots.d.ts +13 -0
  925. package/dist/frontend/lowering/thread-slots.js +208 -0
  926. package/dist/frontend/lowering/thread-slots.js.map +1 -0
  927. package/dist/frontend/lowering/typed-arguments.d.ts +74 -0
  928. package/dist/frontend/lowering/typed-arguments.js +472 -0
  929. package/dist/frontend/lowering/typed-arguments.js.map +1 -0
  930. package/dist/frontend/lowering/union-retag.d.ts +8 -0
  931. package/dist/frontend/lowering/union-retag.js +27 -0
  932. package/dist/frontend/lowering/union-retag.js.map +1 -1
  933. package/dist/frontend/lowering/union-retag.test.js +24 -1
  934. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  935. package/dist/frontend/lowering/var-hoisting.js +6 -6
  936. package/dist/frontend/lowering/var-hoisting.js.map +1 -1
  937. package/dist/frontend/lowering/width-lift.d.ts +4 -0
  938. package/dist/frontend/mock-shapes.d.ts +5 -0
  939. package/dist/frontend/mock-shapes.js +39 -7
  940. package/dist/frontend/mock-shapes.js.map +1 -1
  941. package/dist/frontend/module-source-candidates.js +1 -1
  942. package/dist/frontend/module-source-candidates.js.map +1 -1
  943. package/dist/frontend/module-source-candidates.test.js +2 -1
  944. package/dist/frontend/module-source-candidates.test.js.map +1 -1
  945. package/dist/frontend/module-syntax.js +8 -8
  946. package/dist/frontend/module-syntax.js.map +1 -1
  947. package/dist/frontend/npm-static-bundled-chunks.d.ts +51 -0
  948. package/dist/frontend/npm-static-bundled-chunks.js +810 -0
  949. package/dist/frontend/npm-static-bundled-chunks.js.map +1 -0
  950. package/dist/frontend/npm-static-bundled-chunks.test.d.ts +1 -0
  951. package/dist/frontend/npm-static-bundled-chunks.test.js +287 -0
  952. package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -0
  953. package/dist/frontend/npm-static-bundled-cjs.js +24 -23
  954. package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
  955. package/dist/frontend/npm-static-bundled-esm.d.ts +9 -0
  956. package/dist/frontend/npm-static-bundled-esm.js +768 -0
  957. package/dist/frontend/npm-static-bundled-esm.js.map +1 -0
  958. package/dist/frontend/npm-static-bundled-esm.test.d.ts +1 -0
  959. package/dist/frontend/npm-static-bundled-esm.test.js +207 -0
  960. package/dist/frontend/npm-static-bundled-esm.test.js.map +1 -0
  961. package/dist/frontend/npm-static-cjs-exports-alias.d.ts +2 -0
  962. package/dist/frontend/npm-static-cjs-exports-alias.js +186 -0
  963. package/dist/frontend/npm-static-cjs-exports-alias.js.map +1 -0
  964. package/dist/frontend/npm-static-cjs-exports-alias.test.d.ts +1 -0
  965. package/dist/frontend/npm-static-cjs-exports-alias.test.js +73 -0
  966. package/dist/frontend/npm-static-cjs-exports-alias.test.js.map +1 -0
  967. package/dist/frontend/npm-static-cjs-exports-var.d.ts +2 -0
  968. package/dist/frontend/npm-static-cjs-exports-var.js +236 -0
  969. package/dist/frontend/npm-static-cjs-exports-var.js.map +1 -0
  970. package/dist/frontend/npm-static-declaration-syntax.js +102 -101
  971. package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
  972. package/dist/frontend/npm-static-prune.js +36 -24
  973. package/dist/frontend/npm-static-prune.js.map +1 -1
  974. package/dist/frontend/npm-static-rewrite-host.d.ts +4 -1
  975. package/dist/frontend/npm-static-rewrite-host.js +14 -3
  976. package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
  977. package/dist/frontend/npm-static-rewrite-syntax.d.ts +19 -0
  978. package/dist/frontend/npm-static-rewrite-syntax.js +274 -101
  979. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  980. package/dist/frontend/npm-static-subtyping.js +7 -9
  981. package/dist/frontend/npm-static-subtyping.js.map +1 -1
  982. package/dist/frontend/npm-static.d.ts +17 -1
  983. package/dist/frontend/npm-static.js +167 -16
  984. package/dist/frontend/npm-static.js.map +1 -1
  985. package/dist/frontend/npm-static.test.js +22 -1
  986. package/dist/frontend/npm-static.test.js.map +1 -1
  987. package/dist/frontend/pipeline.js +164 -26
  988. package/dist/frontend/pipeline.js.map +1 -1
  989. package/dist/frontend/pipeline.test.js +22 -1
  990. package/dist/frontend/pipeline.test.js.map +1 -1
  991. package/dist/frontend/program-analysis.d.ts +6 -1
  992. package/dist/frontend/program-analysis.js +7 -0
  993. package/dist/frontend/program-analysis.js.map +1 -1
  994. package/dist/frontend/program.d.ts +92 -2
  995. package/dist/frontend/program.js +1557 -254
  996. package/dist/frontend/program.js.map +1 -1
  997. package/dist/frontend/program.test.js +76 -6
  998. package/dist/frontend/program.test.js.map +1 -1
  999. package/dist/frontend/resolve.js +36 -2
  1000. package/dist/frontend/resolve.js.map +1 -1
  1001. package/dist/frontend/resolve.test.js +49 -0
  1002. package/dist/frontend/resolve.test.js.map +1 -1
  1003. package/dist/frontend/services.d.ts +20 -1
  1004. package/dist/frontend/services.js +40 -3
  1005. package/dist/frontend/services.js.map +1 -1
  1006. package/dist/frontend/services.test.js +2 -1
  1007. package/dist/frontend/services.test.js.map +1 -1
  1008. package/dist/frontend/threads-import.js +1 -1
  1009. package/dist/frontend/threads-import.js.map +1 -1
  1010. package/dist/frontend/tier-analysis.d.ts +71 -0
  1011. package/dist/frontend/tier-analysis.js +522 -0
  1012. package/dist/frontend/tier-analysis.js.map +1 -0
  1013. package/dist/frontend/ts7/api-conformance.d.ts +234 -0
  1014. package/dist/frontend/ts7/api-conformance.js +7 -0
  1015. package/dist/frontend/ts7/api-conformance.js.map +1 -0
  1016. package/dist/frontend/ts7/ast-guards.generated.js +2 -1
  1017. package/dist/frontend/ts7/ast-guards.generated.js.map +1 -1
  1018. package/dist/frontend/ts7/ast-node.d.ts +47 -25
  1019. package/dist/frontend/ts7/ast-node.js +64 -18
  1020. package/dist/frontend/ts7/ast-node.js.map +1 -1
  1021. package/dist/frontend/ts7/ast-node.test.js +36 -12
  1022. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  1023. package/dist/frontend/ts7/ast-types.d.ts +10 -3
  1024. package/dist/frontend/ts7/ast-types.generated.d.ts +39 -39
  1025. package/dist/frontend/ts7/ast.d.ts +1 -0
  1026. package/dist/frontend/ts7/ast.js +3 -2
  1027. package/dist/frontend/ts7/ast.js.map +1 -1
  1028. package/dist/frontend/ts7/checker-backend.d.ts +23 -0
  1029. package/dist/frontend/ts7/checker-backend.js +88 -0
  1030. package/dist/frontend/ts7/checker-backend.js.map +1 -0
  1031. package/dist/frontend/ts7/checker-backend.test.d.ts +1 -0
  1032. package/dist/frontend/ts7/checker-backend.test.js +63 -0
  1033. package/dist/frontend/ts7/checker-backend.test.js.map +1 -0
  1034. package/dist/frontend/ts7/checker-cache.d.ts +0 -3
  1035. package/dist/frontend/ts7/checker-cache.js +0 -6
  1036. package/dist/frontend/ts7/checker-cache.js.map +1 -1
  1037. package/dist/frontend/ts7/checker.d.ts +18 -11
  1038. package/dist/frontend/ts7/checker.js +42 -55
  1039. package/dist/frontend/ts7/checker.js.map +1 -1
  1040. package/dist/frontend/ts7/checker.test.js +10 -7
  1041. package/dist/frontend/ts7/checker.test.js.map +1 -1
  1042. package/dist/frontend/ts7/diagnostic.d.ts +19 -0
  1043. package/dist/frontend/ts7/diagnostic.js +22 -0
  1044. package/dist/frontend/ts7/diagnostic.js.map +1 -0
  1045. package/dist/frontend/ts7/node-functions.d.ts +8 -0
  1046. package/dist/frontend/ts7/node-functions.js +18 -0
  1047. package/dist/frontend/ts7/node-functions.js.map +1 -0
  1048. package/dist/frontend/ts7/program-host.d.ts +5 -1
  1049. package/dist/frontend/ts7/program-host.js +12 -0
  1050. package/dist/frontend/ts7/program-host.js.map +1 -1
  1051. package/dist/frontend/ts7/rpc-api.d.ts +5 -1
  1052. package/dist/frontend/ts7/rpc-api.js +8 -1
  1053. package/dist/frontend/ts7/rpc-api.js.map +1 -1
  1054. package/dist/frontend/ts7/semantic-checker.d.ts +13 -6
  1055. package/dist/frontend/ts7/semantic-checker.js +26 -8
  1056. package/dist/frontend/ts7/semantic-checker.js.map +1 -1
  1057. package/dist/frontend/ts7/semantic-checker.test.js +12 -9
  1058. package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
  1059. package/dist/frontend/ts7/semantic-model.d.ts +54 -24
  1060. package/dist/frontend/ts7/semantic-model.js +88 -16
  1061. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  1062. package/dist/frontend/ts7/semantic-model.test.js +4 -4
  1063. package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
  1064. package/dist/frontend/ts7/semantic-types.d.ts +7 -3
  1065. package/dist/frontend/ts7/semantic-types.js +1 -1
  1066. package/dist/frontend/ts7/semantic-types.js.map +1 -1
  1067. package/dist/frontend/ts7/session.d.ts +11 -11
  1068. package/dist/frontend/ts7/session.js +8 -5
  1069. package/dist/frontend/ts7/session.js.map +1 -1
  1070. package/dist/frontend/ts7/session.test.js +9 -5
  1071. package/dist/frontend/ts7/session.test.js.map +1 -1
  1072. package/dist/frontend/ts7/source-parser.d.ts +6 -2
  1073. package/dist/frontend/ts7/source-parser.js +24 -3
  1074. package/dist/frontend/ts7/source-parser.js.map +1 -1
  1075. package/dist/frontend/ts7/source-parser.test.js +38 -17
  1076. package/dist/frontend/ts7/source-parser.test.js.map +1 -1
  1077. package/dist/frontend/type-mapper.d.ts +122 -2
  1078. package/dist/frontend/type-mapper.js +2612 -695
  1079. package/dist/frontend/type-mapper.js.map +1 -1
  1080. package/dist/frontend/type-only-imports.d.ts +28 -0
  1081. package/dist/frontend/type-only-imports.js +122 -0
  1082. package/dist/frontend/type-only-imports.js.map +1 -0
  1083. package/dist/frontend/worker-target.js +8 -8
  1084. package/dist/frontend/worker-target.js.map +1 -1
  1085. package/dist/index.d.ts +3 -1
  1086. package/dist/index.js +47 -10
  1087. package/dist/index.js.map +1 -1
  1088. package/dist/ir/analysis.js +4 -2
  1089. package/dist/ir/analysis.js.map +1 -1
  1090. package/dist/ir/api.d.ts +1 -1
  1091. package/dist/ir/api.js +1 -1
  1092. package/dist/ir/api.js.map +1 -1
  1093. package/dist/ir/array-length-stability.d.ts +30 -0
  1094. package/dist/ir/array-length-stability.js +236 -0
  1095. package/dist/ir/array-length-stability.js.map +1 -0
  1096. package/dist/ir/array-length-stability.test.d.ts +1 -0
  1097. package/dist/ir/array-length-stability.test.js +113 -0
  1098. package/dist/ir/array-length-stability.test.js.map +1 -0
  1099. package/dist/ir/build.d.ts +2 -2
  1100. package/dist/ir/build.js +1 -1
  1101. package/dist/ir/build.js.map +1 -1
  1102. package/dist/ir/builtin-effects.js +139 -0
  1103. package/dist/ir/builtin-effects.js.map +1 -1
  1104. package/dist/ir/builtin-signatures.d.ts +1 -1
  1105. package/dist/ir/builtin-signatures.js +655 -25
  1106. package/dist/ir/builtin-signatures.js.map +1 -1
  1107. package/dist/ir/byte-numbers.js +3 -0
  1108. package/dist/ir/byte-numbers.js.map +1 -1
  1109. package/dist/ir/callback-specialization.d.ts +37 -0
  1110. package/dist/ir/callback-specialization.js +459 -0
  1111. package/dist/ir/callback-specialization.js.map +1 -0
  1112. package/dist/ir/callback-specialization.test.d.ts +1 -0
  1113. package/dist/ir/callback-specialization.test.js +208 -0
  1114. package/dist/ir/callback-specialization.test.js.map +1 -0
  1115. package/dist/ir/capture-values.d.ts +0 -1
  1116. package/dist/ir/capture-values.js +51 -40
  1117. package/dist/ir/capture-values.js.map +1 -1
  1118. package/dist/ir/constant-globals.test.js +1 -1
  1119. package/dist/ir/constant-tables.test.js +1 -1
  1120. package/dist/ir/field-values.test.js +1 -1
  1121. package/dist/ir/final-fields.test.js +1 -1
  1122. package/dist/ir/function-references.test.js +10 -1
  1123. package/dist/ir/function-references.test.js.map +1 -1
  1124. package/dist/ir/init-only-globals.test.js +1 -1
  1125. package/dist/ir/initializer-bindings.test.js +1 -1
  1126. package/dist/ir/int32-slots.d.ts +14 -0
  1127. package/dist/ir/int32-slots.js +119 -14
  1128. package/dist/ir/int32-slots.js.map +1 -1
  1129. package/dist/ir/int32-slots.test.js +29 -1
  1130. package/dist/ir/int32-slots.test.js.map +1 -1
  1131. package/dist/ir/integer-loop-facts.d.ts +16 -6
  1132. package/dist/ir/integer-loop-facts.js +143 -38
  1133. package/dist/ir/integer-loop-facts.js.map +1 -1
  1134. package/dist/ir/integer-loops.d.ts +1 -1
  1135. package/dist/ir/integer-loops.js +39 -9
  1136. package/dist/ir/integer-loops.js.map +1 -1
  1137. package/dist/ir/integer-loops.test.js +104 -0
  1138. package/dist/ir/integer-loops.test.js.map +1 -1
  1139. package/dist/ir/integer-ranges.d.ts +3 -0
  1140. package/dist/ir/integer-ranges.js +4 -6
  1141. package/dist/ir/integer-ranges.js.map +1 -1
  1142. package/dist/ir/integer-ranges.test.js +142 -1
  1143. package/dist/ir/integer-ranges.test.js.map +1 -1
  1144. package/dist/ir/intrinsic-signatures.js +6 -0
  1145. package/dist/ir/intrinsic-signatures.js.map +1 -1
  1146. package/dist/ir/ir.d.ts +234 -58
  1147. package/dist/ir/ir.js +123 -12
  1148. package/dist/ir/ir.js.map +1 -1
  1149. package/dist/ir/ir.test.js +10 -0
  1150. package/dist/ir/ir.test.js.map +1 -1
  1151. package/dist/ir/jsval.d.ts +8 -0
  1152. package/dist/ir/jsval.js +365 -0
  1153. package/dist/ir/jsval.js.map +1 -0
  1154. package/dist/ir/jsval.test.d.ts +1 -0
  1155. package/dist/ir/jsval.test.js +239 -0
  1156. package/dist/ir/jsval.test.js.map +1 -0
  1157. package/dist/ir/runtime-features.d.ts +150 -33
  1158. package/dist/ir/runtime-features.js +672 -339
  1159. package/dist/ir/runtime-features.js.map +1 -1
  1160. package/dist/ir/runtime-features.test.js +62 -0
  1161. package/dist/ir/runtime-features.test.js.map +1 -1
  1162. package/dist/ir/scalar-records.test.js +1 -1
  1163. package/dist/ir/self-captures.d.ts +33 -0
  1164. package/dist/ir/self-captures.js +245 -0
  1165. package/dist/ir/self-captures.js.map +1 -0
  1166. package/dist/ir/self-captures.test.d.ts +1 -0
  1167. package/dist/ir/self-captures.test.js +135 -0
  1168. package/dist/ir/self-captures.test.js.map +1 -0
  1169. package/dist/ir/serialize.d.ts +1 -1
  1170. package/dist/ir/serialize.js +7 -4
  1171. package/dist/ir/serialize.js.map +1 -1
  1172. package/dist/ir/tiers.d.ts +26 -0
  1173. package/dist/ir/tiers.js +101 -0
  1174. package/dist/ir/tiers.js.map +1 -0
  1175. package/dist/ir/tiers.test.d.ts +1 -0
  1176. package/dist/ir/tiers.test.js +140 -0
  1177. package/dist/ir/tiers.test.js.map +1 -0
  1178. package/dist/ir/traverse.js +107 -94
  1179. package/dist/ir/traverse.js.map +1 -1
  1180. package/dist/ir/traverse.test.js +33 -30
  1181. package/dist/ir/traverse.test.js.map +1 -1
  1182. package/dist/ir/unshare.js +65 -3
  1183. package/dist/ir/unshare.js.map +1 -1
  1184. package/dist/ir/unshare.test.js +1 -1
  1185. package/dist/ir/validate.js +220 -71
  1186. package/dist/ir/validate.js.map +1 -1
  1187. package/dist/ir/validate.test.js +64 -9
  1188. package/dist/ir/validate.test.js.map +1 -1
  1189. package/dist/library/fence-eval.test.js +1 -1
  1190. package/dist/library/int-infer.test.js +4 -4
  1191. package/dist/library/ir-policy.js +18 -0
  1192. package/dist/library/ir-policy.js.map +1 -1
  1193. package/dist/library/library-cache.d.ts +1 -0
  1194. package/dist/library/library-cache.js.map +1 -1
  1195. package/dist/library/library-cache.test.js +5 -5
  1196. package/dist/library/library-profile.d.ts +4 -4
  1197. package/dist/library/library-profile.js +35 -7
  1198. package/dist/library/library-profile.js.map +1 -1
  1199. package/dist/library/prepare.js +13 -1
  1200. package/dist/library/prepare.js.map +1 -1
  1201. package/dist/native/cli.js +5 -0
  1202. package/dist/native/cli.js.map +1 -1
  1203. package/dist/native/compiler.js +2 -2
  1204. package/dist/native/compiler.js.map +1 -1
  1205. package/dist/native/compiler.test.js +2 -2
  1206. package/dist/native/prepare.js +7 -0
  1207. package/dist/native/prepare.js.map +1 -1
  1208. package/dist/native/sanitizer.test.js +12 -0
  1209. package/dist/native/sanitizer.test.js.map +1 -1
  1210. package/dist/native/toolchain.d.ts +2 -0
  1211. package/dist/native/toolchain.js +10 -1
  1212. package/dist/native/toolchain.js.map +1 -1
  1213. package/dist/native/toolchain.test.js +39 -1
  1214. package/dist/native/toolchain.test.js.map +1 -1
  1215. package/dist/startup-cache.d.ts +1 -0
  1216. package/dist/startup-cache.js +1 -0
  1217. package/dist/startup-cache.js.map +1 -1
  1218. package/dist/wasm/base64.d.ts +5 -0
  1219. package/dist/wasm/base64.js +62 -0
  1220. package/dist/wasm/base64.js.map +1 -0
  1221. package/dist/wasm/binary.d.ts +36 -0
  1222. package/dist/wasm/binary.js +1976 -0
  1223. package/dist/wasm/binary.js.map +1 -0
  1224. package/dist/wasm/binary.test.d.ts +1 -0
  1225. package/dist/wasm/binary.test.js +190 -0
  1226. package/dist/wasm/binary.test.js.map +1 -0
  1227. package/dist/wasm/discover.d.ts +38 -0
  1228. package/dist/wasm/discover.js +377 -0
  1229. package/dist/wasm/discover.js.map +1 -0
  1230. package/dist/wasm/discover.test.d.ts +1 -0
  1231. package/dist/wasm/discover.test.js +24 -0
  1232. package/dist/wasm/discover.test.js.map +1 -0
  1233. package/dist/wasm/module.d.ts +151 -0
  1234. package/dist/wasm/module.js +575 -0
  1235. package/dist/wasm/module.js.map +1 -0
  1236. package/dist/wasm/translate.d.ts +48 -0
  1237. package/dist/wasm/translate.js +2129 -0
  1238. package/dist/wasm/translate.js.map +1 -0
  1239. package/dist/wasm/translate.test.d.ts +1 -0
  1240. package/dist/wasm/translate.test.js +207 -0
  1241. package/dist/wasm/translate.test.js.map +1 -0
  1242. package/package.json +21 -20
  1243. package/surface-manifest.json +332 -36
@@ -1,5 +1,5 @@
1
1
  import { BIGINT_T } from "./ir.js";
2
- import { arrayOf, BOOL, BYTES_U8, bytesOf, CHILD_T, CHILDSTREAM_T, CHILDWRITER_T, CRYPTOHASH_T, CRYPTOHMAC_T, DATE_T, DIR_T, DGRAMSOCK_T, DYN, F64, FILEHANDLE_T, FSWATCHER_T, HTTP2SESSION_T, HTTP2STREAM_T, HTTPCLIENTREQ_T, HTTPREQ_T, HTTPRES_T, NETSERVER_T, NETSOCKET_T, PROCSTREAM_T, REGEX, SEARCH_PARAMS_T, SECURECTX_T, SPAWNRES_T, STATS_T, STRING, SYMBOL_T, TESTCTX_T, URL_T, VOID, funcOf, } from "./ir.js";
2
+ import { arrayOf, BOOL, BYTES_U8, bytesOf, CHILD_T, CHILDSTREAM_T, CHILDWRITER_T, CRYPTOHASH_T, CRYPTOHMAC_T, DATE_T, DIR_T, DGRAMSOCK_T, DYN, F64, FILEHANDLE_T, FSWATCHER_T, HTTP2SESSION_T, HTTP2STREAM_T, HTTPCLIENTREQ_T, HTTPREQ_T, HTTPRES_T, JSVAL, NETSERVER_T, NETSOCKET_T, PROCSTREAM_T, REGEX, SEARCH_PARAMS_T, SECURECTX_T, SPAWNRES_T, STATS_T, STRING, SYMBOL_T, TESTCTX_T, URL_T, VOID, funcOf, } from "./ir.js";
3
3
  /** Preserve the closed names while giving every entry the same slot type. */
4
4
  function defineLibFnSignatures(signatures) {
5
5
  return signatures;
@@ -15,6 +15,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
15
15
  * are opaque checked-dynamic handles. */
16
16
  "fetch.start": { argTypes: [STRING, DYN], result: { kind: "promise", inner: DYN } },
17
17
  "fetch.responseNew": { argTypes: [DYN, DYN], result: DYN },
18
+ "fetch.responseJsonStatic": { argTypes: [DYN, DYN], result: DYN },
18
19
  "fetch.input": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
19
20
  "abort.controllerNew": { argTypes: [], result: DYN },
20
21
  /** EventTarget / Event / CustomEvent construction (scr_event_target.c):
@@ -57,6 +58,45 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
57
58
  "blob.bytes": { argTypes: [DYN], result: { kind: "promise", inner: BYTES_U8 } },
58
59
  "blob.arrayBuffer": { argTypes: [DYN], result: { kind: "promise", inner: DYN } },
59
60
  "blob.is": { argTypes: [DYN, F64], result: BOOL },
61
+ /** WebAssembly (scr_wasm.c): modules translated at build time
62
+ * (wasm/translate.ts), found at run time by the SHA-256 of their bytes.
63
+ * compile and instantiate over bytes settle on a later loop turn;
64
+ * instantiate over a Module settles now, as in Node. `wasm.is` answers
65
+ * instanceof for Module, Instance, Memory, Table and Global (kinds 0-4)
66
+ * and CompileError, LinkError and RuntimeError (5-7); `wasm.errorNew`
67
+ * constructs one of the error classes (kind 5-7, message, options). */
68
+ "wasm.compile": { argTypes: [DYN], result: { kind: "promise", inner: DYN } },
69
+ "wasm.validate": { argTypes: [DYN], result: BOOL },
70
+ "wasm.instantiate": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
71
+ "wasm.moduleNew": { argTypes: [DYN], result: DYN },
72
+ "wasm.instanceNew": { argTypes: [DYN, DYN], result: DYN },
73
+ "wasm.is": { argTypes: [DYN, F64], result: BOOL },
74
+ "wasm.errorNew": { argTypes: [F64, DYN, DYN], result: DYN },
75
+ /** new WebAssembly.Memory(descriptor), Table(descriptor, value) and
76
+ * Global(descriptor, value) (an undefined value is the type's default);
77
+ * `wasm.withoutNew` throws the TypeError for Module, Instance, Memory,
78
+ * Table or Global (kinds 0-4) called without new, after its arguments
79
+ * evaluate. */
80
+ "wasm.memoryNew": { argTypes: [DYN], result: DYN },
81
+ "wasm.tableNew": { argTypes: [DYN, DYN], result: DYN },
82
+ "wasm.globalNew": { argTypes: [DYN, DYN], result: DYN },
83
+ "wasm.withoutNew": { argTypes: [F64, DYN, DYN], result: DYN },
84
+ /** WebAssembly.Module.imports(module), exports(module) and
85
+ * customSections(module, name): checked-dynamic arrays of descriptor
86
+ * objects and ArrayBuffers. */
87
+ "wasm.moduleImports": { argTypes: [DYN], result: DYN },
88
+ "wasm.moduleExports": { argTypes: [DYN], result: DYN },
89
+ "wasm.moduleCustomSections": { argTypes: [DYN, DYN], result: DYN },
90
+ /** `v.valueOf()` on a WebAssembly-typed receiver: a Global's value,
91
+ * dyn.valueOf's answer for anything else. */
92
+ "wasm.valueOf": { argTypes: [DYN], result: DYN },
93
+ /** WebAssembly.compile (0), instantiate (1) and validate (2) as function
94
+ * values, and the namespace object holding them. */
95
+ "wasm.function": { argTypes: [F64], result: DYN },
96
+ "wasm.namespace": { argTypes: [], result: DYN },
97
+ /** The global object viewed through a cast to a type with a WebAssembly
98
+ * member: an object holding the namespace. */
99
+ "wasm.globalView": { argTypes: [], result: DYN },
60
100
  "abort.timeout": { argTypes: [DYN], result: DYN },
61
101
  "abort.now": { argTypes: [DYN], result: DYN },
62
102
  "abort.any": { argTypes: [DYN], result: DYN },
@@ -126,12 +166,16 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
126
166
  * not iterable (cannot read property Symbol(Symbol.iterator))"). In the
127
167
  * may-throw seed set. */
128
168
  "dyn.iterPack": { argTypes: [DYN, STRING], result: DYN },
169
+ "dyn.destructureRest": { argTypes: [DYN, STRING], result: DYN },
129
170
  "dyn.arrayFromIterator": { argTypes: [DYN], result: DYN },
130
171
  "dyn.iterator": { argTypes: [DYN, STRING], result: DYN },
131
172
  "dyn.iteratorResult": { argTypes: [DYN], result: DYN },
132
173
  "dyn.iteratorCanStep": { argTypes: [DYN, DYN], result: BOOL },
133
174
  "dyn.iteratorStep": { argTypes: [DYN], result: DYN },
134
175
  "dyn.iteratorStepDone": { argTypes: [DYN], result: BOOL },
176
+ "dyn.setGeneratorMembers": { argTypes: [DYN, DYN], result: VOID },
177
+ "dyn.iteratorHelperMethod": { argTypes: [STRING], result: DYN },
178
+ "dyn.collectionIteratorIndex": { argTypes: [DYN], result: F64 },
135
179
  "dyn.mapSeedEntries": { argTypes: [DYN], result: DYN },
136
180
  "dyn.mapSeedEntry": { argTypes: [DYN], result: DYN },
137
181
  /** The for-of-over-dyn pack accessors — the emitted index loop drives
@@ -151,12 +195,47 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
151
195
  "dyn.in": { argTypes: [DYN, STRING], result: BOOL },
152
196
  "dyn.freeze": { argTypes: [DYN], result: DYN },
153
197
  "dyn.isFrozen": { argTypes: [DYN], result: BOOL },
198
+ /** Object.defineProperty on a declared class field (scr_json.c): the
199
+ * field's current value (borrowed), its FIELD_* attribute word, the
200
+ * instance's CLASS_* integrity word, the field name and the descriptor.
201
+ * Validates as Node does (TypeError "Cannot redefine property: f") and
202
+ * answers a one-property holder of the defined value and attributes (+1),
203
+ * read back with class.definedBits and class.definedValue. */
204
+ "class.defineField": { argTypes: [DYN, F64, F64, STRING, DYN], result: DYN },
205
+ "class.definedBits": { argTypes: [DYN, STRING], result: F64 },
206
+ "class.definedValue": { argTypes: [DYN, STRING], result: DYN },
207
+ /** Whether a property descriptor has a `value` member. */
208
+ "class.descriptorHasValue": { argTypes: [DYN], result: BOOL },
209
+ /** Throws Node's TypeError for a write to a read-only class field: the
210
+ * field name and the instance's class name. */
211
+ "class.throwReadOnly": { argTypes: [STRING, STRING], result: VOID },
212
+ /** Throws Node's TypeError for a class field initializer on a
213
+ * non-extensible instance: the field name. */
214
+ "class.throwNotExtensible": { argTypes: [STRING], result: VOID },
154
215
  "dyn.nativeSetNew": { argTypes: [DYN], result: DYN },
155
216
  "dyn.nativeSetIs": { argTypes: [DYN], result: BOOL },
156
217
  "dyn.nativeMapIs": { argTypes: [DYN], result: BOOL },
157
218
  "dyn.nativeUrlIs": { argTypes: [DYN], result: BOOL },
158
219
  "dyn.nativeDateIs": { argTypes: [DYN], result: BOOL },
220
+ /** A builtin constructor (`Object`, `Date`, `RegExp`, `Map`, `Set`,
221
+ * `Promise`, `WeakMap`, `WeakSet`) read as a JavaScript value: one
222
+ * interned function per name, the same one dynamic values answer for
223
+ * `.constructor`. The name is a compiler-chosen literal. */
224
+ "dyn.globalConstructor": { argTypes: [STRING], result: DYN },
225
+ /** A builtin global function (setTimeout, setInterval, setImmediate,
226
+ * the clear functions, queueMicrotask, process.nextTick) read as a
227
+ * JavaScript value: one interned function per name whose calls run the
228
+ * timer APIs (it pulls in the event loop). The name is a compiler-chosen
229
+ * literal. */
230
+ "dyn.builtinFunction": { argTypes: [STRING], result: DYN },
159
231
  "date.nativeNew": { argTypes: [DYN], result: DYN },
232
+ /** `new Date(year, monthIndex, ...)` in JavaScript: the argument array's
233
+ * first seven values pass through ToNumber in order (later ones are
234
+ * evaluated, never converted), then the local-time field constructor. */
235
+ "date.nativeNewFields": { argTypes: [DYN], result: DYN },
236
+ /** `new Date(value)` in JavaScript: a string argument parses with V8's
237
+ * full date parser; every other value constructs as date.nativeNew. */
238
+ "date.nativeNewValue": { argTypes: [DYN], result: DYN },
160
239
  "date.checkedValue": { argTypes: [DYN], result: DATE_T },
161
240
  "dyn.nativeRegexIs": { argTypes: [DYN], result: BOOL },
162
241
  /** toString() on a checked-dynamic receiver: runtime kind dispatch
@@ -164,6 +243,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
164
243
  * numbers, booleans, arrays, objects answer JS-exactly; undefined and
165
244
  * null throw the catchable TypeError). */
166
245
  "dyn.toString": { argTypes: [DYN, DYN, STRING], result: STRING },
246
+ "dyn.valueOf": { argTypes: [DYN, STRING], result: DYN },
167
247
  /** Object.defineProperties over dyn values (args: target, descriptors —
168
248
  * both borrowed dyn; result: the target, +1 — JS's return value).
169
249
  * Value descriptors become own properties on OBJ and FUNC targets;
@@ -183,6 +263,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
183
263
  "dyn.promiseAll": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
184
264
  "dyn.promiseAllSettled": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
185
265
  "dyn.promiseAny": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
266
+ /** PromiseResolve over one checked-dynamic value: the promise it holds,
267
+ * a promise that adopts a thenable's settlement, or a promise fulfilled
268
+ * with the value. The second argument reads `then` as above. */
269
+ "dyn.promiseResolve": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
186
270
  /** Bare `typeof v` on a dyn value AS A STRING (arg: the dyn value,
187
271
  * borrowed; result: an owned string) — the dyn kind's JS answer:
188
272
  * undefined→"undefined", null/object/array/bytes→"object" (JS's oldest
@@ -306,6 +390,20 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
306
390
  "perf.entryDetail": { argTypes: [F64], result: DYN },
307
391
  "perf.entryKeep": { argTypes: [DYN], result: VOID },
308
392
  "perf.entryRef": { argTypes: [F64], result: DYN },
393
+ /** perf_hooks event-loop metrics (scr_perf_loop.c): loopStart is the
394
+ * loop's start in performance.now() ms (0 before it), idleTime the idle
395
+ * ms since. eldNew(resolution ms) creates a monitorEventLoopDelay
396
+ * histogram handle (MAY THROW Node's resolution RangeError); enable/disable answer whether the state changed;
397
+ * eldPercentile expects Node's validated range; eldStat(which) reads
398
+ * 0 min, 1 max, 2 mean, 3 stddev, 4 count, 5 exceeds. */
399
+ "perf.loopStart": { argTypes: [], result: F64 },
400
+ "perf.idleTime": { argTypes: [], result: F64 },
401
+ "perf.eldNew": { argTypes: [F64], result: F64 },
402
+ "perf.eldEnable": { argTypes: [F64], result: BOOL },
403
+ "perf.eldDisable": { argTypes: [F64], result: BOOL },
404
+ "perf.eldReset": { argTypes: [F64], result: VOID },
405
+ "perf.eldPercentile": { argTypes: [F64, F64], result: F64 },
406
+ "perf.eldStat": { argTypes: [F64, F64], result: F64 },
309
407
  /** process.memoryUsage(): memoryUsageTake samples the resident set and
310
408
  * the runtime heap once (MAY THROW Node's uv_resident_set_memory error)
311
409
  * and memoryUsageField(k) reads that sample (0 rss, 1 heapTotal, 2
@@ -361,6 +459,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
361
459
  "stdin.onData": { argTypes: [null, BOOL], result: VOID },
362
460
  "stdin.onEnd": { argTypes: [{ kind: "func", params: [], ret: VOID }, BOOL], result: VOID },
363
461
  "stdin.onError": { argTypes: [null, BOOL], result: VOID },
462
+ /** process.stdin.on/once('keypress', cb) (scr_readline_tty.c): cb is the
463
+ * listener as a checked-dynamic function, called with (str, key). */
464
+ "stdin.onKeypress": { argTypes: [DYN, BOOL], result: VOID },
364
465
  /** The for-await chunk source over process.stdin: no args, result
365
466
  * Promise<Uint8Array> (+1). Fulfills with the next arrived chunk; the
366
467
  * EMPTY bytes value is the done sentinel (POSIX reads never deliver
@@ -497,6 +598,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
497
598
  /** os.getPriority(pid): validateInt32 (RangeError ERR_OUT_OF_RANGE),
498
599
  * then the priority; a failure throws Node's SystemError. */
499
600
  "os.getPriority": { argTypes: [F64], result: F64 },
601
+ /** os.setPriority(pid, priority): validateInt32 for both (priority in
602
+ * -20..19, RangeError ERR_OUT_OF_RANGE), then the priority; a failure
603
+ * throws Node's SystemError. */
604
+ "os.setPriority": { argTypes: [F64, F64], result: VOID },
500
605
  /** os.cpus(): cpusTake snapshots every CPU and answers the count;
501
606
  * cpusModel(i) and cpusField(i, k) (k: 0 speed, 1 user, 2 nice, 3 sys,
502
607
  * 4 idle, 5 irq) read the snapshot. Never throw. */
@@ -506,6 +611,12 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
506
611
  /** os.constants: the per-thread null-prototype constants object (dlopen,
507
612
  * errno, signals, priority, UV_UDP_REUSEADDR). Never throws. */
508
613
  "os.constants": { argTypes: [], result: DYN },
614
+ /** fs.constants: the target's cached null-prototype constants object. */
615
+ "fs.constants": { argTypes: [], result: DYN },
616
+ /** The deprecated node:constants object (scr_os.c): the os groups and
617
+ * fs.constants merged with the borrowed baked crypto.constants table,
618
+ * frozen, one per thread. */
619
+ "constants.object": { argTypes: [DYN], result: DYN },
509
620
  /** umask(2): arg < 0 reads without setting (umask has no read-only form
510
621
  * — set 0, restore); otherwise sets and answers the PREVIOUS mask.
511
622
  * Never throws. */
@@ -590,6 +701,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
590
701
  "math.sign": { argTypes: [F64], result: F64 },
591
702
  "math.exp": { argTypes: [F64], result: F64 },
592
703
  "math.expm1": { argTypes: [F64], result: F64 },
704
+ "math.f16round": { argTypes: [F64], result: F64 },
593
705
  "math.fround": { argTypes: [F64], result: F64 },
594
706
  "math.sqrt": { argTypes: [F64], result: F64 },
595
707
  "math.log": { argTypes: [F64], result: F64 },
@@ -627,6 +739,13 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
627
739
  /** `a.localeCompare(b)`: -1/0/1 in Node's root-locale collation for
628
740
  * Latin-script text (scr_str_locale_compare). Never throws. */
629
741
  "str.localeCompare": { argTypes: [STRING, STRING], result: F64 },
742
+ /** Annex B substr(start, length) with start ToNumber'd and length's
743
+ * presence; never throws. */
744
+ "str.substr": { argTypes: [STRING, F64, F64, BOOL], result: STRING },
745
+ /** toLocaleLowerCase/toLocaleUpperCase (scr_regex.c): the locales value
746
+ * as written, upper=true for toLocaleUpperCase. Throws for null and for
747
+ * locale forms with no native rules. */
748
+ "str.localeCase": { argTypes: [STRING, DYN, BOOL], result: STRING },
630
749
  "str.replaceLiteral": { argTypes: [STRING, STRING, STRING, BOOL], result: STRING },
631
750
  // (subject, characters, NUL-separated replacement texts): the fused
632
751
  // chain of global one-character replacements.
@@ -691,7 +810,15 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
691
810
  "num.toExponential": { argTypes: [F64], result: STRING },
692
811
  "num.toFixed0": { argTypes: [F64], result: STRING },
693
812
  "num.toFixed": { argTypes: [F64, F64], result: STRING },
813
+ /** toPrecision(precision) with the argument ToNumber'd and its presence
814
+ * (undefined answers ToString); toExponential with a DEFINED
815
+ * fractionDigits. Both throw V8's RangeError for out-of-range digits. */
816
+ "num.toPrecision": { argTypes: [F64, F64, BOOL], result: STRING },
817
+ "num.toExponentialDigits": { argTypes: [F64, F64], result: STRING },
694
818
  "num.toStringRadix": { argTypes: [F64, DYN], result: STRING },
819
+ /** toString(radix) with a number radix (scr_lib.c): truncates it as
820
+ * ToIntegerOrInfinity does, THROWS RangeError outside 2..36. */
821
+ "num.toStringRadixF64": { argTypes: [F64, F64], result: STRING },
695
822
  /** Object.is over two numbers — the spec's SameValue on doubles: NaN
696
823
  * equals NaN, +0 differs from -0, everything else is `===`. Plain bool
697
824
  * result; never throws. (Union-armed operands take unionEq's sameValue
@@ -802,6 +929,19 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
802
929
  "url.legacyResolve": { argTypes: [DYN, DYN, BOOL], result: STRING },
803
930
  "url.domainToASCII": { argTypes: [DYN, BOOL], result: STRING },
804
931
  "url.domainToUnicode": { argTypes: [DYN, BOOL], result: STRING },
932
+ /** node:punycode (scr_url.c): punycode.js 2.1.0's string conversions;
933
+ * decode/toUnicode (and, past 32-bit deltas, encode/toASCII) throw the
934
+ * module's RangeErrors, ucs2Encode String.fromCodePoint's. warn marks the
935
+ * module's first load (scr_async_dyn.c) and reports DEP0040 then unless
936
+ * the second argument is false: at once for a static ES import, on the
937
+ * next tick for a require() call. */
938
+ "punycode.decode": { argTypes: [STRING], result: STRING },
939
+ "punycode.encode": { argTypes: [STRING], result: STRING },
940
+ "punycode.toASCII": { argTypes: [STRING], result: STRING },
941
+ "punycode.toUnicode": { argTypes: [STRING], result: STRING },
942
+ "punycode.ucs2Decode": { argTypes: [STRING], result: arrayOf(F64) },
943
+ "punycode.ucs2Encode": { argTypes: [arrayOf(F64)], result: STRING },
944
+ "punycode.warn": { argTypes: [BOOL, BOOL], result: VOID },
805
945
  "url.fileURLToPathBuffer": { argTypes: [DYN, DYN], result: BYTES_U8 },
806
946
  "url.pathToFileURLChecked": { argTypes: [DYN, DYN], result: URL_T },
807
947
  "url.fileURLToPathStr": { argTypes: [STRING], result: STRING },
@@ -912,6 +1052,11 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
912
1052
  * calls); the stats.* getters are pure reads on it. */
913
1053
  "fs.statSync": { argTypes: [STRING], result: STATS_T },
914
1054
  "fs.lstatSync": { argTypes: [STRING], result: STATS_T },
1055
+ // statSync / lstatSync(path, { throwIfNoEntry }): arg 1 is the flag.
1056
+ // Result is the interned `Stats | undefined` union (the runtime answers
1057
+ // +1-or-NULL; the backend builds the arms).
1058
+ "fs.statProbeSync": { argTypes: [STRING, BOOL], result: VOID },
1059
+ "fs.lstatProbeSync": { argTypes: [STRING, BOOL], result: VOID },
915
1060
  "fs.fstatSync": { argTypes: [F64], result: STATS_T },
916
1061
  "fs.fchmodSync": { argTypes: [F64, F64], result: VOID },
917
1062
  "fs.fsyncSync": { argTypes: [F64], result: VOID },
@@ -924,6 +1069,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
924
1069
  "fs.writevSync": { argTypes: [F64, arrayOf(BYTES_U8), F64], result: F64 },
925
1070
  "fs.linkSync": { argTypes: [DYN, DYN], result: VOID },
926
1071
  "fs.symlinkSync": { argTypes: [DYN, DYN, DYN], result: VOID },
1072
+ /** fs.cpSync / fs/promises cp (scr_fs_cp.c): src, dest and options are
1073
+ * dyn values the runtime validates in Node's order. */
1074
+ "fs.cpSync": { argTypes: [DYN, DYN, DYN], result: VOID },
927
1075
  "fs.readlinkSync": { argTypes: [DYN, DYN], result: DYN },
928
1076
  "fs.statfsSync": { argTypes: [DYN, DYN], result: DYN },
929
1077
  "fs.readlinkSyncStr": { argTypes: [DYN, DYN], result: STRING },
@@ -1047,6 +1195,33 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1047
1195
  "worker.root": { argTypes: [], result: F64 },
1048
1196
  "worker.data": { argTypes: [], result: DYN },
1049
1197
  "worker.parentPort": { argTypes: [], result: DYN },
1198
+ /** worker_threads.resourceLimits: {} in the main thread; a refusal in a
1199
+ * worker (scr_worker_events.c). */
1200
+ "worker.resourceLimits": { argTypes: [], result: DYN },
1201
+ /** worker_threads.threadName: the Worker's name in a worker, "" in the
1202
+ * main thread (scr_worker.c). */
1203
+ "worker.threadName": { argTypes: [], result: DYN },
1204
+ /** new MessageChannel() ({ port1, port2 }) and receiveMessageOnPort(port)
1205
+ * (scr_worker_events.c; the latter may throw). */
1206
+ "worker.channel": { argTypes: [], result: DYN },
1207
+ "worker.receiveMessageOnPort": { argTypes: [DYN], result: DYN },
1208
+ /** setEnvironmentData(key, value) and getEnvironmentData(key)
1209
+ * (scr_worker_events.c; arguments borrowed). */
1210
+ "worker.setEnvironmentData": { argTypes: [DYN, DYN], result: VOID },
1211
+ "worker.getEnvironmentData": { argTypes: [DYN], result: DYN },
1212
+ /** markAsUntransferable(value) and isMarkedAsUntransferable(value)
1213
+ * (scr_worker_events.c; the value borrowed). */
1214
+ "worker.markUntransferable": { argTypes: [DYN], result: VOID },
1215
+ "worker.isMarkedUntransferable": { argTypes: [DYN], result: BOOL },
1216
+ /** markAsUncloneable(value) (scr_json.c; the value borrowed). */
1217
+ "dyn.markUncloneable": { argTypes: [DYN], result: VOID },
1218
+ /** before new Worker() with the stdout or stderr option: links the stream
1219
+ * unit that worker.stdout and worker.stderr read through (scr_stream.c). */
1220
+ "stream.workerStdio": { argTypes: [], result: VOID },
1221
+ /** new BroadcastChannel(...args) (scr_worker_events.c; may throw), after
1222
+ * event.broadcastInstall, which installs its EventTarget side. */
1223
+ "worker.broadcastChannel": { argTypes: [DYN], result: DYN },
1224
+ "event.broadcastInstall": { argTypes: [], result: VOID },
1050
1225
  /** child_process.spawnSync (scr_child.c): posix_spawn + waitpid + piped
1051
1226
  * utf8 capture — cmd borrowed, args one borrowed string[] (the frontend
1052
1227
  * completes an omitted list to an empty literal), result an owned (+1)
@@ -1107,6 +1282,13 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1107
1282
  "net.createServer": { argTypes: [], result: NETSERVER_T },
1108
1283
  "net.createServerCb": { argTypes: [null], result: NETSERVER_T },
1109
1284
  "net.listen": { argTypes: [NETSERVER_T, F64], result: VOID },
1285
+ /** listen(path[, cb]): a Unix-socket server; the socket file is removed
1286
+ * when the server closes. Failures are the async 'error'. */
1287
+ "net.listenPath": { argTypes: [NETSERVER_T, STRING], result: VOID },
1288
+ "net.listenPathCb": {
1289
+ argTypes: [NETSERVER_T, STRING, { kind: "func", params: [], ret: VOID }],
1290
+ result: VOID,
1291
+ },
1110
1292
  "net.listenCb": {
1111
1293
  argTypes: [NETSERVER_T, F64, { kind: "func", params: [], ret: VOID }],
1112
1294
  result: VOID,
@@ -1149,6 +1331,15 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1149
1331
  * answers null (the serverPort stance). */
1150
1332
  "net.serverAddress": { argTypes: [NETSERVER_T], result: VOID },
1151
1333
  "net.serverClose": { argTypes: [NETSERVER_T], result: VOID },
1334
+ /** server.close((err) => ...): the callback (a dyn function) gets
1335
+ * undefined once the server closes, or Node's ERR_SERVER_NOT_RUNNING
1336
+ * when it was not listening. */
1337
+ "net.serverCloseDyn": { argTypes: [NETSERVER_T, DYN], result: VOID },
1338
+ /** server.address() in programs that may listen on a Unix socket: the
1339
+ * path a listening server answers ("" for a TCP server), and the check
1340
+ * a record-typed address() makes first (throws for a Unix server). */
1341
+ "net.serverUnixPath": { argTypes: [NETSERVER_T], result: STRING },
1342
+ "net.serverAddressCheck": { argTypes: [NETSERVER_T], result: VOID },
1152
1343
  "net.serverCloseCb": {
1153
1344
  argTypes: [NETSERVER_T, { kind: "func", params: [], ret: VOID }],
1154
1345
  result: VOID,
@@ -1312,6 +1503,13 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1312
1503
  * callback) and lookupService(address, port, callback). */
1313
1504
  "dns.lookupDyn": { argTypes: [DYN, DYN, DYN, BOOL], result: VOID },
1314
1505
  "dns.lookupService": { argTypes: [DYN, DYN, DYN, BOOL], result: VOID },
1506
+ /** node:dns/promises: lookup(hostname, options) and lookupService(address,
1507
+ * port) over the callback forms; the promise fulfills with the dyn
1508
+ * { address, family } (array for all: true) / { hostname, service }.
1509
+ * Argument errors throw synchronously (may-throw), unlike the
1510
+ * util.promisify forms below. */
1511
+ "dns.promisesLookup": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
1512
+ "dns.promisesLookupService": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
1315
1513
  "dns.getServers": { argTypes: [], result: DYN },
1316
1514
  "dns.getDefaultResultOrder": { argTypes: [], result: STRING },
1317
1515
  "dns.setDefaultResultOrder": { argTypes: [DYN], result: VOID },
@@ -1331,29 +1529,85 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1331
1529
  * consumes. ctxSkip/ctxTodo mark the running test; ctxDiagnostic
1332
1530
  * queues an ℹ line; ctxName reads t.name. Every registration keeps
1333
1531
  * the loop-run emitted (usesTimers) so the runner fiber drains. */
1334
- "test.register": { argTypes: [STRING, F64, STRING, null, F64, STRING], result: VOID },
1335
- "test.registerEmpty": { argTypes: [STRING, F64, STRING, F64, STRING], result: VOID },
1336
- "test.suite": {
1337
- argTypes: [STRING, F64, STRING, { kind: "func", params: [], ret: VOID }, STRING, F64],
1532
+ // The trailing three are the { plan, timeout, concurrency } options (plan
1533
+ // -1 without one; timeout read under flag 8; concurrency read under flag
1534
+ // 16, -1 for true). An out-of-range timeout or concurrency throws.
1535
+ "test.register": {
1536
+ argTypes: [STRING, F64, STRING, null, F64, STRING, F64, F64, F64],
1537
+ result: VOID,
1538
+ },
1539
+ "test.registerEmpty": {
1540
+ argTypes: [STRING, F64, STRING, F64, STRING, F64, F64, F64],
1338
1541
  result: VOID,
1339
1542
  },
1340
- "test.hook": { argTypes: [F64, null, F64], result: VOID },
1543
+ // The suite body takes no parameters or its SuiteContext (flag 2).
1544
+ "test.suite": { argTypes: [STRING, F64, STRING, null, STRING, F64, F64], result: VOID },
1545
+ // The trailing string is the hook call's "file:line:col".
1546
+ "test.hook": { argTypes: [F64, null, F64, STRING], result: VOID },
1341
1547
  "test.sub": {
1342
- argTypes: [TESTCTX_T, STRING, F64, STRING, null, F64, STRING],
1548
+ argTypes: [TESTCTX_T, STRING, F64, STRING, null, F64, STRING, F64, F64, F64],
1343
1549
  result: { kind: "promise", inner: VOID },
1344
1550
  },
1345
- "test.subEmpty": { argTypes: [TESTCTX_T, STRING, F64, STRING, STRING], result: VOID },
1551
+ "test.subEmpty": {
1552
+ argTypes: [TESTCTX_T, STRING, F64, STRING, F64, STRING, F64, F64, F64],
1553
+ result: VOID,
1554
+ },
1346
1555
  "test.ctxSkip": { argTypes: [TESTCTX_T, STRING], result: VOID },
1347
1556
  "test.ctxTodo": { argTypes: [TESTCTX_T, STRING], result: VOID },
1348
1557
  "test.ctxDiagnostic": { argTypes: [TESTCTX_T, STRING], result: VOID },
1349
1558
  "test.ctxName": { argTypes: [TESTCTX_T], result: STRING },
1350
1559
  "test.ctxFullName": { argTypes: [TESTCTX_T], result: STRING },
1560
+ // t.passed, and t.workerId's Number(NODE_TEST_WORKER_ID) with 0 for
1561
+ // undefined.
1562
+ "test.ctxPassed": { argTypes: [TESTCTX_T], result: BOOL },
1563
+ "test.workerId": { argTypes: [], result: F64 },
1564
+ // getTestContext(): whether a test, suite or hook is running in the
1565
+ // current async context, and that context.
1566
+ "test.hasContext": { argTypes: [], result: BOOL },
1567
+ "test.context": { argTypes: [], result: TESTCTX_T },
1351
1568
  // t.before/t.after/t.beforeEach/t.afterEach (which: 0 before, 1 after,
1352
1569
  // 2 beforeEach, 3 afterEach); a throwing t.before is captured on the test.
1353
1570
  "test.ctxHook": { argTypes: [TESTCTX_T, F64, null, F64], result: VOID },
1354
1571
  // t.plan(count), and the count of one t.assert call.
1355
1572
  "test.ctxPlan": { argTypes: [TESTCTX_T, F64], result: VOID },
1356
1573
  "test.ctxCount": { argTypes: [TESTCTX_T], result: VOID },
1574
+ // The mock trackers: the module's `mock` and t.mock keep each mock's
1575
+ // restore closure (moved) for restoreAll and reset.
1576
+ "test.mockTrack": { argTypes: [{ kind: "func", params: [], ret: VOID }], result: VOID },
1577
+ "test.mockRestoreAll": { argTypes: [], result: VOID },
1578
+ "test.mockReset": { argTypes: [], result: VOID },
1579
+ "test.ctxMockTrack": {
1580
+ argTypes: [TESTCTX_T, { kind: "func", params: [], ret: VOID }],
1581
+ result: VOID,
1582
+ },
1583
+ "test.ctxMockRestoreAll": { argTypes: [TESTCTX_T], result: VOID },
1584
+ "test.ctxMockReset": { argTypes: [TESTCTX_T], result: VOID },
1585
+ // mock.timers on the module's `mock` and on t.mock. enable takes one
1586
+ // code per listed API ('T' setTimeout, 'I' setInterval), the `now`
1587
+ // value and its flags (1 given, 2 from a Date). enable, tick, runAll and
1588
+ // setTime throw Node's errors; tick and runAll run timer callbacks.
1589
+ // t.assert.snapshot and fileSnapshot: the escaped, wrapped serialized
1590
+ // value, and the stored value it is compared with (snapshot: the test,
1591
+ // the value, the snapshot file; fileSnapshot: the value, the path).
1592
+ // Both read or, in update mode, record; missing and unreadable
1593
+ // snapshots throw Node's ERR_INVALID_STATE.
1594
+ "test.snapshotValue": { argTypes: [STRING], result: STRING },
1595
+ "test.ctxSnapshot": { argTypes: [TESTCTX_T, STRING, STRING], result: STRING },
1596
+ "test.fileSnapshot": { argTypes: [STRING, STRING], result: STRING },
1597
+ // Node's serializeValue over a dyn array of serializers (undefined for
1598
+ // the default JSON.stringify(value, null, 2)); a throw becomes Node's
1599
+ // "The provided serializers did not generate a string." ERR_INVALID_STATE.
1600
+ "test.snapshotSerialize": { argTypes: [DYN, DYN], result: DYN },
1601
+ "test.mockTimersEnable": { argTypes: [STRING, F64, F64], result: VOID },
1602
+ "test.mockTimersTick": { argTypes: [F64], result: VOID },
1603
+ "test.mockTimersRunAll": { argTypes: [], result: VOID },
1604
+ "test.mockTimersReset": { argTypes: [], result: VOID },
1605
+ "test.mockTimersSetTime": { argTypes: [F64], result: VOID },
1606
+ "test.ctxMockTimersEnable": { argTypes: [TESTCTX_T, STRING, F64, F64], result: VOID },
1607
+ "test.ctxMockTimersTick": { argTypes: [TESTCTX_T, F64], result: VOID },
1608
+ "test.ctxMockTimersRunAll": { argTypes: [TESTCTX_T], result: VOID },
1609
+ "test.ctxMockTimersReset": { argTypes: [TESTCTX_T], result: VOID },
1610
+ "test.ctxMockTimersSetTime": { argTypes: [TESTCTX_T, F64], result: VOID },
1357
1611
  // node:http (scr_http.c over scr_net.c). The handler and the data
1358
1612
  // listeners are program-dependent closures (null slots, checked in the
1359
1613
  // libCall case); reqHeader's result is the interned string|undefined
@@ -1631,7 +1885,31 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1631
1885
  * socket POOLING is not modeled (one dial per request); maxSockets
1632
1886
  * accounting is real: over-limit requests defer their dial and queue.
1633
1887
  * MAY THROW. */
1634
- "http.agentNew": { argTypes: [BOOL, BOOL, F64, F64, F64, F64, F64], result: DYN },
1888
+ "http.agentNew": { argTypes: [BOOL, BOOL, F64, F64, F64, F64, F64, DYN], result: DYN },
1889
+ /** http.globalAgent / https.globalAgent (true): Node's keepAlive global
1890
+ * agent, the one requests without an agent option use. */
1891
+ "http.globalAgent": { argTypes: [BOOL], result: DYN },
1892
+ /** http.request's `signal` option over the fresh request: an aborted
1893
+ * signal destroys it with Node's AbortError now, a later abort event
1894
+ * does the same. A falsy value is ignored; a non-signal throws
1895
+ * ERR_INVALID_ARG_TYPE. */
1896
+ "http.clientSignal": { argTypes: [HTTPCLIENTREQ_T, DYN], result: VOID },
1897
+ /** options.signal checked before the request is built (ERR_INVALID_ARG_TYPE). */
1898
+ "http.clientSignalCheck": { argTypes: [DYN], result: VOID },
1899
+ /** https.request's servername option, stored for the construction call
1900
+ * that follows: the TLS name sent and verified, and part of the pooled
1901
+ * socket key. The "https." prefix keeps the TLS unit linked. */
1902
+ "https.nextServername": { argTypes: [STRING], result: VOID },
1903
+ /** The maxHeaderSize option of createServer / http.request: Node's
1904
+ * validateInteger (ERR_OUT_OF_RANGE) then the header size bound.
1905
+ * MAY THROW. */
1906
+ "http.serverMaxHeaderSize": { argTypes: [NETSERVER_T, F64], result: VOID },
1907
+ "http.clientMaxHeaderSize": { argTypes: [HTTPCLIENTREQ_T, F64], result: VOID },
1908
+ /** req.destroy(err): err becomes the request's 'error'. */
1909
+ "http.clientDestroyError": {
1910
+ argTypes: [HTTPCLIENTREQ_T, { kind: "object", className: "%Error" }],
1911
+ result: VOID,
1912
+ },
1635
1913
  /** The agent-threaded request rows: the http.request/https.request
1636
1914
  * shape with a trailing `agent` dyn argument (an Agent handle, false —
1637
1915
  * the one-shot Connection: close dial — or null/undefined for the
@@ -1651,6 +1929,17 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1651
1929
  * non-http scheme. */
1652
1930
  "http.requestUrl": { argTypes: [STRING, STRING, BOOL], result: HTTPCLIENTREQ_T },
1653
1931
  "http.requestUrlCb": { argTypes: [STRING, STRING, BOOL, null], result: HTTPCLIENTREQ_T },
1932
+ /** request/get with a runtime options record: a RequestOptions
1933
+ * variable, or a literal that spreads one or sets socketPath. Args
1934
+ * (options, autoEnd[, cb]). The runtime reads the record in the
1935
+ * ClientRequest constructor's order (host/port or socketPath, path,
1936
+ * method, headers, timeout, agent, signal, maxHeaderSize) with Node's
1937
+ * errors, and documented options it does not implement throw the
1938
+ * runtime fence. The "https." pair adds the TLS options. MAY THROW. */
1939
+ "http.requestDyn": { argTypes: [DYN, BOOL], result: HTTPCLIENTREQ_T },
1940
+ "http.requestDynCb": { argTypes: [DYN, BOOL, null], result: HTTPCLIENTREQ_T },
1941
+ "https.requestDyn": { argTypes: [DYN, BOOL], result: HTTPCLIENTREQ_T },
1942
+ "https.requestDynCb": { argTypes: [DYN, BOOL, null], result: HTTPCLIENTREQ_T },
1654
1943
  /** The paused-mode demux surface (portless's first-byte TLS peek:
1655
1944
  * once('readable') + read(1) + unshift + emit('connection')).
1656
1945
  * sockOnReadable registers a zero-param listener (a consumer: arrived
@@ -1696,6 +1985,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1696
1985
  /** Listeners with a parameter, as dyn functions: close(hadError),
1697
1986
  * write's cb(err) and end's cb. */
1698
1987
  "net.sockOnCloseDyn": { argTypes: [NETSOCKET_T, DYN, BOOL], result: VOID },
1988
+ /** socket.on/once('lookup', listener): the listener (a dyn function)
1989
+ * gets (err, address, family, host) once per resolved address, or once
1990
+ * with the lookup error, before the connect. */
1991
+ "net.sockOnLookup": { argTypes: [NETSOCKET_T, DYN, BOOL], result: VOID },
1699
1992
  "net.sockOnWriteFlush": {
1700
1993
  argTypes: [NETSOCKET_T, { kind: "func", params: [], ret: VOID }],
1701
1994
  result: VOID,
@@ -1713,6 +2006,14 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1713
2006
  "net.serverMaxConnectionsSet": { argTypes: [NETSERVER_T, DYN], result: VOID },
1714
2007
  "net.serverDropMaxConnectionGet": { argTypes: [NETSERVER_T], result: DYN },
1715
2008
  "net.serverDropMaxConnectionSet": { argTypes: [NETSERVER_T, DYN], result: VOID },
2009
+ /** net.SocketAddress and net.BlockList (scr_net.c): the constructors
2010
+ * take the argument array; the handles are dyn values. */
2011
+ "net.socketAddressNew": { argTypes: [DYN], result: DYN },
2012
+ "net.socketAddressParse": { argTypes: [DYN], result: DYN },
2013
+ "net.isSocketAddress": { argTypes: [DYN], result: BOOL },
2014
+ "net.blockListNew": { argTypes: [DYN], result: DYN },
2015
+ "net.isBlockList": { argTypes: [DYN], result: BOOL },
2016
+ "net.blockListPrivateRanges": { argTypes: [], result: DYN },
1716
2017
  "net.serverOnDrop": { argTypes: [NETSERVER_T, DYN, BOOL], result: VOID },
1717
2018
  "net.serverGetConnections": { argTypes: [NETSERVER_T, DYN], result: VOID },
1718
2019
  "net.sockReadable": { argTypes: [NETSOCKET_T], result: BOOL },
@@ -1866,6 +2167,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1866
2167
  * h2-only split). args are (cert, key) — PEM strings or Buffers. */
1867
2168
  "http2.createSecureServerH2": { argTypes: [null, null, BOOL], result: NETSERVER_T },
1868
2169
  "http.serverOnRequest": { argTypes: [NETSERVER_T, null, BOOL], result: VOID },
2170
+ /** server.on('checkContinue' | 'checkExpectation', (req, res)): the
2171
+ * 'request' listener shape; the last argument picks checkExpectation. */
2172
+ "http.serverOnCheck": { argTypes: [NETSERVER_T, null, BOOL, BOOL], result: VOID },
1869
2173
  "http2.serverOnSessionError": { argTypes: [NETSERVER_T, null, BOOL], result: VOID },
1870
2174
  /** The guarded absent-session compatibility call remains a no-op. */
1871
2175
  "http2.streamNoop": { argTypes: [], result: VOID },
@@ -2079,12 +2383,18 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2079
2383
  argTypes: [HTTPCLIENTREQ_T, { kind: "func", params: [], ret: VOID }, BOOL],
2080
2384
  result: VOID,
2081
2385
  },
2386
+ "http.clientOnContinue": {
2387
+ argTypes: [HTTPCLIENTREQ_T, { kind: "func", params: [], ret: VOID }, BOOL],
2388
+ result: VOID,
2389
+ },
2082
2390
  /** execFileSync/execSync as ONE entry (args: cmd, argv, shell, input,
2083
- * cwd, hasEnv, envPairs, timeoutMs, stdoutMode, stderrMode — see
2084
- * scr_runtime.h). Throws Node's exact errors: "Command failed: <cmd>"
2391
+ * cwd, hasEnv, envPairs, timeoutMs, stdoutMode, stderrMode, buffers —
2392
+ * see scr_child.h). Throws Node's exact errors: "Command failed: <cmd>"
2085
2393
  * (+ captured stderr) on non-zero exit or signal death, "spawnSync
2086
2394
  * <file> ENOENT" on spawn failure, "spawnSync <file> ETIMEDOUT" after
2087
- * the SIGTERM timeout. Result is the captured utf8 stdout (+1). */
2395
+ * the SIGTERM timeout, with Node's status, signal, output, pid, stdout
2396
+ * and stderr properties (Buffer outputs when buffers is set: no
2397
+ * encoding option). Result is the captured utf8 stdout (+1). */
2088
2398
  "cp.execSync": {
2089
2399
  argTypes: [
2090
2400
  STRING,
@@ -2098,6 +2408,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2098
2408
  F64,
2099
2409
  F64,
2100
2410
  F64,
2411
+ BOOL,
2101
2412
  ],
2102
2413
  result: STRING,
2103
2414
  },
@@ -2159,6 +2470,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2159
2470
  /** Rest listeners use the checked function bridge to pack event arguments. */
2160
2471
  "child.onDyn": { argTypes: [CHILD_T, STRING, DYN], result: VOID },
2161
2472
  "process.connected": { argTypes: [], result: BOOL },
2473
+ /** Whether this fork child opened its channel; part of process.send's
2474
+ * presence in programs with fork targets. Never throws. */
2475
+ "process.ipcOpen": { argTypes: [], result: BOOL },
2162
2476
  "process.send": { argTypes: [STRING], result: BOOL },
2163
2477
  "process.sendCb": { argTypes: [STRING, null], result: BOOL },
2164
2478
  "process.disconnect": { argTypes: [], result: VOID },
@@ -2167,8 +2481,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2167
2481
  /** child_process.execFile's callback slice: starts an all-piped child,
2168
2482
  * captures stdout/stderr, and moves the error-first callback into the
2169
2483
  * child registry. The callback shape is program-dependent and checked
2170
- * by the validator/backends. */
2171
- "cp.execFile": { argTypes: [STRING, arrayOf(STRING), null], result: CHILD_T },
2484
+ * by the validator/backends. The last argument is exec's shell flag:
2485
+ * the argv is ["-c", command] and failure messages show the command. */
2486
+ "cp.execFile": { argTypes: [STRING, arrayOf(STRING), null, BOOL], result: CHILD_T },
2172
2487
  // spawn's options form: per-slot stdio modes (0 ignore / 1 inherit /
2173
2488
  // 2 fd) with the out/err fds for mode 2, detached, env replacement
2174
2489
  // pairs, cwd ("" = inherit).
@@ -2281,8 +2596,13 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2281
2596
  * queue, end/destroy settle it, writable is a pure state read, and
2282
2597
  * listener callbacks move into the writer registry. */
2283
2598
  "child.stdin": { argTypes: [CHILD_T], result: VOID },
2599
+ /** Under the general stream representation (general-streams.ts), a
2600
+ * stdio read (slot 0, 1 or 2) answers the child's bridged runtime stream
2601
+ * — `Writable | null` for stdin, `Readable | null` otherwise; the bridge
2602
+ * throws when the program lacks the stream unit's boxing helpers. */
2603
+ "child.stdioStream": { argTypes: [CHILD_T, F64], result: VOID },
2284
2604
  // Listener registrations: callback func shapes are program-dependent
2285
- // (zero-param / Buffer / Buffer-armed union) — the slots pin arity,
2605
+ // (zero-param / Buffer / string / unknown / Buffer-armed union) — the slots pin arity,
2286
2606
  // the stream receiver, and the once-flag.
2287
2607
  "stream.onData": { argTypes: [CHILDSTREAM_T, null, BOOL], result: VOID },
2288
2608
  "stream.onDataStr": { argTypes: [CHILDSTREAM_T, null, BOOL], result: VOID },
@@ -2302,6 +2622,39 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2302
2622
  * stderrWrite paths so buffering and ordering stay identical. Data
2303
2623
  * borrowed; the bool is Node's always-true backpressure signal. */
2304
2624
  "procStream.write": { argTypes: [PROCSTREAM_T, STRING], result: BOOL },
2625
+ /** process.stdout/stderr flowing into a runtime Writable slot under the
2626
+ * general stream representation: an fd-backed Writable (+1) whose
2627
+ * writes take process.stdout.write's synchronous path. */
2628
+ /** A pipeline() stage that is a checked-dynamic value: a boxed native
2629
+ * stream unwraps by identity (+1); anything else throws the given
2630
+ * not-supported message. Typed as a Duplex so every stage position
2631
+ * accepts it; the runtime pipeline checks the stream's real sides. */
2632
+ "stream.unboxDyn": {
2633
+ argTypes: [DYN, STRING],
2634
+ result: { kind: "object", className: "%Duplex" },
2635
+ },
2636
+ /** Checked-dynamic stream slots (dyn-streams.ts): the native stream a
2637
+ * checked-dynamic value boxes (+1) — a runtime stream with the readable
2638
+ * (1) or writable (2) side — or null for any other value. Never throws;
2639
+ * the result union is `%Readable | null` or `%Writable | null`. */
2640
+ "stream.dynNative": { argTypes: [DYN, F64], result: VOID },
2641
+ /** stream.dynNative for a pipe or unpipe destination: also a
2642
+ * constructor-function stream's runtime stream, in programs that link
2643
+ * that unit, unless it overrides write() or end(). */
2644
+ "stream.dynNativePipe": { argTypes: [DYN, F64], result: VOID },
2645
+ /** readable.pipe(destination, end) into a checked-dynamic destination
2646
+ * that is not a native stream: [source, the source boxed, destination,
2647
+ * end]. Node's pipe listener protocol over the destination's members
2648
+ * (scr_stream_dyn.c); throws what those members throw. */
2649
+ "stream.pipeDyn": { argTypes: [null, DYN, DYN, BOOL], result: VOID },
2650
+ /** readable.unpipe(destination) for a checked-dynamic destination that
2651
+ * is not a native stream: [source, destination]. Unpipes the pipe
2652
+ * stream.pipeDyn registered into it, if any (scr_stream_dyn.c). */
2653
+ "stream.unpipeDyn": { argTypes: [null, DYN], result: VOID },
2654
+ "stream.stdioWritable": {
2655
+ argTypes: [PROCSTREAM_T],
2656
+ result: { kind: "object", className: "%Writable" },
2657
+ },
2305
2658
  "child.killed": { argTypes: [CHILD_T], result: BOOL },
2306
2659
  "child.kill": { argTypes: [CHILD_T, STRING], result: BOOL },
2307
2660
  "child.killNum": { argTypes: [CHILD_T, F64], result: BOOL },
@@ -2336,6 +2689,15 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2336
2689
  * finalizes the handle and returns either a Buffer or encoded string. */
2337
2690
  "crypto.native": { argTypes: [], result: DYN },
2338
2691
  "crypto.hashNew": { argTypes: [STRING], result: CRYPTOHASH_T },
2692
+ /** The Transform a Hash or Hmac reads and writes as a stream (+1,
2693
+ * created on first use and owned by the value; scr_stream.c). The Piped
2694
+ * form, for pipe destinations and pipeline stages, also keeps the value
2695
+ * alive until the stream flushes or is destroyed. */
2696
+ "crypto.hashStream": { argTypes: [null], result: { kind: "object", className: "%Transform" } },
2697
+ "crypto.hashStreamPiped": {
2698
+ argTypes: [null],
2699
+ result: { kind: "object", className: "%Transform" },
2700
+ },
2339
2701
  /** createCipheriv (false) / createDecipheriv (true) over checked-dynamic
2340
2702
  * cipher, key, iv and options arguments (scr_cipher.c): a native
2341
2703
  * Cipheriv/Decipheriv handle whose methods dispatch through dynInvoke. */
@@ -2378,6 +2740,11 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2378
2740
  * whether min was given. */
2379
2741
  "crypto.randomFillView": { argTypes: [null, F64, F64], result: BYTES_U8 },
2380
2742
  "crypto.randomFillViewRest": { argTypes: [null, F64], result: BYTES_U8 },
2743
+ /** crypto.getRandomValues: a view returns itself at its own type (the
2744
+ * float/size DOMExceptions are thrown at run time); any other value
2745
+ * takes the checked form. */
2746
+ "crypto.getRandomValues": { argTypes: [null], result: BYTES_U8 },
2747
+ "crypto.getRandomValuesDyn": { argTypes: [DYN], result: DYN },
2381
2748
  "crypto.randomFillSyncDyn": { argTypes: [DYN, DYN, DYN], result: DYN },
2382
2749
  "crypto.randomFillCb": { argTypes: [null, F64, F64, F64, null], result: VOID },
2383
2750
  "crypto.randomFillCbDyn": { argTypes: [DYN, DYN, DYN, F64, null], result: VOID },
@@ -2390,6 +2757,14 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2390
2757
  "crypto.generateKeyCb": { argTypes: [DYN, DYN, null], result: VOID },
2391
2758
  "crypto.keyObjectInput": { argTypes: [DYN], result: BYTES_U8 },
2392
2759
  "crypto.isKeyObject": { argTypes: [DYN], result: BOOL },
2760
+ /** WebCrypto (scr_webcrypto.c): each method takes its argument vector as
2761
+ * one dyn array and answers a promise that argument and validation
2762
+ * failures reject. CryptoKey values are native handles. */
2763
+ "webcrypto.importKey": { argTypes: [DYN], result: { kind: "promise", inner: DYN } },
2764
+ "webcrypto.sign": { argTypes: [DYN], result: { kind: "promise", inner: DYN } },
2765
+ "webcrypto.verify": { argTypes: [DYN], result: { kind: "promise", inner: BOOL } },
2766
+ "webcrypto.digest": { argTypes: [DYN], result: { kind: "promise", inner: DYN } },
2767
+ "webcrypto.isCryptoKey": { argTypes: [DYN], result: BOOL },
2393
2768
  "crypto.randomUUIDv7": { argTypes: [DYN], result: STRING },
2394
2769
  "crypto.pbkdf2": { argTypes: [BYTES_U8, BYTES_U8, F64, F64, STRING], result: BYTES_U8 },
2395
2770
  "crypto.randomBytesCb": { argTypes: [F64, null], result: VOID },
@@ -2398,6 +2773,25 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2398
2773
  "crypto.hkdfCb": { argTypes: [STRING, BYTES_U8, BYTES_U8, BYTES_U8, F64, null], result: VOID },
2399
2774
  "crypto.scrypt": { argTypes: [BYTES_U8, BYTES_U8, F64, DYN], result: BYTES_U8 },
2400
2775
  "crypto.scryptCb": { argTypes: [BYTES_U8, BYTES_U8, F64, DYN, null], result: VOID },
2776
+ /** util.promisify over the callback forms: the callback form's
2777
+ * arguments without the callback → a promise the callback form settles,
2778
+ * or rejected with an argument error; never throws. The result's value
2779
+ * type is the declared one (a Buffer, the filled view, a number, or a
2780
+ * checked-dynamic value); the validator checks it. */
2781
+ "crypto.randomBytesPromise": { argTypes: [F64], result: VOID },
2782
+ "crypto.pbkdf2Promise": { argTypes: [BYTES_U8, BYTES_U8, F64, F64, STRING], result: VOID },
2783
+ "crypto.scryptPromise": { argTypes: [BYTES_U8, BYTES_U8, F64, DYN], result: VOID },
2784
+ "crypto.hkdfPromise": { argTypes: [STRING, BYTES_U8, BYTES_U8, BYTES_U8, F64], result: VOID },
2785
+ "crypto.randomFillPromise": { argTypes: [null, F64, F64, F64], result: VOID },
2786
+ "crypto.randomFillPromiseDyn": { argTypes: [DYN, DYN, DYN, F64], result: VOID },
2787
+ "crypto.randomIntPromise": { argTypes: [F64, F64, F64], result: VOID },
2788
+ "crypto.generateKeyPromise": { argTypes: [DYN, DYN], result: VOID },
2789
+ /** util.promisify(dns.lookup) and util.promisify(dns.lookupService):
2790
+ * [hostname, options] and [address, port] → a promise of the
2791
+ * checked-dynamic result object (the address array with options.all),
2792
+ * or rejected with the error; never throws. */
2793
+ "dns.lookupPromise": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
2794
+ "dns.lookupServicePromise": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
2401
2795
  // The Buffer statics and the fs/zlib Buffer forms: fixed always-u8
2402
2796
  // signatures (Buffer IS a Uint8Array — one bytes kind).
2403
2797
  /** The Buffer statics with fixed (always-u8) signatures. fromStr is
@@ -2409,6 +2803,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2409
2803
  "buffer.fromStr": { argTypes: [STRING, STRING], result: BYTES_U8 },
2410
2804
  "buffer.fromStrChecked": { argTypes: [STRING, STRING], result: BYTES_U8 },
2411
2805
  "buffer.brand": { argTypes: [BYTES_U8], result: BYTES_U8 },
2806
+ /** Buffer.isBuffer over a typed view: whether the view carries the
2807
+ * Buffer brand (any element kind; only Buffers do). Never throws. */
2808
+ "buffer.isBranded": { argTypes: [null], result: BOOL },
2412
2809
  /** Buffer.from on checked-native strings, bytes, arrays and data-only
2413
2810
  * array-like/Buffer-JSON objects. The encoding is a normalized literal;
2414
2811
  * non-string inputs ignore it. Copies the input and may throw during
@@ -2416,6 +2813,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2416
2813
  * opaque reference inputs retain explicit runtime refusals. */
2417
2814
  "buffer.fromDyn": { argTypes: [DYN, STRING], result: BYTES_U8 },
2418
2815
  "buffer.concat": { argTypes: [arrayOf(BYTES_U8)], result: BYTES_U8 },
2816
+ "buffer.concatDyn": { argTypes: [DYN], result: BYTES_U8 },
2419
2817
  /** The pooled Buffer factories (Node's allocate/fromStringFast/
2420
2818
  * fromArrayLike): allocUnsafe, Buffer.from of strings, Uint8Arrays,
2421
2819
  * number[] and checked values, and concat return views into the
@@ -2442,6 +2840,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2442
2840
  * zero-padded to the total. THROWS Node's 'length' RangeError on a
2443
2841
  * negative/non-integer total (may-throw seed). */
2444
2842
  "buffer.concatLen": { argTypes: [arrayOf(BYTES_U8), F64], result: BYTES_U8 },
2843
+ "buffer.concatLenDyn": { argTypes: [DYN, F64], result: BYTES_U8 },
2445
2844
  // The checked-dynamic compare/equals validators (Node's argument
2446
2845
  // ladders over dyn-boxed invalid-input probes).
2447
2846
  /** The checked-dynamic compare/equals validators (scr_bytes_io.c) —
@@ -2563,6 +2962,20 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2563
2962
  "zlib.gunzipCb": { argTypes: [BYTES_U8, null], result: VOID },
2564
2963
  "zlib.unzipCb": { argTypes: [BYTES_U8, null], result: VOID },
2565
2964
  "zlib.crc32": { argTypes: [BYTES_U8, F64], result: F64 },
2965
+ /** The one-shot forms with an options value: node_zlib_mode, the input,
2966
+ * the options (validated at runtime with Node's ladder). The Cb form
2967
+ * takes the program-shaped (Error | null, Buffer) callback, which moves. */
2968
+ "zlib.syncOpts": { argTypes: [F64, BYTES_U8, DYN], result: BYTES_U8 },
2969
+ "zlib.cbOpts": { argTypes: [F64, BYTES_U8, DYN, null], result: VOID },
2970
+ /** The checked-dynamic input twins (the JS lane's untyped data). */
2971
+ "zlib.syncOptsDyn": { argTypes: [F64, DYN, DYN], result: BYTES_U8 },
2972
+ "zlib.cbOptsDyn": { argTypes: [F64, DYN, DYN, null], result: VOID },
2973
+ /** util.promisify over the callback one-shots: [mode, data, options]
2974
+ * like zlib.cbOpts → a promise the worker-pool run settles with the
2975
+ * Buffer or the callback form's Error. An options or input error rejects
2976
+ * it; never throws. The Dyn twin takes the JS lane's untyped data. */
2977
+ "zlib.promise": { argTypes: [F64, BYTES_U8, DYN], result: { kind: "promise", inner: BYTES_U8 } },
2978
+ "zlib.promiseDyn": { argTypes: [F64, DYN, DYN], result: { kind: "promise", inner: BYTES_U8 } },
2566
2979
  /** The stream classes (scr_zlib_stream.c, linked with the stream unit):
2567
2980
  * streamNew takes Node's node_zlib_mode number and the options value
2568
2981
  * (undefined when absent), validates it with Node's ladder, and answers
@@ -2571,6 +2984,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2571
2984
  * receivers are borrowed. */
2572
2985
  "zlib.streamNew": { argTypes: [F64, DYN], result: VOID },
2573
2986
  "zlib.streamBytesWritten": { argTypes: [null], result: F64 },
2987
+ /** `stream instanceof zlib.Gzip`: the borrowed stream and the class's
2988
+ * node_zlib_mode; true when the stream is a zlib stream of that mode. */
2989
+ "zlib.streamIs": { argTypes: [null, F64], result: BOOL },
2574
2990
  "zlib.streamFlush": { argTypes: [null, DYN], result: VOID },
2575
2991
  "zlib.streamFlushCb": { argTypes: [null, DYN, null], result: VOID },
2576
2992
  "zlib.streamParams": { argTypes: [null, DYN, DYN], result: VOID },
@@ -2619,6 +3035,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2619
3035
  "fsp.rmdir": { argTypes: [STRING], result: { kind: "promise", inner: VOID } },
2620
3036
  "fsp.link": { argTypes: [DYN, DYN], result: { kind: "promise", inner: VOID } },
2621
3037
  "fsp.symlink": { argTypes: [DYN, DYN, DYN], result: { kind: "promise", inner: VOID } },
3038
+ "fsp.cp": { argTypes: [DYN, DYN, DYN], result: { kind: "promise", inner: VOID } },
2622
3039
  "fsp.readlink": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
2623
3040
  "fsp.statfs": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
2624
3041
  "fsp.readlinkStr": { argTypes: [DYN, DYN], result: { kind: "promise", inner: STRING } },
@@ -2697,6 +3114,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2697
3114
  },
2698
3115
  "fileHandle.stat": { argTypes: [FILEHANDLE_T], result: { kind: "promise", inner: STATS_T } },
2699
3116
  "process.argv": { argTypes: [], result: arrayOf(STRING) },
3117
+ // The Node runtime flag a node:test binary took out of process.argv
3118
+ // (--test-update-snapshots), or [] — a fresh array per read.
3119
+ "process.execArgv": { argTypes: [], result: arrayOf(STRING) },
2700
3120
  "process.platform": { argTypes: [], result: STRING },
2701
3121
  // The one libCall whose result type is program-dependent (union ids are
2702
3122
  // per-module): the `result` here is a placeholder — the libCall case
@@ -2725,8 +3145,13 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2725
3145
  "process.exit": { argTypes: [F64], result: VOID },
2726
3146
  /** Numeric process.exitCode write (integer validation, implicit exit status). */
2727
3147
  "process.setExitCode": { argTypes: [F64], result: VOID },
3148
+ /** The process.exitCode write of a program that also reads the
3149
+ * property: the same validation, and the code counts as assigned. */
3150
+ "process.setExitCodeTracked": { argTypes: [F64], result: VOID },
2728
3151
  /** The code for process.exit() with no argument, or zero when unset. */
2729
3152
  "process.currentExitCode": { argTypes: [], result: F64 },
3153
+ /** Whether process.exitCode reads a code rather than undefined. Never throws. */
3154
+ "process.hasExitCode": { argTypes: [], result: BOOL },
2730
3155
  "process.cwd": { argTypes: [], result: STRING },
2731
3156
  /** getpid(2) / getuid(2): zero args → f64. POSIX-only target, so both
2732
3157
  * always answer (the checker's `getuid?` optionality covers Windows —
@@ -2818,6 +3243,23 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2818
3243
  "error.hasCause": { argTypes: [null], result: BOOL },
2819
3244
  /** Assignment borrows both operands and retains the new cause. */
2820
3245
  "error.setCause": { argTypes: [null, DYN], result: VOID },
3246
+ /** `err.code = s` on an error-hierarchy receiver: the code slot that
3247
+ * error.code reads and coded throws stamp. Borrows both; never throws. */
3248
+ "error.setCode": { argTypes: [null, STRING], result: VOID },
3249
+ /** `err.code = v` with a value that is not statically a string: strings
3250
+ * take the code slot, anything else clears it and sets the dynamic own
3251
+ * property. Borrows both; never throws. */
3252
+ "error.setCodeDyn": { argTypes: [null, DYN], result: VOID },
3253
+ /** `Object.assign(err, ...sources)` onto an error-hierarchy receiver
3254
+ * (args: the error, a dyn array of the sources): the own-member copy
3255
+ * onto its checked-dynamic node, then the typed slots (name, message,
3256
+ * stack, cause, code) re-read from it. Throws what the copy throws. */
3257
+ "error.assign": { argTypes: [null, DYN], result: VOID },
3258
+ /** `key in err` for a key no compiled class of the receiver declares
3259
+ * (args: the error, the key): a runtime-set own property (Object.assign,
3260
+ * throw-site fields, dynamic writes) or an Object.prototype member. */
3261
+ "error.hasKey": { argTypes: [null, STRING], result: BOOL },
3262
+ "error.hasCode": { argTypes: [null], result: BOOL },
2821
3263
  "error.defineCause": { argTypes: [null, DYN], result: VOID },
2822
3264
  "error.deleteCause": { argTypes: [null], result: VOID },
2823
3265
  /** The compiler-resolved Node-parity throw for always-throwing lowered
@@ -2850,6 +3292,29 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2850
3292
  "dyn.compare": { argTypes: [DYN, DYN, STRING], result: BOOL },
2851
3293
  "dyn.bitwise": { argTypes: [DYN, DYN, STRING], result: DYN },
2852
3294
  "dyn.proxyNew": { argTypes: [DYN, DYN], result: DYN },
3295
+ /* Dynamic-tier values (jsval; two-tier design stage S3). The jsval pass
3296
+ * (ir/jsval.ts) introduces these in dynamic-tier functions only; the
3297
+ * runtime is scr_js_value.c. Arguments are borrowed and results owned,
3298
+ * like every libCall. Boundary conversions: js.fromDyn (a cell keeps its
3299
+ * identity), js.toDyn (an immediate is boxed), js.fromF64/fromBool/
3300
+ * fromStr/fromBigInt (the design's toJs: immediates, and strings and
3301
+ * BigInts under a tag without a copy) and js.toF64 (fromJs to number: dynCheck's
3302
+ * number check and TypeError). The operators are the dyn.* operators
3303
+ * over jsvals, with identical JS semantics. */
3304
+ "js.fromDyn": { argTypes: [DYN], result: JSVAL },
3305
+ "js.toDyn": { argTypes: [JSVAL], result: DYN },
3306
+ "js.fromF64": { argTypes: [F64], result: JSVAL },
3307
+ "js.fromBool": { argTypes: [BOOL], result: JSVAL },
3308
+ "js.fromStr": { argTypes: [STRING], result: JSVAL },
3309
+ "js.fromBigInt": { argTypes: [BIGINT_T], result: JSVAL },
3310
+ "js.toF64": { argTypes: [JSVAL], result: F64 },
3311
+ "js.add": { argTypes: [JSVAL, JSVAL], result: JSVAL },
3312
+ "js.arithmetic": { argTypes: [JSVAL, JSVAL, STRING], result: JSVAL },
3313
+ "js.bitwise": { argTypes: [JSVAL, JSVAL, STRING], result: JSVAL },
3314
+ "js.compare": { argTypes: [JSVAL, JSVAL, STRING], result: BOOL },
3315
+ "js.toNumeric": { argTypes: [JSVAL], result: JSVAL },
3316
+ "js.increment": { argTypes: [JSVAL, BOOL], result: JSVAL },
3317
+ "js.toNumberCoerce": { argTypes: [JSVAL], result: F64 },
2853
3318
  // Always throws; the result is the READ's declared type (a typed dummy
2854
3319
  // the unwind abandons) — the libCall case skips the result check.
2855
3320
  /** A read of a `declare`d const NOTHING defines (the bundler-define
@@ -2908,6 +3373,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2908
3373
  /** SameValue over checked values, including NaN, signed zero and reference identity. */
2909
3374
  "dyn.sameValue": { argTypes: [DYN, DYN], result: BOOL },
2910
3375
  "error.stack": { argTypes: [null], result: STRING },
3376
+ "error.setStack": { argTypes: [null, STRING], result: VOID },
2911
3377
  "error.stackLimitGet": { argTypes: [], result: F64 },
2912
3378
  "error.stackLimitSet": { argTypes: [F64], result: VOID },
2913
3379
  // Receiver (any error-hierarchy object) and the program-dependent
@@ -2962,6 +3428,13 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2962
3428
  },
2963
3429
  "error.aggregateSetErrors": { argTypes: [null, DYN], result: VOID },
2964
3430
  "error.aggregateErrors": { argTypes: [null], result: DYN },
3431
+ /** `new SuppressedError(error, suppressed, message?)` (scr_json.c): all
3432
+ * three dyn and borrowed; the message conversion can throw. Returns an
3433
+ * owned %SuppressedError. */
3434
+ "error.newSuppressed": {
3435
+ argTypes: [DYN, DYN, DYN],
3436
+ result: { kind: "object", className: "%SuppressedError" },
3437
+ },
2965
3438
  /** `d instanceof TypeError` (and the other BUILTIN error classes) on a
2966
3439
  * checked-dynamic value (scr_json.c): the from_error cache holds the
2967
3440
  * dyn↔error identity edge, so the test resolves the runtime error and
@@ -3006,6 +3479,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3006
3479
  "arrayBuffer.viewU8": { argTypes: [DYN, DYN, DYN], result: BYTES_U8 },
3007
3480
  "arrayBuffer.viewU32": { argTypes: [DYN, DYN, DYN], result: bytesOf("u32") },
3008
3481
  "arrayBuffer.viewI32": { argTypes: [DYN, DYN, DYN], result: bytesOf("i32") },
3482
+ "arrayBuffer.viewF16": { argTypes: [DYN, DYN, DYN], result: bytesOf("f16") },
3009
3483
  "arrayBuffer.viewF32": { argTypes: [DYN, DYN, DYN], result: bytesOf("f32") },
3010
3484
  "arrayBuffer.viewF64": { argTypes: [DYN, DYN, DYN], result: bytesOf("f64") },
3011
3485
  "arrayBuffer.viewDV": { argTypes: [DYN, DYN, DYN], result: BYTES_U8 },
@@ -3051,6 +3525,19 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3051
3525
  "dyn.packPushSpreadIter": { argTypes: [DYN, DYN], result: VOID },
3052
3526
  "dyn.reflectApply": { argTypes: [DYN, DYN, DYN], result: DYN },
3053
3527
  "dyn.reflectGet": { argTypes: [DYN, DYN, DYN], result: DYN },
3528
+ /** `using` / `await using` with a dyn value (scr_json.c): usingMethod
3529
+ * runs the declaration's checks and answers what usingDispose calls at
3530
+ * scope exit (undefined for a null or undefined value). The bool selects
3531
+ * `await using`. Both throw Node's TypeErrors or the method's error. */
3532
+ "dyn.usingMethod": { argTypes: [DYN, BOOL], result: DYN },
3533
+ "dyn.usingDispose": { argTypes: [DYN, DYN], result: DYN },
3534
+ /** DisposableStack (scr_symbol.c): a new stack handle; whether a value is
3535
+ * one; and `stack.use(value)` for a class instance, registering the
3536
+ * compiler's disposal function for it. The last throws Node's
3537
+ * ReferenceError on a disposed stack. */
3538
+ "disposable.stackNew": { argTypes: [], result: DYN },
3539
+ "disposable.stackIs": { argTypes: [DYN], result: BOOL },
3540
+ "disposable.stackUseCallback": { argTypes: [DYN, DYN, DYN], result: BOOL },
3054
3541
  "dyn.reflectSet": { argTypes: [DYN, DYN, DYN, DYN], result: BOOL },
3055
3542
  "dyn.reflectDefine": { argTypes: [DYN, DYN, DYN], result: BOOL },
3056
3543
  "dyn.abstractEq": { argTypes: [DYN, DYN], result: BOOL },
@@ -3064,6 +3551,20 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3064
3551
  "dyn.classPrototype": { argTypes: [DYN, DYN], result: DYN },
3065
3552
  "dyn.classBasePrototype": { argTypes: [DYN], result: DYN },
3066
3553
  "dyn.classInherit": { argTypes: [DYN, DYN], result: DYN },
3554
+ /** EventEmitter (0), Stream (1), Readable (2), Writable (3), Duplex (4),
3555
+ * Transform (5) and PassThrough (6) as untyped constructor values, one
3556
+ * per thread (scr_dyn_builtin_class.c). */
3557
+ "dyn.builtinClass": { argTypes: [F64], result: DYN },
3558
+ /** The stream classes (2-6 above) with their stream half: constructor
3559
+ * functions over them get native stream state
3560
+ * (scr_dyn_builtin_stream.c). */
3561
+ "dyn.builtinStreamClass": { argTypes: [F64], result: DYN },
3562
+ /** `value instanceof C` for those constructors, over the value's
3563
+ * prototype chain. */
3564
+ "dyn.builtinInstanceOf": { argTypes: [DYN, F64], result: BOOL },
3565
+ /** `value instanceof f` for an untyped constructor function: the
3566
+ * prototype chain against f.prototype. */
3567
+ "dyn.functionInstanceOf": { argTypes: [DYN, DYN], result: BOOL },
3067
3568
  "dyn.classSuper": { argTypes: [DYN, DYN, DYN], result: VOID },
3068
3569
  "dyn.assignPrototype": { argTypes: [DYN, DYN, DYN], result: DYN },
3069
3570
  "dyn.definePrototypeProps": { argTypes: [DYN, DYN, DYN], result: DYN },
@@ -3126,6 +3627,8 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3126
3627
  "regex.groupEquals": { argTypes: [arrayOf(STRING), F64, STRING], result: BOOL },
3127
3628
  "regex.groupNumber": { argTypes: [arrayOf(STRING), F64], result: F64 },
3128
3629
  "regex.groupParseInt": { argTypes: [arrayOf(STRING), F64, F64], result: F64 },
3630
+ // `.index` / `.input` (args[1]) of a match result. Borrowed; never throws.
3631
+ "regex.resultProp": { argTypes: [arrayOf(STRING), STRING], result: DYN },
3129
3632
  // node:events EventEmitter: receivers are emitter-hierarchy objects and
3130
3633
  // the chaining forms (on/off/removeAll/setMax) return the receiver's
3131
3634
  // own class — program-dependent object types, checked in the libCall
@@ -3152,6 +3655,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3152
3655
  * throws err when unhandled. count/countFn/names/listeners/getMax/
3153
3656
  * setMax/setDefaultMax/getDefaultMax are the introspection surface. */
3154
3657
  "emitter.new": { argTypes: [], result: VOID },
3658
+ /** `x.constructor.name` of an emitter or stream (a borrowed object of
3659
+ * EventEmitter's hierarchy): the +1 class name the instance records. */
3660
+ "emitter.className": { argTypes: [null], result: STRING },
3155
3661
  "emitter.ctor": { argTypes: [null], result: VOID },
3156
3662
  "emitter.on": { argTypes: [null, STRING, null, BOOL, BOOL], result: VOID },
3157
3663
  "emitter.off": { argTypes: [null, STRING, null], result: VOID },
@@ -3186,6 +3692,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3186
3692
  "emitter.getMax": { argTypes: [null], result: F64 },
3187
3693
  "emitter.setDefaultMax": { argTypes: [F64], result: VOID },
3188
3694
  "emitter.getDefaultMax": { argTypes: [], result: F64 },
3695
+ // The ES module namespace's copy of defaultMaxListeners, and
3696
+ // module.syncBuiltinESMExports() refreshing it.
3697
+ "emitter.esmDefaultMax": { argTypes: [], result: F64 },
3698
+ "emitter.esmSync": { argTypes: [], result: VOID },
3189
3699
  /** The events.errorMonitor event key: an immortal string the runtime
3190
3700
  * registry matches by identity, so no string event name reaches it. */
3191
3701
  "emitter.errorMonitor": { argTypes: [], result: STRING },
@@ -3212,7 +3722,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3212
3722
  * returns the below-hwm answer. readable.read: (recv, size — -1 for
3213
3723
  * absent) → Buffer|null union. pause/resume return recv +1 (`this`);
3214
3724
  * isPaused answers the flag. readable.pipe: (recv, dst, end) → dst +1,
3215
- * fires 'pipe' on dst; readable.unpipe (recv[, dst]) → recv +1.
3725
+ * fires 'pipe' on dst; readable.pipeGeneral: the same, with `end` off
3726
+ * when dst is the converted process.stdout / process.stderr;
3727
+ * readable.unpipe (recv[, dst]) → recv +1.
3216
3728
  * writable.write/writeStr: (recv, chunk[, cb]) → below-hwm bool (cb
3217
3729
  * MOVES when present, called after the user write completes).
3218
3730
  * writable.end: (recv, flags[, chunk][, cb]) → recv +1. cork/uncork are
@@ -3370,11 +3882,16 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3370
3882
  * error. The Dyn twin boxes chunks by runtime tag (the JS lane).
3371
3883
  * readable.fromArr is Readable.from over a typed array, string or
3372
3884
  * Buffer: [array, SCR_FROM_* flags, highWaterMark]. readable.fromDyn is
3373
- * the JS lane's [source, options]. */
3885
+ * Readable.from over a checked-dynamic source: [source, options].
3886
+ * readable.fromIter is Readable.from over a class iterator, already
3887
+ * opened: [checked-dynamic { next } object, flags, highWaterMark];
3888
+ * readable.fromAsyncIter is the async class iterator's twin. */
3374
3889
  "readable.nextChunk": { argTypes: [null], result: VOID },
3375
3890
  "readable.nextChunkDyn": { argTypes: [null], result: VOID },
3376
3891
  "readable.fromArr": { argTypes: [null, F64, F64], result: VOID },
3377
3892
  "readable.fromDyn": { argTypes: [DYN, DYN], result: VOID },
3893
+ "readable.fromIter": { argTypes: [DYN, F64, F64], result: VOID },
3894
+ "readable.fromAsyncIter": { argTypes: [DYN, F64, F64], result: VOID },
3378
3895
  /** Readable.from over a compiled generator: [generator, next, return,
3379
3896
  * throw, flags, highWaterMark] (sync) or [generator, next, read,
3380
3897
  * return, throw, flags, highWaterMark] (async), the helpers being the
@@ -3405,6 +3922,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3405
3922
  "readable.resume": { argTypes: [null], result: VOID },
3406
3923
  "readable.isPaused": { argTypes: [null], result: BOOL },
3407
3924
  "readable.pipe": { argTypes: [null, null, BOOL], result: VOID },
3925
+ "readable.pipeGeneral": { argTypes: [null, null, BOOL], result: VOID },
3408
3926
  "readable.unpipe": { argTypes: [null], result: VOID },
3409
3927
  "readable.flowing": { argTypes: [null], result: VOID },
3410
3928
  "writable.write": { argTypes: [null, BYTES_U8], result: BOOL },
@@ -3576,18 +4094,25 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3576
4094
  "insp.jsonDyn": { argTypes: [DYN], result: STRING },
3577
4095
  "insp.str": { argTypes: [STRING], result: STRING },
3578
4096
  "insp.regex": { argTypes: [REGEX], result: STRING },
4097
+ /** A Date's inspect text: toISOString(), or "Invalid Date". */
4098
+ "insp.date": { argTypes: [DATE_T], result: STRING },
3579
4099
  "insp.buffer": { argTypes: [BYTES_U8], result: STRING },
4100
+ /** A numeric typed array that is not a Buffer (any element kind). */
4101
+ "insp.typedArray": { argTypes: [null, F64, F64], result: STRING },
3580
4102
  "insp.error": { argTypes: [null, F64, F64], result: STRING },
3581
4103
  "insp.dyn": { argTypes: [DYN, F64, F64], result: STRING },
3582
4104
  "insp.dynS": { argTypes: [DYN, F64], result: STRING },
3583
4105
  "insp.begin": { argTypes: [F64], result: VOID },
4106
+ /** util.inspect's breakLength, compact (0 for false) and sorted for the
4107
+ * renders that follow; the call site restores 80, 3 and false afterwards. */
4108
+ "insp.layout": { argTypes: [F64, F64, BOOL], result: VOID },
3584
4109
  "insp.entry": { argTypes: [STRING, BOOL], result: VOID },
3585
4110
  // Circular references: the receiver slot is program-dependent (any
3586
4111
  // cycle-capable record/array/map/class type — the insp.error precedent).
3587
4112
  /* Circular references over cycle-capable composites (recursive record/
3588
4113
  * class types): circCheck answers a value's circular id when it is
3589
4114
  * already on the traversal stack (0 otherwise), seenPush/refWrap
3590
- * bracket the frame (refWrap adds Node's "<ref *N> " prefix to values
4115
+ * bracket the frame (insp.end adds Node's "<ref *N> " prefix to values
3591
4116
  * the walk found circular), circular renders "[Circular *N]". */
3592
4117
  "insp.circCheck": { argTypes: [null], result: F64 },
3593
4118
  "insp.seenPush": { argTypes: [null], result: VOID },
@@ -3619,6 +4144,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3619
4144
  "strdec.write": { argTypes: [STRING, F64, BYTES_U8], result: STRING },
3620
4145
  "strdec.next": { argTypes: [STRING, F64, BYTES_U8], result: F64 },
3621
4146
  "strdec.end": { argTypes: [STRING, F64], result: STRING },
4147
+ /** A runtime encoding argument's canonical name (Node's normalizeEncoding:
4148
+ * nullish and "" are utf8); an unknown name throws ERR_UNKNOWN_ENCODING. */
4149
+ "strdec.encoding": { argTypes: [DYN], result: STRING },
3622
4150
  // node:readline: the interface handle is f64; the callbacks' func types
3623
4151
  // are program-dependent (the emitter picks the adapter by parameter
3624
4152
  // count), so those slots are null like child.onExit's.
@@ -3649,17 +4177,90 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3649
4177
  argTypes: [F64, STRING, DYN],
3650
4178
  result: { kind: "promise", inner: STRING },
3651
4179
  },
4180
+ /** The question forms with a checked-dynamic query (a JavaScript value
4181
+ * that need not be a string). */
4182
+ "rl.questionDyn": { argTypes: [F64, DYN, null], result: VOID },
4183
+ "rl.questionAsyncDyn": { argTypes: [F64, DYN], result: { kind: "promise", inner: STRING } },
4184
+ "rl.questionAsyncSignalDyn": {
4185
+ argTypes: [F64, DYN, DYN],
4186
+ result: { kind: "promise", inner: STRING },
4187
+ },
3652
4188
  "rl.close": { argTypes: [F64], result: VOID },
3653
4189
  "rl.pause": { argTypes: [F64], result: VOID },
3654
4190
  "rl.resume": { argTypes: [F64], result: VOID },
3655
4191
  "rl.prompt": { argTypes: [F64], result: VOID },
4192
+ /** prompt(preserveCursor): [handle, preserveCursor] */
4193
+ "rl.promptWith": { argTypes: [F64, BOOL], result: VOID },
3656
4194
  "rl.setPrompt": { argTypes: [F64, STRING], result: VOID },
4195
+ "rl.setPromptDyn": { argTypes: [F64, DYN], result: VOID },
3657
4196
  "rl.getPrompt": { argTypes: [F64], result: STRING },
3658
4197
  "rl.write": { argTypes: [F64, STRING], result: VOID },
4198
+ /** write(data, key): [handle, hasData, data, hasKey, hasName, name,
4199
+ * ctrl, meta, shift] */
4200
+ "rl.writeKey": {
4201
+ argTypes: [F64, BOOL, STRING, BOOL, BOOL, STRING, BOOL, BOOL, BOOL],
4202
+ result: VOID,
4203
+ },
3659
4204
  "rl.on": { argTypes: [F64, F64, null, BOOL], result: VOID },
3660
4205
  "rl.iterOpen": { argTypes: [F64], result: VOID },
3661
4206
  "rl.iterNext": { argTypes: [F64], result: { kind: "promise", inner: DYN } },
3662
4207
  "rl.iterReturn": { argTypes: [F64], result: VOID },
4208
+ /** createInterface's history and editing options (scr_rl_check_options:
4209
+ * [flags, tabSize, escapeCodeTimeout, historySize], may throw;
4210
+ * rl.setOptions: [handle, flags, historySize, removeHistoryDuplicates,
4211
+ * tabSize, escapeCodeTimeout]; rl.setHistory: [handle, history]) and
4212
+ * the member reads (rl.history answers the array, rl.numProp the
4213
+ * numeric member by number). */
4214
+ "rl.checkOptions": { argTypes: [F64, F64, F64, F64], result: VOID },
4215
+ "rl.checkCompleter": { argTypes: [DYN], result: VOID },
4216
+ "rl.setOptions": { argTypes: [F64, F64, F64, BOOL, F64, F64], result: VOID },
4217
+ "rl.setHistory": { argTypes: [F64, arrayOf(STRING)], result: VOID },
4218
+ "rl.history": { argTypes: [F64], result: arrayOf(STRING) },
4219
+ "rl.numProp": { argTypes: [F64, F64], result: F64 },
4220
+ /** Terminal mode (scr_readline_tty.c): rl.terminal: [handle, mode (0
4221
+ * the option's value, 2 output.isTTY of process.stdout), terminal,
4222
+ * completer (undefined when absent), readline/promises], emitted with
4223
+ * scr_insp_dyn when there is a completer; the line, terminal and cursor
4224
+ * members. */
4225
+ "rl.terminal": { argTypes: [F64, F64, BOOL, DYN, BOOL], result: VOID },
4226
+ "rl.line": { argTypes: [F64], result: STRING },
4227
+ "rl.isTerminal": { argTypes: [F64], result: BOOL },
4228
+ "rl.isPromises": { argTypes: [F64], result: BOOL },
4229
+ /** createInterface's input or output as a checked-dynamic value:
4230
+ * [value, output] — the stream; refused when it is not one. */
4231
+ "rl.inputFromDyn": { argTypes: [DYN, BOOL], result: { kind: "object", className: "%Readable" } },
4232
+ "rl.outputFromDyn": {
4233
+ argTypes: [DYN, BOOL],
4234
+ result: { kind: "object", className: "%Writable" },
4235
+ },
4236
+ "rl.cursor": { argTypes: [F64], result: F64 },
4237
+ /** readline.cursorTo / moveCursor / clearLine / clearScreenDown: rl.seq
4238
+ * [kind (0-3), the first and second numbers, whether the second is
4239
+ * given] answers the data to write after the argument checks (may
4240
+ * throw); rl.moves [dx, dy] says whether moveCursor writes. */
4241
+ "rl.seq": { argTypes: [F64, F64, F64, BOOL], result: STRING },
4242
+ "rl.moves": { argTypes: [F64, F64], result: BOOL },
4243
+ /** getCursorPos() (scr_readline_tty.c, linked through the regex unit
4244
+ * like rl.terminal): [handle, 0 rows | 1 cols] */
4245
+ "rl.cursorPos": { argTypes: [F64, F64], result: F64 },
4246
+ /** readline.emitKeypressEvents (scr_readline_tty.c): rl.keypressStdin
4247
+ * [interface (0: none), escapeCodeTimeout (NaN: the interface's or
4248
+ * 500)], rl.keypressStream [stream, interface, timeout]. */
4249
+ "rl.keypressStdin": { argTypes: [F64, F64], result: VOID },
4250
+ "rl.keypressStream": { argTypes: [null, F64, F64], result: VOID },
4251
+ /** readline/promises Readline over an f64 handle: rl.uiOpen [fd (1
4252
+ * stdout, 2 stderr), autoCommit], rl.uiOpenStream [stream, autoCommit]
4253
+ * (isWritable, may throw); the actions take [handle, ...numbers] (the
4254
+ * checks may throw; cursorTo: [handle, x, whether y is given, y]);
4255
+ * rl.uiCommit answers a promise<void>. */
4256
+ "rl.uiOpen": { argTypes: [F64, BOOL], result: F64 },
4257
+ "rl.uiOpenStream": { argTypes: [null, BOOL], result: F64 },
4258
+ "rl.uiCursorTo": { argTypes: [F64, F64, BOOL, F64], result: VOID },
4259
+ "rl.uiMoveCursor": { argTypes: [F64, F64, F64], result: VOID },
4260
+ "rl.uiClearLine": { argTypes: [F64, F64], result: VOID },
4261
+ "rl.uiClearScreenDown": { argTypes: [F64], result: VOID },
4262
+ "rl.uiRollback": { argTypes: [F64], result: VOID },
4263
+ "rl.uiCommit": { argTypes: [F64], result: { kind: "promise", inner: VOID } },
3663
4264
  /** node:timers/promises — the promisified pair (scr_async.c, beside
3664
4265
  * the timer heap they ride): tp.setTimeout: [ms] → a pending void
3665
4266
  * promise a one-shot heap timer fulfills (the loop's timer phase, FIFO
@@ -3667,17 +4268,33 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3667
4268
  * through the immediate queue (fires before due timers of later loop
3668
4269
  * turns, Node's check phase). Neither throws. */
3669
4270
  "tp.setTimeout": { argTypes: [F64], result: { kind: "promise", inner: VOID } },
4271
+ // scheduler.wait(delay): tp.setTimeout's promise. It throws Node's
4272
+ // ERR_INVALID_THIS once mock.timers has restored the real scheduler.wait.
4273
+ "tp.schedulerWait": { argTypes: [F64], result: { kind: "promise", inner: VOID } },
3670
4274
  "tp.setImmediate": { argTypes: [], result: { kind: "promise", inner: VOID } },
3671
4275
  /** events.once (scr_events_emitter.c): [emitter, name, boxer,
3672
4276
  * errorBoxer, listenForError] → a pending promise of any[]; the boxers
3673
4277
  * turn the event's and the 'error' tuple into that array. */
3674
4278
  "events.once": { argTypes: [null, STRING, null, null, BOOL], result: VOID },
4279
+ /** events.once(emitter, name, { signal }) (scr_events_once_signal.c):
4280
+ * events.once's arguments plus the checked-dynamic signal (an
4281
+ * AbortSignal or undefined). */
4282
+ "events.onceSignal": { argTypes: [null, STRING, null, null, BOOL, DYN], result: VOID },
3675
4283
  /** The resolve-value forms: [ms?, value, ref] → a pending promise of the
3676
4284
  * value's type that copies the borrowed already-resolved `value` promise
3677
4285
  * when the timer (or immediate) fires; ref false unrefs it. The result
3678
4286
  * type follows the value promise. */
3679
4287
  "tp.setTimeoutValue": { argTypes: [F64, null, BOOL], result: VOID },
3680
4288
  "tp.setImmediateValue": { argTypes: [null, BOOL], result: VOID },
4289
+ /** The same with options.signal (a checked-dynamic AbortSignal or
4290
+ * undefined) last: an abort clears the timer and rejects with an
4291
+ * AbortError (scr_event_target.c). */
4292
+ "tp.setTimeoutSignal": { argTypes: [F64, null, BOOL, DYN], result: VOID },
4293
+ "tp.setImmediateSignal": { argTypes: [null, BOOL, DYN], result: VOID },
4294
+ /** scheduler.wait(delay, options): tp.setTimeoutValue's and
4295
+ * tp.setTimeoutSignal's shapes, with tp.schedulerWait's throws. */
4296
+ "tp.schedulerWaitValue": { argTypes: [F64, null, BOOL], result: VOID },
4297
+ "tp.schedulerWaitSignal": { argTypes: [F64, null, BOOL, DYN], result: VOID },
3681
4298
  /** node:diagnostics_channel (scr_dc.c, linked when any dc.* appears —
3682
4299
  * the zlib gating precedent): a process-global name→channel registry;
3683
4300
  * channel values are f64 handles (type-mapper.ts maps Channel to F64, the
@@ -3773,6 +4390,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3773
4390
  * warnings and DeprecationWarning emissions read their truthiness. */
3774
4391
  "process.deprecationFlag": { argTypes: [F64], result: DYN },
3775
4392
  "process.setDeprecationFlag": { argTypes: [F64, DYN], result: VOID },
4393
+ "process.setEmitWarning": { argTypes: [DYN], result: VOID },
3776
4394
  /** AsyncLocalStorage (node:async_hooks — scr_async.c): stores are f64
3777
4395
  * handles; contexts are immutable fiber-carried snapshots (spawned
3778
4396
  * fibers inherit the spawner's — Node's init-time capture). run/exit
@@ -3830,6 +4448,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3830
4448
  "date.valueOf": { argTypes: [DATE_T], result: F64 },
3831
4449
  "date.toISOString": { argTypes: [F64], result: STRING },
3832
4450
  "date.toISOStringValue": { argTypes: [DATE_T], result: STRING },
4451
+ /** Date.prototype.toUTCString over a stored Date ("Invalid Date" for
4452
+ * NaN; never throws). */
4453
+ "date.toUTCString": { argTypes: [DATE_T], result: STRING },
3833
4454
  "date.getFullYear": { argTypes: [DATE_T], result: F64 },
3834
4455
  "date.getUTCFullYear": { argTypes: [DATE_T], result: F64 },
3835
4456
  "date.getMonth": { argTypes: [DATE_T], result: F64 },
@@ -3847,14 +4468,17 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3847
4468
  "date.getMilliseconds": { argTypes: [DATE_T], result: F64 },
3848
4469
  "date.getUTCMilliseconds": { argTypes: [DATE_T], result: F64 },
3849
4470
  "date.getTimezoneOffset": { argTypes: [DATE_T], result: F64 },
4471
+ /** Date.prototype.toString / toDateString / toTimeString and String(date):
4472
+ * V8's local-time formats with the host zone's long name, "Invalid Date"
4473
+ * for an invalid date. Owned (+1) string; never throws. */
4474
+ "date.toString": { argTypes: [DATE_T], result: STRING },
4475
+ "date.toDateString": { argTypes: [DATE_T], result: STRING },
4476
+ "date.toTimeString": { argTypes: [DATE_T], result: STRING },
3850
4477
  /** The composed `new Date(dateString).getTime()` read: one borrowed
3851
- * string, f64 milliseconds since epoch. The parsed grammar is BOUNDED
3852
- * (documented divergence — V8's parser accepts far more): the ASN.1
3853
- * validity shape X509Certificate.validFrom/validTo answer ("Jul 1
3854
- * 00:00:00 2026 GMT" — the portless cert-expiry read), and ECMA's own
3855
- * date-time string format (YYYY-MM-DD[THH:mm[:ss[.sss]]][Z|±HH:MM] —
3856
- * date-only forms are UTC, exactly the spec). Anything else is NaN,
3857
- * Node's invalid-date getTime. Never throws. */
4478
+ * string, f64 milliseconds since epoch, with V8's date-string grammar
4479
+ * (the ES5 format, then the legacy forms: RFC 1123/2822, Date#toString,
4480
+ * "Jan 2, 2024", ...). Zone-less dates are local time; anything V8
4481
+ * rejects is NaN, Node's invalid-date getTime. Never throws. */
3858
4482
  "date.parseGetTime": { argTypes: [STRING], result: F64 },
3859
4483
  /** `Date.UTC(...)` — seven f64 arguments (the frontend completes the
3860
4484
  * spec's defaults for omitted trailing parts: month 0, date 1, time
@@ -3862,6 +4486,12 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3862
4486
  * map to 1900+year, out-of-range months/dates roll over, non-finite
3863
4487
  * parts and out-of-range results answer NaN. Never throws. */
3864
4488
  "date.utc": { argTypes: [F64, F64, F64, F64, F64, F64, F64], result: F64 },
4489
+ /** `new Date(year, monthIndex[, date, hours, minutes, seconds, ms])` —
4490
+ * the same seven-f64 completion as date.utc, but the fields are LOCAL
4491
+ * time: V8's MakeDay/MakeTime, then UTC(t) in the host zone (DST gaps
4492
+ * read with the offset before the transition, overlaps answer the
4493
+ * earlier instant), then TimeClip. Never throws. */
4494
+ "date.newLocal": { argTypes: [F64, F64, F64, F64, F64, F64, F64], result: DATE_T },
3865
4495
  /** WHATWG TextDecoder.decode over u8 bytes (scr_bytes.c): utf-8 with
3866
4496
  * default options — the same maximal-subpart replacement decode as
3867
4497
  * Buffer.toString("utf8"), with the leading BOM stripped (the one