@scriptc/compiler 0.3.4 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +131 -10
  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 +40 -6
  17. package/dist/backend/llvm/dyn.js.map +1 -1
  18. package/dist/backend/llvm/emitter.d.ts +75 -1
  19. package/dist/backend/llvm/emitter.js +408 -38
  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-primitives.js +9 -1
  32. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  33. package/dist/backend/llvm/expr-stream-bridges.js +4 -0
  34. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  35. package/dist/backend/llvm/integer-clones.d.ts +103 -0
  36. package/dist/backend/llvm/integer-clones.js +1336 -0
  37. package/dist/backend/llvm/integer-clones.js.map +1 -0
  38. package/dist/backend/llvm/integer-clones.test.d.ts +1 -0
  39. package/dist/backend/llvm/integer-clones.test.js +219 -0
  40. package/dist/backend/llvm/integer-clones.test.js.map +1 -0
  41. package/dist/backend/llvm/lib-datagram.js +14 -0
  42. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  43. package/dist/backend/llvm/lib-dispatch.js +4 -0
  44. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  45. package/dist/backend/llvm/lib-process.js +24 -0
  46. package/dist/backend/llvm/lib-process.js.map +1 -1
  47. package/dist/backend/llvm/lib-shared.js +34 -2
  48. package/dist/backend/llvm/lib-shared.js.map +1 -1
  49. package/dist/backend/llvm/lib-tls.js +6 -0
  50. package/dist/backend/llvm/lib-tls.js.map +1 -1
  51. package/dist/backend/llvm/local-array-reads.js +1 -1
  52. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  53. package/dist/backend/llvm/map-entry-fusion.d.ts +28 -0
  54. package/dist/backend/llvm/map-entry-fusion.js +233 -0
  55. package/dist/backend/llvm/map-entry-fusion.js.map +1 -0
  56. package/dist/backend/llvm/map-entry-fusion.test.d.ts +1 -0
  57. package/dist/backend/llvm/map-entry-fusion.test.js +183 -0
  58. package/dist/backend/llvm/map-entry-fusion.test.js.map +1 -0
  59. package/dist/backend/llvm/map-number-lookup.d.ts +2 -0
  60. package/dist/backend/llvm/map-number-lookup.js +1 -1
  61. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  62. package/dist/backend/llvm/map-number-lookup.test.js +10 -11
  63. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  64. package/dist/backend/llvm/map-read-lifetimes.d.ts +2 -0
  65. package/dist/backend/llvm/map-read-lifetimes.js +3 -0
  66. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  67. package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
  68. package/dist/backend/llvm/publish.d.ts +16 -0
  69. package/dist/backend/llvm/publish.js +81 -10
  70. package/dist/backend/llvm/publish.js.map +1 -1
  71. package/dist/backend/llvm/publish.test.d.ts +1 -0
  72. package/dist/backend/llvm/publish.test.js +94 -0
  73. package/dist/backend/llvm/publish.test.js.map +1 -0
  74. package/dist/backend/llvm/record-results.js +76 -2
  75. package/dist/backend/llvm/record-results.js.map +1 -1
  76. package/dist/backend/llvm/record-sources.d.ts +7 -0
  77. package/dist/backend/llvm/record-sources.js +14 -0
  78. package/dist/backend/llvm/record-sources.js.map +1 -0
  79. package/dist/backend/llvm/shapes.d.ts +9 -3
  80. package/dist/backend/llvm/shapes.js +18 -14
  81. package/dist/backend/llvm/shapes.js.map +1 -1
  82. package/dist/backend/llvm/shapes.test.js +5 -3
  83. package/dist/backend/llvm/shapes.test.js.map +1 -1
  84. package/dist/backend/llvm/string-lifetimes.test.js +75 -1
  85. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  86. package/dist/backend/llvm/walkers.d.ts +17 -0
  87. package/dist/backend/llvm/walkers.js +123 -0
  88. package/dist/backend/llvm/walkers.js.map +1 -1
  89. package/dist/backend/native/contracts.d.ts +2 -1
  90. package/dist/backend/native/executable.js +3 -1
  91. package/dist/backend/native/executable.js.map +1 -1
  92. package/dist/backend/runtime-abi.d.ts +2 -2
  93. package/dist/backend/runtime-abi.js +2 -2
  94. package/dist/backend/runtime-pack-targets.test.js +1 -1
  95. package/dist/backend/runtime-pack.test.js +1 -1
  96. package/dist/frontend/lowering/builtin-calls.js +3 -0
  97. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  98. package/dist/frontend/lowering/builtins/callable-aliases.js +54 -8
  99. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
  100. package/dist/frontend/lowering/builtins/child-process-async.d.ts +8 -6
  101. package/dist/frontend/lowering/builtins/child-process-async.js +45 -29
  102. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
  103. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +2 -0
  104. package/dist/frontend/lowering/builtins/filesystem-calls.js +5 -0
  105. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  106. package/dist/frontend/lowering/builtins/filesystem.js +60 -0
  107. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  108. package/dist/frontend/lowering/builtins/fs-streams.d.ts +26 -0
  109. package/dist/frontend/lowering/builtins/fs-streams.js +131 -0
  110. package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -0
  111. package/dist/frontend/lowering/builtins/module-calls.js +5 -1
  112. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  113. package/dist/frontend/lowering/class-dynamic-dispatch.js +150 -8
  114. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  115. package/dist/frontend/lowering/containers/bytes.js +33 -12
  116. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  117. package/dist/frontend/lowering/devirtualize.js +20 -7
  118. package/dist/frontend/lowering/devirtualize.js.map +1 -1
  119. package/dist/frontend/lowering/lower-calls.js +58 -3
  120. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  121. package/dist/frontend/lowering/lower-classes.js +7 -0
  122. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  123. package/dist/frontend/lowering/lower-dgram.js +55 -15
  124. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  125. package/dist/frontend/lowering/lower-event-emitter.d.ts +9 -1
  126. package/dist/frontend/lowering/lower-event-emitter.js +78 -0
  127. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  128. package/dist/frontend/lowering/lower-exprs.d.ts +4 -0
  129. package/dist/frontend/lowering/lower-exprs.js +132 -58
  130. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  131. package/dist/frontend/lowering/lower-inspect.js +26 -0
  132. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  133. package/dist/frontend/lowering/lower-server.d.ts +2 -1
  134. package/dist/frontend/lowering/lower-server.js +73 -5
  135. package/dist/frontend/lowering/lower-server.js.map +1 -1
  136. package/dist/frontend/lowering/lower-stmts.js +12 -6
  137. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  138. package/dist/frontend/lowering/lower-stream.js +8 -0
  139. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  140. package/dist/frontend/lowering/lowerer.d.ts +3 -1
  141. package/dist/frontend/lowering/lowerer.js +2 -2
  142. package/dist/frontend/lowering/lowerer.js.map +1 -1
  143. package/dist/frontend/lowering/record-sources.d.ts +15 -0
  144. package/dist/frontend/lowering/record-sources.js +46 -0
  145. package/dist/frontend/lowering/record-sources.js.map +1 -0
  146. package/dist/frontend/lowering/surfaces.js +33 -1
  147. package/dist/frontend/lowering/surfaces.js.map +1 -1
  148. package/dist/frontend/type-mapper.d.ts +3 -0
  149. package/dist/frontend/type-mapper.js +53 -0
  150. package/dist/frontend/type-mapper.js.map +1 -1
  151. package/dist/ir/analysis.d.ts +10 -0
  152. package/dist/ir/analysis.js +35 -0
  153. package/dist/ir/analysis.js.map +1 -1
  154. package/dist/ir/analysis.test.js +69 -1
  155. package/dist/ir/analysis.test.js.map +1 -1
  156. package/dist/ir/builtin-effects.js +36 -0
  157. package/dist/ir/builtin-effects.js.map +1 -1
  158. package/dist/ir/builtin-signatures.d.ts +1 -1
  159. package/dist/ir/builtin-signatures.js +91 -7
  160. package/dist/ir/builtin-signatures.js.map +1 -1
  161. package/dist/ir/capture-values.d.ts +107 -0
  162. package/dist/ir/capture-values.js +850 -0
  163. package/dist/ir/capture-values.js.map +1 -0
  164. package/dist/ir/capture-values.test.d.ts +1 -0
  165. package/dist/ir/capture-values.test.js +268 -0
  166. package/dist/ir/capture-values.test.js.map +1 -0
  167. package/dist/ir/field-values.d.ts +16 -0
  168. package/dist/ir/field-values.js +128 -0
  169. package/dist/ir/field-values.js.map +1 -0
  170. package/dist/ir/field-values.test.d.ts +1 -0
  171. package/dist/ir/field-values.test.js +160 -0
  172. package/dist/ir/field-values.test.js.map +1 -0
  173. package/dist/ir/final-fields.d.ts +4 -1
  174. package/dist/ir/final-fields.js +11 -3
  175. package/dist/ir/final-fields.js.map +1 -1
  176. package/dist/ir/function-references.test.js +1 -1
  177. package/dist/ir/function-references.test.js.map +1 -1
  178. package/dist/ir/init-only-globals.d.ts +16 -0
  179. package/dist/ir/init-only-globals.js +121 -0
  180. package/dist/ir/init-only-globals.js.map +1 -0
  181. package/dist/ir/init-only-globals.test.d.ts +1 -0
  182. package/dist/ir/init-only-globals.test.js +115 -0
  183. package/dist/ir/init-only-globals.test.js.map +1 -0
  184. package/dist/ir/initializer-bindings.d.ts +18 -1
  185. package/dist/ir/initializer-bindings.js +91 -1
  186. package/dist/ir/initializer-bindings.js.map +1 -1
  187. package/dist/ir/initializer-bindings.test.js +57 -2
  188. package/dist/ir/initializer-bindings.test.js.map +1 -1
  189. package/dist/ir/int32-slots.d.ts +22 -0
  190. package/dist/ir/int32-slots.js +376 -13
  191. package/dist/ir/int32-slots.js.map +1 -1
  192. package/dist/ir/int32-slots.test.js +91 -8
  193. package/dist/ir/int32-slots.test.js.map +1 -1
  194. package/dist/ir/integer-loop-facts.d.ts +19 -1
  195. package/dist/ir/integer-loop-facts.js +155 -7
  196. package/dist/ir/integer-loop-facts.js.map +1 -1
  197. package/dist/ir/integer-ranges.d.ts +8 -5
  198. package/dist/ir/integer-ranges.js +147 -55
  199. package/dist/ir/integer-ranges.js.map +1 -1
  200. package/dist/ir/integer-ranges.test.js +225 -7
  201. package/dist/ir/integer-ranges.test.js.map +1 -1
  202. package/dist/ir/ir.d.ts +9 -1
  203. package/dist/ir/ir.js.map +1 -1
  204. package/dist/ir/property-bags.d.ts +14 -0
  205. package/dist/ir/property-bags.js +121 -0
  206. package/dist/ir/property-bags.js.map +1 -0
  207. package/dist/ir/receiver-readers.d.ts +21 -0
  208. package/dist/ir/receiver-readers.js +217 -0
  209. package/dist/ir/receiver-readers.js.map +1 -0
  210. package/dist/ir/runtime-features.js +6 -1
  211. package/dist/ir/runtime-features.js.map +1 -1
  212. package/dist/ir/validate.js +26 -0
  213. package/dist/ir/validate.js.map +1 -1
  214. package/dist/ir/validate.test.js +21 -0
  215. package/dist/ir/validate.test.js.map +1 -1
  216. package/dist/library/int-infer.js +3 -0
  217. package/dist/library/int-infer.js.map +1 -1
  218. package/package.json +20 -20
  219. package/surface-manifest.json +28 -2
@@ -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;
@@ -1277,6 +1277,22 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1277
1277
  },
1278
1278
  "dgram.unref": { argTypes: [DGRAMSOCK_T], result: VOID },
1279
1279
  "dgram.ref": { argTypes: [DGRAMSOCK_T], result: VOID },
1280
+ /** The socket options (scr_dgram.c): the membership calls take the
1281
+ * interface and whether it was given. May-throw. */
1282
+ "dgram.setBroadcast": { argTypes: [DGRAMSOCK_T, BOOL], result: VOID },
1283
+ "dgram.setTTL": { argTypes: [DGRAMSOCK_T, F64], result: F64 },
1284
+ "dgram.setMulticastTTL": { argTypes: [DGRAMSOCK_T, F64], result: F64 },
1285
+ "dgram.setMulticastLoopback": { argTypes: [DGRAMSOCK_T, BOOL], result: BOOL },
1286
+ "dgram.setMulticastInterface": { argTypes: [DGRAMSOCK_T, STRING], result: VOID },
1287
+ "dgram.addMembership": { argTypes: [DGRAMSOCK_T, STRING, STRING, BOOL], result: VOID },
1288
+ "dgram.dropMembership": { argTypes: [DGRAMSOCK_T, STRING, STRING, BOOL], result: VOID },
1289
+ "dgram.getRecvBufferSize": { argTypes: [DGRAMSOCK_T], result: F64 },
1290
+ "dgram.getSendBufferSize": { argTypes: [DGRAMSOCK_T], result: F64 },
1291
+ "dgram.setRecvBufferSize": { argTypes: [DGRAMSOCK_T, F64], result: VOID },
1292
+ "dgram.setSendBufferSize": { argTypes: [DGRAMSOCK_T, F64], result: VOID },
1293
+ "dgram.getSendQueueSize": { argTypes: [DGRAMSOCK_T], result: F64 },
1294
+ "dgram.getSendQueueCount": { argTypes: [DGRAMSOCK_T], result: F64 },
1295
+ "dgram.disconnect": { argTypes: [DGRAMSOCK_T], result: VOID },
1280
1296
  "dgram.onMessage": { argTypes: [DGRAMSOCK_T, null, BOOL], result: VOID },
1281
1297
  "dgram.onError": { argTypes: [DGRAMSOCK_T, null, BOOL], result: VOID },
1282
1298
  "dgram.onListening": {
@@ -1660,6 +1676,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1660
1676
  "net.sockResume": { argTypes: [NETSOCKET_T], result: NETSOCKET_T },
1661
1677
  "net.sockSetNoDelay": { argTypes: [NETSOCKET_T, BOOL], result: NETSOCKET_T },
1662
1678
  "net.sockDestroySoon": { argTypes: [NETSOCKET_T], result: VOID },
1679
+ /** RST close, answers the socket; throws ERR_INVALID_HANDLE_TYPE on TLS. */
1680
+ "net.sockResetAndDestroy": { argTypes: [NETSOCKET_T], result: NETSOCKET_T },
1681
+ /** socket.address(): { address, family, port } or {} as a dyn. */
1682
+ "net.sockAddress": { argTypes: [NETSOCKET_T], result: DYN },
1663
1683
  "net.sockBytesWritten": { argTypes: [NETSOCKET_T], result: F64 },
1664
1684
  /** remotePort (0), remoteFamily (1), localAddress (2), localPort (3),
1665
1685
  * localFamily (4): dyn values, undefined when unknown. */
@@ -1691,6 +1711,8 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1691
1711
  "net.isIPv6": { argTypes: [DYN], result: BOOL },
1692
1712
  "net.serverMaxConnectionsGet": { argTypes: [NETSERVER_T], result: DYN },
1693
1713
  "net.serverMaxConnectionsSet": { argTypes: [NETSERVER_T, DYN], result: VOID },
1714
+ "net.serverDropMaxConnectionGet": { argTypes: [NETSERVER_T], result: DYN },
1715
+ "net.serverDropMaxConnectionSet": { argTypes: [NETSERVER_T, DYN], result: VOID },
1694
1716
  "net.serverOnDrop": { argTypes: [NETSERVER_T, DYN, BOOL], result: VOID },
1695
1717
  "net.serverGetConnections": { argTypes: [NETSERVER_T, DYN], result: VOID },
1696
1718
  "net.sockReadable": { argTypes: [NETSOCKET_T], result: BOOL },
@@ -1768,6 +1790,12 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1768
1790
  * the 'session' registration (fires once with the serialized session —
1769
1791
  * a Buffer; the received-ticket event). */
1770
1792
  "tls.sockAuthorized": { argTypes: [NETSOCKET_T], result: BOOL },
1793
+ /** getProtocol() (string | null), getCipher() (CipherNameAndProtocol,
1794
+ * undefined before the handshake, null after close) and alpnProtocol
1795
+ * (string | false | null), as dyn values. */
1796
+ "tls.sockGetProtocol": { argTypes: [NETSOCKET_T], result: DYN },
1797
+ "tls.sockGetCipher": { argTypes: [NETSOCKET_T], result: DYN },
1798
+ "tls.sockAlpnProtocol": { argTypes: [NETSOCKET_T], result: DYN },
1771
1799
  "tls.sockAuthError": { argTypes: [NETSOCKET_T], result: VOID },
1772
1800
  "tls.sockOnSecureConnect": {
1773
1801
  argTypes: [NETSOCKET_T, { kind: "func", params: [], ret: VOID }, BOOL],
@@ -2073,17 +2101,19 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2073
2101
  ],
2074
2102
  result: STRING,
2075
2103
  },
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
2104
+ /** The promisified-execFile/exec capture (args: cmd, argv, shell, cwd,
2105
+ * hasEnv, envPairs, timeoutMs; shell marks exec's /bin/sh -c argv, as
2106
+ * for execSync, so failures display the command string): the same exec
2107
+ * core in the async shape — both streams captured, no echo, Node's ASYNC messages on the throw paths
2079
2108
  * ("Command failed: <cmd>\n<stderr>" with the unconditional newline,
2080
2109
  * "spawn <file> ENOENT" with .code, timeouts reporting as ordinary
2081
2110
  * SIGTERM command failures — never ETIMEDOUT). Result reuses the
2082
2111
  * 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. */
2112
+ * Called only from the frontend's interned %execFileAsync and
2113
+ * %execAsync ASYNC helpers, whose fiber turns the throw into the
2114
+ * rejection. */
2085
2115
  "cp.execCapture": {
2086
- argTypes: [STRING, arrayOf(STRING), STRING, BOOL, arrayOf(STRING), F64],
2116
+ argTypes: [STRING, arrayOf(STRING), BOOL, STRING, BOOL, arrayOf(STRING), F64],
2087
2117
  result: SPAWNRES_T,
2088
2118
  },
2089
2119
  /** child_process.spawn (scr_child.c + the scr_async.c loop): posix_spawnp
@@ -2386,6 +2416,22 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2386
2416
  * opaque reference inputs retain explicit runtime refusals. */
2387
2417
  "buffer.fromDyn": { argTypes: [DYN, STRING], result: BYTES_U8 },
2388
2418
  "buffer.concat": { argTypes: [arrayOf(BYTES_U8)], result: BYTES_U8 },
2419
+ /** The pooled Buffer factories (Node's allocate/fromStringFast/
2420
+ * fromArrayLike): allocUnsafe, Buffer.from of strings, Uint8Arrays,
2421
+ * number[] and checked values, and concat return views into the
2422
+ * per-thread pool slab below Buffer.poolSize >>> 1 bytes. alloc and
2423
+ * allocUnsafeSlow never pool. The size forms validate like Node
2424
+ * (ERR_OUT_OF_RANGE). poolSize reads and writes Buffer.poolSize. */
2425
+ "buffer.alloc": { argTypes: [F64], result: BYTES_U8 },
2426
+ "buffer.allocUnsafe": { argTypes: [F64], result: BYTES_U8 },
2427
+ "buffer.allocUnsafeSlow": { argTypes: [F64], result: BYTES_U8 },
2428
+ "buffer.poolFromStr": { argTypes: [STRING, STRING], result: BYTES_U8 },
2429
+ "buffer.poolFromStrChecked": { argTypes: [STRING, STRING], result: BYTES_U8 },
2430
+ "buffer.poolFromBytes": { argTypes: [BYTES_U8], result: BYTES_U8 },
2431
+ "buffer.poolFromArray": { argTypes: [arrayOf(F64)], result: BYTES_U8 },
2432
+ "buffer.poolFromDyn": { argTypes: [DYN, STRING], result: BYTES_U8 },
2433
+ "buffer.poolSize": { argTypes: [], result: F64 },
2434
+ "buffer.setPoolSize": { argTypes: [F64], result: VOID },
2389
2435
  /** Buffer.byteLength(string, enc) — enc a NORMALIZED literal like
2390
2436
  * fromStr's — and Buffer.isEncoding(name) over a runtime string
2391
2437
  * (case-insensitive against Node's alias set). Pure; never throw. */
@@ -2439,6 +2485,32 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2439
2485
  "fsp.lchmodChk": { argTypes: [DYN, DYN], result: { kind: "promise", inner: VOID } },
2440
2486
  "fs.readChk": { argTypes: [DYN, DYN, DYN, DYN, DYN, STRING], result: VOID },
2441
2487
  "fs.streamOptsChk": { argTypes: [DYN, DYN, STRING], result: VOID },
2488
+ /** fs.ReadStream / fs.WriteStream (scr_fs_stream.c): the constructors
2489
+ * take the path and options as dyn values and throw Node's option
2490
+ * errors; the members read bytesRead/bytesWritten, pending and the path
2491
+ * value, and close() / close(cb) (a `() => void` callback). */
2492
+ "fs.createReadStream": {
2493
+ argTypes: [DYN, DYN],
2494
+ result: { kind: "object", className: "%Readable" },
2495
+ },
2496
+ "fs.createWriteStream": {
2497
+ argTypes: [DYN, DYN],
2498
+ result: { kind: "object", className: "%Writable" },
2499
+ },
2500
+ "fs.fsStreamBytes": { argTypes: [null], result: F64 },
2501
+ "fs.fsStreamPending": { argTypes: [null], result: BOOL },
2502
+ "fs.fsStreamPath": { argTypes: [null], result: DYN },
2503
+ "fs.fsStreamPropDyn": { argTypes: [null, STRING], result: DYN },
2504
+ "fileHandle.createReadStream": {
2505
+ argTypes: [FILEHANDLE_T, DYN],
2506
+ result: { kind: "object", className: "%Readable" },
2507
+ },
2508
+ "fileHandle.createWriteStream": {
2509
+ argTypes: [FILEHANDLE_T, DYN],
2510
+ result: { kind: "object", className: "%Writable" },
2511
+ },
2512
+ "fs.fsStreamClose": { argTypes: [null], result: VOID },
2513
+ "fs.fsStreamCloseCb": { argTypes: [null, funcOf([], VOID)], result: VOID },
2442
2514
  /** The compiler-resolved ERR_INVALID_ARG_TYPE throw with a RUNTIME-
2443
2515
  * rendered Received tail: args [argname, "of type ..." clause, the
2444
2516
  * offending dyn value]. ALWAYS THROWS; polymorphic result (the
@@ -3032,6 +3104,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3032
3104
  * lowered directly (the list's values need no dyn representation to
3033
3105
  * fail). */
3034
3106
  "dyn.cloneTransferFail": { argTypes: [], result: DYN },
3107
+ /** The same refusal given the transfer list's first member, an
3108
+ * ArrayBuffer: a Buffer pool slab gets Node's untransferable message. */
3109
+ "dyn.cloneTransferFailWith": { argTypes: [DYN], result: DYN },
3035
3110
  /** `new RegExp(pattern, flags?)` (scr_regex.c): a heap regex over the
3036
3111
  * same libregexp engine the literals use. The pattern compiles EAGERLY
3037
3112
  * so an invalid pattern (or an unknown flag letter) throws Node's
@@ -3518,6 +3593,11 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3518
3593
  "insp.seenPush": { argTypes: [null], result: VOID },
3519
3594
  "insp.refWrap": { argTypes: [null, STRING], result: STRING },
3520
3595
  "insp.circular": { argTypes: [F64], result: STRING },
3596
+ /* Whether a closed declared-field record kept the undeclared properties
3597
+ * of its checked source (scr_record_source_note): reflective surfaces
3598
+ * (inspect, Object.keys/values/entries) then answer through its live
3599
+ * checked view. The receiver is any such record type. Never throws. */
3600
+ "record.sourceHas": { argTypes: [null], result: BOOL },
3521
3601
  "insp.key": { argTypes: [STRING], result: STRING },
3522
3602
  "insp.moreItems": { argTypes: [F64], result: STRING },
3523
3603
  "insp.end": { argTypes: [STRING, STRING, STRING, F64, BOOL, BOOL], result: STRING },
@@ -3588,6 +3668,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3588
3668
  * turns, Node's check phase). Neither throws. */
3589
3669
  "tp.setTimeout": { argTypes: [F64], result: { kind: "promise", inner: VOID } },
3590
3670
  "tp.setImmediate": { argTypes: [], result: { kind: "promise", inner: VOID } },
3671
+ /** events.once (scr_events_emitter.c): [emitter, name, boxer,
3672
+ * errorBoxer, listenForError] → a pending promise of any[]; the boxers
3673
+ * turn the event's and the 'error' tuple into that array. */
3674
+ "events.once": { argTypes: [null, STRING, null, null, BOOL], result: VOID },
3591
3675
  /** The resolve-value forms: [ms?, value, ref] → a pending promise of the
3592
3676
  * value's type that copies the borrowed already-resolved `value` promise
3593
3677
  * when the timer (or immediate) fires; ref false unrefs it. The result