@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.
- package/ambient/node-fallback/assert-strict.d.ts +47 -0
- package/ambient/node-fallback/assert.d.ts +86 -0
- package/ambient/node-fallback/async_hooks.d.ts +41 -0
- package/ambient/node-fallback/buffer.d.ts +23 -0
- package/ambient/node-fallback/child_process.d.ts +242 -0
- package/ambient/node-fallback/cluster.d.ts +17 -0
- package/ambient/node-fallback/constants.d.ts +15 -0
- package/ambient/node-fallback/crypto.d.ts +837 -0
- package/ambient/node-fallback/dgram.d.ts +58 -0
- package/ambient/node-fallback/diagnostics_channel.d.ts +87 -0
- package/ambient/node-fallback/dns-promises.d.ts +27 -0
- package/ambient/node-fallback/dns.d.ts +65 -0
- package/ambient/node-fallback/events.d.ts +60 -0
- package/ambient/node-fallback/fs-promises.d.ts +225 -0
- package/ambient/node-fallback/fs.d.ts +641 -0
- package/ambient/node-fallback/graceful-fs.d.ts +9 -0
- package/ambient/node-fallback/http.d.ts +326 -0
- package/ambient/node-fallback/http2.d.ts +816 -0
- package/ambient/node-fallback/https.d.ts +59 -0
- package/ambient/node-fallback/module.d.ts +10 -0
- package/ambient/node-fallback/net.d.ts +374 -0
- package/ambient/node-fallback/os.d.ts +288 -0
- package/ambient/node-fallback/path-posix.d.ts +22 -0
- package/ambient/node-fallback/path-win32.d.ts +22 -0
- package/ambient/node-fallback/path.d.ts +55 -0
- package/ambient/node-fallback/process.d.ts +11 -0
- package/ambient/node-fallback/punycode.d.ts +18 -0
- package/ambient/node-fallback/querystring.d.ts +55 -0
- package/ambient/node-fallback/stream-consumers.d.ts +21 -0
- package/ambient/node-fallback/stream-promises.d.ts +28 -0
- package/ambient/node-fallback/stream-web.d.ts +36 -0
- package/ambient/node-fallback/stream.d.ts +644 -0
- package/ambient/node-fallback/string_decoder.d.ts +20 -0
- package/ambient/node-fallback/test.d.ts +236 -0
- package/ambient/node-fallback/timers-promises.d.ts +31 -0
- package/ambient/node-fallback/timers.d.ts +28 -0
- package/ambient/node-fallback/tls.d.ts +169 -0
- package/ambient/node-fallback/url.d.ts +95 -0
- package/ambient/node-fallback/util-types.d.ts +50 -0
- package/ambient/node-fallback/util.d.ts +416 -0
- package/ambient/node-fallback/v8.d.ts +43 -0
- package/ambient/node-fallback/worker_threads.d.ts +113 -0
- package/ambient/node-fallback/zlib.d.ts +422 -0
- package/ambient/scriptc-node-fallback.d.ts +224 -6688
- package/dist/backend/cycle-analysis.js +4 -0
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/executable-features.d.ts +1 -1
- package/dist/backend/executable-features.js +15 -2
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/huge-text.d.ts +16 -0
- package/dist/backend/huge-text.js +103 -0
- package/dist/backend/huge-text.js.map +1 -0
- package/dist/backend/huge-text.test.d.ts +1 -0
- package/dist/backend/huge-text.test.js +73 -0
- package/dist/backend/huge-text.test.js.map +1 -0
- package/dist/backend/library-pack.js +1 -1
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/link-plan-core.d.ts +10 -0
- package/dist/backend/link-plan-core.js +14 -2
- package/dist/backend/link-plan-core.js.map +1 -1
- package/dist/backend/link-plan-core.test.d.ts +1 -0
- package/dist/backend/link-plan-core.test.js +20 -0
- package/dist/backend/link-plan-core.test.js.map +1 -0
- package/dist/backend/link-plan.d.ts +8 -0
- package/dist/backend/link-plan.js +7 -0
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/linker.js +37 -14
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/lld.d.ts +13 -0
- package/dist/backend/lld.js +18 -1
- package/dist/backend/lld.js.map +1 -1
- package/dist/backend/lld.test.js +7 -1
- package/dist/backend/lld.test.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +2 -0
- package/dist/backend/llvm/alloc.js +1 -1
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/arenas.d.ts +78 -0
- package/dist/backend/llvm/arenas.js +313 -0
- package/dist/backend/llvm/arenas.js.map +1 -0
- package/dist/backend/llvm/arenas.test.d.ts +1 -0
- package/dist/backend/llvm/arenas.test.js +140 -0
- package/dist/backend/llvm/arenas.test.js.map +1 -0
- package/dist/backend/llvm/blocks.d.ts +11 -1
- package/dist/backend/llvm/blocks.js +23 -5
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/bytes-headers.d.ts +19 -0
- package/dist/backend/llvm/bytes-headers.js +55 -0
- package/dist/backend/llvm/bytes-headers.js.map +1 -0
- package/dist/backend/llvm/bytes-loop-versions.d.ts +4 -3
- package/dist/backend/llvm/bytes-loop-versions.js +42 -7
- package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
- package/dist/backend/llvm/bytes-loop-versions.test.js +39 -4
- package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.d.ts +5 -0
- package/dist/backend/llvm/call-lifetimes.js +43 -8
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +26 -0
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/checked-narrows.d.ts +3 -0
- package/dist/backend/llvm/checked-narrows.js +8 -1
- package/dist/backend/llvm/checked-narrows.js.map +1 -1
- package/dist/backend/llvm/class-unions.d.ts +21 -0
- package/dist/backend/llvm/class-unions.js +141 -0
- package/dist/backend/llvm/class-unions.js.map +1 -0
- package/dist/backend/llvm/class-unions.test.d.ts +1 -0
- package/dist/backend/llvm/class-unions.test.js +137 -0
- package/dist/backend/llvm/class-unions.test.js.map +1 -0
- package/dist/backend/llvm/classes.d.ts +46 -8
- package/dist/backend/llvm/classes.js +259 -32
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +4 -0
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +23 -0
- package/dist/backend/llvm/common.js +34 -0
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.test.js +39 -0
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
- package/dist/backend/llvm/constant-choices.d.ts +32 -0
- package/dist/backend/llvm/constant-choices.js +209 -0
- package/dist/backend/llvm/constant-choices.js.map +1 -0
- package/dist/backend/llvm/constant-choices.test.d.ts +1 -0
- package/dist/backend/llvm/constant-choices.test.js +94 -0
- package/dist/backend/llvm/constant-choices.test.js.map +1 -0
- package/dist/backend/llvm/counted-loops.d.ts +14 -2
- package/dist/backend/llvm/counted-loops.js +60 -7
- package/dist/backend/llvm/counted-loops.js.map +1 -1
- package/dist/backend/llvm/counted-loops.test.d.ts +1 -0
- package/dist/backend/llvm/counted-loops.test.js +34 -0
- package/dist/backend/llvm/counted-loops.test.js.map +1 -0
- package/dist/backend/llvm/cpu-dispatch.d.ts +26 -0
- package/dist/backend/llvm/cpu-dispatch.js +279 -0
- package/dist/backend/llvm/cpu-dispatch.js.map +1 -0
- package/dist/backend/llvm/dense-array-access.d.ts +13 -2
- package/dist/backend/llvm/dense-array-access.js +60 -6
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dyn-handle-tags.test.js +40 -14
- package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +28 -2
- package/dist/backend/llvm/dyn.js +176 -27
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emit-function.js +25 -3
- package/dist/backend/llvm/emit-function.js.map +1 -1
- package/dist/backend/llvm/emit-journal.d.ts +1 -0
- package/dist/backend/llvm/emit-journal.js.map +1 -1
- package/dist/backend/llvm/emit-module.d.ts +5 -3
- package/dist/backend/llvm/emit-module.js +362 -74
- package/dist/backend/llvm/emit-module.js.map +1 -1
- package/dist/backend/llvm/emit-statements.js +327 -59
- package/dist/backend/llvm/emit-statements.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +223 -33
- package/dist/backend/llvm/emitter.js +713 -100
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +20 -1
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +32 -6
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +9 -1
- package/dist/backend/llvm/expr-bytes.js +105 -9
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +1 -1
- package/dist/backend/llvm/expr-callbacks.js +29 -22
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +0 -4
- package/dist/backend/llvm/expr-calls.js +116 -14
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js +77 -12
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +22 -0
- package/dist/backend/llvm/expr-control.d.ts +4 -0
- package/dist/backend/llvm/expr-control.js +485 -426
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.js +4 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +3 -3
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +6 -0
- package/dist/backend/llvm/expr-primitives.js +119 -58
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +11 -2
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-records.d.ts +36 -4
- package/dist/backend/llvm/expr-records.js +249 -37
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +124 -7
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.js +13 -14
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/frame-escapes.d.ts +11 -0
- package/dist/backend/llvm/frame-escapes.js +219 -0
- package/dist/backend/llvm/frame-escapes.js.map +1 -0
- package/dist/backend/llvm/function-layout.d.ts +15 -0
- package/dist/backend/llvm/function-layout.js +40 -0
- package/dist/backend/llvm/function-layout.js.map +1 -0
- package/dist/backend/llvm/heap-census.d.ts +34 -0
- package/dist/backend/llvm/heap-census.js +163 -0
- package/dist/backend/llvm/heap-census.js.map +1 -0
- package/dist/backend/llvm/inline-arrays.d.ts +41 -0
- package/dist/backend/llvm/inline-arrays.js +195 -0
- package/dist/backend/llvm/inline-arrays.js.map +1 -0
- package/dist/backend/llvm/int32-kind-loops.js +2 -0
- package/dist/backend/llvm/int32-kind-loops.js.map +1 -1
- package/dist/backend/llvm/integer-clones.d.ts +32 -5
- package/dist/backend/llvm/integer-clones.js +237 -44
- package/dist/backend/llvm/integer-clones.js.map +1 -1
- package/dist/backend/llvm/integer-clones.test.js +120 -0
- package/dist/backend/llvm/integer-clones.test.js.map +1 -1
- package/dist/backend/llvm/iterative-teardown.test.d.ts +1 -0
- package/dist/backend/llvm/iterative-teardown.test.js +62 -0
- package/dist/backend/llvm/iterative-teardown.test.js.map +1 -0
- package/dist/backend/llvm/js-ic.js +246 -62
- package/dist/backend/llvm/js-ic.js.map +1 -1
- package/dist/backend/llvm/lib-connect.js +1 -1
- package/dist/backend/llvm/lib-connect.js.map +1 -1
- package/dist/backend/llvm/lib-datagram.js +2 -2
- package/dist/backend/llvm/lib-datagram.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +153 -16
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.d.ts +8 -0
- package/dist/backend/llvm/lib-filesystem.js +48 -4
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.js +4 -3
- package/dist/backend/llvm/lib-http2.js.map +1 -1
- package/dist/backend/llvm/lib-lookup.js +1 -1
- package/dist/backend/llvm/lib-lookup.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +15 -1
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +32 -8
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.d.ts +3 -0
- package/dist/backend/llvm/lib-shared.js +191 -28
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +1 -1
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +15 -1
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +1 -1
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/local-extents.d.ts +22 -0
- package/dist/backend/llvm/local-extents.js +102 -0
- package/dist/backend/llvm/local-extents.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.js +15 -2
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +1 -1
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
- package/dist/backend/llvm/loop-callees.d.ts +21 -0
- package/dist/backend/llvm/loop-callees.js +119 -0
- package/dist/backend/llvm/loop-callees.js.map +1 -0
- package/dist/backend/llvm/loop-callees.test.d.ts +1 -0
- package/dist/backend/llvm/loop-callees.test.js +65 -0
- package/dist/backend/llvm/loop-callees.test.js.map +1 -0
- package/dist/backend/llvm/loop-entry-versions.d.ts +17 -0
- package/dist/backend/llvm/loop-entry-versions.js +185 -0
- package/dist/backend/llvm/loop-entry-versions.js.map +1 -0
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.test.js +13 -4
- package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.d.ts +11 -0
- package/dist/backend/llvm/map-read-lifetimes.js +51 -1
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +6 -3
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.d.ts +67 -10
- package/dist/backend/llvm/nullable-unions.js +218 -22
- package/dist/backend/llvm/nullable-unions.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.test.js +124 -1
- package/dist/backend/llvm/nullable-unions.test.js.map +1 -1
- package/dist/backend/llvm/periodic-guards.d.ts +16 -0
- package/dist/backend/llvm/periodic-guards.js +91 -0
- package/dist/backend/llvm/periodic-guards.js.map +1 -0
- package/dist/backend/llvm/periodic-guards.test.d.ts +1 -0
- package/dist/backend/llvm/periodic-guards.test.js +64 -0
- package/dist/backend/llvm/periodic-guards.test.js.map +1 -0
- package/dist/backend/llvm/publish.d.ts +12 -2
- package/dist/backend/llvm/publish.js +15 -8
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/rebound-parameters.d.ts +4 -1
- package/dist/backend/llvm/rebound-parameters.js +17 -1
- package/dist/backend/llvm/rebound-parameters.js.map +1 -1
- package/dist/backend/llvm/receivers.d.ts +7 -0
- package/dist/backend/llvm/receivers.js +77 -10
- package/dist/backend/llvm/receivers.js.map +1 -1
- package/dist/backend/llvm/record-union-keys.test.js +29 -0
- package/dist/backend/llvm/record-union-keys.test.js.map +1 -1
- package/dist/backend/llvm/record-views.d.ts +29 -0
- package/dist/backend/llvm/record-views.js +249 -0
- package/dist/backend/llvm/record-views.js.map +1 -0
- package/dist/backend/llvm/record-views.test.d.ts +1 -0
- package/dist/backend/llvm/record-views.test.js +118 -0
- package/dist/backend/llvm/record-views.test.js.map +1 -0
- package/dist/backend/llvm/reference-writes.js +21 -0
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/reference-writes.test.js +42 -0
- package/dist/backend/llvm/reference-writes.test.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.d.ts +5 -1
- package/dist/backend/llvm/regex-matchers.js +173 -21
- package/dist/backend/llvm/regex-matchers.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.test.js +39 -1
- package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
- package/dist/backend/llvm/region-groups.d.ts +67 -0
- package/dist/backend/llvm/region-groups.js +1719 -0
- package/dist/backend/llvm/region-groups.js.map +1 -0
- package/dist/backend/llvm/region-groups.test.d.ts +1 -0
- package/dist/backend/llvm/region-groups.test.js +197 -0
- package/dist/backend/llvm/region-groups.test.js.map +1 -0
- package/dist/backend/llvm/region-ir.d.ts +31 -0
- package/dist/backend/llvm/region-ir.js +256 -0
- package/dist/backend/llvm/region-ir.js.map +1 -0
- package/dist/backend/llvm/region-sites.d.ts +20 -0
- package/dist/backend/llvm/region-sites.js +327 -0
- package/dist/backend/llvm/region-sites.js.map +1 -0
- package/dist/backend/llvm/region-sites.test.d.ts +1 -0
- package/dist/backend/llvm/region-sites.test.js +216 -0
- package/dist/backend/llvm/region-sites.test.js.map +1 -0
- package/dist/backend/llvm/repr-report.d.ts +9 -0
- package/dist/backend/llvm/repr-report.js +143 -0
- package/dist/backend/llvm/repr-report.js.map +1 -0
- package/dist/backend/llvm/repr-report.test.d.ts +1 -0
- package/dist/backend/llvm/repr-report.test.js +62 -0
- package/dist/backend/llvm/repr-report.test.js.map +1 -0
- package/dist/backend/llvm/runtime-registries.test.d.ts +1 -0
- package/dist/backend/llvm/runtime-registries.test.js +88 -0
- package/dist/backend/llvm/runtime-registries.test.js.map +1 -0
- package/dist/backend/llvm/serialized-ir-emission.test.js +1 -0
- package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
- package/dist/backend/llvm/shape-union-tags.test.d.ts +1 -0
- package/dist/backend/llvm/shape-union-tags.test.js +75 -0
- package/dist/backend/llvm/shape-union-tags.test.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +60 -10
- package/dist/backend/llvm/shapes.js +233 -51
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +37 -18
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.d.ts +3 -0
- package/dist/backend/llvm/speculative-integers.js +20 -8
- package/dist/backend/llvm/speculative-integers.js.map +1 -1
- package/dist/backend/llvm/split.js +6 -1
- package/dist/backend/llvm/split.js.map +1 -1
- package/dist/backend/llvm/split.test.js +23 -0
- package/dist/backend/llvm/split.test.js.map +1 -1
- package/dist/backend/llvm/stack-callbacks.js +4 -2
- package/dist/backend/llvm/stack-callbacks.js.map +1 -1
- package/dist/backend/llvm/stack-objects.d.ts +12 -3
- package/dist/backend/llvm/stack-objects.js +110 -22
- package/dist/backend/llvm/stack-objects.js.map +1 -1
- package/dist/backend/llvm/stack-objects.test.js +144 -0
- package/dist/backend/llvm/stack-objects.test.js.map +1 -1
- package/dist/backend/llvm/stack-unions.test.js +24 -1
- package/dist/backend/llvm/stack-unions.test.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.js +2 -1
- package/dist/backend/llvm/string-lifetimes.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-reads.d.ts +4 -0
- package/dist/backend/llvm/string-reads.js +27 -0
- package/dist/backend/llvm/string-reads.js.map +1 -1
- package/dist/backend/llvm/test-boxed-unions.d.ts +10 -8
- package/dist/backend/llvm/test-boxed-unions.js +20 -25
- package/dist/backend/llvm/test-boxed-unions.js.map +1 -1
- package/dist/backend/llvm/union-repr.js +9 -8
- package/dist/backend/llvm/union-repr.js.map +1 -1
- package/dist/backend/llvm/union-retype.test.js +45 -2
- package/dist/backend/llvm/union-retype.test.js.map +1 -1
- package/dist/backend/llvm/unwind-abi.d.ts +20 -8
- package/dist/backend/llvm/unwind-abi.js +177 -70
- package/dist/backend/llvm/unwind-abi.js.map +1 -1
- package/dist/backend/llvm/unwind-abi.test.js +90 -3
- package/dist/backend/llvm/unwind-abi.test.js.map +1 -1
- package/dist/backend/llvm/walk-borrows.d.ts +3 -2
- package/dist/backend/llvm/walk-borrows.js +2 -2
- package/dist/backend/llvm/walk-borrows.js.map +1 -1
- package/dist/backend/llvm/walk-borrows.test.js +18 -0
- package/dist/backend/llvm/walk-borrows.test.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +14 -1
- package/dist/backend/llvm/walkers.js +103 -11
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/llvm/wrapping-sums.d.ts +26 -6
- package/dist/backend/llvm/wrapping-sums.js +64 -12
- package/dist/backend/llvm/wrapping-sums.js.map +1 -1
- package/dist/backend/loop-polls.d.ts +4 -2
- package/dist/backend/loop-polls.js +11 -2
- package/dist/backend/loop-polls.js.map +1 -1
- package/dist/backend/mangle.d.ts +0 -5
- package/dist/backend/mangle.js +0 -9
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/may-throw.d.ts +10 -9
- package/dist/backend/may-throw.js +189 -27
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +44 -7
- package/dist/backend/may-throw.test.js.map +1 -1
- package/dist/backend/native/compiler-fingerprint.d.ts +5 -0
- package/dist/backend/native/compiler-fingerprint.js +62 -16
- package/dist/backend/native/compiler-fingerprint.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +31 -8
- package/dist/backend/native/executable.js +56 -32
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +3 -4
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native/object-merge.d.ts +3 -1
- package/dist/backend/native/object-merge.js +24 -11
- package/dist/backend/native/object-merge.js.map +1 -1
- package/dist/backend/native/program-shards.js +6 -3
- package/dist/backend/native/program-shards.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +3 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native/vendor.d.ts +1 -1
- package/dist/backend/native-codegen-core.d.ts +15 -6
- package/dist/backend/native-codegen-core.js +20 -9
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.js +51 -5
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +82 -8
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +30 -0
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/native-profile.d.ts +68 -4
- package/dist/backend/native-profile.js +86 -14
- package/dist/backend/native-profile.js.map +1 -1
- package/dist/backend/native-profile.test.js +127 -4
- package/dist/backend/native-profile.test.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +1 -1
- package/dist/backend/native-toolchain.js +1 -1
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +58 -4
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/native-tools.d.ts +17 -3
- package/dist/backend/native-tools.js +12 -4
- package/dist/backend/native-tools.js.map +1 -1
- package/dist/backend/native-tools.test.d.ts +1 -0
- package/dist/backend/native-tools.test.js +76 -0
- package/dist/backend/native-tools.test.js.map +1 -0
- package/dist/backend/object-localize.js +69 -9
- package/dist/backend/object-localize.js.map +1 -1
- package/dist/backend/object-localize.test.js +99 -10
- package/dist/backend/object-localize.test.js.map +1 -1
- package/dist/backend/publication.d.ts +2 -0
- package/dist/backend/publication.js +4 -0
- package/dist/backend/publication.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-core.d.ts +19 -0
- package/dist/backend/runtime-pack-core.js +23 -3
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.test.js +48 -2
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/target-cpu.d.ts +2 -0
- package/dist/backend/target-cpu.js +4 -0
- package/dist/backend/target-cpu.js.map +1 -1
- package/dist/backend/target-diagnostics.js +1 -19
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +1 -1
- package/dist/backend/target-diagnostics.test.js.map +1 -1
- package/dist/backend/targets.d.ts +28 -0
- package/dist/backend/targets.js +70 -0
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +75 -1
- package/dist/backend/targets.test.js.map +1 -1
- package/dist/backend/vendor-archives.d.ts +1 -1
- package/dist/backend/vendor-archives.js +25 -12
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/backend/vendor-inputs.d.ts +15 -2
- package/dist/backend/vendor-inputs.js +59 -3
- package/dist/backend/vendor-inputs.js.map +1 -1
- package/dist/backend/vendor-inputs.test.d.ts +1 -0
- package/dist/backend/vendor-inputs.test.js +74 -0
- package/dist/backend/vendor-inputs.test.js.map +1 -0
- package/dist/cli/command.js +95 -5
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/host.d.ts +3 -0
- package/dist/cli/output-options.d.ts +3 -0
- package/dist/cli/output-options.js +8 -2
- package/dist/cli/output-options.js.map +1 -1
- package/dist/cli/usage.d.ts +28 -1
- package/dist/cli/usage.js +56 -6
- package/dist/cli/usage.js.map +1 -1
- package/dist/compat/fetch-profile.d.ts +3 -0
- package/dist/compat/fetch-profile.js +23 -3
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/compile-types.d.ts +45 -0
- package/dist/contracts/check.js +70 -2
- package/dist/contracts/check.js.map +1 -1
- package/dist/contracts/int32-elements.d.ts +2 -1
- package/dist/contracts/int32-elements.js.map +1 -1
- package/dist/coverage/report.d.ts +5 -1
- package/dist/coverage/report.js +83 -2
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/verdict-cache.d.ts +2 -0
- package/dist/coverage/verdict-cache.js +5 -10
- package/dist/coverage/verdict-cache.js.map +1 -1
- package/dist/diagnostics/codes.d.ts +145 -0
- package/dist/diagnostics/codes.js +159 -0
- package/dist/diagnostics/codes.js.map +1 -0
- package/dist/diagnostics/codes.test.d.ts +1 -0
- package/dist/diagnostics/codes.test.js +78 -0
- package/dist/diagnostics/codes.test.js.map +1 -0
- package/dist/diagnostics/diagnostic.d.ts +101 -2
- package/dist/diagnostics/diagnostic.js +155 -0
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/dynamic-slots.d.ts +23 -0
- package/dist/diagnostics/dynamic-slots.js +29 -0
- package/dist/diagnostics/dynamic-slots.js.map +1 -0
- package/dist/diagnostics/dynamic-tier.d.ts +6 -0
- package/dist/diagnostics/dynamic-tier.js +8 -1
- package/dist/diagnostics/dynamic-tier.js.map +1 -1
- package/dist/diagnostics/envelope.d.ts +43 -1
- package/dist/diagnostics/envelope.js +19 -1
- package/dist/diagnostics/envelope.js.map +1 -1
- package/dist/diagnostics/envelope.test.js.map +1 -1
- package/dist/diagnostics/render.d.ts +3 -1
- package/dist/diagnostics/render.js +27 -6
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +41 -0
- package/dist/executable/executable-cache.js +39 -1
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +4 -1
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.d.ts +2 -1
- package/dist/executable/prepare.js +421 -10
- package/dist/executable/prepare.js.map +1 -1
- package/dist/frontend/analysis.js +1 -0
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/canon-map.d.ts +17 -0
- package/dist/frontend/canon-map.js +177 -0
- package/dist/frontend/canon-map.js.map +1 -0
- package/dist/frontend/canon.d.ts +122 -0
- package/dist/frontend/canon.js +462 -0
- package/dist/frontend/canon.js.map +1 -0
- package/dist/frontend/contract-types.d.ts +9 -1
- package/dist/frontend/contract-types.js +46 -4
- package/dist/frontend/contract-types.js.map +1 -1
- package/dist/frontend/decl-projection.d.ts +3 -0
- package/dist/frontend/decl-projection.js +121 -3
- package/dist/frontend/decl-projection.js.map +1 -1
- package/dist/frontend/dts-paths.d.ts +17 -4
- package/dist/frontend/dts-paths.js +149 -5
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/fork-target.js +4 -4
- package/dist/frontend/fork-target.js.map +1 -1
- package/dist/frontend/fork-target.test.js +3 -3
- package/dist/frontend/fork-target.test.js.map +1 -1
- package/dist/frontend/heritage-elements.d.ts +15 -0
- package/dist/frontend/heritage-elements.js +18 -0
- package/dist/frontend/heritage-elements.js.map +1 -0
- package/dist/frontend/heritage-elements.test.d.ts +1 -0
- package/dist/frontend/heritage-elements.test.js +68 -0
- package/dist/frontend/heritage-elements.test.js.map +1 -0
- package/dist/frontend/input-tracker.d.ts +20 -0
- package/dist/frontend/input-tracker.js +74 -4
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +66 -0
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lowering/any-collection-residue.d.ts +9 -0
- package/dist/frontend/lowering/any-collection-residue.js +42 -0
- package/dist/frontend/lowering/any-collection-residue.js.map +1 -0
- package/dist/frontend/lowering/array-values.d.ts +44 -2
- package/dist/frontend/lowering/array-values.js +193 -3
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/builtin-namespaces.d.ts +6 -2
- package/dist/frontend/lowering/builtin-namespaces.js +28 -6
- package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
- package/dist/frontend/lowering/builtins/array-classes.d.ts +69 -0
- package/dist/frontend/lowering/builtins/array-classes.js +729 -0
- package/dist/frontend/lowering/builtins/array-classes.js.map +1 -0
- package/dist/frontend/lowering/builtins/callable-aliases.js +4 -0
- package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-methods.js +34 -0
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
- package/dist/frontend/lowering/builtins/disposable-stack.js +1 -3
- package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.d.ts +13 -9
- package/dist/frontend/lowering/builtins/errors.js +136 -56
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +85 -4
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.d.ts +11 -6
- package/dist/frontend/lowering/builtins/filesystem.js +270 -24
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.js +7 -1
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/mime.d.ts +25 -0
- package/dist/frontend/lowering/builtins/mime.js +167 -0
- package/dist/frontend/lowering/builtins/mime.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-bindings.d.ts +3 -0
- package/dist/frontend/lowering/builtins/module-bindings.js +6 -0
- package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +79 -12
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-resolution.d.ts +7 -4
- package/dist/frontend/lowering/builtins/module-resolution.js +115 -13
- package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
- package/dist/frontend/lowering/builtins/navigator.d.ts +3 -1
- package/dist/frontend/lowering/builtins/navigator.js +22 -8
- package/dist/frontend/lowering/builtins/navigator.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.js +49 -9
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.js +18 -3
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/promisify-callback.d.ts +6 -2
- package/dist/frontend/lowering/builtins/promisify-callback.js +19 -6
- package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -1
- package/dist/frontend/lowering/builtins/properties.js +23 -5
- package/dist/frontend/lowering/builtins/properties.js.map +1 -1
- package/dist/frontend/lowering/builtins/web-streams-dyn.d.ts +42 -0
- package/dist/frontend/lowering/builtins/web-streams-dyn.js +321 -0
- package/dist/frontend/lowering/builtins/web-streams-dyn.js.map +1 -0
- package/dist/frontend/lowering/builtins/x509.js +35 -5
- package/dist/frontend/lowering/builtins/x509.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.d.ts +14 -1
- package/dist/frontend/lowering/call-arguments.js +84 -70
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.js +108 -24
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/class-attributes.js +6 -5
- package/dist/frontend/lowering/class-attributes.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.js +40 -19
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-protocol-dispatch.js +4 -0
- package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.d.ts +61 -1
- package/dist/frontend/lowering/class-protocols.js +297 -21
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/class-to-primitive.d.ts +3 -2
- package/dist/frontend/lowering/class-to-primitive.js +15 -5
- package/dist/frontend/lowering/class-to-primitive.js.map +1 -1
- package/dist/frontend/lowering/coercions/asserted.d.ts +16 -0
- package/dist/frontend/lowering/coercions/asserted.js +79 -0
- package/dist/frontend/lowering/coercions/asserted.js.map +1 -0
- package/dist/frontend/lowering/coercions/function-adapters.d.ts +13 -0
- package/dist/frontend/lowering/coercions/function-adapters.js +70 -3
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
- package/dist/frontend/lowering/coercions/state.d.ts +23 -0
- package/dist/frontend/lowering/coercions/state.js +9 -0
- package/dist/frontend/lowering/coercions/state.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural-plans.js +67 -1
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.d.ts +10 -0
- package/dist/frontend/lowering/coercions/structural.js +134 -4
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/coercions/unions.d.ts +11 -0
- package/dist/frontend/lowering/coercions/unions.js +83 -4
- package/dist/frontend/lowering/coercions/unions.js.map +1 -1
- package/dist/frontend/lowering/completion-callbacks.js +3 -2
- package/dist/frontend/lowering/completion-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +10 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +224 -81
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-concat.d.ts +5 -2
- package/dist/frontend/lowering/containers/array-concat.js +76 -7
- package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.d.ts +9 -4
- package/dist/frontend/lowering/containers/array-construction.js +112 -100
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +193 -45
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.d.ts +3 -0
- package/dist/frontend/lowering/containers/array-pipelines.js +81 -13
- package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.d.ts +1 -0
- package/dist/frontend/lowering/containers/callback-arguments.js +28 -2
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +13 -3
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/filter-predicates.js +34 -3
- package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.d.ts +34 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +131 -72
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.js +43 -6
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
- package/dist/frontend/lowering/decl-origin.d.ts +49 -0
- package/dist/frontend/lowering/decl-origin.js +402 -0
- package/dist/frontend/lowering/decl-origin.js.map +1 -0
- package/dist/frontend/lowering/deferred-module-initializers.d.ts +2 -0
- package/dist/frontend/lowering/deferred-module-initializers.js +7 -0
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/divergences.js +5 -0
- package/dist/frontend/lowering/divergences.js.map +1 -1
- package/dist/frontend/lowering/dynamic-tier.d.ts +8 -2
- package/dist/frontend/lowering/dynamic-tier.js +111 -3
- package/dist/frontend/lowering/dynamic-tier.js.map +1 -1
- package/dist/frontend/lowering/expressions/array-literals.d.ts +14 -1
- package/dist/frontend/lowering/expressions/array-literals.js +43 -5
- package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/asserted-receiver.d.ts +48 -0
- package/dist/frontend/lowering/expressions/asserted-receiver.js +233 -0
- package/dist/frontend/lowering/expressions/asserted-receiver.js.map +1 -0
- package/dist/frontend/lowering/expressions/binary.js +136 -1
- package/dist/frontend/lowering/expressions/binary.js.map +1 -1
- package/dist/frontend/lowering/expressions/element-access.d.ts +7 -0
- package/dist/frontend/lowering/expressions/element-access.js +363 -12
- package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/identifiers.d.ts +3 -0
- package/dist/frontend/lowering/expressions/identifiers.js +78 -62
- package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
- package/dist/frontend/lowering/expressions/message-listeners.d.ts +3 -0
- package/dist/frontend/lowering/expressions/message-listeners.js +19 -0
- package/dist/frontend/lowering/expressions/message-listeners.js.map +1 -0
- package/dist/frontend/lowering/expressions/narrowing.js +224 -6
- package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +5 -2
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.d.ts +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +282 -24
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/property-access.d.ts +15 -3
- package/dist/frontend/lowering/expressions/property-access.js +397 -74
- package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/relational.js +202 -70
- package/dist/frontend/lowering/expressions/relational.js.map +1 -1
- package/dist/frontend/lowering/expressions/typeof.js +9 -1
- package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-fields.d.ts +28 -8
- package/dist/frontend/lowering/expressions/union-fields.js +168 -14
- package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
- package/dist/frontend/lowering/frozen-records.d.ts +8 -0
- package/dist/frontend/lowering/frozen-records.js +56 -9
- package/dist/frontend/lowering/frozen-records.js.map +1 -1
- package/dist/frontend/lowering/function-context.d.ts +3 -0
- package/dist/frontend/lowering/function-context.js +4 -1
- package/dist/frontend/lowering/function-context.js.map +1 -1
- package/dist/frontend/lowering/function-returns.d.ts +4 -0
- package/dist/frontend/lowering/function-returns.js +231 -2
- package/dist/frontend/lowering/function-returns.js.map +1 -1
- package/dist/frontend/lowering/generator-delegation.js +3 -2
- package/dist/frontend/lowering/generator-delegation.js.map +1 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +26 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +294 -2
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +10 -0
- package/dist/frontend/lowering/generic-functions.js +67 -7
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/global-values.d.ts +37 -0
- package/dist/frontend/lowering/global-values.js +395 -0
- package/dist/frontend/lowering/global-values.js.map +1 -0
- package/dist/frontend/lowering/handle-properties.js +3 -2
- package/dist/frontend/lowering/handle-properties.js.map +1 -1
- package/dist/frontend/lowering/handle-properties.test.d.ts +1 -0
- package/dist/frontend/lowering/handle-properties.test.js +25 -0
- package/dist/frontend/lowering/handle-properties.test.js.map +1 -0
- package/dist/frontend/lowering/import-meta.d.ts +3 -0
- package/dist/frontend/lowering/import-meta.js +8 -3
- package/dist/frontend/lowering/import-meta.js.map +1 -1
- package/dist/frontend/lowering/iterator-adapters.js +3 -3
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
- package/dist/frontend/lowering/key-order-witness.d.ts +2 -0
- package/dist/frontend/lowering/key-order-witness.js +10 -0
- package/dist/frontend/lowering/key-order-witness.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.d.ts +5 -1
- package/dist/frontend/lowering/lower-array-sort.js +16 -2
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.d.ts +7 -0
- package/dist/frontend/lowering/lower-builtin-values.js +65 -16
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +222 -24
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +6 -0
- package/dist/frontend/lowering/lower-classes.js +154 -20
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-console.js +25 -2
- package/dist/frontend/lowering/lower-console.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +29 -0
- package/dist/frontend/lowering/lower-exprs.js +544 -24
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +93 -18
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.d.ts +4 -1
- package/dist/frontend/lowering/lower-global-value.js +10 -3
- package/dist/frontend/lowering/lower-global-value.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +44 -4
- package/dist/frontend/lowering/lower-inspect.js +723 -26
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +3 -1
- package/dist/frontend/lowering/lower-modules.js +189 -24
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +7 -0
- package/dist/frontend/lowering/lower-namespaces.js +23 -0
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-island.d.ts +74 -0
- package/dist/frontend/lowering/lower-node-island.js +1931 -0
- package/dist/frontend/lowering/lower-node-island.js.map +1 -0
- package/dist/frontend/lowering/lower-server.js +44 -0
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-shared-modules.d.ts +27 -0
- package/dist/frontend/lowering/lower-shared-modules.js +611 -0
- package/dist/frontend/lowering/lower-shared-modules.js.map +1 -0
- package/dist/frontend/lowering/lower-stdlib.js +85 -9
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +2 -6
- package/dist/frontend/lowering/lower-stmts.js +781 -143
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +548 -36
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.js +9 -0
- package/dist/frontend/lowering/lower-timers.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +514 -10
- package/dist/frontend/lowering/lowerer.js +2667 -163
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +44 -1
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/maybe-promise.d.ts +6 -0
- package/dist/frontend/lowering/maybe-promise.js +13 -0
- package/dist/frontend/lowering/maybe-promise.js.map +1 -1
- package/dist/frontend/lowering/module-namespace-elements.d.ts +12 -0
- package/dist/frontend/lowering/module-namespace-elements.js +114 -18
- package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
- package/dist/frontend/lowering/nan-coded-reads.d.ts +11 -0
- package/dist/frontend/lowering/nan-coded-reads.js +45 -2
- package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
- package/dist/frontend/lowering/narrowing-stability.d.ts +4 -0
- package/dist/frontend/lowering/narrowing-stability.js +14 -6
- package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
- package/dist/frontend/lowering/receiver-returns.d.ts +3 -0
- package/dist/frontend/lowering/receiver-returns.js +134 -0
- package/dist/frontend/lowering/receiver-returns.js.map +1 -0
- package/dist/frontend/lowering/record-inherited.d.ts +26 -0
- package/dist/frontend/lowering/record-inherited.js +807 -0
- package/dist/frontend/lowering/record-inherited.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-elements.d.ts +31 -1
- package/dist/frontend/lowering/runtime-optional-elements.js +105 -13
- package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-guards.d.ts +3 -0
- package/dist/frontend/lowering/runtime-optional-guards.js +35 -7
- package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-guards.test.js +59 -1
- package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -1
- package/dist/frontend/lowering/stable-names.d.ts +8 -0
- package/dist/frontend/lowering/stable-names.js +22 -0
- package/dist/frontend/lowering/stable-names.js.map +1 -1
- package/dist/frontend/lowering/stable-names.test.d.ts +1 -0
- package/dist/frontend/lowering/stable-names.test.js +16 -0
- package/dist/frontend/lowering/stable-names.test.js.map +1 -0
- package/dist/frontend/lowering/static-typeof.d.ts +5 -4
- package/dist/frontend/lowering/static-typeof.js +10 -4
- package/dist/frontend/lowering/static-typeof.js.map +1 -1
- package/dist/frontend/lowering/structural-instances.d.ts +22 -0
- package/dist/frontend/lowering/structural-instances.js +282 -0
- package/dist/frontend/lowering/structural-instances.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +3 -0
- package/dist/frontend/lowering/surfaces.js +108 -12
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/symbol-fields.d.ts +7 -0
- package/dist/frontend/lowering/symbol-fields.js +32 -0
- package/dist/frontend/lowering/symbol-fields.js.map +1 -1
- package/dist/frontend/lowering/type-failure.d.ts +17 -0
- package/dist/frontend/lowering/type-failure.js +163 -0
- package/dist/frontend/lowering/type-failure.js.map +1 -0
- package/dist/frontend/lowering/typed-arguments.d.ts +5 -6
- package/dist/frontend/lowering/typed-arguments.js +10 -2
- package/dist/frontend/lowering/typed-arguments.js.map +1 -1
- package/dist/frontend/lowering/union-narrow.d.ts +9 -1
- package/dist/frontend/lowering/union-narrow.js +31 -2
- package/dist/frontend/lowering/union-narrow.js.map +1 -1
- package/dist/frontend/lowering/union-retag.test.js +42 -2
- package/dist/frontend/lowering/union-retag.test.js.map +1 -1
- package/dist/frontend/lowering/unit-journal.d.ts +194 -0
- package/dist/frontend/lowering/unit-journal.js +556 -0
- package/dist/frontend/lowering/unit-journal.js.map +1 -0
- package/dist/frontend/lowering/unit-journal.test.d.ts +1 -0
- package/dist/frontend/lowering/unit-journal.test.js +335 -0
- package/dist/frontend/lowering/unit-journal.test.js.map +1 -0
- package/dist/frontend/lowering/width-lift.d.ts +19 -0
- package/dist/frontend/node-api-import.d.ts +21 -0
- package/dist/frontend/node-api-import.js +88 -0
- package/dist/frontend/node-api-import.js.map +1 -0
- package/dist/frontend/npm-static-type-exports-host.js +4 -3
- package/dist/frontend/npm-static-type-exports-host.js.map +1 -1
- package/dist/frontend/npm-static.js +9 -2
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/package-shims.d.ts +6 -2
- package/dist/frontend/package-shims.js +13 -2
- package/dist/frontend/package-shims.js.map +1 -1
- package/dist/frontend/pipeline.d.ts +11 -4
- package/dist/frontend/pipeline.js +249 -26
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/process-fork.d.ts +3 -0
- package/dist/frontend/process-fork.js.map +1 -1
- package/dist/frontend/program-analysis.d.ts +6 -0
- package/dist/frontend/program-analysis.js +4 -0
- package/dist/frontend/program-analysis.js.map +1 -1
- package/dist/frontend/program.d.ts +12 -1
- package/dist/frontend/program.js +256 -36
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/resolve.js +8 -2
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/shape-inference/analyze.d.ts +23 -1
- package/dist/frontend/shape-inference/analyze.js +982 -97
- package/dist/frontend/shape-inference/analyze.js.map +1 -1
- package/dist/frontend/shape-inference/constant-graphs.d.ts +2 -0
- package/dist/frontend/shape-inference/constant-graphs.js +39 -4
- package/dist/frontend/shape-inference/constant-graphs.js.map +1 -1
- package/dist/frontend/shape-inference/domain.d.ts +2 -0
- package/dist/frontend/shape-inference/domain.js.map +1 -1
- package/dist/frontend/shape-inference/fallback.d.ts +17 -0
- package/dist/frontend/shape-inference/fallback.js +303 -0
- package/dist/frontend/shape-inference/fallback.js.map +1 -0
- package/dist/frontend/shape-inference/index.d.ts +75 -1
- package/dist/frontend/shape-inference/index.js +531 -2
- package/dist/frontend/shape-inference/index.js.map +1 -1
- package/dist/frontend/shape-inference/inferred-checks.d.ts +2 -0
- package/dist/frontend/shape-inference/inferred-checks.js +90 -0
- package/dist/frontend/shape-inference/inferred-checks.js.map +1 -0
- package/dist/frontend/shape-inference/memo.d.ts +30 -0
- package/dist/frontend/shape-inference/memo.js +99 -0
- package/dist/frontend/shape-inference/memo.js.map +1 -0
- package/dist/frontend/shape-inference/overlay.d.ts +81 -0
- package/dist/frontend/shape-inference/overlay.js +1160 -0
- package/dist/frontend/shape-inference/overlay.js.map +1 -0
- package/dist/frontend/shape-inference/registry.test.d.ts +1 -0
- package/dist/frontend/shape-inference/registry.test.js +34 -0
- package/dist/frontend/shape-inference/registry.test.js.map +1 -0
- package/dist/frontend/shape-inference/report.js +42 -8
- package/dist/frontend/shape-inference/report.js.map +1 -1
- package/dist/frontend/shape-inference/static-objects.d.ts +29 -0
- package/dist/frontend/shape-inference/static-objects.js +1951 -0
- package/dist/frontend/shape-inference/static-objects.js.map +1 -0
- package/dist/frontend/tier-analysis.d.ts +53 -1
- package/dist/frontend/tier-analysis.js +133 -0
- package/dist/frontend/tier-analysis.js.map +1 -1
- package/dist/frontend/ts7/api.js +4 -2
- package/dist/frontend/ts7/api.js.map +1 -1
- package/dist/frontend/ts7/ast-node.d.ts +9 -0
- package/dist/frontend/ts7/ast-node.js +42 -10
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +23 -0
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/ts7/ast-wire-protocols.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-wire-protocols.test.js +93 -0
- package/dist/frontend/ts7/ast-wire-protocols.test.js.map +1 -0
- package/dist/frontend/ts7/ast-wire.d.ts +18 -0
- package/dist/frontend/ts7/ast-wire.js +66 -4
- package/dist/frontend/ts7/ast-wire.js.map +1 -1
- package/dist/frontend/ts7/checker-server.d.ts +12 -11
- package/dist/frontend/ts7/checker-server.js +28 -12
- package/dist/frontend/ts7/checker-server.js.map +1 -1
- package/dist/frontend/ts7/checker-server.test.js +8 -3
- package/dist/frontend/ts7/checker-server.test.js.map +1 -1
- package/dist/frontend/ts7/checker.d.ts +4 -0
- package/dist/frontend/ts7/checker.js +9 -0
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.js +216 -205
- package/dist/frontend/ts7/checker.test.js.map +1 -1
- package/dist/frontend/ts7/lib-diagnostics.d.ts +71 -4
- package/dist/frontend/ts7/lib-diagnostics.js +337 -20
- package/dist/frontend/ts7/lib-diagnostics.js.map +1 -1
- package/dist/frontend/ts7/lib-diagnostics.test.js +268 -5
- package/dist/frontend/ts7/lib-diagnostics.test.js.map +1 -1
- package/dist/frontend/ts7/native-api.d.ts +4 -0
- package/dist/frontend/ts7/native-api.js +36 -1
- package/dist/frontend/ts7/native-api.js.map +1 -1
- package/dist/frontend/ts7/program-host.d.ts +19 -2
- package/dist/frontend/ts7/program-host.js +69 -9
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/program-host.test.js +42 -1
- package/dist/frontend/ts7/program-host.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-filesystem.d.ts +4 -2
- package/dist/frontend/ts7/rpc-filesystem.js +23 -2
- package/dist/frontend/ts7/rpc-filesystem.js.map +1 -1
- package/dist/frontend/ts7/rpc-filesystem.test.js +28 -2
- package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.js +73 -5
- package/dist/frontend/ts7/semantic-checker.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.test.js +106 -74
- package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.d.ts +2 -6
- package/dist/frontend/ts7/semantic-model-71.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-model-71.test.js +131 -0
- package/dist/frontend/ts7/semantic-model-71.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-model.d.ts +121 -3
- package/dist/frontend/ts7/semantic-model.js +245 -8
- package/dist/frontend/ts7/semantic-model.js.map +1 -1
- package/dist/frontend/ts7/session.d.ts +19 -1
- package/dist/frontend/ts7/session.js +111 -11
- package/dist/frontend/ts7/session.js.map +1 -1
- package/dist/frontend/ts7/session.test.js +259 -239
- package/dist/frontend/ts7/session.test.js.map +1 -1
- package/dist/frontend/ts7/test-servers.d.ts +12 -0
- package/dist/frontend/ts7/test-servers.js +16 -0
- package/dist/frontend/ts7/test-servers.js.map +1 -0
- package/dist/frontend/tsc-codes.js +6 -3
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +61 -1
- package/dist/frontend/type-mapper.js +577 -28
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-patches/command.d.ts +19 -0
- package/dist/frontend/type-patches/command.js +352 -0
- package/dist/frontend/type-patches/command.js.map +1 -0
- package/dist/frontend/type-patches/layer.d.ts +45 -0
- package/dist/frontend/type-patches/layer.js +409 -0
- package/dist/frontend/type-patches/layer.js.map +1 -0
- package/dist/frontend/type-patches/locate.d.ts +41 -0
- package/dist/frontend/type-patches/locate.js +914 -0
- package/dist/frontend/type-patches/locate.js.map +1 -0
- package/dist/frontend/type-patches/locate.test.d.ts +1 -0
- package/dist/frontend/type-patches/locate.test.js +179 -0
- package/dist/frontend/type-patches/locate.test.js.map +1 -0
- package/dist/frontend/type-patches/selector.d.ts +43 -0
- package/dist/frontend/type-patches/selector.js +126 -0
- package/dist/frontend/type-patches/selector.js.map +1 -0
- package/dist/frontend/type-patches/selector.test.d.ts +1 -0
- package/dist/frontend/type-patches/selector.test.js +56 -0
- package/dist/frontend/type-patches/selector.test.js.map +1 -0
- package/dist/frontend/type-patches/semver.d.ts +19 -0
- package/dist/frontend/type-patches/semver.js +221 -0
- package/dist/frontend/type-patches/semver.js.map +1 -0
- package/dist/frontend/type-patches/semver.test.d.ts +1 -0
- package/dist/frontend/type-patches/semver.test.js +47 -0
- package/dist/frontend/type-patches/semver.test.js.map +1 -0
- package/dist/frontend/worker-target.test.js +2 -2
- package/dist/frontend/worker-target.test.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +292 -27
- package/dist/index.js.map +1 -1
- package/dist/ir/builtin-effects.js +51 -5
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +4 -3
- package/dist/ir/builtin-signatures.js +277 -12
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/callback-specialization.js +108 -67
- package/dist/ir/callback-specialization.js.map +1 -1
- package/dist/ir/capture-values.d.ts +7 -1
- package/dist/ir/capture-values.js +28 -5
- package/dist/ir/capture-values.js.map +1 -1
- package/dist/ir/char-unit-locals.js +38 -42
- package/dist/ir/char-unit-locals.js.map +1 -1
- package/dist/ir/expression-inlining.js +12 -6
- package/dist/ir/expression-inlining.js.map +1 -1
- package/dist/ir/fields.generated.d.ts +751 -0
- package/dist/ir/fields.generated.js +2071 -0
- package/dist/ir/fields.generated.js.map +1 -0
- package/dist/ir/fields.test.d.ts +1 -0
- package/dist/ir/fields.test.js +113 -0
- package/dist/ir/fields.test.js.map +1 -0
- package/dist/ir/function-references.js +4 -0
- package/dist/ir/function-references.js.map +1 -1
- package/dist/ir/function-references.test.js +25 -0
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/inline-array-sources.d.ts +15 -0
- package/dist/ir/inline-array-sources.js +1825 -0
- package/dist/ir/inline-array-sources.js.map +1 -0
- package/dist/ir/inline-arrays.d.ts +41 -0
- package/dist/ir/inline-arrays.js +533 -0
- package/dist/ir/inline-arrays.js.map +1 -0
- package/dist/ir/inline-arrays.test.d.ts +1 -0
- package/dist/ir/inline-arrays.test.js +225 -0
- package/dist/ir/inline-arrays.test.js.map +1 -0
- package/dist/ir/int32-slots.d.ts +6 -0
- package/dist/ir/int32-slots.js +154 -16
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +48 -0
- package/dist/ir/int32-slots.test.js.map +1 -1
- package/dist/ir/integer-loops.d.ts +12 -0
- package/dist/ir/integer-loops.js +23 -0
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +7 -1
- package/dist/ir/integer-ranges.js +29 -2
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/intrinsic-signatures.js +2 -1
- package/dist/ir/intrinsic-signatures.js.map +1 -1
- package/dist/ir/ir.d.ts +103 -5
- package/dist/ir/ir.js +38 -4
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +134 -1
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/jsval.js +211 -29
- package/dist/ir/jsval.js.map +1 -1
- package/dist/ir/jsval.test.js +120 -0
- package/dist/ir/jsval.test.js.map +1 -1
- package/dist/ir/loop-entry-ranges.d.ts +38 -0
- package/dist/ir/loop-entry-ranges.js +259 -0
- package/dist/ir/loop-entry-ranges.js.map +1 -0
- package/dist/ir/loop-entry-ranges.test.d.ts +1 -0
- package/dist/ir/loop-entry-ranges.test.js +191 -0
- package/dist/ir/loop-entry-ranges.test.js.map +1 -0
- package/dist/ir/node-index.d.ts +3 -0
- package/dist/ir/node-index.js +6 -0
- package/dist/ir/node-index.js.map +1 -1
- package/dist/ir/numeric-call-specialization.d.ts +9 -6
- package/dist/ir/numeric-call-specialization.js +164 -34
- package/dist/ir/numeric-call-specialization.js.map +1 -1
- package/dist/ir/paired-while-loops.js +23 -19
- package/dist/ir/paired-while-loops.js.map +1 -1
- package/dist/ir/parameter-versions.js +6 -3
- package/dist/ir/parameter-versions.js.map +1 -1
- package/dist/ir/receiver-readers.d.ts +10 -0
- package/dist/ir/receiver-readers.js +65 -28
- package/dist/ir/receiver-readers.js.map +1 -1
- package/dist/ir/row-pairs.d.ts +9 -1
- package/dist/ir/row-pairs.js +136 -43
- package/dist/ir/row-pairs.js.map +1 -1
- package/dist/ir/row-pairs.test.js +25 -5
- package/dist/ir/row-pairs.test.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +33 -1
- package/dist/ir/runtime-features.js +104 -6
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/runtime-features.test.js +13 -0
- package/dist/ir/runtime-features.test.js.map +1 -1
- package/dist/ir/saturating-loop-jams.d.ts +24 -0
- package/dist/ir/saturating-loop-jams.js +420 -0
- package/dist/ir/saturating-loop-jams.js.map +1 -0
- package/dist/ir/saturating-loop-jams.test.d.ts +1 -0
- package/dist/ir/saturating-loop-jams.test.js +196 -0
- package/dist/ir/saturating-loop-jams.test.js.map +1 -0
- package/dist/ir/scalar-records.js +9 -3
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/self-captures.js +2 -1
- package/dist/ir/self-captures.js.map +1 -1
- package/dist/ir/serialize.d.ts +5 -1
- package/dist/ir/serialize.js +7 -1
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/traverse.js +3 -0
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +91 -9
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/ir-policy.js +1 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/native/cache.js +2 -0
- package/dist/native/cache.js.map +1 -1
- package/dist/native/cli.js +54 -7
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.d.ts +3 -0
- package/dist/native/compiler.js +173 -36
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/compiler.test.js +86 -3
- package/dist/native/compiler.test.js.map +1 -1
- package/dist/native/executable-cache.d.ts +20 -2
- package/dist/native/executable-cache.js +17 -10
- package/dist/native/executable-cache.js.map +1 -1
- package/dist/native/executable-cache.test.js +38 -1
- package/dist/native/executable-cache.test.js.map +1 -1
- package/dist/native/linker-job.d.ts +71 -0
- package/dist/native/linker-job.js +242 -0
- package/dist/native/linker-job.js.map +1 -0
- package/dist/native/linker-job.test.d.ts +1 -0
- package/dist/native/linker-job.test.js +349 -0
- package/dist/native/linker-job.test.js.map +1 -0
- package/dist/native/prepare.js +15 -2
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/sanitizer.js +10 -15
- package/dist/native/sanitizer.js.map +1 -1
- package/dist/native/sanitizer.test.js +152 -66
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/native/toolchain.d.ts +11 -2
- package/dist/native/toolchain.js +43 -17
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +75 -0
- package/dist/native/toolchain.test.js.map +1 -1
- package/dist/node-islands/boundary.d.ts +37 -0
- package/dist/node-islands/boundary.js +135 -0
- package/dist/node-islands/boundary.js.map +1 -0
- package/dist/node-islands/classify.js +1 -1
- package/dist/node-islands/classify.js.map +1 -1
- package/dist/node-islands/effect-gate.d.ts +11 -0
- package/dist/node-islands/effect-gate.js +746 -0
- package/dist/node-islands/effect-gate.js.map +1 -0
- package/dist/node-islands/effect-gate.test.d.ts +1 -0
- package/dist/node-islands/effect-gate.test.js +152 -0
- package/dist/node-islands/effect-gate.test.js.map +1 -0
- package/dist/node-islands/libnode-pack.d.ts +68 -0
- package/dist/node-islands/libnode-pack.js +199 -0
- package/dist/node-islands/libnode-pack.js.map +1 -0
- package/dist/node-islands/libnode-pack.test.d.ts +1 -0
- package/dist/node-islands/libnode-pack.test.js +258 -0
- package/dist/node-islands/libnode-pack.test.js.map +1 -0
- package/dist/node-islands/libnode.d.ts +32 -0
- package/dist/node-islands/libnode.js +212 -0
- package/dist/node-islands/libnode.js.map +1 -0
- package/dist/node-islands/libnode.test.d.ts +1 -0
- package/dist/node-islands/libnode.test.js +170 -0
- package/dist/node-islands/libnode.test.js.map +1 -0
- package/dist/node-islands/modules.d.ts +96 -0
- package/dist/node-islands/modules.js +803 -0
- package/dist/node-islands/modules.js.map +1 -0
- package/dist/node-islands/modules.test.d.ts +1 -0
- package/dist/node-islands/modules.test.js +276 -0
- package/dist/node-islands/modules.test.js.map +1 -0
- package/dist/node-islands/resolve.d.ts +8 -0
- package/dist/node-islands/resolve.js +10 -0
- package/dist/node-islands/resolve.js.map +1 -0
- package/dist/node-islands/snapshot.d.ts +16 -0
- package/dist/node-islands/snapshot.js +486 -0
- package/dist/node-islands/snapshot.js.map +1 -0
- package/dist/node-islands/snapshot.test.d.ts +1 -0
- package/dist/node-islands/snapshot.test.js +56 -0
- package/dist/node-islands/snapshot.test.js.map +1 -0
- package/dist/project-config.d.ts +37 -1
- package/dist/project-config.js +159 -7
- package/dist/project-config.js.map +1 -1
- package/dist/project-config.test.js +153 -0
- package/dist/project-config.test.js.map +1 -1
- package/dist/startup-cache.d.ts +1 -0
- package/dist/startup-cache.js +1 -0
- package/dist/startup-cache.js.map +1 -1
- package/package.json +24 -21
- 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
|
|
2351
|
-
*
|
|
2352
|
-
*
|
|
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.
|
|
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,
|
|
2362
|
-
: "pipeline stages other than native streams
|
|
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,
|
|
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]),
|
|
2740
|
-
*
|
|
2741
|
-
function lowerPromisePipeline(lowerer, stageArgs, opts,
|
|
2742
|
-
|
|
2743
|
-
|
|
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) =>
|
|
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,
|
|
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),
|
|
2932
|
-
*
|
|
2933
|
-
function lowerCallbackPipeline(lowerer, call, args,
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
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 } =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
5076
|
+
init: { kind: "libCall", fn: "abort.controllerNew", args: [], type: DYN, loc },
|
|
4565
5077
|
loc,
|
|
4566
5078
|
},
|
|
4567
5079
|
{
|