@scriptc/compiler 0.3.0 → 0.3.2

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 (413) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +346 -17
  2. package/dist/backend/executable-features.js +1 -0
  3. package/dist/backend/executable-features.js.map +1 -1
  4. package/dist/backend/literals.d.ts +7 -0
  5. package/dist/backend/literals.js +32 -0
  6. package/dist/backend/literals.js.map +1 -1
  7. package/dist/backend/literals.test.js +17 -1
  8. package/dist/backend/literals.test.js.map +1 -1
  9. package/dist/backend/llvm/alloc.d.ts +15 -4
  10. package/dist/backend/llvm/alloc.js +39 -15
  11. package/dist/backend/llvm/alloc.js.map +1 -1
  12. package/dist/backend/llvm/alloc.test.js +15 -1
  13. package/dist/backend/llvm/alloc.test.js.map +1 -1
  14. package/dist/backend/llvm/appended-array-literals.d.ts +2 -0
  15. package/dist/backend/llvm/appended-array-literals.js +109 -0
  16. package/dist/backend/llvm/appended-array-literals.js.map +1 -0
  17. package/dist/backend/llvm/appended-array-literals.test.d.ts +1 -0
  18. package/dist/backend/llvm/appended-array-literals.test.js +90 -0
  19. package/dist/backend/llvm/appended-array-literals.test.js.map +1 -0
  20. package/dist/backend/llvm/bigint-wrap.d.ts +4 -0
  21. package/dist/backend/llvm/bigint-wrap.js +590 -0
  22. package/dist/backend/llvm/bigint-wrap.js.map +1 -0
  23. package/dist/backend/llvm/blocks.d.ts +2 -0
  24. package/dist/backend/llvm/blocks.js +4 -0
  25. package/dist/backend/llvm/blocks.js.map +1 -1
  26. package/dist/backend/llvm/call-lifetimes.d.ts +4 -1
  27. package/dist/backend/llvm/call-lifetimes.js +66 -7
  28. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  29. package/dist/backend/llvm/call-lifetimes.test.js +14 -3
  30. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  31. package/dist/backend/llvm/checked-narrows.test.js +1 -1
  32. package/dist/backend/llvm/checked-narrows.test.js.map +1 -1
  33. package/dist/backend/llvm/classes.js +67 -14
  34. package/dist/backend/llvm/classes.js.map +1 -1
  35. package/dist/backend/llvm/classes.test.js +6 -6
  36. package/dist/backend/llvm/classes.test.js.map +1 -1
  37. package/dist/backend/llvm/common.d.ts +7 -5
  38. package/dist/backend/llvm/common.js +7 -5
  39. package/dist/backend/llvm/common.js.map +1 -1
  40. package/dist/backend/llvm/constant-callbacks.js +10 -28
  41. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  42. package/dist/backend/llvm/dense-array-access.js +146 -53
  43. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  44. package/dist/backend/llvm/dense-array-access.test.js +68 -3
  45. package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
  46. package/dist/backend/llvm/dyn.d.ts +4 -0
  47. package/dist/backend/llvm/dyn.js +15 -2
  48. package/dist/backend/llvm/dyn.js.map +1 -1
  49. package/dist/backend/llvm/emitter.d.ts +163 -8
  50. package/dist/backend/llvm/emitter.js +973 -100
  51. package/dist/backend/llvm/emitter.js.map +1 -1
  52. package/dist/backend/llvm/emitter.test.js +14 -7
  53. package/dist/backend/llvm/emitter.test.js.map +1 -1
  54. package/dist/backend/llvm/expr-async.js +242 -49
  55. package/dist/backend/llvm/expr-async.js.map +1 -1
  56. package/dist/backend/llvm/expr-async.test.js +1 -1
  57. package/dist/backend/llvm/expr-async.test.js.map +1 -1
  58. package/dist/backend/llvm/expr-bytes.js +51 -36
  59. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  60. package/dist/backend/llvm/expr-callbacks.d.ts +8 -0
  61. package/dist/backend/llvm/expr-callbacks.js +153 -4
  62. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  63. package/dist/backend/llvm/expr-calls.d.ts +12 -1
  64. package/dist/backend/llvm/expr-calls.js +279 -78
  65. package/dist/backend/llvm/expr-calls.js.map +1 -1
  66. package/dist/backend/llvm/expr-calls.test.d.ts +1 -0
  67. package/dist/backend/llvm/expr-calls.test.js +132 -0
  68. package/dist/backend/llvm/expr-calls.test.js.map +1 -0
  69. package/dist/backend/llvm/expr-containers.d.ts +7 -0
  70. package/dist/backend/llvm/expr-containers.js +49 -5
  71. package/dist/backend/llvm/expr-containers.js.map +1 -1
  72. package/dist/backend/llvm/expr-context.d.ts +4 -0
  73. package/dist/backend/llvm/expr-control.d.ts +8 -0
  74. package/dist/backend/llvm/expr-control.js +103 -69
  75. package/dist/backend/llvm/expr-control.js.map +1 -1
  76. package/dist/backend/llvm/expr-dispatch.js +3 -0
  77. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  78. package/dist/backend/llvm/expr-dynamic.js +28 -6
  79. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  80. package/dist/backend/llvm/expr-primitives.d.ts +14 -0
  81. package/dist/backend/llvm/expr-primitives.js +110 -48
  82. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  83. package/dist/backend/llvm/expr-primitives.test.js +95 -5
  84. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  85. package/dist/backend/llvm/expr-records.d.ts +9 -0
  86. package/dist/backend/llvm/expr-records.js +144 -16
  87. package/dist/backend/llvm/expr-records.js.map +1 -1
  88. package/dist/backend/llvm/expr-stream-bridges.d.ts +9 -1
  89. package/dist/backend/llvm/expr-stream-bridges.js +152 -4
  90. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  91. package/dist/backend/llvm/expr-stream-bridges.test.js +98 -1
  92. package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
  93. package/dist/backend/llvm/int32-abi.d.ts +47 -0
  94. package/dist/backend/llvm/int32-abi.js +83 -0
  95. package/dist/backend/llvm/int32-abi.js.map +1 -0
  96. package/dist/backend/llvm/int32-abi.test.d.ts +1 -0
  97. package/dist/backend/llvm/int32-abi.test.js +181 -0
  98. package/dist/backend/llvm/int32-abi.test.js.map +1 -0
  99. package/dist/backend/llvm/int32-locals.d.ts +30 -0
  100. package/dist/backend/llvm/int32-locals.js +95 -0
  101. package/dist/backend/llvm/int32-locals.js.map +1 -0
  102. package/dist/backend/llvm/integer-values.d.ts +4 -0
  103. package/dist/backend/llvm/integer-values.js +30 -1
  104. package/dist/backend/llvm/integer-values.js.map +1 -1
  105. package/dist/backend/llvm/integer-views.d.ts +8 -1
  106. package/dist/backend/llvm/integer-views.js +47 -2
  107. package/dist/backend/llvm/integer-views.js.map +1 -1
  108. package/dist/backend/llvm/lazy-captures.d.ts +16 -0
  109. package/dist/backend/llvm/lazy-captures.js +88 -2
  110. package/dist/backend/llvm/lazy-captures.js.map +1 -1
  111. package/dist/backend/llvm/lazy-captures.test.js +48 -0
  112. package/dist/backend/llvm/lazy-captures.test.js.map +1 -1
  113. package/dist/backend/llvm/lib-dispatch.js +21 -0
  114. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  115. package/dist/backend/llvm/lib-filesystem.js +61 -0
  116. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  117. package/dist/backend/llvm/lib-shared.js +83 -9
  118. package/dist/backend/llvm/lib-shared.js.map +1 -1
  119. package/dist/backend/llvm/local-array-reads.js +26 -5
  120. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  121. package/dist/backend/llvm/local-array-reads.test.js +3 -2
  122. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  123. package/dist/backend/llvm/local-union-storage.d.ts +24 -2
  124. package/dist/backend/llvm/local-union-storage.js +127 -12
  125. package/dist/backend/llvm/local-union-storage.js.map +1 -1
  126. package/dist/backend/llvm/local-union-storage.test.js +108 -3
  127. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  128. package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
  129. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  130. package/dist/backend/llvm/record-results.d.ts +26 -0
  131. package/dist/backend/llvm/record-results.js +252 -0
  132. package/dist/backend/llvm/record-results.js.map +1 -0
  133. package/dist/backend/llvm/reference-effects.js +4 -0
  134. package/dist/backend/llvm/reference-effects.js.map +1 -1
  135. package/dist/backend/llvm/reference-writes.d.ts +3 -0
  136. package/dist/backend/llvm/reference-writes.js +25 -11
  137. package/dist/backend/llvm/reference-writes.js.map +1 -1
  138. package/dist/backend/llvm/regex-matchers.d.ts +39 -0
  139. package/dist/backend/llvm/regex-matchers.js +1649 -0
  140. package/dist/backend/llvm/regex-matchers.js.map +1 -0
  141. package/dist/backend/llvm/regex-matchers.test.d.ts +1 -0
  142. package/dist/backend/llvm/regex-matchers.test.js +96 -0
  143. package/dist/backend/llvm/regex-matchers.test.js.map +1 -0
  144. package/dist/backend/llvm/regions.d.ts +67 -0
  145. package/dist/backend/llvm/regions.js +309 -0
  146. package/dist/backend/llvm/regions.js.map +1 -0
  147. package/dist/backend/llvm/regions.test.d.ts +1 -0
  148. package/dist/backend/llvm/regions.test.js +173 -0
  149. package/dist/backend/llvm/regions.test.js.map +1 -0
  150. package/dist/backend/llvm/shapes.d.ts +70 -8
  151. package/dist/backend/llvm/shapes.js +157 -29
  152. package/dist/backend/llvm/shapes.js.map +1 -1
  153. package/dist/backend/llvm/shapes.test.js +7 -6
  154. package/dist/backend/llvm/shapes.test.js.map +1 -1
  155. package/dist/backend/llvm/split-loops.js +1 -1
  156. package/dist/backend/llvm/split-loops.js.map +1 -1
  157. package/dist/backend/llvm/stack-objects.d.ts +29 -0
  158. package/dist/backend/llvm/stack-objects.js +130 -0
  159. package/dist/backend/llvm/stack-objects.js.map +1 -0
  160. package/dist/backend/llvm/stack-objects.test.d.ts +1 -0
  161. package/dist/backend/llvm/stack-objects.test.js +252 -0
  162. package/dist/backend/llvm/stack-objects.test.js.map +1 -0
  163. package/dist/backend/llvm/stack-unions.test.js +1 -1
  164. package/dist/backend/llvm/stack-unions.test.js.map +1 -1
  165. package/dist/backend/llvm/string-construction.test.js +2 -2
  166. package/dist/backend/llvm/string-construction.test.js.map +1 -1
  167. package/dist/backend/llvm/string-lifetimes.test.js +5 -5
  168. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  169. package/dist/backend/llvm/string-literal-equality.d.ts +22 -0
  170. package/dist/backend/llvm/string-literal-equality.js +78 -0
  171. package/dist/backend/llvm/string-literal-equality.js.map +1 -0
  172. package/dist/backend/llvm/string-reads.d.ts +4 -1
  173. package/dist/backend/llvm/string-reads.js +89 -9
  174. package/dist/backend/llvm/string-reads.js.map +1 -1
  175. package/dist/backend/llvm/switch-dispatch.js +60 -13
  176. package/dist/backend/llvm/switch-dispatch.js.map +1 -1
  177. package/dist/backend/llvm/switch-dispatch.test.js +71 -6
  178. package/dist/backend/llvm/switch-dispatch.test.js.map +1 -1
  179. package/dist/backend/llvm/union-retype.test.d.ts +1 -0
  180. package/dist/backend/llvm/union-retype.test.js +229 -0
  181. package/dist/backend/llvm/union-retype.test.js.map +1 -0
  182. package/dist/backend/llvm/walkers.d.ts +2 -0
  183. package/dist/backend/llvm/walkers.js +4 -2
  184. package/dist/backend/llvm/walkers.js.map +1 -1
  185. package/dist/backend/llvm/wrapping-sums.d.ts +17 -0
  186. package/dist/backend/llvm/wrapping-sums.js +113 -0
  187. package/dist/backend/llvm/wrapping-sums.js.map +1 -0
  188. package/dist/backend/loop-polls.js +1 -0
  189. package/dist/backend/loop-polls.js.map +1 -1
  190. package/dist/backend/mangle.d.ts +9 -0
  191. package/dist/backend/mangle.js +15 -0
  192. package/dist/backend/mangle.js.map +1 -1
  193. package/dist/backend/may-throw.js +7 -3
  194. package/dist/backend/may-throw.js.map +1 -1
  195. package/dist/backend/native/contracts.d.ts +5 -0
  196. package/dist/backend/native/executable.js +16 -1
  197. package/dist/backend/native/executable.js.map +1 -1
  198. package/dist/backend/native/library.js +1 -1
  199. package/dist/backend/native/library.js.map +1 -1
  200. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  201. package/dist/backend/native/runtime-inputs.js +2 -0
  202. package/dist/backend/native/runtime-inputs.js.map +1 -1
  203. package/dist/backend/native-link-info-core.d.ts +1 -0
  204. package/dist/backend/native-link-info-core.js.map +1 -1
  205. package/dist/backend/runtime-abi.d.ts +2 -2
  206. package/dist/backend/runtime-abi.js +2 -2
  207. package/dist/backend/runtime-pack-core.d.ts +1 -0
  208. package/dist/backend/runtime-pack-core.js +1 -0
  209. package/dist/backend/runtime-pack-core.js.map +1 -1
  210. package/dist/backend/runtime-pack-targets.test.js +1 -1
  211. package/dist/backend/runtime-pack.test.js +1 -1
  212. package/dist/backend/target-diagnostics.js +14 -0
  213. package/dist/backend/target-diagnostics.js.map +1 -1
  214. package/dist/backend/target-diagnostics.test.js +13 -0
  215. package/dist/backend/target-diagnostics.test.js.map +1 -1
  216. package/dist/contracts/check.js +4 -0
  217. package/dist/contracts/check.js.map +1 -1
  218. package/dist/executable/executable-cache.d.ts +1 -0
  219. package/dist/executable/executable-cache.js.map +1 -1
  220. package/dist/frontend/experimental-import.d.ts +12 -0
  221. package/dist/frontend/experimental-import.js +63 -0
  222. package/dist/frontend/experimental-import.js.map +1 -0
  223. package/dist/frontend/lowering/array-values.d.ts +14 -0
  224. package/dist/frontend/lowering/array-values.js +29 -0
  225. package/dist/frontend/lowering/array-values.js.map +1 -1
  226. package/dist/frontend/lowering/builtin-calls.d.ts +6 -1
  227. package/dist/frontend/lowering/builtin-calls.js +36 -0
  228. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  229. package/dist/frontend/lowering/builtins/console.d.ts +16 -6
  230. package/dist/frontend/lowering/builtins/console.js +33 -9
  231. package/dist/frontend/lowering/builtins/console.js.map +1 -1
  232. package/dist/frontend/lowering/builtins/errors.js +20 -0
  233. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  234. package/dist/frontend/lowering/builtins/json.d.ts +2 -2
  235. package/dist/frontend/lowering/builtins/json.js +13 -4
  236. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  237. package/dist/frontend/lowering/builtins/module-calls.js +16 -1
  238. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  239. package/dist/frontend/lowering/builtins/numbers.d.ts +1 -0
  240. package/dist/frontend/lowering/builtins/numbers.js +17 -0
  241. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  242. package/dist/frontend/lowering/builtins/operating-system.d.ts +18 -0
  243. package/dist/frontend/lowering/builtins/operating-system.js +361 -1
  244. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  245. package/dist/frontend/lowering/builtins/process.js +15 -3
  246. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  247. package/dist/frontend/lowering/builtins/promises.js +109 -2
  248. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  249. package/dist/frontend/lowering/builtins/text-codecs.d.ts +3 -4
  250. package/dist/frontend/lowering/builtins/text-codecs.js +3 -4
  251. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
  252. package/dist/frontend/lowering/checked-promise-all.d.ts +10 -3
  253. package/dist/frontend/lowering/checked-promise-all.js +52 -6
  254. package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
  255. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +6 -3
  256. package/dist/frontend/lowering/class-dynamic-dispatch.js +54 -31
  257. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  258. package/dist/frontend/lowering/containers/array-callbacks.js +74 -4
  259. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  260. package/dist/frontend/lowering/containers/array-construction.js +8 -4
  261. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  262. package/dist/frontend/lowering/containers/array-pipelines.d.ts +54 -0
  263. package/dist/frontend/lowering/containers/array-pipelines.js +1827 -0
  264. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -0
  265. package/dist/frontend/lowering/containers/exec-result-uses.d.ts +10 -0
  266. package/dist/frontend/lowering/containers/exec-result-uses.js +88 -0
  267. package/dist/frontend/lowering/containers/exec-result-uses.js.map +1 -0
  268. package/dist/frontend/lowering/containers/string-and-regexp.js +106 -7
  269. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  270. package/dist/frontend/lowering/containers/string-replacement.d.ts +2 -1
  271. package/dist/frontend/lowering/containers/string-replacement.js +32 -136
  272. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  273. package/dist/frontend/lowering/cycle-initialization.d.ts +18 -2
  274. package/dist/frontend/lowering/cycle-initialization.js +166 -12
  275. package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
  276. package/dist/frontend/lowering/deferred-module-initializers.js +7 -2
  277. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  278. package/dist/frontend/lowering/deferred-module-initializers.test.js +28 -0
  279. package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
  280. package/dist/frontend/lowering/devirtualize.d.ts +33 -0
  281. package/dist/frontend/lowering/devirtualize.js +199 -0
  282. package/dist/frontend/lowering/devirtualize.js.map +1 -0
  283. package/dist/frontend/lowering/expressions/nullish-assignment.js +55 -7
  284. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  285. package/dist/frontend/lowering/expressions/object-literals.js +5 -56
  286. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  287. package/dist/frontend/lowering/generator-delegation.d.ts +8 -0
  288. package/dist/frontend/lowering/generator-delegation.js +231 -10
  289. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  290. package/dist/frontend/lowering/identifier-uses.d.ts +7 -0
  291. package/dist/frontend/lowering/identifier-uses.js +23 -0
  292. package/dist/frontend/lowering/identifier-uses.js.map +1 -0
  293. package/dist/frontend/lowering/iterator-adapters.js +51 -3
  294. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  295. package/dist/frontend/lowering/lifetime-regions.d.ts +11 -0
  296. package/dist/frontend/lowering/lifetime-regions.js +216 -0
  297. package/dist/frontend/lowering/lifetime-regions.js.map +1 -0
  298. package/dist/frontend/lowering/lower-array-sort.d.ts +28 -2
  299. package/dist/frontend/lowering/lower-array-sort.js +112 -2
  300. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  301. package/dist/frontend/lowering/lower-array-sort.test.js +99 -2
  302. package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
  303. package/dist/frontend/lowering/lower-calls.js +135 -131
  304. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  305. package/dist/frontend/lowering/lower-classes.d.ts +4 -3
  306. package/dist/frontend/lowering/lower-classes.js +117 -13
  307. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  308. package/dist/frontend/lowering/lower-console.d.ts +27 -0
  309. package/dist/frontend/lowering/lower-console.js +651 -0
  310. package/dist/frontend/lowering/lower-console.js.map +1 -0
  311. package/dist/frontend/lowering/lower-event-emitter.d.ts +6 -0
  312. package/dist/frontend/lowering/lower-event-emitter.js +124 -38
  313. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  314. package/dist/frontend/lowering/lower-exprs.js +272 -25
  315. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  316. package/dist/frontend/lowering/lower-functions.js +7 -3
  317. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  318. package/dist/frontend/lowering/lower-generators.d.ts +25 -7
  319. package/dist/frontend/lowering/lower-generators.js +264 -113
  320. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  321. package/dist/frontend/lowering/lower-inspect.d.ts +8 -1
  322. package/dist/frontend/lowering/lower-inspect.js +119 -18
  323. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  324. package/dist/frontend/lowering/lower-modules.js +24 -14
  325. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  326. package/dist/frontend/lowering/lower-stdlib.d.ts +4 -0
  327. package/dist/frontend/lowering/lower-stdlib.js +35 -1
  328. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  329. package/dist/frontend/lowering/lower-stmts.js +66 -11
  330. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  331. package/dist/frontend/lowering/lower-stream.js +13 -10
  332. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  333. package/dist/frontend/lowering/lowerer.d.ts +47 -5
  334. package/dist/frontend/lowering/lowerer.js +235 -54
  335. package/dist/frontend/lowering/lowerer.js.map +1 -1
  336. package/dist/frontend/lowering/nan-coded-reads.d.ts +16 -0
  337. package/dist/frontend/lowering/nan-coded-reads.js +108 -1
  338. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  339. package/dist/frontend/lowering/regex-span-reads.d.ts +12 -0
  340. package/dist/frontend/lowering/regex-span-reads.js +164 -0
  341. package/dist/frontend/lowering/regex-span-reads.js.map +1 -0
  342. package/dist/frontend/lowering/runtime-optional-bounds.d.ts +4 -0
  343. package/dist/frontend/lowering/runtime-optional-bounds.js +2 -0
  344. package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -1
  345. package/dist/frontend/lowering/runtime-optional-bounds.test.js +27 -0
  346. package/dist/frontend/lowering/runtime-optional-bounds.test.js.map +1 -1
  347. package/dist/frontend/lowering/split-consumers.js +2 -18
  348. package/dist/frontend/lowering/split-consumers.js.map +1 -1
  349. package/dist/frontend/lowering/surfaces.js +115 -18
  350. package/dist/frontend/lowering/surfaces.js.map +1 -1
  351. package/dist/frontend/lowering/union-retag.d.ts +6 -1
  352. package/dist/frontend/lowering/union-retag.js +64 -1
  353. package/dist/frontend/lowering/union-retag.js.map +1 -1
  354. package/dist/frontend/lowering/union-retag.test.js +46 -0
  355. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  356. package/dist/frontend/lowering/var-hoisting.d.ts +3 -0
  357. package/dist/frontend/lowering/var-hoisting.js +261 -0
  358. package/dist/frontend/lowering/var-hoisting.js.map +1 -0
  359. package/dist/frontend/pipeline.js +5 -3
  360. package/dist/frontend/pipeline.js.map +1 -1
  361. package/dist/frontend/program.d.ts +3 -2
  362. package/dist/frontend/program.js +23 -5
  363. package/dist/frontend/program.js.map +1 -1
  364. package/dist/frontend/program.test.js +13 -0
  365. package/dist/frontend/program.test.js.map +1 -1
  366. package/dist/frontend/type-mapper.d.ts +13 -1
  367. package/dist/frontend/type-mapper.js +160 -14
  368. package/dist/frontend/type-mapper.js.map +1 -1
  369. package/dist/index.js +1 -0
  370. package/dist/index.js.map +1 -1
  371. package/dist/ir/builtin-effects.js +31 -2
  372. package/dist/ir/builtin-effects.js.map +1 -1
  373. package/dist/ir/builtin-signatures.d.ts +1 -1
  374. package/dist/ir/builtin-signatures.js +157 -16
  375. package/dist/ir/builtin-signatures.js.map +1 -1
  376. package/dist/ir/function-references.d.ts +12 -0
  377. package/dist/ir/function-references.js +29 -0
  378. package/dist/ir/function-references.js.map +1 -0
  379. package/dist/ir/function-references.test.d.ts +1 -0
  380. package/dist/ir/function-references.test.js +277 -0
  381. package/dist/ir/function-references.test.js.map +1 -0
  382. package/dist/ir/int32-slots.d.ts +7 -4
  383. package/dist/ir/int32-slots.js +215 -49
  384. package/dist/ir/int32-slots.js.map +1 -1
  385. package/dist/ir/int32-slots.test.js +38 -1
  386. package/dist/ir/int32-slots.test.js.map +1 -1
  387. package/dist/ir/integer-ranges.d.ts +4 -4
  388. package/dist/ir/integer-ranges.js +89 -64
  389. package/dist/ir/integer-ranges.js.map +1 -1
  390. package/dist/ir/integer-ranges.test.js +71 -9
  391. package/dist/ir/integer-ranges.test.js.map +1 -1
  392. package/dist/ir/intrinsic-signatures.js +3 -0
  393. package/dist/ir/intrinsic-signatures.js.map +1 -1
  394. package/dist/ir/ir.d.ts +111 -20
  395. package/dist/ir/ir.js +6 -0
  396. package/dist/ir/ir.js.map +1 -1
  397. package/dist/ir/runtime-features.d.ts +1 -0
  398. package/dist/ir/runtime-features.js +38 -3
  399. package/dist/ir/runtime-features.js.map +1 -1
  400. package/dist/ir/scalar-records.js +1 -2
  401. package/dist/ir/scalar-records.js.map +1 -1
  402. package/dist/ir/traverse.js +4 -0
  403. package/dist/ir/traverse.js.map +1 -1
  404. package/dist/ir/validate.js +201 -25
  405. package/dist/ir/validate.js.map +1 -1
  406. package/dist/ir/validate.test.js +90 -7
  407. package/dist/ir/validate.test.js.map +1 -1
  408. package/dist/library/ir-policy.js +1 -0
  409. package/dist/library/ir-policy.js.map +1 -1
  410. package/dist/native/sanitizer.test.js +1 -0
  411. package/dist/native/sanitizer.test.js.map +1 -1
  412. package/package.json +20 -20
  413. package/surface-manifest.json +159 -17
@@ -17,6 +17,16 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
17
17
  "fetch.responseNew": { argTypes: [DYN, DYN], result: DYN },
18
18
  "fetch.input": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
19
19
  "abort.controllerNew": { argTypes: [], result: DYN },
20
+ /** EventTarget / Event / CustomEvent construction (scr_event_target.c):
21
+ * the Event constructors take the argument vector as one dyn array and
22
+ * throw Node's validation errors; `event.is` is `v instanceof Event`
23
+ * (kind 0), `CustomEvent` (1), `EventTarget` (2). addAbortListener
24
+ * answers the disposer (the Disposable's [Symbol.dispose]). */
25
+ "event.targetNew": { argTypes: [], result: DYN },
26
+ "event.new": { argTypes: [DYN], result: DYN },
27
+ "event.customNew": { argTypes: [DYN], result: DYN },
28
+ "event.is": { argTypes: [DYN, F64], result: BOOL },
29
+ "events.addAbortListener": { argTypes: [DYN, DYN], result: DYN },
20
30
  "abort.timeout": { argTypes: [DYN], result: DYN },
21
31
  "abort.now": { argTypes: [DYN], result: DYN },
22
32
  "abort.any": { argTypes: [DYN], result: DYN },
@@ -102,6 +112,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
102
112
  * own-member presence, ARR answers 'length'/a valid index — exactly
103
113
  * the literal-key dynHasKey path. Proxy has traps may throw. */
104
114
  "dyn.hasKey": { argTypes: [DYN, STRING], result: BOOL },
115
+ /** The `in` operator with a runtime string key: dyn.hasKey plus the
116
+ * members inherited from builtin and compiled class prototypes. */
117
+ "dyn.in": { argTypes: [DYN, STRING], result: BOOL },
105
118
  "dyn.freeze": { argTypes: [DYN], result: DYN },
106
119
  "dyn.isFrozen": { argTypes: [DYN], result: BOOL },
107
120
  "dyn.nativeSetNew": { argTypes: [DYN], result: DYN },
@@ -128,7 +141,14 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
128
141
  "dyn.defineProperty": { argTypes: [DYN, DYN, DYN], result: DYN },
129
142
  "dyn.getOwnPropertyDescriptor": { argTypes: [DYN, DYN], result: DYN },
130
143
  "dyn.arrayProtoCall": { argTypes: [DYN, STRING, DYN], result: DYN },
131
- "dyn.promiseAll": { argTypes: [DYN], result: { kind: "promise", inner: DYN } },
144
+ /** Promise.all / Promise.allSettled / Promise.any over a spread
145
+ * checked-dynamic array: the values, the settled-record array, or the
146
+ * first fulfillment (AggregateError once every entry rejects).
147
+ * Thenable elements adopt; the second argument reads a program class
148
+ * instance's `then` (the compiled property dispatch). */
149
+ "dyn.promiseAll": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
150
+ "dyn.promiseAllSettled": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
151
+ "dyn.promiseAny": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
132
152
  /** Bare `typeof v` on a dyn value AS A STRING (arg: the dyn value,
133
153
  * borrowed; result: an owned string) — the dyn kind's JS answer:
134
154
  * undefined→"undefined", null/object/array/bytes→"object" (JS's oldest
@@ -342,6 +362,21 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
342
362
  "path.win32IsAbsolute": { argTypes: [STRING], result: BOOL },
343
363
  "path.win32Relative": { argTypes: [STRING, STRING], result: STRING },
344
364
  "path.win32ToNamespacedPath": { argTypes: [STRING], result: STRING },
365
+ /** path.parse: [root, dir, base, ext, name] as a fresh string[] (the
366
+ * frontend builds the ParsedPath record); path.format: the pathObject's
367
+ * root, dir, base, name and ext with undefined spelled "". */
368
+ "path.parse": { argTypes: [STRING], result: arrayOf(STRING) },
369
+ "path.win32Parse": { argTypes: [STRING], result: arrayOf(STRING) },
370
+ "path.format": { argTypes: [STRING, STRING, STRING, STRING, STRING], result: STRING },
371
+ "path.win32Format": { argTypes: [STRING, STRING, STRING, STRING, STRING], result: STRING },
372
+ /** path.matchesGlob(path, pattern): Node's matchGlobPattern over its
373
+ * bundled minimatch (scr_glob.c). Both families match case-insensitively
374
+ * on macOS and Windows hosts like Node's; win32 also accepts either
375
+ * separator. Throws TypeError for a pattern over 64 Ki code units,
376
+ * RangeError for a brace sequence too long to expand, and SyntaxError
377
+ * when a segment's regex is invalid under the u flag. */
378
+ "path.matchesGlob": { argTypes: [STRING, STRING], result: BOOL },
379
+ "path.win32MatchesGlob": { argTypes: [STRING, STRING], result: BOOL },
345
380
  /** node:os: homedir is $HOME else getpwuid(3); tmpdir is Node's env
346
381
  * cascade ($TMPDIR/$TMP/$TEMP else /tmp, one trailing slash trimmed).
347
382
  * os.platform() lowers to process.platform — one implementation. */
@@ -357,6 +392,29 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
357
392
  "os.totalmem": { argTypes: [], result: F64 },
358
393
  /** os.availableParallelism(): CPUs the process may use (libuv's answer), >= 1. Never throws. */
359
394
  "os.availableParallelism": { argTypes: [], result: F64 },
395
+ /** os.hostname/machine/version/endianness, freemem, uptime and loadavg:
396
+ * libuv's answers (uname's machine and version fields, gethostname,
397
+ * "LE"/"BE", free memory in bytes, uptime in seconds, the three load
398
+ * averages). Fresh results; never throw. */
399
+ "os.hostname": { argTypes: [], result: STRING },
400
+ "os.machine": { argTypes: [], result: STRING },
401
+ "os.version": { argTypes: [], result: STRING },
402
+ "os.endianness": { argTypes: [], result: STRING },
403
+ "os.freemem": { argTypes: [], result: F64 },
404
+ "os.uptime": { argTypes: [], result: F64 },
405
+ "os.loadavg": { argTypes: [], result: arrayOf(F64) },
406
+ /** os.getPriority(pid): validateInt32 (RangeError ERR_OUT_OF_RANGE),
407
+ * then the priority; a failure throws Node's SystemError. */
408
+ "os.getPriority": { argTypes: [F64], result: F64 },
409
+ /** os.cpus(): cpusTake snapshots every CPU and answers the count;
410
+ * cpusModel(i) and cpusField(i, k) (k: 0 speed, 1 user, 2 nice, 3 sys,
411
+ * 4 idle, 5 irq) read the snapshot. Never throw. */
412
+ "os.cpusTake": { argTypes: [], result: F64 },
413
+ "os.cpusModel": { argTypes: [F64], result: STRING },
414
+ "os.cpusField": { argTypes: [F64, F64], result: F64 },
415
+ /** os.constants: the per-thread null-prototype constants object (dlopen,
416
+ * errno, signals, priority, UV_UDP_REUSEADDR). Never throws. */
417
+ "os.constants": { argTypes: [], result: DYN },
360
418
  /** umask(2): arg < 0 reads without setting (umask has no read-only form
361
419
  * — set 0, restore); otherwise sets and answers the PREVIOUS mask.
362
420
  * Never throws. */
@@ -478,6 +536,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
478
536
  /** `a.localeCompare(b)`: -1/0/1 in Node's root-locale collation for
479
537
  * Latin-script text (scr_str_locale_compare). Never throws. */
480
538
  "str.localeCompare": { argTypes: [STRING, STRING], result: F64 },
539
+ "str.replaceLiteral": { argTypes: [STRING, STRING, STRING, BOOL], result: STRING },
540
+ // (subject, characters, NUL-separated replacement texts): the fused
541
+ // chain of global one-character replacements.
542
+ "str.replaceChars": { argTypes: [STRING, STRING, STRING], result: STRING },
481
543
  /* ToNumber(string) — ECMA-262 7.1.4.1 StringToNumber (scr_string.c):
482
544
  * trim the JS StrWhiteSpace set, empty/whitespace-only → +0, then the
483
545
  * whole span must be one StrNumericLiteral — signed decimal (Infinity
@@ -493,8 +555,8 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
493
555
  * str.encodeUriComponent percent-encodes every byte outside the
494
556
  * unreserved component set (ALPHA/DIGIT/- _ . ! ~ * ' ( )) as uppercase
495
557
  * %XX — the spec's per-code-point UTF-8 encoding IS a byte scan here —
496
- * and never throws (the spec's URIError case is an unpaired surrogate,
497
- * which cannot exist in well-formed UTF-8). str.decodeUriComponent
558
+ * and THROWS the spec's URIError ("URI malformed") on a lone surrogate.
559
+ * str.decodeUriComponent
498
560
  * decodes %XX escapes bytewise (raw non-escape bytes copy through) and
499
561
  * requires the escaped bytes to form strictly valid UTF-8 (overlong
500
562
  * forms, surrogate code points, and >U+10FFFF refused, per UTF8-decode
@@ -522,7 +584,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
522
584
  "str.decodeUriComponent": { argTypes: [STRING], result: STRING },
523
585
  "str.decodeUri": { argTypes: [STRING], result: STRING },
524
586
  /** encodeURI: the same Encode() keeping the reserved set and '#'
525
- * unescaped — total like the component encoder. Borrow; result +1. */
587
+ * unescaped — throwing like the component encoder. Borrow; result +1. */
526
588
  "str.encodeUri": { argTypes: [STRING], result: STRING },
527
589
  /** RegExp.escape (ES2025): per-code-point EncodeForRegExpEscape —
528
590
  * leading ASCII alphanumeric hex-escapes, syntax characters and '/'
@@ -699,9 +761,8 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
699
761
  /** node:querystring (scr_qs.c — link-gated by moduleUsesQs; NOT
700
762
  * URLSearchParams: the legacy codec's escaping and '+' rules differ).
701
763
  * qs.escape is Node's qsEscape, which encodes exactly the component
702
- * unreserved set — it emits the always-linked
703
- * scr_str_encode_uri_component, so escape-only programs never pull the
704
- * unit. qs.unescape is Node's qsUnescape: strict decodeURIComponent
764
+ * unreserved set — it emits the always-linked scr_qs_escape, so
765
+ * escape-only programs never pull the unit. qs.unescape is Node's qsUnescape: strict decodeURIComponent
705
766
  * first, the lenient legacy unescapeBuffer fallback on failure (never
706
767
  * throws). qs.parse takes (str, sep, eq, maxKeys) — the frontend
707
768
  * completes omitted/null sep/eq to "&"/"=" and the omitted maxKeys
@@ -716,7 +777,8 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
716
777
  * through) — Node's encodeStringified rules run in the runtime, so
717
778
  * arrays expand to repeated keys and null/undefined/nested objects are
718
779
  * empty values. Custom encoder/decoder options fence at compile time.
719
- * All borrow; string results +1; none throw. */
780
+ * All borrow; string results +1; escape and stringify throw URIError
781
+ * [ERR_INVALID_URI] on a lone surrogate. */
720
782
  "qs.parse": { argTypes: [STRING, STRING, STRING, F64], result: VOID },
721
783
  "qs.stringify": { argTypes: [DYN, STRING, STRING], result: STRING },
722
784
  "qs.escape": { argTypes: [STRING], result: STRING },
@@ -734,6 +796,13 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
734
796
  "util.toUSVString": { argTypes: [DYN], result: STRING },
735
797
  "util.isDeepStrictEqual": { argTypes: [DYN, DYN, DYN], result: BOOL },
736
798
  "util.styleText": { argTypes: [DYN, DYN, DYN], result: STRING },
799
+ /** util.inherits/deprecate/callbackify/debuglog over checked-dynamic
800
+ * arguments (scr_util_callable.c). The function results are native dyn
801
+ * wrappers; call sites with a static function type check them back. */
802
+ "util.inherits": { argTypes: [DYN, DYN], result: VOID },
803
+ "util.deprecate": { argTypes: [DYN, DYN, DYN, DYN], result: DYN },
804
+ "util.callbackify": { argTypes: [DYN], result: DYN },
805
+ "util.debuglog": { argTypes: [DYN, DYN], result: DYN },
737
806
  "util.typeIs": { argTypes: [DYN, STRING], result: BOOL },
738
807
  "util.typeValue": { argTypes: [DYN, STRING], result: DYN },
739
808
  /** fs.statSync → a Stats value (may throw, like the other sync fs
@@ -2446,6 +2515,40 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2446
2515
  * unwind abandons — the value never exists). */
2447
2516
  "global.undefRead": { argTypes: [STRING], result: VOID },
2448
2517
  "console.native": { argTypes: [], result: DYN },
2518
+ /** node:console Console instances (scr_console_native.c): new mints the
2519
+ * handle over the stdout/stderr fds (1/2; 0 = a stream binds next) and
2520
+ * the ignoreErrors flag; bind attaches a borrowed writable stream to
2521
+ * target 0 (stdout) or 1 (stderr); write prints `text\n` to the
2522
+ * selected target of an instance or the global console handle. */
2523
+ "console.new": { argTypes: [F64, F64, BOOL], result: DYN },
2524
+ "console.bind": { argTypes: [DYN, F64, null], result: VOID },
2525
+ "console.write": { argTypes: [DYN, STRING, BOOL], result: VOID },
2526
+ /** The global console's remaining members (scr_console_native.c; the
2527
+ * group indentation itself lives with the writers in scr_console.c).
2528
+ * Arguments are borrowed; string results are owned. noop is the
2529
+ * emitter-dropped tail of a lowering whose effects sit in statements.
2530
+ * label is `${label}` over a defaulted label (undefined -> "default";
2531
+ * a Symbol throws Node's TypeError). count prints "label: n".
2532
+ * countReset answers the warning text for an unknown (or non-string)
2533
+ * label, "" otherwise. time answers the duplicate-label warning text
2534
+ * or ""; timeEnd/timeLog answer Node's formatted elapsed time, or ""
2535
+ * for an unknown label (timeEnd drops the timer). group adds (+1) or
2536
+ * removes (-1) one two-space indentation step. clear writes the
2537
+ * cursor-home and erase-down sequences when stdout is a terminal.
2538
+ * table renders and prints Node's table for a dyn value (undefined
2539
+ * properties = all). dirDyn is console.dir's inspect of a dyn value
2540
+ * (custom inspection off: a Buffer anywhere inside throws the fence). */
2541
+ "console.noop": { argTypes: [], result: VOID },
2542
+ "console.label": { argTypes: [DYN], result: STRING },
2543
+ "console.count": { argTypes: [STRING], result: VOID },
2544
+ "console.countReset": { argTypes: [DYN], result: STRING },
2545
+ "console.time": { argTypes: [STRING], result: STRING },
2546
+ "console.timeEnd": { argTypes: [STRING], result: STRING },
2547
+ "console.timeLog": { argTypes: [STRING], result: STRING },
2548
+ "console.group": { argTypes: [F64], result: VOID },
2549
+ "console.clear": { argTypes: [], result: VOID },
2550
+ "console.table": { argTypes: [DYN, DYN], result: VOID },
2551
+ "console.dirDyn": { argTypes: [DYN, F64], result: STRING },
2449
2552
  /** A native reference to the global object; known names retain value fences. */
2450
2553
  "global.native": { argTypes: [arrayOf(STRING)], result: DYN },
2451
2554
  // `X.name` through a class value: the arg is a program-dependent
@@ -2503,6 +2606,18 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2503
2606
  * list throws DataCloneError, nothing static is transferable). Result
2504
2607
  * +1 %DOMException. */
2505
2608
  "error.domClone": { argTypes: [null, DYN], result: VOID },
2609
+ /** `new AggregateError(errors, message?, options?)` (scr_json.c), in
2610
+ * spec order: newAggregate installs the message and cause (both dyn,
2611
+ * borrowed — the message conversion can throw) and returns an owned
2612
+ * %AggregateError; aggregateSetErrors then stores the iterated list
2613
+ * (borrowed receiver, the dyn array borrowed and retained).
2614
+ * aggregateErrors reads the list (+1, the same array every read). */
2615
+ "error.newAggregate": {
2616
+ argTypes: [DYN, DYN],
2617
+ result: { kind: "object", className: "%AggregateError" },
2618
+ },
2619
+ "error.aggregateSetErrors": { argTypes: [null, DYN], result: VOID },
2620
+ "error.aggregateErrors": { argTypes: [null], result: DYN },
2506
2621
  /** `d instanceof TypeError` (and the other BUILTIN error classes) on a
2507
2622
  * checked-dynamic value (scr_json.c): the from_error cache holds the
2508
2623
  * dyn↔error identity edge, so the test resolves the runtime error and
@@ -2560,6 +2675,12 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2560
2675
  * ("Cannot convert undefined or null to object"). */
2561
2676
  "dyn.objKeys": { argTypes: [DYN], result: DYN },
2562
2677
  "dyn.forInKeys": { argTypes: [DYN], result: DYN },
2678
+ "dyn.forInKeyStrings": { argTypes: [DYN], result: arrayOf(STRING) },
2679
+ "dyn.forInStable": { argTypes: [DYN], result: BOOL },
2680
+ "dyn.objKeyStrings": { argTypes: [DYN], result: arrayOf(STRING) },
2681
+ /** Object.entries as a native [string, any][] (VOID: the tuple row's
2682
+ * shape is program-dependent; the validator checks it). */
2683
+ "dyn.objEntryPairs": { argTypes: [DYN], result: VOID },
2563
2684
  "dyn.hasOwn": { argTypes: [DYN, STRING], result: BOOL },
2564
2685
  "dyn.propertyIsEnumerable": { argTypes: [DYN, STRING], result: BOOL },
2565
2686
  "dyn.assign": { argTypes: [DYN, DYN], result: DYN },
@@ -2649,6 +2770,12 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2649
2770
  "regex.resetLastIndex": { argTypes: [REGEX, F64], result: VOID },
2650
2771
  "regex.newChecked": { argTypes: [DYN, DYN], result: REGEX },
2651
2772
  "regex.replaceCallback": { argTypes: [STRING, REGEX, DYN, BOOL], result: STRING },
2773
+ // Reads of capture args[1] of an execSpans/matchGroups result:
2774
+ // `capture === args[2]`, Number(capture) and parseInt(capture,
2775
+ // args[2]). Borrowed; never throw.
2776
+ "regex.groupEquals": { argTypes: [arrayOf(STRING), F64, STRING], result: BOOL },
2777
+ "regex.groupNumber": { argTypes: [arrayOf(STRING), F64], result: F64 },
2778
+ "regex.groupParseInt": { argTypes: [arrayOf(STRING), F64, F64], result: F64 },
2652
2779
  // node:events EventEmitter: receivers are emitter-hierarchy objects and
2653
2780
  // the chaining forms (on/off/removeAll/setMax) return the receiver's
2654
2781
  // own class — program-dependent object types, checked in the libCall
@@ -2709,6 +2836,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2709
2836
  "emitter.getMax": { argTypes: [null], result: F64 },
2710
2837
  "emitter.setDefaultMax": { argTypes: [F64], result: VOID },
2711
2838
  "emitter.getDefaultMax": { argTypes: [], result: F64 },
2839
+ /** The events.errorMonitor event key: an immortal string the runtime
2840
+ * registry matches by identity, so no string event name reaches it. */
2841
+ "emitter.errorMonitor": { argTypes: [], result: STRING },
2712
2842
  // node:stream: receivers are stream-hierarchy objects and several
2713
2843
  // results are program-dependent (the receiver's class, unions) — the
2714
2844
  // libCall case owns those checks. The constructors and a few methods
@@ -2791,11 +2921,13 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2791
2921
  * machinery: (s) → a pending promise settled at the terminal point
2792
2922
  * with the accumulated result (sc.text: the utf8 decode, sc.json: the
2793
2923
  * parsed dyn — malformed input rejects with the parse's SyntaxError,
2794
- * sc.buffer: the concatenated bytes) or rejected with the stream's
2924
+ * sc.buffer: the concatenated bytes, sc.arrayBuffer: an ArrayBuffer
2925
+ * dyn over them) or rejected with the stream's
2795
2926
  * error / ERR_STREAM_PREMATURE_CLOSE. */
2796
2927
  "sc.text": { argTypes: [null], result: { kind: "promise", inner: STRING } },
2797
2928
  "sc.json": { argTypes: [null], result: { kind: "promise", inner: DYN } },
2798
2929
  "sc.buffer": { argTypes: [null], result: { kind: "promise", inner: BYTES_U8 } },
2930
+ "sc.arrayBuffer": { argTypes: [null], result: { kind: "promise", inner: DYN } },
2799
2931
  "readable.newDyn": { argTypes: [DYN], result: VOID },
2800
2932
  "writable.newDyn": { argTypes: [DYN], result: VOID },
2801
2933
  "duplex.newDyn": { argTypes: [DYN], result: VOID },
@@ -3148,14 +3280,23 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3148
3280
  * Node's payload. */
3149
3281
  "process.onRejectionHandled": { argTypes: [DYN, BOOL], result: VOID },
3150
3282
  "process.offRejectionHandled": { argTypes: [DYN], result: VOID },
3151
- /** process warnings (scr_lib.c): onWarning/offWarning register dyn
3152
- * listeners; emitWarning applies Node's full argument grammar over the
3153
- * call's dyn argument vector (ERR_INVALID_ARG_TYPE TypeErrors — MAY
3154
- * THROW; a listener throw propagates too) and always prints Node's
3155
- * stderr report. Emission is synchronous (SEMANTICS.md). */
3283
+ /** process warnings (scr_async_dyn.c): onWarning/offWarning register
3284
+ * dyn listeners; emitWarning applies Node's full argument grammar over
3285
+ * the call's dyn argument vector (ERR_INVALID_ARG_TYPE TypeErrors — MAY
3286
+ * THROW) and emits on the next tick, like Node: Node's stderr report,
3287
+ * then the listeners. */
3156
3288
  "process.onWarning": { argTypes: [DYN], result: VOID },
3157
3289
  "process.offWarning": { argTypes: [DYN], result: VOID },
3158
3290
  "process.emitWarning": { argTypes: [DYN], result: VOID },
3291
+ /** A Warning-typed process warning with this message (the console
3292
+ * members' warnings), emitted on the next tick as Node's emitWarning
3293
+ * does (so the loop runs); an empty message emits nothing. */
3294
+ "process.emitWarningText": { argTypes: [STRING], result: VOID },
3295
+ /** process.noDeprecation (0) / process.throwDeprecation (1): the stored
3296
+ * value (undefined until assigned) and its assignment. util.deprecate's
3297
+ * warnings and DeprecationWarning emissions read their truthiness. */
3298
+ "process.deprecationFlag": { argTypes: [F64], result: DYN },
3299
+ "process.setDeprecationFlag": { argTypes: [F64, DYN], result: VOID },
3159
3300
  /** AsyncLocalStorage (node:async_hooks — scr_async.c): stores are f64
3160
3301
  * handles; contexts are immutable fiber-carried snapshots (spawned
3161
3302
  * fibers inherit the spawner's — Node's init-time capture). run/exit
@@ -3251,8 +3392,8 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3251
3392
  * behavioral difference; ignoreBOM defaults to false). Inline calls
3252
3393
  * lower directly; stored decoder records dispatch by encoding id.
3253
3394
  * TextEncoder.encode needs no libFn: its matching forms
3254
- * lower to buffer.fromStr(s, "utf8") (identical bytes — ScrStr storage
3255
- * is well-formed UTF-8). Borrowed arg; owned (+1) string; never throws. */
3395
+ * lower to buffer.fromStr(s, "utf8") (identical bytes — both write each
3396
+ * lone surrogate as U+FFFD). Borrowed arg; owned (+1) string; never throws. */
3256
3397
  "text.decode": { argTypes: [BYTES_U8], result: STRING },
3257
3398
  "bytes.bufferSource": { argTypes: [DYN], result: BYTES_U8 },
3258
3399
  "text.decodeBufferSource": { argTypes: [DYN], result: STRING },