@scriptc/compiler 0.4.6 → 0.4.7

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 (652) hide show
  1. package/ambient/node-fallback/events.d.ts +6 -1
  2. package/ambient/node-fallback/fs-promises.d.ts +1 -1
  3. package/ambient/node-fallback/fs.d.ts +54 -10
  4. package/ambient/node-fallback/http.d.ts +3 -1
  5. package/ambient/node-fallback/net.d.ts +19 -0
  6. package/ambient/node-fallback/querystring.d.ts +3 -3
  7. package/ambient/scriptc-node-fallback.d.ts +58 -13
  8. package/dist/backend/executable-features.js +13 -0
  9. package/dist/backend/executable-features.js.map +1 -1
  10. package/dist/backend/immutability.d.ts +12 -1
  11. package/dist/backend/immutability.js +50 -4
  12. package/dist/backend/immutability.js.map +1 -1
  13. package/dist/backend/immutability.test.js +95 -1
  14. package/dist/backend/immutability.test.js.map +1 -1
  15. package/dist/backend/library-pack.js +2 -0
  16. package/dist/backend/library-pack.js.map +1 -1
  17. package/dist/backend/linker.d.ts +11 -0
  18. package/dist/backend/linker.js +31 -3
  19. package/dist/backend/linker.js.map +1 -1
  20. package/dist/backend/lld.d.ts +7 -2
  21. package/dist/backend/lld.js +5 -3
  22. package/dist/backend/lld.js.map +1 -1
  23. package/dist/backend/lld.test.js +10 -4
  24. package/dist/backend/lld.test.js.map +1 -1
  25. package/dist/backend/llvm/constant-callbacks.test.js +50 -1
  26. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  27. package/dist/backend/llvm/cpu-dispatch.js +6 -5
  28. package/dist/backend/llvm/cpu-dispatch.js.map +1 -1
  29. package/dist/backend/llvm/dyn.d.ts +53 -1
  30. package/dist/backend/llvm/dyn.js +221 -9
  31. package/dist/backend/llvm/dyn.js.map +1 -1
  32. package/dist/backend/llvm/emit-function.js +1 -1
  33. package/dist/backend/llvm/emit-function.js.map +1 -1
  34. package/dist/backend/llvm/emit-module.js +148 -50
  35. package/dist/backend/llvm/emit-module.js.map +1 -1
  36. package/dist/backend/llvm/emit-statements.js +39 -19
  37. package/dist/backend/llvm/emit-statements.js.map +1 -1
  38. package/dist/backend/llvm/emitter.d.ts +29 -2
  39. package/dist/backend/llvm/emitter.js +86 -7
  40. package/dist/backend/llvm/emitter.js.map +1 -1
  41. package/dist/backend/llvm/expr-calls.d.ts +4 -1
  42. package/dist/backend/llvm/expr-calls.js +20 -4
  43. package/dist/backend/llvm/expr-calls.js.map +1 -1
  44. package/dist/backend/llvm/expr-dynamic.js +209 -16
  45. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  46. package/dist/backend/llvm/expr-primitives.js +94 -11
  47. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  48. package/dist/backend/llvm/expr-stream-bridges.d.ts +8 -0
  49. package/dist/backend/llvm/expr-stream-bridges.js +42 -2
  50. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  51. package/dist/backend/llvm/expr-stream-callbacks.d.ts +16 -0
  52. package/dist/backend/llvm/expr-stream-callbacks.js +206 -20
  53. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  54. package/dist/backend/llvm/integer-values.d.ts +2 -0
  55. package/dist/backend/llvm/integer-values.js +6 -0
  56. package/dist/backend/llvm/integer-values.js.map +1 -1
  57. package/dist/backend/llvm/js-ic.d.ts +38 -0
  58. package/dist/backend/llvm/js-ic.js +295 -1
  59. package/dist/backend/llvm/js-ic.js.map +1 -1
  60. package/dist/backend/llvm/lib-dispatch.js +20 -0
  61. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  62. package/dist/backend/llvm/lib-filesystem.js +116 -11
  63. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  64. package/dist/backend/llvm/lib-process.js +136 -24
  65. package/dist/backend/llvm/lib-process.js.map +1 -1
  66. package/dist/backend/llvm/lib-shared.js +70 -0
  67. package/dist/backend/llvm/lib-shared.js.map +1 -1
  68. package/dist/backend/llvm/lib-stream.js +67 -0
  69. package/dist/backend/llvm/lib-stream.js.map +1 -1
  70. package/dist/backend/llvm/loop-entry-versions.d.ts +2 -2
  71. package/dist/backend/llvm/loop-entry-versions.js +43 -21
  72. package/dist/backend/llvm/loop-entry-versions.js.map +1 -1
  73. package/dist/backend/llvm/loop-state.d.ts +7 -1
  74. package/dist/backend/llvm/loop-state.js +20 -2
  75. package/dist/backend/llvm/loop-state.js.map +1 -1
  76. package/dist/backend/llvm/map-number-lookup.d.ts +3 -1
  77. package/dist/backend/llvm/map-number-lookup.js +7 -3
  78. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  79. package/dist/backend/llvm/map-number-lookup.test.js +52 -11
  80. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  81. package/dist/backend/llvm/receiver-brackets.test.d.ts +1 -0
  82. package/dist/backend/llvm/receiver-brackets.test.js +68 -0
  83. package/dist/backend/llvm/receiver-brackets.test.js.map +1 -0
  84. package/dist/backend/llvm/record-views.d.ts +22 -2
  85. package/dist/backend/llvm/record-views.js +139 -10
  86. package/dist/backend/llvm/record-views.js.map +1 -1
  87. package/dist/backend/llvm/record-views.test.js +76 -0
  88. package/dist/backend/llvm/record-views.test.js.map +1 -1
  89. package/dist/backend/llvm/reference-writes.js +1 -0
  90. package/dist/backend/llvm/reference-writes.js.map +1 -1
  91. package/dist/backend/llvm/shapes.d.ts +3 -0
  92. package/dist/backend/llvm/shapes.js +18 -3
  93. package/dist/backend/llvm/shapes.js.map +1 -1
  94. package/dist/backend/llvm/shapes.test.js +4 -0
  95. package/dist/backend/llvm/shapes.test.js.map +1 -1
  96. package/dist/backend/llvm/speculative-integers.d.ts +10 -1
  97. package/dist/backend/llvm/speculative-integers.js +59 -8
  98. package/dist/backend/llvm/speculative-integers.js.map +1 -1
  99. package/dist/backend/llvm/unwind-abi.d.ts +3 -3
  100. package/dist/backend/llvm/unwind-abi.js +8 -3
  101. package/dist/backend/llvm/unwind-abi.js.map +1 -1
  102. package/dist/backend/llvm/walkers.js +1 -1
  103. package/dist/backend/llvm/walkers.js.map +1 -1
  104. package/dist/backend/native/contracts.d.ts +54 -0
  105. package/dist/backend/native/executable.js +87 -5
  106. package/dist/backend/native/executable.js.map +1 -1
  107. package/dist/backend/native/library.js +1 -1
  108. package/dist/backend/native/library.js.map +1 -1
  109. package/dist/backend/native/runtime-inputs.js +5 -1
  110. package/dist/backend/native/runtime-inputs.js.map +1 -1
  111. package/dist/backend/native/vendor.d.ts +1 -1
  112. package/dist/backend/native/vendor.js +1 -1
  113. package/dist/backend/native/vendor.js.map +1 -1
  114. package/dist/backend/native-codegen.js +3 -0
  115. package/dist/backend/native-codegen.js.map +1 -1
  116. package/dist/backend/native-link-info-core.d.ts +43 -0
  117. package/dist/backend/native-link-info-core.js.map +1 -1
  118. package/dist/backend/native-link-info.js +1 -0
  119. package/dist/backend/native-link-info.js.map +1 -1
  120. package/dist/backend/native-profile.d.ts +4 -1
  121. package/dist/backend/native-profile.js +12 -1
  122. package/dist/backend/native-profile.js.map +1 -1
  123. package/dist/backend/native-profile.test.js +10 -0
  124. package/dist/backend/native-profile.test.js.map +1 -1
  125. package/dist/backend/publication.d.ts +4 -1
  126. package/dist/backend/publication.js +4 -2
  127. package/dist/backend/publication.js.map +1 -1
  128. package/dist/backend/runtime-abi.d.ts +2 -2
  129. package/dist/backend/runtime-abi.js +2 -2
  130. package/dist/backend/runtime-pack-core.d.ts +31 -7
  131. package/dist/backend/runtime-pack-core.js +21 -1
  132. package/dist/backend/runtime-pack-core.js.map +1 -1
  133. package/dist/backend/runtime-pack-native.d.ts +18 -1
  134. package/dist/backend/runtime-pack-native.js +138 -29
  135. package/dist/backend/runtime-pack-native.js.map +1 -1
  136. package/dist/backend/runtime-pack-native.test.js +166 -4
  137. package/dist/backend/runtime-pack-native.test.js.map +1 -1
  138. package/dist/backend/runtime-pack-targets.test.js +3 -1
  139. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  140. package/dist/backend/runtime-pack.d.ts +7 -0
  141. package/dist/backend/runtime-pack.js +25 -3
  142. package/dist/backend/runtime-pack.js.map +1 -1
  143. package/dist/backend/runtime-pack.test.js +3 -11
  144. package/dist/backend/runtime-pack.test.js.map +1 -1
  145. package/dist/backend/vendor-archives.d.ts +4 -1
  146. package/dist/backend/vendor-archives.js +264 -3
  147. package/dist/backend/vendor-archives.js.map +1 -1
  148. package/dist/backend/vendor-inputs.d.ts +36 -0
  149. package/dist/backend/vendor-inputs.js +42 -0
  150. package/dist/backend/vendor-inputs.js.map +1 -1
  151. package/dist/backend/vendor-inputs.test.js +28 -1
  152. package/dist/backend/vendor-inputs.test.js.map +1 -1
  153. package/dist/backend/warm-cache.js +2 -0
  154. package/dist/backend/warm-cache.js.map +1 -1
  155. package/dist/compat/fetch-profile.d.ts +7 -1
  156. package/dist/compat/fetch-profile.js +23 -10
  157. package/dist/compat/fetch-profile.js.map +1 -1
  158. package/dist/compile-types.d.ts +7 -0
  159. package/dist/contracts/check.d.ts +3 -0
  160. package/dist/contracts/check.js +18 -5
  161. package/dist/contracts/check.js.map +1 -1
  162. package/dist/coverage/surface-manifest.js +1 -1
  163. package/dist/coverage/surface-manifest.js.map +1 -1
  164. package/dist/diagnostics/codes.d.ts +6 -0
  165. package/dist/diagnostics/codes.js +6 -0
  166. package/dist/diagnostics/codes.js.map +1 -1
  167. package/dist/diagnostics/diagnostic.d.ts +50 -0
  168. package/dist/diagnostics/diagnostic.js +142 -3
  169. package/dist/diagnostics/diagnostic.js.map +1 -1
  170. package/dist/diagnostics/dynamic-tier.js +3 -1
  171. package/dist/diagnostics/dynamic-tier.js.map +1 -1
  172. package/dist/executable/executable-cache.d.ts +29 -0
  173. package/dist/executable/executable-cache.js +18 -0
  174. package/dist/executable/executable-cache.js.map +1 -1
  175. package/dist/executable/executable-cache.test.js +5 -1
  176. package/dist/executable/executable-cache.test.js.map +1 -1
  177. package/dist/executable/prepare.d.ts +13 -3
  178. package/dist/executable/prepare.js +271 -18
  179. package/dist/executable/prepare.js.map +1 -1
  180. package/dist/frontend/early-errors.d.ts +14 -0
  181. package/dist/frontend/early-errors.js +305 -0
  182. package/dist/frontend/early-errors.js.map +1 -0
  183. package/dist/frontend/early-errors.test.d.ts +1 -0
  184. package/dist/frontend/early-errors.test.js +42 -0
  185. package/dist/frontend/early-errors.test.js.map +1 -0
  186. package/dist/frontend/inferred-js-diagnostics.test.js +23 -0
  187. package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
  188. package/dist/frontend/input-tracker.d.ts +47 -0
  189. package/dist/frontend/input-tracker.js +173 -36
  190. package/dist/frontend/input-tracker.js.map +1 -1
  191. package/dist/frontend/input-tracker.test.js +86 -2
  192. package/dist/frontend/input-tracker.test.js.map +1 -1
  193. package/dist/frontend/js-inference.d.ts +2 -0
  194. package/dist/frontend/js-inference.js +18 -0
  195. package/dist/frontend/js-inference.js.map +1 -0
  196. package/dist/frontend/lowering/binding-analysis.d.ts +2 -1
  197. package/dist/frontend/lowering/binding-analysis.js +65 -1
  198. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  199. package/dist/frontend/lowering/builtin-calls.js +9 -0
  200. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  201. package/dist/frontend/lowering/builtin-namespaces.d.ts +1 -1
  202. package/dist/frontend/lowering/builtin-namespaces.js +19 -2
  203. package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
  204. package/dist/frontend/lowering/builtins/child-process-methods.d.ts +7 -0
  205. package/dist/frontend/lowering/builtins/child-process-methods.js +50 -10
  206. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  207. package/dist/frontend/lowering/builtins/child-process.js +5 -1
  208. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  209. package/dist/frontend/lowering/builtins/dates.d.ts +1 -1
  210. package/dist/frontend/lowering/builtins/dates.js +23 -1
  211. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  212. package/dist/frontend/lowering/builtins/environment.d.ts +55 -0
  213. package/dist/frontend/lowering/builtins/environment.js +213 -2
  214. package/dist/frontend/lowering/builtins/environment.js.map +1 -1
  215. package/dist/frontend/lowering/builtins/filesystem-calls.js +47 -16
  216. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  217. package/dist/frontend/lowering/builtins/filesystem.d.ts +25 -7
  218. package/dist/frontend/lowering/builtins/filesystem.js +185 -16
  219. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  220. package/dist/frontend/lowering/builtins/module-calls.js +39 -2
  221. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  222. package/dist/frontend/lowering/builtins/module-resolution.d.ts +8 -0
  223. package/dist/frontend/lowering/builtins/module-resolution.js +31 -5
  224. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
  225. package/dist/frontend/lowering/builtins/operating-system.d.ts +3 -2
  226. package/dist/frontend/lowering/builtins/operating-system.js +5 -4
  227. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  228. package/dist/frontend/lowering/builtins/process.d.ts +17 -1
  229. package/dist/frontend/lowering/builtins/process.js +285 -19
  230. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  231. package/dist/frontend/lowering/builtins/querystring.d.ts +8 -0
  232. package/dist/frontend/lowering/builtins/querystring.js +202 -18
  233. package/dist/frontend/lowering/builtins/querystring.js.map +1 -1
  234. package/dist/frontend/lowering/builtins/readline.js +21 -3
  235. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  236. package/dist/frontend/lowering/builtins/reflection.js +60 -1
  237. package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
  238. package/dist/frontend/lowering/builtins/text-codecs.js +208 -59
  239. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
  240. package/dist/frontend/lowering/builtins/url.js +20 -1
  241. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  242. package/dist/frontend/lowering/builtins/v8.d.ts +5 -5
  243. package/dist/frontend/lowering/builtins/v8.js +7 -5
  244. package/dist/frontend/lowering/builtins/v8.js.map +1 -1
  245. package/dist/frontend/lowering/builtins/web-streams-dyn.d.ts +17 -2
  246. package/dist/frontend/lowering/builtins/web-streams-dyn.js +97 -9
  247. package/dist/frontend/lowering/builtins/web-streams-dyn.js.map +1 -1
  248. package/dist/frontend/lowering/call-signatures.js +77 -0
  249. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  250. package/dist/frontend/lowering/cjs-exports-object.d.ts +3 -0
  251. package/dist/frontend/lowering/cjs-exports-object.js +1 -1
  252. package/dist/frontend/lowering/cjs-exports-object.js.map +1 -1
  253. package/dist/frontend/lowering/cjs-inline-require.js +5 -0
  254. package/dist/frontend/lowering/cjs-inline-require.js.map +1 -1
  255. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +5 -0
  256. package/dist/frontend/lowering/class-dynamic-dispatch.js +114 -0
  257. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  258. package/dist/frontend/lowering/class-protocols.js +59 -10
  259. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  260. package/dist/frontend/lowering/class-runtime-statics.js +15 -0
  261. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  262. package/dist/frontend/lowering/class-views.d.ts +13 -0
  263. package/dist/frontend/lowering/class-views.js +51 -0
  264. package/dist/frontend/lowering/class-views.js.map +1 -0
  265. package/dist/frontend/lowering/coercions/function-adapters.d.ts +15 -1
  266. package/dist/frontend/lowering/coercions/function-adapters.js +54 -10
  267. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  268. package/dist/frontend/lowering/coercions/state.d.ts +7 -0
  269. package/dist/frontend/lowering/coercions/state.js +7 -0
  270. package/dist/frontend/lowering/coercions/state.js.map +1 -1
  271. package/dist/frontend/lowering/coercions/structural-plans.js +60 -3
  272. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  273. package/dist/frontend/lowering/coercions/structural.js +29 -1
  274. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  275. package/dist/frontend/lowering/containers/array-callbacks.d.ts +8 -1
  276. package/dist/frontend/lowering/containers/array-callbacks.js +132 -28
  277. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  278. package/dist/frontend/lowering/containers/array-construction.js +16 -5
  279. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  280. package/dist/frontend/lowering/containers/array-methods.js +16 -0
  281. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  282. package/dist/frontend/lowering/containers/bytes.js +4 -0
  283. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  284. package/dist/frontend/lowering/containers/callback-arguments.d.ts +11 -0
  285. package/dist/frontend/lowering/containers/callback-arguments.js +53 -0
  286. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  287. package/dist/frontend/lowering/containers/filter-predicates.d.ts +10 -0
  288. package/dist/frontend/lowering/containers/filter-predicates.js +69 -3
  289. package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -1
  290. package/dist/frontend/lowering/containers/indexed-objects.js +46 -2
  291. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  292. package/dist/frontend/lowering/expressions/array-literals.d.ts +14 -0
  293. package/dist/frontend/lowering/expressions/array-literals.js +26 -10
  294. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  295. package/dist/frontend/lowering/expressions/binary.js +104 -12
  296. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  297. package/dist/frontend/lowering/expressions/element-access.js +121 -4
  298. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  299. package/dist/frontend/lowering/expressions/identifiers.js +143 -3
  300. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  301. package/dist/frontend/lowering/expressions/keyed-field-targets.d.ts +11 -1
  302. package/dist/frontend/lowering/expressions/keyed-field-targets.js +22 -1
  303. package/dist/frontend/lowering/expressions/keyed-field-targets.js.map +1 -1
  304. package/dist/frontend/lowering/expressions/narrowing.js +25 -1
  305. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  306. package/dist/frontend/lowering/expressions/object-literals.d.ts +5 -1
  307. package/dist/frontend/lowering/expressions/object-literals.js +778 -229
  308. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  309. package/dist/frontend/lowering/expressions/optional-chains.js +66 -20
  310. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  311. package/dist/frontend/lowering/expressions/property-access.d.ts +31 -0
  312. package/dist/frontend/lowering/expressions/property-access.js +796 -12
  313. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  314. package/dist/frontend/lowering/expressions/relational.js +29 -1
  315. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  316. package/dist/frontend/lowering/expressions/typeof.js +17 -0
  317. package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
  318. package/dist/frontend/lowering/expressions/updates.js +132 -17
  319. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  320. package/dist/frontend/lowering/frozen-records.d.ts +6 -0
  321. package/dist/frontend/lowering/frozen-records.js +10 -4
  322. package/dist/frontend/lowering/frozen-records.js.map +1 -1
  323. package/dist/frontend/lowering/frozen-records.test.d.ts +1 -0
  324. package/dist/frontend/lowering/frozen-records.test.js +44 -0
  325. package/dist/frontend/lowering/frozen-records.test.js.map +1 -0
  326. package/dist/frontend/lowering/function-names.d.ts +9 -0
  327. package/dist/frontend/lowering/function-names.js +95 -0
  328. package/dist/frontend/lowering/function-names.js.map +1 -0
  329. package/dist/frontend/lowering/function-returns.js +5 -3
  330. package/dist/frontend/lowering/function-returns.js.map +1 -1
  331. package/dist/frontend/lowering/generic-functions.d.ts +49 -0
  332. package/dist/frontend/lowering/generic-functions.js +365 -7
  333. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  334. package/dist/frontend/lowering/global-values.d.ts +9 -0
  335. package/dist/frontend/lowering/global-values.js +44 -0
  336. package/dist/frontend/lowering/global-values.js.map +1 -1
  337. package/dist/frontend/lowering/handle-properties.js +34 -1
  338. package/dist/frontend/lowering/handle-properties.js.map +1 -1
  339. package/dist/frontend/lowering/key-order-witness.d.ts +54 -0
  340. package/dist/frontend/lowering/key-order-witness.js +546 -5
  341. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  342. package/dist/frontend/lowering/lib-boundary.js +14 -0
  343. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  344. package/dist/frontend/lowering/lower-assert.js +110 -1
  345. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  346. package/dist/frontend/lowering/lower-builtin-values.d.ts +36 -6
  347. package/dist/frontend/lowering/lower-builtin-values.js +332 -58
  348. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  349. package/dist/frontend/lowering/lower-calls.d.ts +22 -1
  350. package/dist/frontend/lowering/lower-calls.js +427 -48
  351. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  352. package/dist/frontend/lowering/lower-calls.test.d.ts +1 -0
  353. package/dist/frontend/lowering/lower-calls.test.js +78 -0
  354. package/dist/frontend/lowering/lower-calls.test.js.map +1 -0
  355. package/dist/frontend/lowering/lower-classes.d.ts +16 -5
  356. package/dist/frontend/lowering/lower-classes.js +168 -51
  357. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  358. package/dist/frontend/lowering/lower-event-emitter.d.ts +9 -0
  359. package/dist/frontend/lowering/lower-event-emitter.js +383 -41
  360. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  361. package/dist/frontend/lowering/lower-exprs.d.ts +14 -0
  362. package/dist/frontend/lowering/lower-exprs.js +25 -0
  363. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  364. package/dist/frontend/lowering/lower-functions.js +2 -0
  365. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  366. package/dist/frontend/lowering/lower-inspect.js +80 -33
  367. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  368. package/dist/frontend/lowering/lower-modules.js +87 -25
  369. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  370. package/dist/frontend/lowering/lower-node-island.d.ts +35 -4
  371. package/dist/frontend/lowering/lower-node-island.js +456 -61
  372. package/dist/frontend/lowering/lower-node-island.js.map +1 -1
  373. package/dist/frontend/lowering/lower-server.js +160 -9
  374. package/dist/frontend/lowering/lower-server.js.map +1 -1
  375. package/dist/frontend/lowering/lower-shared-modules.js +13 -1
  376. package/dist/frontend/lowering/lower-shared-modules.js.map +1 -1
  377. package/dist/frontend/lowering/lower-stdlib.d.ts +3 -2
  378. package/dist/frontend/lowering/lower-stdlib.js +32 -18
  379. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  380. package/dist/frontend/lowering/lower-stmts.d.ts +21 -4
  381. package/dist/frontend/lowering/lower-stmts.js +580 -103
  382. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  383. package/dist/frontend/lowering/lower-stream.js +126 -8
  384. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  385. package/dist/frontend/lowering/lower-timers.js +133 -21
  386. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  387. package/dist/frontend/lowering/lowerer.d.ts +139 -3
  388. package/dist/frontend/lowering/lowerer.js +579 -43
  389. package/dist/frontend/lowering/lowerer.js.map +1 -1
  390. package/dist/frontend/lowering/lowerer.test.js +1 -1
  391. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  392. package/dist/frontend/lowering/module-namespace-elements.js +15 -0
  393. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  394. package/dist/frontend/lowering/new-target.js +2 -2
  395. package/dist/frontend/lowering/nullish-empty-pattern.d.ts +17 -0
  396. package/dist/frontend/lowering/nullish-empty-pattern.js +118 -0
  397. package/dist/frontend/lowering/nullish-empty-pattern.js.map +1 -0
  398. package/dist/frontend/lowering/partial-assertions.d.ts +39 -0
  399. package/dist/frontend/lowering/partial-assertions.js +195 -0
  400. package/dist/frontend/lowering/partial-assertions.js.map +1 -0
  401. package/dist/frontend/lowering/primitive-wrappers.d.ts +34 -0
  402. package/dist/frontend/lowering/primitive-wrappers.js +220 -0
  403. package/dist/frontend/lowering/primitive-wrappers.js.map +1 -0
  404. package/dist/frontend/lowering/private-statics.d.ts +46 -0
  405. package/dist/frontend/lowering/private-statics.js +322 -0
  406. package/dist/frontend/lowering/private-statics.js.map +1 -0
  407. package/dist/frontend/lowering/record-sources.d.ts +12 -1
  408. package/dist/frontend/lowering/record-sources.js +60 -0
  409. package/dist/frontend/lowering/record-sources.js.map +1 -1
  410. package/dist/frontend/lowering/strict-equality.d.ts +4 -0
  411. package/dist/frontend/lowering/strict-equality.js +14 -0
  412. package/dist/frontend/lowering/strict-equality.js.map +1 -1
  413. package/dist/frontend/lowering/surfaces.d.ts +27 -0
  414. package/dist/frontend/lowering/surfaces.js +135 -62
  415. package/dist/frontend/lowering/surfaces.js.map +1 -1
  416. package/dist/frontend/lowering/unit-journal.d.ts +128 -17
  417. package/dist/frontend/lowering/unit-journal.js +310 -53
  418. package/dist/frontend/lowering/unit-journal.js.map +1 -1
  419. package/dist/frontend/lowering/unit-journal.test.js +91 -3
  420. package/dist/frontend/lowering/unit-journal.test.js.map +1 -1
  421. package/dist/frontend/lowering/unit-reuse.d.ts +92 -0
  422. package/dist/frontend/lowering/unit-reuse.js +1008 -0
  423. package/dist/frontend/lowering/unit-reuse.js.map +1 -0
  424. package/dist/frontend/lowering/width-lift.d.ts +12 -0
  425. package/dist/frontend/npm-file-import.test.d.ts +1 -0
  426. package/dist/frontend/npm-file-import.test.js +76 -0
  427. package/dist/frontend/npm-file-import.test.js.map +1 -0
  428. package/dist/frontend/npm-static.js +17 -2
  429. package/dist/frontend/npm-static.js.map +1 -1
  430. package/dist/frontend/npm.d.ts +9 -0
  431. package/dist/frontend/npm.js +82 -0
  432. package/dist/frontend/npm.js.map +1 -1
  433. package/dist/frontend/pipeline-native.js +2 -1
  434. package/dist/frontend/pipeline-native.js.map +1 -1
  435. package/dist/frontend/pipeline.d.ts +4 -0
  436. package/dist/frontend/pipeline.js +68 -7
  437. package/dist/frontend/pipeline.js.map +1 -1
  438. package/dist/frontend/program-node.d.ts +3 -0
  439. package/dist/frontend/program-node.js +13 -6
  440. package/dist/frontend/program-node.js.map +1 -1
  441. package/dist/frontend/program.d.ts +9 -0
  442. package/dist/frontend/program.js +159 -7
  443. package/dist/frontend/program.js.map +1 -1
  444. package/dist/frontend/provenance-core.js +4 -0
  445. package/dist/frontend/provenance-core.js.map +1 -1
  446. package/dist/frontend/services.d.ts +14 -0
  447. package/dist/frontend/services.js +52 -2
  448. package/dist/frontend/services.js.map +1 -1
  449. package/dist/frontend/services.test.js +61 -1
  450. package/dist/frontend/services.test.js.map +1 -1
  451. package/dist/frontend/shape-inference/analyze.d.ts +5 -0
  452. package/dist/frontend/shape-inference/analyze.js +104 -4
  453. package/dist/frontend/shape-inference/analyze.js.map +1 -1
  454. package/dist/frontend/shape-inference/domain.js +0 -1
  455. package/dist/frontend/shape-inference/domain.js.map +1 -1
  456. package/dist/frontend/shape-inference/index.js +5 -1
  457. package/dist/frontend/shape-inference/index.js.map +1 -1
  458. package/dist/frontend/shape-inference/memo.d.ts +2 -1
  459. package/dist/frontend/shape-inference/memo.js +6 -2
  460. package/dist/frontend/shape-inference/memo.js.map +1 -1
  461. package/dist/frontend/shape-inference/overlay.d.ts +1 -1
  462. package/dist/frontend/shape-inference/overlay.js +116 -2
  463. package/dist/frontend/shape-inference/overlay.js.map +1 -1
  464. package/dist/frontend/shape-inference/static-objects.js +11 -6
  465. package/dist/frontend/shape-inference/static-objects.js.map +1 -1
  466. package/dist/frontend/source-phase-imports.test.d.ts +1 -0
  467. package/dist/frontend/source-phase-imports.test.js +37 -0
  468. package/dist/frontend/source-phase-imports.test.js.map +1 -0
  469. package/dist/frontend/ts7/ast-node.d.ts +6 -1
  470. package/dist/frontend/ts7/ast-node.js +12 -0
  471. package/dist/frontend/ts7/ast-node.js.map +1 -1
  472. package/dist/frontend/ts7/ast-wire-protocols.test.js +11 -3
  473. package/dist/frontend/ts7/ast-wire-protocols.test.js.map +1 -1
  474. package/dist/frontend/ts7/ast-wire.js +3 -5
  475. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  476. package/dist/frontend/ts7/checker-backend.d.ts +13 -0
  477. package/dist/frontend/ts7/checker-backend.js +84 -2
  478. package/dist/frontend/ts7/checker-backend.js.map +1 -1
  479. package/dist/frontend/ts7/checker-backend.test.js +126 -2
  480. package/dist/frontend/ts7/checker-backend.test.js.map +1 -1
  481. package/dist/frontend/ts7/program-host.d.ts +22 -1
  482. package/dist/frontend/ts7/program-host.js +49 -4
  483. package/dist/frontend/ts7/program-host.js.map +1 -1
  484. package/dist/frontend/ts7/program-host.test.js +83 -0
  485. package/dist/frontend/ts7/program-host.test.js.map +1 -1
  486. package/dist/frontend/ts7/rpc-process.d.ts +16 -1
  487. package/dist/frontend/ts7/rpc-process.js +170 -92
  488. package/dist/frontend/ts7/rpc-process.js.map +1 -1
  489. package/dist/frontend/ts7/rpc-process.test.js +49 -21
  490. package/dist/frontend/ts7/rpc-process.test.js.map +1 -1
  491. package/dist/frontend/tsc-codes.js +70 -0
  492. package/dist/frontend/tsc-codes.js.map +1 -1
  493. package/dist/frontend/type-mapper.d.ts +7 -2
  494. package/dist/frontend/type-mapper.js +148 -1
  495. package/dist/frontend/type-mapper.js.map +1 -1
  496. package/dist/index.d.ts +1 -1
  497. package/dist/index.js +152 -8
  498. package/dist/index.js.map +1 -1
  499. package/dist/ir/api.d.ts +1 -1
  500. package/dist/ir/api.js +1 -1
  501. package/dist/ir/api.js.map +1 -1
  502. package/dist/ir/build.d.ts +3 -2
  503. package/dist/ir/build.js +4 -2
  504. package/dist/ir/build.js.map +1 -1
  505. package/dist/ir/builtin-effects.js +53 -0
  506. package/dist/ir/builtin-effects.js.map +1 -1
  507. package/dist/ir/builtin-signatures.d.ts +1 -1
  508. package/dist/ir/builtin-signatures.js +211 -10
  509. package/dist/ir/builtin-signatures.js.map +1 -1
  510. package/dist/ir/codec.d.ts +82 -0
  511. package/dist/ir/codec.generated.d.ts +13 -0
  512. package/dist/ir/codec.generated.js +5274 -0
  513. package/dist/ir/codec.generated.js.map +1 -0
  514. package/dist/ir/codec.js +325 -0
  515. package/dist/ir/codec.js.map +1 -0
  516. package/dist/ir/codec.test.d.ts +1 -0
  517. package/dist/ir/codec.test.js +225 -0
  518. package/dist/ir/codec.test.js.map +1 -0
  519. package/dist/ir/fields.generated.d.ts +20 -10
  520. package/dist/ir/fields.generated.js +1031 -11
  521. package/dist/ir/fields.generated.js.map +1 -1
  522. package/dist/ir/fields.test.js +46 -2
  523. package/dist/ir/fields.test.js.map +1 -1
  524. package/dist/ir/function-references.d.ts +5 -4
  525. package/dist/ir/function-references.js +8 -4
  526. package/dist/ir/function-references.js.map +1 -1
  527. package/dist/ir/function-references.test.js +7 -0
  528. package/dist/ir/function-references.test.js.map +1 -1
  529. package/dist/ir/inline-array-sources.js +4 -1
  530. package/dist/ir/inline-array-sources.js.map +1 -1
  531. package/dist/ir/inline-array-views.d.ts +13 -0
  532. package/dist/ir/inline-array-views.js +944 -0
  533. package/dist/ir/inline-array-views.js.map +1 -0
  534. package/dist/ir/inline-arrays.d.ts +7 -0
  535. package/dist/ir/inline-arrays.js +190 -55
  536. package/dist/ir/inline-arrays.js.map +1 -1
  537. package/dist/ir/inline-arrays.test.js +140 -2
  538. package/dist/ir/inline-arrays.test.js.map +1 -1
  539. package/dist/ir/integer-ranges.js +16 -6
  540. package/dist/ir/integer-ranges.js.map +1 -1
  541. package/dist/ir/ir.d.ts +75 -44
  542. package/dist/ir/ir.js.map +1 -1
  543. package/dist/ir/js-ic.d.ts +10 -9
  544. package/dist/ir/js-ic.js +28 -20
  545. package/dist/ir/js-ic.js.map +1 -1
  546. package/dist/ir/js-ic.test.js +10 -2
  547. package/dist/ir/js-ic.test.js.map +1 -1
  548. package/dist/ir/jsval.js +374 -63
  549. package/dist/ir/jsval.js.map +1 -1
  550. package/dist/ir/jsval.test.js +96 -2
  551. package/dist/ir/jsval.test.js.map +1 -1
  552. package/dist/ir/loop-entry-ranges.js +112 -9
  553. package/dist/ir/loop-entry-ranges.js.map +1 -1
  554. package/dist/ir/loop-entry-ranges.test.js +40 -0
  555. package/dist/ir/loop-entry-ranges.test.js.map +1 -1
  556. package/dist/ir/parameter-versions.d.ts +2 -1
  557. package/dist/ir/parameter-versions.js +3 -1
  558. package/dist/ir/parameter-versions.js.map +1 -1
  559. package/dist/ir/receiver-readers.js +58 -2
  560. package/dist/ir/receiver-readers.js.map +1 -1
  561. package/dist/ir/runtime-features.d.ts +60 -1
  562. package/dist/ir/runtime-features.js +277 -2
  563. package/dist/ir/runtime-features.js.map +1 -1
  564. package/dist/ir/runtime-features.test.js +165 -1
  565. package/dist/ir/runtime-features.test.js.map +1 -1
  566. package/dist/ir/saturating-loop-jams.d.ts +8 -1
  567. package/dist/ir/saturating-loop-jams.js +46 -7
  568. package/dist/ir/saturating-loop-jams.js.map +1 -1
  569. package/dist/ir/saturating-loop-jams.test.js +39 -1
  570. package/dist/ir/saturating-loop-jams.test.js.map +1 -1
  571. package/dist/ir/self-captures.js +8 -1
  572. package/dist/ir/self-captures.js.map +1 -1
  573. package/dist/ir/self-captures.test.js +15 -0
  574. package/dist/ir/self-captures.test.js.map +1 -1
  575. package/dist/ir/serialize.d.ts +3 -2
  576. package/dist/ir/serialize.js +6 -2
  577. package/dist/ir/serialize.js.map +1 -1
  578. package/dist/ir/validate.js +82 -4
  579. package/dist/ir/validate.js.map +1 -1
  580. package/dist/ir/validate.test.js +46 -0
  581. package/dist/ir/validate.test.js.map +1 -1
  582. package/dist/library/ir-policy.js +3 -0
  583. package/dist/library/ir-policy.js.map +1 -1
  584. package/dist/native/cache.js +2 -0
  585. package/dist/native/cache.js.map +1 -1
  586. package/dist/native/cli.js +2 -0
  587. package/dist/native/cli.js.map +1 -1
  588. package/dist/native/compiler.js +8 -2
  589. package/dist/native/compiler.js.map +1 -1
  590. package/dist/native/prepare.js +32 -3
  591. package/dist/native/prepare.js.map +1 -1
  592. package/dist/native/sanitizer.js +53 -3
  593. package/dist/native/sanitizer.js.map +1 -1
  594. package/dist/native/sanitizer.test.js +88 -2
  595. package/dist/native/sanitizer.test.js.map +1 -1
  596. package/dist/native/toolchain.js +9 -2
  597. package/dist/native/toolchain.js.map +1 -1
  598. package/dist/node-islands/boundary.d.ts +25 -1
  599. package/dist/node-islands/boundary.js +28 -2
  600. package/dist/node-islands/boundary.js.map +1 -1
  601. package/dist/node-islands/detect.d.ts +18 -1
  602. package/dist/node-islands/detect.js +365 -40
  603. package/dist/node-islands/detect.js.map +1 -1
  604. package/dist/node-islands/detect.test.js +151 -4
  605. package/dist/node-islands/detect.test.js.map +1 -1
  606. package/dist/node-islands/effect-gate.js +30 -20
  607. package/dist/node-islands/effect-gate.js.map +1 -1
  608. package/dist/node-islands/effect-gate.test.js +4 -1
  609. package/dist/node-islands/effect-gate.test.js.map +1 -1
  610. package/dist/node-islands/libnode.d.ts +1 -1
  611. package/dist/node-islands/libnode.js +1 -1
  612. package/dist/node-islands/libnode.js.map +1 -1
  613. package/dist/node-islands/modules.d.ts +28 -0
  614. package/dist/node-islands/modules.js +156 -0
  615. package/dist/node-islands/modules.js.map +1 -1
  616. package/dist/node-islands/modules.test.js +105 -1
  617. package/dist/node-islands/modules.test.js.map +1 -1
  618. package/dist/node-islands/policy.js +2 -3
  619. package/dist/node-islands/policy.js.map +1 -1
  620. package/dist/node-islands/probe-recorder.d.ts +1 -0
  621. package/dist/node-islands/probe-recorder.js +596 -0
  622. package/dist/node-islands/probe-recorder.js.map +1 -0
  623. package/dist/node-islands/probe-recorder.test.d.ts +1 -0
  624. package/dist/node-islands/probe-recorder.test.js +80 -0
  625. package/dist/node-islands/probe-recorder.test.js.map +1 -0
  626. package/dist/node-islands/report.test.js +2 -0
  627. package/dist/node-islands/report.test.js.map +1 -1
  628. package/dist/node-islands/rules.js +4 -0
  629. package/dist/node-islands/rules.js.map +1 -1
  630. package/dist/node-islands/scan.d.ts +7 -1
  631. package/dist/node-islands/scan.js +51 -2
  632. package/dist/node-islands/scan.js.map +1 -1
  633. package/dist/node-islands/snapshot.d.ts +38 -1
  634. package/dist/node-islands/snapshot.js +165 -161
  635. package/dist/node-islands/snapshot.js.map +1 -1
  636. package/dist/node-islands/snapshot.test.js +63 -2
  637. package/dist/node-islands/snapshot.test.js.map +1 -1
  638. package/dist/node-islands/summary.js +8 -0
  639. package/dist/node-islands/summary.js.map +1 -1
  640. package/dist/node-islands/type-strip.d.ts +11 -0
  641. package/dist/node-islands/type-strip.js +157 -0
  642. package/dist/node-islands/type-strip.js.map +1 -0
  643. package/dist/node-islands/type-strip.test.d.ts +1 -0
  644. package/dist/node-islands/type-strip.test.js +31 -0
  645. package/dist/node-islands/type-strip.test.js.map +1 -0
  646. package/dist/project-config.d.ts +4 -0
  647. package/dist/project-config.js +19 -0
  648. package/dist/project-config.js.map +1 -1
  649. package/dist/project-config.test.js +10 -0
  650. package/dist/project-config.test.js.map +1 -1
  651. package/package.json +20 -20
  652. package/surface-manifest.json +43 -11
@@ -204,6 +204,8 @@ function buildLibFnSignatures() {
204
204
  "dyn.keyDelete": { argTypes: [DYN, STRING, BOOL], result: VOID },
205
205
  "dyn.keyDeleteComputed": { argTypes: [DYN, DYN, BOOL], result: VOID },
206
206
  "dyn.reflectDeleteProperty": { argTypes: [DYN, DYN], result: BOOL },
207
+ /** Reflect.has's target check: Node's TypeError for a primitive. */
208
+ "dyn.reflectHasTarget": { argTypes: [DYN], result: VOID },
207
209
  "dyn.hasKeyComputed": { argTypes: [DYN, DYN], result: BOOL },
208
210
  "dyn.hasOwnComputed": { argTypes: [DYN, DYN], result: BOOL },
209
211
  "dyn.propertyIsEnumerableComputed": { argTypes: [DYN, DYN], result: BOOL },
@@ -349,8 +351,22 @@ function buildLibFnSignatures() {
349
351
  * the may-throw seed set. */
350
352
  "dyn.defineProps": { argTypes: [DYN, DYN], result: DYN },
351
353
  "dyn.defineProperty": { argTypes: [DYN, DYN, DYN], result: DYN },
354
+ /** dyn.defineProps / dyn.defineProperty / dyn.objCreateWithProperties
355
+ * for a descriptor (or a property-descriptor map) built by an expression
356
+ * instead of a plain object literal: ToPropertyDescriptor accepts any
357
+ * object and reads each field through [[HasProperty]] and [[Get]]. */
358
+ "dyn.definePropsShapes": { argTypes: [DYN, DYN], result: DYN },
359
+ "dyn.definePropertyShapes": { argTypes: [DYN, DYN, DYN], result: DYN },
360
+ "dyn.objCreateWithPropertiesShapes": { argTypes: [DYN, DYN], result: DYN },
352
361
  "dyn.getOwnPropertyDescriptor": { argTypes: [DYN, DYN], result: DYN },
353
362
  "dyn.arrayProtoCall": { argTypes: [DYN, STRING, DYN], result: DYN },
363
+ /** The same call through the array-like unit (JavaScript sources):
364
+ * Array.prototype's generic algorithms over a receiver that is not a
365
+ * native array, and the invoke unit's dispatch for everything else. */
366
+ "dyn.arrayLikeProtoCall": { argTypes: [DYN, STRING, DYN], result: DYN },
367
+ /** Number.prototype / Boolean.prototype as JavaScript values: the
368
+ * prototype object (dyn.builtinPrototype unit). */
369
+ "dyn.builtinPrototype": { argTypes: [STRING], result: DYN },
354
370
  /** Promise.all / Promise.allSettled / Promise.any over a spread
355
371
  * checked-dynamic array: the values, the settled-record array, or the
356
372
  * first fulfillment (AggregateError once every entry rejects).
@@ -406,6 +422,13 @@ function buildLibFnSignatures() {
406
422
  "module.cacheHas": { argTypes: [STRING], result: BOOL },
407
423
  "module.cacheKeys": { argTypes: [], result: arrayOf(STRING) },
408
424
  "timers.setTimeout": { argTypes: [{ kind: "func", params: [], ret: VOID }, F64], result: VOID },
425
+ /** A setTimeout/setInterval delay that is not a literal in [1, 2^31-1]:
426
+ * the delay unchanged, after the warning Node's Timeout constructor
427
+ * emits when it sets the delay to 1 (scr_timer_user_delay). The second
428
+ * argument is 0 for the global setTimeout, 1 for the global
429
+ * setInterval and 2 for a node:timers import, plus 4 for a delay read
430
+ * from an array element. */
431
+ "timers.userDelay": { argTypes: [F64, F64], result: F64 },
409
432
  /** The repeating timer pair. setInterval takes (callback, ms) like
410
433
  * setTimeout and RETURNS the f64 handle the fallback declarations
411
434
  * promise (ids start at 1, so truthiness narrowing works); the loop
@@ -552,6 +575,11 @@ function buildLibFnSignatures() {
552
575
  * alive. Invalid callbacks and uncatchable signals throw. */
553
576
  "process.onSignal": { argTypes: [STRING, DYN, BOOL], result: VOID },
554
577
  "process.offSignal": { argTypes: [STRING, DYN], result: VOID },
578
+ /** process.prependListener(<signal>, cb): the same listener in front of
579
+ * the signal's existing registrations (Node appends with `on`, so the
580
+ * two differ only in dispatch order). Never `once` — that is
581
+ * prependOnceListener, which has no lowering. */
582
+ "process.prependSignal": { argTypes: [STRING, DYN], result: VOID },
555
583
  /** The process 'exit' event — process.on/once/off("exit"). args: [cb,
556
584
  * once bool] / [cb]. Listeners run SYNCHRONOUSLY at termination
557
585
  * (normal exit, process.exit(), the uncaught/unhandled exit-1 paths)
@@ -560,6 +588,9 @@ function buildLibFnSignatures() {
560
588
  * picks the runtime adapter. Never throw. */
561
589
  "process.onExit": { argTypes: [null, BOOL], result: VOID },
562
590
  "process.offExit": { argTypes: [null], result: VOID },
591
+ /** process.prependListener("exit", cb): the same listener in front of
592
+ * the exit registry's existing entries. */
593
+ "process.prependExit": { argTypes: [null], result: VOID },
563
594
  /** process.stdin listener registration — stdin.on/once("data" | "end" |
564
595
  * "error", cb). args: [cb, once bool]. data callbacks: () => void or
565
596
  * (chunk: Uint8Array) => void; end: () => void; error: () => void or
@@ -755,17 +786,28 @@ function buildLibFnSignatures() {
755
786
  * value: path and options arrive unchecked; the result is a string or a
756
787
  * Buffer by the options' encoding. */
757
788
  "fs.realpathValue": { argTypes: [DYN, DYN, BOOL], result: DYN },
789
+ // Builtin functions read as values: validateString under Node's argument
790
+ // name, and node:path's value adapters (scr_builtin_values.c).
791
+ "dyn.validateString": { argTypes: [DYN, STRING], result: STRING },
792
+ "dyn.validateStrings": { argTypes: [DYN, STRING], result: arrayOf(STRING) },
793
+ "path.resolveValue": { argTypes: [DYN, BOOL], result: STRING },
794
+ "path.parseValue": { argTypes: [DYN, BOOL], result: DYN },
795
+ "path.formatValue": { argTypes: [DYN, BOOL], result: DYN },
796
+ "path.toNamespacedValue": { argTypes: [DYN, BOOL], result: DYN },
758
797
  /** Native realpath with syscall "realpath" on failure. +1 fresh string. */
759
798
  "fs.realpathNativeSync": { argTypes: [STRING], result: STRING },
760
- /** The os.userInfo() field trio (uv_os_get_passwd's slices): pw_name,
761
- * pw_shell, pw_dir — the PASSWD homedir, not os.homedir's $HOME-first
762
- * cascade (Node's own split). The frontend assembles the UserInfo
763
- * record from these plus getuid/getgid. +1 fresh strings; a passwd
764
- * lookup failure aborts (Node throws a system error there — no
765
- * compiled program path reaches it for the running uid). */
799
+ /** The os.userInfo() fields (uv_os_get_passwd's slices of the passwd
800
+ * entry for the effective uid): pw_name, pw_shell, pw_dir — the PASSWD
801
+ * homedir, not os.homedir's $HOME-first cascade (Node's own split) —
802
+ * and pw_uid, pw_gid (-1 on Windows). The frontend assembles the
803
+ * UserInfo record from these. +1 fresh strings; a passwd lookup
804
+ * failure aborts (Node throws a system error there — no compiled
805
+ * program path reaches it for the running uid). */
766
806
  "os.userName": { argTypes: [], result: STRING },
767
807
  "os.userShell": { argTypes: [], result: STRING },
768
808
  "os.userHomedir": { argTypes: [], result: STRING },
809
+ "os.userUid": { argTypes: [], result: F64 },
810
+ "os.userGid": { argTypes: [], result: F64 },
769
811
  "os.tmpdir": { argTypes: [], result: STRING },
770
812
  // Result is the call site's Dict<NetworkInterfaceInfo[]> record (VOID is
771
813
  // the dgram.address sentinel — the libCall case checks the structure).
@@ -952,6 +994,20 @@ function buildLibFnSignatures() {
952
994
  * grouping every three integer digits, "∞"/"NaN" texts, and "-0" for
953
995
  * negative inputs rounding to zero. Result +1; never throws. */
954
996
  "intl.numFormatEnUs": { argTypes: [F64], result: STRING },
997
+ /** `x.toLocaleString()` at the default locale: the same ICU number
998
+ * engine V8 uses, over the full ICU data (scr_intl.c). Throws an Error
999
+ * when the ICU data file is missing. Result +1. */
1000
+ "icu.numFormatDefault": { argTypes: [F64], result: STRING },
1001
+ /** `process.config.variables.v8_enable_i18n_support`: the number 1, as
1002
+ * Node (which bundles ICU) answers. Reading it selects the `icu`
1003
+ * runtime feature, so the binary that reports ICU is the binary that
1004
+ * carries it (scr_intl.c). */
1005
+ "icu.i18nSupport": { argTypes: [], result: F64 },
1006
+ /** `d.toLocaleString()` / `d.toLocaleTimeString()` at the default
1007
+ * locale over `d`'s time value (scr_intl.c). Throws an Error when the
1008
+ * ICU data file is missing. Result +1. */
1009
+ "icu.dateLocaleString": { argTypes: [DATE_T], result: STRING },
1010
+ "icu.dateLocaleTimeString": { argTypes: [DATE_T], result: STRING },
955
1011
  /** ES Symbol values (scr_symbol.c — link-gated by moduleUsesSymbol).
956
1012
  * sym.new: `Symbol(desc)` — a fresh runtime-unique identity (+1) whose
957
1013
  * one arg is the description string (borrowed); sym.newAnon is the
@@ -1154,8 +1210,21 @@ function buildLibFnSignatures() {
1154
1210
  * All borrow; string results +1; escape and stringify throw URIError
1155
1211
  * [ERR_INVALID_URI] on a lone surrogate. */
1156
1212
  "qs.parse": { argTypes: [STRING, STRING, STRING, F64], result: VOID },
1213
+ /** parse with a decodeURIComponent option: qs, sep, eq, maxKeys and
1214
+ * the option's value (a function decodes; any other value means the
1215
+ * default decoder). The result is the same dictionary as qs.parse's. */
1216
+ "qs.parseCustom": { argTypes: [STRING, STRING, STRING, F64, DYN], result: VOID },
1157
1217
  "qs.stringify": { argTypes: [DYN, STRING, STRING], result: STRING },
1218
+ /** stringify with an encodeURIComponent option's value. */
1219
+ "qs.stringifyCustom": { argTypes: [DYN, STRING, STRING, DYN], result: STRING },
1220
+ /** A sep/eq argument that may not be a string: (value, default, parse). */
1221
+ "qs.separator": { argTypes: [DYN, STRING, BOOL], result: STRING },
1222
+ /** unescapeBuffer(s, decodeSpaces) as a new Buffer. */
1223
+ "qs.unescapeBuffer": { argTypes: [STRING, BOOL], result: BYTES_U8 },
1158
1224
  "qs.escape": { argTypes: [STRING], result: STRING },
1225
+ /** escape of a value that may not be a string: String(value) for an
1226
+ * object or null, value + "" otherwise (a symbol throws TypeError). */
1227
+ "qs.escapeValue": { argTypes: [DYN], result: STRING },
1159
1228
  "qs.unescape": { argTypes: [STRING], result: STRING },
1160
1229
  /** node:util.parseArgs: one checked-dynamic config object in, one
1161
1230
  * checked-dynamic ParsedResults tree out. Statically typed member reads
@@ -1256,6 +1325,23 @@ function buildLibFnSignatures() {
1256
1325
  "fs.watch": { argTypes: [STRING], result: FSWATCHER_T },
1257
1326
  "fs.watchCb": { argTypes: [STRING, null], result: FSWATCHER_T },
1258
1327
  "watcher.close": { argTypes: [FSWATCHER_T], result: VOID },
1328
+ // FSWatcher's EventEmitter surface: (receiver, event code, once|prepend
1329
+ // flags, listener) for on/once/addListener/prependListener/
1330
+ // prependOnceListener, and (receiver, event code, listener) for
1331
+ // off/removeListener. The listener's func type is program-dependent;
1332
+ // the null slot pins the arity and the receiver.
1333
+ "watcher.on": { argTypes: [FSWATCHER_T, F64, F64, null], result: VOID },
1334
+ "watcher.off": { argTypes: [FSWATCHER_T, F64, null], result: VOID },
1335
+ /** fs.watchFile(path, interval, persistent, listener) → void
1336
+ * (scr_watch_file.c — its own gated unit; moduleUsesFsWatchFile is the
1337
+ * switch, and scr_watch_file_install() is emitted with it). One
1338
+ * libuv-shaped stat poller per RESOLVED path, shared by every listener
1339
+ * on it; the listener's (current, previous) Stats func type is
1340
+ * program-dependent, so the slot pins the arity. Statement position
1341
+ * only (Node returns a StatWatcher). fs.unwatchFile(path[, listener])
1342
+ * takes a borrowed listener; the null slot is the absent one. */
1343
+ "fs.watchFile": { argTypes: [STRING, F64, BOOL, null], result: VOID },
1344
+ "fs.unwatchFile": { argTypes: [STRING, null], result: VOID },
1259
1345
  /** The composed `new crypto.X509Certificate(data).fingerprint` read
1260
1346
  * (scr_lib.c — no certificate handle exists): the SHA-1 of the DER,
1261
1347
  * uppercase colon-separated, over PEM or raw-DER Buffer input; other
@@ -1392,6 +1478,12 @@ function buildLibFnSignatures() {
1392
1478
  * clamped like ftruncateSync's) and closes it. */
1393
1479
  "fs.truncateSync": { argTypes: [STRING, F64], result: VOID },
1394
1480
  "fs.copyFileSync": { argTypes: [STRING, STRING], result: VOID },
1481
+ /** copyFileSync(src, dest, mode): libuv's uv_fs_copyfile flag bits —
1482
+ * COPYFILE_EXCL (1) fails on an existing destination, COPYFILE_FICLONE
1483
+ * (2) requests a reflink and falls back to a copy, COPYFILE_FICLONE_FORCE
1484
+ * (4) requires one. Out-of-range modes throw the RangeError Node throws
1485
+ * ("mode is out of range: >= 0 && <= 7"). */
1486
+ "fs.copyFileFlagsSync": { argTypes: [STRING, STRING, F64], result: VOID },
1395
1487
  /** renameSync is the direct two-path syscall wrapper. renameCb defers
1396
1488
  * the operation to the loop and fires a program-shaped Error | null
1397
1489
  * callback through a backend-emitted adapter. */
@@ -1399,6 +1491,10 @@ function buildLibFnSignatures() {
1399
1491
  // Callback type is program-dependent (zero params or Error | null).
1400
1492
  "fs.renameCb": { argTypes: [STRING, STRING, null], result: VOID },
1401
1493
  "fs.writeFileModeSync": { argTypes: [STRING, STRING, F64], result: VOID },
1494
+ /** writeFileSync(path, data, { mode, flag }): the same open(2) write
1495
+ * with the disposition flag — flag 1 is "wx" (O_EXCL: EEXIST when the
1496
+ * path exists), 0 is "w" (the default truncate-or-create). */
1497
+ "fs.writeFileFlagsSync": { argTypes: [STRING, STRING, F64, F64], result: VOID },
1402
1498
  "fs.mkdirModeSync": { argTypes: [STRING, F64], result: VOID },
1403
1499
  "fs.mkdirRecursiveModeSync": { argTypes: [STRING, F64], result: VOID },
1404
1500
  "atomics.wait": { argTypes: [bytesOf("i32"), F64, F64, F64], result: STRING },
@@ -1574,6 +1670,12 @@ function buildLibFnSignatures() {
1574
1670
  result: VOID,
1575
1671
  },
1576
1672
  "net.serverOnConnection": { argTypes: [NETSERVER_T, null, BOOL], result: VOID },
1673
+ /** server.off(event, listener) / removeListener: [server, listener
1674
+ * closure, list kind]. The kind selects the event's registry (1 error,
1675
+ * 2 close, 3 listening, 4 connection/secureConnection, 5 timeout,
1676
+ * 6 drop — the scr_net.h SCR_NET_OFF_* values); Node removes the most
1677
+ * recently added matching listener. Never throws. */
1678
+ "net.serverOff": { argTypes: [NETSERVER_T, null, F64], result: VOID },
1577
1679
  /** 'secureConnection' — the TLS server's deferred 'connection' list
1578
1680
  * (handshake-completion timing); on a server without deferred
1579
1681
  * connections (a plain net server) the registration never fires,
@@ -1591,6 +1693,7 @@ function buildLibFnSignatures() {
1591
1693
  * compiler-rendered fence — ALWAYS THROWS (the error.nodeThrow
1592
1694
  * polymorphic-result carve-out). May-throw seed. */
1593
1695
  "net.connectOptsChk": { argTypes: [DYN, STRING], result: VOID },
1696
+ "net.listenPortDyn": { argTypes: [DYN, STRING], result: F64 },
1594
1697
  "net.connectCb": {
1595
1698
  argTypes: [F64, STRING, { kind: "func", params: [], ret: VOID }],
1596
1699
  result: NETSOCKET_T,
@@ -2074,6 +2177,8 @@ function buildLibFnSignatures() {
2074
2177
  "http.reqHttpVersionMajor": { argTypes: [HTTPREQ_T], result: F64 },
2075
2178
  "http.reqHttpVersionMinor": { argTypes: [HTTPREQ_T], result: F64 },
2076
2179
  "http.reqAborted": { argTypes: [HTTPREQ_T], result: BOOL },
2180
+ "http.reqDestroyed": { argTypes: [HTTPREQ_T], result: BOOL },
2181
+ "http.resDestroyed": { argTypes: [HTTPRES_T], result: BOOL },
2077
2182
  "http.reqComplete": { argTypes: [HTTPREQ_T], result: BOOL },
2078
2183
  "http.resDestroy": { argTypes: [HTTPRES_T], result: VOID },
2079
2184
  "http.resOnClose": {
@@ -3422,6 +3527,17 @@ function buildLibFnSignatures() {
3422
3527
  argTypes: [STRING, STRING, F64],
3423
3528
  result: { kind: "promise", inner: VOID },
3424
3529
  },
3530
+ /** fs.promises.writeFile(path, data, { mode, flag }) and
3531
+ * fs.promises.copyFile(src, dest, mode): the settled-promise twins of
3532
+ * fs.writeFileFlagsSync and fs.copyFileFlagsSync. */
3533
+ "fsp.writeFileFlags": {
3534
+ argTypes: [STRING, STRING, F64, F64],
3535
+ result: { kind: "promise", inner: VOID },
3536
+ },
3537
+ "fsp.copyFileFlags": {
3538
+ argTypes: [STRING, STRING, F64],
3539
+ result: { kind: "promise", inner: VOID },
3540
+ },
3425
3541
  "fsp.mkdir": { argTypes: [STRING], result: { kind: "promise", inner: VOID } },
3426
3542
  /** The fs/promises option/member tail the certs pipeline uses: mkdir's
3427
3543
  * literal { recursive?, mode? } options (the mkdirSync matrix behind
@@ -3620,6 +3736,7 @@ function buildLibFnSignatures() {
3620
3736
  "process.versions": { argTypes: [], result: DYN },
3621
3737
  "process.builtinId": { argTypes: [DYN, arrayOf(STRING)], result: STRING },
3622
3738
  "process.builtinModule": { argTypes: [STRING, DYN], result: DYN },
3739
+ "process.builtinObject": { argTypes: [STRING, DYN, arrayOf(STRING)], result: DYN },
3623
3740
  "process.builtinUnsupported": { argTypes: [STRING, STRING], result: DYN },
3624
3741
  /** A module namespace object as a checked-dynamic value
3625
3742
  * (scr_module_namespace_value): the module id, its sorted export names
@@ -3630,6 +3747,33 @@ function buildLibFnSignatures() {
3630
3747
  * names, the compiled getter, and the Symbol.toStringTag key. Draws
3631
3748
  * Node's frozen null-prototype object, one per module. Never throws. */
3632
3749
  "module.namespaceDyn": { argTypes: [STRING, arrayOf(STRING), DYN, DYN], result: DYN },
3750
+ /** A primitive wrapper object (scr_js_wrapper_new): the kind
3751
+ * (0 String, 1 Number, 2 Boolean), the value it converts, and the three
3752
+ * constructor values for the prototypes' `constructor`. */
3753
+ "wrapper.new": { argTypes: [F64, DYN, DYN, DYN, DYN], result: DYN },
3754
+ /** ToObject (scr_js_wrapper_to_object): a wrapper for a primitive, the
3755
+ * value for an object, a fresh object for null/undefined; then the
3756
+ * three constructor values. */
3757
+ "wrapper.toObject": { argTypes: [DYN, DYN, DYN, DYN], result: DYN },
3758
+ /** `value instanceof String/Number/Boolean` (scr_js_wrapper_instance_of):
3759
+ * the kind's prototype on the value's chain. */
3760
+ "wrapper.instanceOf": { argTypes: [DYN, F64], result: BOOL },
3761
+ /** Object.prototype.toString with the [[PrimitiveValue]] brands
3762
+ * (scr_js_wrapper_object_tag); dyn.objectTag otherwise. */
3763
+ "wrapper.objectTag": { argTypes: [DYN], result: STRING },
3764
+ /** util.types brands that read the slot (scr_js_wrapper_type_is). */
3765
+ "wrapper.typeIs": { argTypes: [DYN, STRING], result: BOOL },
3766
+ /** The value unchanged, or the not-supported Error when its own data
3767
+ * graph holds a wrapper (scr_js_wrapper_guard; the string names the
3768
+ * consumer). guardList checks each element. */
3769
+ "wrapper.guard": { argTypes: [DYN, STRING], result: DYN },
3770
+ "wrapper.guardList": { argTypes: [arrayOf(DYN), STRING], result: arrayOf(DYN) },
3771
+ /** Whether a member value a call read as `name` is the builtin
3772
+ * String.prototype method of that name (scr_js_wrapper_is_string_method),
3773
+ * and the method's receiver, ToString of the value
3774
+ * (scr_js_wrapper_this_string). */
3775
+ "wrapper.isStringMethod": { argTypes: [DYN, STRING], result: BOOL },
3776
+ "wrapper.thisString": { argTypes: [DYN, STRING], result: DYN },
3633
3777
  "fs.callbackValue": { argTypes: [STRING], result: DYN },
3634
3778
  "fs.callbackCall": { argTypes: [STRING, DYN], result: DYN },
3635
3779
  "process.hrtimeValue": { argTypes: [], result: DYN },
@@ -3655,6 +3799,14 @@ function buildLibFnSignatures() {
3655
3799
  * never throws. */
3656
3800
  "process.stdoutWrite": { argTypes: [STRING], result: BOOL },
3657
3801
  "process.stdio": { argTypes: [F64], result: DYN },
3802
+ /** The same stream object, reached by the typed write-slot lowering
3803
+ * (the write method as a value, its replacement, a patched program's
3804
+ * typed writes): identical at run time, and the link switch for the
3805
+ * SCR_STDIO_WRITE_SLOT build of the events unit. */
3806
+ "process.stdioSlot": { argTypes: [F64], result: DYN },
3807
+ /** process.stdout/stderr.write(chunk) with a run-time chunk: Node's
3808
+ * Writable validation, then a synchronous write. */
3809
+ "process.stdioWriteDyn": { argTypes: [F64, DYN], result: BOOL },
3658
3810
  "process.stderrWrite": { argTypes: [STRING], result: BOOL },
3659
3811
  // error.new's result and the receiver slots are builtin-error classes —
3660
3812
  // program-dependent object types, checked in the libCall case.
@@ -3712,9 +3864,10 @@ function buildLibFnSignatures() {
3712
3864
  * arms (ERR_INVALID_THIS receivers, ERR_MISSING_ARGS arity ladders,
3713
3865
  * the symbol-to-string TypeError): args are [error-kind f64 (the
3714
3866
  * SCR_ERR_* index: 0 Error, 1 TypeError, 2 RangeError), code (empty =
3715
- * no code slot), message]. ALWAYS THROWS catchably; the result type is
3716
- * the replaced expression's own (never materialized — the
3717
- * global.undefRead pattern). May-throw seed. */
3867
+ * no code slot), message], and optionally a fourth string, the error's
3868
+ * own `url` property (ir/validate.ts accepts it). ALWAYS THROWS
3869
+ * catchably; the result type is the replaced expression's own (never
3870
+ * materialized — the global.undefRead pattern). May-throw seed. */
3718
3871
  "error.nodeThrow": { argTypes: [F64, STRING, STRING], result: VOID },
3719
3872
  /** JS ToString over a dyn value WITH the object protocol (a user
3720
3873
  * toString/valueOf member is CALLED and its throw propagates;
@@ -3926,6 +4079,13 @@ function buildLibFnSignatures() {
3926
4079
  "ffi.memoryModule": { argTypes: [DYN], result: DYN },
3927
4080
  "intl.segmenterNew": { argTypes: [], result: DYN },
3928
4081
  "intl.segmenterRefusing": { argTypes: [STRING], result: DYN },
4082
+ /** `new Intl.Segmenter(locale?, { granularity: "word" })`: ICU's UAX
4083
+ * #29 word iterator (scr_intl.c over ICU), which the
4084
+ * table-driven grapheme segmenter above cannot express. The argument is
4085
+ * the negotiated language tag; the empty string selects the default
4086
+ * locale (ICU's, resolved from the host environment like V8's). +1
4087
+ * handle. */
4088
+ "icu.segmenterWord": { argTypes: [STRING], result: DYN },
3929
4089
  "arrayBuffer.is": { argTypes: [DYN], result: BOOL },
3930
4090
  "arrayBuffer.isView": { argTypes: [DYN], result: BOOL },
3931
4091
  "arrayBuffer.byteLengthGetter": { argTypes: [], result: F64 },
@@ -4009,6 +4169,10 @@ function buildLibFnSignatures() {
4009
4169
  "dyn.errorCaptureStackTraceFunction": { argTypes: [], result: DYN },
4010
4170
  "dyn.functionApply": { argTypes: [], result: DYN },
4011
4171
  "dyn.builtinMethod": { argTypes: [STRING, STRING], result: DYN },
4172
+ /** A standard library prototype object as a value (`Date.prototype` read
4173
+ * in a JavaScript source), named by its constructor: the unit in
4174
+ * scr_dyn_stdlib_prototype.c. */
4175
+ "dyn.stdlibPrototype": { argTypes: [STRING], result: DYN },
4012
4176
  "dyn.classPrototype": { argTypes: [DYN, DYN], result: DYN },
4013
4177
  "dyn.classBasePrototype": { argTypes: [DYN], result: DYN },
4014
4178
  "dyn.classInherit": { argTypes: [DYN, DYN], result: DYN },
@@ -4211,6 +4375,9 @@ function buildLibFnSignatures() {
4211
4375
  "emitter.emit": { argTypes: [null, STRING], result: BOOL },
4212
4376
  "emitter.emitFlex": { argTypes: [null, STRING], result: BOOL },
4213
4377
  "emitter.emitAny": { argTypes: [null, STRING], result: BOOL },
4378
+ /** emit('error', ...payload) with a non-Error payload: (recv, then the
4379
+ * arguments boxed) — VARIADIC like emitFlex. */
4380
+ "emitter.emitErrorValue": { argTypes: [null], result: BOOL },
4214
4381
  /** An untyped emit of an event with a fixed tuple: (recv, name, k, then
4215
4382
  * k checked-dynamic arguments as given, then the event's converted
4216
4383
  * tuple) — VARIADIC like emitter.emit. hasTyped answers whether a
@@ -4562,6 +4729,10 @@ function buildLibFnSignatures() {
4562
4729
  "writable.writeU": { argTypes: [null, null], result: BOOL },
4563
4730
  "writable.writeDyn": { argTypes: [null, DYN], result: BOOL },
4564
4731
  "writable.writeEnc": { argTypes: [null, F64, DYN], result: BOOL },
4732
+ /** The error-first write form: (recv, mode, chunk, encoding, cb) where
4733
+ * mode 0 is a bytes chunk, 1 a string, 2 a run-time chunk, and the
4734
+ * callback takes the completion's error (Node's null on success). */
4735
+ "writable.writeEcb": { argTypes: [null, F64, null, DYN, null], result: BOOL },
4565
4736
  "writable.end": { argTypes: [null, F64], result: VOID },
4566
4737
  "writable.cork": { argTypes: [null], result: VOID },
4567
4738
  "writable.uncork": { argTypes: [null], result: VOID },
@@ -4710,7 +4881,7 @@ function buildLibFnSignatures() {
4710
4881
  * message, code — the %error marker skipped) and deep-compare each
4711
4882
  * against the caught value's; a mismatch throws the deep-equal
4712
4883
  * AssertionError (scr_assert.c). MAY THROW by design. */
4713
- "assert.expectsErrDyn": { argTypes: [DYN, DYN, STRING, BOOL], result: VOID },
4884
+ "assert.expectsErrDyn": { argTypes: [DYN, DYN, STRING, BOOL, BOOL], result: VOID },
4714
4885
  /** A validation function against the caught value (Node's expectedException). */
4715
4886
  "assert.throwsValidate": { argTypes: [DYN, DYN, STRING, STRING, BOOL], result: VOID },
4716
4887
  // assert.ifError's typed entries (always throw; unit args never
@@ -4824,6 +4995,12 @@ function buildLibFnSignatures() {
4824
4995
  * (key-order-witness.ts ordered spreads). Both are record types. Never
4825
4996
  * throws. */
4826
4997
  "record.sourceSpread": { argTypes: [null, null], result: VOID },
4998
+ /** `record.sourceNote(built, keys)`: the record a width spread just
4999
+ * built keeps `keys` (the copy's own keys, in order; declared ones are
5000
+ * placeholders) as its kept source when they hold an undeclared key or
5001
+ * another order (scr_record_source_note). The first is a record type,
5002
+ * the second dyn (borrowed). Never throws. */
5003
+ "record.sourceNote": { argTypes: [null, DYN], result: VOID },
4827
5004
  "insp.key": { argTypes: [STRING], result: STRING },
4828
5005
  "insp.moreItems": { argTypes: [F64], result: STRING },
4829
5006
  "insp.end": { argTypes: [STRING, STRING, STRING, F64, BOOL, BOOL], result: STRING },
@@ -4848,11 +5025,20 @@ function buildLibFnSignatures() {
4848
5025
  * packed NEW pending; end: (enc, pending) → the buffered partial's
4849
5026
  * flush (+1). Node-exact per encoding (oracle-pinned); none throws. */
4850
5027
  "strdec.write": { argTypes: [STRING, F64, BYTES_U8], result: STRING },
5028
+ /** The checked-dynamic chunk forms (a stream "data" payload): a string
5029
+ * passes through unchanged without touching the buffered state, an
5030
+ * ArrayBufferView decodes, anything else throws ERR_INVALID_ARG_TYPE. */
5031
+ "strdec.writeDyn": { argTypes: [STRING, F64, DYN], result: STRING },
5032
+ "strdec.nextDyn": { argTypes: [STRING, F64, DYN], result: F64 },
4851
5033
  "strdec.next": { argTypes: [STRING, F64, BYTES_U8], result: F64 },
4852
5034
  "strdec.end": { argTypes: [STRING, F64], result: STRING },
4853
5035
  /** A runtime encoding argument's canonical name (Node's normalizeEncoding:
4854
5036
  * nullish and "" are utf8); an unknown name throws ERR_UNKNOWN_ENCODING. */
4855
5037
  "strdec.encoding": { argTypes: [DYN], result: STRING },
5038
+ /** The same for an encoding that may not be a string (scr_inspect.c):
5039
+ * an object whose `length` is 3 to 9 matches by its string in lower
5040
+ * case; other values throw ERR_UNKNOWN_ENCODING formatted with %s. */
5041
+ "strdec.encodingValue": { argTypes: [DYN], result: STRING },
4856
5042
  // node:readline: the interface handle is f64; the callbacks' func types
4857
5043
  // are program-dependent (the emitter picks the adapter by parameter
4858
5044
  // count), so those slots are null like child.onExit's.
@@ -5073,6 +5259,9 @@ function buildLibFnSignatures() {
5073
5259
  * non-function. */
5074
5260
  /** Uncaught exception handlers and monitors: [callback dyn, once, monitor]. */
5075
5261
  "process.onUncaughtException": { argTypes: [DYN, BOOL, BOOL], result: VOID },
5262
+ /** Uncaught handlers registered in FRONT of the registry's existing
5263
+ * entries: [callback dyn, monitor] (never `once`). */
5264
+ "process.prependUncaughtException": { argTypes: [DYN, BOOL], result: VOID },
5076
5265
  "process.offUncaughtException": { argTypes: [DYN, BOOL], result: VOID },
5077
5266
  "process.onUnhandledRejection": { argTypes: [DYN, BOOL], result: VOID },
5078
5267
  "process.offUnhandledRejection": { argTypes: [DYN], result: VOID },
@@ -5238,6 +5427,10 @@ function buildLibFnSignatures() {
5238
5427
  * lone surrogate as U+FFFD). Borrowed arg; owned (+1) string; never throws. */
5239
5428
  "text.decode": { argTypes: [BYTES_U8], result: STRING },
5240
5429
  "bytes.bufferSource": { argTypes: [DYN], result: BYTES_U8 },
5430
+ "text.decoderInput": { argTypes: [DYN, F64, DYN, BOOL], result: BYTES_U8 },
5431
+ "text.decoderFlag": { argTypes: [DYN, STRING], result: BOOL },
5432
+ "text.decodeStreamOption": { argTypes: [DYN], result: BOOL },
5433
+ "text.decoderEncodingOptions": { argTypes: [DYN, DYN], result: F64 },
5241
5434
  /** Whether an error-first callback's Buffer result is absent: the zlib
5242
5435
  * and crypto callback adapters pass NULL after an error. Borrowed arg;
5243
5436
  * never throws. */
@@ -5323,6 +5516,10 @@ function buildLibFnSignatures() {
5323
5516
  * undefined; tty.isatty exposes the boolean result directly. */
5324
5517
  "process.isTTY": { argTypes: [F64], result: BOOL },
5325
5518
  "process.isTTYValue": { argTypes: [DYN], result: BOOL },
5519
+ /** A promise that never settles (events.once of an event that cannot
5520
+ * occur, e.g. 'drain' on a synchronous process stream). The result is
5521
+ * events.once's own Promise<any[]> type. */
5522
+ "events.pendingForever": { argTypes: [], result: { kind: "promise", inner: arrayOf(DYN) } },
5326
5523
  // Like process.envGet: the result is the module's interned
5327
5524
  // `number | undefined` union — checked by arms in the libCall case.
5328
5525
  /** Terminal width over an fd literal (1/2 — process.stdout/stderr
@@ -5333,6 +5530,10 @@ function buildLibFnSignatures() {
5333
5530
  "process.columns": { argTypes: [F64], result: VOID },
5334
5531
  /** Terminal height, with the same fd and optional-number contract. */
5335
5532
  "process.rows": { argTypes: [F64], result: VOID },
5533
+ /** process.stdin.isRaw: the raw-mode flag of a TTY stdin as the
5534
+ * module's interned `boolean | undefined` union (a pipe-backed stdin
5535
+ * has no such flag — Node answers undefined there). Never throws. */
5536
+ "process.stdinIsRaw": { argTypes: [], result: VOID },
5336
5537
  /** process.stdin.destroy(): a deliberate no-op (no stream machinery
5337
5538
  * exists to tear down; documented in SEMANTICS.md). */
5338
5539
  "process.stdinDestroy": { argTypes: [], result: VOID },