@scriptc/compiler 0.4.1 → 0.4.3
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/scriptc-node-fallback.d.ts +977 -113
- package/dist/backend/cycle-analysis.d.ts +5 -1
- package/dist/backend/cycle-analysis.js +6 -4
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +55 -0
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/cycle-mutability.d.ts +9 -1
- package/dist/backend/cycle-mutability.js +21 -3
- package/dist/backend/cycle-mutability.js.map +1 -1
- package/dist/backend/executable-features.js +6 -1
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/immutability.d.ts +7 -3
- package/dist/backend/immutability.js +33 -29
- package/dist/backend/immutability.js.map +1 -1
- package/dist/backend/library-pack.js +5 -0
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +23 -4
- package/dist/backend/llvm/alloc.js +61 -8
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/appended-array-literals.d.ts +2 -1
- package/dist/backend/llvm/appended-array-literals.js +44 -36
- package/dist/backend/llvm/appended-array-literals.js.map +1 -1
- package/dist/backend/llvm/appended-array-literals.test.js +4 -3
- package/dist/backend/llvm/appended-array-literals.test.js.map +1 -1
- package/dist/backend/llvm/array-search.d.ts +4 -3
- package/dist/backend/llvm/array-search.js +23 -10
- package/dist/backend/llvm/array-search.js.map +1 -1
- package/dist/backend/llvm/blocks.d.ts +1 -1
- package/dist/backend/llvm/blocks.js +2 -2
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/byte-windows.js +2 -0
- package/dist/backend/llvm/byte-windows.js.map +1 -1
- package/dist/backend/llvm/bytes-alias.d.ts +6 -1
- package/dist/backend/llvm/bytes-alias.js +8 -2
- package/dist/backend/llvm/bytes-alias.js.map +1 -1
- package/dist/backend/llvm/bytes-loop-versions.d.ts +70 -7
- package/dist/backend/llvm/bytes-loop-versions.js +567 -30
- package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
- package/dist/backend/llvm/bytes-loop-versions.test.js +389 -2
- package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
- package/dist/backend/llvm/checked-value-lifetimes.js +2 -0
- package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +74 -1
- package/dist/backend/llvm/classes.js +364 -54
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +384 -17
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +10 -6
- package/dist/backend/llvm/common.js +10 -6
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.d.ts +2 -1
- package/dist/backend/llvm/constant-callbacks.js +91 -56
- package/dist/backend/llvm/constant-callbacks.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.test.js +4 -4
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
- package/dist/backend/llvm/counted-loops.d.ts +11 -1
- package/dist/backend/llvm/counted-loops.js +80 -23
- package/dist/backend/llvm/counted-loops.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.d.ts +39 -8
- package/dist/backend/llvm/dense-array-access.js +222 -52
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.test.js +36 -0
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
- package/dist/backend/llvm/dense-array-loops.d.ts +35 -16
- package/dist/backend/llvm/dense-array-loops.js +237 -12
- package/dist/backend/llvm/dense-array-loops.js.map +1 -1
- package/dist/backend/llvm/dense-array-loops.test.js +140 -15
- package/dist/backend/llvm/dense-array-loops.test.js.map +1 -1
- package/dist/backend/llvm/dyn-handle-tags.test.js +6 -1
- package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +51 -1
- package/dist/backend/llvm/dyn.js +683 -69
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emit-function.js +33 -26
- package/dist/backend/llvm/emit-function.js.map +1 -1
- package/dist/backend/llvm/emit-journal.d.ts +93 -0
- package/dist/backend/llvm/emit-journal.js +170 -0
- package/dist/backend/llvm/emit-journal.js.map +1 -0
- package/dist/backend/llvm/emit-module.js +208 -34
- package/dist/backend/llvm/emit-module.js.map +1 -1
- package/dist/backend/llvm/emit-statements.d.ts +0 -27
- package/dist/backend/llvm/emit-statements.js +577 -93
- package/dist/backend/llvm/emit-statements.js.map +1 -1
- package/dist/backend/llvm/emitter-state.d.ts +7 -0
- package/dist/backend/llvm/emitter-state.js +14 -0
- package/dist/backend/llvm/emitter-state.js.map +1 -0
- package/dist/backend/llvm/emitter.d.ts +314 -49
- package/dist/backend/llvm/emitter.js +1241 -129
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +54 -5
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +19 -0
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +5 -2
- package/dist/backend/llvm/expr-bytes.js +144 -52
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.js +47 -0
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +1 -1
- package/dist/backend/llvm/expr-calls.js +62 -36
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +14 -2
- package/dist/backend/llvm/expr-containers.js +148 -40
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +14 -0
- package/dist/backend/llvm/expr-control.js +2 -3
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +71 -16
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +126 -36
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +11 -6
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-records.d.ts +12 -0
- package/dist/backend/llvm/expr-records.js +106 -0
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.d.ts +2 -2
- package/dist/backend/llvm/expr-stream-bridges.js +225 -64
- 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.d.ts +2 -2
- package/dist/backend/llvm/expr-stream-callbacks.js +200 -50
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/int32-kind-loops.d.ts +39 -0
- package/dist/backend/llvm/int32-kind-loops.js +106 -0
- package/dist/backend/llvm/int32-kind-loops.js.map +1 -0
- package/dist/backend/llvm/integer-or-nan-indexes.test.d.ts +1 -0
- package/dist/backend/llvm/integer-or-nan-indexes.test.js +118 -0
- package/dist/backend/llvm/integer-or-nan-indexes.test.js.map +1 -0
- package/dist/backend/llvm/integer-values.d.ts +20 -1
- package/dist/backend/llvm/integer-values.js +71 -0
- package/dist/backend/llvm/integer-values.js.map +1 -1
- package/dist/backend/llvm/js-ic.d.ts +1 -1
- package/dist/backend/llvm/js-ic.js +1 -1
- package/dist/backend/llvm/js-ic.js.map +1 -1
- package/dist/backend/llvm/key-orders.d.ts +7 -0
- package/dist/backend/llvm/key-orders.js +33 -0
- package/dist/backend/llvm/key-orders.js.map +1 -0
- package/dist/backend/llvm/lib-connect.js +4 -0
- package/dist/backend/llvm/lib-connect.js.map +1 -1
- package/dist/backend/llvm/lib-datagram.js +11 -0
- package/dist/backend/llvm/lib-datagram.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +90 -2
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +65 -4
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.d.ts +4 -0
- package/dist/backend/llvm/lib-http2.js +24 -17
- package/dist/backend/llvm/lib-http2.js.map +1 -1
- package/dist/backend/llvm/lib-lookup.js +16 -6
- package/dist/backend/llvm/lib-lookup.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +65 -14
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +126 -3
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +97 -30
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-tls.js +23 -0
- package/dist/backend/llvm/lib-tls.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +181 -64
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +28 -0
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/loop-state.d.ts +33 -0
- package/dist/backend/llvm/loop-state.js +42 -0
- package/dist/backend/llvm/loop-state.js.map +1 -0
- package/dist/backend/llvm/map-number-lookup.d.ts +26 -8
- package/dist/backend/llvm/map-number-lookup.js +91 -31
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.test.js +55 -0
- package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.js +4 -2
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.d.ts +2 -1
- package/dist/backend/llvm/nullable-unions.js +15 -3
- package/dist/backend/llvm/nullable-unions.js.map +1 -1
- package/dist/backend/llvm/publish.d.ts +18 -1
- package/dist/backend/llvm/publish.js +76 -25
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/publish.test.js +3 -0
- package/dist/backend/llvm/publish.test.js.map +1 -1
- package/dist/backend/llvm/receivers.js +7 -2
- package/dist/backend/llvm/receivers.js.map +1 -1
- package/dist/backend/llvm/record-results.d.ts +1 -9
- package/dist/backend/llvm/record-results.js +2 -11
- package/dist/backend/llvm/record-results.js.map +1 -1
- package/dist/backend/llvm/reference-writes.d.ts +7 -2
- package/dist/backend/llvm/reference-writes.js +91 -72
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.js +161 -14
- package/dist/backend/llvm/regex-matchers.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.test.js +18 -0
- package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
- package/dist/backend/llvm/running-extrema.d.ts +11 -0
- package/dist/backend/llvm/running-extrema.js +115 -0
- package/dist/backend/llvm/running-extrema.js.map +1 -0
- package/dist/backend/llvm/running-extrema.test.d.ts +1 -0
- package/dist/backend/llvm/running-extrema.test.js +89 -0
- package/dist/backend/llvm/running-extrema.test.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +79 -21
- package/dist/backend/llvm/shapes.js +233 -42
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +53 -7
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.d.ts +6 -0
- package/dist/backend/llvm/speculative-integers.js +2 -2
- package/dist/backend/llvm/speculative-integers.js.map +1 -1
- package/dist/backend/llvm/stack-objects.d.ts +3 -2
- package/dist/backend/llvm/stack-objects.js +5 -2
- package/dist/backend/llvm/stack-objects.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +2 -1
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-reads.d.ts +15 -0
- package/dist/backend/llvm/string-reads.js +128 -0
- package/dist/backend/llvm/string-reads.js.map +1 -1
- package/dist/backend/llvm/walk-borrows.d.ts +3 -0
- package/dist/backend/llvm/walk-borrows.js +46 -41
- package/dist/backend/llvm/walk-borrows.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +3 -0
- package/dist/backend/llvm/walkers.js +88 -65
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/llvm/wasm-modules.d.ts +6 -5
- package/dist/backend/llvm/wasm-modules.js +32 -9
- package/dist/backend/llvm/wasm-modules.js.map +1 -1
- package/dist/backend/llvm/wrapping-sums.d.ts +16 -1
- package/dist/backend/llvm/wrapping-sums.js +126 -0
- package/dist/backend/llvm/wrapping-sums.js.map +1 -1
- package/dist/backend/mangle.d.ts +3 -0
- package/dist/backend/mangle.js +5 -0
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/may-throw.d.ts +8 -10
- package/dist/backend/may-throw.js +14 -10
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +27 -4
- package/dist/backend/native/executable.js +31 -8
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +1 -0
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +1 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +11 -6
- package/dist/backend/native-codegen.js +36 -9
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +0 -23
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +18 -4
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/optimization.d.ts +2 -2
- package/dist/backend/publication.d.ts +12 -1
- package/dist/backend/publication.js +37 -14
- package/dist/backend/publication.js.map +1 -1
- package/dist/backend/publication.test.js +30 -0
- package/dist/backend/publication.test.js.map +1 -1
- package/dist/backend/result-slots.d.ts +16 -0
- package/dist/backend/result-slots.js +23 -0
- package/dist/backend/result-slots.js.map +1 -0
- 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 +2 -1
- package/dist/backend/runtime-pack-core.js +2 -1
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +5 -1
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.d.ts +0 -21
- package/dist/backend/runtime-pack.js +0 -29
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +10 -69
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/stack-observations.d.ts +2 -1
- package/dist/backend/stack-observations.js +67 -42
- package/dist/backend/stack-observations.js.map +1 -1
- package/dist/backend/target-diagnostics.js +33 -1
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/warm-cache.js +4 -0
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/cli/command.js +26 -6
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/usage.d.ts +5 -1
- package/dist/cli/usage.js +10 -5
- package/dist/cli/usage.js.map +1 -1
- package/dist/compat/fetch-profile.js +1 -1
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/contracts/check.js +5 -4
- package/dist/contracts/check.js.map +1 -1
- package/dist/contracts/int32-elements.js +10 -2
- package/dist/contracts/int32-elements.js.map +1 -1
- package/dist/coverage/report.d.ts +7 -2
- package/dist/coverage/report.js +30 -3
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/verdict-cache.d.ts +1 -0
- package/dist/coverage/verdict-cache.js +4 -0
- package/dist/coverage/verdict-cache.js.map +1 -1
- package/dist/coverage/verdict-semantic.js +4 -0
- package/dist/coverage/verdict-semantic.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +4 -0
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/dynamic-tier.d.ts +40 -0
- package/dist/diagnostics/dynamic-tier.js +57 -0
- package/dist/diagnostics/dynamic-tier.js.map +1 -0
- package/dist/diagnostics/envelope.d.ts +5 -1
- package/dist/diagnostics/envelope.js +6 -2
- package/dist/diagnostics/envelope.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +25 -1
- package/dist/executable/executable-cache.js +60 -7
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +46 -3
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.js +3 -1
- 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/decl-projection.d.ts +41 -0
- package/dist/frontend/decl-projection.js +854 -0
- package/dist/frontend/decl-projection.js.map +1 -0
- package/dist/frontend/decl-projection.test.d.ts +1 -0
- package/dist/frontend/decl-projection.test.js +30 -0
- package/dist/frontend/decl-projection.test.js.map +1 -0
- package/dist/frontend/dispose-hook.d.ts +2 -0
- package/dist/frontend/dispose-hook.js +14 -0
- package/dist/frontend/dispose-hook.js.map +1 -0
- package/dist/frontend/dts-paths.d.ts +15 -0
- package/dist/frontend/dts-paths.js +25 -0
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/input-tracker.d.ts +6 -0
- package/dist/frontend/input-tracker.js +51 -28
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +19 -0
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/jsx-entities.d.ts +4 -0
- package/dist/frontend/jsx-entities.js +259 -0
- package/dist/frontend/jsx-entities.js.map +1 -0
- package/dist/frontend/jsx-source.d.ts +71 -0
- package/dist/frontend/jsx-source.js +781 -0
- package/dist/frontend/jsx-source.js.map +1 -0
- package/dist/frontend/jsx-source.test.d.ts +1 -0
- package/dist/frontend/jsx-source.test.js +200 -0
- package/dist/frontend/jsx-source.test.js.map +1 -0
- package/dist/frontend/literal-values.test.js +8 -9
- package/dist/frontend/literal-values.test.js.map +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.js +2 -1
- package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
- package/dist/frontend/lowering/array-values.js +103 -4
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/binding-analysis.d.ts +1 -1
- package/dist/frontend/lowering/binding-analysis.js +2 -2
- package/dist/frontend/lowering/binding-analysis.js.map +1 -1
- package/dist/frontend/lowering/builtins/arguments.d.ts +3 -0
- package/dist/frontend/lowering/builtins/arguments.js +30 -15
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
- package/dist/frontend/lowering/builtins/atomics.js +10 -6
- package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-async.js +2 -1
- package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-methods.js +46 -15
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js +2 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process.js +13 -2
- package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.d.ts +4 -2
- package/dist/frontend/lowering/builtins/crypto.js +136 -5
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/date-classes.d.ts +46 -0
- package/dist/frontend/lowering/builtins/date-classes.js +477 -0
- package/dist/frontend/lowering/builtins/date-classes.js.map +1 -0
- package/dist/frontend/lowering/builtins/dates.d.ts +11 -1
- package/dist/frontend/lowering/builtins/dates.js +55 -26
- package/dist/frontend/lowering/builtins/dates.js.map +1 -1
- package/dist/frontend/lowering/builtins/dh.d.ts +15 -0
- package/dist/frontend/lowering/builtins/dh.js +151 -0
- package/dist/frontend/lowering/builtins/dh.js.map +1 -0
- package/dist/frontend/lowering/builtins/disposable-stack.js +2 -1
- package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -1
- package/dist/frontend/lowering/builtins/ecdh.d.ts +12 -1
- package/dist/frontend/lowering/builtins/ecdh.js +7 -7
- package/dist/frontend/lowering/builtins/ecdh.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.d.ts +15 -0
- package/dist/frontend/lowering/builtins/errors.js +110 -0
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.js +23 -17
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.js +6 -4
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-paths.d.ts +15 -0
- package/dist/frontend/lowering/builtins/fs-paths.js +209 -0
- package/dist/frontend/lowering/builtins/fs-paths.js.map +1 -0
- package/dist/frontend/lowering/builtins/global-namespace-keys.d.ts +3 -0
- package/dist/frontend/lowering/builtins/global-namespace-keys.js +122 -0
- package/dist/frontend/lowering/builtins/global-namespace-keys.js.map +1 -0
- package/dist/frontend/lowering/builtins/hash-stream.d.ts +16 -4
- package/dist/frontend/lowering/builtins/hash-stream.js +86 -23
- package/dist/frontend/lowering/builtins/hash-stream.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.js +2 -1
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/key-object.d.ts +2 -1
- package/dist/frontend/lowering/builtins/key-object.js +20 -7
- package/dist/frontend/lowering/builtins/key-object.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +11 -4
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/numbers.js +18 -6
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/operating-system.js +4 -3
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
- package/dist/frontend/lowering/builtins/performance.js +3 -2
- package/dist/frontend/lowering/builtins/performance.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.js +3 -2
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.d.ts +6 -0
- package/dist/frontend/lowering/builtins/promises.js +91 -4
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/promisify-callback.js +2 -1
- package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +7 -2
- package/dist/frontend/lowering/builtins/readline.js +58 -9
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/strings.js +13 -5
- package/dist/frontend/lowering/builtins/strings.js.map +1 -1
- package/dist/frontend/lowering/builtins/text-codecs.js +2 -1
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
- package/dist/frontend/lowering/builtins/timers.js +1 -1
- package/dist/frontend/lowering/builtins/timers.js.map +1 -1
- package/dist/frontend/lowering/builtins/url.js +28 -4
- package/dist/frontend/lowering/builtins/url.js.map +1 -1
- package/dist/frontend/lowering/builtins/v8.js +2 -1
- package/dist/frontend/lowering/builtins/v8.js.map +1 -1
- package/dist/frontend/lowering/builtins/webassembly.js +6 -3
- package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
- package/dist/frontend/lowering/builtins/webcrypto.js +39 -20
- package/dist/frontend/lowering/builtins/webcrypto.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.js +2 -1
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.js +13 -6
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/caught-value-dispatch.d.ts +18 -1
- package/dist/frontend/lowering/caught-value-dispatch.js +201 -32
- package/dist/frontend/lowering/caught-value-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-assertions.js +3 -2
- package/dist/frontend/lowering/class-assertions.js.map +1 -1
- package/dist/frontend/lowering/class-callbacks.d.ts +5 -2
- package/dist/frontend/lowering/class-callbacks.js +82 -12
- package/dist/frontend/lowering/class-callbacks.js.map +1 -1
- package/dist/frontend/lowering/class-construction.d.ts +6 -2
- package/dist/frontend/lowering/class-construction.js +25 -16
- package/dist/frontend/lowering/class-construction.js.map +1 -1
- package/dist/frontend/lowering/class-descriptors.js +1 -1
- package/dist/frontend/lowering/class-descriptors.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +73 -2
- package/dist/frontend/lowering/class-dynamic-dispatch.js +1334 -259
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +124 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-iterables.d.ts +2 -1
- package/dist/frontend/lowering/class-iterables.js +9 -1
- package/dist/frontend/lowering/class-iterables.js.map +1 -1
- package/dist/frontend/lowering/class-method-mutations.js +35 -9
- package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
- package/dist/frontend/lowering/class-method-values.js +1 -1
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.d.ts +7 -0
- package/dist/frontend/lowering/class-protocols.js +64 -4
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.d.ts +5 -0
- package/dist/frontend/lowering/class-prototypes.js +67 -5
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-runtime-statics.d.ts +9 -3
- package/dist/frontend/lowering/class-runtime-statics.js +29 -4
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
- package/dist/frontend/lowering/class-to-primitive.js +25 -5
- package/dist/frontend/lowering/class-to-primitive.js.map +1 -1
- package/dist/frontend/lowering/class-unions.js +2 -1
- package/dist/frontend/lowering/class-unions.js.map +1 -1
- package/dist/frontend/lowering/coercions/function-adapters.js +6 -5
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural-plans.js +48 -1
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +99 -8
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/coercions/unions.js +8 -7
- package/dist/frontend/lowering/coercions/unions.js.map +1 -1
- package/dist/frontend/lowering/collection-ingestion.js +2 -1
- package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callback-call.js +2 -2
- package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +7 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +352 -31
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-concat.js +12 -1
- package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.js +25 -4
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +21 -5
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.js +21 -9
- package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.d.ts +1 -1
- package/dist/frontend/lowering/containers/bytes.js +131 -29
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.js +55 -2
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-grouping.js +3 -2
- package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +15 -9
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/filter-predicates.d.ts +6 -0
- package/dist/frontend/lowering/containers/filter-predicates.js +205 -0
- package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -0
- package/dist/frontend/lowering/containers/indexed-objects.d.ts +0 -12
- package/dist/frontend/lowering/containers/indexed-objects.js +54 -14
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/containers/iterator-helpers.d.ts +32 -1
- package/dist/frontend/lowering/containers/iterator-helpers.js +6 -5
- package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.js +87 -14
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js +45 -20
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.js +25 -4
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.d.ts +18 -1
- package/dist/frontend/lowering/deferred-module-initializers.js +226 -115
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.test.js +28 -0
- package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
- package/dist/frontend/lowering/dispatch-sites.d.ts +59 -0
- package/dist/frontend/lowering/dispatch-sites.js +218 -0
- package/dist/frontend/lowering/dispatch-sites.js.map +1 -0
- package/dist/frontend/lowering/dispatch-sites.test.d.ts +1 -0
- package/dist/frontend/lowering/dispatch-sites.test.js +59 -0
- package/dist/frontend/lowering/dispatch-sites.test.js.map +1 -0
- package/dist/frontend/lowering/divergences.js +9 -1
- package/dist/frontend/lowering/divergences.js.map +1 -1
- package/dist/frontend/lowering/dyn-streams.d.ts +3 -0
- package/dist/frontend/lowering/dyn-streams.js +1 -1
- package/dist/frontend/lowering/dyn-streams.js.map +1 -1
- package/dist/frontend/lowering/dynamic-tier.d.ts +25 -0
- package/dist/frontend/lowering/dynamic-tier.js +327 -0
- package/dist/frontend/lowering/dynamic-tier.js.map +1 -0
- package/dist/frontend/lowering/error-methods.js +51 -2
- package/dist/frontend/lowering/error-methods.js.map +1 -1
- package/dist/frontend/lowering/expressions/array-literals.js +62 -0
- package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/binary.js +81 -5
- package/dist/frontend/lowering/expressions/binary.js.map +1 -1
- package/dist/frontend/lowering/expressions/element-access.js +107 -14
- package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/identifiers.js +79 -11
- package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
- package/dist/frontend/lowering/expressions/narrowing.js +130 -6
- package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +3 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -3
- package/dist/frontend/lowering/expressions/object-literals.js +164 -56
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +17 -5
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/property-access.d.ts +0 -4
- package/dist/frontend/lowering/expressions/property-access.js +211 -17
- package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/relational.js +267 -30
- package/dist/frontend/lowering/expressions/relational.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-fields.js +4 -0
- package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
- package/dist/frontend/lowering/expressions/updates.js +85 -12
- package/dist/frontend/lowering/expressions/updates.js.map +1 -1
- package/dist/frontend/lowering/frozen-records.d.ts +28 -0
- package/dist/frontend/lowering/frozen-records.js +322 -0
- package/dist/frontend/lowering/frozen-records.js.map +1 -0
- package/dist/frontend/lowering/function-returns.js +49 -0
- package/dist/frontend/lowering/function-returns.js.map +1 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +6 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +20 -30
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +42 -1
- package/dist/frontend/lowering/generic-functions.js +455 -20
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/intern-tables.js +2 -1
- package/dist/frontend/lowering/intern-tables.js.map +1 -1
- package/dist/frontend/lowering/iterable-values.d.ts +49 -0
- package/dist/frontend/lowering/iterable-values.js +297 -0
- package/dist/frontend/lowering/iterable-values.js.map +1 -0
- package/dist/frontend/lowering/iterator-adapters.js +195 -9
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
- package/dist/frontend/lowering/js-class-fields.d.ts +8 -0
- package/dist/frontend/lowering/js-class-fields.js +45 -10
- package/dist/frontend/lowering/js-class-fields.js.map +1 -1
- package/dist/frontend/lowering/js-dynamic-objects.js +3 -2
- package/dist/frontend/lowering/js-dynamic-objects.js.map +1 -1
- package/dist/frontend/lowering/json-require.js +2 -1
- package/dist/frontend/lowering/json-require.js.map +1 -1
- package/dist/frontend/lowering/key-order-witness.d.ts +24 -4
- package/dist/frontend/lowering/key-order-witness.js +790 -25
- package/dist/frontend/lowering/key-order-witness.js.map +1 -1
- package/dist/frontend/lowering/key-order-witness.test.js +466 -10
- package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
- package/dist/frontend/lowering/lifetime-regions.js +2 -1
- package/dist/frontend/lowering/lifetime-regions.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +6 -5
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.js +7 -2
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +11 -0
- package/dist/frontend/lowering/lower-calls.js +776 -126
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +29 -2
- package/dist/frontend/lowering/lower-classes.js +581 -46
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.js +6 -3
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +14 -0
- package/dist/frontend/lowering/lower-event-emitter.js +267 -20
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +19 -2
- package/dist/frontend/lowering/lower-exprs.js +126 -13
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.d.ts +11 -0
- package/dist/frontend/lowering/lower-functions.js +387 -72
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.js +41 -31
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.js +6 -3
- package/dist/frontend/lowering/lower-global-value.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +28 -12
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.js +2 -1
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-mock.js +2 -1
- package/dist/frontend/lowering/lower-mock.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +47 -5
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.test.js +2 -2
- package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +2 -1
- package/dist/frontend/lowering/lower-namespaces.js +9 -4
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +10 -0
- package/dist/frontend/lowering/lower-server.js +239 -61
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +5 -0
- package/dist/frontend/lowering/lower-stdlib.js +42 -10
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +23 -0
- package/dist/frontend/lowering/lower-stmts.js +622 -68
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.test.js +1 -1
- package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +20 -2
- package/dist/frontend/lowering/lower-stream.js +2055 -318
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.js +4 -3
- package/dist/frontend/lowering/lower-timers.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +197 -29
- package/dist/frontend/lowering/lowerer.js +862 -84
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +21 -9
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/module-namespace-elements.d.ts +11 -1
- package/dist/frontend/lowering/module-namespace-elements.js +82 -5
- package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
- package/dist/frontend/lowering/narrowing-stability.js +5 -0
- package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.js +1 -1
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/new-target.d.ts +12 -0
- package/dist/frontend/lowering/new-target.js +280 -0
- package/dist/frontend/lowering/new-target.js.map +1 -0
- package/dist/frontend/lowering/object-enumeration-receiver.js +2 -1
- package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.js +2 -1
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
- package/dist/frontend/lowering/private-brands.d.ts +9 -0
- package/dist/frontend/lowering/private-brands.js +66 -15
- package/dist/frontend/lowering/private-brands.js.map +1 -1
- package/dist/frontend/lowering/promise-executor-adapter.js +2 -1
- package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -1
- package/dist/frontend/lowering/require-initialization.js +2 -1
- package/dist/frontend/lowering/require-initialization.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-elements.d.ts +5 -0
- package/dist/frontend/lowering/runtime-optional-elements.js +17 -1
- package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-records.d.ts +2 -0
- package/dist/frontend/lowering/runtime-optional-records.js +18 -5
- package/dist/frontend/lowering/runtime-optional-records.js.map +1 -1
- package/dist/frontend/lowering/site-dependencies.d.ts +35 -0
- package/dist/frontend/lowering/site-dependencies.js +84 -0
- package/dist/frontend/lowering/site-dependencies.js.map +1 -0
- package/dist/frontend/lowering/site-dependencies.test.d.ts +1 -0
- package/dist/frontend/lowering/site-dependencies.test.js +53 -0
- package/dist/frontend/lowering/site-dependencies.test.js.map +1 -0
- package/dist/frontend/lowering/stable-names.d.ts +11 -0
- package/dist/frontend/lowering/stable-names.js +35 -0
- package/dist/frontend/lowering/stable-names.js.map +1 -0
- package/dist/frontend/lowering/static-typeof.d.ts +2 -2
- package/dist/frontend/lowering/static-typeof.js +42 -3
- package/dist/frontend/lowering/static-typeof.js.map +1 -1
- package/dist/frontend/lowering/strict-equality.js +2 -1
- package/dist/frontend/lowering/strict-equality.js.map +1 -1
- package/dist/frontend/lowering/structural-positions.d.ts +32 -0
- package/dist/frontend/lowering/structural-positions.js +108 -0
- package/dist/frontend/lowering/structural-positions.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +3 -0
- package/dist/frontend/lowering/surfaces.js +60 -32
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/undefined-index.d.ts +27 -0
- package/dist/frontend/lowering/undefined-index.js +82 -0
- package/dist/frontend/lowering/undefined-index.js.map +1 -0
- package/dist/frontend/lowering/var-hoisting.js +66 -16
- package/dist/frontend/lowering/var-hoisting.js.map +1 -1
- package/dist/frontend/lowering/width-lift.d.ts +18 -0
- package/dist/frontend/npm-static-bundled-chunks.js +9 -11
- package/dist/frontend/npm-static-bundled-chunks.js.map +1 -1
- package/dist/frontend/npm-static-bundled-chunks.test.js +6 -5
- package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-syntax.js +9 -1
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
- package/dist/frontend/npm-static-tsc-helpers.d.ts +5 -0
- package/dist/frontend/npm-static-tsc-helpers.js +106 -0
- package/dist/frontend/npm-static-tsc-helpers.js.map +1 -0
- package/dist/frontend/npm-static-tsc-helpers.test.d.ts +1 -0
- package/dist/frontend/npm-static-tsc-helpers.test.js +58 -0
- package/dist/frontend/npm-static-tsc-helpers.test.js.map +1 -0
- package/dist/frontend/npm-static-type-exports-host.d.ts +8 -0
- package/dist/frontend/npm-static-type-exports-host.js +214 -0
- package/dist/frontend/npm-static-type-exports-host.js.map +1 -0
- package/dist/frontend/npm-static-type-exports-host.test.d.ts +1 -0
- package/dist/frontend/npm-static-type-exports-host.test.js +53 -0
- package/dist/frontend/npm-static-type-exports-host.test.js.map +1 -0
- package/dist/frontend/npm-static-type-exports.d.ts +52 -0
- package/dist/frontend/npm-static-type-exports.js +261 -0
- package/dist/frontend/npm-static-type-exports.js.map +1 -0
- package/dist/frontend/npm-static-type-exports.test.d.ts +1 -0
- package/dist/frontend/npm-static-type-exports.test.js +103 -0
- package/dist/frontend/npm-static-type-exports.test.js.map +1 -0
- package/dist/frontend/npm-static-umd.d.ts +6 -0
- package/dist/frontend/npm-static-umd.js +203 -0
- package/dist/frontend/npm-static-umd.js.map +1 -0
- package/dist/frontend/npm-static-umd.test.d.ts +1 -0
- package/dist/frontend/npm-static-umd.test.js +105 -0
- package/dist/frontend/npm-static-umd.test.js.map +1 -0
- package/dist/frontend/npm-static.d.ts +8 -0
- package/dist/frontend/npm-static.js +51 -22
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/package-shims.d.ts +3 -0
- package/dist/frontend/package-shims.js +71 -8
- package/dist/frontend/package-shims.js.map +1 -1
- package/dist/frontend/pipeline.js +18 -10
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/process-fork.d.ts +25 -0
- package/dist/frontend/process-fork.js +2 -0
- package/dist/frontend/process-fork.js.map +1 -0
- package/dist/frontend/program.d.ts +21 -1
- package/dist/frontend/program.js +586 -74
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +44 -4
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/services.d.ts +6 -0
- package/dist/frontend/services.js +18 -0
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/token-equivalence.d.ts +3 -0
- package/dist/frontend/token-equivalence.js +409 -0
- package/dist/frontend/token-equivalence.js.map +1 -0
- package/dist/frontend/token-equivalence.test.d.ts +1 -0
- package/dist/frontend/token-equivalence.test.js +67 -0
- package/dist/frontend/token-equivalence.test.js.map +1 -0
- package/dist/frontend/ts7/ast-node.d.ts +43 -7
- package/dist/frontend/ts7/ast-node.js +1176 -129
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +84 -0
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/ts7/ast-wire.d.ts +29 -3
- package/dist/frontend/ts7/ast-wire.js +144 -31
- package/dist/frontend/ts7/ast-wire.js.map +1 -1
- package/dist/frontend/ts7/ast-wire.test.js +23 -0
- package/dist/frontend/ts7/ast-wire.test.js.map +1 -1
- package/dist/frontend/ts7/ast.d.ts +23 -2
- package/dist/frontend/ts7/ast.js +143 -2
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/checker-backend.d.ts +3 -4
- package/dist/frontend/ts7/checker-backend.js +2 -2
- package/dist/frontend/ts7/checker-backend.js.map +1 -1
- package/dist/frontend/ts7/checker-backend.test.js +5 -9
- package/dist/frontend/ts7/checker-backend.test.js.map +1 -1
- package/dist/frontend/ts7/checker.d.ts +17 -1
- package/dist/frontend/ts7/checker.js +82 -1
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.js +9 -6
- package/dist/frontend/ts7/checker.test.js.map +1 -1
- package/dist/frontend/ts7/enums.d.ts +3 -3
- package/dist/frontend/ts7/enums.generated.d.ts +10 -0
- package/dist/frontend/ts7/enums.generated.js +21 -0
- package/dist/frontend/ts7/enums.generated.js.map +1 -1
- package/dist/frontend/ts7/enums.js +19 -0
- package/dist/frontend/ts7/enums.js.map +1 -1
- package/dist/frontend/ts7/lib-diagnostics.d.ts +24 -0
- package/dist/frontend/ts7/lib-diagnostics.js +307 -0
- package/dist/frontend/ts7/lib-diagnostics.js.map +1 -0
- package/dist/frontend/ts7/lib-diagnostics.test.d.ts +1 -0
- package/dist/frontend/ts7/lib-diagnostics.test.js +199 -0
- package/dist/frontend/ts7/lib-diagnostics.test.js.map +1 -0
- package/dist/frontend/ts7/program-host.d.ts +7 -0
- package/dist/frontend/ts7/program-host.js +30 -4
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.d.ts +10 -0
- package/dist/frontend/ts7/semantic-checker.js +25 -20
- package/dist/frontend/ts7/semantic-checker.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.d.ts +13 -0
- package/dist/frontend/ts7/semantic-json.js +146 -0
- package/dist/frontend/ts7/semantic-json.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.test.js +57 -1
- package/dist/frontend/ts7/semantic-json.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.d.ts +15 -0
- package/dist/frontend/ts7/semantic-model.js +67 -19
- package/dist/frontend/ts7/semantic-model.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.test.js +3 -2
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
- package/dist/frontend/ts7/session.d.ts +14 -1
- package/dist/frontend/ts7/session.js +23 -1
- package/dist/frontend/ts7/session.js.map +1 -1
- package/dist/frontend/tsc-codes.d.ts +1 -1
- package/dist/frontend/tsc-codes.js +7 -0
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +51 -7
- package/dist/frontend/type-mapper.js +456 -43
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +1 -1
- package/dist/frontend/type-mapper.test.js.map +1 -1
- package/dist/frontend-process-args.d.ts +4 -0
- package/dist/frontend-process-args.js +52 -0
- package/dist/frontend-process-args.js.map +1 -0
- package/dist/frontend-process-args.test.d.ts +1 -0
- package/dist/frontend-process-args.test.js +47 -0
- package/dist/frontend-process-args.test.js.map +1 -0
- package/dist/frontend-process.d.ts +1 -0
- package/dist/frontend-process.js +23 -0
- package/dist/frontend-process.js.map +1 -0
- package/dist/heap-collection.d.ts +16 -0
- package/dist/heap-collection.js +42 -0
- package/dist/heap-collection.js.map +1 -0
- package/dist/heap-collection.test.d.ts +1 -0
- package/dist/heap-collection.test.js +59 -0
- package/dist/heap-collection.test.js.map +1 -0
- package/dist/heap-pressure.d.ts +2 -0
- package/dist/heap-pressure.js +12 -0
- package/dist/heap-pressure.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +435 -89
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +5 -3
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/array-length-stability.d.ts +4 -0
- package/dist/ir/array-length-stability.js +26 -6
- package/dist/ir/array-length-stability.js.map +1 -1
- package/dist/ir/array-length-stability.test.js +49 -0
- package/dist/ir/array-length-stability.test.js.map +1 -1
- package/dist/ir/builtin-effects.d.ts +7 -0
- package/dist/ir/builtin-effects.js +80 -0
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +7 -1
- package/dist/ir/builtin-signatures.js +303 -21
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/callback-specialization.d.ts +2 -1
- package/dist/ir/callback-specialization.js +23 -18
- package/dist/ir/callback-specialization.js.map +1 -1
- package/dist/ir/char-unit-locals.d.ts +19 -0
- package/dist/ir/char-unit-locals.js +185 -0
- package/dist/ir/char-unit-locals.js.map +1 -0
- package/dist/ir/char-unit-locals.test.d.ts +1 -0
- package/dist/ir/char-unit-locals.test.js +94 -0
- package/dist/ir/char-unit-locals.test.js.map +1 -0
- package/dist/ir/final-fields.d.ts +3 -1
- package/dist/ir/final-fields.js +15 -17
- package/dist/ir/final-fields.js.map +1 -1
- package/dist/ir/function-references.d.ts +2 -0
- package/dist/ir/function-references.js +2 -0
- package/dist/ir/function-references.js.map +1 -1
- package/dist/ir/function-references.test.js +5 -0
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/initializer-bindings.d.ts +2 -1
- package/dist/ir/initializer-bindings.js +27 -20
- package/dist/ir/initializer-bindings.js.map +1 -1
- package/dist/ir/int32-arrays.d.ts +108 -0
- package/dist/ir/int32-arrays.js +831 -0
- package/dist/ir/int32-arrays.js.map +1 -0
- package/dist/ir/int32-slots.d.ts +36 -6
- package/dist/ir/int32-slots.js +370 -171
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +3 -1
- package/dist/ir/int32-slots.test.js.map +1 -1
- package/dist/ir/integer-loop-facts.d.ts +9 -4
- package/dist/ir/integer-loop-facts.js +93 -18
- package/dist/ir/integer-loop-facts.js.map +1 -1
- package/dist/ir/integer-loops.d.ts +49 -0
- package/dist/ir/integer-loops.js +202 -40
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +211 -1
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +5 -0
- package/dist/ir/integer-ranges.js +125 -12
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +94 -0
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/ir.d.ts +87 -9
- package/dist/ir/ir.js +61 -2
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +21 -1
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/js-ic.d.ts +19 -2
- package/dist/ir/js-ic.js +95 -11
- package/dist/ir/js-ic.js.map +1 -1
- package/dist/ir/js-ic.test.js +188 -0
- package/dist/ir/js-ic.test.js.map +1 -1
- package/dist/ir/node-index.d.ts +57 -0
- package/dist/ir/node-index.js +215 -0
- package/dist/ir/node-index.js.map +1 -0
- package/dist/ir/paired-while-loops.d.ts +25 -0
- package/dist/ir/paired-while-loops.js +335 -0
- package/dist/ir/paired-while-loops.js.map +1 -0
- package/dist/ir/paired-while-loops.test.d.ts +1 -0
- package/dist/ir/paired-while-loops.test.js +163 -0
- package/dist/ir/paired-while-loops.test.js.map +1 -0
- package/dist/ir/parameter-versions.d.ts +25 -0
- package/dist/ir/parameter-versions.js +300 -0
- package/dist/ir/parameter-versions.js.map +1 -0
- package/dist/ir/runtime-features.d.ts +60 -15
- package/dist/ir/runtime-features.js +276 -35
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/serialize.d.ts +12 -2
- package/dist/ir/serialize.js +16 -3
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.js +17 -0
- package/dist/ir/serialize.test.js.map +1 -1
- package/dist/ir/tiers.js +1 -0
- package/dist/ir/tiers.js.map +1 -1
- package/dist/ir/traverse.d.ts +2 -0
- package/dist/ir/traverse.js +29 -5
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +171 -45
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/ir-policy.js +12 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/library/library-cache.d.ts +2 -0
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/prepare.js +2 -0
- package/dist/library/prepare.js.map +1 -1
- package/dist/native/cache.d.ts +6 -1
- package/dist/native/cache.js +28 -5
- package/dist/native/cache.js.map +1 -1
- package/dist/native/cache.test.js +16 -2
- package/dist/native/cache.test.js.map +1 -1
- package/dist/native/cli.js +26 -1
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.js +8 -6
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/executable-cache.d.ts +1 -1
- package/dist/native/executable-cache.js +2 -2
- package/dist/native/executable-cache.js.map +1 -1
- package/dist/native/prepare.d.ts +3 -1
- package/dist/native/prepare.js +123 -31
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/prepare.test.js +78 -18
- package/dist/native/prepare.test.js.map +1 -1
- package/dist/native/sanitizer.test.js +6 -1
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/native/text-file.d.ts +13 -3
- package/dist/native/text-file.js +63 -9
- package/dist/native/text-file.js.map +1 -1
- package/dist/native/text-file.test.d.ts +1 -0
- package/dist/native/text-file.test.js +49 -0
- package/dist/native/text-file.test.js.map +1 -0
- package/dist/native/toolchain.js +4 -4
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +3 -3
- package/dist/native/toolchain.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/dist/text-parts.d.ts +7 -0
- package/dist/text-parts.js +44 -0
- package/dist/text-parts.js.map +1 -1
- package/dist/text-parts.test.d.ts +1 -0
- package/dist/text-parts.test.js +46 -0
- package/dist/text-parts.test.js.map +1 -0
- package/dist/timing.d.ts +9 -2
- package/dist/timing.js +7 -4
- package/dist/timing.js.map +1 -1
- package/dist/wasm/translate.d.ts +4 -0
- package/dist/wasm/translate.js +2 -2
- package/dist/wasm/translate.js.map +1 -1
- package/package.json +21 -21
- package/shims/chalk/v5.ts +688 -0
- package/shims/hono-node-server/v2.ts +645 -0
- package/shims/hot-shots/client.ts +1126 -0
- package/shims/hot-shots/v8-unix-dgram.ts +8 -0
- package/shims/hot-shots/v8.ts +8 -0
- package/shims/undici/core/client.ts +4 -4
- package/surface-manifest.json +44 -52
|
@@ -3,6 +3,7 @@ import { InternalCompilerError } from "../../errors.js";
|
|
|
3
3
|
import { isRefCounted, typeKey } from "../../ir/ir.js";
|
|
4
4
|
import { FN_ATTRS, releaseSym, retainSym, traceArg } from "./shapes.js";
|
|
5
5
|
import { unionPeekLines, unionTagLines } from "./union-repr.js";
|
|
6
|
+
import { registerReplay } from "./emit-journal.js";
|
|
6
7
|
export function streamDataAdapter(host, cbT) {
|
|
7
8
|
const key = `eed:${typeKey(cbT)}`;
|
|
8
9
|
let sym = host.resolveThunks.get(key);
|
|
@@ -10,20 +11,48 @@ export function streamDataAdapter(host, cbT) {
|
|
|
10
11
|
return sym;
|
|
11
12
|
sym = `sc_ee_dad_${host.resolveThunks.size}`;
|
|
12
13
|
host.resolveThunks.set(key, sym);
|
|
14
|
+
host.journal?.allocated(sym, "streamDataAdapter", [cbT]);
|
|
13
15
|
const p = cbT.params[0];
|
|
14
|
-
if (cbT.params.length > 1
|
|
15
|
-
(p && p.kind !== "bytes" && p.kind !== "string" && p.kind !== "dyn" && p.kind !== "union")) {
|
|
16
|
+
if (cbT.params.length > 1) {
|
|
16
17
|
throw new InternalCompilerError("llvm emitter bug: stream data listener param shape (frontend must fence)");
|
|
17
18
|
}
|
|
19
|
+
// A `Buffer | string` union wraps the filled slot; any other union (or
|
|
20
|
+
// other type) converts from the chunk's checked-dynamic value.
|
|
21
|
+
const bytesOrString = p?.kind === "union" &&
|
|
22
|
+
(() => {
|
|
23
|
+
const def = host.unionsById.get(p.unionId);
|
|
24
|
+
return (def !== undefined &&
|
|
25
|
+
!host.nullableUnions.has(p.unionId) &&
|
|
26
|
+
def.arms.length === 2 &&
|
|
27
|
+
def.arms.some((a) => a.kind === "bytes" && a.elem === "u8") &&
|
|
28
|
+
def.arms.some((a) => a.kind === "string"));
|
|
29
|
+
})();
|
|
18
30
|
host.declare(`declare ptr @scr_box_get_ref(ptr)`);
|
|
19
31
|
host.declare(`declare void @scr_closure_release(ptr)`);
|
|
32
|
+
// The emit ABI's three slots (scr_stream_emit_data): the bytes chunk,
|
|
33
|
+
// the string chunk, and an object-mode entry's value.
|
|
20
34
|
const d = [
|
|
21
|
-
`define internal void @${sym}(ptr %cb, ptr %a0, ptr %a1) ${FN_ATTRS} { ; stream 'data' adapter ${typeKey(cbT)}`,
|
|
35
|
+
`define internal void @${sym}(ptr %cb, ptr %a0, ptr %a1, ptr %a2) ${FN_ATTRS} { ; stream 'data' adapter ${typeKey(cbT)}`,
|
|
22
36
|
`entry:`,
|
|
23
37
|
` %capsp = getelementptr inbounds %ScrClosure, ptr %cb, i64 1`,
|
|
24
38
|
` %bx = load ptr, ptr %capsp`,
|
|
25
39
|
` %orig = call ptr @scr_box_get_ref(ptr %bx) ; the listener, +1`,
|
|
26
40
|
];
|
|
41
|
+
const finishTyped = (arg, argTy) => {
|
|
42
|
+
d.push(` %fnp = getelementptr inbounds %ScrClosure, ptr %orig, i64 0, i32 1`, ` %fn = load ptr, ptr %fnp`);
|
|
43
|
+
const retTy = host.llType(cbT.ret);
|
|
44
|
+
const argList = `ptr %orig, ${argTy} ${arg}`;
|
|
45
|
+
if (retTy === "void") {
|
|
46
|
+
d.push(` call void %fn(${argList})`);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
d.push(` %ret = call ${retTy} %fn(${argList})`);
|
|
50
|
+
if (isRefCounted(cbT.ret)) {
|
|
51
|
+
d.push(` call void ${releaseSym(host.shapeHost, cbT.ret)}(ptr %ret) ; discarded listener result`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
d.push(` call void @scr_closure_release(ptr %orig)`, ` ret void`);
|
|
55
|
+
};
|
|
27
56
|
const finish = (arg) => {
|
|
28
57
|
d.push(` %fnp = getelementptr inbounds %ScrClosure, ptr %orig, i64 0, i32 1`, ` %fn = load ptr, ptr %fnp`);
|
|
29
58
|
const retTy = host.llType(cbT.ret);
|
|
@@ -45,15 +74,15 @@ export function streamDataAdapter(host, cbT) {
|
|
|
45
74
|
}
|
|
46
75
|
else if (p.kind === "bytes" || p.kind === "string") {
|
|
47
76
|
const msg = p.kind === "bytes"
|
|
48
|
-
? "a 'data' listener declaring a Buffer chunk received a string (the stream has an encoding set)"
|
|
49
|
-
: "a 'data' listener declaring a string chunk received a Buffer (call setEncoding, or declare the chunk
|
|
77
|
+
? "a 'data' listener declaring a Buffer chunk received a string or an object-mode value (the stream has an encoding set, or is in object mode)"
|
|
78
|
+
: "a 'data' listener declaring a string chunk received a Buffer or an object-mode value (call setEncoding, or declare the chunk's type)";
|
|
50
79
|
const slot = p.kind === "bytes" ? "%a0" : "%a1";
|
|
51
80
|
host.declare(`declare void @scr_throw_error_msg(i32, ptr, ${host.sizeType})`);
|
|
52
81
|
d.push(` %miss = icmp eq ptr ${slot}, null`, ` br i1 %miss, label %bad, label %ok`, `bad:`, ` call void @scr_throw_error_msg(i32 1, ptr ${host.cstr(msg)}, ${host.sizeType} ${Buffer.byteLength(msg, "utf8")})`, ` call void @scr_closure_release(ptr %orig)`, ` ret void`, `ok:`, ` %r0 = call ptr ${retainSym(host.shapeHost, p)}(ptr ${slot})`);
|
|
53
82
|
finish("%r0");
|
|
54
83
|
d.push(`}`, ``);
|
|
55
84
|
}
|
|
56
|
-
else if (p.kind === "union") {
|
|
85
|
+
else if (p.kind === "union" && bytesOrString) {
|
|
57
86
|
// A `Buffer | string` chunk: wrap whichever slot the stream filled at
|
|
58
87
|
// its arm of the (boxed) union.
|
|
59
88
|
const def = host.unionsById.get(p.unionId);
|
|
@@ -70,19 +99,37 @@ export function streamDataAdapter(host, cbT) {
|
|
|
70
99
|
host.declare(`declare void @scr_bytes_release_v(ptr)`);
|
|
71
100
|
host.declare(`declare ptr @scr_str_retain_v(ptr)`);
|
|
72
101
|
host.declare(`declare void @scr_str_release_v(ptr)`);
|
|
73
|
-
|
|
102
|
+
host.declare(`declare void @scr_throw_error_msg(i32, ptr, ${host.sizeType})`);
|
|
103
|
+
const unionMsg = "a 'data' listener declaring a Buffer | string chunk received an object-mode value that is neither (declare the chunk's type)";
|
|
104
|
+
d.push(` %uslot = alloca ptr`, ` %isb = icmp ne ptr %a0, null`, ` br i1 %isb, label %buf, label %str`, `buf:`, ` %rb = call ptr @scr_bytes_retain_v(ptr %a0)`, ` %ub = call ptr @scr_union_new_ref(i32 ${bytesTag}, ptr %rb, ptr @scr_bytes_retain_v, ptr @scr_bytes_release_v, ptr null)`, ` store ptr %ub, ptr %uslot`, ` br label %go`, `str:`,
|
|
105
|
+
// an object-mode value that is neither: the catchable error the
|
|
106
|
+
// one-type adapters throw
|
|
107
|
+
` %nos = icmp eq ptr %a1, null`, ` br i1 %nos, label %bad, label %strok`, `bad:`, ` call void @scr_throw_error_msg(i32 1, ptr ${host.cstr(unionMsg)}, ${host.sizeType} ${Buffer.byteLength(unionMsg, "utf8")})`, ` call void @scr_closure_release(ptr %orig)`, ` ret void`, `strok:`, ` %rs = call ptr @scr_str_retain_v(ptr %a1)`, ` %us = call ptr @scr_union_new_ref(i32 ${strTag}, ptr %rs, ptr @scr_str_retain_v, ptr @scr_str_release_v, ptr null)`, ` store ptr %us, ptr %uslot`, ` br label %go`, `go:`, ` %uv = load ptr, ptr %uslot`);
|
|
74
108
|
finish("%uv");
|
|
75
109
|
d.push(`}`, ``);
|
|
76
110
|
}
|
|
77
111
|
else {
|
|
78
|
-
// dyn: box by runtime tag — the JS lane's
|
|
112
|
+
// dyn: the object-mode value, else box by runtime tag — the JS lane's
|
|
113
|
+
// adapter parameter. Any other type converts from that value.
|
|
79
114
|
host.declare(`declare ptr @scr_dyn_new_buffer(ptr)`);
|
|
80
115
|
host.declare(`declare ptr @scr_dyn_new_str(ptr)`);
|
|
81
|
-
|
|
82
|
-
|
|
116
|
+
host.declare(`declare ptr @scr_dyn_retain_v(ptr)`);
|
|
117
|
+
d.push(` %dslot = alloca ptr`, ` %isv = icmp ne ptr %a2, null`, ` br i1 %isv, label %val, label %chunk`, `val:`, ` %dvv = call ptr @scr_dyn_retain_v(ptr %a2)`, ` store ptr %dvv, ptr %dslot`, ` br label %go`, `chunk:`, ` %isb = icmp ne ptr %a0, null`, ` br i1 %isb, label %buf, label %str`, `buf:`, ` %db = call ptr @scr_dyn_new_buffer(ptr %a0)`, ` store ptr %db, ptr %dslot`, ` br label %go`, `str:`, ` %ds = call ptr @scr_dyn_new_str(ptr %a1)`, ` store ptr %ds, ptr %dslot`, ` br label %go`, `go:`, ` %dv = load ptr, ptr %dslot`);
|
|
118
|
+
if (p.kind === "dyn") {
|
|
119
|
+
finish("%dv");
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
const helper = host.dyn.dynCheckHelper(p, false);
|
|
123
|
+
const ty = host.llType(p);
|
|
124
|
+
host.declare(`declare void @scr_dyn_release(ptr)`);
|
|
125
|
+
host.declare(`declare zeroext i1 @scr_exc_pending()`);
|
|
126
|
+
d.push(` %tv = call ${ty === "i1" ? "zeroext i1" : ty} @${helper}(ptr %dv, ptr null)`, ` call void @scr_dyn_release(ptr %dv)`, ` %pend = call zeroext i1 @scr_exc_pending()`, ` br i1 %pend, label %fail, label %conv`, `fail:`, ` call void @scr_closure_release(ptr %orig)`, ` ret void`, `conv:`);
|
|
127
|
+
finishTyped("%tv", ty);
|
|
128
|
+
}
|
|
83
129
|
d.push(`}`, ``);
|
|
84
130
|
}
|
|
85
131
|
host.resolveThunkDefs.push(...d);
|
|
132
|
+
host.journal?.built();
|
|
86
133
|
return sym;
|
|
87
134
|
}
|
|
88
135
|
export function streamDoneFnFor(host, kind, doneT) {
|
|
@@ -92,6 +139,7 @@ export function streamDoneFnFor(host, kind, doneT) {
|
|
|
92
139
|
return sym;
|
|
93
140
|
sym = `sc_sd_${host.resolveThunks.size}`;
|
|
94
141
|
host.resolveThunks.set(key, sym);
|
|
142
|
+
host.journal?.allocated(sym, "streamDoneFnFor", [kind, doneT]);
|
|
95
143
|
const errT = doneT.params[0];
|
|
96
144
|
let errTag = -1;
|
|
97
145
|
if (errT !== undefined) {
|
|
@@ -105,24 +153,40 @@ export function streamDoneFnFor(host, kind, doneT) {
|
|
|
105
153
|
const dataT = kind === "t" || kind === "l" ? doneT.params[1] : undefined;
|
|
106
154
|
let bytesTag = -1;
|
|
107
155
|
let strTag = -1;
|
|
156
|
+
// data of any type other than a union of Buffer, string, undefined and
|
|
157
|
+
// null (an object-mode Transform's value) completes through the
|
|
158
|
+
// value entry points with the data boxed.
|
|
159
|
+
let valueData = false;
|
|
108
160
|
if (dataT !== undefined) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
161
|
+
const def = dataT.kind === "union" ? host.unionsById.get(dataT.unionId) : undefined;
|
|
162
|
+
valueData =
|
|
163
|
+
def === undefined ||
|
|
164
|
+
!def.arms.every((a) => (a.kind === "bytes" && a.elem === "u8") ||
|
|
165
|
+
a.kind === "string" ||
|
|
166
|
+
a.kind === "undefinedT" ||
|
|
167
|
+
a.kind === "nullT");
|
|
168
|
+
if (!valueData) {
|
|
169
|
+
bytesTag = def.arms.findIndex((a) => a.kind === "bytes");
|
|
170
|
+
strTag = def.arms.findIndex((a) => a.kind === "string");
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
const entry = kind === "c"
|
|
174
|
+
? "scr_stream_construct_done"
|
|
175
|
+
: kind === "w"
|
|
176
|
+
? "scr_stream_write_done"
|
|
177
|
+
: kind === "f"
|
|
178
|
+
? "scr_stream_final_done"
|
|
179
|
+
: kind === "d"
|
|
180
|
+
? "scr_stream_destroy_done"
|
|
181
|
+
: kind === "t"
|
|
182
|
+
? valueData
|
|
183
|
+
? "scr_stream_transform_done_value"
|
|
184
|
+
: "scr_stream_transform_done"
|
|
185
|
+
: valueData
|
|
186
|
+
? "scr_stream_flush_done_value"
|
|
187
|
+
: "scr_stream_flush_done";
|
|
188
|
+
const twoSlot = (kind === "t" || kind === "l") && !valueData;
|
|
189
|
+
host.declare(`declare void @${entry}(ptr, ptr${twoSlot ? ", ptr, ptr" : valueData ? ", ptr" : ""})`);
|
|
126
190
|
host.declare(`declare ptr @scr_box_get_ref(ptr)`);
|
|
127
191
|
host.declare(`declare void @scr_stream_release_v(ptr)`);
|
|
128
192
|
host.declare(`declare ptr @scr_error_retain_v(ptr)`);
|
|
@@ -130,7 +194,7 @@ export function streamDoneFnFor(host, kind, doneT) {
|
|
|
130
194
|
const params = [
|
|
131
195
|
"ptr %self",
|
|
132
196
|
...(errT !== undefined ? ["ptr %e"] : []),
|
|
133
|
-
...(dataT !== undefined ? [
|
|
197
|
+
...(dataT !== undefined ? [`${host.llType(dataT)} %d`] : []),
|
|
134
198
|
];
|
|
135
199
|
const d = [
|
|
136
200
|
`define internal void @${sym}(${params.join(", ")}) ${FN_ATTRS} { ; stream '${kind}' done ${typeKey(doneT)}`,
|
|
@@ -162,7 +226,12 @@ export function streamDoneFnFor(host, kind, doneT) {
|
|
|
162
226
|
unwrap("%d", strTag, "@scr_str_retain_v", "%sslot");
|
|
163
227
|
}
|
|
164
228
|
d.push(` %ev = load ptr, ptr %eslot`);
|
|
165
|
-
if (
|
|
229
|
+
if (valueData) {
|
|
230
|
+
const conv = host.dyn.toDynHelper(dataT);
|
|
231
|
+
host.declare(`declare void @scr_dyn_release(ptr)`);
|
|
232
|
+
d.push(` %dv = call ptr @${conv}(${host.llType(dataT)} %d)`, ` call void @${entry}(ptr %s, ptr %ev, ptr %dv) ; moves err; borrows s and the value`, ` call void @scr_dyn_release(ptr %dv)`);
|
|
233
|
+
}
|
|
234
|
+
else if (twoSlot) {
|
|
166
235
|
d.push(` %bv = load ptr, ptr %bslot`, ` %sv = load ptr, ptr %sslot`, ` call void @${entry}(ptr %s, ptr %ev, ptr %bv, ptr %sv) ; moves err/data; borrows s`);
|
|
167
236
|
}
|
|
168
237
|
else {
|
|
@@ -171,10 +240,11 @@ export function streamDoneFnFor(host, kind, doneT) {
|
|
|
171
240
|
d.push(` call void @scr_stream_release_v(ptr %s)`);
|
|
172
241
|
if (errT !== undefined)
|
|
173
242
|
d.push(` call void ${releaseSym(host.shapeHost, errT)}(ptr %e)`);
|
|
174
|
-
if (dataT !== undefined)
|
|
243
|
+
if (dataT !== undefined && isRefCounted(dataT))
|
|
175
244
|
d.push(` call void ${releaseSym(host.shapeHost, dataT)}(ptr %d)`);
|
|
176
245
|
d.push(` ret void`, `}`, ``);
|
|
177
246
|
host.resolveThunkDefs.push(...d);
|
|
247
|
+
host.journal?.built();
|
|
178
248
|
return sym;
|
|
179
249
|
}
|
|
180
250
|
export function fsRenameThunkFor(host, cbT) {
|
|
@@ -188,6 +258,7 @@ export function fsRenameThunkFor(host, cbT) {
|
|
|
188
258
|
return sym;
|
|
189
259
|
sym = `sc_fsren_${host.resolveThunks.size}`;
|
|
190
260
|
host.resolveThunks.set(key, sym);
|
|
261
|
+
host.journal?.allocated(sym, "fsRenameThunkFor", [cbT]);
|
|
191
262
|
const param = cbT.params[0];
|
|
192
263
|
const d = [
|
|
193
264
|
`define internal void @${sym}(ptr %cb, ptr %err) ${FN_ATTRS} { ; fs.rename callback ${typeKey(cbT)}`,
|
|
@@ -220,6 +291,7 @@ export function fsRenameThunkFor(host, cbT) {
|
|
|
220
291
|
}
|
|
221
292
|
d.push(` br label %go`, `go:`, ` %arg = load ptr, ptr %slot`, ` %fnp = getelementptr inbounds %ScrClosure, ptr %cb, i64 0, i32 1`, ` %fn = load ptr, ptr %fnp`, ` call void %fn(ptr %cb, ptr %arg)`, ` ret void`, `}`, ``);
|
|
222
293
|
host.resolveThunkDefs.push(...d);
|
|
294
|
+
host.journal?.built();
|
|
223
295
|
return sym;
|
|
224
296
|
}
|
|
225
297
|
export function cryptoBytesThunkFor(host, cbT, arrayBuffer = false, valueMode = "buffer") {
|
|
@@ -237,6 +309,7 @@ export function cryptoIntThunkFor(host, cbT) {
|
|
|
237
309
|
return sym;
|
|
238
310
|
sym = `sc_cryptoint_${host.resolveThunks.size}`;
|
|
239
311
|
host.resolveThunks.set(key, sym);
|
|
312
|
+
host.journal?.allocated(sym, "cryptoIntThunkFor", [cbT]);
|
|
240
313
|
const d = [
|
|
241
314
|
`define internal void @${sym}(ptr %cb, double %value) ${FN_ATTRS} { ; randomInt callback ${typeKey(cbT)}`,
|
|
242
315
|
`entry:`,
|
|
@@ -276,6 +349,7 @@ export function cryptoIntThunkFor(host, cbT) {
|
|
|
276
349
|
}
|
|
277
350
|
d.push(` %fnp = getelementptr inbounds %ScrClosure, ptr %cb, i64 0, i32 1`, ` %fn = load ptr, ptr %fnp`, ` call void %fn(${passed.join(", ")})`, ` ret void`, `}`, ``);
|
|
278
351
|
host.resolveThunkDefs.push(...d);
|
|
352
|
+
host.journal?.built();
|
|
279
353
|
return sym;
|
|
280
354
|
}
|
|
281
355
|
export function zlibBytesThunkFor(host, cbT, arrayBuffer = false, family = "zlib", valueMode = "buffer") {
|
|
@@ -288,6 +362,7 @@ export function zlibBytesThunkFor(host, cbT, arrayBuffer = false, family = "zlib
|
|
|
288
362
|
return sym;
|
|
289
363
|
sym = `sc_${family}bytes_${host.resolveThunks.size}`;
|
|
290
364
|
host.resolveThunks.set(key, sym);
|
|
365
|
+
host.journal?.allocated(sym, "zlibBytesThunkFor", [cbT, arrayBuffer, family, valueMode]);
|
|
291
366
|
const d = [
|
|
292
367
|
`define internal void @${sym}(ptr %cb, ptr %err, ptr %value) ${FN_ATTRS} { ; zlib bytes callback ${typeKey(cbT)}`,
|
|
293
368
|
`entry:`,
|
|
@@ -369,6 +444,7 @@ export function zlibBytesThunkFor(host, cbT, arrayBuffer = false, family = "zlib
|
|
|
369
444
|
}
|
|
370
445
|
d.push(` %fnp = getelementptr inbounds %ScrClosure, ptr %cb, i64 0, i32 1`, ` %fn = load ptr, ptr %fnp`, ` call void %fn(${passed.join(", ")})`, ` ret void`, `}`, ``);
|
|
371
446
|
host.resolveThunkDefs.push(...d);
|
|
447
|
+
host.journal?.built();
|
|
372
448
|
return sym;
|
|
373
449
|
}
|
|
374
450
|
export function streamCbThunkFor(host, kind, cbT) {
|
|
@@ -380,20 +456,24 @@ export function streamCbThunkFor(host, kind, cbT) {
|
|
|
380
456
|
return sym;
|
|
381
457
|
sym = `sc_scb_${host.resolveThunks.size}`;
|
|
382
458
|
host.resolveThunks.set(key, sym);
|
|
459
|
+
host.journal?.allocated(sym, "streamCbThunkFor", [kind, cbT]);
|
|
383
460
|
const runtimeParams = kind === "r"
|
|
384
461
|
? ["ptr %s", "double %size"]
|
|
385
462
|
: kind === "w" || kind === "t"
|
|
386
463
|
? ["ptr %s", "ptr %chunk"]
|
|
387
|
-
: kind === "
|
|
388
|
-
? ["ptr %s", "ptr %
|
|
389
|
-
:
|
|
464
|
+
: kind === "v"
|
|
465
|
+
? ["ptr %s", "ptr %chunks"]
|
|
466
|
+
: kind === "d" || kind === "e"
|
|
467
|
+
? ["ptr %s", "ptr %err"]
|
|
468
|
+
: ["ptr %s"];
|
|
390
469
|
const declared = cbT.params;
|
|
391
470
|
const hasThis = declared[0] !== undefined && declared[0].kind === "object";
|
|
392
471
|
if (declared.length === 0) {
|
|
393
472
|
throw new InternalCompilerError("llvm emitter bug: stream option callback with no params (frontend must fence)");
|
|
394
473
|
}
|
|
395
474
|
const off = hasThis ? 1 : 0;
|
|
396
|
-
const full = (kind === "r" ? 1 : kind === "w" || kind === "t" ? 3 : kind === "d" ? 2 : 1) +
|
|
475
|
+
const full = (kind === "r" ? 1 : kind === "w" || kind === "t" ? 3 : kind === "d" || kind === "v" ? 2 : 1) +
|
|
476
|
+
off;
|
|
397
477
|
if (declared.length > full) {
|
|
398
478
|
throw new InternalCompilerError(`llvm emitter bug: stream '${kind}' callback declares ${declared.length} params (frontend must fence)`);
|
|
399
479
|
}
|
|
@@ -433,6 +513,35 @@ export function streamCbThunkFor(host, kind, cbT) {
|
|
|
433
513
|
}
|
|
434
514
|
continue;
|
|
435
515
|
}
|
|
516
|
+
if (kind === "v" && pos === 0) {
|
|
517
|
+
// writev's chunks: the batch array (borrowed from the runtime), as
|
|
518
|
+
// a dyn value or converted to the declared type
|
|
519
|
+
if (p.kind === "dyn") {
|
|
520
|
+
host.declare(`declare ptr @scr_dyn_retain_v(ptr)`);
|
|
521
|
+
d.push(` %vc${i} = call ptr @scr_dyn_retain_v(ptr %chunks)`);
|
|
522
|
+
passed.push(`ptr %vc${i}`);
|
|
523
|
+
}
|
|
524
|
+
else {
|
|
525
|
+
const helper = host.dyn.dynCheckHelper(p, false);
|
|
526
|
+
const ty = host.llType(p);
|
|
527
|
+
host.declare(`declare zeroext i1 @scr_exc_pending()`);
|
|
528
|
+
if (hasThis)
|
|
529
|
+
host.declare(`declare void @scr_stream_release_v(ptr)`);
|
|
530
|
+
// An entry `encoding` declared as a string (the declarations'
|
|
531
|
+
// `encoding: string`) receives "" where Node passes undefined or
|
|
532
|
+
// null (an object-mode write), as a write's encoding parameter does.
|
|
533
|
+
const entry = p.kind === "array" && p.elem.kind === "record"
|
|
534
|
+
? host.recordsById.get(p.elem.shapeId)
|
|
535
|
+
: undefined;
|
|
536
|
+
if (entry?.fields.some((f) => f.name === "encoding" && f.type.kind === "string")) {
|
|
537
|
+
host.declare(`declare void @scr_stream_writev_fill_encodings(ptr)`);
|
|
538
|
+
d.push(` call void @scr_stream_writev_fill_encodings(ptr %chunks)`);
|
|
539
|
+
}
|
|
540
|
+
d.push(` %vt${i} = call ${ty === "i1" ? "zeroext i1" : ty} @${helper}(ptr %chunks, ptr null)`, ` %vtbad${i} = call zeroext i1 @scr_exc_pending()`, ` br i1 %vtbad${i}, label %vtfail${i}, label %vtok${i}`, `vtfail${i}:`, ...(hasThis ? [` call void @scr_stream_release_v(ptr %sr)`] : []), ` ret void`, `vtok${i}:`);
|
|
541
|
+
passed.push(`${ty} %vt${i}`);
|
|
542
|
+
}
|
|
543
|
+
continue;
|
|
544
|
+
}
|
|
436
545
|
const isChunkPos = (kind === "w" || kind === "t") && pos === 0;
|
|
437
546
|
const isEncPos = (kind === "w" || kind === "t") && pos === 1;
|
|
438
547
|
const isErrPos = (kind === "d" || kind === "e") && pos === 0;
|
|
@@ -440,20 +549,20 @@ export function streamCbThunkFor(host, kind, cbT) {
|
|
|
440
549
|
? false
|
|
441
550
|
: kind === "w" || kind === "t"
|
|
442
551
|
? pos === 2
|
|
443
|
-
: kind === "f" || kind === "l"
|
|
552
|
+
: kind === "f" || kind === "l" || kind === "c"
|
|
444
553
|
? pos === 0
|
|
445
554
|
: pos === 1;
|
|
446
555
|
if (p.kind === "dyn") {
|
|
447
556
|
if (isChunkPos) {
|
|
448
|
-
|
|
449
|
-
|
|
557
|
+
// the chunk's value: a Buffer, or an object-mode side's value
|
|
558
|
+
host.declare(`declare ptr @scr_stream_chunk_value(ptr, ptr)`);
|
|
559
|
+
d.push(` %dc${i} = call ptr @scr_stream_chunk_value(ptr %s, ptr %chunk)`);
|
|
450
560
|
passed.push(`ptr %dc${i}`);
|
|
451
561
|
}
|
|
452
562
|
else if (isEncPos) {
|
|
453
|
-
|
|
454
|
-
host.declare(`declare ptr @
|
|
455
|
-
|
|
456
|
-
d.push(` %es${i} = call ptr @scr_str_new(ptr ${host.cstr("buffer")}, ${host.sizeType} 6)`, ` %ed${i} = call ptr @scr_dyn_new_str(ptr %es${i})`, ` call void @scr_str_release(ptr %es${i})`);
|
|
563
|
+
// 'buffer', or the encoding argument an object-mode write passed
|
|
564
|
+
host.declare(`declare ptr @scr_stream_chunk_encoding_value(ptr)`);
|
|
565
|
+
d.push(` %ed${i} = call ptr @scr_stream_chunk_encoding_value(ptr %s)`);
|
|
457
566
|
passed.push(`ptr %ed${i}`);
|
|
458
567
|
}
|
|
459
568
|
else if (isErrPos) {
|
|
@@ -474,7 +583,7 @@ export function streamCbThunkFor(host, kind, cbT) {
|
|
|
474
583
|
passed.push(`ptr %edv${i}`);
|
|
475
584
|
}
|
|
476
585
|
else if (isDonePos) {
|
|
477
|
-
const glue = `scr_stream_done_dyn_${kind}`;
|
|
586
|
+
const glue = `scr_stream_done_dyn_${kind === "v" ? "w" : kind}`;
|
|
478
587
|
host.declare(`declare ptr @${glue}(ptr, ptr, ${host.sizeType})`);
|
|
479
588
|
host.declare(`declare ptr @scr_dyn_new_func(ptr, ptr, i32, ptr, ptr)`);
|
|
480
589
|
const clo = doneClosure(`@${glue}`, `dd${i}`);
|
|
@@ -488,17 +597,50 @@ export function streamCbThunkFor(host, kind, cbT) {
|
|
|
488
597
|
}
|
|
489
598
|
continue;
|
|
490
599
|
}
|
|
491
|
-
if (isChunkPos) {
|
|
492
|
-
|
|
493
|
-
|
|
600
|
+
if (isChunkPos && p.kind === "bytes") {
|
|
601
|
+
// A Buffer, which an object-mode side's value must be (else a
|
|
602
|
+
// TypeError, thrown out of the write).
|
|
603
|
+
host.declare(`declare ptr @scr_stream_chunk_bytes(ptr, ptr)`);
|
|
604
|
+
d.push(` %rc${i} = call ptr @scr_stream_chunk_bytes(ptr %s, ptr %chunk)`, ` %rcbad${i} = icmp eq ptr %rc${i}, null`, ` br i1 %rcbad${i}, label %rcfail${i}, label %rcok${i}`, `rcfail${i}:`, ...(hasThis ? [` call void @scr_stream_release_v(ptr %sr)`] : []), ` ret void`, `rcok${i}:`);
|
|
605
|
+
if (hasThis)
|
|
606
|
+
host.declare(`declare void @scr_stream_release_v(ptr)`);
|
|
494
607
|
passed.push(`ptr %rc${i}`);
|
|
495
608
|
}
|
|
496
|
-
else if (
|
|
497
|
-
//
|
|
498
|
-
|
|
499
|
-
|
|
609
|
+
else if (isChunkPos) {
|
|
610
|
+
// Any other declared type converts from the chunk's value (an
|
|
611
|
+
// object-mode side's value, or the Buffer), or throws out of the
|
|
612
|
+
// write.
|
|
613
|
+
const helper = host.dyn.dynCheckHelper(p, false);
|
|
614
|
+
const ty = host.llType(p);
|
|
615
|
+
host.declare(`declare ptr @scr_stream_chunk_value(ptr, ptr)`);
|
|
616
|
+
host.declare(`declare void @scr_dyn_release(ptr)`);
|
|
617
|
+
host.declare(`declare zeroext i1 @scr_exc_pending()`);
|
|
618
|
+
if (hasThis)
|
|
619
|
+
host.declare(`declare void @scr_stream_release_v(ptr)`);
|
|
620
|
+
d.push(` %cv${i} = call ptr @scr_stream_chunk_value(ptr %s, ptr %chunk)`, ` %ct${i} = call ${ty === "i1" ? "zeroext i1" : ty} @${helper}(ptr %cv${i}, ptr null)`, ` call void @scr_dyn_release(ptr %cv${i})`, ` %ctbad${i} = call zeroext i1 @scr_exc_pending()`, ` br i1 %ctbad${i}, label %ctfail${i}, label %ctok${i}`, `ctfail${i}:`, ...(hasThis ? [` call void @scr_stream_release_v(ptr %sr)`] : []), ` ret void`, `ctok${i}:`);
|
|
621
|
+
passed.push(`${ty} %ct${i}`);
|
|
622
|
+
}
|
|
623
|
+
else if (isEncPos && p.kind === "string") {
|
|
624
|
+
// Node's encoding for decoded (Buffer) chunks is 'buffer'; an
|
|
625
|
+
// object-mode side passes the write's encoding argument ("" for
|
|
626
|
+
// undefined and null).
|
|
627
|
+
host.declare(`declare ptr @scr_stream_chunk_encoding(ptr)`);
|
|
628
|
+
d.push(` %en${i} = call ptr @scr_stream_chunk_encoding(ptr %s)`);
|
|
500
629
|
passed.push(`ptr %en${i}`);
|
|
501
630
|
}
|
|
631
|
+
else if (isEncPos) {
|
|
632
|
+
// Another declared type (string | null | undefined) converts from
|
|
633
|
+
// the encoding argument's value.
|
|
634
|
+
const helper = host.dyn.dynCheckHelper(p, false);
|
|
635
|
+
const ty = host.llType(p);
|
|
636
|
+
host.declare(`declare ptr @scr_stream_chunk_encoding_value(ptr)`);
|
|
637
|
+
host.declare(`declare void @scr_dyn_release(ptr)`);
|
|
638
|
+
host.declare(`declare zeroext i1 @scr_exc_pending()`);
|
|
639
|
+
if (hasThis)
|
|
640
|
+
host.declare(`declare void @scr_stream_release_v(ptr)`);
|
|
641
|
+
d.push(` %ev${i} = call ptr @scr_stream_chunk_encoding_value(ptr %s)`, ` %et${i} = call ${ty === "i1" ? "zeroext i1" : ty} @${helper}(ptr %ev${i}, ptr null)`, ` call void @scr_dyn_release(ptr %ev${i})`, ` %etbad${i} = call zeroext i1 @scr_exc_pending()`, ` br i1 %etbad${i}, label %etfail${i}, label %etok${i}`, `etfail${i}:`, ...(hasThis ? [` call void @scr_stream_release_v(ptr %sr)`] : []), ` ret void`, `etok${i}:`);
|
|
642
|
+
passed.push(`${ty} %et${i}`);
|
|
643
|
+
}
|
|
502
644
|
else if (isErrPos) {
|
|
503
645
|
// destroy's error argument: `Error | null` — wrap type-directedly.
|
|
504
646
|
// The finished/pipeline callback ("e") may declare `Error | null |
|
|
@@ -522,7 +664,8 @@ export function streamCbThunkFor(host, kind, cbT) {
|
|
|
522
664
|
passed.push(`ptr %euv${i}`);
|
|
523
665
|
}
|
|
524
666
|
else if (isDonePos) {
|
|
525
|
-
|
|
667
|
+
// "e" has no done position; writev completes as a write
|
|
668
|
+
const doneKind = (kind === "v" ? "w" : kind);
|
|
526
669
|
if (p.kind !== "func")
|
|
527
670
|
throw new InternalCompilerError("llvm emitter bug: stream done callback not a func");
|
|
528
671
|
const doneFn = host.streamDoneFnFor(doneKind, p);
|
|
@@ -546,6 +689,13 @@ export function streamCbThunkFor(host, kind, cbT) {
|
|
|
546
689
|
}
|
|
547
690
|
d.push(` ret void`, `}`, ``);
|
|
548
691
|
host.resolveThunkDefs.push(...d);
|
|
692
|
+
host.journal?.built();
|
|
549
693
|
return sym;
|
|
550
694
|
}
|
|
695
|
+
registerReplay("streamDataAdapter", (host, args) => streamDataAdapter(host, args[0]));
|
|
696
|
+
registerReplay("streamDoneFnFor", (host, args) => streamDoneFnFor(host, args[0], args[1]));
|
|
697
|
+
registerReplay("fsRenameThunkFor", (host, args) => fsRenameThunkFor(host, args[0]));
|
|
698
|
+
registerReplay("cryptoIntThunkFor", (host, args) => cryptoIntThunkFor(host, args[0]));
|
|
699
|
+
registerReplay("zlibBytesThunkFor", (host, args) => zlibBytesThunkFor(host, args[0], args[1], args[2], args[3]));
|
|
700
|
+
registerReplay("streamCbThunkFor", (host, args) => streamCbThunkFor(host, args[0], args[1]));
|
|
551
701
|
//# sourceMappingURL=expr-stream-callbacks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr-stream-callbacks.js","sourceRoot":"","sources":["../../../src/backend/llvm/expr-stream-callbacks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expr-stream-callbacks.js","sourceRoot":"","sources":["../../../src/backend/llvm/expr-stream-callbacks.ts"],"names":[],"mappings":"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"}
|