@scriptc/compiler 0.4.5 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1200) hide show
  1. package/ambient/node-fallback/assert-strict.d.ts +47 -0
  2. package/ambient/node-fallback/assert.d.ts +86 -0
  3. package/ambient/node-fallback/async_hooks.d.ts +41 -0
  4. package/ambient/node-fallback/buffer.d.ts +23 -0
  5. package/ambient/node-fallback/child_process.d.ts +242 -0
  6. package/ambient/node-fallback/cluster.d.ts +17 -0
  7. package/ambient/node-fallback/constants.d.ts +15 -0
  8. package/ambient/node-fallback/crypto.d.ts +837 -0
  9. package/ambient/node-fallback/dgram.d.ts +58 -0
  10. package/ambient/node-fallback/diagnostics_channel.d.ts +87 -0
  11. package/ambient/node-fallback/dns-promises.d.ts +27 -0
  12. package/ambient/node-fallback/dns.d.ts +65 -0
  13. package/ambient/node-fallback/events.d.ts +60 -0
  14. package/ambient/node-fallback/fs-promises.d.ts +225 -0
  15. package/ambient/node-fallback/fs.d.ts +641 -0
  16. package/ambient/node-fallback/graceful-fs.d.ts +9 -0
  17. package/ambient/node-fallback/http.d.ts +326 -0
  18. package/ambient/node-fallback/http2.d.ts +816 -0
  19. package/ambient/node-fallback/https.d.ts +59 -0
  20. package/ambient/node-fallback/module.d.ts +10 -0
  21. package/ambient/node-fallback/net.d.ts +374 -0
  22. package/ambient/node-fallback/os.d.ts +288 -0
  23. package/ambient/node-fallback/path-posix.d.ts +22 -0
  24. package/ambient/node-fallback/path-win32.d.ts +22 -0
  25. package/ambient/node-fallback/path.d.ts +55 -0
  26. package/ambient/node-fallback/process.d.ts +11 -0
  27. package/ambient/node-fallback/punycode.d.ts +18 -0
  28. package/ambient/node-fallback/querystring.d.ts +55 -0
  29. package/ambient/node-fallback/stream-consumers.d.ts +21 -0
  30. package/ambient/node-fallback/stream-promises.d.ts +28 -0
  31. package/ambient/node-fallback/stream-web.d.ts +36 -0
  32. package/ambient/node-fallback/stream.d.ts +644 -0
  33. package/ambient/node-fallback/string_decoder.d.ts +20 -0
  34. package/ambient/node-fallback/test.d.ts +236 -0
  35. package/ambient/node-fallback/timers-promises.d.ts +31 -0
  36. package/ambient/node-fallback/timers.d.ts +28 -0
  37. package/ambient/node-fallback/tls.d.ts +169 -0
  38. package/ambient/node-fallback/url.d.ts +95 -0
  39. package/ambient/node-fallback/util-types.d.ts +50 -0
  40. package/ambient/node-fallback/util.d.ts +416 -0
  41. package/ambient/node-fallback/v8.d.ts +43 -0
  42. package/ambient/node-fallback/worker_threads.d.ts +113 -0
  43. package/ambient/node-fallback/zlib.d.ts +422 -0
  44. package/ambient/scriptc-node-fallback.d.ts +224 -6688
  45. package/dist/backend/cycle-analysis.js +4 -0
  46. package/dist/backend/cycle-analysis.js.map +1 -1
  47. package/dist/backend/executable-features.d.ts +1 -1
  48. package/dist/backend/executable-features.js +15 -2
  49. package/dist/backend/executable-features.js.map +1 -1
  50. package/dist/backend/huge-text.d.ts +16 -0
  51. package/dist/backend/huge-text.js +103 -0
  52. package/dist/backend/huge-text.js.map +1 -0
  53. package/dist/backend/huge-text.test.d.ts +1 -0
  54. package/dist/backend/huge-text.test.js +73 -0
  55. package/dist/backend/huge-text.test.js.map +1 -0
  56. package/dist/backend/library-pack.js +1 -1
  57. package/dist/backend/library-pack.js.map +1 -1
  58. package/dist/backend/link-plan-core.d.ts +10 -0
  59. package/dist/backend/link-plan-core.js +14 -2
  60. package/dist/backend/link-plan-core.js.map +1 -1
  61. package/dist/backend/link-plan-core.test.d.ts +1 -0
  62. package/dist/backend/link-plan-core.test.js +20 -0
  63. package/dist/backend/link-plan-core.test.js.map +1 -0
  64. package/dist/backend/link-plan.d.ts +8 -0
  65. package/dist/backend/link-plan.js +7 -0
  66. package/dist/backend/link-plan.js.map +1 -1
  67. package/dist/backend/linker.js +37 -14
  68. package/dist/backend/linker.js.map +1 -1
  69. package/dist/backend/lld.d.ts +13 -0
  70. package/dist/backend/lld.js +18 -1
  71. package/dist/backend/lld.js.map +1 -1
  72. package/dist/backend/lld.test.js +7 -1
  73. package/dist/backend/lld.test.js.map +1 -1
  74. package/dist/backend/llvm/alloc.d.ts +2 -0
  75. package/dist/backend/llvm/alloc.js +1 -1
  76. package/dist/backend/llvm/alloc.js.map +1 -1
  77. package/dist/backend/llvm/arenas.d.ts +78 -0
  78. package/dist/backend/llvm/arenas.js +313 -0
  79. package/dist/backend/llvm/arenas.js.map +1 -0
  80. package/dist/backend/llvm/arenas.test.d.ts +1 -0
  81. package/dist/backend/llvm/arenas.test.js +140 -0
  82. package/dist/backend/llvm/arenas.test.js.map +1 -0
  83. package/dist/backend/llvm/blocks.d.ts +11 -1
  84. package/dist/backend/llvm/blocks.js +23 -5
  85. package/dist/backend/llvm/blocks.js.map +1 -1
  86. package/dist/backend/llvm/bytes-headers.d.ts +19 -0
  87. package/dist/backend/llvm/bytes-headers.js +55 -0
  88. package/dist/backend/llvm/bytes-headers.js.map +1 -0
  89. package/dist/backend/llvm/bytes-loop-versions.d.ts +4 -3
  90. package/dist/backend/llvm/bytes-loop-versions.js +42 -7
  91. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
  92. package/dist/backend/llvm/bytes-loop-versions.test.js +39 -4
  93. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  94. package/dist/backend/llvm/call-lifetimes.d.ts +5 -0
  95. package/dist/backend/llvm/call-lifetimes.js +43 -8
  96. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  97. package/dist/backend/llvm/call-lifetimes.test.js +26 -0
  98. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  99. package/dist/backend/llvm/checked-narrows.d.ts +3 -0
  100. package/dist/backend/llvm/checked-narrows.js +8 -1
  101. package/dist/backend/llvm/checked-narrows.js.map +1 -1
  102. package/dist/backend/llvm/class-unions.d.ts +21 -0
  103. package/dist/backend/llvm/class-unions.js +141 -0
  104. package/dist/backend/llvm/class-unions.js.map +1 -0
  105. package/dist/backend/llvm/class-unions.test.d.ts +1 -0
  106. package/dist/backend/llvm/class-unions.test.js +137 -0
  107. package/dist/backend/llvm/class-unions.test.js.map +1 -0
  108. package/dist/backend/llvm/classes.d.ts +46 -8
  109. package/dist/backend/llvm/classes.js +259 -32
  110. package/dist/backend/llvm/classes.js.map +1 -1
  111. package/dist/backend/llvm/classes.test.js +4 -0
  112. package/dist/backend/llvm/classes.test.js.map +1 -1
  113. package/dist/backend/llvm/common.d.ts +23 -0
  114. package/dist/backend/llvm/common.js +34 -0
  115. package/dist/backend/llvm/common.js.map +1 -1
  116. package/dist/backend/llvm/constant-callbacks.test.js +39 -0
  117. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  118. package/dist/backend/llvm/constant-choices.d.ts +32 -0
  119. package/dist/backend/llvm/constant-choices.js +209 -0
  120. package/dist/backend/llvm/constant-choices.js.map +1 -0
  121. package/dist/backend/llvm/constant-choices.test.d.ts +1 -0
  122. package/dist/backend/llvm/constant-choices.test.js +94 -0
  123. package/dist/backend/llvm/constant-choices.test.js.map +1 -0
  124. package/dist/backend/llvm/counted-loops.d.ts +14 -2
  125. package/dist/backend/llvm/counted-loops.js +60 -7
  126. package/dist/backend/llvm/counted-loops.js.map +1 -1
  127. package/dist/backend/llvm/counted-loops.test.d.ts +1 -0
  128. package/dist/backend/llvm/counted-loops.test.js +34 -0
  129. package/dist/backend/llvm/counted-loops.test.js.map +1 -0
  130. package/dist/backend/llvm/cpu-dispatch.d.ts +26 -0
  131. package/dist/backend/llvm/cpu-dispatch.js +279 -0
  132. package/dist/backend/llvm/cpu-dispatch.js.map +1 -0
  133. package/dist/backend/llvm/dense-array-access.d.ts +13 -2
  134. package/dist/backend/llvm/dense-array-access.js +60 -6
  135. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  136. package/dist/backend/llvm/dyn-handle-tags.test.js +40 -14
  137. package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -1
  138. package/dist/backend/llvm/dyn.d.ts +28 -2
  139. package/dist/backend/llvm/dyn.js +176 -27
  140. package/dist/backend/llvm/dyn.js.map +1 -1
  141. package/dist/backend/llvm/emit-function.js +25 -3
  142. package/dist/backend/llvm/emit-function.js.map +1 -1
  143. package/dist/backend/llvm/emit-journal.d.ts +1 -0
  144. package/dist/backend/llvm/emit-journal.js.map +1 -1
  145. package/dist/backend/llvm/emit-module.d.ts +5 -3
  146. package/dist/backend/llvm/emit-module.js +362 -74
  147. package/dist/backend/llvm/emit-module.js.map +1 -1
  148. package/dist/backend/llvm/emit-statements.js +327 -59
  149. package/dist/backend/llvm/emit-statements.js.map +1 -1
  150. package/dist/backend/llvm/emitter.d.ts +223 -33
  151. package/dist/backend/llvm/emitter.js +713 -100
  152. package/dist/backend/llvm/emitter.js.map +1 -1
  153. package/dist/backend/llvm/emitter.test.js +20 -1
  154. package/dist/backend/llvm/emitter.test.js.map +1 -1
  155. package/dist/backend/llvm/expr-async.js +32 -6
  156. package/dist/backend/llvm/expr-async.js.map +1 -1
  157. package/dist/backend/llvm/expr-bytes.d.ts +9 -1
  158. package/dist/backend/llvm/expr-bytes.js +105 -9
  159. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  160. package/dist/backend/llvm/expr-callbacks.d.ts +1 -1
  161. package/dist/backend/llvm/expr-callbacks.js +29 -22
  162. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  163. package/dist/backend/llvm/expr-calls.d.ts +0 -4
  164. package/dist/backend/llvm/expr-calls.js +116 -14
  165. package/dist/backend/llvm/expr-calls.js.map +1 -1
  166. package/dist/backend/llvm/expr-containers.js +77 -12
  167. package/dist/backend/llvm/expr-containers.js.map +1 -1
  168. package/dist/backend/llvm/expr-context.d.ts +22 -0
  169. package/dist/backend/llvm/expr-control.d.ts +4 -0
  170. package/dist/backend/llvm/expr-control.js +485 -426
  171. package/dist/backend/llvm/expr-control.js.map +1 -1
  172. package/dist/backend/llvm/expr-dispatch.js +4 -0
  173. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  174. package/dist/backend/llvm/expr-dynamic.js +3 -3
  175. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  176. package/dist/backend/llvm/expr-primitives.d.ts +6 -0
  177. package/dist/backend/llvm/expr-primitives.js +119 -58
  178. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  179. package/dist/backend/llvm/expr-primitives.test.js +11 -2
  180. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  181. package/dist/backend/llvm/expr-records.d.ts +36 -4
  182. package/dist/backend/llvm/expr-records.js +249 -37
  183. package/dist/backend/llvm/expr-records.js.map +1 -1
  184. package/dist/backend/llvm/expr-stream-bridges.js +124 -7
  185. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  186. package/dist/backend/llvm/expr-stream-bridges.test.js +1 -1
  187. package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
  188. package/dist/backend/llvm/expr-stream-callbacks.js +13 -14
  189. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  190. package/dist/backend/llvm/frame-escapes.d.ts +11 -0
  191. package/dist/backend/llvm/frame-escapes.js +219 -0
  192. package/dist/backend/llvm/frame-escapes.js.map +1 -0
  193. package/dist/backend/llvm/function-layout.d.ts +15 -0
  194. package/dist/backend/llvm/function-layout.js +40 -0
  195. package/dist/backend/llvm/function-layout.js.map +1 -0
  196. package/dist/backend/llvm/heap-census.d.ts +34 -0
  197. package/dist/backend/llvm/heap-census.js +163 -0
  198. package/dist/backend/llvm/heap-census.js.map +1 -0
  199. package/dist/backend/llvm/inline-arrays.d.ts +41 -0
  200. package/dist/backend/llvm/inline-arrays.js +195 -0
  201. package/dist/backend/llvm/inline-arrays.js.map +1 -0
  202. package/dist/backend/llvm/int32-kind-loops.js +2 -0
  203. package/dist/backend/llvm/int32-kind-loops.js.map +1 -1
  204. package/dist/backend/llvm/integer-clones.d.ts +32 -5
  205. package/dist/backend/llvm/integer-clones.js +237 -44
  206. package/dist/backend/llvm/integer-clones.js.map +1 -1
  207. package/dist/backend/llvm/integer-clones.test.js +120 -0
  208. package/dist/backend/llvm/integer-clones.test.js.map +1 -1
  209. package/dist/backend/llvm/iterative-teardown.test.d.ts +1 -0
  210. package/dist/backend/llvm/iterative-teardown.test.js +62 -0
  211. package/dist/backend/llvm/iterative-teardown.test.js.map +1 -0
  212. package/dist/backend/llvm/js-ic.js +246 -62
  213. package/dist/backend/llvm/js-ic.js.map +1 -1
  214. package/dist/backend/llvm/lib-connect.js +1 -1
  215. package/dist/backend/llvm/lib-connect.js.map +1 -1
  216. package/dist/backend/llvm/lib-datagram.js +2 -2
  217. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  218. package/dist/backend/llvm/lib-dispatch.js +153 -16
  219. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  220. package/dist/backend/llvm/lib-filesystem.d.ts +8 -0
  221. package/dist/backend/llvm/lib-filesystem.js +48 -4
  222. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  223. package/dist/backend/llvm/lib-http2.js +4 -3
  224. package/dist/backend/llvm/lib-http2.js.map +1 -1
  225. package/dist/backend/llvm/lib-lookup.js +1 -1
  226. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  227. package/dist/backend/llvm/lib-network.js +15 -1
  228. package/dist/backend/llvm/lib-network.js.map +1 -1
  229. package/dist/backend/llvm/lib-process.js +32 -8
  230. package/dist/backend/llvm/lib-process.js.map +1 -1
  231. package/dist/backend/llvm/lib-shared.d.ts +3 -0
  232. package/dist/backend/llvm/lib-shared.js +191 -28
  233. package/dist/backend/llvm/lib-shared.js.map +1 -1
  234. package/dist/backend/llvm/lib-stream.js +1 -1
  235. package/dist/backend/llvm/lib-stream.js.map +1 -1
  236. package/dist/backend/llvm/local-array-reads.js +15 -1
  237. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  238. package/dist/backend/llvm/local-array-reads.test.js +1 -1
  239. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  240. package/dist/backend/llvm/local-extents.d.ts +22 -0
  241. package/dist/backend/llvm/local-extents.js +102 -0
  242. package/dist/backend/llvm/local-extents.js.map +1 -1
  243. package/dist/backend/llvm/local-union-storage.js +15 -2
  244. package/dist/backend/llvm/local-union-storage.js.map +1 -1
  245. package/dist/backend/llvm/local-union-storage.test.js +1 -1
  246. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  247. package/dist/backend/llvm/loop-callees.d.ts +21 -0
  248. package/dist/backend/llvm/loop-callees.js +119 -0
  249. package/dist/backend/llvm/loop-callees.js.map +1 -0
  250. package/dist/backend/llvm/loop-callees.test.d.ts +1 -0
  251. package/dist/backend/llvm/loop-callees.test.js +65 -0
  252. package/dist/backend/llvm/loop-callees.test.js.map +1 -0
  253. package/dist/backend/llvm/loop-entry-versions.d.ts +17 -0
  254. package/dist/backend/llvm/loop-entry-versions.js +185 -0
  255. package/dist/backend/llvm/loop-entry-versions.js.map +1 -0
  256. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  257. package/dist/backend/llvm/map-number-lookup.test.js +13 -4
  258. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  259. package/dist/backend/llvm/map-read-lifetimes.d.ts +11 -0
  260. package/dist/backend/llvm/map-read-lifetimes.js +51 -1
  261. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  262. package/dist/backend/llvm/map-read-lifetimes.test.js +6 -3
  263. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  264. package/dist/backend/llvm/nullable-unions.d.ts +67 -10
  265. package/dist/backend/llvm/nullable-unions.js +218 -22
  266. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  267. package/dist/backend/llvm/nullable-unions.test.js +124 -1
  268. package/dist/backend/llvm/nullable-unions.test.js.map +1 -1
  269. package/dist/backend/llvm/periodic-guards.d.ts +16 -0
  270. package/dist/backend/llvm/periodic-guards.js +91 -0
  271. package/dist/backend/llvm/periodic-guards.js.map +1 -0
  272. package/dist/backend/llvm/periodic-guards.test.d.ts +1 -0
  273. package/dist/backend/llvm/periodic-guards.test.js +64 -0
  274. package/dist/backend/llvm/periodic-guards.test.js.map +1 -0
  275. package/dist/backend/llvm/publish.d.ts +12 -2
  276. package/dist/backend/llvm/publish.js +15 -8
  277. package/dist/backend/llvm/publish.js.map +1 -1
  278. package/dist/backend/llvm/rebound-parameters.d.ts +4 -1
  279. package/dist/backend/llvm/rebound-parameters.js +17 -1
  280. package/dist/backend/llvm/rebound-parameters.js.map +1 -1
  281. package/dist/backend/llvm/receivers.d.ts +7 -0
  282. package/dist/backend/llvm/receivers.js +77 -10
  283. package/dist/backend/llvm/receivers.js.map +1 -1
  284. package/dist/backend/llvm/record-union-keys.test.js +29 -0
  285. package/dist/backend/llvm/record-union-keys.test.js.map +1 -1
  286. package/dist/backend/llvm/record-views.d.ts +29 -0
  287. package/dist/backend/llvm/record-views.js +249 -0
  288. package/dist/backend/llvm/record-views.js.map +1 -0
  289. package/dist/backend/llvm/record-views.test.d.ts +1 -0
  290. package/dist/backend/llvm/record-views.test.js +118 -0
  291. package/dist/backend/llvm/record-views.test.js.map +1 -0
  292. package/dist/backend/llvm/reference-writes.js +21 -0
  293. package/dist/backend/llvm/reference-writes.js.map +1 -1
  294. package/dist/backend/llvm/reference-writes.test.js +42 -0
  295. package/dist/backend/llvm/reference-writes.test.js.map +1 -1
  296. package/dist/backend/llvm/regex-matchers.d.ts +5 -1
  297. package/dist/backend/llvm/regex-matchers.js +173 -21
  298. package/dist/backend/llvm/regex-matchers.js.map +1 -1
  299. package/dist/backend/llvm/regex-matchers.test.js +39 -1
  300. package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
  301. package/dist/backend/llvm/region-groups.d.ts +67 -0
  302. package/dist/backend/llvm/region-groups.js +1719 -0
  303. package/dist/backend/llvm/region-groups.js.map +1 -0
  304. package/dist/backend/llvm/region-groups.test.d.ts +1 -0
  305. package/dist/backend/llvm/region-groups.test.js +197 -0
  306. package/dist/backend/llvm/region-groups.test.js.map +1 -0
  307. package/dist/backend/llvm/region-ir.d.ts +31 -0
  308. package/dist/backend/llvm/region-ir.js +256 -0
  309. package/dist/backend/llvm/region-ir.js.map +1 -0
  310. package/dist/backend/llvm/region-sites.d.ts +20 -0
  311. package/dist/backend/llvm/region-sites.js +327 -0
  312. package/dist/backend/llvm/region-sites.js.map +1 -0
  313. package/dist/backend/llvm/region-sites.test.d.ts +1 -0
  314. package/dist/backend/llvm/region-sites.test.js +216 -0
  315. package/dist/backend/llvm/region-sites.test.js.map +1 -0
  316. package/dist/backend/llvm/repr-report.d.ts +9 -0
  317. package/dist/backend/llvm/repr-report.js +143 -0
  318. package/dist/backend/llvm/repr-report.js.map +1 -0
  319. package/dist/backend/llvm/repr-report.test.d.ts +1 -0
  320. package/dist/backend/llvm/repr-report.test.js +62 -0
  321. package/dist/backend/llvm/repr-report.test.js.map +1 -0
  322. package/dist/backend/llvm/runtime-registries.test.d.ts +1 -0
  323. package/dist/backend/llvm/runtime-registries.test.js +88 -0
  324. package/dist/backend/llvm/runtime-registries.test.js.map +1 -0
  325. package/dist/backend/llvm/serialized-ir-emission.test.js +1 -0
  326. package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
  327. package/dist/backend/llvm/shape-union-tags.test.d.ts +1 -0
  328. package/dist/backend/llvm/shape-union-tags.test.js +75 -0
  329. package/dist/backend/llvm/shape-union-tags.test.js.map +1 -0
  330. package/dist/backend/llvm/shapes.d.ts +60 -10
  331. package/dist/backend/llvm/shapes.js +233 -51
  332. package/dist/backend/llvm/shapes.js.map +1 -1
  333. package/dist/backend/llvm/shapes.test.js +37 -18
  334. package/dist/backend/llvm/shapes.test.js.map +1 -1
  335. package/dist/backend/llvm/speculative-integers.d.ts +3 -0
  336. package/dist/backend/llvm/speculative-integers.js +20 -8
  337. package/dist/backend/llvm/speculative-integers.js.map +1 -1
  338. package/dist/backend/llvm/split.js +6 -1
  339. package/dist/backend/llvm/split.js.map +1 -1
  340. package/dist/backend/llvm/split.test.js +23 -0
  341. package/dist/backend/llvm/split.test.js.map +1 -1
  342. package/dist/backend/llvm/stack-callbacks.js +4 -2
  343. package/dist/backend/llvm/stack-callbacks.js.map +1 -1
  344. package/dist/backend/llvm/stack-objects.d.ts +12 -3
  345. package/dist/backend/llvm/stack-objects.js +110 -22
  346. package/dist/backend/llvm/stack-objects.js.map +1 -1
  347. package/dist/backend/llvm/stack-objects.test.js +144 -0
  348. package/dist/backend/llvm/stack-objects.test.js.map +1 -1
  349. package/dist/backend/llvm/stack-unions.test.js +24 -1
  350. package/dist/backend/llvm/stack-unions.test.js.map +1 -1
  351. package/dist/backend/llvm/string-lifetimes.js +2 -1
  352. package/dist/backend/llvm/string-lifetimes.js.map +1 -1
  353. package/dist/backend/llvm/string-lifetimes.test.js +1 -1
  354. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  355. package/dist/backend/llvm/string-reads.d.ts +4 -0
  356. package/dist/backend/llvm/string-reads.js +27 -0
  357. package/dist/backend/llvm/string-reads.js.map +1 -1
  358. package/dist/backend/llvm/test-boxed-unions.d.ts +10 -8
  359. package/dist/backend/llvm/test-boxed-unions.js +20 -25
  360. package/dist/backend/llvm/test-boxed-unions.js.map +1 -1
  361. package/dist/backend/llvm/union-repr.js +9 -8
  362. package/dist/backend/llvm/union-repr.js.map +1 -1
  363. package/dist/backend/llvm/union-retype.test.js +45 -2
  364. package/dist/backend/llvm/union-retype.test.js.map +1 -1
  365. package/dist/backend/llvm/unwind-abi.d.ts +20 -8
  366. package/dist/backend/llvm/unwind-abi.js +177 -70
  367. package/dist/backend/llvm/unwind-abi.js.map +1 -1
  368. package/dist/backend/llvm/unwind-abi.test.js +90 -3
  369. package/dist/backend/llvm/unwind-abi.test.js.map +1 -1
  370. package/dist/backend/llvm/walk-borrows.d.ts +3 -2
  371. package/dist/backend/llvm/walk-borrows.js +2 -2
  372. package/dist/backend/llvm/walk-borrows.js.map +1 -1
  373. package/dist/backend/llvm/walk-borrows.test.js +18 -0
  374. package/dist/backend/llvm/walk-borrows.test.js.map +1 -1
  375. package/dist/backend/llvm/walkers.d.ts +14 -1
  376. package/dist/backend/llvm/walkers.js +103 -11
  377. package/dist/backend/llvm/walkers.js.map +1 -1
  378. package/dist/backend/llvm/wrapping-sums.d.ts +26 -6
  379. package/dist/backend/llvm/wrapping-sums.js +64 -12
  380. package/dist/backend/llvm/wrapping-sums.js.map +1 -1
  381. package/dist/backend/loop-polls.d.ts +4 -2
  382. package/dist/backend/loop-polls.js +11 -2
  383. package/dist/backend/loop-polls.js.map +1 -1
  384. package/dist/backend/mangle.d.ts +0 -5
  385. package/dist/backend/mangle.js +0 -9
  386. package/dist/backend/mangle.js.map +1 -1
  387. package/dist/backend/may-throw.d.ts +10 -9
  388. package/dist/backend/may-throw.js +189 -27
  389. package/dist/backend/may-throw.js.map +1 -1
  390. package/dist/backend/may-throw.test.js +44 -7
  391. package/dist/backend/may-throw.test.js.map +1 -1
  392. package/dist/backend/native/compiler-fingerprint.d.ts +5 -0
  393. package/dist/backend/native/compiler-fingerprint.js +62 -16
  394. package/dist/backend/native/compiler-fingerprint.js.map +1 -1
  395. package/dist/backend/native/contracts.d.ts +31 -8
  396. package/dist/backend/native/executable.js +56 -32
  397. package/dist/backend/native/executable.js.map +1 -1
  398. package/dist/backend/native/library.js +3 -4
  399. package/dist/backend/native/library.js.map +1 -1
  400. package/dist/backend/native/object-merge.d.ts +3 -1
  401. package/dist/backend/native/object-merge.js +24 -11
  402. package/dist/backend/native/object-merge.js.map +1 -1
  403. package/dist/backend/native/program-shards.js +6 -3
  404. package/dist/backend/native/program-shards.js.map +1 -1
  405. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  406. package/dist/backend/native/runtime-inputs.js +3 -0
  407. package/dist/backend/native/runtime-inputs.js.map +1 -1
  408. package/dist/backend/native/vendor.d.ts +1 -1
  409. package/dist/backend/native-codegen-core.d.ts +15 -6
  410. package/dist/backend/native-codegen-core.js +20 -9
  411. package/dist/backend/native-codegen-core.js.map +1 -1
  412. package/dist/backend/native-codegen.js +51 -5
  413. package/dist/backend/native-codegen.js.map +1 -1
  414. package/dist/backend/native-codegen.test.js +82 -8
  415. package/dist/backend/native-codegen.test.js.map +1 -1
  416. package/dist/backend/native-link-info-core.d.ts +30 -0
  417. package/dist/backend/native-link-info-core.js.map +1 -1
  418. package/dist/backend/native-profile.d.ts +68 -4
  419. package/dist/backend/native-profile.js +86 -14
  420. package/dist/backend/native-profile.js.map +1 -1
  421. package/dist/backend/native-profile.test.js +127 -4
  422. package/dist/backend/native-profile.test.js.map +1 -1
  423. package/dist/backend/native-toolchain.d.ts +1 -1
  424. package/dist/backend/native-toolchain.js +1 -1
  425. package/dist/backend/native-toolchain.js.map +1 -1
  426. package/dist/backend/native-toolchain.test.js +58 -4
  427. package/dist/backend/native-toolchain.test.js.map +1 -1
  428. package/dist/backend/native-tools.d.ts +17 -3
  429. package/dist/backend/native-tools.js +12 -4
  430. package/dist/backend/native-tools.js.map +1 -1
  431. package/dist/backend/native-tools.test.d.ts +1 -0
  432. package/dist/backend/native-tools.test.js +76 -0
  433. package/dist/backend/native-tools.test.js.map +1 -0
  434. package/dist/backend/object-localize.js +69 -9
  435. package/dist/backend/object-localize.js.map +1 -1
  436. package/dist/backend/object-localize.test.js +99 -10
  437. package/dist/backend/object-localize.test.js.map +1 -1
  438. package/dist/backend/publication.d.ts +2 -0
  439. package/dist/backend/publication.js +4 -0
  440. package/dist/backend/publication.js.map +1 -1
  441. package/dist/backend/runtime-abi.d.ts +2 -2
  442. package/dist/backend/runtime-abi.js +2 -2
  443. package/dist/backend/runtime-pack-core.d.ts +19 -0
  444. package/dist/backend/runtime-pack-core.js +23 -3
  445. package/dist/backend/runtime-pack-core.js.map +1 -1
  446. package/dist/backend/runtime-pack-targets.test.js +1 -1
  447. package/dist/backend/runtime-pack.test.js +48 -2
  448. package/dist/backend/runtime-pack.test.js.map +1 -1
  449. package/dist/backend/target-cpu.d.ts +2 -0
  450. package/dist/backend/target-cpu.js +4 -0
  451. package/dist/backend/target-cpu.js.map +1 -1
  452. package/dist/backend/target-diagnostics.js +1 -19
  453. package/dist/backend/target-diagnostics.js.map +1 -1
  454. package/dist/backend/target-diagnostics.test.js +1 -1
  455. package/dist/backend/target-diagnostics.test.js.map +1 -1
  456. package/dist/backend/targets.d.ts +28 -0
  457. package/dist/backend/targets.js +70 -0
  458. package/dist/backend/targets.js.map +1 -1
  459. package/dist/backend/targets.test.js +75 -1
  460. package/dist/backend/targets.test.js.map +1 -1
  461. package/dist/backend/vendor-archives.d.ts +1 -1
  462. package/dist/backend/vendor-archives.js +25 -12
  463. package/dist/backend/vendor-archives.js.map +1 -1
  464. package/dist/backend/vendor-inputs.d.ts +15 -2
  465. package/dist/backend/vendor-inputs.js +59 -3
  466. package/dist/backend/vendor-inputs.js.map +1 -1
  467. package/dist/backend/vendor-inputs.test.d.ts +1 -0
  468. package/dist/backend/vendor-inputs.test.js +74 -0
  469. package/dist/backend/vendor-inputs.test.js.map +1 -0
  470. package/dist/cli/command.js +95 -5
  471. package/dist/cli/command.js.map +1 -1
  472. package/dist/cli/host.d.ts +3 -0
  473. package/dist/cli/output-options.d.ts +3 -0
  474. package/dist/cli/output-options.js +8 -2
  475. package/dist/cli/output-options.js.map +1 -1
  476. package/dist/cli/usage.d.ts +28 -1
  477. package/dist/cli/usage.js +56 -6
  478. package/dist/cli/usage.js.map +1 -1
  479. package/dist/compat/fetch-profile.d.ts +3 -0
  480. package/dist/compat/fetch-profile.js +23 -3
  481. package/dist/compat/fetch-profile.js.map +1 -1
  482. package/dist/compile-types.d.ts +45 -0
  483. package/dist/contracts/check.js +70 -2
  484. package/dist/contracts/check.js.map +1 -1
  485. package/dist/contracts/int32-elements.d.ts +2 -1
  486. package/dist/contracts/int32-elements.js.map +1 -1
  487. package/dist/coverage/report.d.ts +5 -1
  488. package/dist/coverage/report.js +83 -2
  489. package/dist/coverage/report.js.map +1 -1
  490. package/dist/coverage/verdict-cache.d.ts +2 -0
  491. package/dist/coverage/verdict-cache.js +5 -10
  492. package/dist/coverage/verdict-cache.js.map +1 -1
  493. package/dist/diagnostics/codes.d.ts +145 -0
  494. package/dist/diagnostics/codes.js +159 -0
  495. package/dist/diagnostics/codes.js.map +1 -0
  496. package/dist/diagnostics/codes.test.d.ts +1 -0
  497. package/dist/diagnostics/codes.test.js +78 -0
  498. package/dist/diagnostics/codes.test.js.map +1 -0
  499. package/dist/diagnostics/diagnostic.d.ts +101 -2
  500. package/dist/diagnostics/diagnostic.js +155 -0
  501. package/dist/diagnostics/diagnostic.js.map +1 -1
  502. package/dist/diagnostics/dynamic-slots.d.ts +23 -0
  503. package/dist/diagnostics/dynamic-slots.js +29 -0
  504. package/dist/diagnostics/dynamic-slots.js.map +1 -0
  505. package/dist/diagnostics/dynamic-tier.d.ts +6 -0
  506. package/dist/diagnostics/dynamic-tier.js +8 -1
  507. package/dist/diagnostics/dynamic-tier.js.map +1 -1
  508. package/dist/diagnostics/envelope.d.ts +43 -1
  509. package/dist/diagnostics/envelope.js +19 -1
  510. package/dist/diagnostics/envelope.js.map +1 -1
  511. package/dist/diagnostics/envelope.test.js.map +1 -1
  512. package/dist/diagnostics/render.d.ts +3 -1
  513. package/dist/diagnostics/render.js +27 -6
  514. package/dist/diagnostics/render.js.map +1 -1
  515. package/dist/executable/executable-cache.d.ts +41 -0
  516. package/dist/executable/executable-cache.js +39 -1
  517. package/dist/executable/executable-cache.js.map +1 -1
  518. package/dist/executable/executable-cache.test.js +4 -1
  519. package/dist/executable/executable-cache.test.js.map +1 -1
  520. package/dist/executable/prepare.d.ts +2 -1
  521. package/dist/executable/prepare.js +421 -10
  522. package/dist/executable/prepare.js.map +1 -1
  523. package/dist/frontend/analysis.js +1 -0
  524. package/dist/frontend/analysis.js.map +1 -1
  525. package/dist/frontend/canon-map.d.ts +17 -0
  526. package/dist/frontend/canon-map.js +177 -0
  527. package/dist/frontend/canon-map.js.map +1 -0
  528. package/dist/frontend/canon.d.ts +122 -0
  529. package/dist/frontend/canon.js +462 -0
  530. package/dist/frontend/canon.js.map +1 -0
  531. package/dist/frontend/contract-types.d.ts +9 -1
  532. package/dist/frontend/contract-types.js +46 -4
  533. package/dist/frontend/contract-types.js.map +1 -1
  534. package/dist/frontend/decl-projection.d.ts +3 -0
  535. package/dist/frontend/decl-projection.js +121 -3
  536. package/dist/frontend/decl-projection.js.map +1 -1
  537. package/dist/frontend/dts-paths.d.ts +17 -4
  538. package/dist/frontend/dts-paths.js +149 -5
  539. package/dist/frontend/dts-paths.js.map +1 -1
  540. package/dist/frontend/fork-target.js +4 -4
  541. package/dist/frontend/fork-target.js.map +1 -1
  542. package/dist/frontend/fork-target.test.js +3 -3
  543. package/dist/frontend/fork-target.test.js.map +1 -1
  544. package/dist/frontend/heritage-elements.d.ts +15 -0
  545. package/dist/frontend/heritage-elements.js +18 -0
  546. package/dist/frontend/heritage-elements.js.map +1 -0
  547. package/dist/frontend/heritage-elements.test.d.ts +1 -0
  548. package/dist/frontend/heritage-elements.test.js +68 -0
  549. package/dist/frontend/heritage-elements.test.js.map +1 -0
  550. package/dist/frontend/input-tracker.d.ts +20 -0
  551. package/dist/frontend/input-tracker.js +74 -4
  552. package/dist/frontend/input-tracker.js.map +1 -1
  553. package/dist/frontend/input-tracker.test.js +66 -0
  554. package/dist/frontend/input-tracker.test.js.map +1 -1
  555. package/dist/frontend/lowering/any-collection-residue.d.ts +9 -0
  556. package/dist/frontend/lowering/any-collection-residue.js +42 -0
  557. package/dist/frontend/lowering/any-collection-residue.js.map +1 -0
  558. package/dist/frontend/lowering/array-values.d.ts +44 -2
  559. package/dist/frontend/lowering/array-values.js +193 -3
  560. package/dist/frontend/lowering/array-values.js.map +1 -1
  561. package/dist/frontend/lowering/builtin-namespaces.d.ts +6 -2
  562. package/dist/frontend/lowering/builtin-namespaces.js +28 -6
  563. package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
  564. package/dist/frontend/lowering/builtins/array-classes.d.ts +69 -0
  565. package/dist/frontend/lowering/builtins/array-classes.js +729 -0
  566. package/dist/frontend/lowering/builtins/array-classes.js.map +1 -0
  567. package/dist/frontend/lowering/builtins/callable-aliases.js +4 -0
  568. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
  569. package/dist/frontend/lowering/builtins/child-process-methods.js +34 -0
  570. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  571. package/dist/frontend/lowering/builtins/disposable-stack.js +1 -3
  572. package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -1
  573. package/dist/frontend/lowering/builtins/errors.d.ts +13 -9
  574. package/dist/frontend/lowering/builtins/errors.js +136 -56
  575. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  576. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -0
  577. package/dist/frontend/lowering/builtins/filesystem-calls.js +85 -4
  578. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  579. package/dist/frontend/lowering/builtins/filesystem.d.ts +11 -6
  580. package/dist/frontend/lowering/builtins/filesystem.js +270 -24
  581. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  582. package/dist/frontend/lowering/builtins/json.js +7 -1
  583. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  584. package/dist/frontend/lowering/builtins/mime.d.ts +25 -0
  585. package/dist/frontend/lowering/builtins/mime.js +167 -0
  586. package/dist/frontend/lowering/builtins/mime.js.map +1 -0
  587. package/dist/frontend/lowering/builtins/module-bindings.d.ts +3 -0
  588. package/dist/frontend/lowering/builtins/module-bindings.js +6 -0
  589. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
  590. package/dist/frontend/lowering/builtins/module-calls.js +79 -12
  591. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  592. package/dist/frontend/lowering/builtins/module-resolution.d.ts +7 -4
  593. package/dist/frontend/lowering/builtins/module-resolution.js +115 -13
  594. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
  595. package/dist/frontend/lowering/builtins/navigator.d.ts +3 -1
  596. package/dist/frontend/lowering/builtins/navigator.js +22 -8
  597. package/dist/frontend/lowering/builtins/navigator.js.map +1 -1
  598. package/dist/frontend/lowering/builtins/process.js +49 -9
  599. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  600. package/dist/frontend/lowering/builtins/promises.js +18 -3
  601. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  602. package/dist/frontend/lowering/builtins/promisify-callback.d.ts +6 -2
  603. package/dist/frontend/lowering/builtins/promisify-callback.js +19 -6
  604. package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -1
  605. package/dist/frontend/lowering/builtins/properties.js +23 -5
  606. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  607. package/dist/frontend/lowering/builtins/web-streams-dyn.d.ts +42 -0
  608. package/dist/frontend/lowering/builtins/web-streams-dyn.js +321 -0
  609. package/dist/frontend/lowering/builtins/web-streams-dyn.js.map +1 -0
  610. package/dist/frontend/lowering/builtins/x509.js +35 -5
  611. package/dist/frontend/lowering/builtins/x509.js.map +1 -1
  612. package/dist/frontend/lowering/call-arguments.d.ts +14 -1
  613. package/dist/frontend/lowering/call-arguments.js +84 -70
  614. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  615. package/dist/frontend/lowering/call-signatures.js +108 -24
  616. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  617. package/dist/frontend/lowering/class-attributes.js +6 -5
  618. package/dist/frontend/lowering/class-attributes.js.map +1 -1
  619. package/dist/frontend/lowering/class-dynamic-dispatch.js +40 -19
  620. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  621. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +1 -0
  622. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  623. package/dist/frontend/lowering/class-protocol-dispatch.js +4 -0
  624. package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -1
  625. package/dist/frontend/lowering/class-protocols.d.ts +61 -1
  626. package/dist/frontend/lowering/class-protocols.js +297 -21
  627. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  628. package/dist/frontend/lowering/class-to-primitive.d.ts +3 -2
  629. package/dist/frontend/lowering/class-to-primitive.js +15 -5
  630. package/dist/frontend/lowering/class-to-primitive.js.map +1 -1
  631. package/dist/frontend/lowering/coercions/asserted.d.ts +16 -0
  632. package/dist/frontend/lowering/coercions/asserted.js +79 -0
  633. package/dist/frontend/lowering/coercions/asserted.js.map +1 -0
  634. package/dist/frontend/lowering/coercions/function-adapters.d.ts +13 -0
  635. package/dist/frontend/lowering/coercions/function-adapters.js +70 -3
  636. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  637. package/dist/frontend/lowering/coercions/state.d.ts +23 -0
  638. package/dist/frontend/lowering/coercions/state.js +9 -0
  639. package/dist/frontend/lowering/coercions/state.js.map +1 -1
  640. package/dist/frontend/lowering/coercions/structural-plans.js +67 -1
  641. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  642. package/dist/frontend/lowering/coercions/structural.d.ts +10 -0
  643. package/dist/frontend/lowering/coercions/structural.js +134 -4
  644. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  645. package/dist/frontend/lowering/coercions/unions.d.ts +11 -0
  646. package/dist/frontend/lowering/coercions/unions.js +83 -4
  647. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  648. package/dist/frontend/lowering/completion-callbacks.js +3 -2
  649. package/dist/frontend/lowering/completion-callbacks.js.map +1 -1
  650. package/dist/frontend/lowering/containers/array-callbacks.d.ts +10 -0
  651. package/dist/frontend/lowering/containers/array-callbacks.js +224 -81
  652. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  653. package/dist/frontend/lowering/containers/array-concat.d.ts +5 -2
  654. package/dist/frontend/lowering/containers/array-concat.js +76 -7
  655. package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
  656. package/dist/frontend/lowering/containers/array-construction.d.ts +9 -4
  657. package/dist/frontend/lowering/containers/array-construction.js +112 -100
  658. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  659. package/dist/frontend/lowering/containers/array-methods.js +193 -45
  660. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  661. package/dist/frontend/lowering/containers/array-pipelines.d.ts +3 -0
  662. package/dist/frontend/lowering/containers/array-pipelines.js +81 -13
  663. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
  664. package/dist/frontend/lowering/containers/callback-arguments.d.ts +1 -0
  665. package/dist/frontend/lowering/containers/callback-arguments.js +28 -2
  666. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  667. package/dist/frontend/lowering/containers/collection-methods.js +13 -3
  668. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  669. package/dist/frontend/lowering/containers/filter-predicates.js +34 -3
  670. package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -1
  671. package/dist/frontend/lowering/containers/indexed-objects.d.ts +34 -1
  672. package/dist/frontend/lowering/containers/indexed-objects.js +131 -72
  673. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  674. package/dist/frontend/lowering/cycle-initialization.js +43 -6
  675. package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
  676. package/dist/frontend/lowering/decl-origin.d.ts +49 -0
  677. package/dist/frontend/lowering/decl-origin.js +402 -0
  678. package/dist/frontend/lowering/decl-origin.js.map +1 -0
  679. package/dist/frontend/lowering/deferred-module-initializers.d.ts +2 -0
  680. package/dist/frontend/lowering/deferred-module-initializers.js +7 -0
  681. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  682. package/dist/frontend/lowering/divergences.js +5 -0
  683. package/dist/frontend/lowering/divergences.js.map +1 -1
  684. package/dist/frontend/lowering/dynamic-tier.d.ts +8 -2
  685. package/dist/frontend/lowering/dynamic-tier.js +111 -3
  686. package/dist/frontend/lowering/dynamic-tier.js.map +1 -1
  687. package/dist/frontend/lowering/expressions/array-literals.d.ts +14 -1
  688. package/dist/frontend/lowering/expressions/array-literals.js +43 -5
  689. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  690. package/dist/frontend/lowering/expressions/asserted-receiver.d.ts +48 -0
  691. package/dist/frontend/lowering/expressions/asserted-receiver.js +233 -0
  692. package/dist/frontend/lowering/expressions/asserted-receiver.js.map +1 -0
  693. package/dist/frontend/lowering/expressions/binary.js +136 -1
  694. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  695. package/dist/frontend/lowering/expressions/element-access.d.ts +7 -0
  696. package/dist/frontend/lowering/expressions/element-access.js +363 -12
  697. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  698. package/dist/frontend/lowering/expressions/identifiers.d.ts +3 -0
  699. package/dist/frontend/lowering/expressions/identifiers.js +78 -62
  700. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  701. package/dist/frontend/lowering/expressions/message-listeners.d.ts +3 -0
  702. package/dist/frontend/lowering/expressions/message-listeners.js +19 -0
  703. package/dist/frontend/lowering/expressions/message-listeners.js.map +1 -0
  704. package/dist/frontend/lowering/expressions/narrowing.js +224 -6
  705. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  706. package/dist/frontend/lowering/expressions/nullish-assignment.js +5 -2
  707. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  708. package/dist/frontend/lowering/expressions/object-literals.d.ts +1 -1
  709. package/dist/frontend/lowering/expressions/object-literals.js +282 -24
  710. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  711. package/dist/frontend/lowering/expressions/property-access.d.ts +15 -3
  712. package/dist/frontend/lowering/expressions/property-access.js +397 -74
  713. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  714. package/dist/frontend/lowering/expressions/relational.js +202 -70
  715. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  716. package/dist/frontend/lowering/expressions/typeof.js +9 -1
  717. package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
  718. package/dist/frontend/lowering/expressions/union-fields.d.ts +28 -8
  719. package/dist/frontend/lowering/expressions/union-fields.js +168 -14
  720. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  721. package/dist/frontend/lowering/frozen-records.d.ts +8 -0
  722. package/dist/frontend/lowering/frozen-records.js +56 -9
  723. package/dist/frontend/lowering/frozen-records.js.map +1 -1
  724. package/dist/frontend/lowering/function-context.d.ts +3 -0
  725. package/dist/frontend/lowering/function-context.js +4 -1
  726. package/dist/frontend/lowering/function-context.js.map +1 -1
  727. package/dist/frontend/lowering/function-returns.d.ts +4 -0
  728. package/dist/frontend/lowering/function-returns.js +231 -2
  729. package/dist/frontend/lowering/function-returns.js.map +1 -1
  730. package/dist/frontend/lowering/generator-delegation.js +3 -2
  731. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  732. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +26 -0
  733. package/dist/frontend/lowering/generator-dynamic-dispatch.js +294 -2
  734. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
  735. package/dist/frontend/lowering/generic-functions.d.ts +10 -0
  736. package/dist/frontend/lowering/generic-functions.js +67 -7
  737. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  738. package/dist/frontend/lowering/global-values.d.ts +37 -0
  739. package/dist/frontend/lowering/global-values.js +395 -0
  740. package/dist/frontend/lowering/global-values.js.map +1 -0
  741. package/dist/frontend/lowering/handle-properties.js +3 -2
  742. package/dist/frontend/lowering/handle-properties.js.map +1 -1
  743. package/dist/frontend/lowering/handle-properties.test.d.ts +1 -0
  744. package/dist/frontend/lowering/handle-properties.test.js +25 -0
  745. package/dist/frontend/lowering/handle-properties.test.js.map +1 -0
  746. package/dist/frontend/lowering/import-meta.d.ts +3 -0
  747. package/dist/frontend/lowering/import-meta.js +8 -3
  748. package/dist/frontend/lowering/import-meta.js.map +1 -1
  749. package/dist/frontend/lowering/iterator-adapters.js +3 -3
  750. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  751. package/dist/frontend/lowering/key-order-witness.d.ts +2 -0
  752. package/dist/frontend/lowering/key-order-witness.js +10 -0
  753. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  754. package/dist/frontend/lowering/lower-array-sort.d.ts +5 -1
  755. package/dist/frontend/lowering/lower-array-sort.js +16 -2
  756. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  757. package/dist/frontend/lowering/lower-builtin-values.d.ts +7 -0
  758. package/dist/frontend/lowering/lower-builtin-values.js +65 -16
  759. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  760. package/dist/frontend/lowering/lower-calls.js +222 -24
  761. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  762. package/dist/frontend/lowering/lower-classes.d.ts +6 -0
  763. package/dist/frontend/lowering/lower-classes.js +154 -20
  764. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  765. package/dist/frontend/lowering/lower-console.js +25 -2
  766. package/dist/frontend/lowering/lower-console.js.map +1 -1
  767. package/dist/frontend/lowering/lower-exprs.d.ts +29 -0
  768. package/dist/frontend/lowering/lower-exprs.js +544 -24
  769. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  770. package/dist/frontend/lowering/lower-functions.js +93 -18
  771. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  772. package/dist/frontend/lowering/lower-global-value.d.ts +4 -1
  773. package/dist/frontend/lowering/lower-global-value.js +10 -3
  774. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  775. package/dist/frontend/lowering/lower-inspect.d.ts +44 -4
  776. package/dist/frontend/lowering/lower-inspect.js +723 -26
  777. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  778. package/dist/frontend/lowering/lower-modules.d.ts +3 -1
  779. package/dist/frontend/lowering/lower-modules.js +189 -24
  780. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  781. package/dist/frontend/lowering/lower-namespaces.d.ts +7 -0
  782. package/dist/frontend/lowering/lower-namespaces.js +23 -0
  783. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  784. package/dist/frontend/lowering/lower-node-island.d.ts +74 -0
  785. package/dist/frontend/lowering/lower-node-island.js +1931 -0
  786. package/dist/frontend/lowering/lower-node-island.js.map +1 -0
  787. package/dist/frontend/lowering/lower-server.js +44 -0
  788. package/dist/frontend/lowering/lower-server.js.map +1 -1
  789. package/dist/frontend/lowering/lower-shared-modules.d.ts +27 -0
  790. package/dist/frontend/lowering/lower-shared-modules.js +611 -0
  791. package/dist/frontend/lowering/lower-shared-modules.js.map +1 -0
  792. package/dist/frontend/lowering/lower-stdlib.js +85 -9
  793. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  794. package/dist/frontend/lowering/lower-stmts.d.ts +2 -6
  795. package/dist/frontend/lowering/lower-stmts.js +781 -143
  796. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  797. package/dist/frontend/lowering/lower-stream.js +548 -36
  798. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  799. package/dist/frontend/lowering/lower-timers.js +9 -0
  800. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  801. package/dist/frontend/lowering/lowerer.d.ts +514 -10
  802. package/dist/frontend/lowering/lowerer.js +2667 -163
  803. package/dist/frontend/lowering/lowerer.js.map +1 -1
  804. package/dist/frontend/lowering/lowerer.test.js +44 -1
  805. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  806. package/dist/frontend/lowering/maybe-promise.d.ts +6 -0
  807. package/dist/frontend/lowering/maybe-promise.js +13 -0
  808. package/dist/frontend/lowering/maybe-promise.js.map +1 -1
  809. package/dist/frontend/lowering/module-namespace-elements.d.ts +12 -0
  810. package/dist/frontend/lowering/module-namespace-elements.js +114 -18
  811. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  812. package/dist/frontend/lowering/nan-coded-reads.d.ts +11 -0
  813. package/dist/frontend/lowering/nan-coded-reads.js +45 -2
  814. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  815. package/dist/frontend/lowering/narrowing-stability.d.ts +4 -0
  816. package/dist/frontend/lowering/narrowing-stability.js +14 -6
  817. package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
  818. package/dist/frontend/lowering/receiver-returns.d.ts +3 -0
  819. package/dist/frontend/lowering/receiver-returns.js +134 -0
  820. package/dist/frontend/lowering/receiver-returns.js.map +1 -0
  821. package/dist/frontend/lowering/record-inherited.d.ts +26 -0
  822. package/dist/frontend/lowering/record-inherited.js +807 -0
  823. package/dist/frontend/lowering/record-inherited.js.map +1 -0
  824. package/dist/frontend/lowering/runtime-optional-elements.d.ts +31 -1
  825. package/dist/frontend/lowering/runtime-optional-elements.js +105 -13
  826. package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
  827. package/dist/frontend/lowering/runtime-optional-guards.d.ts +3 -0
  828. package/dist/frontend/lowering/runtime-optional-guards.js +35 -7
  829. package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -1
  830. package/dist/frontend/lowering/runtime-optional-guards.test.js +59 -1
  831. package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -1
  832. package/dist/frontend/lowering/stable-names.d.ts +8 -0
  833. package/dist/frontend/lowering/stable-names.js +22 -0
  834. package/dist/frontend/lowering/stable-names.js.map +1 -1
  835. package/dist/frontend/lowering/stable-names.test.d.ts +1 -0
  836. package/dist/frontend/lowering/stable-names.test.js +16 -0
  837. package/dist/frontend/lowering/stable-names.test.js.map +1 -0
  838. package/dist/frontend/lowering/static-typeof.d.ts +5 -4
  839. package/dist/frontend/lowering/static-typeof.js +10 -4
  840. package/dist/frontend/lowering/static-typeof.js.map +1 -1
  841. package/dist/frontend/lowering/structural-instances.d.ts +22 -0
  842. package/dist/frontend/lowering/structural-instances.js +282 -0
  843. package/dist/frontend/lowering/structural-instances.js.map +1 -0
  844. package/dist/frontend/lowering/surfaces.d.ts +3 -0
  845. package/dist/frontend/lowering/surfaces.js +108 -12
  846. package/dist/frontend/lowering/surfaces.js.map +1 -1
  847. package/dist/frontend/lowering/symbol-fields.d.ts +7 -0
  848. package/dist/frontend/lowering/symbol-fields.js +32 -0
  849. package/dist/frontend/lowering/symbol-fields.js.map +1 -1
  850. package/dist/frontend/lowering/type-failure.d.ts +17 -0
  851. package/dist/frontend/lowering/type-failure.js +163 -0
  852. package/dist/frontend/lowering/type-failure.js.map +1 -0
  853. package/dist/frontend/lowering/typed-arguments.d.ts +5 -6
  854. package/dist/frontend/lowering/typed-arguments.js +10 -2
  855. package/dist/frontend/lowering/typed-arguments.js.map +1 -1
  856. package/dist/frontend/lowering/union-narrow.d.ts +9 -1
  857. package/dist/frontend/lowering/union-narrow.js +31 -2
  858. package/dist/frontend/lowering/union-narrow.js.map +1 -1
  859. package/dist/frontend/lowering/union-retag.test.js +42 -2
  860. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  861. package/dist/frontend/lowering/unit-journal.d.ts +194 -0
  862. package/dist/frontend/lowering/unit-journal.js +556 -0
  863. package/dist/frontend/lowering/unit-journal.js.map +1 -0
  864. package/dist/frontend/lowering/unit-journal.test.d.ts +1 -0
  865. package/dist/frontend/lowering/unit-journal.test.js +335 -0
  866. package/dist/frontend/lowering/unit-journal.test.js.map +1 -0
  867. package/dist/frontend/lowering/width-lift.d.ts +19 -0
  868. package/dist/frontend/node-api-import.d.ts +21 -0
  869. package/dist/frontend/node-api-import.js +88 -0
  870. package/dist/frontend/node-api-import.js.map +1 -0
  871. package/dist/frontend/npm-static-type-exports-host.js +4 -3
  872. package/dist/frontend/npm-static-type-exports-host.js.map +1 -1
  873. package/dist/frontend/npm-static.js +9 -2
  874. package/dist/frontend/npm-static.js.map +1 -1
  875. package/dist/frontend/package-shims.d.ts +6 -2
  876. package/dist/frontend/package-shims.js +13 -2
  877. package/dist/frontend/package-shims.js.map +1 -1
  878. package/dist/frontend/pipeline.d.ts +11 -4
  879. package/dist/frontend/pipeline.js +249 -26
  880. package/dist/frontend/pipeline.js.map +1 -1
  881. package/dist/frontend/process-fork.d.ts +3 -0
  882. package/dist/frontend/process-fork.js.map +1 -1
  883. package/dist/frontend/program-analysis.d.ts +6 -0
  884. package/dist/frontend/program-analysis.js +4 -0
  885. package/dist/frontend/program-analysis.js.map +1 -1
  886. package/dist/frontend/program.d.ts +12 -1
  887. package/dist/frontend/program.js +256 -36
  888. package/dist/frontend/program.js.map +1 -1
  889. package/dist/frontend/resolve.js +8 -2
  890. package/dist/frontend/resolve.js.map +1 -1
  891. package/dist/frontend/shape-inference/analyze.d.ts +23 -1
  892. package/dist/frontend/shape-inference/analyze.js +982 -97
  893. package/dist/frontend/shape-inference/analyze.js.map +1 -1
  894. package/dist/frontend/shape-inference/constant-graphs.d.ts +2 -0
  895. package/dist/frontend/shape-inference/constant-graphs.js +39 -4
  896. package/dist/frontend/shape-inference/constant-graphs.js.map +1 -1
  897. package/dist/frontend/shape-inference/domain.d.ts +2 -0
  898. package/dist/frontend/shape-inference/domain.js.map +1 -1
  899. package/dist/frontend/shape-inference/fallback.d.ts +17 -0
  900. package/dist/frontend/shape-inference/fallback.js +303 -0
  901. package/dist/frontend/shape-inference/fallback.js.map +1 -0
  902. package/dist/frontend/shape-inference/index.d.ts +75 -1
  903. package/dist/frontend/shape-inference/index.js +531 -2
  904. package/dist/frontend/shape-inference/index.js.map +1 -1
  905. package/dist/frontend/shape-inference/inferred-checks.d.ts +2 -0
  906. package/dist/frontend/shape-inference/inferred-checks.js +90 -0
  907. package/dist/frontend/shape-inference/inferred-checks.js.map +1 -0
  908. package/dist/frontend/shape-inference/memo.d.ts +30 -0
  909. package/dist/frontend/shape-inference/memo.js +99 -0
  910. package/dist/frontend/shape-inference/memo.js.map +1 -0
  911. package/dist/frontend/shape-inference/overlay.d.ts +81 -0
  912. package/dist/frontend/shape-inference/overlay.js +1160 -0
  913. package/dist/frontend/shape-inference/overlay.js.map +1 -0
  914. package/dist/frontend/shape-inference/registry.test.d.ts +1 -0
  915. package/dist/frontend/shape-inference/registry.test.js +34 -0
  916. package/dist/frontend/shape-inference/registry.test.js.map +1 -0
  917. package/dist/frontend/shape-inference/report.js +42 -8
  918. package/dist/frontend/shape-inference/report.js.map +1 -1
  919. package/dist/frontend/shape-inference/static-objects.d.ts +29 -0
  920. package/dist/frontend/shape-inference/static-objects.js +1951 -0
  921. package/dist/frontend/shape-inference/static-objects.js.map +1 -0
  922. package/dist/frontend/tier-analysis.d.ts +53 -1
  923. package/dist/frontend/tier-analysis.js +133 -0
  924. package/dist/frontend/tier-analysis.js.map +1 -1
  925. package/dist/frontend/ts7/api.js +4 -2
  926. package/dist/frontend/ts7/api.js.map +1 -1
  927. package/dist/frontend/ts7/ast-node.d.ts +9 -0
  928. package/dist/frontend/ts7/ast-node.js +42 -10
  929. package/dist/frontend/ts7/ast-node.js.map +1 -1
  930. package/dist/frontend/ts7/ast-node.test.js +23 -0
  931. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  932. package/dist/frontend/ts7/ast-wire-protocols.test.d.ts +1 -0
  933. package/dist/frontend/ts7/ast-wire-protocols.test.js +93 -0
  934. package/dist/frontend/ts7/ast-wire-protocols.test.js.map +1 -0
  935. package/dist/frontend/ts7/ast-wire.d.ts +18 -0
  936. package/dist/frontend/ts7/ast-wire.js +66 -4
  937. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  938. package/dist/frontend/ts7/checker-server.d.ts +12 -11
  939. package/dist/frontend/ts7/checker-server.js +28 -12
  940. package/dist/frontend/ts7/checker-server.js.map +1 -1
  941. package/dist/frontend/ts7/checker-server.test.js +8 -3
  942. package/dist/frontend/ts7/checker-server.test.js.map +1 -1
  943. package/dist/frontend/ts7/checker.d.ts +4 -0
  944. package/dist/frontend/ts7/checker.js +9 -0
  945. package/dist/frontend/ts7/checker.js.map +1 -1
  946. package/dist/frontend/ts7/checker.test.js +216 -205
  947. package/dist/frontend/ts7/checker.test.js.map +1 -1
  948. package/dist/frontend/ts7/lib-diagnostics.d.ts +71 -4
  949. package/dist/frontend/ts7/lib-diagnostics.js +337 -20
  950. package/dist/frontend/ts7/lib-diagnostics.js.map +1 -1
  951. package/dist/frontend/ts7/lib-diagnostics.test.js +268 -5
  952. package/dist/frontend/ts7/lib-diagnostics.test.js.map +1 -1
  953. package/dist/frontend/ts7/native-api.d.ts +4 -0
  954. package/dist/frontend/ts7/native-api.js +36 -1
  955. package/dist/frontend/ts7/native-api.js.map +1 -1
  956. package/dist/frontend/ts7/program-host.d.ts +19 -2
  957. package/dist/frontend/ts7/program-host.js +69 -9
  958. package/dist/frontend/ts7/program-host.js.map +1 -1
  959. package/dist/frontend/ts7/program-host.test.js +42 -1
  960. package/dist/frontend/ts7/program-host.test.js.map +1 -1
  961. package/dist/frontend/ts7/rpc-filesystem.d.ts +4 -2
  962. package/dist/frontend/ts7/rpc-filesystem.js +23 -2
  963. package/dist/frontend/ts7/rpc-filesystem.js.map +1 -1
  964. package/dist/frontend/ts7/rpc-filesystem.test.js +28 -2
  965. package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -1
  966. package/dist/frontend/ts7/semantic-checker.js +73 -5
  967. package/dist/frontend/ts7/semantic-checker.js.map +1 -1
  968. package/dist/frontend/ts7/semantic-checker.test.js +106 -74
  969. package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
  970. package/dist/frontend/ts7/semantic-json.d.ts +2 -6
  971. package/dist/frontend/ts7/semantic-model-71.test.d.ts +1 -0
  972. package/dist/frontend/ts7/semantic-model-71.test.js +131 -0
  973. package/dist/frontend/ts7/semantic-model-71.test.js.map +1 -0
  974. package/dist/frontend/ts7/semantic-model.d.ts +121 -3
  975. package/dist/frontend/ts7/semantic-model.js +245 -8
  976. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  977. package/dist/frontend/ts7/session.d.ts +19 -1
  978. package/dist/frontend/ts7/session.js +111 -11
  979. package/dist/frontend/ts7/session.js.map +1 -1
  980. package/dist/frontend/ts7/session.test.js +259 -239
  981. package/dist/frontend/ts7/session.test.js.map +1 -1
  982. package/dist/frontend/ts7/test-servers.d.ts +12 -0
  983. package/dist/frontend/ts7/test-servers.js +16 -0
  984. package/dist/frontend/ts7/test-servers.js.map +1 -0
  985. package/dist/frontend/tsc-codes.js +6 -3
  986. package/dist/frontend/tsc-codes.js.map +1 -1
  987. package/dist/frontend/type-mapper.d.ts +61 -1
  988. package/dist/frontend/type-mapper.js +577 -28
  989. package/dist/frontend/type-mapper.js.map +1 -1
  990. package/dist/frontend/type-patches/command.d.ts +19 -0
  991. package/dist/frontend/type-patches/command.js +352 -0
  992. package/dist/frontend/type-patches/command.js.map +1 -0
  993. package/dist/frontend/type-patches/layer.d.ts +45 -0
  994. package/dist/frontend/type-patches/layer.js +409 -0
  995. package/dist/frontend/type-patches/layer.js.map +1 -0
  996. package/dist/frontend/type-patches/locate.d.ts +41 -0
  997. package/dist/frontend/type-patches/locate.js +914 -0
  998. package/dist/frontend/type-patches/locate.js.map +1 -0
  999. package/dist/frontend/type-patches/locate.test.d.ts +1 -0
  1000. package/dist/frontend/type-patches/locate.test.js +179 -0
  1001. package/dist/frontend/type-patches/locate.test.js.map +1 -0
  1002. package/dist/frontend/type-patches/selector.d.ts +43 -0
  1003. package/dist/frontend/type-patches/selector.js +126 -0
  1004. package/dist/frontend/type-patches/selector.js.map +1 -0
  1005. package/dist/frontend/type-patches/selector.test.d.ts +1 -0
  1006. package/dist/frontend/type-patches/selector.test.js +56 -0
  1007. package/dist/frontend/type-patches/selector.test.js.map +1 -0
  1008. package/dist/frontend/type-patches/semver.d.ts +19 -0
  1009. package/dist/frontend/type-patches/semver.js +221 -0
  1010. package/dist/frontend/type-patches/semver.js.map +1 -0
  1011. package/dist/frontend/type-patches/semver.test.d.ts +1 -0
  1012. package/dist/frontend/type-patches/semver.test.js +47 -0
  1013. package/dist/frontend/type-patches/semver.test.js.map +1 -0
  1014. package/dist/frontend/worker-target.test.js +2 -2
  1015. package/dist/frontend/worker-target.test.js.map +1 -1
  1016. package/dist/index.d.ts +4 -1
  1017. package/dist/index.js +292 -27
  1018. package/dist/index.js.map +1 -1
  1019. package/dist/ir/builtin-effects.js +51 -5
  1020. package/dist/ir/builtin-effects.js.map +1 -1
  1021. package/dist/ir/builtin-signatures.d.ts +4 -3
  1022. package/dist/ir/builtin-signatures.js +277 -12
  1023. package/dist/ir/builtin-signatures.js.map +1 -1
  1024. package/dist/ir/callback-specialization.js +108 -67
  1025. package/dist/ir/callback-specialization.js.map +1 -1
  1026. package/dist/ir/capture-values.d.ts +7 -1
  1027. package/dist/ir/capture-values.js +28 -5
  1028. package/dist/ir/capture-values.js.map +1 -1
  1029. package/dist/ir/char-unit-locals.js +38 -42
  1030. package/dist/ir/char-unit-locals.js.map +1 -1
  1031. package/dist/ir/expression-inlining.js +12 -6
  1032. package/dist/ir/expression-inlining.js.map +1 -1
  1033. package/dist/ir/fields.generated.d.ts +751 -0
  1034. package/dist/ir/fields.generated.js +2071 -0
  1035. package/dist/ir/fields.generated.js.map +1 -0
  1036. package/dist/ir/fields.test.d.ts +1 -0
  1037. package/dist/ir/fields.test.js +113 -0
  1038. package/dist/ir/fields.test.js.map +1 -0
  1039. package/dist/ir/function-references.js +4 -0
  1040. package/dist/ir/function-references.js.map +1 -1
  1041. package/dist/ir/function-references.test.js +25 -0
  1042. package/dist/ir/function-references.test.js.map +1 -1
  1043. package/dist/ir/inline-array-sources.d.ts +15 -0
  1044. package/dist/ir/inline-array-sources.js +1825 -0
  1045. package/dist/ir/inline-array-sources.js.map +1 -0
  1046. package/dist/ir/inline-arrays.d.ts +41 -0
  1047. package/dist/ir/inline-arrays.js +533 -0
  1048. package/dist/ir/inline-arrays.js.map +1 -0
  1049. package/dist/ir/inline-arrays.test.d.ts +1 -0
  1050. package/dist/ir/inline-arrays.test.js +225 -0
  1051. package/dist/ir/inline-arrays.test.js.map +1 -0
  1052. package/dist/ir/int32-slots.d.ts +6 -0
  1053. package/dist/ir/int32-slots.js +154 -16
  1054. package/dist/ir/int32-slots.js.map +1 -1
  1055. package/dist/ir/int32-slots.test.js +48 -0
  1056. package/dist/ir/int32-slots.test.js.map +1 -1
  1057. package/dist/ir/integer-loops.d.ts +12 -0
  1058. package/dist/ir/integer-loops.js +23 -0
  1059. package/dist/ir/integer-loops.js.map +1 -1
  1060. package/dist/ir/integer-ranges.d.ts +7 -1
  1061. package/dist/ir/integer-ranges.js +29 -2
  1062. package/dist/ir/integer-ranges.js.map +1 -1
  1063. package/dist/ir/intrinsic-signatures.js +2 -1
  1064. package/dist/ir/intrinsic-signatures.js.map +1 -1
  1065. package/dist/ir/ir.d.ts +103 -5
  1066. package/dist/ir/ir.js +38 -4
  1067. package/dist/ir/ir.js.map +1 -1
  1068. package/dist/ir/ir.test.js +134 -1
  1069. package/dist/ir/ir.test.js.map +1 -1
  1070. package/dist/ir/jsval.js +211 -29
  1071. package/dist/ir/jsval.js.map +1 -1
  1072. package/dist/ir/jsval.test.js +120 -0
  1073. package/dist/ir/jsval.test.js.map +1 -1
  1074. package/dist/ir/loop-entry-ranges.d.ts +38 -0
  1075. package/dist/ir/loop-entry-ranges.js +259 -0
  1076. package/dist/ir/loop-entry-ranges.js.map +1 -0
  1077. package/dist/ir/loop-entry-ranges.test.d.ts +1 -0
  1078. package/dist/ir/loop-entry-ranges.test.js +191 -0
  1079. package/dist/ir/loop-entry-ranges.test.js.map +1 -0
  1080. package/dist/ir/node-index.d.ts +3 -0
  1081. package/dist/ir/node-index.js +6 -0
  1082. package/dist/ir/node-index.js.map +1 -1
  1083. package/dist/ir/numeric-call-specialization.d.ts +9 -6
  1084. package/dist/ir/numeric-call-specialization.js +164 -34
  1085. package/dist/ir/numeric-call-specialization.js.map +1 -1
  1086. package/dist/ir/paired-while-loops.js +23 -19
  1087. package/dist/ir/paired-while-loops.js.map +1 -1
  1088. package/dist/ir/parameter-versions.js +6 -3
  1089. package/dist/ir/parameter-versions.js.map +1 -1
  1090. package/dist/ir/receiver-readers.d.ts +10 -0
  1091. package/dist/ir/receiver-readers.js +65 -28
  1092. package/dist/ir/receiver-readers.js.map +1 -1
  1093. package/dist/ir/row-pairs.d.ts +9 -1
  1094. package/dist/ir/row-pairs.js +136 -43
  1095. package/dist/ir/row-pairs.js.map +1 -1
  1096. package/dist/ir/row-pairs.test.js +25 -5
  1097. package/dist/ir/row-pairs.test.js.map +1 -1
  1098. package/dist/ir/runtime-features.d.ts +33 -1
  1099. package/dist/ir/runtime-features.js +104 -6
  1100. package/dist/ir/runtime-features.js.map +1 -1
  1101. package/dist/ir/runtime-features.test.js +13 -0
  1102. package/dist/ir/runtime-features.test.js.map +1 -1
  1103. package/dist/ir/saturating-loop-jams.d.ts +24 -0
  1104. package/dist/ir/saturating-loop-jams.js +420 -0
  1105. package/dist/ir/saturating-loop-jams.js.map +1 -0
  1106. package/dist/ir/saturating-loop-jams.test.d.ts +1 -0
  1107. package/dist/ir/saturating-loop-jams.test.js +196 -0
  1108. package/dist/ir/saturating-loop-jams.test.js.map +1 -0
  1109. package/dist/ir/scalar-records.js +9 -3
  1110. package/dist/ir/scalar-records.js.map +1 -1
  1111. package/dist/ir/self-captures.js +2 -1
  1112. package/dist/ir/self-captures.js.map +1 -1
  1113. package/dist/ir/serialize.d.ts +5 -1
  1114. package/dist/ir/serialize.js +7 -1
  1115. package/dist/ir/serialize.js.map +1 -1
  1116. package/dist/ir/traverse.js +3 -0
  1117. package/dist/ir/traverse.js.map +1 -1
  1118. package/dist/ir/validate.js +91 -9
  1119. package/dist/ir/validate.js.map +1 -1
  1120. package/dist/library/ir-policy.js +1 -0
  1121. package/dist/library/ir-policy.js.map +1 -1
  1122. package/dist/native/cache.js +2 -0
  1123. package/dist/native/cache.js.map +1 -1
  1124. package/dist/native/cli.js +54 -7
  1125. package/dist/native/cli.js.map +1 -1
  1126. package/dist/native/compiler.d.ts +3 -0
  1127. package/dist/native/compiler.js +173 -36
  1128. package/dist/native/compiler.js.map +1 -1
  1129. package/dist/native/compiler.test.js +86 -3
  1130. package/dist/native/compiler.test.js.map +1 -1
  1131. package/dist/native/executable-cache.d.ts +20 -2
  1132. package/dist/native/executable-cache.js +17 -10
  1133. package/dist/native/executable-cache.js.map +1 -1
  1134. package/dist/native/executable-cache.test.js +38 -1
  1135. package/dist/native/executable-cache.test.js.map +1 -1
  1136. package/dist/native/linker-job.d.ts +71 -0
  1137. package/dist/native/linker-job.js +242 -0
  1138. package/dist/native/linker-job.js.map +1 -0
  1139. package/dist/native/linker-job.test.d.ts +1 -0
  1140. package/dist/native/linker-job.test.js +349 -0
  1141. package/dist/native/linker-job.test.js.map +1 -0
  1142. package/dist/native/prepare.js +15 -2
  1143. package/dist/native/prepare.js.map +1 -1
  1144. package/dist/native/sanitizer.js +10 -15
  1145. package/dist/native/sanitizer.js.map +1 -1
  1146. package/dist/native/sanitizer.test.js +152 -66
  1147. package/dist/native/sanitizer.test.js.map +1 -1
  1148. package/dist/native/toolchain.d.ts +11 -2
  1149. package/dist/native/toolchain.js +43 -17
  1150. package/dist/native/toolchain.js.map +1 -1
  1151. package/dist/native/toolchain.test.js +75 -0
  1152. package/dist/native/toolchain.test.js.map +1 -1
  1153. package/dist/node-islands/boundary.d.ts +37 -0
  1154. package/dist/node-islands/boundary.js +135 -0
  1155. package/dist/node-islands/boundary.js.map +1 -0
  1156. package/dist/node-islands/classify.js +1 -1
  1157. package/dist/node-islands/classify.js.map +1 -1
  1158. package/dist/node-islands/effect-gate.d.ts +11 -0
  1159. package/dist/node-islands/effect-gate.js +746 -0
  1160. package/dist/node-islands/effect-gate.js.map +1 -0
  1161. package/dist/node-islands/effect-gate.test.d.ts +1 -0
  1162. package/dist/node-islands/effect-gate.test.js +152 -0
  1163. package/dist/node-islands/effect-gate.test.js.map +1 -0
  1164. package/dist/node-islands/libnode-pack.d.ts +68 -0
  1165. package/dist/node-islands/libnode-pack.js +199 -0
  1166. package/dist/node-islands/libnode-pack.js.map +1 -0
  1167. package/dist/node-islands/libnode-pack.test.d.ts +1 -0
  1168. package/dist/node-islands/libnode-pack.test.js +258 -0
  1169. package/dist/node-islands/libnode-pack.test.js.map +1 -0
  1170. package/dist/node-islands/libnode.d.ts +32 -0
  1171. package/dist/node-islands/libnode.js +212 -0
  1172. package/dist/node-islands/libnode.js.map +1 -0
  1173. package/dist/node-islands/libnode.test.d.ts +1 -0
  1174. package/dist/node-islands/libnode.test.js +170 -0
  1175. package/dist/node-islands/libnode.test.js.map +1 -0
  1176. package/dist/node-islands/modules.d.ts +96 -0
  1177. package/dist/node-islands/modules.js +803 -0
  1178. package/dist/node-islands/modules.js.map +1 -0
  1179. package/dist/node-islands/modules.test.d.ts +1 -0
  1180. package/dist/node-islands/modules.test.js +276 -0
  1181. package/dist/node-islands/modules.test.js.map +1 -0
  1182. package/dist/node-islands/resolve.d.ts +8 -0
  1183. package/dist/node-islands/resolve.js +10 -0
  1184. package/dist/node-islands/resolve.js.map +1 -0
  1185. package/dist/node-islands/snapshot.d.ts +16 -0
  1186. package/dist/node-islands/snapshot.js +486 -0
  1187. package/dist/node-islands/snapshot.js.map +1 -0
  1188. package/dist/node-islands/snapshot.test.d.ts +1 -0
  1189. package/dist/node-islands/snapshot.test.js +56 -0
  1190. package/dist/node-islands/snapshot.test.js.map +1 -0
  1191. package/dist/project-config.d.ts +37 -1
  1192. package/dist/project-config.js +159 -7
  1193. package/dist/project-config.js.map +1 -1
  1194. package/dist/project-config.test.js +153 -0
  1195. package/dist/project-config.test.js.map +1 -1
  1196. package/dist/startup-cache.d.ts +1 -0
  1197. package/dist/startup-cache.js +1 -0
  1198. package/dist/startup-cache.js.map +1 -1
  1199. package/package.json +24 -21
  1200. package/surface-manifest.json +47 -7
@@ -2347,19 +2347,23 @@ export function streamClassAliasDecl(lowerer, nameNode, init) {
2347
2347
  * makeAsyncIterable — every stage position renders the same "body"
2348
2348
  * clause). finished() keeps its narrower isNodeStream wording. */
2349
2349
  const PIPELINE_STAGE_EXPECTED = "of type function or an instance of Blob, ReadableStream, WritableStream, Stream, Iterable, AsyncIterable, or Promise or { readable, writable } pair";
2350
- /** A checked-dynamic pipeline stage (an untyped source or destination):
2351
- * a boxed native stream unwraps at run time; other values (functions,
2352
- * pairs) throw the not-supported Error there. */
2350
+ /** A checked-dynamic pipeline stage taken as a stream: a boxed native
2351
+ * stream unwraps at run time, and a value that is not stream-like or a
2352
+ * function (an iterable after the first stage) becomes Duplex.from of it,
2353
+ * as pipelineImpl's last branch does. Stream-like objects, web streams and
2354
+ * { readable, writable } pairs throw the not-supported Error there, and so
2355
+ * do functions, which reach this lowering only past
2356
+ * MAX_DYN_FUNCTION_STAGES. */
2353
2357
  function unboxDynStage(lowerer, v, node) {
2354
2358
  noteUntypedStreamFlow(lowerer, null);
2355
2359
  return {
2356
2360
  kind: "libCall",
2357
- fn: "stream.unboxDyn",
2361
+ fn: "stream.unboxDynStage",
2358
2362
  args: [
2359
2363
  v,
2360
2364
  strLit(lowerer.dynNodeStreams
2361
- ? "pipeline stages other than native streams (JavaScript stream objects, iterables, generators, plain functions, and { readable, writable } pairs) are not supported yet"
2362
- : "pipeline stages other than native streams (iterables, generators, plain functions, and { readable, writable } pairs) are not supported yet", locOf(node)),
2365
+ ? "pipeline stages other than native streams, iterables and functions (JavaScript stream objects, web streams, { readable, writable } pairs after the first stage, and functions after the first three untyped stages) are not supported yet"
2366
+ : "pipeline stages other than native streams, iterables and functions (web streams, { readable, writable } pairs after the first stage, and functions after the first three untyped stages) are not supported yet", locOf(node)),
2363
2367
  ],
2364
2368
  type: { kind: "object", className: "%Duplex" },
2365
2369
  loc: locOf(node),
@@ -2425,12 +2429,100 @@ const BOXED_SOURCE_KINDS = new Set([
2425
2429
  "array",
2426
2430
  "string",
2427
2431
  ]);
2432
+ /** The most checked-dynamic stages after the first that a pipeline
2433
+ * branches on as functions; each one doubles the lowered pipeline calls. */
2434
+ const MAX_DYN_FUNCTION_STAGES = 3;
2435
+ /** pipeline() whose stages after the first include untyped values:
2436
+ * pipelineImpl calls a stage that is a function with the previous stage
2437
+ * and { signal }, and pipes into or takes any other value, so the call is
2438
+ * lowered once per combination of those stages being functions or not,
2439
+ * up to MAX_DYN_FUNCTION_STAGES of them, and a typeof test on each
2440
+ * picks the branch at run time. The arguments other than function stages
2441
+ * are evaluated first, in argument order. */
2442
+ function lowerDynStagePipeline(lowerer, stageArgs, src, loc, build) {
2443
+ const candidates = [];
2444
+ for (let j = 1; j < stageArgs.length; j++) {
2445
+ const arg = stageArgs[j];
2446
+ if (pipelineStageFunction(lowerer, arg) !== null || isValueStream(lowerer, arg))
2447
+ continue;
2448
+ if ((lowerer.typeOf(arg).flags & (ts.TypeFlags.Any | ts.TypeFlags.Unknown)) !== 0) {
2449
+ candidates.push(j);
2450
+ }
2451
+ }
2452
+ if (candidates.length === 0)
2453
+ return build({ source: src, bound: new Map(), fns: new Set() });
2454
+ const stmts = [];
2455
+ const bind = (init) => {
2456
+ const local = lowerer.declareHiddenLocal("%pipelineArg", init.type);
2457
+ stmts.push({ kind: "varDecl", localId: local.id, init, loc: init.loc });
2458
+ return varRef(local.id, init.type, init.loc);
2459
+ };
2460
+ const source = src !== null && !src.iterable ? { expr: bind(src.expr), iterable: false } : src;
2461
+ const bound = new Map();
2462
+ let preSource;
2463
+ for (let j = src !== null ? 1 : 0; j < stageArgs.length; j++) {
2464
+ const arg = stageArgs[j];
2465
+ if (pipelineStageFunction(lowerer, arg) !== null)
2466
+ continue;
2467
+ if (j === 0 && iterableSourceType(lowerer, arg) !== null) {
2468
+ const lowered = lowerIterableSource(lowerer, arg, null, loc);
2469
+ if (lowered === null)
2470
+ lowerer.noLowering("pipeline over this source", arg);
2471
+ preSource = { closure: bind(lowered.closure), out: lowered.out };
2472
+ continue;
2473
+ }
2474
+ let value = lowerer.lowerExpr(arg);
2475
+ // an untyped array, string, Set, Map or generator object that keeps
2476
+ // its static type is taken through its checked-dynamic value
2477
+ if (candidates.includes(j) &&
2478
+ BOXED_SOURCE_KINDS.has(value.type.kind) &&
2479
+ lowerer.dynConvertible(value.type)) {
2480
+ value = { kind: "dynFrom", value, type: DYN, loc: value.loc };
2481
+ }
2482
+ bound.set(j, bind(value));
2483
+ }
2484
+ const dynStages = candidates
2485
+ .filter((j) => bound.get(j).type.kind === "dyn")
2486
+ .slice(0, MAX_DYN_FUNCTION_STAGES);
2487
+ const branch = (i, fns) => {
2488
+ if (i === dynStages.length)
2489
+ return build({ source, bound, preSource, fns });
2490
+ const j = dynStages[i];
2491
+ const asStream = branch(i + 1, fns);
2492
+ const asFunction = branch(i + 1, new Set([...fns, j]));
2493
+ // a function destination's promise resolves to its value
2494
+ const type = asFunction.type.kind === "promise" && asFunction.type.inner.kind === "dyn"
2495
+ ? asFunction.type
2496
+ : asStream.type;
2497
+ return {
2498
+ kind: "ternary",
2499
+ cond: { kind: "dynTest", test: "function", value: bound.get(j), type: BOOL, loc },
2500
+ then: lowerer.coerceToExpected(asFunction, type),
2501
+ else_: lowerer.coerceToExpected(asStream, type),
2502
+ type,
2503
+ loc,
2504
+ };
2505
+ };
2506
+ const result = branch(0, new Set());
2507
+ return { kind: "seqExpr", stmts, result, type: result.type, loc };
2508
+ }
2428
2509
  /** lowerPipelineStages' source arguments for a checked-dynamic first stage. */
2429
2510
  function stagesSource(src) {
2430
2511
  if (src === null)
2431
2512
  return [undefined, undefined];
2432
2513
  return src.iterable ? [undefined, src.expr] : [new Map([[0, src.expr]]), undefined];
2433
2514
  }
2515
+ /** A pipeline stage taken as a stream under a DynStagePlan: the
2516
+ * checked-dynamic first stage's stream, a value bound before the
2517
+ * branches, or the argument lowered here. */
2518
+ function planStreamArg(lowerer, plan, node, i) {
2519
+ if (i === 0 && plan.source !== null)
2520
+ return plan.source.expr;
2521
+ const bound = plan.bound.get(i);
2522
+ return bound !== undefined
2523
+ ? streamArgOf(lowerer, node, bound, "pipeline")
2524
+ : lowerStreamArg(lowerer, node, "pipeline");
2525
+ }
2434
2526
  /** A stream-rooted argument, lowered — or the pointed fence (pipeline's
2435
2527
  * iterable/generator/function stages have no lowering yet). `what` picks
2436
2528
  * the validation ladder: finished() rejects EVERY non-stream through
@@ -2729,18 +2821,22 @@ export function lowerStreamModuleCall(lowerer, call, bi, loc) {
2729
2821
  ? pipelineOptions(lowerer, lastArg)
2730
2822
  : null;
2731
2823
  const stageArgs = opts ? args.slice(0, -1) : args;
2732
- const build = (src) => lowerPromisePipeline(lowerer, stageArgs, opts, src, loc);
2824
+ const build = (src) => lowerDynStagePipeline(lowerer, stageArgs, src, loc, (plan) => lowerPromisePipeline(lowerer, stageArgs, opts, plan, loc));
2733
2825
  return lowerDynSourcePipeline(lowerer, stageArgs[0], loc, build) ?? build(null);
2734
2826
  }
2735
2827
  return null;
2736
2828
  }
2737
2829
  return lowerStreamModuleCallbackCall(lowerer, call, bi, loc);
2738
2830
  }
2739
- /** stream/promises pipeline(...stages[, options]), with the first stage
2740
- * pre-lowered when it is checked-dynamic (lowerDynSourcePipeline). */
2741
- function lowerPromisePipeline(lowerer, stageArgs, opts, src, loc) {
2742
- if (src?.iterable === true || hasPipelineFunctionStage(lowerer, stageArgs)) {
2743
- const staged = lowerPipelineStages(lowerer, stageArgs, loc, ...stagesSource(src));
2831
+ /** stream/promises pipeline(...stages[, options]), for one branch of
2832
+ * lowerDynStagePipeline's plan. */
2833
+ function lowerPromisePipeline(lowerer, stageArgs, opts, plan, loc) {
2834
+ const src = plan.source;
2835
+ if (src?.iterable === true ||
2836
+ plan.fns.size > 0 ||
2837
+ plan.preSource !== undefined ||
2838
+ hasPipelineFunctionStage(lowerer, stageArgs)) {
2839
+ const staged = lowerPipelineStages(lowerer, stageArgs, loc, ...stagesSource(src), plan);
2744
2840
  const type = staged.destPromise ?? { kind: "promise", inner: VOID };
2745
2841
  // A promise destination's value settles the result (same type).
2746
2842
  if (!opts) {
@@ -2765,7 +2861,7 @@ function lowerPromisePipeline(lowerer, stageArgs, opts, src, loc) {
2765
2861
  }
2766
2862
  let streams;
2767
2863
  try {
2768
- streams = stageArgs.map((a, i) => i === 0 && src !== null ? src.expr : lowerStreamArg(lowerer, a, "pipeline"));
2864
+ streams = stageArgs.map((a, i) => planStreamArg(lowerer, plan, a, i));
2769
2865
  }
2770
2866
  catch (e) {
2771
2867
  if (e instanceof StreamArgTypeThrow)
@@ -2917,7 +3013,7 @@ function lowerStreamModuleCallbackCall(lowerer, call, bi, loc) {
2917
3013
  if (args.length < 3) {
2918
3014
  lowerer.noLowering(`pipeline with ${args.length} arguments`, call, "the supported form is pipeline(source, ...streams, callback)");
2919
3015
  }
2920
- const build = (src) => lowerCallbackPipeline(lowerer, call, args, src, loc);
3016
+ const build = (src) => lowerDynStagePipeline(lowerer, args.slice(0, -1), src, loc, (plan) => lowerCallbackPipeline(lowerer, call, args, plan, loc));
2921
3017
  return lowerDynSourcePipeline(lowerer, args[0], loc, build) ?? build(null);
2922
3018
  }
2923
3019
  if (bi.member === "compose") {
@@ -2928,16 +3024,23 @@ function lowerStreamModuleCallbackCall(lowerer, call, bi, loc) {
2928
3024
  }
2929
3025
  return null;
2930
3026
  }
2931
- /** pipeline(...stages, callback), with the first stage pre-lowered when it
2932
- * is checked-dynamic (lowerDynSourcePipeline). */
2933
- function lowerCallbackPipeline(lowerer, call, args, src, loc) {
2934
- if (src?.iterable === true || hasPipelineFunctionStage(lowerer, args.slice(0, -1))) {
2935
- const staged = lowerPipelineStages(lowerer, args.slice(0, -1), loc, ...stagesSource(src));
2936
- const cbNode = args[args.length - 1];
2937
- const cbParams = ts.isArrowFunction(cbNode) || ts.isFunctionExpression(cbNode)
2938
- ? cbNode.parameters.nodes.length
2939
- : 0;
2940
- if (staged.dest === 2 || (staged.dest === 1 && cbParams > 1)) {
3027
+ /** pipeline(...stages, callback), for one branch of lowerDynStagePipeline's
3028
+ * plan. */
3029
+ function lowerCallbackPipeline(lowerer, call, args, plan, loc) {
3030
+ const src = plan.source;
3031
+ const cbNode = args[args.length - 1];
3032
+ const cbParams = ts.isArrowFunction(cbNode) || ts.isFunctionExpression(cbNode)
3033
+ ? cbNode.parameters.nodes.length
3034
+ : 0;
3035
+ // A branch over untyped stages whose destination is a stream: the
3036
+ // callback still receives (err, value), value undefined, as in Node.
3037
+ const dynCallback = plan.bound.size > 0 && cbParams > 1;
3038
+ if (src?.iterable === true ||
3039
+ plan.fns.size > 0 ||
3040
+ plan.preSource !== undefined ||
3041
+ hasPipelineFunctionStage(lowerer, args.slice(0, -1))) {
3042
+ const staged = lowerPipelineStages(lowerer, args.slice(0, -1), loc, ...stagesSource(src), plan);
3043
+ if (staged.dest >= 2 || (staged.dest === 1 && cbParams > 1) || dynCallback) {
2941
3044
  // callback(err, value): the destination's value (undefined for
2942
3045
  // an async generator) reaches the callback through the
2943
3046
  // checked-dynamic path.
@@ -2970,9 +3073,7 @@ function lowerCallbackPipeline(lowerer, call, args, src, loc) {
2970
3073
  }
2971
3074
  let streams;
2972
3075
  try {
2973
- streams = args
2974
- .slice(0, -1)
2975
- .map((a, i) => (i === 0 && src !== null ? src.expr : lowerStreamArg(lowerer, a, "pipeline")));
3076
+ streams = args.slice(0, -1).map((a, i) => planStreamArg(lowerer, plan, a, i));
2976
3077
  }
2977
3078
  catch (e) {
2978
3079
  if (e instanceof StreamArgTypeThrow)
@@ -2980,7 +3081,9 @@ function lowerCallbackPipeline(lowerer, call, args, src, loc) {
2980
3081
  throw e;
2981
3082
  }
2982
3083
  const last = streams[streams.length - 1];
2983
- const { cb, dyn } = lowerEosCallback(lowerer, "pipeline", args[args.length - 1], last.type);
3084
+ const { cb, dyn } = dynCallback
3085
+ ? { cb: lowerer.lowerExprExpecting(cbNode, DYN), dyn: true }
3086
+ : lowerEosCallback(lowerer, "pipeline", cbNode, last.type);
2984
3087
  return {
2985
3088
  kind: "libCall",
2986
3089
  fn: dyn ? "stream.pipelineDyn" : "stream.pipeline",
@@ -3571,6 +3674,356 @@ function lowerDynIterableSource(lowerer, value, loc) {
3571
3674
  out,
3572
3675
  };
3573
3676
  }
3677
+ /** The async generator a checked-dynamic stage's iterable is pumped
3678
+ * through. */
3679
+ function dynStageGenType() {
3680
+ return { kind: "generator", async: true, yieldT: DYN, retT: VOID, nextT: UNDEFINED_T };
3681
+ }
3682
+ /** A checked-dynamic pipeline stage after the first that is a function at
3683
+ * run time, as the stage closure the runtime calls with the previous
3684
+ * stage and { signal } (pipelineImpl's `typeof stream === 'function'`
3685
+ * branch): it calls the function with the previous stream or generator
3686
+ * as an untyped value. Before the last stage the result must be async
3687
+ * iterable (ERR_INVALID_RETURN_VALUE otherwise) and is pumped on through
3688
+ * lowerDynIterableSource's generator; the last stage answers the result,
3689
+ * which the runtime classifies (SCR_PIPE_DEST_DYN). A previous stage
3690
+ * whose type has no untyped form throws the not-supported Error. */
3691
+ function lowerDynFunctionStage(lowerer, fnValue, srcT, j, isLast, loc, handoff) {
3692
+ const out = isLast ? DYN : dynStageGenType();
3693
+ const stageT = funcOf([srcT, DYN], out);
3694
+ const take = handoff?.take === true;
3695
+ const give = handoff?.give === true && !isLast;
3696
+ const key = `dynFunctionStage:${isLast ? "dest" : "transform"}:${typeKey(srcT)}:${take ? 1 : 0}${give ? 1 : 0}`;
3697
+ let maker = lowerer.valueHelpers.get(key);
3698
+ if (!maker) {
3699
+ maker = `%stream.dynFunctionStage.${lowerer.valueHelpers.size}`;
3700
+ lowerer.valueHelpers.set(key, maker);
3701
+ const stageName = `${maker}.stage`;
3702
+ const frame = new LiftedFrame(loc);
3703
+ const fnId = frame.local("fn", DYN, false);
3704
+ const labelId = frame.local("label", STRING, false);
3705
+ const cellId = frame.local("cell", DYN, false);
3706
+ const srcId = frame.param("src", srcT);
3707
+ const optsId = frame.param("opts", DYN);
3708
+ const inputId = frame.local("input", DYN, false);
3709
+ const resultId = frame.local("result", DYN, false);
3710
+ const nextId = frame.local("next", DYN, false);
3711
+ const cell = () => varRef(cellId, DYN, loc);
3712
+ const body = [];
3713
+ if (take) {
3714
+ // the previous untyped stage's value, handed over as it is
3715
+ // (makeAsyncIterable answers an iterable itself)
3716
+ body.push({ kind: "varDecl", localId: inputId, init: handoffTake(cell(), loc), loc }, handoffPut(cell(), dynUndefinedExpr(loc), loc));
3717
+ }
3718
+ if (!take && !lowerer.dynConvertible(srcT)) {
3719
+ body.push({
3720
+ kind: "return",
3721
+ value: nodeThrowExpr(0, "SC2020", `pipeline function stages after a stage of type '${lowerer.fmt(srcT)}' are not supported yet`, out, loc),
3722
+ loc,
3723
+ });
3724
+ }
3725
+ else {
3726
+ body.push({
3727
+ kind: "varDecl",
3728
+ localId: resultId,
3729
+ init: {
3730
+ kind: "dynCall",
3731
+ callee: varRef(fnId, DYN, loc),
3732
+ receiver: dynUndefinedExpr(loc),
3733
+ calleeName: "transform",
3734
+ args: [
3735
+ take
3736
+ ? varRef(inputId, DYN, loc)
3737
+ : { kind: "dynFrom", value: varRef(srcId, srcT, loc), type: DYN, loc },
3738
+ varRef(optsId, DYN, loc),
3739
+ ],
3740
+ type: DYN,
3741
+ loc,
3742
+ },
3743
+ loc,
3744
+ });
3745
+ if (isLast) {
3746
+ body.push({ kind: "return", value: varRef(resultId, DYN, loc), loc });
3747
+ }
3748
+ else {
3749
+ body.push({
3750
+ kind: "varDecl",
3751
+ localId: nextId,
3752
+ init: {
3753
+ kind: "libCall",
3754
+ fn: "stream.dynTransformResult",
3755
+ args: [varRef(resultId, DYN, loc), varRef(labelId, STRING, loc)],
3756
+ type: DYN,
3757
+ loc,
3758
+ },
3759
+ loc,
3760
+ });
3761
+ // the next untyped function stage takes the result itself; the
3762
+ // generator returned for the runtime is then never read
3763
+ if (give)
3764
+ body.push(handoffPut(cell(), varRef(nextId, DYN, loc), loc));
3765
+ const iterable = lowerDynIterableSource(lowerer, varRef(nextId, DYN, loc), loc);
3766
+ if (!iterable)
3767
+ throw new InternalCompilerError("dyn iterable generator without a result record");
3768
+ body.push({
3769
+ kind: "return",
3770
+ value: { kind: "callValue", callee: iterable.closure, args: [], type: out, loc },
3771
+ loc,
3772
+ });
3773
+ }
3774
+ }
3775
+ const captured = take || give ? [fnId, labelId, cellId] : [fnId, labelId];
3776
+ for (const id of captured)
3777
+ frame.locals.find((l) => l.id === id).boxed = true;
3778
+ lowerer.liftedFns.push({
3779
+ name: stageName,
3780
+ params: frame.params,
3781
+ returnType: out,
3782
+ captures: [
3783
+ { localId: fnId, name: "fn", type: DYN },
3784
+ { localId: labelId, name: "label", type: STRING },
3785
+ ...(take || give ? [{ localId: cellId, name: "cell", type: DYN }] : []),
3786
+ ],
3787
+ locals: frame.locals,
3788
+ body,
3789
+ loc,
3790
+ });
3791
+ const makerFn = { id: "fn.0", name: "fn", type: DYN, mutable: false, boxed: true };
3792
+ const makerLabel = {
3793
+ id: "label.1",
3794
+ name: "label",
3795
+ type: STRING,
3796
+ mutable: false,
3797
+ boxed: true,
3798
+ };
3799
+ const makerCell = {
3800
+ id: "cell.2",
3801
+ name: "cell",
3802
+ type: DYN,
3803
+ mutable: false,
3804
+ boxed: true,
3805
+ };
3806
+ const makerLocals = take || give ? [makerFn, makerLabel, makerCell] : [makerFn, makerLabel];
3807
+ lowerer.liftedFns.push({
3808
+ name: maker,
3809
+ params: makerLocals.map((l) => ({ localId: l.id, name: l.name, type: l.type })),
3810
+ returnType: stageT,
3811
+ locals: makerLocals,
3812
+ body: [
3813
+ {
3814
+ kind: "return",
3815
+ value: {
3816
+ kind: "closure",
3817
+ fnName: stageName,
3818
+ captures: makerLocals.map((l) => l.id),
3819
+ type: stageT,
3820
+ loc,
3821
+ },
3822
+ loc,
3823
+ },
3824
+ ],
3825
+ loc,
3826
+ });
3827
+ }
3828
+ return {
3829
+ closure: {
3830
+ kind: "call",
3831
+ callee: maker,
3832
+ args: [fnValue, strLit(`transform[${j - 1}]`, loc), ...(take || give ? [handoff.cell] : [])],
3833
+ type: stageT,
3834
+ loc,
3835
+ },
3836
+ out,
3837
+ };
3838
+ }
3839
+ function handoffPut(cell, value, loc) {
3840
+ return {
3841
+ kind: "exprStmt",
3842
+ expr: {
3843
+ kind: "libCall",
3844
+ fn: "dyn.keySet",
3845
+ args: [cell, strLit("v", loc), value],
3846
+ type: VOID,
3847
+ loc,
3848
+ },
3849
+ loc,
3850
+ };
3851
+ }
3852
+ function handoffTake(cell, loc) {
3853
+ return { kind: "dynKeyGet", value: cell, key: strLit("v", loc), type: DYN, loc };
3854
+ }
3855
+ /** `(value) => generator over value`: the async generator an untyped
3856
+ * destination function's async iterable result is pumped through
3857
+ * (SCR_PIPE_DEST_DYN's box), interned. */
3858
+ function dynStageIterHelper(lowerer, loc) {
3859
+ const genT = dynStageGenType();
3860
+ const type = funcOf([DYN], genT);
3861
+ const key = "dynStageIter";
3862
+ let name = lowerer.valueHelpers.get(key);
3863
+ if (!name) {
3864
+ name = `%stream.dynStageIter.${lowerer.valueHelpers.size}`;
3865
+ lowerer.valueHelpers.set(key, name);
3866
+ const v = { id: "value.0", name: "value", type: DYN, mutable: false };
3867
+ const iterable = lowerDynIterableSource(lowerer, varRef(v.id, DYN, loc), loc);
3868
+ if (!iterable)
3869
+ throw new InternalCompilerError("dyn iterable generator without a result record");
3870
+ lowerer.liftedFns.push({
3871
+ name,
3872
+ params: [{ localId: v.id, name: v.name, type: DYN }],
3873
+ returnType: genT,
3874
+ locals: [v],
3875
+ body: [
3876
+ {
3877
+ kind: "return",
3878
+ value: { kind: "callValue", callee: iterable.closure, args: [], type: genT, loc },
3879
+ loc,
3880
+ },
3881
+ ],
3882
+ loc,
3883
+ });
3884
+ }
3885
+ return { kind: "closure", fnName: name, captures: [], type, loc };
3886
+ }
3887
+ /** A checked-dynamic first pipeline stage pumped as an iterable
3888
+ * (pipelineImpl's i === 0 branch), as the stage closure the runtime calls
3889
+ * with { signal } while it sets the pipeline up: a function is called
3890
+ * with { signal } and its result must be iterable, a { readable, writable }
3891
+ * pair pumps its readable side, and any other value is pumped itself,
3892
+ * through lowerDynIterableSource's generator. */
3893
+ function lowerDynSourceStage(lowerer, value, loc, cell) {
3894
+ const out = {
3895
+ kind: "generator",
3896
+ async: true,
3897
+ yieldT: DYN,
3898
+ retT: VOID,
3899
+ nextT: UNDEFINED_T,
3900
+ };
3901
+ const stageT = funcOf([DYN], out);
3902
+ const give = cell !== undefined;
3903
+ const key = give ? "dynSourceStage:give" : "dynSourceStage";
3904
+ let maker = lowerer.valueHelpers.get(key);
3905
+ if (!maker) {
3906
+ maker = `%stream.dynSourceStage.${lowerer.valueHelpers.size}`;
3907
+ const stageName = `${maker}.stage`;
3908
+ const frame = new LiftedFrame(loc);
3909
+ const srcId = frame.local("src", DYN, false);
3910
+ const cellId = frame.local("cell", DYN, false);
3911
+ const optsId = frame.param("opts", DYN);
3912
+ const valueId = frame.local("value", DYN, false);
3913
+ const genId = frame.local("gen", out, false);
3914
+ const src = () => varRef(srcId, DYN, loc);
3915
+ const sourceValue = (v, returned) => ({
3916
+ kind: "libCall",
3917
+ fn: "stream.dynSourceValue",
3918
+ args: [v, boolLit(returned, loc)],
3919
+ type: DYN,
3920
+ loc,
3921
+ });
3922
+ const iterable = lowerDynIterableSource(lowerer, varRef(valueId, DYN, loc), loc);
3923
+ if (!iterable)
3924
+ return null;
3925
+ lowerer.valueHelpers.set(key, maker);
3926
+ const body = [
3927
+ {
3928
+ kind: "varDecl",
3929
+ localId: valueId,
3930
+ init: {
3931
+ kind: "ternary",
3932
+ cond: { kind: "dynTest", test: "function", value: src(), type: BOOL, loc },
3933
+ then: sourceValue({
3934
+ kind: "dynCall",
3935
+ callee: src(),
3936
+ receiver: dynUndefinedExpr(loc),
3937
+ calleeName: "source",
3938
+ args: [varRef(optsId, DYN, loc)],
3939
+ type: DYN,
3940
+ loc,
3941
+ }, true),
3942
+ else_: sourceValue(src(), false),
3943
+ type: DYN,
3944
+ loc,
3945
+ },
3946
+ loc,
3947
+ },
3948
+ {
3949
+ kind: "varDecl",
3950
+ localId: genId,
3951
+ init: { kind: "callValue", callee: iterable.closure, args: [], type: out, loc },
3952
+ loc,
3953
+ },
3954
+ ];
3955
+ if (give) {
3956
+ // the untyped function stage after the source takes the iterable
3957
+ // itself, as Node's makeAsyncIterable answers it; a stream (a pair's
3958
+ // readable side) goes as the generator over it, as Node iterates a
3959
+ // stream there
3960
+ const v = varRef(valueId, DYN, loc);
3961
+ body.push(handoffPut(varRef(cellId, DYN, loc), {
3962
+ kind: "ternary",
3963
+ cond: { kind: "libCall", fn: "stream.dynIterableSource", args: [v], type: BOOL, loc },
3964
+ then: v,
3965
+ else_: { kind: "dynFrom", value: varRef(genId, out, loc), type: DYN, loc },
3966
+ type: DYN,
3967
+ loc,
3968
+ }, loc));
3969
+ }
3970
+ body.push({ kind: "return", value: varRef(genId, out, loc), loc });
3971
+ const captured = give ? [srcId, cellId] : [srcId];
3972
+ for (const id of captured)
3973
+ frame.locals.find((l) => l.id === id).boxed = true;
3974
+ lowerer.liftedFns.push({
3975
+ name: stageName,
3976
+ params: frame.params,
3977
+ returnType: out,
3978
+ captures: [
3979
+ { localId: srcId, name: "src", type: DYN },
3980
+ ...(give ? [{ localId: cellId, name: "cell", type: DYN }] : []),
3981
+ ],
3982
+ locals: frame.locals,
3983
+ body,
3984
+ loc,
3985
+ });
3986
+ const makerSrc = { id: "src.0", name: "src", type: DYN, mutable: false, boxed: true };
3987
+ const makerCell = {
3988
+ id: "cell.1",
3989
+ name: "cell",
3990
+ type: DYN,
3991
+ mutable: false,
3992
+ boxed: true,
3993
+ };
3994
+ const makerLocals = give ? [makerSrc, makerCell] : [makerSrc];
3995
+ lowerer.liftedFns.push({
3996
+ name: maker,
3997
+ params: makerLocals.map((l) => ({ localId: l.id, name: l.name, type: l.type })),
3998
+ returnType: stageT,
3999
+ locals: makerLocals,
4000
+ body: [
4001
+ {
4002
+ kind: "return",
4003
+ value: {
4004
+ kind: "closure",
4005
+ fnName: stageName,
4006
+ captures: makerLocals.map((l) => l.id),
4007
+ type: stageT,
4008
+ loc,
4009
+ },
4010
+ loc,
4011
+ },
4012
+ ],
4013
+ loc,
4014
+ });
4015
+ }
4016
+ return {
4017
+ closure: {
4018
+ kind: "call",
4019
+ callee: maker,
4020
+ args: give ? [value, cell] : [value],
4021
+ type: stageT,
4022
+ loc,
4023
+ },
4024
+ out,
4025
+ };
4026
+ }
3574
4027
  function lowerIterableSource(lowerer, node, fn, loc) {
3575
4028
  if (fn === null) {
3576
4029
  const webElem = staticReadableStreamElementType(lowerer, node);
@@ -3700,7 +4153,7 @@ function lowerIterableSource(lowerer, node, fn, loc) {
3700
4153
  * pipeline passes it: makeAsyncIterable answers the previous stream
3701
4154
  * itself (a Readable is async iterable) or the previous stage's
3702
4155
  * generator. */
3703
- function lowerPipelineStages(lowerer, stageArgs, loc, preLowered, dynSource) {
4156
+ function lowerPipelineStages(lowerer, stageArgs, loc, preLowered, dynSource, plan) {
3704
4157
  if (stageArgs.length > 52) {
3705
4158
  lowerer.noLowering("pipeline with function stages and more than 52 stages", stageArgs[52], "split the pipeline");
3706
4159
  }
@@ -3718,18 +4171,59 @@ function lowerPipelineStages(lowerer, stageArgs, loc, preLowered, dynSource) {
3718
4171
  // before all stages, so when a stage precedes a stream the arguments
3719
4172
  // are bound to locals first, keeping JavaScript's evaluation order.
3720
4173
  const argOrder = [];
4174
+ // An untyped stage followed by an untyped function stage hands its value
4175
+ // over through one cell per call (DynStageHandoff).
4176
+ let handoffCell = null;
4177
+ const cellRef = () => {
4178
+ handoffCell ??= lowerer.declareHiddenLocal("%pipelineHandoff", DYN);
4179
+ return varRef(handoffCell.id, DYN, loc);
4180
+ };
4181
+ let takes = false;
3721
4182
  for (let j = 0; j < stageArgs.length; j++) {
3722
4183
  const arg = stageArgs[j];
4184
+ const givesToNext = plan?.fns.has(j + 1) === true;
3723
4185
  if (j === 0 && dynSource !== undefined) {
3724
- const source = lowerDynIterableSource(lowerer, dynSource, loc);
4186
+ const source = lowerDynSourceStage(lowerer, dynSource, loc, givesToNext ? cellRef() : undefined);
4187
+ takes = givesToNext;
3725
4188
  if (source === null)
3726
4189
  lowerer.noLowering("pipeline over this source", arg);
4190
+ // a source function takes { signal }
4191
+ mask |= 1 << stages.length;
3727
4192
  positions += 1;
3728
4193
  argOrder.push({ list: stages, index: stages.length });
3729
4194
  stages.push(source.closure);
3730
4195
  srcT = source.out;
3731
4196
  continue;
3732
4197
  }
4198
+ if (plan?.fns.has(j) === true) {
4199
+ // a checked-dynamic stage that is a function at run time
4200
+ const isLast = j === stageArgs.length - 1;
4201
+ const take = takes;
4202
+ const give = givesToNext && !isLast;
4203
+ takes = give;
4204
+ const lowered = lowerDynFunctionStage(lowerer, plan.bound.get(j), srcT, j, isLast, loc, take || give ? { cell: cellRef(), take, give } : undefined);
4205
+ mask |= 1 << stages.length;
4206
+ positions += 2 ** j;
4207
+ argOrder.push({ list: stages, index: stages.length });
4208
+ stages.push(lowered.closure);
4209
+ if (isLast) {
4210
+ // its result is classified at run time: a promise settles the
4211
+ // pipeline's value, and an async iterable is pumped into the
4212
+ // PassThrough
4213
+ const genT = dynStageGenType();
4214
+ const helpers = fromGenHelpers(lowerer, genT, loc);
4215
+ if (!helpers)
4216
+ lowerer.noLowering("a pipeline destination with this generator type", arg);
4217
+ helperArgs.push(helpers[0], helpers[1], helpers[2]);
4218
+ dest = 3;
4219
+ destPromise = { kind: "promise", inner: DYN };
4220
+ srcT = null;
4221
+ }
4222
+ else {
4223
+ srcT = lowered.out;
4224
+ }
4225
+ continue;
4226
+ }
3733
4227
  // compose's head and tail functions arrive as Duplex.from streams
3734
4228
  const fn = preLowered?.has(j) ? null : pipelineStageFunction(lowerer, arg);
3735
4229
  const syncSourceFn = j === 0 &&
@@ -3740,7 +4234,8 @@ function lowerPipelineStages(lowerer, stageArgs, loc, preLowered, dynSource) {
3740
4234
  if (j === 0 &&
3741
4235
  !preLowered?.has(j) &&
3742
4236
  (syncSourceFn || (fn === null && iterableSourceType(lowerer, arg) !== null))) {
3743
- const source = lowerIterableSource(lowerer, arg, syncSourceFn ? fn : null, loc);
4237
+ const source = (syncSourceFn ? undefined : plan?.preSource) ??
4238
+ lowerIterableSource(lowerer, arg, syncSourceFn ? fn : null, loc);
3744
4239
  if (source === null)
3745
4240
  lowerer.noLowering("pipeline over this source", arg);
3746
4241
  positions += 1;
@@ -3762,7 +4257,12 @@ function lowerPipelineStages(lowerer, stageArgs, loc, preLowered, dynSource) {
3762
4257
  }
3763
4258
  let stream;
3764
4259
  try {
3765
- stream = preLowered?.get(j) ?? lowerStreamArg(lowerer, arg, "pipeline");
4260
+ const bound = plan?.bound.get(j);
4261
+ stream =
4262
+ preLowered?.get(j) ??
4263
+ (bound !== undefined
4264
+ ? streamArgOf(lowerer, arg, bound, "pipeline")
4265
+ : lowerStreamArg(lowerer, arg, "pipeline"));
3766
4266
  }
3767
4267
  catch (e) {
3768
4268
  if (e instanceof StreamArgTypeThrow)
@@ -3826,6 +4326,9 @@ function lowerPipelineStages(lowerer, stageArgs, loc, preLowered, dynSource) {
3826
4326
  }
3827
4327
  helperArgs.push(pipelineBoxHelper(lowerer, destPromise, loc));
3828
4328
  }
4329
+ else if (dest === 3) {
4330
+ helperArgs.push(dynStageIterHelper(lowerer, loc));
4331
+ }
3829
4332
  const argDecls = [];
3830
4333
  const firstStage = argOrder.findIndex((a) => a.list === stages);
3831
4334
  if (firstStage >= 0 && argOrder.slice(firstStage).some((a) => a.list === streams)) {
@@ -3836,6 +4339,15 @@ function lowerPipelineStages(lowerer, stageArgs, loc, preLowered, dynSource) {
3836
4339
  a.list[a.index] = varRef(local.id, init.type, init.loc);
3837
4340
  }
3838
4341
  }
4342
+ if (handoffCell !== null) {
4343
+ const cell = handoffCell;
4344
+ argDecls.unshift({
4345
+ kind: "varDecl",
4346
+ localId: cell.id,
4347
+ init: { kind: "dynObjLit", fields: [], type: DYN, loc },
4348
+ loc,
4349
+ });
4350
+ }
3839
4351
  const bindArgs = (call) => argDecls.length === 0
3840
4352
  ? call
3841
4353
  : { kind: "seqExpr", stmts: argDecls, result: call, type: call.type, loc };
@@ -3877,7 +4389,7 @@ function lowerPipelineStages(lowerer, stageArgs, loc, preLowered, dynSource) {
3877
4389
  {
3878
4390
  kind: "varDecl",
3879
4391
  localId: ac.id,
3880
- init: { kind: "libCall", fn: "fetch.abortControllerNew", args: [], type: DYN, loc },
4392
+ init: { kind: "libCall", fn: "abort.controllerNew", args: [], type: DYN, loc },
3881
4393
  loc,
3882
4394
  },
3883
4395
  ],
@@ -4162,7 +4674,7 @@ function duplexFromBody(lowerer, node, loc) {
4162
4674
  {
4163
4675
  kind: "varDecl",
4164
4676
  localId: acLocal.id,
4165
- init: { kind: "libCall", fn: "fetch.abortControllerNew", args: [], type: DYN, loc },
4677
+ init: { kind: "libCall", fn: "abort.controllerNew", args: [], type: DYN, loc },
4166
4678
  loc,
4167
4679
  },
4168
4680
  ];
@@ -4544,7 +5056,7 @@ export function operatorSignalOptions(lowerer, options, loc) {
4544
5056
  type: DYN,
4545
5057
  loc,
4546
5058
  };
4547
- const signal = { kind: "libCall", fn: "fetch.abortAny", args: [list], type: DYN, loc };
5059
+ const signal = { kind: "libCall", fn: "abort.any", args: [list], type: DYN, loc };
4548
5060
  return { kind: "libCall", fn: "readable.opSignalOpts", args: [signal], type: DYN, loc };
4549
5061
  }
4550
5062
  /** reduce's signal for a reducer that reads it (operators.js): `const ac
@@ -4561,7 +5073,7 @@ export function reduceSignalSetup(lowerer, options, loc, declare = (name, type)
4561
5073
  {
4562
5074
  kind: "varDecl",
4563
5075
  localId: acLocal.id,
4564
- init: { kind: "libCall", fn: "fetch.abortControllerNew", args: [], type: DYN, loc },
5076
+ init: { kind: "libCall", fn: "abort.controllerNew", args: [], type: DYN, loc },
4565
5077
  loc,
4566
5078
  },
4567
5079
  {