@scriptc/compiler 0.2.4 → 0.2.5
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 +915 -215
- package/ambient/scriptc-overrides.d.ts +5 -1
- package/ambient/scriptc.d.ts +22 -2
- package/dist/backend/build-cache.d.ts +4 -0
- package/dist/backend/build-cache.js +16 -2
- package/dist/backend/build-cache.js.map +1 -1
- package/dist/backend/cycle-analysis.js +17 -5
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +50 -11
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/debug-symbols.js.map +1 -1
- package/dist/backend/executable-features.js +2 -1
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/external-c.d.ts +13 -6
- package/dist/backend/external-c.js +15 -3
- package/dist/backend/external-c.js.map +1 -1
- package/dist/backend/ffi-callbacks.js +6 -9
- package/dist/backend/ffi-callbacks.js.map +1 -1
- package/dist/backend/library-identity-markers.js.map +1 -1
- package/dist/backend/library-pack.d.ts +1 -1
- package/dist/backend/library-pack.js +81 -24
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/link-plan-core.js +9 -2
- package/dist/backend/link-plan-core.js.map +1 -1
- package/dist/backend/link-plan.d.ts +1 -1
- package/dist/backend/link-plan.js +4 -5
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/linker.d.ts +1 -1
- package/dist/backend/linker.js +42 -23
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/literals.js +5 -4
- package/dist/backend/literals.js.map +1 -1
- package/dist/backend/literals.test.js +30 -5
- package/dist/backend/literals.test.js.map +1 -1
- package/dist/backend/llvm/blocks.test.js +5 -2
- package/dist/backend/llvm/blocks.test.js.map +1 -1
- package/dist/backend/llvm/borrowed-inputs.js.map +1 -1
- package/dist/backend/llvm/borrowed-receivers.js +43 -19
- package/dist/backend/llvm/borrowed-receivers.js.map +1 -1
- package/dist/backend/llvm/byte-numbers.js +6 -1
- package/dist/backend/llvm/byte-numbers.js.map +1 -1
- package/dist/backend/llvm/bytes-bounds.js +73 -22
- package/dist/backend/llvm/bytes-bounds.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.d.ts +3 -0
- package/dist/backend/llvm/call-lifetimes.js +60 -17
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +159 -28
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/checked-value-lifetimes.d.ts +4 -0
- package/dist/backend/llvm/checked-value-lifetimes.js +14 -4
- package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
- package/dist/backend/llvm/classes.js +16 -12
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.js +4 -1
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/counted-loops.js +10 -3
- package/dist/backend/llvm/counted-loops.js.map +1 -1
- package/dist/backend/llvm/debug-info.js +33 -13
- package/dist/backend/llvm/debug-info.js.map +1 -1
- package/dist/backend/llvm/debug-info.test.js +28 -6
- package/dist/backend/llvm/debug-info.test.js.map +1 -1
- package/dist/backend/llvm/dyn.js +68 -22
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +9 -3
- package/dist/backend/llvm/emitter.js +238 -105
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +233 -42
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +25 -6
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.js +13 -4
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.js +10 -4
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +20 -9
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +2 -0
- package/dist/backend/llvm/expr-containers.js +92 -33
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-control.js +1 -3
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.js +3 -1
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +19 -4
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-island.js +26 -6
- package/dist/backend/llvm/expr-island.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +88 -19
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +43 -1
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +10 -9
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +44 -26
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js +51 -14
- package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.js +34 -14
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/integer-values.js +15 -4
- package/dist/backend/llvm/integer-values.js.map +1 -1
- package/dist/backend/llvm/integer-views.js +23 -7
- package/dist/backend/llvm/integer-views.js.map +1 -1
- package/dist/backend/llvm/integer-views.test.js +42 -7
- package/dist/backend/llvm/integer-views.test.js.map +1 -1
- package/dist/backend/llvm/lib-abi.js +13 -4
- package/dist/backend/llvm/lib-abi.js.map +1 -1
- package/dist/backend/llvm/lib-connect.js +7 -1
- package/dist/backend/llvm/lib-connect.js.map +1 -1
- package/dist/backend/llvm/lib-datagram.js +35 -10
- package/dist/backend/llvm/lib-datagram.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +35 -16
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +33 -18
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.js +60 -15
- package/dist/backend/llvm/lib-http2.js.map +1 -1
- package/dist/backend/llvm/lib-lookup.js +12 -5
- package/dist/backend/llvm/lib-lookup.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +97 -31
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +57 -14
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +107 -31
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +33 -14
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-test.js +21 -7
- package/dist/backend/llvm/lib-test.js.map +1 -1
- package/dist/backend/llvm/lib-tls.js +69 -20
- package/dist/backend/llvm/lib-tls.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.d.ts +1 -0
- package/dist/backend/llvm/local-array-reads.js +96 -30
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +368 -60
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.d.ts +25 -0
- package/dist/backend/llvm/local-union-storage.js +109 -0
- package/dist/backend/llvm/local-union-storage.js.map +1 -0
- package/dist/backend/llvm/local-union-storage.test.d.ts +1 -0
- package/dist/backend/llvm/local-union-storage.test.js +210 -0
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -0
- package/dist/backend/llvm/map-read-lifetimes.d.ts +6 -2
- package/dist/backend/llvm/map-read-lifetimes.js +44 -14
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +89 -17
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/reference-effects.d.ts +3 -2
- package/dist/backend/llvm/reference-effects.js +67 -36
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-effects.test.js +92 -9
- package/dist/backend/llvm/reference-effects.test.js.map +1 -1
- package/dist/backend/llvm/shapes.js +60 -17
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +3 -1
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/split.js +4 -4
- package/dist/backend/llvm/split.js.map +1 -1
- package/dist/backend/llvm/split.test.js +14 -6
- package/dist/backend/llvm/split.test.js.map +1 -1
- package/dist/backend/llvm/stack-unions.js +14 -5
- package/dist/backend/llvm/stack-unions.js.map +1 -1
- package/dist/backend/llvm/stack-unions.test.js +151 -32
- package/dist/backend/llvm/stack-unions.test.js.map +1 -1
- package/dist/backend/llvm/string-construction.js.map +1 -1
- package/dist/backend/llvm/string-construction.test.js +32 -7
- package/dist/backend/llvm/string-construction.test.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.js +14 -8
- package/dist/backend/llvm/string-lifetimes.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +112 -26
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/switch-dispatch.d.ts +9 -0
- package/dist/backend/llvm/switch-dispatch.js +114 -0
- package/dist/backend/llvm/switch-dispatch.js.map +1 -0
- package/dist/backend/llvm/switch-dispatch.test.d.ts +1 -0
- package/dist/backend/llvm/switch-dispatch.test.js +83 -0
- package/dist/backend/llvm/switch-dispatch.test.js.map +1 -0
- package/dist/backend/llvm/unsupported.js.map +1 -1
- package/dist/backend/llvm/walkers.js +6 -3
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/mangle.js +9 -3
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/may-throw.js +18 -8
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +118 -22
- package/dist/backend/may-throw.test.js.map +1 -1
- package/dist/backend/native/artifact-stamps.d.ts +39 -0
- package/dist/backend/native/artifact-stamps.js +371 -0
- package/dist/backend/native/artifact-stamps.js.map +1 -0
- package/dist/backend/native/cache-warm.d.ts +24 -0
- package/dist/backend/native/cache-warm.js +80 -0
- package/dist/backend/native/cache-warm.js.map +1 -0
- package/dist/backend/native/compiler-fingerprint.d.ts +19 -0
- package/dist/backend/native/compiler-fingerprint.js +357 -0
- package/dist/backend/native/compiler-fingerprint.js.map +1 -0
- package/dist/backend/native/contracts.d.ts +314 -0
- package/dist/backend/native/contracts.js +2 -0
- package/dist/backend/native/contracts.js.map +1 -0
- package/dist/backend/native/dependency-files.d.ts +5 -0
- package/dist/backend/native/dependency-files.js +83 -0
- package/dist/backend/native/dependency-files.js.map +1 -0
- package/dist/backend/native/driver.d.ts +50 -0
- package/dist/backend/native/driver.js +294 -0
- package/dist/backend/native/driver.js.map +1 -0
- package/dist/backend/native/executable.d.ts +18 -0
- package/dist/backend/native/executable.js +1267 -0
- package/dist/backend/native/executable.js.map +1 -0
- package/dist/backend/native/library.d.ts +2 -0
- package/dist/backend/native/library.js +614 -0
- package/dist/backend/native/library.js.map +1 -0
- package/dist/backend/native/linker-fingerprint.d.ts +8 -0
- package/dist/backend/native/linker-fingerprint.js +174 -0
- package/dist/backend/native/linker-fingerprint.js.map +1 -0
- package/dist/backend/native/object-merge.d.ts +2 -0
- package/dist/backend/native/object-merge.js +154 -0
- package/dist/backend/native/object-merge.js.map +1 -0
- package/dist/backend/native/process.d.ts +17 -0
- package/dist/backend/native/process.js +42 -0
- package/dist/backend/native/process.js.map +1 -0
- package/dist/backend/native/program-shards.d.ts +21 -0
- package/dist/backend/native/program-shards.js +99 -0
- package/dist/backend/native/program-shards.js.map +1 -0
- package/dist/backend/native/runtime-inputs.d.ts +12 -0
- package/dist/backend/native/runtime-inputs.js +163 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -0
- package/dist/backend/native/runtime-inputs.test.d.ts +1 -0
- package/dist/backend/native/runtime-inputs.test.js +64 -0
- package/dist/backend/native/runtime-inputs.test.js.map +1 -0
- package/dist/backend/native/runtime-objects.d.ts +16 -0
- package/dist/backend/native/runtime-objects.js +122 -0
- package/dist/backend/native/runtime-objects.js.map +1 -0
- package/dist/backend/native/session.d.ts +12 -0
- package/dist/backend/native/session.js +31 -0
- package/dist/backend/native/session.js.map +1 -0
- package/dist/backend/native/tool-identity.d.ts +37 -0
- package/dist/backend/native/tool-identity.js +310 -0
- package/dist/backend/native/tool-identity.js.map +1 -0
- package/dist/backend/native/trace-paths.d.ts +12 -0
- package/dist/backend/native/trace-paths.js +73 -0
- package/dist/backend/native/trace-paths.js.map +1 -0
- package/dist/backend/native/vendor.d.ts +1 -0
- package/dist/backend/native/vendor.js +12 -0
- package/dist/backend/native/vendor.js.map +1 -0
- package/dist/backend/native-codegen-core.js +2 -1
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +1 -1
- package/dist/backend/native-codegen.js +24 -13
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +12 -9
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.js +9 -5
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/native-link-info.js +14 -5
- package/dist/backend/native-link-info.js.map +1 -1
- package/dist/backend/native-link-info.test.js +58 -13
- package/dist/backend/native-link-info.test.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +17 -450
- package/dist/backend/native-toolchain.js +17 -3971
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +103 -72
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/native-tools.js +27 -8
- package/dist/backend/native-tools.js.map +1 -1
- package/dist/backend/object-localize.js +17 -14
- package/dist/backend/object-localize.js.map +1 -1
- package/dist/backend/object-localize.test.js +59 -12
- package/dist/backend/object-localize.test.js.map +1 -1
- package/dist/backend/runtime-pack-core.js +96 -49
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-native.js +5 -3
- package/dist/backend/runtime-pack-native.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +87 -15
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.d.ts +1 -1
- package/dist/backend/runtime-pack.js +11 -12
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +40 -24
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/source-locations.js.map +1 -1
- package/dist/backend/source-locations.test.js +7 -2
- package/dist/backend/source-locations.test.js.map +1 -1
- package/dist/backend/target-diagnostics.js +44 -14
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +93 -20
- package/dist/backend/target-diagnostics.test.js.map +1 -1
- package/dist/backend/targets.js +230 -86
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +32 -18
- package/dist/backend/targets.test.js.map +1 -1
- package/dist/backend/toolchain-environment.js +5 -1
- package/dist/backend/toolchain-environment.js.map +1 -1
- package/dist/backend/vendor-archives.d.ts +2 -2
- package/dist/backend/vendor-archives.js +84 -35
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/backend/vendor-inputs.js +13 -1
- package/dist/backend/vendor-inputs.js.map +1 -1
- package/dist/backend/warm-cache.d.ts +1 -1
- package/dist/backend/warm-cache.js +33 -9
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/cli/command.js +39 -9
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/output-options.js +14 -4
- package/dist/cli/output-options.js.map +1 -1
- package/dist/cli/paths.js.map +1 -1
- package/dist/cli/wasi-runner.js.map +1 -1
- package/dist/compat/fetch-profile.js +36 -35
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/coverage/report.js +16 -17
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +112 -26
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.js +55 -16
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +1 -1
- package/dist/executable/executable-cache.js +78 -48
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +75 -26
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.js +2 -2
- package/dist/executable/prepare.js.map +1 -1
- package/dist/ffi/ffi-manifest.js +78 -20
- package/dist/ffi/ffi-manifest.js.map +1 -1
- package/dist/ffi/ffi-manifest.test.js +96 -16
- package/dist/ffi/ffi-manifest.test.js.map +1 -1
- package/dist/format-integer.js.map +1 -1
- package/dist/frontend/analysis.js +12 -2
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/arguments-usage.js.map +1 -1
- package/dist/frontend/binding-source.js +9 -3
- package/dist/frontend/binding-source.js.map +1 -1
- package/dist/frontend/builtin-modules.js +46 -2
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/cjs-resolve.js +40 -17
- package/dist/frontend/cjs-resolve.js.map +1 -1
- package/dist/frontend/cjs-syntax.js +31 -10
- package/dist/frontend/cjs-syntax.js.map +1 -1
- package/dist/frontend/comptime-node.test.js +10 -11
- package/dist/frontend/comptime-node.test.js.map +1 -1
- package/dist/frontend/dts-paths.js +7 -3
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/fork-target.js +17 -12
- package/dist/frontend/fork-target.js.map +1 -1
- package/dist/frontend/function-completion.js +11 -6
- package/dist/frontend/function-completion.js.map +1 -1
- package/dist/frontend/helper-tokens.js +53 -6
- package/dist/frontend/helper-tokens.js.map +1 -1
- package/dist/frontend/helper-tokens.test.js +18 -2
- package/dist/frontend/helper-tokens.test.js.map +1 -1
- package/dist/frontend/inferred-js-diagnostics.js +32 -12
- package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
- package/dist/frontend/inferred-js-diagnostics.test.js +11 -15
- package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
- package/dist/frontend/input-tracker.js +11 -11
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +4 -1
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lib-contract.js +38 -9
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/literal-values.js.map +1 -1
- package/dist/frontend/literal-values.test.js +28 -8
- package/dist/frontend/literal-values.test.js.map +1 -1
- package/dist/frontend/lowering/abstract-equality.js +53 -10
- package/dist/frontend/lowering/abstract-equality.js.map +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.d.ts +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.js +108 -106
- package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
- package/dist/frontend/lowering/array-values.js +37 -14
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/binding-analysis.d.ts +50 -0
- package/dist/frontend/lowering/binding-analysis.js +376 -0
- package/dist/frontend/lowering/binding-analysis.js.map +1 -0
- package/dist/frontend/lowering/builtin-calls.d.ts +9 -0
- package/dist/frontend/lowering/builtin-calls.js +60 -0
- package/dist/frontend/lowering/builtin-calls.js.map +1 -0
- package/dist/frontend/lowering/builtins/arguments.d.ts +43 -0
- package/dist/frontend/lowering/builtins/arguments.js +247 -0
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -0
- package/dist/frontend/lowering/builtins/async-context.d.ts +52 -0
- package/dist/frontend/lowering/builtins/async-context.js +436 -0
- package/dist/frontend/lowering/builtins/async-context.js.map +1 -0
- package/dist/frontend/lowering/builtins/atomics.d.ts +15 -0
- package/dist/frontend/lowering/builtins/atomics.js +46 -0
- package/dist/frontend/lowering/builtins/atomics.js.map +1 -0
- package/dist/frontend/lowering/builtins/callable-aliases.d.ts +13 -0
- package/dist/frontend/lowering/builtins/callable-aliases.js +87 -0
- package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process-async.d.ts +18 -0
- package/dist/frontend/lowering/builtins/child-process-async.js +245 -0
- package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process-methods.d.ts +21 -0
- package/dist/frontend/lowering/builtins/child-process-methods.js +362 -0
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process-sync.d.ts +4 -0
- package/dist/frontend/lowering/builtins/child-process-sync.js +639 -0
- package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process.d.ts +55 -0
- package/dist/frontend/lowering/builtins/child-process.js +669 -0
- package/dist/frontend/lowering/builtins/child-process.js.map +1 -0
- package/dist/frontend/lowering/builtins/compression.d.ts +7 -0
- package/dist/frontend/lowering/builtins/compression.js +115 -0
- package/dist/frontend/lowering/builtins/compression.js.map +1 -0
- package/dist/frontend/lowering/builtins/console.d.ts +10 -0
- package/dist/frontend/lowering/builtins/console.js +38 -0
- package/dist/frontend/lowering/builtins/console.js.map +1 -0
- package/dist/frontend/lowering/builtins/constants.d.ts +24 -0
- package/dist/frontend/lowering/builtins/constants.js +141 -0
- package/dist/frontend/lowering/builtins/constants.js.map +1 -0
- package/dist/frontend/lowering/builtins/crypto.d.ts +22 -0
- package/dist/frontend/lowering/builtins/crypto.js +517 -0
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -0
- package/dist/frontend/lowering/builtins/dates.d.ts +7 -0
- package/dist/frontend/lowering/builtins/dates.js +101 -0
- package/dist/frontend/lowering/builtins/dates.js.map +1 -0
- package/dist/frontend/lowering/builtins/environment.d.ts +34 -0
- package/dist/frontend/lowering/builtins/environment.js +95 -0
- package/dist/frontend/lowering/builtins/environment.js.map +1 -0
- package/dist/frontend/lowering/builtins/errors.d.ts +14 -0
- package/dist/frontend/lowering/builtins/errors.js +83 -0
- package/dist/frontend/lowering/builtins/errors.js.map +1 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +32 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +678 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -0
- package/dist/frontend/lowering/builtins/filesystem.d.ts +108 -0
- package/dist/frontend/lowering/builtins/filesystem.js +1061 -0
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -0
- package/dist/frontend/lowering/builtins/ipc.d.ts +8 -0
- package/dist/frontend/lowering/builtins/ipc.js +76 -0
- package/dist/frontend/lowering/builtins/ipc.js.map +1 -0
- package/dist/frontend/lowering/builtins/json.d.ts +12 -0
- package/dist/frontend/lowering/builtins/json.js +387 -0
- package/dist/frontend/lowering/builtins/json.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-bindings.d.ts +85 -0
- package/dist/frontend/lowering/builtins/module-bindings.js +346 -0
- package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-calls.d.ts +8 -0
- package/dist/frontend/lowering/builtins/module-calls.js +303 -0
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-resolution.d.ts +38 -0
- package/dist/frontend/lowering/builtins/module-resolution.js +344 -0
- package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -0
- package/dist/frontend/lowering/builtins/numbers.d.ts +15 -0
- package/dist/frontend/lowering/builtins/numbers.js +124 -0
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -0
- package/dist/frontend/lowering/builtins/operating-system.d.ts +13 -0
- package/dist/frontend/lowering/builtins/operating-system.js +148 -0
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -0
- package/dist/frontend/lowering/builtins/performance.d.ts +13 -0
- package/dist/frontend/lowering/builtins/performance.js +100 -0
- package/dist/frontend/lowering/builtins/performance.js.map +1 -0
- package/dist/frontend/lowering/builtins/process.d.ts +50 -0
- package/dist/frontend/lowering/builtins/process.js +1138 -0
- package/dist/frontend/lowering/builtins/process.js.map +1 -0
- package/dist/frontend/lowering/builtins/promises.d.ts +14 -0
- package/dist/frontend/lowering/builtins/promises.js +356 -0
- package/dist/frontend/lowering/builtins/promises.js.map +1 -0
- package/dist/frontend/lowering/builtins/properties.d.ts +11 -0
- package/dist/frontend/lowering/builtins/properties.js +186 -0
- package/dist/frontend/lowering/builtins/properties.js.map +1 -0
- package/dist/frontend/lowering/builtins/querystring.d.ts +19 -0
- package/dist/frontend/lowering/builtins/querystring.js +150 -0
- package/dist/frontend/lowering/builtins/querystring.js.map +1 -0
- package/dist/frontend/lowering/builtins/readline.d.ts +13 -0
- package/dist/frontend/lowering/builtins/readline.js +138 -0
- package/dist/frontend/lowering/builtins/readline.js.map +1 -0
- package/dist/frontend/lowering/builtins/receiver-types.d.ts +5 -0
- package/dist/frontend/lowering/builtins/receiver-types.js +15 -0
- package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -0
- package/dist/frontend/lowering/builtins/reflection.d.ts +13 -0
- package/dist/frontend/lowering/builtins/reflection.js +95 -0
- package/dist/frontend/lowering/builtins/reflection.js.map +1 -0
- package/dist/frontend/lowering/builtins/strings.d.ts +14 -0
- package/dist/frontend/lowering/builtins/strings.js +121 -0
- package/dist/frontend/lowering/builtins/strings.js.map +1 -0
- package/dist/frontend/lowering/builtins/text-codecs.d.ts +29 -0
- package/dist/frontend/lowering/builtins/text-codecs.js +590 -0
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -0
- package/dist/frontend/lowering/builtins/timers.d.ts +22 -0
- package/dist/frontend/lowering/builtins/timers.js +180 -0
- package/dist/frontend/lowering/builtins/timers.js.map +1 -0
- package/dist/frontend/lowering/builtins/url.d.ts +37 -0
- package/dist/frontend/lowering/builtins/url.js +596 -0
- package/dist/frontend/lowering/builtins/url.js.map +1 -0
- package/dist/frontend/lowering/builtins/util-types.d.ts +7 -0
- package/dist/frontend/lowering/builtins/util-types.js +31 -0
- package/dist/frontend/lowering/builtins/util-types.js.map +1 -0
- package/dist/frontend/lowering/call-arguments.d.ts +72 -0
- package/dist/frontend/lowering/call-arguments.js +618 -0
- package/dist/frontend/lowering/call-arguments.js.map +1 -0
- package/dist/frontend/lowering/call-signatures.d.ts +115 -0
- package/dist/frontend/lowering/call-signatures.js +719 -0
- package/dist/frontend/lowering/call-signatures.js.map +1 -0
- package/dist/frontend/lowering/callback-arg.js.map +1 -1
- package/dist/frontend/lowering/checked-iterable-spread.js +53 -10
- package/dist/frontend/lowering/checked-iterable-spread.js.map +1 -1
- package/dist/frontend/lowering/checked-promise-all.js +41 -9
- package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
- package/dist/frontend/lowering/class-callbacks.d.ts +1 -1
- package/dist/frontend/lowering/class-callbacks.js +130 -27
- package/dist/frontend/lowering/class-callbacks.js.map +1 -1
- package/dist/frontend/lowering/class-construction.d.ts +1 -1
- package/dist/frontend/lowering/class-construction.js +247 -50
- package/dist/frontend/lowering/class-construction.js.map +1 -1
- package/dist/frontend/lowering/class-descriptors.js +109 -29
- package/dist/frontend/lowering/class-descriptors.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +6 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.js +2471 -465
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +284 -44
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-instance-constructor.js +17 -5
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
- package/dist/frontend/lowering/class-method-values.js +199 -51
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.js +345 -86
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-runtime-statics.d.ts +1 -1
- package/dist/frontend/lowering/class-runtime-statics.js +80 -17
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
- package/dist/frontend/lowering/class-static-data.js +76 -16
- package/dist/frontend/lowering/class-static-data.js.map +1 -1
- package/dist/frontend/lowering/coercions/builders.d.ts +13 -0
- package/dist/frontend/lowering/coercions/builders.js +77 -0
- package/dist/frontend/lowering/coercions/builders.js.map +1 -0
- package/dist/frontend/lowering/coercions/function-adapters.d.ts +58 -0
- package/dist/frontend/lowering/coercions/function-adapters.js +430 -0
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -0
- package/dist/frontend/lowering/coercions/island.d.ts +37 -0
- package/dist/frontend/lowering/coercions/island.js +350 -0
- package/dist/frontend/lowering/coercions/island.js.map +1 -0
- package/dist/frontend/lowering/coercions/state.d.ts +14 -0
- package/dist/frontend/lowering/coercions/state.js +16 -0
- package/dist/frontend/lowering/coercions/state.js.map +1 -0
- package/dist/frontend/lowering/coercions/structural-plans.d.ts +40 -0
- package/dist/frontend/lowering/coercions/structural-plans.js +447 -0
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -0
- package/dist/frontend/lowering/coercions/structural.d.ts +63 -0
- package/dist/frontend/lowering/coercions/structural.js +616 -0
- package/dist/frontend/lowering/coercions/structural.js.map +1 -0
- package/dist/frontend/lowering/coercions/unions.d.ts +65 -0
- package/dist/frontend/lowering/coercions/unions.js +318 -0
- package/dist/frontend/lowering/coercions/unions.js.map +1 -0
- package/dist/frontend/lowering/collection-ingestion.js +355 -72
- package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +92 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +1646 -0
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -0
- package/dist/frontend/lowering/containers/array-construction.d.ts +42 -0
- package/dist/frontend/lowering/containers/array-construction.js +1044 -0
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -0
- package/dist/frontend/lowering/containers/array-iteration.d.ts +16 -0
- package/dist/frontend/lowering/containers/array-iteration.js +95 -0
- package/dist/frontend/lowering/containers/array-iteration.js.map +1 -0
- package/dist/frontend/lowering/containers/array-methods.d.ts +27 -0
- package/dist/frontend/lowering/containers/array-methods.js +1854 -0
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -0
- package/dist/frontend/lowering/containers/bytes.d.ts +17 -17
- package/dist/frontend/lowering/containers/bytes.js +419 -105
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.d.ts +26 -0
- package/dist/frontend/lowering/containers/callback-arguments.js +179 -0
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -0
- package/dist/frontend/lowering/containers/collection-grouping.d.ts +19 -0
- package/dist/frontend/lowering/containers/collection-grouping.js +297 -0
- package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -0
- package/dist/frontend/lowering/containers/collection-methods.d.ts +57 -0
- package/dist/frontend/lowering/containers/collection-methods.js +1314 -0
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -0
- package/dist/frontend/lowering/containers/dynamic-receivers.d.ts +18 -0
- package/dist/frontend/lowering/containers/dynamic-receivers.js +114 -0
- package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -0
- package/dist/frontend/lowering/containers/for-of.d.ts +60 -0
- package/dist/frontend/lowering/containers/for-of.js +643 -0
- package/dist/frontend/lowering/containers/for-of.js.map +1 -0
- package/dist/frontend/lowering/containers/indexed-objects.d.ts +132 -0
- package/dist/frontend/lowering/containers/indexed-objects.js +1743 -0
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -0
- package/dist/frontend/lowering/containers/iterator-helpers.d.ts +20 -0
- package/dist/frontend/lowering/containers/iterator-helpers.js +809 -0
- package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js +580 -158
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js +213 -63
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
- package/dist/frontend/lowering/crypto-tables.js +263 -64
- package/dist/frontend/lowering/crypto-tables.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.js +172 -68
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.test.js +41 -8
- package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
- package/dist/frontend/lowering/error-methods.js +339 -65
- package/dist/frontend/lowering/error-methods.js.map +1 -1
- package/dist/frontend/lowering/expressions/evaluation-safety.js +3 -2
- package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
- package/dist/frontend/lowering/expressions/global-symbols.js +2 -1
- package/dist/frontend/lowering/expressions/global-symbols.js.map +1 -1
- package/dist/frontend/lowering/expressions/native-proxy.js +11 -5
- package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +67 -13
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +589 -162
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +68 -17
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-field-write.js +45 -18
- package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -1
- package/dist/frontend/lowering/function-context.js +5 -1
- package/dist/frontend/lowering/function-context.js.map +1 -1
- package/dist/frontend/lowering/function-returns.d.ts +67 -0
- package/dist/frontend/lowering/function-returns.js +392 -0
- package/dist/frontend/lowering/function-returns.js.map +1 -0
- package/dist/frontend/lowering/generator-delegation.d.ts +1 -1
- package/dist/frontend/lowering/generator-delegation.js +171 -39
- package/dist/frontend/lowering/generator-delegation.js.map +1 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +1 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +176 -36
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +274 -0
- package/dist/frontend/lowering/generic-functions.js +1727 -0
- package/dist/frontend/lowering/generic-functions.js.map +1 -0
- package/dist/frontend/lowering/import-meta.d.ts +1 -1
- package/dist/frontend/lowering/import-meta.js +37 -14
- package/dist/frontend/lowering/import-meta.js.map +1 -1
- package/dist/frontend/lowering/indexed-comparison.js +6 -2
- package/dist/frontend/lowering/indexed-comparison.js.map +1 -1
- package/dist/frontend/lowering/iterator-consumption.d.ts +9 -0
- package/dist/frontend/lowering/iterator-consumption.js +91 -0
- package/dist/frontend/lowering/iterator-consumption.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.js +40 -17
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lib-boundary.test.js +49 -11
- package/dist/frontend/lowering/lib-boundary.test.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.d.ts +0 -19
- package/dist/frontend/lowering/lower-array-sort.js +331 -566
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +248 -43
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.js +71 -16
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.js +420 -71
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +39 -558
- package/dist/frontend/lowering/lower-calls.js +2593 -5667
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +243 -242
- package/dist/frontend/lowering/lower-classes.js +1701 -724
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +35 -35
- package/dist/frontend/lowering/lower-comptime.js +39 -37
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.js +59 -31
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.js +5 -2
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.js +322 -85
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-expando.js +19 -7
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +194 -194
- package/dist/frontend/lowering/lower-exprs.js +3446 -1154
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.d.ts +23 -0
- package/dist/frontend/lowering/lower-functions.js +449 -0
- package/dist/frontend/lowering/lower-functions.js.map +1 -0
- package/dist/frontend/lowering/lower-generators.js +121 -32
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.js +15 -4
- package/dist/frontend/lowering/lower-global-value.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +479 -89
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +79 -79
- package/dist/frontend/lowering/lower-island.js +365 -273
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-island.test.js +7 -2
- package/dist/frontend/lowering/lower-island.test.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.js +17 -8
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +94 -94
- package/dist/frontend/lowering/lower-modules.js +612 -321
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.test.js +91 -20
- package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.js +25 -8
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-module.js +115 -34
- package/dist/frontend/lowering/lower-node-module.js.map +1 -1
- package/dist/frontend/lowering/lower-server.js +1210 -290
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +148 -148
- package/dist/frontend/lowering/lower-stmts.js +2312 -984
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.test.js +13 -5
- package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +362 -90
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-system-errors.js +30 -8
- package/dist/frontend/lowering/lower-system-errors.js.map +1 -1
- package/dist/frontend/lowering/lower-test.js +40 -13
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.d.ts +31 -0
- package/dist/frontend/lowering/lower-timers.js +336 -0
- package/dist/frontend/lowering/lower-timers.js.map +1 -0
- package/dist/frontend/lowering/lower-url.d.ts +1 -1
- package/dist/frontend/lowering/lower-url.js +46 -13
- package/dist/frontend/lowering/lower-url.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +21 -351
- package/dist/frontend/lowering/lowerer.js +1024 -2704
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +85 -17
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/module-namespace-elements.js +43 -8
- package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.d.ts +21 -1
- package/dist/frontend/lowering/native-ffi.js +487 -18
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/object-enumeration-receiver.js +55 -10
- package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -1
- package/dist/frontend/lowering/object-factory-new.d.ts +1 -1
- package/dist/frontend/lowering/object-factory-new.js +36 -11
- package/dist/frontend/lowering/object-factory-new.js.map +1 -1
- package/dist/frontend/lowering/optional-arguments.js +49 -20
- package/dist/frontend/lowering/optional-arguments.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.js +66 -14
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-locals.js +3 -1
- package/dist/frontend/lowering/runtime-optional-locals.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-locals.test.js.map +1 -1
- package/dist/frontend/lowering/sanitize-class-types.js +4 -1
- package/dist/frontend/lowering/sanitize-class-types.js.map +1 -1
- package/dist/frontend/lowering/sanitize-class-types.test.js +86 -18
- package/dist/frontend/lowering/sanitize-class-types.test.js.map +1 -1
- package/dist/frontend/lowering/static-this.js +13 -6
- package/dist/frontend/lowering/static-this.js.map +1 -1
- package/dist/frontend/lowering/string-index.js +32 -10
- package/dist/frontend/lowering/string-index.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +42 -42
- package/dist/frontend/lowering/surfaces.js +1094 -249
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/symbol-fields.js +40 -15
- package/dist/frontend/lowering/symbol-fields.js.map +1 -1
- package/dist/frontend/lowering/symbol-methods.js.map +1 -1
- package/dist/frontend/lowering/text-decoder-encoding.js +236 -24
- package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -1
- package/dist/frontend/lowering/text-decoder-encoding.test.js +84 -12
- package/dist/frontend/lowering/text-decoder-encoding.test.js.map +1 -1
- package/dist/frontend/lowering/union-narrow.js +59 -16
- package/dist/frontend/lowering/union-narrow.js.map +1 -1
- package/dist/frontend/lowering/union-narrow.test.js +24 -7
- package/dist/frontend/lowering/union-narrow.test.js.map +1 -1
- package/dist/frontend/lowering/union-retag.js +155 -40
- package/dist/frontend/lowering/union-retag.js.map +1 -1
- package/dist/frontend/lowering/union-retag.test.js +131 -33
- package/dist/frontend/lowering/union-retag.test.js.map +1 -1
- package/dist/frontend/lowering/unregistered-class-types.js.map +1 -1
- package/dist/frontend/lowering/unregistered-class-types.test.js +34 -8
- package/dist/frontend/lowering/unregistered-class-types.test.js.map +1 -1
- package/dist/frontend/module-syntax.js +21 -8
- package/dist/frontend/module-syntax.js.map +1 -1
- package/dist/frontend/module-syntax.test.js +37 -13
- package/dist/frontend/module-syntax.test.js.map +1 -1
- package/dist/frontend/npm-fetch-analysis.js +13 -4
- package/dist/frontend/npm-fetch-analysis.js.map +1 -1
- package/dist/frontend/npm-fetch-analysis.test.js +33 -10
- package/dist/frontend/npm-fetch-analysis.test.js.map +1 -1
- package/dist/frontend/npm-fetch-node.js.map +1 -1
- package/dist/frontend/npm-fetch-syntax.js +4 -9
- package/dist/frontend/npm-fetch-syntax.js.map +1 -1
- package/dist/frontend/npm-node.js +3 -1
- package/dist/frontend/npm-node.js.map +1 -1
- package/dist/frontend/npm-static-bundled-cjs.js +88 -29
- package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
- package/dist/frontend/npm-static-bundled-cjs.test.js +29 -10
- package/dist/frontend/npm-static-bundled-cjs.test.js.map +1 -1
- package/dist/frontend/npm-static-declaration-syntax.js +148 -56
- package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
- package/dist/frontend/npm-static-declarations.d.ts +1 -1
- package/dist/frontend/npm-static-declarations.js.map +1 -1
- package/dist/frontend/npm-static-declarations.test.js +33 -7
- package/dist/frontend/npm-static-declarations.test.js.map +1 -1
- package/dist/frontend/npm-static-prune.js +26 -12
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-prune.test.js +17 -3
- package/dist/frontend/npm-static-prune.test.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-host.js +2 -3
- package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-syntax.js +64 -21
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
- package/dist/frontend/npm-static-rewrite.js.map +1 -1
- package/dist/frontend/npm-static-subtyping.js +9 -4
- package/dist/frontend/npm-static-subtyping.js.map +1 -1
- package/dist/frontend/npm-static-subtyping.test.js +30 -6
- package/dist/frontend/npm-static-subtyping.test.js.map +1 -1
- package/dist/frontend/npm-static.js +15 -4
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.js +122 -36
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/npm.test.js +30 -10
- package/dist/frontend/npm.test.js.map +1 -1
- package/dist/frontend/pipeline-native.js.map +1 -1
- package/dist/frontend/pipeline.js +25 -8
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/pipeline.test.js +21 -7
- package/dist/frontend/pipeline.test.js.map +1 -1
- package/dist/frontend/program-node.js +5 -3
- package/dist/frontend/program-node.js.map +1 -1
- package/dist/frontend/program.d.ts +2 -2
- package/dist/frontend/program.js +234 -101
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +27 -27
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/provenance-core.js +8 -4
- package/dist/frontend/provenance-core.js.map +1 -1
- package/dist/frontend/provenance-registry.js +1 -4
- package/dist/frontend/provenance-registry.js.map +1 -1
- package/dist/frontend/resolve.js +32 -20
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/resolve.test.js +1 -1
- package/dist/frontend/resolve.test.js.map +1 -1
- package/dist/frontend/runtime-resolve.js +13 -4
- package/dist/frontend/runtime-resolve.js.map +1 -1
- package/dist/frontend/runtime-resolve.test.js +25 -9
- package/dist/frontend/runtime-resolve.test.js.map +1 -1
- package/dist/frontend/services-node.js +6 -2
- package/dist/frontend/services-node.js.map +1 -1
- package/dist/frontend/services-node.test.js +18 -6
- package/dist/frontend/services-node.test.js.map +1 -1
- package/dist/frontend/services.js +8 -4
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/services.test.js +6 -2
- package/dist/frontend/services.test.js.map +1 -1
- package/dist/frontend/ts7/api.js +12 -4
- package/dist/frontend/ts7/api.js.map +1 -1
- package/dist/frontend/ts7/ast-bytes.js +10 -3
- package/dist/frontend/ts7/ast-bytes.js.map +1 -1
- package/dist/frontend/ts7/ast-bytes.test.js +23 -4
- package/dist/frontend/ts7/ast-bytes.test.js.map +1 -1
- package/dist/frontend/ts7/ast-guards.test.js +14 -5
- package/dist/frontend/ts7/ast-guards.test.js.map +1 -1
- package/dist/frontend/ts7/ast-node.d.ts +6 -1
- package/dist/frontend/ts7/ast-node.js +484 -164
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +109 -36
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/ts7/ast-text.js +13 -3
- package/dist/frontend/ts7/ast-text.js.map +1 -1
- package/dist/frontend/ts7/ast-text.test.js.map +1 -1
- package/dist/frontend/ts7/ast-types.js.map +1 -1
- package/dist/frontend/ts7/ast-wire.d.ts +1 -1
- package/dist/frontend/ts7/ast-wire.js +55 -20
- package/dist/frontend/ts7/ast-wire.js.map +1 -1
- package/dist/frontend/ts7/ast-wire.test.js +53 -8
- package/dist/frontend/ts7/ast-wire.test.js.map +1 -1
- package/dist/frontend/ts7/ast.js +47 -28
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/census-check.js +1 -1
- package/dist/frontend/ts7/census-check.js.map +1 -1
- package/dist/frontend/ts7/checker-cache.js.map +1 -1
- package/dist/frontend/ts7/checker.js +5 -3
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.js +54 -17
- package/dist/frontend/ts7/checker.test.js.map +1 -1
- package/dist/frontend/ts7/enums.test.js +9 -4
- package/dist/frontend/ts7/enums.test.js.map +1 -1
- package/dist/frontend/ts7/native-api.js.map +1 -1
- package/dist/frontend/ts7/native-host.js.map +1 -1
- package/dist/frontend/ts7/native-process.js +9 -3
- package/dist/frontend/ts7/native-process.js.map +1 -1
- package/dist/frontend/ts7/program-adapter.js +1 -1
- package/dist/frontend/ts7/program-adapter.js.map +1 -1
- package/dist/frontend/ts7/program-host.js +7 -4
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/program-host.test.js +43 -11
- package/dist/frontend/ts7/program-host.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-api.js +3 -1
- package/dist/frontend/ts7/rpc-api.js.map +1 -1
- package/dist/frontend/ts7/rpc-client.js +15 -5
- package/dist/frontend/ts7/rpc-client.js.map +1 -1
- package/dist/frontend/ts7/rpc-client.test.js +26 -8
- package/dist/frontend/ts7/rpc-client.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-filesystem.js.map +1 -1
- package/dist/frontend/ts7/rpc-filesystem.test.js +43 -10
- package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-process.js +16 -6
- package/dist/frontend/ts7/rpc-process.js.map +1 -1
- package/dist/frontend/ts7/rpc-process.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-wire.d.ts +1 -0
- package/dist/frontend/ts7/rpc-wire.js +41 -14
- package/dist/frontend/ts7/rpc-wire.js.map +1 -1
- package/dist/frontend/ts7/rpc-wire.test.js +36 -6
- package/dist/frontend/ts7/rpc-wire.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.js +209 -68
- package/dist/frontend/ts7/semantic-checker.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.test.js +29 -14
- package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.js +7 -1
- package/dist/frontend/ts7/semantic-json.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.test.js +17 -3
- package/dist/frontend/ts7/semantic-json.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.js +147 -51
- package/dist/frontend/ts7/semantic-model.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.test.js +72 -19
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-types.d.ts +2 -2
- package/dist/frontend/ts7/session-cache.js +10 -3
- package/dist/frontend/ts7/session-cache.js.map +1 -1
- package/dist/frontend/ts7/session-cache.test.js +13 -4
- package/dist/frontend/ts7/session-cache.test.js.map +1 -1
- package/dist/frontend/ts7/session-path.js +25 -10
- package/dist/frontend/ts7/session-path.js.map +1 -1
- package/dist/frontend/ts7/session-path.test.js +47 -4
- package/dist/frontend/ts7/session-path.test.js.map +1 -1
- package/dist/frontend/ts7/session-timing.js +22 -3
- package/dist/frontend/ts7/session-timing.js.map +1 -1
- package/dist/frontend/ts7/session-timing.test.js +12 -3
- package/dist/frontend/ts7/session-timing.test.js.map +1 -1
- package/dist/frontend/ts7/session.d.ts +1 -0
- package/dist/frontend/ts7/session.js +109 -35
- package/dist/frontend/ts7/session.js.map +1 -1
- package/dist/frontend/ts7/session.test.js +69 -15
- package/dist/frontend/ts7/session.test.js.map +1 -1
- package/dist/frontend/ts7/source-parser.js +17 -6
- package/dist/frontend/ts7/source-parser.js.map +1 -1
- package/dist/frontend/ts7/source-parser.test.js +32 -9
- package/dist/frontend/ts7/source-parser.test.js.map +1 -1
- package/dist/frontend/tsc-codes.js +56 -11
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/tsc-codes.test.d.ts +1 -0
- package/dist/frontend/tsc-codes.test.js +16 -0
- package/dist/frontend/tsc-codes.test.js.map +1 -0
- package/dist/frontend/type-mapper.js +545 -204
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +108 -33
- package/dist/frontend/type-mapper.test.js.map +1 -1
- package/dist/frontend/union-discriminants.js +8 -2
- package/dist/frontend/union-discriminants.js.map +1 -1
- package/dist/frontend/union-discriminants.test.js +77 -20
- package/dist/frontend/union-discriminants.test.js.map +1 -1
- package/dist/index.d.ts +9 -8
- package/dist/index.js +150 -81
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +95 -38
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/analysis.test.js +91 -15
- package/dist/ir/analysis.test.js.map +1 -1
- package/dist/ir/api.d.ts +4 -0
- package/dist/ir/api.js +6 -0
- package/dist/ir/api.js.map +1 -0
- package/dist/ir/build.d.ts +7 -0
- package/dist/ir/build.js +27 -1
- package/dist/ir/build.js.map +1 -1
- package/dist/ir/builtin-effects.d.ts +9 -0
- package/dist/ir/builtin-effects.js +631 -0
- package/dist/ir/builtin-effects.js.map +1 -0
- package/dist/ir/builtin-signatures.d.ts +15 -0
- package/dist/ir/builtin-signatures.js +3396 -0
- package/dist/ir/builtin-signatures.js.map +1 -0
- package/dist/ir/byte-numbers.js +67 -16
- package/dist/ir/byte-numbers.js.map +1 -1
- package/dist/ir/byte-numbers.test.js +17 -4
- package/dist/ir/byte-numbers.test.js.map +1 -1
- package/dist/ir/constant-tables.js +13 -5
- package/dist/ir/constant-tables.js.map +1 -1
- package/dist/ir/constant-tables.test.js +47 -7
- package/dist/ir/constant-tables.test.js.map +1 -1
- package/dist/ir/control-flow.js +2 -1
- package/dist/ir/control-flow.js.map +1 -1
- package/dist/ir/control-flow.test.js +35 -11
- package/dist/ir/control-flow.test.js.map +1 -1
- package/dist/ir/initializer-bindings.d.ts +9 -0
- package/dist/ir/initializer-bindings.js +115 -0
- package/dist/ir/initializer-bindings.js.map +1 -0
- package/dist/ir/initializer-bindings.test.d.ts +1 -0
- package/dist/ir/initializer-bindings.test.js +118 -0
- package/dist/ir/initializer-bindings.test.js.map +1 -0
- package/dist/ir/integer-loop-facts.d.ts +12 -0
- package/dist/ir/integer-loop-facts.js +137 -0
- package/dist/ir/integer-loop-facts.js.map +1 -0
- package/dist/ir/integer-loops.js +85 -30
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +76 -13
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.js +93 -21
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +199 -21
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/intrinsic-signatures.d.ts +20 -0
- package/dist/ir/intrinsic-signatures.js +57 -0
- package/dist/ir/intrinsic-signatures.js.map +1 -0
- package/dist/ir/ir.d.ts +6 -2150
- package/dist/ir/ir.js +160 -1396
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +98 -77
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +221 -0
- package/dist/ir/runtime-features.js +551 -0
- package/dist/ir/runtime-features.js.map +1 -0
- package/dist/ir/runtime-features.test.d.ts +1 -0
- package/dist/ir/runtime-features.test.js +98 -0
- package/dist/ir/runtime-features.test.js.map +1 -0
- package/dist/ir/scalar-records.js +130 -40
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/scalar-records.test.js +146 -27
- package/dist/ir/scalar-records.test.js.map +1 -1
- package/dist/ir/serialize.js +4 -2
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.js +44 -9
- package/dist/ir/serialize.test.js.map +1 -1
- package/dist/ir/traverse.js +156 -43
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/traverse.test.js +99 -24
- package/dist/ir/traverse.test.js.map +1 -1
- package/dist/ir/validate.d.ts +1 -31
- package/dist/ir/validate.js +782 -1889
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +610 -114
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/cache-primitives.js +9 -10
- package/dist/library/cache-primitives.js.map +1 -1
- package/dist/library/cache-reset.test.js +2 -1
- package/dist/library/cache-reset.test.js.map +1 -1
- package/dist/library/compiler-self-identity.js +11 -5
- package/dist/library/compiler-self-identity.js.map +1 -1
- package/dist/library/compiler-self-identity.test.js +10 -3
- package/dist/library/compiler-self-identity.test.js.map +1 -1
- package/dist/library/fence-eval.js +24 -7
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/fence-eval.test.js +31 -7
- package/dist/library/fence-eval.test.js.map +1 -1
- package/dist/library/int-infer.js +199 -59
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js +133 -57
- package/dist/library/int-infer.test.js.map +1 -1
- package/dist/library/ir-policy.d.ts +27 -0
- package/dist/library/ir-policy.js +232 -0
- package/dist/library/ir-policy.js.map +1 -0
- package/dist/library/library-cache.js +40 -17
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +24 -13
- package/dist/library/library-cache.test.js.map +1 -1
- package/dist/library/library-profile.js +68 -13
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/prepare.js +48 -20
- package/dist/library/prepare.js.map +1 -1
- package/dist/library/semantic-source.js +16 -14
- package/dist/library/semantic-source.js.map +1 -1
- package/dist/library/semantic-source.test.js +9 -14
- package/dist/library/semantic-source.test.js.map +1 -1
- package/dist/library/sidecar-validate.js +53 -12
- package/dist/library/sidecar-validate.js.map +1 -1
- package/dist/library/sidecar.js +85 -24
- package/dist/library/sidecar.js.map +1 -1
- package/dist/library/trap-teaching.js +11 -2
- package/dist/library/trap-teaching.js.map +1 -1
- package/dist/native/cache.js +10 -4
- package/dist/native/cache.js.map +1 -1
- package/dist/native/cli.js +34 -9
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.js +167 -43
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/compiler.test.js +129 -32
- package/dist/native/compiler.test.js.map +1 -1
- package/dist/native/comptime.js +23 -7
- package/dist/native/comptime.js.map +1 -1
- package/dist/native/comptime.test.js +26 -6
- package/dist/native/comptime.test.js.map +1 -1
- package/dist/native/executable-cache.js +77 -27
- package/dist/native/executable-cache.js.map +1 -1
- package/dist/native/executable-cache.test.js +41 -6
- package/dist/native/executable-cache.test.js.map +1 -1
- package/dist/native/file-identity.js +9 -2
- package/dist/native/file-identity.js.map +1 -1
- package/dist/native/file-identity.test.js.map +1 -1
- package/dist/native/library.js +50 -12
- package/dist/native/library.js.map +1 -1
- package/dist/native/prepare.js +119 -34
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/prepare.test.js +22 -6
- package/dist/native/prepare.test.js.map +1 -1
- package/dist/native/runtime-typescript.js +24 -11
- package/dist/native/runtime-typescript.js.map +1 -1
- package/dist/native/runtime-typescript.test.js.map +1 -1
- package/dist/native/sanitizer.js +71 -18
- package/dist/native/sanitizer.js.map +1 -1
- package/dist/native/sanitizer.test.js +77 -20
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/native/task.js.map +1 -1
- package/dist/native/task.test.js +7 -2
- package/dist/native/task.test.js.map +1 -1
- package/dist/native/toolchain.js +68 -26
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +59 -20
- package/dist/native/toolchain.test.js.map +1 -1
- package/dist/startup-cache.d.ts +1 -1
- package/dist/startup-cache.js +1 -1
- package/dist/startup-cache.js.map +1 -1
- package/dist/timing.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +0 -601
- package/dist/frontend/lowering/lower-builtins.js +0 -8986
- package/dist/frontend/lowering/lower-builtins.js.map +0 -1
- package/dist/frontend/lowering/lower-containers.d.ts +0 -382
- package/dist/frontend/lowering/lower-containers.js +0 -7344
- package/dist/frontend/lowering/lower-containers.js.map +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { nodeThrowExpr, boolLit, numLit, strLit } from "../../ir/build.js";
|
|
1
2
|
import { InternalCompilerError } from "../../errors.js";
|
|
2
3
|
/* The node:stream lowering (the spoke-module pattern, like
|
|
3
4
|
* lower-event-emitter.ts): construction of the five runtime stream classes
|
|
@@ -28,14 +29,13 @@ import { InternalCompilerError } from "../../errors.js";
|
|
|
28
29
|
* compiler-emitted invoke adapters. A callback may declare any PREFIX of
|
|
29
30
|
* its Node signature (the emitter listener rule). */
|
|
30
31
|
import * as ts from "../ts7/adapter.js";
|
|
31
|
-
import { dynFallbackType
|
|
32
|
+
import { dynFallbackType } from "./lowerer.js";
|
|
32
33
|
import { isJsSourceFile, locOf } from "../program.js";
|
|
33
34
|
import { newFnCtx, own } from "./lowerer.js";
|
|
34
|
-
import { appendImplicitUndefinedReturn } from "./
|
|
35
|
+
import { appendImplicitUndefinedReturn } from "./function-returns.js";
|
|
35
36
|
import { bufEncoding, knownBufEncoding } from "./containers/bytes.js";
|
|
36
37
|
import { tryLowerExpression } from "./expressions/try-lower-expression.js";
|
|
37
|
-
import { BOOL, DYN, F64, RUNTIME_STREAM_CLASSES, STRING, VOID, arrayOf, BYTES_U8, canBoxFuncIntoDyn, funcOf, typeEquals, typeKey } from "../../ir/ir.js";
|
|
38
|
-
import { boolLit, numLit, strLit } from "../../ir/build.js";
|
|
38
|
+
import { BOOL, DYN, F64, RUNTIME_STREAM_CLASSES, STRING, VOID, arrayOf, BYTES_U8, canBoxFuncIntoDyn, funcOf, typeEquals, typeKey, } from "../../ir/ir.js";
|
|
39
39
|
const BYTES = BYTES_U8;
|
|
40
40
|
/** The stream sides of a receiver class: the nearest stream-class
|
|
41
41
|
* ancestor's, or null off the stream hierarchy. */
|
|
@@ -49,8 +49,20 @@ export function streamSidesOf(lowerer, info) {
|
|
|
49
49
|
/** The instance members the stream spoke owns on stream-rooted
|
|
50
50
|
* receivers (the emitter members ride the base chain as usual). */
|
|
51
51
|
export const STREAM_API_MEMBERS = new Set([
|
|
52
|
-
"push",
|
|
53
|
-
"
|
|
52
|
+
"push",
|
|
53
|
+
"unshift",
|
|
54
|
+
"read",
|
|
55
|
+
"pause",
|
|
56
|
+
"resume",
|
|
57
|
+
"isPaused",
|
|
58
|
+
"setEncoding",
|
|
59
|
+
"pipe",
|
|
60
|
+
"unpipe",
|
|
61
|
+
"destroy",
|
|
62
|
+
"write",
|
|
63
|
+
"end",
|
|
64
|
+
"cork",
|
|
65
|
+
"uncork",
|
|
54
66
|
"setDefaultEncoding",
|
|
55
67
|
]);
|
|
56
68
|
/** The property names the stream spoke owns (lowerStreamProperty) — a
|
|
@@ -58,11 +70,24 @@ export const STREAM_API_MEMBERS = new Set([
|
|
|
58
70
|
* against the runtime state, so collection fences them (the
|
|
59
71
|
* EMITTER_API_MEMBERS precedent). */
|
|
60
72
|
export const STREAM_PROP_MEMBERS = new Set([
|
|
61
|
-
"readable",
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
73
|
+
"readable",
|
|
74
|
+
"readableEnded",
|
|
75
|
+
"readableFlowing",
|
|
76
|
+
"readableLength",
|
|
77
|
+
"readableHighWaterMark",
|
|
78
|
+
"readableObjectMode",
|
|
79
|
+
"writable",
|
|
80
|
+
"writableEnded",
|
|
81
|
+
"writableFinished",
|
|
82
|
+
"writableNeedDrain",
|
|
83
|
+
"writableLength",
|
|
84
|
+
"writableHighWaterMark",
|
|
85
|
+
"writableCorked",
|
|
86
|
+
"writableObjectMode",
|
|
87
|
+
"destroyed",
|
|
88
|
+
"closed",
|
|
89
|
+
"errored",
|
|
90
|
+
"allowHalfOpen",
|
|
66
91
|
]);
|
|
67
92
|
/** The underscore methods each runtime base consumes at construction
|
|
68
93
|
* (option-callback name → method name). A stream subclass declaring an
|
|
@@ -98,8 +123,17 @@ export function streamCtorShape(cls) {
|
|
|
98
123
|
/** Names emitted internally by stream runtimes. A computed EventEmitter
|
|
99
124
|
* name must not match one, even through an EventEmitter-typed stream upcast. */
|
|
100
125
|
export const STREAM_FORCED_EVENT_NAMES = new Set([
|
|
101
|
-
"data",
|
|
102
|
-
"
|
|
126
|
+
"data",
|
|
127
|
+
"end",
|
|
128
|
+
"close",
|
|
129
|
+
"readable",
|
|
130
|
+
"pause",
|
|
131
|
+
"resume",
|
|
132
|
+
"drain",
|
|
133
|
+
"prefinish",
|
|
134
|
+
"finish",
|
|
135
|
+
"pipe",
|
|
136
|
+
"unpipe",
|
|
103
137
|
]);
|
|
104
138
|
/** The per-base FORCED event tuples (runtime-emitted payloads): consulted
|
|
105
139
|
* by the emitter spoke BEFORE the program-global table, so a stream's
|
|
@@ -191,7 +225,13 @@ function lowerStreamCallback(lowerer, which, node, thisType, fullTuple) {
|
|
|
191
225
|
}
|
|
192
226
|
else {
|
|
193
227
|
const value = lowerer.lowerExpr(bodyExpr);
|
|
194
|
-
body = [
|
|
228
|
+
body = [
|
|
229
|
+
{
|
|
230
|
+
kind: "return",
|
|
231
|
+
value: lowerer.coerceInto(bodyExpr, value, funcType.ret),
|
|
232
|
+
loc: locOf(node.body),
|
|
233
|
+
},
|
|
234
|
+
];
|
|
195
235
|
}
|
|
196
236
|
}
|
|
197
237
|
else {
|
|
@@ -276,10 +316,10 @@ function propMutatedSymbols(lowerer) {
|
|
|
276
316
|
continue;
|
|
277
317
|
const walk = (node) => {
|
|
278
318
|
ts.forEachChild(node, walk);
|
|
279
|
-
if (ts.isBinaryExpression(node)
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
319
|
+
if (ts.isBinaryExpression(node) &&
|
|
320
|
+
node.operatorToken.kind >= ts.SyntaxKind.FirstAssignment &&
|
|
321
|
+
node.operatorToken.kind <= ts.SyntaxKind.LastAssignment &&
|
|
322
|
+
(ts.isPropertyAccessExpression(node.left) || ts.isElementAccessExpression(node.left))) {
|
|
283
323
|
noteBase(node.left);
|
|
284
324
|
}
|
|
285
325
|
else if (ts.isDeleteExpression(node)) {
|
|
@@ -635,10 +675,23 @@ function streamCtorArgs(lowerer, cls, arg, thisType, loc, fallbackCb) {
|
|
|
635
675
|
const shape = streamCtorShape(cls);
|
|
636
676
|
const o = parseStreamOptions(lowerer, cls.slice(1), arg, thisType, shape.accepted, loc, fallbackCb);
|
|
637
677
|
const head = shape.duplexShape
|
|
638
|
-
? [
|
|
639
|
-
|
|
678
|
+
? [
|
|
679
|
+
o.hwmR,
|
|
680
|
+
o.hwmW,
|
|
681
|
+
o.autoDestroy,
|
|
682
|
+
o.emitClose,
|
|
683
|
+
o.allowHalfOpen,
|
|
684
|
+
boolLit(o.readableSide, loc),
|
|
685
|
+
boolLit(o.writableSide, loc),
|
|
686
|
+
numLit(o.flags, loc),
|
|
687
|
+
]
|
|
640
688
|
: [cls === "%Writable" ? o.hwmW : o.hwmR, o.autoDestroy, o.emitClose, numLit(o.flags, loc)];
|
|
641
|
-
return {
|
|
689
|
+
return {
|
|
690
|
+
args: [...head, ...o.cbs],
|
|
691
|
+
encoding: o.encoding,
|
|
692
|
+
badEncoding: o.badEncoding,
|
|
693
|
+
pushEncoding: o.pushEncoding,
|
|
694
|
+
};
|
|
642
695
|
}
|
|
643
696
|
/** `new Readable(opts?)` and friends — called from lowerNew once the
|
|
644
697
|
* callee resolved to a builtin stream class. */
|
|
@@ -655,7 +708,13 @@ export function lowerStreamNew(lowerer, expr, info) {
|
|
|
655
708
|
if (args[0] !== undefined) {
|
|
656
709
|
const dynOpts = dynOptionsValue(lowerer, args[0]);
|
|
657
710
|
if (dynOpts !== null) {
|
|
658
|
-
return {
|
|
711
|
+
return {
|
|
712
|
+
kind: "libCall",
|
|
713
|
+
fn: `${streamCtorShape(cls).fn}.newDyn`,
|
|
714
|
+
args: [dynOpts],
|
|
715
|
+
type: thisType,
|
|
716
|
+
loc,
|
|
717
|
+
};
|
|
659
718
|
}
|
|
660
719
|
}
|
|
661
720
|
const fn = `${streamCtorShape(cls).fn}.new`;
|
|
@@ -669,13 +728,25 @@ export function lowerStreamNew(lowerer, expr, info) {
|
|
|
669
728
|
if (parsed.pushEncoding !== null) {
|
|
670
729
|
// { defaultEncoding }: chain the push-side decode default (the
|
|
671
730
|
// setEncoding chaining shape — answers the receiver +1).
|
|
672
|
-
built = {
|
|
731
|
+
built = {
|
|
732
|
+
kind: "libCall",
|
|
733
|
+
fn: "readable.pushEncoding",
|
|
734
|
+
args: [built, strLit(parsed.pushEncoding, loc)],
|
|
735
|
+
type: thisType,
|
|
736
|
+
loc,
|
|
737
|
+
};
|
|
673
738
|
}
|
|
674
739
|
if (parsed.encoding === null)
|
|
675
740
|
return built;
|
|
676
741
|
// { encoding }: chain a setEncoding over the fresh stream (the operand
|
|
677
742
|
// temp releases with the frame; setEncoding answers the receiver +1).
|
|
678
|
-
return {
|
|
743
|
+
return {
|
|
744
|
+
kind: "libCall",
|
|
745
|
+
fn: "readable.setEncoding",
|
|
746
|
+
args: [built, strLit(parsed.encoding, loc)],
|
|
747
|
+
type: thisType,
|
|
748
|
+
loc,
|
|
749
|
+
};
|
|
679
750
|
}
|
|
680
751
|
/* ── user subclasses (`extends Readable`, the underscore-override form) ── */
|
|
681
752
|
/** The wrapper closure binding one overridden underscore method as the
|
|
@@ -748,7 +819,14 @@ function streamMethodWrapper(lowerer, info, which, methodName, thisType, loc, bl
|
|
|
748
819
|
let call;
|
|
749
820
|
if (lowerer.overrideBelow(info, methodName)) {
|
|
750
821
|
lowerer.noteVirtualEdge(info, methodName);
|
|
751
|
-
call = {
|
|
822
|
+
call = {
|
|
823
|
+
kind: "virtualCall",
|
|
824
|
+
className: info.def.name,
|
|
825
|
+
method: methodName,
|
|
826
|
+
args: [thisRef, ...argRefs],
|
|
827
|
+
type: ret,
|
|
828
|
+
loc,
|
|
829
|
+
};
|
|
752
830
|
}
|
|
753
831
|
else {
|
|
754
832
|
lowerer.noteEdge(`%${found.declarer.def.name}.${methodName}`);
|
|
@@ -795,7 +873,9 @@ export function lowerStreamSuperCall(lowerer, info, base, argNodes, thisLocal, l
|
|
|
795
873
|
const shape = streamCtorShape(cls);
|
|
796
874
|
const fallback = (name) => {
|
|
797
875
|
const methodName = UNDERSCORE_METHODS.get(name);
|
|
798
|
-
return methodName
|
|
876
|
+
return methodName
|
|
877
|
+
? streamMethodWrapper(lowerer, info, name, methodName, thisType, loc, blame)
|
|
878
|
+
: null;
|
|
799
879
|
};
|
|
800
880
|
const thisRef = () => ({ kind: "varRef", localId: thisLocal.id, type: thisType, loc });
|
|
801
881
|
if (argNodes[0] !== undefined) {
|
|
@@ -813,7 +893,8 @@ export function lowerStreamSuperCall(lowerer, info, base, argNodes, thisLocal, l
|
|
|
813
893
|
cbs.push(cb);
|
|
814
894
|
}
|
|
815
895
|
}
|
|
816
|
-
return [
|
|
896
|
+
return [
|
|
897
|
+
{
|
|
817
898
|
kind: "exprStmt",
|
|
818
899
|
expr: {
|
|
819
900
|
kind: "libCall",
|
|
@@ -823,35 +904,58 @@ export function lowerStreamSuperCall(lowerer, info, base, argNodes, thisLocal, l
|
|
|
823
904
|
loc,
|
|
824
905
|
},
|
|
825
906
|
loc,
|
|
826
|
-
}
|
|
907
|
+
},
|
|
908
|
+
];
|
|
827
909
|
}
|
|
828
910
|
}
|
|
829
911
|
const parsed = streamCtorArgs(lowerer, cls, argNodes[0], thisType, loc, fallback);
|
|
830
912
|
if (parsed.badEncoding !== null) {
|
|
831
913
|
// super(options) with an unknown literal encoding: the state ctor
|
|
832
914
|
// rejects before any initialization, Node's ladder.
|
|
833
|
-
return [
|
|
915
|
+
return [
|
|
916
|
+
{
|
|
834
917
|
kind: "exprStmt",
|
|
835
918
|
expr: nodeThrowExpr(1, "ERR_UNKNOWN_ENCODING", `Unknown encoding: ${parsed.badEncoding}`, VOID, loc),
|
|
836
919
|
loc,
|
|
837
|
-
}
|
|
920
|
+
},
|
|
921
|
+
];
|
|
838
922
|
}
|
|
839
|
-
const out = [
|
|
923
|
+
const out = [
|
|
924
|
+
{
|
|
840
925
|
kind: "exprStmt",
|
|
841
|
-
expr: {
|
|
926
|
+
expr: {
|
|
927
|
+
kind: "libCall",
|
|
928
|
+
fn: `${shape.fn}.init`,
|
|
929
|
+
args: [thisRef(), ...parsed.args],
|
|
930
|
+
type: VOID,
|
|
931
|
+
loc,
|
|
932
|
+
},
|
|
842
933
|
loc,
|
|
843
|
-
}
|
|
934
|
+
},
|
|
935
|
+
];
|
|
844
936
|
if (parsed.pushEncoding !== null) {
|
|
845
937
|
out.push({
|
|
846
938
|
kind: "exprStmt",
|
|
847
|
-
expr: {
|
|
939
|
+
expr: {
|
|
940
|
+
kind: "libCall",
|
|
941
|
+
fn: "readable.pushEncoding",
|
|
942
|
+
args: [thisRef(), strLit(parsed.pushEncoding, loc)],
|
|
943
|
+
type: thisType,
|
|
944
|
+
loc,
|
|
945
|
+
},
|
|
848
946
|
loc,
|
|
849
947
|
});
|
|
850
948
|
}
|
|
851
949
|
if (parsed.encoding !== null) {
|
|
852
950
|
out.push({
|
|
853
951
|
kind: "exprStmt",
|
|
854
|
-
expr: {
|
|
952
|
+
expr: {
|
|
953
|
+
kind: "libCall",
|
|
954
|
+
fn: "readable.setEncoding",
|
|
955
|
+
args: [thisRef(), strLit(parsed.encoding, loc)],
|
|
956
|
+
type: thisType,
|
|
957
|
+
loc,
|
|
958
|
+
},
|
|
855
959
|
loc,
|
|
856
960
|
});
|
|
857
961
|
}
|
|
@@ -957,11 +1061,13 @@ export function lowerStreamStaticCall(lowerer, call, access) {
|
|
|
957
1061
|
if (ts.isIdentifier(access.expression)) {
|
|
958
1062
|
symbol = lowerer.resolveValueSymbol(access.expression);
|
|
959
1063
|
}
|
|
960
|
-
else if (ts.isPropertyAccessExpression(access.expression) &&
|
|
1064
|
+
else if (ts.isPropertyAccessExpression(access.expression) &&
|
|
1065
|
+
ts.isIdentifier(access.expression.name)) {
|
|
961
1066
|
const memberSym = lowerer.checker.getSymbolAtLocation(access.expression.name);
|
|
962
|
-
symbol =
|
|
963
|
-
|
|
964
|
-
|
|
1067
|
+
symbol =
|
|
1068
|
+
memberSym && memberSym.flags & ts.SymbolFlags.Alias
|
|
1069
|
+
? lowerer.checker.getAliasedSymbol(memberSym)
|
|
1070
|
+
: memberSym;
|
|
965
1071
|
}
|
|
966
1072
|
if (!symbol)
|
|
967
1073
|
return null;
|
|
@@ -974,8 +1080,11 @@ export function lowerStreamStaticCall(lowerer, call, access) {
|
|
|
974
1080
|
// Readable.toWeb's type-option ladder (JS sources): a provably-invalid
|
|
975
1081
|
// `type` throws Node's ERR_INVALID_ARG_VALUE before any web stream
|
|
976
1082
|
// exists; valid shapes keep the fence — the web bridge has no lowering.
|
|
977
|
-
if (member === "toWeb" &&
|
|
978
|
-
|
|
1083
|
+
if (member === "toWeb" &&
|
|
1084
|
+
cls === "%Readable" &&
|
|
1085
|
+
call.arguments.length === 2 &&
|
|
1086
|
+
isJsSourceFile(call.getSourceFile()) &&
|
|
1087
|
+
ts.isObjectLiteralExpression(call.arguments[1])) {
|
|
979
1088
|
for (const p of call.arguments[1].properties) {
|
|
980
1089
|
if (ts.isPropertyAssignment(p) && ts.isIdentifier(p.name) && p.name.text === "type") {
|
|
981
1090
|
const t = lowerer.typeOf(p.initializer);
|
|
@@ -998,17 +1107,30 @@ export function lowerStreamStaticCall(lowerer, call, access) {
|
|
|
998
1107
|
}
|
|
999
1108
|
const srcT = lowerer.mapTypeOf(lowerer.typeOf(args[0]));
|
|
1000
1109
|
const type = { kind: "object", className: "%Readable" };
|
|
1001
|
-
if (srcT?.kind === "array" &&
|
|
1110
|
+
if (srcT?.kind === "array" &&
|
|
1111
|
+
(srcT.elem.kind === "string" || (srcT.elem.kind === "bytes" && srcT.elem.elem === "u8"))) {
|
|
1002
1112
|
const arr = lowerer.lowerExpr(args[0]);
|
|
1003
1113
|
const strings = srcT.elem.kind === "string";
|
|
1004
|
-
return {
|
|
1114
|
+
return {
|
|
1115
|
+
kind: "libCall",
|
|
1116
|
+
fn: "readable.fromArr",
|
|
1117
|
+
args: [arr, boolLit(strings, loc)],
|
|
1118
|
+
type,
|
|
1119
|
+
loc,
|
|
1120
|
+
};
|
|
1005
1121
|
}
|
|
1006
1122
|
if (srcT?.kind === "string" || (srcT?.kind === "bytes" && srcT.elem === "u8")) {
|
|
1007
1123
|
// Node special-cases a single string/Buffer: ONE whole chunk.
|
|
1008
1124
|
const v = lowerer.lowerExpr(args[0]);
|
|
1009
1125
|
const strings = srcT.kind === "string";
|
|
1010
1126
|
const arr = { kind: "arrayLit", elems: [v], type: arrayOf(v.type), loc };
|
|
1011
|
-
return {
|
|
1127
|
+
return {
|
|
1128
|
+
kind: "libCall",
|
|
1129
|
+
fn: "readable.fromArr",
|
|
1130
|
+
args: [arr, boolLit(strings, loc)],
|
|
1131
|
+
type,
|
|
1132
|
+
loc,
|
|
1133
|
+
};
|
|
1012
1134
|
}
|
|
1013
1135
|
lowerer.noLowering(`Readable.from over a '${srcT ? lowerer.fmt(srcT) : "?"}' source`, args[0], "string[] / Buffer[] arrays (and a single string or Buffer) are the supported sources — generators and async iterables have no lowering yet");
|
|
1014
1136
|
}
|
|
@@ -1071,13 +1193,20 @@ function lowerStreamArg(lowerer, node, what) {
|
|
|
1071
1193
|
// they take the pointed fence below, never a throw.
|
|
1072
1194
|
const pairish = v.type.kind === "record" &&
|
|
1073
1195
|
(lowerer.shapes.get(v.type.shapeId)?.fields ?? []).some((f) => f.name === "readable" || f.name === "writable");
|
|
1074
|
-
if ((v.type.kind === "record" && !pairish) ||
|
|
1075
|
-
v.type.kind === "
|
|
1196
|
+
if ((v.type.kind === "record" && !pairish) ||
|
|
1197
|
+
v.type.kind === "f64" ||
|
|
1198
|
+
v.type.kind === "bool" ||
|
|
1199
|
+
v.type.kind === "nullT") {
|
|
1076
1200
|
argTypeThrow("body", PIPELINE_STAGE_EXPECTED);
|
|
1077
1201
|
}
|
|
1078
1202
|
}
|
|
1079
|
-
else if ((ts.isObjectLiteralExpression(node) && node.properties.length === 0) ||
|
|
1080
|
-
v.type.kind === "
|
|
1203
|
+
else if ((ts.isObjectLiteralExpression(node) && node.properties.length === 0) ||
|
|
1204
|
+
v.type.kind === "record" ||
|
|
1205
|
+
v.type.kind === "string" ||
|
|
1206
|
+
v.type.kind === "f64" ||
|
|
1207
|
+
v.type.kind === "bool" ||
|
|
1208
|
+
v.type.kind === "array" ||
|
|
1209
|
+
v.type.kind === "nullT") {
|
|
1081
1210
|
argTypeThrow("stream", "an instance of ReadableStream, WritableStream, or Stream");
|
|
1082
1211
|
}
|
|
1083
1212
|
}
|
|
@@ -1116,8 +1245,10 @@ function lowerEosCallback(lowerer, which, node, thisType) {
|
|
|
1116
1245
|
const p0 = funcType.params[0];
|
|
1117
1246
|
if (p0?.kind === "union") {
|
|
1118
1247
|
const def = lowerer.unions.get(p0.unionId);
|
|
1119
|
-
if (def &&
|
|
1120
|
-
def.arms.
|
|
1248
|
+
if (def &&
|
|
1249
|
+
def.arms.some((a) => a.kind === "object" && a.className === "%Error") &&
|
|
1250
|
+
def.arms.every((a) => a.kind === "nullT" ||
|
|
1251
|
+
a.kind === "undefinedT" ||
|
|
1121
1252
|
(a.kind === "object" && a.className === "%Error"))) {
|
|
1122
1253
|
tuple = [p0];
|
|
1123
1254
|
}
|
|
@@ -1166,7 +1297,9 @@ export function lowerStreamModuleCall(lowerer, call, bi, loc) {
|
|
|
1166
1297
|
// through the promise instead). The options argument has no lowering.
|
|
1167
1298
|
if (bi.member === "finished") {
|
|
1168
1299
|
if (args.length !== 1) {
|
|
1169
|
-
lowerer.noLowering(`stream/promises.finished with ${args.length} arguments`, call, args.length === 2
|
|
1300
|
+
lowerer.noLowering(`stream/promises.finished with ${args.length} arguments`, call, args.length === 2
|
|
1301
|
+
? "the options argument has no lowering yet — the one-argument form is supported"
|
|
1302
|
+
: "the supported form is finished(stream)");
|
|
1170
1303
|
}
|
|
1171
1304
|
let recv;
|
|
1172
1305
|
try {
|
|
@@ -1177,7 +1310,13 @@ export function lowerStreamModuleCall(lowerer, call, bi, loc) {
|
|
|
1177
1310
|
return e.expr;
|
|
1178
1311
|
throw e;
|
|
1179
1312
|
}
|
|
1180
|
-
return {
|
|
1313
|
+
return {
|
|
1314
|
+
kind: "libCall",
|
|
1315
|
+
fn: "sp.finished",
|
|
1316
|
+
args: [recv],
|
|
1317
|
+
type: { kind: "promise", inner: VOID },
|
|
1318
|
+
loc,
|
|
1319
|
+
};
|
|
1181
1320
|
}
|
|
1182
1321
|
// pipeline(...streams) → the callback pipeline's chaining/destroyer
|
|
1183
1322
|
// semantics with the settlement on a promise. Stream stages only
|
|
@@ -1228,7 +1367,9 @@ export function lowerStreamModuleCall(lowerer, call, bi, loc) {
|
|
|
1228
1367
|
// provable case takes the named fence instead.
|
|
1229
1368
|
const argV = lowerer.lowerExpr(args[0]);
|
|
1230
1369
|
const argInfo = argV.type.kind === "object" ? lowerer.classes.get(argV.type.className) : undefined;
|
|
1231
|
-
if (argV.type.kind !== "dyn" &&
|
|
1370
|
+
if (argV.type.kind !== "dyn" &&
|
|
1371
|
+
argV.type.kind !== "jsval" &&
|
|
1372
|
+
!streamSidesOf(lowerer, argInfo)) {
|
|
1232
1373
|
lowerer.noLowering(`stream/consumers.${bi.member} over a value that is not a stream`, call, "Node rejects the promise with 'stream is not async iterable' — pass a readable stream");
|
|
1233
1374
|
}
|
|
1234
1375
|
const recv = argV;
|
|
@@ -1260,7 +1401,9 @@ export function lowerStreamModuleCall(lowerer, call, bi, loc) {
|
|
|
1260
1401
|
}
|
|
1261
1402
|
if (bi.member === "finished") {
|
|
1262
1403
|
if (args.length !== 2) {
|
|
1263
|
-
lowerer.noLowering(`finished with ${args.length} arguments`, call, args.length === 3
|
|
1404
|
+
lowerer.noLowering(`finished with ${args.length} arguments`, call, args.length === 3
|
|
1405
|
+
? "the options argument has no lowering yet — the two-argument form is supported"
|
|
1406
|
+
: "the supported form is finished(stream, callback)");
|
|
1264
1407
|
}
|
|
1265
1408
|
let recv;
|
|
1266
1409
|
try {
|
|
@@ -1355,7 +1498,8 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1355
1498
|
}
|
|
1356
1499
|
if (t?.kind === "union") {
|
|
1357
1500
|
const def = lowerer.unions.get(t.unionId);
|
|
1358
|
-
if (def &&
|
|
1501
|
+
if (def &&
|
|
1502
|
+
def.arms.every((a) => (a.kind === "bytes" && a.elem === "u8") || a.kind === "string" || a.kind === "nullT")) {
|
|
1359
1503
|
return "union";
|
|
1360
1504
|
}
|
|
1361
1505
|
}
|
|
@@ -1378,7 +1522,7 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1378
1522
|
if (member === "push" || member === "unshift") {
|
|
1379
1523
|
requireSide(readableSide, member);
|
|
1380
1524
|
if (args.length === 0 || args.length > 2) {
|
|
1381
|
-
lowerer.noLowering(`${member} with ${args.length} arguments`, call,
|
|
1525
|
+
lowerer.noLowering(`${member} with ${args.length} arguments`, call, 'the supported forms are (chunk) and (chunk, "utf8")');
|
|
1382
1526
|
}
|
|
1383
1527
|
// push(chunk, enc) with a LITERAL encoding: the per-call decode
|
|
1384
1528
|
// (Buffer.from(chunk, enc)) — an explicit encoding (utf8 included)
|
|
@@ -1427,15 +1571,33 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1427
1571
|
return { kind: "libCall", fn: "readable.push", args: [receiver, chunk], type: BOOL, loc };
|
|
1428
1572
|
}
|
|
1429
1573
|
if (chunk.type.kind === "string") {
|
|
1430
|
-
return {
|
|
1574
|
+
return {
|
|
1575
|
+
kind: "libCall",
|
|
1576
|
+
fn: "readable.pushStr",
|
|
1577
|
+
args: [receiver, chunk],
|
|
1578
|
+
type: BOOL,
|
|
1579
|
+
loc,
|
|
1580
|
+
};
|
|
1431
1581
|
}
|
|
1432
1582
|
return { kind: "libCall", fn: "readable.pushNull", args: [receiver], type: BOOL, loc };
|
|
1433
1583
|
}
|
|
1434
|
-
const chunk = kind === "bytes"
|
|
1584
|
+
const chunk = kind === "bytes"
|
|
1585
|
+
? lowerer.lowerExprExpecting(args[0], BYTES)
|
|
1586
|
+
: lowerer.lowerExprExpecting(args[0], STRING);
|
|
1435
1587
|
const fn = member === "push"
|
|
1436
|
-
?
|
|
1437
|
-
|
|
1438
|
-
|
|
1588
|
+
? kind === "bytes"
|
|
1589
|
+
? "readable.push"
|
|
1590
|
+
: "readable.pushStr"
|
|
1591
|
+
: kind === "bytes"
|
|
1592
|
+
? "readable.unshift"
|
|
1593
|
+
: "readable.unshiftStr";
|
|
1594
|
+
return {
|
|
1595
|
+
kind: "libCall",
|
|
1596
|
+
fn,
|
|
1597
|
+
args: [receiver, chunk],
|
|
1598
|
+
type: member === "push" ? BOOL : VOID,
|
|
1599
|
+
loc,
|
|
1600
|
+
};
|
|
1439
1601
|
}
|
|
1440
1602
|
if (member === "read") {
|
|
1441
1603
|
requireSide(readableSide, "read");
|
|
@@ -1444,7 +1606,13 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1444
1606
|
const receiver = lowerer.lowerExpr(access.expression);
|
|
1445
1607
|
const size = args[0] ? lowerer.lowerExprExpecting(args[0], F64) : numLit(-1, loc);
|
|
1446
1608
|
const type = unionOf(lowerer, [BYTES, { kind: "nullT" }]);
|
|
1447
|
-
const read = {
|
|
1609
|
+
const read = {
|
|
1610
|
+
kind: "libCall",
|
|
1611
|
+
fn: "readable.read",
|
|
1612
|
+
args: [receiver, size],
|
|
1613
|
+
type,
|
|
1614
|
+
loc,
|
|
1615
|
+
};
|
|
1448
1616
|
return lowerer.maybeNarrow(read, call);
|
|
1449
1617
|
}
|
|
1450
1618
|
if (member === "pause" || member === "resume") {
|
|
@@ -1452,7 +1620,13 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1452
1620
|
if (args.length !== 0)
|
|
1453
1621
|
lowerer.noLowering(`${member} with arguments`, call);
|
|
1454
1622
|
const receiver = lowerer.lowerExpr(access.expression);
|
|
1455
|
-
return {
|
|
1623
|
+
return {
|
|
1624
|
+
kind: "libCall",
|
|
1625
|
+
fn: member === "pause" ? "readable.pause" : "readable.resume",
|
|
1626
|
+
args: [receiver],
|
|
1627
|
+
type: receiver.type,
|
|
1628
|
+
loc,
|
|
1629
|
+
};
|
|
1456
1630
|
}
|
|
1457
1631
|
if (member === "isPaused") {
|
|
1458
1632
|
requireSide(readableSide, "isPaused");
|
|
@@ -1478,14 +1652,22 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1478
1652
|
lowerer.noLowering("pipe with a non-literal options argument", args[1], "{ end: <bool> } inline is the supported form");
|
|
1479
1653
|
}
|
|
1480
1654
|
for (const prop of args[1].properties) {
|
|
1481
|
-
if (!ts.isPropertyAssignment(prop) ||
|
|
1655
|
+
if (!ts.isPropertyAssignment(prop) ||
|
|
1656
|
+
!ts.isIdentifier(prop.name) ||
|
|
1657
|
+
prop.name.text !== "end") {
|
|
1482
1658
|
lowerer.noLowering("a pipe option other than 'end'", prop);
|
|
1483
1659
|
}
|
|
1484
1660
|
end = lowerer.lowerExprExpecting(prop.initializer, BOOL);
|
|
1485
1661
|
}
|
|
1486
1662
|
}
|
|
1487
1663
|
const receiver = lowerer.lowerExpr(access.expression);
|
|
1488
|
-
return {
|
|
1664
|
+
return {
|
|
1665
|
+
kind: "libCall",
|
|
1666
|
+
fn: "readable.pipe",
|
|
1667
|
+
args: [receiver, dst, end],
|
|
1668
|
+
type: dst.type,
|
|
1669
|
+
loc,
|
|
1670
|
+
};
|
|
1489
1671
|
}
|
|
1490
1672
|
if (member === "unpipe") {
|
|
1491
1673
|
requireSide(readableSide, "unpipe");
|
|
@@ -1499,7 +1681,13 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1499
1681
|
if (dstSides !== "w" && dstSides !== "rw") {
|
|
1500
1682
|
lowerer.noLowering(`unpipe of a '${lowerer.fmt(dst.type)}'`, args[0]);
|
|
1501
1683
|
}
|
|
1502
|
-
return {
|
|
1684
|
+
return {
|
|
1685
|
+
kind: "libCall",
|
|
1686
|
+
fn: "readable.unpipe",
|
|
1687
|
+
args: [receiver, dst],
|
|
1688
|
+
type: receiver.type,
|
|
1689
|
+
loc,
|
|
1690
|
+
};
|
|
1503
1691
|
}
|
|
1504
1692
|
return { kind: "libCall", fn: "readable.unpipe", args: [receiver], type: receiver.type, loc };
|
|
1505
1693
|
}
|
|
@@ -1521,7 +1709,13 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1521
1709
|
if (!rootsAtError(err.type)) {
|
|
1522
1710
|
lowerer.noLowering(`destroy with a '${lowerer.fmt(err.type)}' argument`, args[0], "the supported argument is an Error-hierarchy instance");
|
|
1523
1711
|
}
|
|
1524
|
-
return {
|
|
1712
|
+
return {
|
|
1713
|
+
kind: "libCall",
|
|
1714
|
+
fn: "stream.destroyErr",
|
|
1715
|
+
args: [receiver, lowerer.upcastTo(err, "%Error")],
|
|
1716
|
+
type: receiver.type,
|
|
1717
|
+
loc,
|
|
1718
|
+
};
|
|
1525
1719
|
}
|
|
1526
1720
|
return { kind: "libCall", fn: "stream.destroy", args: [receiver], type: receiver.type, loc };
|
|
1527
1721
|
}
|
|
@@ -1549,8 +1743,11 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1549
1743
|
lowerer.noLowering("write with a union chunk and more arguments", call);
|
|
1550
1744
|
const receiver = lowerer.lowerExpr(access.expression);
|
|
1551
1745
|
const chunk = lowerer.lowerExpr(args[0]);
|
|
1552
|
-
const fn = chunk.type.kind === "union"
|
|
1553
|
-
|
|
1746
|
+
const fn = chunk.type.kind === "union"
|
|
1747
|
+
? "writable.writeU"
|
|
1748
|
+
: chunk.type.kind === "string"
|
|
1749
|
+
? "writable.writeStr"
|
|
1750
|
+
: "writable.write";
|
|
1554
1751
|
if (chunk.type.kind === "nullT")
|
|
1555
1752
|
lowerer.noLowering("write(null)", call, "end() finishes a writable");
|
|
1556
1753
|
return { kind: "libCall", fn, args: [receiver, chunk], type: BOOL, loc };
|
|
@@ -1570,7 +1767,9 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1570
1767
|
cbArg = args[2];
|
|
1571
1768
|
}
|
|
1572
1769
|
const receiver = lowerer.lowerExpr(access.expression);
|
|
1573
|
-
const chunk = kind === "bytes"
|
|
1770
|
+
const chunk = kind === "bytes"
|
|
1771
|
+
? lowerer.lowerExprExpecting(args[0], BYTES)
|
|
1772
|
+
: lowerer.lowerExprExpecting(args[0], STRING);
|
|
1574
1773
|
const fn = kind === "bytes" ? "writable.write" : "writable.writeStr";
|
|
1575
1774
|
if (cbArg !== undefined) {
|
|
1576
1775
|
const cb = lowerer.lowerExprExpecting(cbArg, funcOf([], VOID));
|
|
@@ -1616,8 +1815,10 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1616
1815
|
if (kind === "null" || kind === "union")
|
|
1617
1816
|
lowerer.noLowering("end(null)", call);
|
|
1618
1817
|
flags |= kind === "bytes" ? 1 : kind === "dyn" ? 8 : 2;
|
|
1619
|
-
tail.push(kind === "bytes"
|
|
1620
|
-
|
|
1818
|
+
tail.push(kind === "bytes"
|
|
1819
|
+
? lowerer.lowerExprExpecting(chunkNode, BYTES)
|
|
1820
|
+
: kind === "dyn"
|
|
1821
|
+
? lowerer.lowerExprExpecting(chunkNode, DYN)
|
|
1621
1822
|
: lowerer.lowerExprExpecting(chunkNode, STRING));
|
|
1622
1823
|
}
|
|
1623
1824
|
if (cbArg !== undefined) {
|
|
@@ -1628,14 +1829,26 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1628
1829
|
flags |= 4;
|
|
1629
1830
|
tail.push(cb);
|
|
1630
1831
|
}
|
|
1631
|
-
return {
|
|
1832
|
+
return {
|
|
1833
|
+
kind: "libCall",
|
|
1834
|
+
fn: "writable.end",
|
|
1835
|
+
args: [receiver, numLit(flags, loc), ...tail],
|
|
1836
|
+
type: receiver.type,
|
|
1837
|
+
loc,
|
|
1838
|
+
};
|
|
1632
1839
|
}
|
|
1633
1840
|
if (member === "cork" || member === "uncork") {
|
|
1634
1841
|
requireSide(writableSide, member);
|
|
1635
1842
|
if (args.length !== 0)
|
|
1636
1843
|
lowerer.noLowering(`${member} with arguments`, call);
|
|
1637
1844
|
const receiver = lowerer.lowerExpr(access.expression);
|
|
1638
|
-
return {
|
|
1845
|
+
return {
|
|
1846
|
+
kind: "libCall",
|
|
1847
|
+
fn: member === "cork" ? "writable.cork" : "writable.uncork",
|
|
1848
|
+
args: [receiver],
|
|
1849
|
+
type: VOID,
|
|
1850
|
+
loc,
|
|
1851
|
+
};
|
|
1639
1852
|
}
|
|
1640
1853
|
if (member === "setEncoding") {
|
|
1641
1854
|
requireSide(readableSide, "setEncoding");
|
|
@@ -1644,7 +1857,13 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1644
1857
|
}
|
|
1645
1858
|
const enc = bufEncoding(lowerer, "setEncoding", args[0]);
|
|
1646
1859
|
const receiver = lowerer.lowerExpr(access.expression);
|
|
1647
|
-
return {
|
|
1860
|
+
return {
|
|
1861
|
+
kind: "libCall",
|
|
1862
|
+
fn: "readable.setEncoding",
|
|
1863
|
+
args: [receiver, strLit(enc, loc)],
|
|
1864
|
+
type: receiver.type,
|
|
1865
|
+
loc,
|
|
1866
|
+
};
|
|
1648
1867
|
}
|
|
1649
1868
|
if (member === "setDefaultEncoding") {
|
|
1650
1869
|
// The write-side default: utf8 IS the default — admit it; other
|
|
@@ -1668,17 +1887,37 @@ export function lowerStreamMethodCall(lowerer, call, access, info) {
|
|
|
1668
1887
|
* the per-side errored slots collapse onto the shared fields here
|
|
1669
1888
|
* (SEMANTICS.md). */
|
|
1670
1889
|
const RS_BOOL_PROPS = new Set([
|
|
1671
|
-
"ended",
|
|
1672
|
-
"
|
|
1673
|
-
"
|
|
1890
|
+
"ended",
|
|
1891
|
+
"endEmitted",
|
|
1892
|
+
"destroyed",
|
|
1893
|
+
"errorEmitted",
|
|
1894
|
+
"emittedReadable",
|
|
1895
|
+
"needReadable",
|
|
1896
|
+
"reading",
|
|
1897
|
+
"readableListening",
|
|
1898
|
+
"resumeScheduled",
|
|
1899
|
+
"objectMode",
|
|
1900
|
+
"constructed",
|
|
1901
|
+
"closed",
|
|
1674
1902
|
]);
|
|
1675
1903
|
const RS_NUM_PROPS = new Set(["length", "highWaterMark"]);
|
|
1676
1904
|
const WS_BOOL_PROPS = new Set([
|
|
1677
|
-
"ended",
|
|
1678
|
-
"
|
|
1905
|
+
"ended",
|
|
1906
|
+
"ending",
|
|
1907
|
+
"finished",
|
|
1908
|
+
"destroyed",
|
|
1909
|
+
"errorEmitted",
|
|
1910
|
+
"needDrain",
|
|
1911
|
+
"objectMode",
|
|
1912
|
+
"constructed",
|
|
1913
|
+
"closed",
|
|
1914
|
+
"prefinished",
|
|
1679
1915
|
]);
|
|
1680
1916
|
const WS_NUM_PROPS = new Set([
|
|
1681
|
-
"length",
|
|
1917
|
+
"length",
|
|
1918
|
+
"highWaterMark",
|
|
1919
|
+
"corked",
|
|
1920
|
+
"bufferedRequestCount",
|
|
1682
1921
|
]);
|
|
1683
1922
|
export function lowerStreamStateProperty(lowerer, expr) {
|
|
1684
1923
|
if (expr.questionDotToken)
|
|
@@ -1716,7 +1955,10 @@ export function lowerStreamStateProperty(lowerer, expr) {
|
|
|
1716
1955
|
return lowerer.maybeNarrow(read, expr);
|
|
1717
1956
|
}
|
|
1718
1957
|
if (name === "errored") {
|
|
1719
|
-
const type = unionOf(lowerer, [
|
|
1958
|
+
const type = unionOf(lowerer, [
|
|
1959
|
+
{ kind: "object", className: "%Error" },
|
|
1960
|
+
{ kind: "nullT" },
|
|
1961
|
+
]);
|
|
1720
1962
|
const read = { kind: "libCall", fn: "stream.errored", args: [receiver()], type, loc };
|
|
1721
1963
|
return lowerer.maybeNarrow(read, expr);
|
|
1722
1964
|
}
|
|
@@ -1735,10 +1977,22 @@ export function lowerStreamStateProperty(lowerer, expr) {
|
|
|
1735
1977
|
}
|
|
1736
1978
|
/* ── the property surface ─────────────────────────────────────────────── */
|
|
1737
1979
|
const READABLE_BOOL_PROPS = new Set(["readable", "readableEnded"]);
|
|
1738
|
-
const WRITABLE_BOOL_PROPS = new Set([
|
|
1980
|
+
const WRITABLE_BOOL_PROPS = new Set([
|
|
1981
|
+
"writable",
|
|
1982
|
+
"writableEnded",
|
|
1983
|
+
"writableFinished",
|
|
1984
|
+
"writableNeedDrain",
|
|
1985
|
+
]);
|
|
1739
1986
|
const SHARED_BOOL_PROPS = new Set(["destroyed", "closed"]);
|
|
1740
|
-
const READABLE_NUM_PROPS = new Set([
|
|
1741
|
-
|
|
1987
|
+
const READABLE_NUM_PROPS = new Set([
|
|
1988
|
+
"readableLength",
|
|
1989
|
+
"readableHighWaterMark",
|
|
1990
|
+
]);
|
|
1991
|
+
const WRITABLE_NUM_PROPS = new Set([
|
|
1992
|
+
"writableLength",
|
|
1993
|
+
"writableHighWaterMark",
|
|
1994
|
+
"writableCorked",
|
|
1995
|
+
]);
|
|
1742
1996
|
/** Property reads on stream-rooted receivers (`r.readableEnded`,
|
|
1743
1997
|
* `w.destroyed`, ...). Null for names this spoke does not own. */
|
|
1744
1998
|
export function lowerStreamProperty(lowerer, expr, info) {
|
|
@@ -1756,20 +2010,38 @@ export function lowerStreamProperty(lowerer, expr, info) {
|
|
|
1756
2010
|
type,
|
|
1757
2011
|
loc,
|
|
1758
2012
|
});
|
|
1759
|
-
if ((readableSide && READABLE_BOOL_PROPS.has(name)) ||
|
|
2013
|
+
if ((readableSide && READABLE_BOOL_PROPS.has(name)) ||
|
|
2014
|
+
(writableSide && WRITABLE_BOOL_PROPS.has(name)) ||
|
|
2015
|
+
SHARED_BOOL_PROPS.has(name)) {
|
|
1760
2016
|
return propCall(BOOL);
|
|
1761
2017
|
}
|
|
1762
|
-
if ((readableSide && READABLE_NUM_PROPS.has(name)) ||
|
|
2018
|
+
if ((readableSide && READABLE_NUM_PROPS.has(name)) ||
|
|
2019
|
+
(writableSide && WRITABLE_NUM_PROPS.has(name))) {
|
|
1763
2020
|
return propCall(F64);
|
|
1764
2021
|
}
|
|
1765
2022
|
if (name === "readableFlowing" && readableSide) {
|
|
1766
2023
|
const type = unionOf(lowerer, [BOOL, { kind: "nullT" }]);
|
|
1767
|
-
const read = {
|
|
2024
|
+
const read = {
|
|
2025
|
+
kind: "libCall",
|
|
2026
|
+
fn: "readable.flowing",
|
|
2027
|
+
args: [lowerer.lowerExpr(expr.expression)],
|
|
2028
|
+
type,
|
|
2029
|
+
loc,
|
|
2030
|
+
};
|
|
1768
2031
|
return lowerer.maybeNarrow(read, expr);
|
|
1769
2032
|
}
|
|
1770
2033
|
if (name === "errored") {
|
|
1771
|
-
const type = unionOf(lowerer, [
|
|
1772
|
-
|
|
2034
|
+
const type = unionOf(lowerer, [
|
|
2035
|
+
{ kind: "object", className: "%Error" },
|
|
2036
|
+
{ kind: "nullT" },
|
|
2037
|
+
]);
|
|
2038
|
+
const read = {
|
|
2039
|
+
kind: "libCall",
|
|
2040
|
+
fn: "stream.errored",
|
|
2041
|
+
args: [lowerer.lowerExpr(expr.expression)],
|
|
2042
|
+
type,
|
|
2043
|
+
loc,
|
|
2044
|
+
};
|
|
1773
2045
|
return lowerer.maybeNarrow(read, expr);
|
|
1774
2046
|
}
|
|
1775
2047
|
if (name === "readableObjectMode" && readableSide) {
|