@scriptc/compiler 0.3.4 → 0.3.6

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 (316) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +409 -42
  2. package/dist/backend/llvm/array-search.js +1 -1
  3. package/dist/backend/llvm/array-search.js.map +1 -1
  4. package/dist/backend/llvm/call-lifetimes.d.ts +6 -0
  5. package/dist/backend/llvm/call-lifetimes.js +19 -0
  6. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  7. package/dist/backend/llvm/constant-callbacks.d.ts +2 -21
  8. package/dist/backend/llvm/constant-callbacks.js +36 -219
  9. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  10. package/dist/backend/llvm/constant-callbacks.test.js +22 -0
  11. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  12. package/dist/backend/llvm/dense-array-access.d.ts +9 -0
  13. package/dist/backend/llvm/dense-array-access.js +27 -1
  14. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  15. package/dist/backend/llvm/dyn.d.ts +6 -0
  16. package/dist/backend/llvm/dyn.js +71 -7
  17. package/dist/backend/llvm/dyn.js.map +1 -1
  18. package/dist/backend/llvm/emitter.d.ts +120 -2
  19. package/dist/backend/llvm/emitter.js +820 -142
  20. package/dist/backend/llvm/emitter.js.map +1 -1
  21. package/dist/backend/llvm/expr-async.js +17 -7
  22. package/dist/backend/llvm/expr-async.js.map +1 -1
  23. package/dist/backend/llvm/expr-bytes.js +1 -1
  24. package/dist/backend/llvm/expr-callbacks.d.ts +11 -0
  25. package/dist/backend/llvm/expr-callbacks.js +53 -0
  26. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  27. package/dist/backend/llvm/expr-calls.js +88 -2
  28. package/dist/backend/llvm/expr-calls.js.map +1 -1
  29. package/dist/backend/llvm/expr-containers.js +50 -27
  30. package/dist/backend/llvm/expr-containers.js.map +1 -1
  31. package/dist/backend/llvm/expr-dispatch.js +1 -0
  32. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  33. package/dist/backend/llvm/expr-dynamic.js +25 -1
  34. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  35. package/dist/backend/llvm/expr-primitives.d.ts +1 -1
  36. package/dist/backend/llvm/expr-primitives.js +20 -1
  37. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  38. package/dist/backend/llvm/expr-stream-bridges.js +4 -0
  39. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  40. package/dist/backend/llvm/integer-clones.d.ts +103 -0
  41. package/dist/backend/llvm/integer-clones.js +1336 -0
  42. package/dist/backend/llvm/integer-clones.js.map +1 -0
  43. package/dist/backend/llvm/integer-clones.test.d.ts +1 -0
  44. package/dist/backend/llvm/integer-clones.test.js +219 -0
  45. package/dist/backend/llvm/integer-clones.test.js.map +1 -0
  46. package/dist/backend/llvm/lib-datagram.js +14 -0
  47. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  48. package/dist/backend/llvm/lib-dispatch.js +32 -1
  49. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  50. package/dist/backend/llvm/lib-filesystem.js +61 -1
  51. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  52. package/dist/backend/llvm/lib-network.js +21 -3
  53. package/dist/backend/llvm/lib-network.js.map +1 -1
  54. package/dist/backend/llvm/lib-process.js +34 -0
  55. package/dist/backend/llvm/lib-process.js.map +1 -1
  56. package/dist/backend/llvm/lib-shared.js +77 -2
  57. package/dist/backend/llvm/lib-shared.js.map +1 -1
  58. package/dist/backend/llvm/lib-test.js +16 -3
  59. package/dist/backend/llvm/lib-test.js.map +1 -1
  60. package/dist/backend/llvm/lib-tls.js +6 -0
  61. package/dist/backend/llvm/lib-tls.js.map +1 -1
  62. package/dist/backend/llvm/local-array-reads.js +1 -1
  63. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  64. package/dist/backend/llvm/map-entry-fusion.d.ts +28 -0
  65. package/dist/backend/llvm/map-entry-fusion.js +233 -0
  66. package/dist/backend/llvm/map-entry-fusion.js.map +1 -0
  67. package/dist/backend/llvm/map-entry-fusion.test.d.ts +1 -0
  68. package/dist/backend/llvm/map-entry-fusion.test.js +183 -0
  69. package/dist/backend/llvm/map-entry-fusion.test.js.map +1 -0
  70. package/dist/backend/llvm/map-number-lookup.d.ts +2 -0
  71. package/dist/backend/llvm/map-number-lookup.js +1 -1
  72. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  73. package/dist/backend/llvm/map-number-lookup.test.js +10 -11
  74. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  75. package/dist/backend/llvm/map-read-lifetimes.d.ts +2 -0
  76. package/dist/backend/llvm/map-read-lifetimes.js +3 -0
  77. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  78. package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
  79. package/dist/backend/llvm/nullable-unions.d.ts +6 -3
  80. package/dist/backend/llvm/nullable-unions.js +2 -0
  81. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  82. package/dist/backend/llvm/publish.d.ts +16 -0
  83. package/dist/backend/llvm/publish.js +81 -10
  84. package/dist/backend/llvm/publish.js.map +1 -1
  85. package/dist/backend/llvm/publish.test.d.ts +1 -0
  86. package/dist/backend/llvm/publish.test.js +94 -0
  87. package/dist/backend/llvm/publish.test.js.map +1 -0
  88. package/dist/backend/llvm/record-results.d.ts +1 -1
  89. package/dist/backend/llvm/record-results.js +78 -4
  90. package/dist/backend/llvm/record-results.js.map +1 -1
  91. package/dist/backend/llvm/record-sources.d.ts +7 -0
  92. package/dist/backend/llvm/record-sources.js +14 -0
  93. package/dist/backend/llvm/record-sources.js.map +1 -0
  94. package/dist/backend/llvm/reference-writes.js +1 -0
  95. package/dist/backend/llvm/reference-writes.js.map +1 -1
  96. package/dist/backend/llvm/shapes.d.ts +12 -3
  97. package/dist/backend/llvm/shapes.js +23 -14
  98. package/dist/backend/llvm/shapes.js.map +1 -1
  99. package/dist/backend/llvm/shapes.test.js +5 -3
  100. package/dist/backend/llvm/shapes.test.js.map +1 -1
  101. package/dist/backend/llvm/speculative-integers.d.ts +74 -0
  102. package/dist/backend/llvm/speculative-integers.js +571 -0
  103. package/dist/backend/llvm/speculative-integers.js.map +1 -0
  104. package/dist/backend/llvm/speculative-integers.test.d.ts +1 -0
  105. package/dist/backend/llvm/speculative-integers.test.js +148 -0
  106. package/dist/backend/llvm/speculative-integers.test.js.map +1 -0
  107. package/dist/backend/llvm/string-lifetimes.test.js +75 -1
  108. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  109. package/dist/backend/llvm/walkers.d.ts +17 -0
  110. package/dist/backend/llvm/walkers.js +123 -0
  111. package/dist/backend/llvm/walkers.js.map +1 -1
  112. package/dist/backend/may-throw.js +2 -0
  113. package/dist/backend/may-throw.js.map +1 -1
  114. package/dist/backend/native/contracts.d.ts +2 -1
  115. package/dist/backend/native/executable.js +6 -1
  116. package/dist/backend/native/executable.js.map +1 -1
  117. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  118. package/dist/backend/native/runtime-inputs.js +1 -0
  119. package/dist/backend/native/runtime-inputs.js.map +1 -1
  120. package/dist/backend/runtime-abi.d.ts +2 -2
  121. package/dist/backend/runtime-abi.js +2 -2
  122. package/dist/backend/runtime-pack-targets.test.js +1 -1
  123. package/dist/backend/runtime-pack.d.ts +7 -3
  124. package/dist/backend/runtime-pack.js +12 -6
  125. package/dist/backend/runtime-pack.js.map +1 -1
  126. package/dist/backend/runtime-pack.test.js +16 -7
  127. package/dist/backend/runtime-pack.test.js.map +1 -1
  128. package/dist/contracts/check.js +1 -0
  129. package/dist/contracts/check.js.map +1 -1
  130. package/dist/coverage/surface-manifest.js +3 -3
  131. package/dist/coverage/surface-manifest.js.map +1 -1
  132. package/dist/diagnostics/diagnostic.d.ts +1 -1
  133. package/dist/diagnostics/diagnostic.js +6 -2
  134. package/dist/diagnostics/diagnostic.js.map +1 -1
  135. package/dist/frontend/lowering/builtin-calls.js +13 -0
  136. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  137. package/dist/frontend/lowering/builtins/callable-aliases.js +82 -8
  138. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
  139. package/dist/frontend/lowering/builtins/child-process-async.d.ts +8 -6
  140. package/dist/frontend/lowering/builtins/child-process-async.js +45 -29
  141. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
  142. package/dist/frontend/lowering/builtins/compression.d.ts +9 -0
  143. package/dist/frontend/lowering/builtins/compression.js +145 -30
  144. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  145. package/dist/frontend/lowering/builtins/crypto.js +12 -1
  146. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  147. package/dist/frontend/lowering/builtins/errors.js +5 -3
  148. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  149. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +6 -0
  150. package/dist/frontend/lowering/builtins/filesystem-calls.js +16 -0
  151. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  152. package/dist/frontend/lowering/builtins/filesystem.d.ts +8 -0
  153. package/dist/frontend/lowering/builtins/filesystem.js +199 -2
  154. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  155. package/dist/frontend/lowering/builtins/fs-streams.d.ts +26 -0
  156. package/dist/frontend/lowering/builtins/fs-streams.js +131 -0
  157. package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -0
  158. package/dist/frontend/lowering/builtins/hash-stream.d.ts +12 -0
  159. package/dist/frontend/lowering/builtins/hash-stream.js +80 -0
  160. package/dist/frontend/lowering/builtins/hash-stream.js.map +1 -0
  161. package/dist/frontend/lowering/builtins/module-calls.js +17 -3
  162. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  163. package/dist/frontend/lowering/builtins/process.js +9 -2
  164. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  165. package/dist/frontend/lowering/builtins/readline.d.ts +45 -13
  166. package/dist/frontend/lowering/builtins/readline.js +812 -47
  167. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  168. package/dist/frontend/lowering/builtins/workers.d.ts +4 -0
  169. package/dist/frontend/lowering/builtins/workers.js +58 -0
  170. package/dist/frontend/lowering/builtins/workers.js.map +1 -1
  171. package/dist/frontend/lowering/class-dynamic-dispatch.js +150 -8
  172. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  173. package/dist/frontend/lowering/class-protocols.d.ts +55 -0
  174. package/dist/frontend/lowering/class-protocols.js +735 -0
  175. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  176. package/dist/frontend/lowering/containers/array-from-async.d.ts +18 -0
  177. package/dist/frontend/lowering/containers/array-from-async.js +282 -0
  178. package/dist/frontend/lowering/containers/array-from-async.js.map +1 -0
  179. package/dist/frontend/lowering/containers/bytes.js +33 -12
  180. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  181. package/dist/frontend/lowering/containers/collection-grouping.js +2 -1
  182. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
  183. package/dist/frontend/lowering/containers/collection-methods.js +27 -23
  184. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  185. package/dist/frontend/lowering/devirtualize.js +20 -7
  186. package/dist/frontend/lowering/devirtualize.js.map +1 -1
  187. package/dist/frontend/lowering/divergences.js +188 -15
  188. package/dist/frontend/lowering/divergences.js.map +1 -1
  189. package/dist/frontend/lowering/lower-calls.js +129 -25
  190. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  191. package/dist/frontend/lowering/lower-classes.js +46 -1
  192. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  193. package/dist/frontend/lowering/lower-dgram.js +55 -15
  194. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  195. package/dist/frontend/lowering/lower-event-emitter.d.ts +9 -1
  196. package/dist/frontend/lowering/lower-event-emitter.js +88 -1
  197. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  198. package/dist/frontend/lowering/lower-exprs.d.ts +4 -0
  199. package/dist/frontend/lowering/lower-exprs.js +239 -71
  200. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  201. package/dist/frontend/lowering/lower-inspect.js +49 -3
  202. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  203. package/dist/frontend/lowering/lower-mock.d.ts +11 -1
  204. package/dist/frontend/lowering/lower-mock.js +377 -61
  205. package/dist/frontend/lowering/lower-mock.js.map +1 -1
  206. package/dist/frontend/lowering/lower-modules.js +1 -0
  207. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  208. package/dist/frontend/lowering/lower-server.d.ts +2 -1
  209. package/dist/frontend/lowering/lower-server.js +234 -21
  210. package/dist/frontend/lowering/lower-server.js.map +1 -1
  211. package/dist/frontend/lowering/lower-stmts.js +60 -13
  212. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  213. package/dist/frontend/lowering/lower-stream.d.ts +1 -3
  214. package/dist/frontend/lowering/lower-stream.js +325 -20
  215. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  216. package/dist/frontend/lowering/lower-test.js +147 -48
  217. package/dist/frontend/lowering/lower-test.js.map +1 -1
  218. package/dist/frontend/lowering/lowerer.d.ts +13 -1
  219. package/dist/frontend/lowering/lowerer.js +10 -2
  220. package/dist/frontend/lowering/lowerer.js.map +1 -1
  221. package/dist/frontend/lowering/null-prototype.d.ts +13 -0
  222. package/dist/frontend/lowering/null-prototype.js +33 -0
  223. package/dist/frontend/lowering/null-prototype.js.map +1 -0
  224. package/dist/frontend/lowering/record-sources.d.ts +15 -0
  225. package/dist/frontend/lowering/record-sources.js +46 -0
  226. package/dist/frontend/lowering/record-sources.js.map +1 -0
  227. package/dist/frontend/lowering/surfaces.d.ts +3 -3
  228. package/dist/frontend/lowering/surfaces.js +59 -5
  229. package/dist/frontend/lowering/surfaces.js.map +1 -1
  230. package/dist/frontend/mock-shapes.d.ts +5 -0
  231. package/dist/frontend/mock-shapes.js +27 -2
  232. package/dist/frontend/mock-shapes.js.map +1 -1
  233. package/dist/frontend/program.js +5 -4
  234. package/dist/frontend/program.js.map +1 -1
  235. package/dist/frontend/type-mapper.d.ts +3 -0
  236. package/dist/frontend/type-mapper.js +148 -4
  237. package/dist/frontend/type-mapper.js.map +1 -1
  238. package/dist/index.js +18 -8
  239. package/dist/index.js.map +1 -1
  240. package/dist/ir/analysis.d.ts +10 -0
  241. package/dist/ir/analysis.js +35 -0
  242. package/dist/ir/analysis.js.map +1 -1
  243. package/dist/ir/analysis.test.js +69 -1
  244. package/dist/ir/analysis.test.js.map +1 -1
  245. package/dist/ir/builtin-effects.js +72 -0
  246. package/dist/ir/builtin-effects.js.map +1 -1
  247. package/dist/ir/builtin-signatures.d.ts +1 -1
  248. package/dist/ir/builtin-signatures.js +258 -13
  249. package/dist/ir/builtin-signatures.js.map +1 -1
  250. package/dist/ir/capture-values.d.ts +107 -0
  251. package/dist/ir/capture-values.js +850 -0
  252. package/dist/ir/capture-values.js.map +1 -0
  253. package/dist/ir/capture-values.test.d.ts +1 -0
  254. package/dist/ir/capture-values.test.js +268 -0
  255. package/dist/ir/capture-values.test.js.map +1 -0
  256. package/dist/ir/field-values.d.ts +16 -0
  257. package/dist/ir/field-values.js +128 -0
  258. package/dist/ir/field-values.js.map +1 -0
  259. package/dist/ir/field-values.test.d.ts +1 -0
  260. package/dist/ir/field-values.test.js +160 -0
  261. package/dist/ir/field-values.test.js.map +1 -0
  262. package/dist/ir/final-fields.d.ts +4 -1
  263. package/dist/ir/final-fields.js +11 -3
  264. package/dist/ir/final-fields.js.map +1 -1
  265. package/dist/ir/function-references.test.js +2 -1
  266. package/dist/ir/function-references.test.js.map +1 -1
  267. package/dist/ir/init-only-globals.d.ts +16 -0
  268. package/dist/ir/init-only-globals.js +121 -0
  269. package/dist/ir/init-only-globals.js.map +1 -0
  270. package/dist/ir/init-only-globals.test.d.ts +1 -0
  271. package/dist/ir/init-only-globals.test.js +115 -0
  272. package/dist/ir/init-only-globals.test.js.map +1 -0
  273. package/dist/ir/initializer-bindings.d.ts +18 -1
  274. package/dist/ir/initializer-bindings.js +91 -1
  275. package/dist/ir/initializer-bindings.js.map +1 -1
  276. package/dist/ir/initializer-bindings.test.js +57 -2
  277. package/dist/ir/initializer-bindings.test.js.map +1 -1
  278. package/dist/ir/int32-slots.d.ts +22 -0
  279. package/dist/ir/int32-slots.js +398 -13
  280. package/dist/ir/int32-slots.js.map +1 -1
  281. package/dist/ir/int32-slots.test.js +119 -8
  282. package/dist/ir/int32-slots.test.js.map +1 -1
  283. package/dist/ir/integer-loop-facts.d.ts +27 -1
  284. package/dist/ir/integer-loop-facts.js +239 -7
  285. package/dist/ir/integer-loop-facts.js.map +1 -1
  286. package/dist/ir/integer-ranges.d.ts +8 -5
  287. package/dist/ir/integer-ranges.js +147 -59
  288. package/dist/ir/integer-ranges.js.map +1 -1
  289. package/dist/ir/integer-ranges.test.js +285 -7
  290. package/dist/ir/integer-ranges.test.js.map +1 -1
  291. package/dist/ir/ir.d.ts +22 -1
  292. package/dist/ir/ir.js +4 -0
  293. package/dist/ir/ir.js.map +1 -1
  294. package/dist/ir/property-bags.d.ts +14 -0
  295. package/dist/ir/property-bags.js +121 -0
  296. package/dist/ir/property-bags.js.map +1 -0
  297. package/dist/ir/receiver-readers.d.ts +21 -0
  298. package/dist/ir/receiver-readers.js +217 -0
  299. package/dist/ir/receiver-readers.js.map +1 -0
  300. package/dist/ir/runtime-features.d.ts +3 -1
  301. package/dist/ir/runtime-features.js +102 -7
  302. package/dist/ir/runtime-features.js.map +1 -1
  303. package/dist/ir/runtime-features.test.js +62 -0
  304. package/dist/ir/runtime-features.test.js.map +1 -1
  305. package/dist/ir/traverse.js +4 -0
  306. package/dist/ir/traverse.js.map +1 -1
  307. package/dist/ir/validate.js +71 -3
  308. package/dist/ir/validate.js.map +1 -1
  309. package/dist/ir/validate.test.js +59 -0
  310. package/dist/ir/validate.test.js.map +1 -1
  311. package/dist/library/int-infer.js +3 -0
  312. package/dist/library/int-infer.js.map +1 -1
  313. package/dist/library/ir-policy.js +5 -0
  314. package/dist/library/ir-policy.js.map +1 -1
  315. package/package.json +20 -20
  316. package/surface-manifest.json +57 -19
@@ -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, } 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";
3
3
  /** Preserve the closed names while giving every entry the same slot type. */
4
4
  function defineLibFnSignatures(signatures) {
5
5
  return signatures;
@@ -361,6 +361,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
361
361
  "stdin.onData": { argTypes: [null, BOOL], result: VOID },
362
362
  "stdin.onEnd": { argTypes: [{ kind: "func", params: [], ret: VOID }, BOOL], result: VOID },
363
363
  "stdin.onError": { argTypes: [null, BOOL], result: VOID },
364
+ /** process.stdin.on/once('keypress', cb) (scr_readline_tty.c): cb is the
365
+ * listener as a checked-dynamic function, called with (str, key). */
366
+ "stdin.onKeypress": { argTypes: [DYN, BOOL], result: VOID },
364
367
  /** The for-await chunk source over process.stdin: no args, result
365
368
  * Promise<Uint8Array> (+1). Fulfills with the next arrived chunk; the
366
369
  * EMPTY bytes value is the done sentinel (POSIX reads never deliver
@@ -912,6 +915,11 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
912
915
  * calls); the stats.* getters are pure reads on it. */
913
916
  "fs.statSync": { argTypes: [STRING], result: STATS_T },
914
917
  "fs.lstatSync": { argTypes: [STRING], result: STATS_T },
918
+ // statSync / lstatSync(path, { throwIfNoEntry }): arg 1 is the flag.
919
+ // Result is the interned `Stats | undefined` union (the runtime answers
920
+ // +1-or-NULL; the backend builds the arms).
921
+ "fs.statProbeSync": { argTypes: [STRING, BOOL], result: VOID },
922
+ "fs.lstatProbeSync": { argTypes: [STRING, BOOL], result: VOID },
915
923
  "fs.fstatSync": { argTypes: [F64], result: STATS_T },
916
924
  "fs.fchmodSync": { argTypes: [F64, F64], result: VOID },
917
925
  "fs.fsyncSync": { argTypes: [F64], result: VOID },
@@ -924,6 +932,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
924
932
  "fs.writevSync": { argTypes: [F64, arrayOf(BYTES_U8), F64], result: F64 },
925
933
  "fs.linkSync": { argTypes: [DYN, DYN], result: VOID },
926
934
  "fs.symlinkSync": { argTypes: [DYN, DYN, DYN], result: VOID },
935
+ /** fs.cpSync / fs/promises cp (scr_fs_cp.c): src, dest and options are
936
+ * dyn values the runtime validates in Node's order. */
937
+ "fs.cpSync": { argTypes: [DYN, DYN, DYN], result: VOID },
927
938
  "fs.readlinkSync": { argTypes: [DYN, DYN], result: DYN },
928
939
  "fs.statfsSync": { argTypes: [DYN, DYN], result: DYN },
929
940
  "fs.readlinkSyncStr": { argTypes: [DYN, DYN], result: STRING },
@@ -1047,6 +1058,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1047
1058
  "worker.root": { argTypes: [], result: F64 },
1048
1059
  "worker.data": { argTypes: [], result: DYN },
1049
1060
  "worker.parentPort": { argTypes: [], result: DYN },
1061
+ /** new MessageChannel() ({ port1, port2 }) and receiveMessageOnPort(port)
1062
+ * (scr_worker_events.c; the latter may throw). */
1063
+ "worker.channel": { argTypes: [], result: DYN },
1064
+ "worker.receiveMessageOnPort": { argTypes: [DYN], result: DYN },
1050
1065
  /** child_process.spawnSync (scr_child.c): posix_spawn + waitpid + piped
1051
1066
  * utf8 capture — cmd borrowed, args one borrowed string[] (the frontend
1052
1067
  * completes an omitted list to an empty literal), result an owned (+1)
@@ -1277,6 +1292,22 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1277
1292
  },
1278
1293
  "dgram.unref": { argTypes: [DGRAMSOCK_T], result: VOID },
1279
1294
  "dgram.ref": { argTypes: [DGRAMSOCK_T], result: VOID },
1295
+ /** The socket options (scr_dgram.c): the membership calls take the
1296
+ * interface and whether it was given. May-throw. */
1297
+ "dgram.setBroadcast": { argTypes: [DGRAMSOCK_T, BOOL], result: VOID },
1298
+ "dgram.setTTL": { argTypes: [DGRAMSOCK_T, F64], result: F64 },
1299
+ "dgram.setMulticastTTL": { argTypes: [DGRAMSOCK_T, F64], result: F64 },
1300
+ "dgram.setMulticastLoopback": { argTypes: [DGRAMSOCK_T, BOOL], result: BOOL },
1301
+ "dgram.setMulticastInterface": { argTypes: [DGRAMSOCK_T, STRING], result: VOID },
1302
+ "dgram.addMembership": { argTypes: [DGRAMSOCK_T, STRING, STRING, BOOL], result: VOID },
1303
+ "dgram.dropMembership": { argTypes: [DGRAMSOCK_T, STRING, STRING, BOOL], result: VOID },
1304
+ "dgram.getRecvBufferSize": { argTypes: [DGRAMSOCK_T], result: F64 },
1305
+ "dgram.getSendBufferSize": { argTypes: [DGRAMSOCK_T], result: F64 },
1306
+ "dgram.setRecvBufferSize": { argTypes: [DGRAMSOCK_T, F64], result: VOID },
1307
+ "dgram.setSendBufferSize": { argTypes: [DGRAMSOCK_T, F64], result: VOID },
1308
+ "dgram.getSendQueueSize": { argTypes: [DGRAMSOCK_T], result: F64 },
1309
+ "dgram.getSendQueueCount": { argTypes: [DGRAMSOCK_T], result: F64 },
1310
+ "dgram.disconnect": { argTypes: [DGRAMSOCK_T], result: VOID },
1280
1311
  "dgram.onMessage": { argTypes: [DGRAMSOCK_T, null, BOOL], result: VOID },
1281
1312
  "dgram.onError": { argTypes: [DGRAMSOCK_T, null, BOOL], result: VOID },
1282
1313
  "dgram.onListening": {
@@ -1315,18 +1346,30 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1315
1346
  * consumes. ctxSkip/ctxTodo mark the running test; ctxDiagnostic
1316
1347
  * queues an ℹ line; ctxName reads t.name. Every registration keeps
1317
1348
  * the loop-run emitted (usesTimers) so the runner fiber drains. */
1318
- "test.register": { argTypes: [STRING, F64, STRING, null, F64, STRING], result: VOID },
1319
- "test.registerEmpty": { argTypes: [STRING, F64, STRING, F64, STRING], result: VOID },
1349
+ // The trailing three are the { plan, timeout, concurrency } options (plan
1350
+ // -1 without one; timeout read under flag 8; concurrency read under flag
1351
+ // 16, -1 for true). An out-of-range timeout or concurrency throws.
1352
+ "test.register": {
1353
+ argTypes: [STRING, F64, STRING, null, F64, STRING, F64, F64, F64],
1354
+ result: VOID,
1355
+ },
1356
+ "test.registerEmpty": {
1357
+ argTypes: [STRING, F64, STRING, F64, STRING, F64, F64, F64],
1358
+ result: VOID,
1359
+ },
1320
1360
  "test.suite": {
1321
- argTypes: [STRING, F64, STRING, { kind: "func", params: [], ret: VOID }, STRING, F64],
1361
+ argTypes: [STRING, F64, STRING, { kind: "func", params: [], ret: VOID }, STRING, F64, F64],
1322
1362
  result: VOID,
1323
1363
  },
1324
1364
  "test.hook": { argTypes: [F64, null, F64], result: VOID },
1325
1365
  "test.sub": {
1326
- argTypes: [TESTCTX_T, STRING, F64, STRING, null, F64, STRING],
1366
+ argTypes: [TESTCTX_T, STRING, F64, STRING, null, F64, STRING, F64, F64, F64],
1327
1367
  result: { kind: "promise", inner: VOID },
1328
1368
  },
1329
- "test.subEmpty": { argTypes: [TESTCTX_T, STRING, F64, STRING, STRING], result: VOID },
1369
+ "test.subEmpty": {
1370
+ argTypes: [TESTCTX_T, STRING, F64, STRING, F64, STRING, F64, F64, F64],
1371
+ result: VOID,
1372
+ },
1330
1373
  "test.ctxSkip": { argTypes: [TESTCTX_T, STRING], result: VOID },
1331
1374
  "test.ctxTodo": { argTypes: [TESTCTX_T, STRING], result: VOID },
1332
1375
  "test.ctxDiagnostic": { argTypes: [TESTCTX_T, STRING], result: VOID },
@@ -1338,6 +1381,17 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1338
1381
  // t.plan(count), and the count of one t.assert call.
1339
1382
  "test.ctxPlan": { argTypes: [TESTCTX_T, F64], result: VOID },
1340
1383
  "test.ctxCount": { argTypes: [TESTCTX_T], result: VOID },
1384
+ // The mock trackers: the module's `mock` and t.mock keep each mock's
1385
+ // restore closure (moved) for restoreAll and reset.
1386
+ "test.mockTrack": { argTypes: [{ kind: "func", params: [], ret: VOID }], result: VOID },
1387
+ "test.mockRestoreAll": { argTypes: [], result: VOID },
1388
+ "test.mockReset": { argTypes: [], result: VOID },
1389
+ "test.ctxMockTrack": {
1390
+ argTypes: [TESTCTX_T, { kind: "func", params: [], ret: VOID }],
1391
+ result: VOID,
1392
+ },
1393
+ "test.ctxMockRestoreAll": { argTypes: [TESTCTX_T], result: VOID },
1394
+ "test.ctxMockReset": { argTypes: [TESTCTX_T], result: VOID },
1341
1395
  // node:http (scr_http.c over scr_net.c). The handler and the data
1342
1396
  // listeners are program-dependent closures (null slots, checked in the
1343
1397
  // libCall case); reqHeader's result is the interned string|undefined
@@ -1616,6 +1670,24 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1616
1670
  * accounting is real: over-limit requests defer their dial and queue.
1617
1671
  * MAY THROW. */
1618
1672
  "http.agentNew": { argTypes: [BOOL, BOOL, F64, F64, F64, F64, F64], result: DYN },
1673
+ /** http.request's `signal` option over the fresh request: an aborted
1674
+ * signal destroys it with Node's AbortError now, a later abort event
1675
+ * does the same. A falsy value is ignored; a non-signal throws
1676
+ * ERR_INVALID_ARG_TYPE. */
1677
+ "http.clientSignal": { argTypes: [HTTPCLIENTREQ_T, DYN], result: VOID },
1678
+ /** https.request's servername option: the TLS name sent and verified.
1679
+ * The "https." prefix keeps the TLS unit linked. */
1680
+ "https.clientServername": { argTypes: [HTTPCLIENTREQ_T, STRING], result: VOID },
1681
+ /** The maxHeaderSize option of createServer / http.request: Node's
1682
+ * validateInteger (ERR_OUT_OF_RANGE) then the header size bound.
1683
+ * MAY THROW. */
1684
+ "http.serverMaxHeaderSize": { argTypes: [NETSERVER_T, F64], result: VOID },
1685
+ "http.clientMaxHeaderSize": { argTypes: [HTTPCLIENTREQ_T, F64], result: VOID },
1686
+ /** req.destroy(err): err becomes the request's 'error'. */
1687
+ "http.clientDestroyError": {
1688
+ argTypes: [HTTPCLIENTREQ_T, { kind: "object", className: "%Error" }],
1689
+ result: VOID,
1690
+ },
1619
1691
  /** The agent-threaded request rows: the http.request/https.request
1620
1692
  * shape with a trailing `agent` dyn argument (an Agent handle, false —
1621
1693
  * the one-shot Connection: close dial — or null/undefined for the
@@ -1660,6 +1732,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1660
1732
  "net.sockResume": { argTypes: [NETSOCKET_T], result: NETSOCKET_T },
1661
1733
  "net.sockSetNoDelay": { argTypes: [NETSOCKET_T, BOOL], result: NETSOCKET_T },
1662
1734
  "net.sockDestroySoon": { argTypes: [NETSOCKET_T], result: VOID },
1735
+ /** RST close, answers the socket; throws ERR_INVALID_HANDLE_TYPE on TLS. */
1736
+ "net.sockResetAndDestroy": { argTypes: [NETSOCKET_T], result: NETSOCKET_T },
1737
+ /** socket.address(): { address, family, port } or {} as a dyn. */
1738
+ "net.sockAddress": { argTypes: [NETSOCKET_T], result: DYN },
1663
1739
  "net.sockBytesWritten": { argTypes: [NETSOCKET_T], result: F64 },
1664
1740
  /** remotePort (0), remoteFamily (1), localAddress (2), localPort (3),
1665
1741
  * localFamily (4): dyn values, undefined when unknown. */
@@ -1691,6 +1767,8 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1691
1767
  "net.isIPv6": { argTypes: [DYN], result: BOOL },
1692
1768
  "net.serverMaxConnectionsGet": { argTypes: [NETSERVER_T], result: DYN },
1693
1769
  "net.serverMaxConnectionsSet": { argTypes: [NETSERVER_T, DYN], result: VOID },
1770
+ "net.serverDropMaxConnectionGet": { argTypes: [NETSERVER_T], result: DYN },
1771
+ "net.serverDropMaxConnectionSet": { argTypes: [NETSERVER_T, DYN], result: VOID },
1694
1772
  "net.serverOnDrop": { argTypes: [NETSERVER_T, DYN, BOOL], result: VOID },
1695
1773
  "net.serverGetConnections": { argTypes: [NETSERVER_T, DYN], result: VOID },
1696
1774
  "net.sockReadable": { argTypes: [NETSOCKET_T], result: BOOL },
@@ -1768,6 +1846,12 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1768
1846
  * the 'session' registration (fires once with the serialized session —
1769
1847
  * a Buffer; the received-ticket event). */
1770
1848
  "tls.sockAuthorized": { argTypes: [NETSOCKET_T], result: BOOL },
1849
+ /** getProtocol() (string | null), getCipher() (CipherNameAndProtocol,
1850
+ * undefined before the handshake, null after close) and alpnProtocol
1851
+ * (string | false | null), as dyn values. */
1852
+ "tls.sockGetProtocol": { argTypes: [NETSOCKET_T], result: DYN },
1853
+ "tls.sockGetCipher": { argTypes: [NETSOCKET_T], result: DYN },
1854
+ "tls.sockAlpnProtocol": { argTypes: [NETSOCKET_T], result: DYN },
1771
1855
  "tls.sockAuthError": { argTypes: [NETSOCKET_T], result: VOID },
1772
1856
  "tls.sockOnSecureConnect": {
1773
1857
  argTypes: [NETSOCKET_T, { kind: "func", params: [], ret: VOID }, BOOL],
@@ -1838,6 +1922,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1838
1922
  * h2-only split). args are (cert, key) — PEM strings or Buffers. */
1839
1923
  "http2.createSecureServerH2": { argTypes: [null, null, BOOL], result: NETSERVER_T },
1840
1924
  "http.serverOnRequest": { argTypes: [NETSERVER_T, null, BOOL], result: VOID },
1925
+ /** server.on('checkContinue' | 'checkExpectation', (req, res)): the
1926
+ * 'request' listener shape; the last argument picks checkExpectation. */
1927
+ "http.serverOnCheck": { argTypes: [NETSERVER_T, null, BOOL, BOOL], result: VOID },
1841
1928
  "http2.serverOnSessionError": { argTypes: [NETSERVER_T, null, BOOL], result: VOID },
1842
1929
  /** The guarded absent-session compatibility call remains a no-op. */
1843
1930
  "http2.streamNoop": { argTypes: [], result: VOID },
@@ -2051,6 +2138,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2051
2138
  argTypes: [HTTPCLIENTREQ_T, { kind: "func", params: [], ret: VOID }, BOOL],
2052
2139
  result: VOID,
2053
2140
  },
2141
+ "http.clientOnContinue": {
2142
+ argTypes: [HTTPCLIENTREQ_T, { kind: "func", params: [], ret: VOID }, BOOL],
2143
+ result: VOID,
2144
+ },
2054
2145
  /** execFileSync/execSync as ONE entry (args: cmd, argv, shell, input,
2055
2146
  * cwd, hasEnv, envPairs, timeoutMs, stdoutMode, stderrMode — see
2056
2147
  * scr_runtime.h). Throws Node's exact errors: "Command failed: <cmd>"
@@ -2073,17 +2164,19 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2073
2164
  ],
2074
2165
  result: STRING,
2075
2166
  },
2076
- /** The promisified-execFile capture (args: cmd, argv, cwd, hasEnv,
2077
- * envPairs, timeoutMs): the same exec core in the async shape — both
2078
- * streams captured, no echo, Node's ASYNC messages on the throw paths
2167
+ /** The promisified-execFile/exec capture (args: cmd, argv, shell, cwd,
2168
+ * hasEnv, envPairs, timeoutMs; shell marks exec's /bin/sh -c argv, as
2169
+ * for execSync, so failures display the command string): the same exec
2170
+ * core in the async shape — both streams captured, no echo, Node's ASYNC messages on the throw paths
2079
2171
  * ("Command failed: <cmd>\n<stderr>" with the unconditional newline,
2080
2172
  * "spawn <file> ENOENT" with .code, timeouts reporting as ordinary
2081
2173
  * SIGTERM command failures — never ETIMEDOUT). Result reuses the
2082
2174
  * ScrSpawnRes container (+1; stdout/stderr strings, status unused).
2083
- * Called only from the frontend's interned %execFileAsync ASYNC helper,
2084
- * whose fiber turns the throw into the rejection. */
2175
+ * Called only from the frontend's interned %execFileAsync and
2176
+ * %execAsync ASYNC helpers, whose fiber turns the throw into the
2177
+ * rejection. */
2085
2178
  "cp.execCapture": {
2086
- argTypes: [STRING, arrayOf(STRING), STRING, BOOL, arrayOf(STRING), F64],
2179
+ argTypes: [STRING, arrayOf(STRING), BOOL, STRING, BOOL, arrayOf(STRING), F64],
2087
2180
  result: SPAWNRES_T,
2088
2181
  },
2089
2182
  /** child_process.spawn (scr_child.c + the scr_async.c loop): posix_spawnp
@@ -2306,6 +2399,15 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2306
2399
  * finalizes the handle and returns either a Buffer or encoded string. */
2307
2400
  "crypto.native": { argTypes: [], result: DYN },
2308
2401
  "crypto.hashNew": { argTypes: [STRING], result: CRYPTOHASH_T },
2402
+ /** The Transform a Hash or Hmac reads and writes as a stream (+1,
2403
+ * created on first use and owned by the value; scr_stream.c). The Piped
2404
+ * form, for pipe destinations and pipeline stages, also keeps the value
2405
+ * alive until the stream flushes or is destroyed. */
2406
+ "crypto.hashStream": { argTypes: [null], result: { kind: "object", className: "%Transform" } },
2407
+ "crypto.hashStreamPiped": {
2408
+ argTypes: [null],
2409
+ result: { kind: "object", className: "%Transform" },
2410
+ },
2309
2411
  /** createCipheriv (false) / createDecipheriv (true) over checked-dynamic
2310
2412
  * cipher, key, iv and options arguments (scr_cipher.c): a native
2311
2413
  * Cipheriv/Decipheriv handle whose methods dispatch through dynInvoke. */
@@ -2386,6 +2488,22 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2386
2488
  * opaque reference inputs retain explicit runtime refusals. */
2387
2489
  "buffer.fromDyn": { argTypes: [DYN, STRING], result: BYTES_U8 },
2388
2490
  "buffer.concat": { argTypes: [arrayOf(BYTES_U8)], result: BYTES_U8 },
2491
+ /** The pooled Buffer factories (Node's allocate/fromStringFast/
2492
+ * fromArrayLike): allocUnsafe, Buffer.from of strings, Uint8Arrays,
2493
+ * number[] and checked values, and concat return views into the
2494
+ * per-thread pool slab below Buffer.poolSize >>> 1 bytes. alloc and
2495
+ * allocUnsafeSlow never pool. The size forms validate like Node
2496
+ * (ERR_OUT_OF_RANGE). poolSize reads and writes Buffer.poolSize. */
2497
+ "buffer.alloc": { argTypes: [F64], result: BYTES_U8 },
2498
+ "buffer.allocUnsafe": { argTypes: [F64], result: BYTES_U8 },
2499
+ "buffer.allocUnsafeSlow": { argTypes: [F64], result: BYTES_U8 },
2500
+ "buffer.poolFromStr": { argTypes: [STRING, STRING], result: BYTES_U8 },
2501
+ "buffer.poolFromStrChecked": { argTypes: [STRING, STRING], result: BYTES_U8 },
2502
+ "buffer.poolFromBytes": { argTypes: [BYTES_U8], result: BYTES_U8 },
2503
+ "buffer.poolFromArray": { argTypes: [arrayOf(F64)], result: BYTES_U8 },
2504
+ "buffer.poolFromDyn": { argTypes: [DYN, STRING], result: BYTES_U8 },
2505
+ "buffer.poolSize": { argTypes: [], result: F64 },
2506
+ "buffer.setPoolSize": { argTypes: [F64], result: VOID },
2389
2507
  /** Buffer.byteLength(string, enc) — enc a NORMALIZED literal like
2390
2508
  * fromStr's — and Buffer.isEncoding(name) over a runtime string
2391
2509
  * (case-insensitive against Node's alias set). Pure; never throw. */
@@ -2439,6 +2557,32 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2439
2557
  "fsp.lchmodChk": { argTypes: [DYN, DYN], result: { kind: "promise", inner: VOID } },
2440
2558
  "fs.readChk": { argTypes: [DYN, DYN, DYN, DYN, DYN, STRING], result: VOID },
2441
2559
  "fs.streamOptsChk": { argTypes: [DYN, DYN, STRING], result: VOID },
2560
+ /** fs.ReadStream / fs.WriteStream (scr_fs_stream.c): the constructors
2561
+ * take the path and options as dyn values and throw Node's option
2562
+ * errors; the members read bytesRead/bytesWritten, pending and the path
2563
+ * value, and close() / close(cb) (a `() => void` callback). */
2564
+ "fs.createReadStream": {
2565
+ argTypes: [DYN, DYN],
2566
+ result: { kind: "object", className: "%Readable" },
2567
+ },
2568
+ "fs.createWriteStream": {
2569
+ argTypes: [DYN, DYN],
2570
+ result: { kind: "object", className: "%Writable" },
2571
+ },
2572
+ "fs.fsStreamBytes": { argTypes: [null], result: F64 },
2573
+ "fs.fsStreamPending": { argTypes: [null], result: BOOL },
2574
+ "fs.fsStreamPath": { argTypes: [null], result: DYN },
2575
+ "fs.fsStreamPropDyn": { argTypes: [null, STRING], result: DYN },
2576
+ "fileHandle.createReadStream": {
2577
+ argTypes: [FILEHANDLE_T, DYN],
2578
+ result: { kind: "object", className: "%Readable" },
2579
+ },
2580
+ "fileHandle.createWriteStream": {
2581
+ argTypes: [FILEHANDLE_T, DYN],
2582
+ result: { kind: "object", className: "%Writable" },
2583
+ },
2584
+ "fs.fsStreamClose": { argTypes: [null], result: VOID },
2585
+ "fs.fsStreamCloseCb": { argTypes: [null, funcOf([], VOID)], result: VOID },
2442
2586
  /** The compiler-resolved ERR_INVALID_ARG_TYPE throw with a RUNTIME-
2443
2587
  * rendered Received tail: args [argname, "of type ..." clause, the
2444
2588
  * offending dyn value]. ALWAYS THROWS; polymorphic result (the
@@ -2491,6 +2635,20 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2491
2635
  "zlib.gunzipCb": { argTypes: [BYTES_U8, null], result: VOID },
2492
2636
  "zlib.unzipCb": { argTypes: [BYTES_U8, null], result: VOID },
2493
2637
  "zlib.crc32": { argTypes: [BYTES_U8, F64], result: F64 },
2638
+ /** The one-shot forms with an options value: node_zlib_mode, the input,
2639
+ * the options (validated at runtime with Node's ladder). The Cb form
2640
+ * takes the program-shaped (Error | null, Buffer) callback, which moves. */
2641
+ "zlib.syncOpts": { argTypes: [F64, BYTES_U8, DYN], result: BYTES_U8 },
2642
+ "zlib.cbOpts": { argTypes: [F64, BYTES_U8, DYN, null], result: VOID },
2643
+ /** The checked-dynamic input twins (the JS lane's untyped data). */
2644
+ "zlib.syncOptsDyn": { argTypes: [F64, DYN, DYN], result: BYTES_U8 },
2645
+ "zlib.cbOptsDyn": { argTypes: [F64, DYN, DYN, null], result: VOID },
2646
+ /** util.promisify over the callback one-shots: [mode, data, options]
2647
+ * like zlib.cbOpts → a promise the worker-pool run settles with the
2648
+ * Buffer or the callback form's Error. An options or input error rejects
2649
+ * it; never throws. The Dyn twin takes the JS lane's untyped data. */
2650
+ "zlib.promise": { argTypes: [F64, BYTES_U8, DYN], result: { kind: "promise", inner: BYTES_U8 } },
2651
+ "zlib.promiseDyn": { argTypes: [F64, DYN, DYN], result: { kind: "promise", inner: BYTES_U8 } },
2494
2652
  /** The stream classes (scr_zlib_stream.c, linked with the stream unit):
2495
2653
  * streamNew takes Node's node_zlib_mode number and the options value
2496
2654
  * (undefined when absent), validates it with Node's ladder, and answers
@@ -2547,6 +2705,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2547
2705
  "fsp.rmdir": { argTypes: [STRING], result: { kind: "promise", inner: VOID } },
2548
2706
  "fsp.link": { argTypes: [DYN, DYN], result: { kind: "promise", inner: VOID } },
2549
2707
  "fsp.symlink": { argTypes: [DYN, DYN, DYN], result: { kind: "promise", inner: VOID } },
2708
+ "fsp.cp": { argTypes: [DYN, DYN, DYN], result: { kind: "promise", inner: VOID } },
2550
2709
  "fsp.readlink": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
2551
2710
  "fsp.statfs": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
2552
2711
  "fsp.readlinkStr": { argTypes: [DYN, DYN], result: { kind: "promise", inner: STRING } },
@@ -2890,6 +3049,13 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2890
3049
  },
2891
3050
  "error.aggregateSetErrors": { argTypes: [null, DYN], result: VOID },
2892
3051
  "error.aggregateErrors": { argTypes: [null], result: DYN },
3052
+ /** `new SuppressedError(error, suppressed, message?)` (scr_json.c): all
3053
+ * three dyn and borrowed; the message conversion can throw. Returns an
3054
+ * owned %SuppressedError. */
3055
+ "error.newSuppressed": {
3056
+ argTypes: [DYN, DYN, DYN],
3057
+ result: { kind: "object", className: "%SuppressedError" },
3058
+ },
2893
3059
  /** `d instanceof TypeError` (and the other BUILTIN error classes) on a
2894
3060
  * checked-dynamic value (scr_json.c): the from_error cache holds the
2895
3061
  * dyn↔error identity edge, so the test resolves the runtime error and
@@ -2979,6 +3145,12 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2979
3145
  "dyn.packPushSpreadIter": { argTypes: [DYN, DYN], result: VOID },
2980
3146
  "dyn.reflectApply": { argTypes: [DYN, DYN, DYN], result: DYN },
2981
3147
  "dyn.reflectGet": { argTypes: [DYN, DYN, DYN], result: DYN },
3148
+ /** `using` / `await using` with a dyn value (scr_json.c): usingMethod
3149
+ * runs the declaration's checks and answers what usingDispose calls at
3150
+ * scope exit (undefined for a null or undefined value). The bool selects
3151
+ * `await using`. Both throw Node's TypeErrors or the method's error. */
3152
+ "dyn.usingMethod": { argTypes: [DYN, BOOL], result: DYN },
3153
+ "dyn.usingDispose": { argTypes: [DYN, DYN], result: DYN },
2982
3154
  "dyn.reflectSet": { argTypes: [DYN, DYN, DYN, DYN], result: BOOL },
2983
3155
  "dyn.reflectDefine": { argTypes: [DYN, DYN, DYN], result: BOOL },
2984
3156
  "dyn.abstractEq": { argTypes: [DYN, DYN], result: BOOL },
@@ -3032,6 +3204,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3032
3204
  * lowered directly (the list's values need no dyn representation to
3033
3205
  * fail). */
3034
3206
  "dyn.cloneTransferFail": { argTypes: [], result: DYN },
3207
+ /** The same refusal given the transfer list's first member, an
3208
+ * ArrayBuffer: a Buffer pool slab gets Node's untransferable message. */
3209
+ "dyn.cloneTransferFailWith": { argTypes: [DYN], result: DYN },
3035
3210
  /** `new RegExp(pattern, flags?)` (scr_regex.c): a heap regex over the
3036
3211
  * same libregexp engine the literals use. The pattern compiles EAGERLY
3037
3212
  * so an invalid pattern (or an unknown flag letter) throws Node's
@@ -3295,11 +3470,16 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3295
3470
  * error. The Dyn twin boxes chunks by runtime tag (the JS lane).
3296
3471
  * readable.fromArr is Readable.from over a typed array, string or
3297
3472
  * Buffer: [array, SCR_FROM_* flags, highWaterMark]. readable.fromDyn is
3298
- * the JS lane's [source, options]. */
3473
+ * Readable.from over a checked-dynamic source: [source, options].
3474
+ * readable.fromIter is Readable.from over a class iterator, already
3475
+ * opened: [checked-dynamic { next } object, flags, highWaterMark];
3476
+ * readable.fromAsyncIter is the async class iterator's twin. */
3299
3477
  "readable.nextChunk": { argTypes: [null], result: VOID },
3300
3478
  "readable.nextChunkDyn": { argTypes: [null], result: VOID },
3301
3479
  "readable.fromArr": { argTypes: [null, F64, F64], result: VOID },
3302
3480
  "readable.fromDyn": { argTypes: [DYN, DYN], result: VOID },
3481
+ "readable.fromIter": { argTypes: [DYN, F64, F64], result: VOID },
3482
+ "readable.fromAsyncIter": { argTypes: [DYN, F64, F64], result: VOID },
3303
3483
  /** Readable.from over a compiled generator: [generator, next, return,
3304
3484
  * throw, flags, highWaterMark] (sync) or [generator, next, read,
3305
3485
  * return, throw, flags, highWaterMark] (async), the helpers being the
@@ -3518,6 +3698,11 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3518
3698
  "insp.seenPush": { argTypes: [null], result: VOID },
3519
3699
  "insp.refWrap": { argTypes: [null, STRING], result: STRING },
3520
3700
  "insp.circular": { argTypes: [F64], result: STRING },
3701
+ /* Whether a closed declared-field record kept the undeclared properties
3702
+ * of its checked source (scr_record_source_note): reflective surfaces
3703
+ * (inspect, Object.keys/values/entries) then answer through its live
3704
+ * checked view. The receiver is any such record type. Never throws. */
3705
+ "record.sourceHas": { argTypes: [null], result: BOOL },
3521
3706
  "insp.key": { argTypes: [STRING], result: STRING },
3522
3707
  "insp.moreItems": { argTypes: [F64], result: STRING },
3523
3708
  "insp.end": { argTypes: [STRING, STRING, STRING, F64, BOOL, BOOL], result: STRING },
@@ -3573,13 +3758,69 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3573
3758
  "rl.pause": { argTypes: [F64], result: VOID },
3574
3759
  "rl.resume": { argTypes: [F64], result: VOID },
3575
3760
  "rl.prompt": { argTypes: [F64], result: VOID },
3761
+ /** prompt(preserveCursor): [handle, preserveCursor] */
3762
+ "rl.promptWith": { argTypes: [F64, BOOL], result: VOID },
3576
3763
  "rl.setPrompt": { argTypes: [F64, STRING], result: VOID },
3577
3764
  "rl.getPrompt": { argTypes: [F64], result: STRING },
3578
3765
  "rl.write": { argTypes: [F64, STRING], result: VOID },
3766
+ /** write(data, key): [handle, hasData, data, hasKey, hasName, name,
3767
+ * ctrl, meta, shift] */
3768
+ "rl.writeKey": {
3769
+ argTypes: [F64, BOOL, STRING, BOOL, BOOL, STRING, BOOL, BOOL, BOOL],
3770
+ result: VOID,
3771
+ },
3579
3772
  "rl.on": { argTypes: [F64, F64, null, BOOL], result: VOID },
3580
3773
  "rl.iterOpen": { argTypes: [F64], result: VOID },
3581
3774
  "rl.iterNext": { argTypes: [F64], result: { kind: "promise", inner: DYN } },
3582
3775
  "rl.iterReturn": { argTypes: [F64], result: VOID },
3776
+ /** createInterface's history and editing options (scr_rl_check_options:
3777
+ * [flags, tabSize, escapeCodeTimeout, historySize], may throw;
3778
+ * rl.setOptions: [handle, flags, historySize, removeHistoryDuplicates,
3779
+ * tabSize, escapeCodeTimeout]; rl.setHistory: [handle, history]) and
3780
+ * the member reads (rl.history answers the array, rl.numProp the
3781
+ * numeric member by number). */
3782
+ "rl.checkOptions": { argTypes: [F64, F64, F64, F64], result: VOID },
3783
+ "rl.checkCompleter": { argTypes: [DYN], result: VOID },
3784
+ "rl.setOptions": { argTypes: [F64, F64, F64, BOOL, F64, F64], result: VOID },
3785
+ "rl.setHistory": { argTypes: [F64, arrayOf(STRING)], result: VOID },
3786
+ "rl.history": { argTypes: [F64], result: arrayOf(STRING) },
3787
+ "rl.numProp": { argTypes: [F64, F64], result: F64 },
3788
+ /** Terminal mode (scr_readline_tty.c): rl.terminal: [handle, mode (0
3789
+ * the option's value, 2 output.isTTY of process.stdout), terminal,
3790
+ * completer (undefined when absent), readline/promises], emitted with
3791
+ * scr_insp_dyn when there is a completer; the line, terminal and cursor
3792
+ * members. */
3793
+ "rl.terminal": { argTypes: [F64, F64, BOOL, DYN, BOOL], result: VOID },
3794
+ "rl.line": { argTypes: [F64], result: STRING },
3795
+ "rl.isTerminal": { argTypes: [F64], result: BOOL },
3796
+ "rl.cursor": { argTypes: [F64], result: F64 },
3797
+ /** readline.cursorTo / moveCursor / clearLine / clearScreenDown: rl.seq
3798
+ * [kind (0-3), the first and second numbers, whether the second is
3799
+ * given] answers the data to write after the argument checks (may
3800
+ * throw); rl.moves [dx, dy] says whether moveCursor writes. */
3801
+ "rl.seq": { argTypes: [F64, F64, F64, BOOL], result: STRING },
3802
+ "rl.moves": { argTypes: [F64, F64], result: BOOL },
3803
+ /** getCursorPos() (scr_readline_tty.c, linked through the regex unit
3804
+ * like rl.terminal): [handle, 0 rows | 1 cols] */
3805
+ "rl.cursorPos": { argTypes: [F64, F64], result: F64 },
3806
+ /** readline.emitKeypressEvents (scr_readline_tty.c): rl.keypressStdin
3807
+ * [interface (0: none), escapeCodeTimeout (NaN: the interface's or
3808
+ * 500)], rl.keypressStream [stream, interface, timeout]. */
3809
+ "rl.keypressStdin": { argTypes: [F64, F64], result: VOID },
3810
+ "rl.keypressStream": { argTypes: [null, F64, F64], result: VOID },
3811
+ /** readline/promises Readline over an f64 handle: rl.uiOpen [fd (1
3812
+ * stdout, 2 stderr), autoCommit], rl.uiOpenStream [stream, autoCommit]
3813
+ * (isWritable, may throw); the actions take [handle, ...numbers] (the
3814
+ * checks may throw; cursorTo: [handle, x, whether y is given, y]);
3815
+ * rl.uiCommit answers a promise<void>. */
3816
+ "rl.uiOpen": { argTypes: [F64, BOOL], result: F64 },
3817
+ "rl.uiOpenStream": { argTypes: [null, BOOL], result: F64 },
3818
+ "rl.uiCursorTo": { argTypes: [F64, F64, BOOL, F64], result: VOID },
3819
+ "rl.uiMoveCursor": { argTypes: [F64, F64, F64], result: VOID },
3820
+ "rl.uiClearLine": { argTypes: [F64, F64], result: VOID },
3821
+ "rl.uiClearScreenDown": { argTypes: [F64], result: VOID },
3822
+ "rl.uiRollback": { argTypes: [F64], result: VOID },
3823
+ "rl.uiCommit": { argTypes: [F64], result: { kind: "promise", inner: VOID } },
3583
3824
  /** node:timers/promises — the promisified pair (scr_async.c, beside
3584
3825
  * the timer heap they ride): tp.setTimeout: [ms] → a pending void
3585
3826
  * promise a one-shot heap timer fulfills (the loop's timer phase, FIFO
@@ -3588,6 +3829,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3588
3829
  * turns, Node's check phase). Neither throws. */
3589
3830
  "tp.setTimeout": { argTypes: [F64], result: { kind: "promise", inner: VOID } },
3590
3831
  "tp.setImmediate": { argTypes: [], result: { kind: "promise", inner: VOID } },
3832
+ /** events.once (scr_events_emitter.c): [emitter, name, boxer,
3833
+ * errorBoxer, listenForError] → a pending promise of any[]; the boxers
3834
+ * turn the event's and the 'error' tuple into that array. */
3835
+ "events.once": { argTypes: [null, STRING, null, null, BOOL], result: VOID },
3591
3836
  /** The resolve-value forms: [ms?, value, ref] → a pending promise of the
3592
3837
  * value's type that copies the borrowed already-resolved `value` promise
3593
3838
  * when the timer (or immediate) fires; ref false unrefs it. The result