@scriptc/compiler 0.3.5 → 0.4.0
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 +960 -82
- package/ambient/scriptc.d.ts +134 -0
- package/dist/backend/cycle-analysis.d.ts +1 -1
- package/dist/backend/cycle-analysis.js +1 -0
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +13 -1
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/cycle-mutability.js +16 -5
- package/dist/backend/cycle-mutability.js.map +1 -1
- package/dist/backend/executable-features.js +13 -0
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/immutability.test.js +1 -1
- package/dist/backend/library-pack.js +6 -0
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +41 -4
- package/dist/backend/llvm/alloc.js +138 -7
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/alloc.test.js +30 -1
- package/dist/backend/llvm/alloc.test.js.map +1 -1
- package/dist/backend/llvm/appended-array-literals.test.js +1 -1
- package/dist/backend/llvm/array-search.test.js +1 -1
- package/dist/backend/llvm/blocks.d.ts +8 -0
- package/dist/backend/llvm/blocks.js +43 -1
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/blocks.test.js +22 -1
- package/dist/backend/llvm/blocks.test.js.map +1 -1
- package/dist/backend/llvm/byte-numbers.js +15 -5
- package/dist/backend/llvm/byte-numbers.js.map +1 -1
- package/dist/backend/llvm/bytes-alias.d.ts +14 -0
- package/dist/backend/llvm/bytes-alias.js +20 -0
- package/dist/backend/llvm/bytes-alias.js.map +1 -0
- package/dist/backend/llvm/bytes-loop-versions.d.ts +86 -0
- package/dist/backend/llvm/bytes-loop-versions.js +506 -0
- package/dist/backend/llvm/bytes-loop-versions.js.map +1 -0
- package/dist/backend/llvm/bytes-loop-versions.test.d.ts +1 -0
- package/dist/backend/llvm/bytes-loop-versions.test.js +244 -0
- package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.js +50 -1
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +34 -0
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/checked-narrows.test.js +1 -1
- package/dist/backend/llvm/checked-value-lifetimes.js +4 -1
- package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +11 -0
- package/dist/backend/llvm/classes.js +71 -14
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +58 -8
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.js +1 -0
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.d.ts +5 -1
- package/dist/backend/llvm/constant-callbacks.js +55 -12
- package/dist/backend/llvm/constant-callbacks.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.test.js +88 -1
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
- package/dist/backend/llvm/counted-loops.d.ts +4 -0
- package/dist/backend/llvm/counted-loops.js +37 -0
- package/dist/backend/llvm/counted-loops.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.d.ts +12 -3
- package/dist/backend/llvm/dense-array-access.js +72 -14
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.test.js +59 -3
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
- package/dist/backend/llvm/dense-array-loops.d.ts +51 -0
- package/dist/backend/llvm/dense-array-loops.js +162 -0
- package/dist/backend/llvm/dense-array-loops.js.map +1 -0
- package/dist/backend/llvm/dense-array-loops.test.d.ts +1 -0
- package/dist/backend/llvm/dense-array-loops.test.js +128 -0
- package/dist/backend/llvm/dense-array-loops.test.js.map +1 -0
- package/dist/backend/llvm/dyn-handle-tags.test.d.ts +1 -0
- package/dist/backend/llvm/dyn-handle-tags.test.js +38 -0
- package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +28 -4
- package/dist/backend/llvm/dyn.js +324 -179
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emit-function.d.ts +64 -0
- package/dist/backend/llvm/emit-function.js +1190 -0
- package/dist/backend/llvm/emit-function.js.map +1 -0
- package/dist/backend/llvm/emit-module.d.ts +24 -0
- package/dist/backend/llvm/emit-module.js +1535 -0
- package/dist/backend/llvm/emit-module.js.map +1 -0
- package/dist/backend/llvm/emit-statements.d.ts +58 -0
- package/dist/backend/llvm/emit-statements.js +1964 -0
- package/dist/backend/llvm/emit-statements.js.map +1 -0
- package/dist/backend/llvm/emitter.d.ts +576 -268
- package/dist/backend/llvm/emitter.js +801 -4447
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +57 -3
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +73 -46
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-async.test.js +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +2 -0
- package/dist/backend/llvm/expr-bytes.js +76 -29
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +6 -2
- package/dist/backend/llvm/expr-callbacks.js +48 -11
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +1 -1
- package/dist/backend/llvm/expr-calls.js +71 -53
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-calls.test.js +1 -1
- package/dist/backend/llvm/expr-containers.js +39 -15
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-control.js +16 -16
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.js +1 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.d.ts +3 -0
- package/dist/backend/llvm/expr-dynamic.js +92 -63
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +1 -1
- package/dist/backend/llvm/expr-primitives.js +132 -25
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +2 -2
- package/dist/backend/llvm/expr-records.d.ts +1 -1
- package/dist/backend/llvm/expr-records.js +32 -11
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +54 -12
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js +2 -2
- package/dist/backend/llvm/expr-stream-callbacks.js +22 -1
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/int32-abi.test.js +2 -2
- package/dist/backend/llvm/integer-clones.test.js +3 -3
- package/dist/backend/llvm/integer-remainder.d.ts +34 -13
- package/dist/backend/llvm/integer-remainder.js +156 -22
- package/dist/backend/llvm/integer-remainder.js.map +1 -1
- package/dist/backend/llvm/intern-tables.test.js +1 -1
- package/dist/backend/llvm/jsval-encoding.d.ts +21 -0
- package/dist/backend/llvm/jsval-encoding.js +20 -0
- package/dist/backend/llvm/jsval-encoding.js.map +1 -0
- package/dist/backend/llvm/jsval.d.ts +12 -0
- package/dist/backend/llvm/jsval.js +488 -0
- package/dist/backend/llvm/jsval.js.map +1 -0
- package/dist/backend/llvm/lazy-captures.d.ts +12 -2
- package/dist/backend/llvm/lazy-captures.js +39 -17
- package/dist/backend/llvm/lazy-captures.js.map +1 -1
- package/dist/backend/llvm/lib-abi.js +1 -1
- package/dist/backend/llvm/lib-abi.js.map +1 -1
- package/dist/backend/llvm/lib-connect.js +1 -1
- package/dist/backend/llvm/lib-connect.js.map +1 -1
- package/dist/backend/llvm/lib-datagram.js +14 -8
- package/dist/backend/llvm/lib-datagram.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +217 -24
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +102 -13
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.js +3 -3
- package/dist/backend/llvm/lib-http2.js.map +1 -1
- package/dist/backend/llvm/lib-lookup.js +2 -2
- package/dist/backend/llvm/lib-lookup.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +77 -25
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +100 -50
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.d.ts +12 -0
- package/dist/backend/llvm/lib-shared.js +229 -5
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +46 -16
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-test.js +57 -8
- package/dist/backend/llvm/lib-test.js.map +1 -1
- package/dist/backend/llvm/lib-tls.js +4 -9
- package/dist/backend/llvm/lib-tls.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +2 -2
- package/dist/backend/llvm/local-array-reads.test.js +1 -1
- package/dist/backend/llvm/local-extents.d.ts +19 -0
- package/dist/backend/llvm/local-extents.js +169 -0
- package/dist/backend/llvm/local-extents.js.map +1 -0
- package/dist/backend/llvm/local-extents.test.d.ts +1 -0
- package/dist/backend/llvm/local-extents.test.js +92 -0
- package/dist/backend/llvm/local-extents.test.js.map +1 -0
- package/dist/backend/llvm/local-union-storage.js +7 -7
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +2 -2
- package/dist/backend/llvm/map-entry-fusion.test.js +1 -1
- package/dist/backend/llvm/map-number-lookup.js +2 -2
- package/dist/backend/llvm/map-number-lookup.test.js +2 -2
- package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
- package/dist/backend/llvm/narrow-guards.d.ts +38 -0
- package/dist/backend/llvm/narrow-guards.js +151 -0
- package/dist/backend/llvm/narrow-guards.js.map +1 -0
- package/dist/backend/llvm/nullable-unions.d.ts +70 -9
- package/dist/backend/llvm/nullable-unions.js +105 -6
- package/dist/backend/llvm/nullable-unions.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.test.d.ts +1 -0
- package/dist/backend/llvm/nullable-unions.test.js +65 -0
- package/dist/backend/llvm/nullable-unions.test.js.map +1 -0
- package/dist/backend/llvm/publish.d.ts +4 -0
- package/dist/backend/llvm/publish.js +14 -2
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/publish.test.js +1 -1
- package/dist/backend/llvm/receivers.d.ts +31 -0
- package/dist/backend/llvm/receivers.js +395 -0
- package/dist/backend/llvm/receivers.js.map +1 -0
- package/dist/backend/llvm/record-results.d.ts +13 -2
- package/dist/backend/llvm/record-results.js +66 -6
- package/dist/backend/llvm/record-results.js.map +1 -1
- package/dist/backend/llvm/reference-effects.js +9 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-writes.d.ts +4 -0
- package/dist/backend/llvm/reference-writes.js +143 -6
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/reference-writes.test.d.ts +1 -0
- package/dist/backend/llvm/reference-writes.test.js +88 -0
- package/dist/backend/llvm/reference-writes.test.js.map +1 -0
- package/dist/backend/llvm/regex-matchers.d.ts +8 -0
- package/dist/backend/llvm/regex-matchers.js +33 -0
- package/dist/backend/llvm/regex-matchers.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.test.js +23 -1
- package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
- package/dist/backend/llvm/regions.d.ts +1 -1
- package/dist/backend/llvm/regions.js +9 -6
- package/dist/backend/llvm/regions.js.map +1 -1
- package/dist/backend/llvm/regions.test.js +1 -1
- package/dist/backend/llvm/shapes.d.ts +69 -43
- package/dist/backend/llvm/shapes.js +285 -21
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +37 -3
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.d.ts +74 -0
- package/dist/backend/llvm/speculative-integers.js +571 -0
- package/dist/backend/llvm/speculative-integers.js.map +1 -0
- package/dist/backend/llvm/speculative-integers.test.d.ts +1 -0
- package/dist/backend/llvm/speculative-integers.test.js +148 -0
- package/dist/backend/llvm/speculative-integers.test.js.map +1 -0
- package/dist/backend/llvm/split-loops.js +2 -2
- package/dist/backend/llvm/split-loops.js.map +1 -1
- package/dist/backend/llvm/stack-objects.d.ts +26 -6
- package/dist/backend/llvm/stack-objects.js +133 -10
- package/dist/backend/llvm/stack-objects.js.map +1 -1
- package/dist/backend/llvm/stack-objects.test.js +55 -1
- package/dist/backend/llvm/stack-objects.test.js.map +1 -1
- package/dist/backend/llvm/stack-unions.test.js +1 -1
- package/dist/backend/llvm/string-construction.test.js +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +15 -14
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-slices.d.ts +25 -0
- package/dist/backend/llvm/string-slices.js +207 -1
- package/dist/backend/llvm/string-slices.js.map +1 -1
- package/dist/backend/llvm/string-slices.test.js +139 -2
- package/dist/backend/llvm/string-slices.test.js.map +1 -1
- package/dist/backend/llvm/switch-dispatch.test.js +2 -2
- package/dist/backend/llvm/thread-slots.d.ts +5 -0
- package/dist/backend/llvm/thread-slots.js +142 -0
- package/dist/backend/llvm/thread-slots.js.map +1 -0
- package/dist/backend/llvm/thread-slots.test.d.ts +1 -0
- package/dist/backend/llvm/thread-slots.test.js +110 -0
- package/dist/backend/llvm/thread-slots.test.js.map +1 -0
- package/dist/backend/llvm/union-repr.d.ts +7 -7
- package/dist/backend/llvm/union-repr.js +18 -2
- package/dist/backend/llvm/union-repr.js.map +1 -1
- package/dist/backend/llvm/union-retype.test.js +17 -3
- package/dist/backend/llvm/union-retype.test.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +2 -2
- package/dist/backend/llvm/walkers.js +51 -26
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/llvm/wasm-modules.d.ts +16 -0
- package/dist/backend/llvm/wasm-modules.js +66 -0
- package/dist/backend/llvm/wasm-modules.js.map +1 -0
- package/dist/backend/llvm/wrapping-sums.d.ts +7 -0
- package/dist/backend/llvm/wrapping-sums.js +11 -3
- package/dist/backend/llvm/wrapping-sums.js.map +1 -1
- package/dist/backend/mangle.d.ts +7 -0
- package/dist/backend/mangle.js +11 -0
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/may-throw.d.ts +3 -0
- package/dist/backend/may-throw.js +6 -2
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +1 -1
- package/dist/backend/native/contracts.d.ts +37 -0
- package/dist/backend/native/executable.js +192 -134
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +1 -0
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +2 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +30 -0
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/publication.test.js +1 -1
- package/dist/backend/runtime-pack-core.d.ts +9 -1
- package/dist/backend/runtime-pack-core.js +10 -1
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-native.js +1 -1
- package/dist/backend/runtime-pack-native.js.map +1 -1
- package/dist/backend/runtime-pack-native.test.d.ts +1 -0
- package/dist/backend/runtime-pack-native.test.js +31 -0
- package/dist/backend/runtime-pack-native.test.js.map +1 -0
- package/dist/backend/runtime-pack-targets.test.js +5 -0
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.d.ts +7 -3
- package/dist/backend/runtime-pack.js +12 -6
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +20 -6
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/stack-observations.d.ts +22 -0
- package/dist/backend/stack-observations.js +382 -0
- package/dist/backend/stack-observations.js.map +1 -0
- package/dist/backend/stack-observations.test.d.ts +1 -0
- package/dist/backend/stack-observations.test.js +233 -0
- package/dist/backend/stack-observations.test.js.map +1 -0
- package/dist/backend/target-diagnostics.js +8 -0
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +1 -1
- package/dist/backend/warm-cache.js +5 -0
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/backend/young-nursery.d.ts +7 -0
- package/dist/backend/young-nursery.js +10 -0
- package/dist/backend/young-nursery.js.map +1 -0
- package/dist/cli/command.js +44 -4
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/usage.d.ts +11 -1
- package/dist/cli/usage.js +20 -1
- package/dist/cli/usage.js.map +1 -1
- package/dist/compat/fetch-profile.js +10 -1
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/compile-types.d.ts +13 -0
- package/dist/contracts/check.js +25 -6
- package/dist/contracts/check.js.map +1 -1
- package/dist/contracts/int32-elements.d.ts +115 -0
- package/dist/contracts/int32-elements.js +1179 -0
- package/dist/contracts/int32-elements.js.map +1 -0
- package/dist/coverage/report.d.ts +16 -0
- package/dist/coverage/report.js +182 -1
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +19 -6
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/coverage/verdict-cache.d.ts +2 -0
- package/dist/coverage/verdict-cache.js +12 -0
- package/dist/coverage/verdict-cache.js.map +1 -1
- package/dist/coverage/verdict-cache.test.js +2 -1
- package/dist/coverage/verdict-cache.test.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +11 -7
- package/dist/diagnostics/diagnostic.js +35 -23
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/envelope.d.ts +39 -2
- package/dist/diagnostics/envelope.js.map +1 -1
- package/dist/diagnostics/render.d.ts +7 -0
- package/dist/diagnostics/render.js +50 -13
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/diagnostics/render.test.d.ts +1 -0
- package/dist/diagnostics/render.test.js +49 -0
- package/dist/diagnostics/render.test.js.map +1 -0
- package/dist/executable/executable-cache.d.ts +17 -0
- package/dist/executable/executable-cache.js +13 -1
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +7 -1
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.js +2 -1
- package/dist/executable/prepare.js.map +1 -1
- package/dist/frontend/analysis.js +6 -1
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/builtin-modules.d.ts +16 -2
- package/dist/frontend/builtin-modules.js +40 -7
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/cjs-syntax.js +52 -51
- package/dist/frontend/cjs-syntax.js.map +1 -1
- package/dist/frontend/contract-types.d.ts +3 -0
- package/dist/frontend/contract-types.js +36 -7
- package/dist/frontend/contract-types.js.map +1 -1
- package/dist/frontend/experimental-import.d.ts +5 -1
- package/dist/frontend/experimental-import.js +26 -7
- package/dist/frontend/experimental-import.js.map +1 -1
- package/dist/frontend/fork-target.js +20 -22
- package/dist/frontend/fork-target.js.map +1 -1
- package/dist/frontend/fork-target.test.js +2 -1
- package/dist/frontend/fork-target.test.js.map +1 -1
- package/dist/frontend/function-completion.js +6 -6
- package/dist/frontend/function-completion.js.map +1 -1
- package/dist/frontend/helper-tokens.js +15 -3
- package/dist/frontend/helper-tokens.js.map +1 -1
- package/dist/frontend/helper-tokens.test.js +7 -1
- package/dist/frontend/helper-tokens.test.js.map +1 -1
- package/dist/frontend/inferred-js-diagnostics.js +14 -17
- package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
- package/dist/frontend/input-tracker.d.ts +3 -0
- package/dist/frontend/input-tracker.js +32 -3
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/lib-contract.js +36 -32
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/lib-exports.js +3 -3
- package/dist/frontend/lib-exports.js.map +1 -1
- package/dist/frontend/lowering/array-values.d.ts +8 -3
- package/dist/frontend/lowering/array-values.js +60 -11
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/assert-instances.js +4 -4
- package/dist/frontend/lowering/assert-instances.js.map +1 -1
- package/dist/frontend/lowering/assertion-identity.d.ts +12 -0
- package/dist/frontend/lowering/assertion-identity.js +70 -0
- package/dist/frontend/lowering/assertion-identity.js.map +1 -0
- package/dist/frontend/lowering/assertion-members.d.ts +28 -0
- package/dist/frontend/lowering/assertion-members.js +185 -0
- package/dist/frontend/lowering/assertion-members.js.map +1 -0
- package/dist/frontend/lowering/binding-analysis.js +27 -20
- package/dist/frontend/lowering/binding-analysis.js.map +1 -1
- package/dist/frontend/lowering/builtin-calls.js +72 -4
- package/dist/frontend/lowering/builtin-calls.js.map +1 -1
- package/dist/frontend/lowering/builtin-function-fences.d.ts +14 -0
- package/dist/frontend/lowering/builtin-function-fences.js +42 -0
- package/dist/frontend/lowering/builtin-function-fences.js.map +1 -0
- package/dist/frontend/lowering/builtins/arguments.js +1 -1
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
- package/dist/frontend/lowering/builtins/async-context.js +53 -52
- package/dist/frontend/lowering/builtins/async-context.js.map +1 -1
- package/dist/frontend/lowering/builtins/atomics.js +6 -6
- package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
- package/dist/frontend/lowering/builtins/blob.js +8 -6
- package/dist/frontend/lowering/builtins/blob.js.map +1 -1
- package/dist/frontend/lowering/builtins/builtin-class-dyn.d.ts +23 -0
- package/dist/frontend/lowering/builtins/builtin-class-dyn.js +156 -0
- package/dist/frontend/lowering/builtins/builtin-class-dyn.js.map +1 -0
- package/dist/frontend/lowering/builtins/callable-aliases.js +45 -6
- package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-async.js +7 -7
- package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-methods.d.ts +6 -4
- package/dist/frontend/lowering/builtins/child-process-methods.js +310 -57
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js +16 -10
- package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process.d.ts +6 -4
- package/dist/frontend/lowering/builtins/child-process.js +85 -61
- package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
- package/dist/frontend/lowering/builtins/class-values.d.ts +60 -0
- package/dist/frontend/lowering/builtins/class-values.js +226 -0
- package/dist/frontend/lowering/builtins/class-values.js.map +1 -0
- package/dist/frontend/lowering/builtins/compression.d.ts +18 -0
- package/dist/frontend/lowering/builtins/compression.js +230 -52
- package/dist/frontend/lowering/builtins/compression.js.map +1 -1
- package/dist/frontend/lowering/builtins/constants.d.ts +9 -1
- package/dist/frontend/lowering/builtins/constants.js +28 -7
- package/dist/frontend/lowering/builtins/constants.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.d.ts +19 -0
- package/dist/frontend/lowering/builtins/crypto.js +223 -38
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/dates.d.ts +7 -1
- package/dist/frontend/lowering/builtins/dates.js +92 -16
- package/dist/frontend/lowering/builtins/dates.js.map +1 -1
- package/dist/frontend/lowering/builtins/disposable-stack.d.ts +18 -0
- package/dist/frontend/lowering/builtins/disposable-stack.js +137 -0
- package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -0
- package/dist/frontend/lowering/builtins/environment.js +3 -3
- package/dist/frontend/lowering/builtins/environment.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.d.ts +14 -10
- package/dist/frontend/lowering/builtins/errors.js +174 -6
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +4 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +136 -113
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.d.ts +8 -0
- package/dist/frontend/lowering/builtins/filesystem.js +213 -76
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-glob.js +3 -3
- package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-streams.js +10 -11
- package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -1
- package/dist/frontend/lowering/builtins/hash-stream.d.ts +12 -0
- package/dist/frontend/lowering/builtins/hash-stream.js +80 -0
- package/dist/frontend/lowering/builtins/hash-stream.js.map +1 -0
- package/dist/frontend/lowering/builtins/ipc.js +45 -8
- package/dist/frontend/lowering/builtins/ipc.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.js +232 -24
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/key-object.js +4 -4
- package/dist/frontend/lowering/builtins/key-object.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-bindings.d.ts +8 -0
- package/dist/frontend/lowering/builtins/module-bindings.js +71 -22
- package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +67 -46
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-resolution.d.ts +4 -3
- package/dist/frontend/lowering/builtins/module-resolution.js +24 -23
- package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
- package/dist/frontend/lowering/builtins/navigator.d.ts +13 -0
- package/dist/frontend/lowering/builtins/navigator.js +40 -0
- package/dist/frontend/lowering/builtins/navigator.js.map +1 -0
- package/dist/frontend/lowering/builtins/net-address.d.ts +19 -0
- package/dist/frontend/lowering/builtins/net-address.js +156 -0
- package/dist/frontend/lowering/builtins/net-address.js.map +1 -0
- package/dist/frontend/lowering/builtins/numbers.js +25 -9
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/operating-system.d.ts +4 -0
- package/dist/frontend/lowering/builtins/operating-system.js +25 -12
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
- package/dist/frontend/lowering/builtins/performance.d.ts +12 -0
- package/dist/frontend/lowering/builtins/performance.js +259 -8
- package/dist/frontend/lowering/builtins/performance.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.d.ts +32 -1
- package/dist/frontend/lowering/builtins/process.js +468 -99
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.d.ts +5 -1
- package/dist/frontend/lowering/builtins/promises.js +326 -43
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/promisify-callback.d.ts +37 -0
- package/dist/frontend/lowering/builtins/promisify-callback.js +320 -0
- package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -0
- package/dist/frontend/lowering/builtins/properties.js +37 -1
- package/dist/frontend/lowering/builtins/properties.js.map +1 -1
- package/dist/frontend/lowering/builtins/querystring.js +14 -14
- package/dist/frontend/lowering/builtins/querystring.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +55 -13
- package/dist/frontend/lowering/builtins/readline.js +931 -69
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/receiver-types.js +3 -5
- package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -1
- package/dist/frontend/lowering/builtins/reflection.js +16 -14
- package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
- package/dist/frontend/lowering/builtins/runtime-constructor.d.ts +26 -0
- package/dist/frontend/lowering/builtins/runtime-constructor.js +165 -0
- package/dist/frontend/lowering/builtins/runtime-constructor.js.map +1 -0
- package/dist/frontend/lowering/builtins/strings.js +101 -12
- package/dist/frontend/lowering/builtins/strings.js.map +1 -1
- package/dist/frontend/lowering/builtins/text-codecs.js +41 -38
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
- package/dist/frontend/lowering/builtins/timers.js +75 -30
- package/dist/frontend/lowering/builtins/timers.js.map +1 -1
- package/dist/frontend/lowering/builtins/url.d.ts +3 -0
- package/dist/frontend/lowering/builtins/url.js +120 -17
- package/dist/frontend/lowering/builtins/url.js.map +1 -1
- package/dist/frontend/lowering/builtins/util-types.js +20 -4
- package/dist/frontend/lowering/builtins/util-types.js.map +1 -1
- package/dist/frontend/lowering/builtins/v8.d.ts +11 -0
- package/dist/frontend/lowering/builtins/v8.js +105 -0
- package/dist/frontend/lowering/builtins/v8.js.map +1 -0
- package/dist/frontend/lowering/builtins/webassembly.d.ts +33 -0
- package/dist/frontend/lowering/builtins/webassembly.js +388 -0
- package/dist/frontend/lowering/builtins/webassembly.js.map +1 -0
- package/dist/frontend/lowering/builtins/webcrypto.d.ts +20 -0
- package/dist/frontend/lowering/builtins/webcrypto.js +112 -0
- package/dist/frontend/lowering/builtins/webcrypto.js.map +1 -0
- package/dist/frontend/lowering/builtins/workers.d.ts +16 -0
- package/dist/frontend/lowering/builtins/workers.js +246 -3
- package/dist/frontend/lowering/builtins/workers.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.js +69 -14
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.d.ts +19 -1
- package/dist/frontend/lowering/call-signatures.js +254 -47
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/checked-promise-all.d.ts +3 -0
- package/dist/frontend/lowering/checked-promise-all.js +1 -1
- package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
- package/dist/frontend/lowering/cjs-exports-object.d.ts +53 -0
- package/dist/frontend/lowering/cjs-exports-object.js +528 -0
- package/dist/frontend/lowering/cjs-exports-object.js.map +1 -0
- package/dist/frontend/lowering/cjs-inline-require.d.ts +86 -0
- package/dist/frontend/lowering/cjs-inline-require.js +314 -0
- package/dist/frontend/lowering/cjs-inline-require.js.map +1 -0
- package/dist/frontend/lowering/cjs-tsc-interop.d.ts +28 -0
- package/dist/frontend/lowering/cjs-tsc-interop.js +208 -0
- package/dist/frontend/lowering/cjs-tsc-interop.js.map +1 -0
- package/dist/frontend/lowering/class-attributes.d.ts +19 -0
- package/dist/frontend/lowering/class-attributes.js +378 -0
- package/dist/frontend/lowering/class-attributes.js.map +1 -0
- package/dist/frontend/lowering/class-callbacks.d.ts +3 -1
- package/dist/frontend/lowering/class-callbacks.js +21 -10
- package/dist/frontend/lowering/class-callbacks.js.map +1 -1
- package/dist/frontend/lowering/class-construction.js +49 -4
- package/dist/frontend/lowering/class-construction.js.map +1 -1
- package/dist/frontend/lowering/class-descriptors.d.ts +2 -0
- package/dist/frontend/lowering/class-descriptors.js +8 -8
- package/dist/frontend/lowering/class-descriptors.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +64 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +1115 -89
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-instance-constructor.js +1 -1
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
- package/dist/frontend/lowering/class-iterables.d.ts +11 -0
- package/dist/frontend/lowering/class-iterables.js +31 -0
- package/dist/frontend/lowering/class-iterables.js.map +1 -0
- package/dist/frontend/lowering/class-method-mutations.js +73 -35
- package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
- package/dist/frontend/lowering/class-method-values.js +56 -10
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-protocol-dispatch.js +24 -22
- package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.d.ts +55 -0
- package/dist/frontend/lowering/class-protocols.js +738 -22
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.d.ts +6 -0
- package/dist/frontend/lowering/class-prototypes.js +80 -18
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-runtime-statics.js +1 -1
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
- package/dist/frontend/lowering/class-static-data.js +2 -2
- package/dist/frontend/lowering/class-static-data.js.map +1 -1
- package/dist/frontend/lowering/class-to-primitive.d.ts +25 -0
- package/dist/frontend/lowering/class-to-primitive.js +261 -0
- package/dist/frontend/lowering/class-to-primitive.js.map +1 -0
- package/dist/frontend/lowering/class-unions.d.ts +25 -0
- package/dist/frontend/lowering/class-unions.js +102 -1
- package/dist/frontend/lowering/class-unions.js.map +1 -1
- package/dist/frontend/lowering/code-generation.d.ts +14 -0
- package/dist/frontend/lowering/code-generation.js +127 -0
- package/dist/frontend/lowering/code-generation.js.map +1 -0
- package/dist/frontend/lowering/coercions/function-adapters.d.ts +16 -2
- package/dist/frontend/lowering/coercions/function-adapters.js +145 -3
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural-plans.js +25 -3
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +35 -3
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/coercions/unions.d.ts +15 -0
- package/dist/frontend/lowering/coercions/unions.js +57 -1
- package/dist/frontend/lowering/coercions/unions.js.map +1 -1
- package/dist/frontend/lowering/collection-ingestion.js +2 -2
- package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
- package/dist/frontend/lowering/collection-narrowing.js +2 -4
- package/dist/frontend/lowering/collection-narrowing.js.map +1 -1
- package/dist/frontend/lowering/construction-escapes.js +8 -8
- package/dist/frontend/lowering/construction-escapes.js.map +1 -1
- package/dist/frontend/lowering/construction-escapes.test.js +4 -4
- package/dist/frontend/lowering/construction-escapes.test.js.map +1 -1
- package/dist/frontend/lowering/constructor-returns.d.ts +61 -0
- package/dist/frontend/lowering/constructor-returns.js +477 -0
- package/dist/frontend/lowering/constructor-returns.js.map +1 -0
- package/dist/frontend/lowering/containers/array-callback-call.js +1 -1
- package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +9 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +266 -100
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-concat.js +1 -1
- package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.d.ts +0 -1
- package/dist/frontend/lowering/containers/array-construction.js +51 -13
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-from-async.d.ts +19 -0
- package/dist/frontend/lowering/containers/array-from-async.js +427 -0
- package/dist/frontend/lowering/containers/array-from-async.js.map +1 -0
- package/dist/frontend/lowering/containers/array-methods.js +89 -77
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.js +1 -0
- package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.js +161 -101
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.d.ts +9 -1
- package/dist/frontend/lowering/containers/callback-arguments.js +55 -5
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-grouping.d.ts +7 -8
- package/dist/frontend/lowering/containers/collection-grouping.js +219 -27
- package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +81 -48
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/dynamic-receivers.js +1 -1
- package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -1
- package/dist/frontend/lowering/containers/exec-result-uses.js +2 -2
- package/dist/frontend/lowering/containers/exec-result-uses.js.map +1 -1
- package/dist/frontend/lowering/containers/for-of.d.ts +6 -0
- package/dist/frontend/lowering/containers/for-of.js +19 -19
- package/dist/frontend/lowering/containers/for-of.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +142 -57
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/containers/iterator-helpers.d.ts +53 -4
- package/dist/frontend/lowering/containers/iterator-helpers.js +1581 -462
- package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
- package/dist/frontend/lowering/containers/match-row-uses.d.ts +17 -0
- package/dist/frontend/lowering/containers/match-row-uses.js +264 -0
- package/dist/frontend/lowering/containers/match-row-uses.js.map +1 -0
- package/dist/frontend/lowering/containers/string-and-regexp.d.ts +14 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js +419 -30
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.d.ts +4 -0
- package/dist/frontend/lowering/cycle-initialization.js +39 -0
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.js +47 -43
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/devirtualize.d.ts +1 -1
- package/dist/frontend/lowering/devirtualize.js +27 -7
- package/dist/frontend/lowering/devirtualize.js.map +1 -1
- package/dist/frontend/lowering/divergences.d.ts +0 -5
- package/dist/frontend/lowering/divergences.js +238 -128
- package/dist/frontend/lowering/divergences.js.map +1 -1
- package/dist/frontend/lowering/dyn-streams.d.ts +25 -0
- package/dist/frontend/lowering/dyn-streams.js +257 -0
- package/dist/frontend/lowering/dyn-streams.js.map +1 -0
- package/dist/frontend/lowering/error-methods.js +4 -1
- package/dist/frontend/lowering/error-methods.js.map +1 -1
- package/dist/frontend/lowering/error-name-order.d.ts +19 -0
- package/dist/frontend/lowering/error-name-order.js +93 -0
- package/dist/frontend/lowering/error-name-order.js.map +1 -0
- package/dist/frontend/lowering/expressions/array-literals.d.ts +21 -0
- package/dist/frontend/lowering/expressions/array-literals.js +703 -0
- package/dist/frontend/lowering/expressions/array-literals.js.map +1 -0
- package/dist/frontend/lowering/expressions/binary.d.ts +35 -0
- package/dist/frontend/lowering/expressions/binary.js +2483 -0
- package/dist/frontend/lowering/expressions/binary.js.map +1 -0
- package/dist/frontend/lowering/expressions/element-access.d.ts +31 -0
- package/dist/frontend/lowering/expressions/element-access.js +1797 -0
- package/dist/frontend/lowering/expressions/element-access.js.map +1 -0
- package/dist/frontend/lowering/expressions/evaluation-safety.js +4 -3
- package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
- package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +38 -0
- package/dist/frontend/lowering/expressions/hosted-narrowing.js +160 -0
- package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -0
- package/dist/frontend/lowering/expressions/identifiers.d.ts +4 -0
- package/dist/frontend/lowering/expressions/identifiers.js +830 -0
- package/dist/frontend/lowering/expressions/identifiers.js.map +1 -0
- package/dist/frontend/lowering/expressions/keyed-field-targets.d.ts +40 -0
- package/dist/frontend/lowering/expressions/keyed-field-targets.js +226 -0
- package/dist/frontend/lowering/expressions/keyed-field-targets.js.map +1 -0
- package/dist/frontend/lowering/expressions/narrowing.d.ts +37 -0
- package/dist/frontend/lowering/expressions/narrowing.js +1322 -0
- package/dist/frontend/lowering/expressions/narrowing.js.map +1 -0
- package/dist/frontend/lowering/expressions/native-proxy.js +4 -4
- package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +45 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -0
- package/dist/frontend/lowering/expressions/object-literals.js +253 -85
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +2 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +91 -14
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/property-access.d.ts +110 -0
- package/dist/frontend/lowering/expressions/property-access.js +3544 -0
- package/dist/frontend/lowering/expressions/property-access.js.map +1 -0
- package/dist/frontend/lowering/expressions/relational.d.ts +28 -0
- package/dist/frontend/lowering/expressions/relational.js +1679 -0
- package/dist/frontend/lowering/expressions/relational.js.map +1 -0
- package/dist/frontend/lowering/expressions/typeof.d.ts +22 -0
- package/dist/frontend/lowering/expressions/typeof.js +538 -0
- package/dist/frontend/lowering/expressions/typeof.js.map +1 -0
- package/dist/frontend/lowering/expressions/union-fields.js +1 -1
- package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
- package/dist/frontend/lowering/expressions/updates.d.ts +21 -0
- package/dist/frontend/lowering/expressions/updates.js +780 -0
- package/dist/frontend/lowering/expressions/updates.js.map +1 -0
- package/dist/frontend/lowering/function-context.d.ts +10 -0
- package/dist/frontend/lowering/function-context.js +11 -1
- package/dist/frontend/lowering/function-context.js.map +1 -1
- package/dist/frontend/lowering/function-returns.js +52 -28
- package/dist/frontend/lowering/function-returns.js.map +1 -1
- package/dist/frontend/lowering/general-streams.d.ts +25 -0
- package/dist/frontend/lowering/general-streams.js +108 -0
- package/dist/frontend/lowering/general-streams.js.map +1 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +7 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +172 -69
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +39 -0
- package/dist/frontend/lowering/generic-functions.js +393 -75
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/import-meta.js +2 -2
- package/dist/frontend/lowering/import-meta.js.map +1 -1
- package/dist/frontend/lowering/intern-tables.js +10 -9
- package/dist/frontend/lowering/intern-tables.js.map +1 -1
- package/dist/frontend/lowering/iterator-adapters.d.ts +19 -0
- package/dist/frontend/lowering/iterator-adapters.js +331 -3
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
- package/dist/frontend/lowering/js-class-fields.d.ts +28 -0
- package/dist/frontend/lowering/js-class-fields.js +170 -0
- package/dist/frontend/lowering/js-class-fields.js.map +1 -0
- package/dist/frontend/lowering/js-dynamic-objects.d.ts +15 -0
- package/dist/frontend/lowering/js-dynamic-objects.js +299 -0
- package/dist/frontend/lowering/js-dynamic-objects.js.map +1 -0
- package/dist/frontend/lowering/js-dynamic-objects.test.d.ts +1 -0
- package/dist/frontend/lowering/js-dynamic-objects.test.js +35 -0
- package/dist/frontend/lowering/js-dynamic-objects.test.js.map +1 -0
- package/dist/frontend/lowering/json-require.d.ts +22 -0
- package/dist/frontend/lowering/json-require.js +131 -0
- package/dist/frontend/lowering/json-require.js.map +1 -0
- package/dist/frontend/lowering/key-order-witness.d.ts +44 -0
- package/dist/frontend/lowering/key-order-witness.js +641 -0
- package/dist/frontend/lowering/key-order-witness.js.map +1 -0
- package/dist/frontend/lowering/key-order-witness.test.d.ts +1 -0
- package/dist/frontend/lowering/key-order-witness.test.js +239 -0
- package/dist/frontend/lowering/key-order-witness.test.js.map +1 -0
- package/dist/frontend/lowering/lifetime-regions.js +7 -7
- package/dist/frontend/lowering/lifetime-regions.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +61 -60
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.d.ts +10 -1
- package/dist/frontend/lowering/lower-async-iteration.js +34 -6
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.d.ts +5 -0
- package/dist/frontend/lowering/lower-builtin-values.js +32 -3
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +1298 -452
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +50 -3
- package/dist/frontend/lowering/lower-classes.js +1499 -456
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +4 -2
- package/dist/frontend/lowering/lower-comptime.js +111 -13
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-console.js +13 -11
- package/dist/frontend/lowering/lower-console.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.d.ts +10 -0
- package/dist/frontend/lowering/lower-dgram.js +179 -8
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.js +113 -14
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +16 -7
- package/dist/frontend/lowering/lower-event-emitter.js +268 -71
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-event-target.js +2 -2
- package/dist/frontend/lowering/lower-event-target.js.map +1 -1
- package/dist/frontend/lowering/lower-expando.js +17 -13
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +188 -186
- package/dist/frontend/lowering/lower-exprs.js +1493 -12407
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +68 -22
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +6 -0
- package/dist/frontend/lowering/lower-generators.js +29 -16
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.js +5 -1
- package/dist/frontend/lowering/lower-global-value.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +354 -99
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.js +23 -20
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-mock.d.ts +19 -2
- package/dist/frontend/lowering/lower-mock.js +557 -74
- package/dist/frontend/lowering/lower-mock.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +268 -61
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +6 -0
- package/dist/frontend/lowering/lower-namespaces.js +45 -33
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-module.d.ts +16 -0
- package/dist/frontend/lowering/lower-node-module.js +147 -14
- package/dist/frontend/lowering/lower-node-module.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +6 -6
- package/dist/frontend/lowering/lower-server.js +638 -105
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +4 -0
- package/dist/frontend/lowering/lower-stdlib.js +151 -109
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +28 -2
- package/dist/frontend/lowering/lower-stmts.js +1589 -398
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +4 -3
- package/dist/frontend/lowering/lower-stream.js +714 -75
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-test.d.ts +3 -0
- package/dist/frontend/lowering/lower-test.js +574 -100
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.js +80 -32
- package/dist/frontend/lowering/lower-timers.js.map +1 -1
- package/dist/frontend/lowering/lower-url.js +1 -1
- package/dist/frontend/lowering/lower-url.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +409 -26
- package/dist/frontend/lowering/lowerer.js +1918 -305
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +10 -4
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/maybe-promise.d.ts +46 -0
- package/dist/frontend/lowering/maybe-promise.js +249 -0
- package/dist/frontend/lowering/maybe-promise.js.map +1 -0
- package/dist/frontend/lowering/module-member-this.d.ts +3 -0
- package/dist/frontend/lowering/module-member-this.js +262 -0
- package/dist/frontend/lowering/module-member-this.js.map +1 -0
- package/dist/frontend/lowering/module-namespace-elements.js +1 -1
- package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
- package/dist/frontend/lowering/nan-coded-reads.d.ts +3 -0
- package/dist/frontend/lowering/nan-coded-reads.js +45 -32
- package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
- package/dist/frontend/lowering/narrowing-stability.d.ts +18 -3
- package/dist/frontend/lowering/narrowing-stability.js +104 -32
- package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.js +11 -11
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/null-prototype.d.ts +13 -0
- package/dist/frontend/lowering/null-prototype.js +33 -0
- package/dist/frontend/lowering/null-prototype.js.map +1 -0
- package/dist/frontend/lowering/object-factory-new.js +6 -8
- package/dist/frontend/lowering/object-factory-new.js.map +1 -1
- package/dist/frontend/lowering/private-brands.d.ts +46 -0
- package/dist/frontend/lowering/private-brands.js +265 -0
- package/dist/frontend/lowering/private-brands.js.map +1 -0
- package/dist/frontend/lowering/promise-executor-adapter.d.ts +11 -0
- package/dist/frontend/lowering/promise-executor-adapter.js +87 -0
- package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -0
- package/dist/frontend/lowering/require-initialization.d.ts +32 -0
- package/dist/frontend/lowering/require-initialization.js +246 -0
- package/dist/frontend/lowering/require-initialization.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-bounds.js +7 -7
- package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-elements.js +12 -12
- package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-guards.js +10 -10
- package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-guards.test.js +1 -1
- package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-ownership.js +10 -9
- package/dist/frontend/lowering/runtime-optional-ownership.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-provenance.js +2 -2
- package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-records.d.ts +35 -0
- package/dist/frontend/lowering/runtime-optional-records.js +205 -32
- package/dist/frontend/lowering/runtime-optional-records.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-records.test.js +19 -1
- package/dist/frontend/lowering/runtime-optional-records.test.js.map +1 -1
- package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
- package/dist/frontend/lowering/split-consumers.js +4 -4
- package/dist/frontend/lowering/split-consumers.js.map +1 -1
- package/dist/frontend/lowering/static-function-names.d.ts +28 -0
- package/dist/frontend/lowering/static-function-names.js +212 -0
- package/dist/frontend/lowering/static-function-names.js.map +1 -0
- package/dist/frontend/lowering/static-this.js +6 -6
- package/dist/frontend/lowering/static-this.js.map +1 -1
- package/dist/frontend/lowering/strict-mode.d.ts +5 -0
- package/dist/frontend/lowering/strict-mode.js +31 -0
- package/dist/frontend/lowering/strict-mode.js.map +1 -0
- package/dist/frontend/lowering/string-index-bounds.js +10 -10
- package/dist/frontend/lowering/string-index-bounds.js.map +1 -1
- package/dist/frontend/lowering/string-index.d.ts +12 -0
- package/dist/frontend/lowering/string-index.js +72 -1
- package/dist/frontend/lowering/string-index.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +15 -6
- package/dist/frontend/lowering/surfaces.js +278 -45
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/symbol-fields.d.ts +7 -0
- package/dist/frontend/lowering/symbol-fields.js +204 -36
- package/dist/frontend/lowering/symbol-fields.js.map +1 -1
- package/dist/frontend/lowering/symbol-methods.d.ts +2 -1
- package/dist/frontend/lowering/symbol-methods.js +24 -6
- package/dist/frontend/lowering/symbol-methods.js.map +1 -1
- package/dist/frontend/lowering/thread-slots.d.ts +13 -0
- package/dist/frontend/lowering/thread-slots.js +208 -0
- package/dist/frontend/lowering/thread-slots.js.map +1 -0
- package/dist/frontend/lowering/typed-arguments.d.ts +74 -0
- package/dist/frontend/lowering/typed-arguments.js +472 -0
- package/dist/frontend/lowering/typed-arguments.js.map +1 -0
- package/dist/frontend/lowering/union-retag.d.ts +8 -0
- package/dist/frontend/lowering/union-retag.js +27 -0
- package/dist/frontend/lowering/union-retag.js.map +1 -1
- package/dist/frontend/lowering/union-retag.test.js +24 -1
- package/dist/frontend/lowering/union-retag.test.js.map +1 -1
- package/dist/frontend/lowering/var-hoisting.js +6 -6
- package/dist/frontend/lowering/var-hoisting.js.map +1 -1
- package/dist/frontend/lowering/width-lift.d.ts +4 -0
- package/dist/frontend/mock-shapes.d.ts +5 -0
- package/dist/frontend/mock-shapes.js +39 -7
- package/dist/frontend/mock-shapes.js.map +1 -1
- package/dist/frontend/module-source-candidates.js +1 -1
- package/dist/frontend/module-source-candidates.js.map +1 -1
- package/dist/frontend/module-source-candidates.test.js +2 -1
- package/dist/frontend/module-source-candidates.test.js.map +1 -1
- package/dist/frontend/module-syntax.js +8 -8
- package/dist/frontend/module-syntax.js.map +1 -1
- package/dist/frontend/npm-static-bundled-chunks.d.ts +51 -0
- package/dist/frontend/npm-static-bundled-chunks.js +810 -0
- package/dist/frontend/npm-static-bundled-chunks.js.map +1 -0
- package/dist/frontend/npm-static-bundled-chunks.test.d.ts +1 -0
- package/dist/frontend/npm-static-bundled-chunks.test.js +287 -0
- package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -0
- package/dist/frontend/npm-static-bundled-cjs.js +24 -23
- package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
- package/dist/frontend/npm-static-bundled-esm.d.ts +9 -0
- package/dist/frontend/npm-static-bundled-esm.js +768 -0
- package/dist/frontend/npm-static-bundled-esm.js.map +1 -0
- package/dist/frontend/npm-static-bundled-esm.test.d.ts +1 -0
- package/dist/frontend/npm-static-bundled-esm.test.js +207 -0
- package/dist/frontend/npm-static-bundled-esm.test.js.map +1 -0
- package/dist/frontend/npm-static-cjs-exports-alias.d.ts +2 -0
- package/dist/frontend/npm-static-cjs-exports-alias.js +186 -0
- package/dist/frontend/npm-static-cjs-exports-alias.js.map +1 -0
- package/dist/frontend/npm-static-cjs-exports-alias.test.d.ts +1 -0
- package/dist/frontend/npm-static-cjs-exports-alias.test.js +73 -0
- package/dist/frontend/npm-static-cjs-exports-alias.test.js.map +1 -0
- package/dist/frontend/npm-static-cjs-exports-var.d.ts +2 -0
- package/dist/frontend/npm-static-cjs-exports-var.js +236 -0
- package/dist/frontend/npm-static-cjs-exports-var.js.map +1 -0
- package/dist/frontend/npm-static-declaration-syntax.js +102 -101
- package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
- package/dist/frontend/npm-static-prune.js +36 -24
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-host.d.ts +4 -1
- package/dist/frontend/npm-static-rewrite-host.js +14 -3
- package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-syntax.d.ts +19 -0
- package/dist/frontend/npm-static-rewrite-syntax.js +274 -101
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
- package/dist/frontend/npm-static-subtyping.js +7 -9
- package/dist/frontend/npm-static-subtyping.js.map +1 -1
- package/dist/frontend/npm-static.d.ts +17 -1
- package/dist/frontend/npm-static.js +167 -16
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm-static.test.js +22 -1
- package/dist/frontend/npm-static.test.js.map +1 -1
- package/dist/frontend/pipeline.js +164 -26
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/pipeline.test.js +22 -1
- package/dist/frontend/pipeline.test.js.map +1 -1
- package/dist/frontend/program-analysis.d.ts +6 -1
- package/dist/frontend/program-analysis.js +7 -0
- package/dist/frontend/program-analysis.js.map +1 -1
- package/dist/frontend/program.d.ts +92 -2
- package/dist/frontend/program.js +1557 -254
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +76 -6
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/resolve.js +36 -2
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/resolve.test.js +49 -0
- package/dist/frontend/resolve.test.js.map +1 -1
- package/dist/frontend/services.d.ts +20 -1
- package/dist/frontend/services.js +40 -3
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/services.test.js +2 -1
- package/dist/frontend/services.test.js.map +1 -1
- package/dist/frontend/threads-import.js +1 -1
- package/dist/frontend/threads-import.js.map +1 -1
- package/dist/frontend/tier-analysis.d.ts +71 -0
- package/dist/frontend/tier-analysis.js +522 -0
- package/dist/frontend/tier-analysis.js.map +1 -0
- package/dist/frontend/ts7/api-conformance.d.ts +234 -0
- package/dist/frontend/ts7/api-conformance.js +7 -0
- package/dist/frontend/ts7/api-conformance.js.map +1 -0
- package/dist/frontend/ts7/ast-guards.generated.js +2 -1
- package/dist/frontend/ts7/ast-guards.generated.js.map +1 -1
- package/dist/frontend/ts7/ast-node.d.ts +47 -25
- package/dist/frontend/ts7/ast-node.js +64 -18
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +36 -12
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/ts7/ast-types.d.ts +10 -3
- package/dist/frontend/ts7/ast-types.generated.d.ts +39 -39
- package/dist/frontend/ts7/ast.d.ts +1 -0
- package/dist/frontend/ts7/ast.js +3 -2
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/checker-backend.d.ts +23 -0
- package/dist/frontend/ts7/checker-backend.js +88 -0
- package/dist/frontend/ts7/checker-backend.js.map +1 -0
- package/dist/frontend/ts7/checker-backend.test.d.ts +1 -0
- package/dist/frontend/ts7/checker-backend.test.js +63 -0
- package/dist/frontend/ts7/checker-backend.test.js.map +1 -0
- package/dist/frontend/ts7/checker-cache.d.ts +0 -3
- package/dist/frontend/ts7/checker-cache.js +0 -6
- package/dist/frontend/ts7/checker-cache.js.map +1 -1
- package/dist/frontend/ts7/checker.d.ts +18 -11
- package/dist/frontend/ts7/checker.js +42 -55
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.js +10 -7
- package/dist/frontend/ts7/checker.test.js.map +1 -1
- package/dist/frontend/ts7/diagnostic.d.ts +19 -0
- package/dist/frontend/ts7/diagnostic.js +22 -0
- package/dist/frontend/ts7/diagnostic.js.map +1 -0
- package/dist/frontend/ts7/node-functions.d.ts +8 -0
- package/dist/frontend/ts7/node-functions.js +18 -0
- package/dist/frontend/ts7/node-functions.js.map +1 -0
- package/dist/frontend/ts7/program-host.d.ts +5 -1
- package/dist/frontend/ts7/program-host.js +12 -0
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/rpc-api.d.ts +5 -1
- package/dist/frontend/ts7/rpc-api.js +8 -1
- package/dist/frontend/ts7/rpc-api.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.d.ts +13 -6
- package/dist/frontend/ts7/semantic-checker.js +26 -8
- package/dist/frontend/ts7/semantic-checker.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.test.js +12 -9
- package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.d.ts +54 -24
- package/dist/frontend/ts7/semantic-model.js +88 -16
- package/dist/frontend/ts7/semantic-model.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.test.js +4 -4
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-types.d.ts +7 -3
- package/dist/frontend/ts7/semantic-types.js +1 -1
- package/dist/frontend/ts7/semantic-types.js.map +1 -1
- package/dist/frontend/ts7/session.d.ts +11 -11
- package/dist/frontend/ts7/session.js +8 -5
- package/dist/frontend/ts7/session.js.map +1 -1
- package/dist/frontend/ts7/session.test.js +9 -5
- package/dist/frontend/ts7/session.test.js.map +1 -1
- package/dist/frontend/ts7/source-parser.d.ts +6 -2
- package/dist/frontend/ts7/source-parser.js +24 -3
- package/dist/frontend/ts7/source-parser.js.map +1 -1
- package/dist/frontend/ts7/source-parser.test.js +38 -17
- package/dist/frontend/ts7/source-parser.test.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +122 -2
- package/dist/frontend/type-mapper.js +2612 -695
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-only-imports.d.ts +28 -0
- package/dist/frontend/type-only-imports.js +122 -0
- package/dist/frontend/type-only-imports.js.map +1 -0
- package/dist/frontend/worker-target.js +8 -8
- package/dist/frontend/worker-target.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +47 -10
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +4 -2
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/api.d.ts +1 -1
- package/dist/ir/api.js +1 -1
- package/dist/ir/api.js.map +1 -1
- package/dist/ir/array-length-stability.d.ts +30 -0
- package/dist/ir/array-length-stability.js +236 -0
- package/dist/ir/array-length-stability.js.map +1 -0
- package/dist/ir/array-length-stability.test.d.ts +1 -0
- package/dist/ir/array-length-stability.test.js +113 -0
- package/dist/ir/array-length-stability.test.js.map +1 -0
- package/dist/ir/build.d.ts +2 -2
- package/dist/ir/build.js +1 -1
- package/dist/ir/build.js.map +1 -1
- package/dist/ir/builtin-effects.js +139 -0
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +1 -1
- package/dist/ir/builtin-signatures.js +655 -25
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/byte-numbers.js +3 -0
- package/dist/ir/byte-numbers.js.map +1 -1
- package/dist/ir/callback-specialization.d.ts +37 -0
- package/dist/ir/callback-specialization.js +459 -0
- package/dist/ir/callback-specialization.js.map +1 -0
- package/dist/ir/callback-specialization.test.d.ts +1 -0
- package/dist/ir/callback-specialization.test.js +208 -0
- package/dist/ir/callback-specialization.test.js.map +1 -0
- package/dist/ir/capture-values.d.ts +0 -1
- package/dist/ir/capture-values.js +51 -40
- package/dist/ir/capture-values.js.map +1 -1
- package/dist/ir/constant-globals.test.js +1 -1
- package/dist/ir/constant-tables.test.js +1 -1
- package/dist/ir/field-values.test.js +1 -1
- package/dist/ir/final-fields.test.js +1 -1
- package/dist/ir/function-references.test.js +10 -1
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/init-only-globals.test.js +1 -1
- package/dist/ir/initializer-bindings.test.js +1 -1
- package/dist/ir/int32-slots.d.ts +14 -0
- package/dist/ir/int32-slots.js +119 -14
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +29 -1
- package/dist/ir/int32-slots.test.js.map +1 -1
- package/dist/ir/integer-loop-facts.d.ts +16 -6
- package/dist/ir/integer-loop-facts.js +143 -38
- package/dist/ir/integer-loop-facts.js.map +1 -1
- package/dist/ir/integer-loops.d.ts +1 -1
- package/dist/ir/integer-loops.js +39 -9
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +104 -0
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +3 -0
- package/dist/ir/integer-ranges.js +4 -6
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +142 -1
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/intrinsic-signatures.js +6 -0
- package/dist/ir/intrinsic-signatures.js.map +1 -1
- package/dist/ir/ir.d.ts +234 -58
- package/dist/ir/ir.js +123 -12
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +10 -0
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/jsval.d.ts +8 -0
- package/dist/ir/jsval.js +365 -0
- package/dist/ir/jsval.js.map +1 -0
- package/dist/ir/jsval.test.d.ts +1 -0
- package/dist/ir/jsval.test.js +239 -0
- package/dist/ir/jsval.test.js.map +1 -0
- package/dist/ir/runtime-features.d.ts +150 -33
- package/dist/ir/runtime-features.js +672 -339
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/runtime-features.test.js +62 -0
- package/dist/ir/runtime-features.test.js.map +1 -1
- package/dist/ir/scalar-records.test.js +1 -1
- package/dist/ir/self-captures.d.ts +33 -0
- package/dist/ir/self-captures.js +245 -0
- package/dist/ir/self-captures.js.map +1 -0
- package/dist/ir/self-captures.test.d.ts +1 -0
- package/dist/ir/self-captures.test.js +135 -0
- package/dist/ir/self-captures.test.js.map +1 -0
- package/dist/ir/serialize.d.ts +1 -1
- package/dist/ir/serialize.js +7 -4
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/tiers.d.ts +26 -0
- package/dist/ir/tiers.js +101 -0
- package/dist/ir/tiers.js.map +1 -0
- package/dist/ir/tiers.test.d.ts +1 -0
- package/dist/ir/tiers.test.js +140 -0
- package/dist/ir/tiers.test.js.map +1 -0
- package/dist/ir/traverse.js +107 -94
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/traverse.test.js +33 -30
- package/dist/ir/traverse.test.js.map +1 -1
- package/dist/ir/unshare.js +65 -3
- package/dist/ir/unshare.js.map +1 -1
- package/dist/ir/unshare.test.js +1 -1
- package/dist/ir/validate.js +220 -71
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +64 -9
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/fence-eval.test.js +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/ir-policy.js +18 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/library/library-cache.d.ts +1 -0
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +5 -5
- package/dist/library/library-profile.d.ts +4 -4
- package/dist/library/library-profile.js +35 -7
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/prepare.js +13 -1
- package/dist/library/prepare.js.map +1 -1
- package/dist/native/cli.js +5 -0
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.js +2 -2
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/compiler.test.js +2 -2
- package/dist/native/prepare.js +7 -0
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/sanitizer.test.js +12 -0
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/native/toolchain.d.ts +2 -0
- package/dist/native/toolchain.js +10 -1
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +39 -1
- package/dist/native/toolchain.test.js.map +1 -1
- package/dist/startup-cache.d.ts +1 -0
- package/dist/startup-cache.js +1 -0
- package/dist/startup-cache.js.map +1 -1
- package/dist/wasm/base64.d.ts +5 -0
- package/dist/wasm/base64.js +62 -0
- package/dist/wasm/base64.js.map +1 -0
- package/dist/wasm/binary.d.ts +36 -0
- package/dist/wasm/binary.js +1976 -0
- package/dist/wasm/binary.js.map +1 -0
- package/dist/wasm/binary.test.d.ts +1 -0
- package/dist/wasm/binary.test.js +190 -0
- package/dist/wasm/binary.test.js.map +1 -0
- package/dist/wasm/discover.d.ts +38 -0
- package/dist/wasm/discover.js +377 -0
- package/dist/wasm/discover.js.map +1 -0
- package/dist/wasm/discover.test.d.ts +1 -0
- package/dist/wasm/discover.test.js +24 -0
- package/dist/wasm/discover.test.js.map +1 -0
- package/dist/wasm/module.d.ts +151 -0
- package/dist/wasm/module.js +575 -0
- package/dist/wasm/module.js.map +1 -0
- package/dist/wasm/translate.d.ts +48 -0
- package/dist/wasm/translate.js +2129 -0
- package/dist/wasm/translate.js.map +1 -0
- package/dist/wasm/translate.test.d.ts +1 -0
- package/dist/wasm/translate.test.js +207 -0
- package/dist/wasm/translate.test.js.map +1 -0
- package/package.json +21 -20
- package/surface-manifest.json +332 -36
|
@@ -2,6 +2,7 @@ import { dynUndefinedExpr, nodeThrowExpr } from "../../ir/build.js";
|
|
|
2
2
|
import { InternalCompilerError } from "../../errors.js";
|
|
3
3
|
import * as ts from "../ts7/adapter.js";
|
|
4
4
|
import { lowerToNumberArgument } from "./lower-exprs.js";
|
|
5
|
+
import { isDeclaredInAmbientNamespace } from "../type-mapper.js";
|
|
5
6
|
import { arrayOf, BOOL, BYTES_U8, DYN, F64, STRING, VOID, canConvertToDyn, isUnitType, } from "../../ir/ir.js";
|
|
6
7
|
import { STDLIB_SURFACE, STATIC_MATH_FNS, STATIC_MATH_PROPS, stdlibGlobalNameOf, } from "./surfaces.js";
|
|
7
8
|
import { unsupportedNativeApiDiag, unsupportedPackageValueDiag, } from "../../diagnostics/diagnostic.js";
|
|
@@ -10,6 +11,8 @@ import { foldedStringKeyOf, lowerDynObjectLiteral } from "./expressions/object-l
|
|
|
10
11
|
import { noteEventListeners } from "./lower-event-target.js";
|
|
11
12
|
import { PoisonError, newFnCtx, own } from "./lowerer.js";
|
|
12
13
|
import { NODE24_FETCH_COMPAT_PROFILE, STATIC_HEADERS_CALLS, STATIC_READABLE_STREAM_CALLS, STATIC_READABLE_STREAM_READS, STATIC_RESPONSE_CALLS, STATIC_RESPONSE_READS, } from "../../compat/fetch-profile.js";
|
|
14
|
+
import { classGeneratorIterable } from "./class-iterables.js";
|
|
15
|
+
import { generatorDrain } from "./iterator-adapters.js";
|
|
13
16
|
export function refuseUnsupportedApi(lowerer, feature, node, hint) {
|
|
14
17
|
lowerer.pushDiag(unsupportedNativeApiDiag(feature, locOf(node), hint));
|
|
15
18
|
throw new PoisonError();
|
|
@@ -132,9 +135,7 @@ function requestInitConstBacked(lowerer, value, seen) {
|
|
|
132
135
|
if (requestInitPropMutatedSymbols(lowerer).has(symbol))
|
|
133
136
|
return false;
|
|
134
137
|
seen.add(symbol);
|
|
135
|
-
const declarations =
|
|
136
|
-
.declarationsOf(symbol)
|
|
137
|
-
.filter((declaration) => ts.isVariableDeclaration(declaration) &&
|
|
138
|
+
const declarations = symbol.declarations.filter((declaration) => ts.isVariableDeclaration(declaration) &&
|
|
138
139
|
declaration.initializer !== undefined &&
|
|
139
140
|
ts.isVariableDeclarationList(declaration.parent) &&
|
|
140
141
|
(declaration.parent.flags & ts.NodeFlags.Const) !== 0);
|
|
@@ -151,8 +152,8 @@ function visitRequestInitConstSelectedValues(lowerer, value, selector, seen, vis
|
|
|
151
152
|
// a statically traced spread) hides earlier values exactly as it does at
|
|
152
153
|
// runtime; a conditional/missing spread keeps the earlier contributor
|
|
153
154
|
// in the possible-value set.
|
|
154
|
-
for (let i = expr.properties.length - 1; i >= 0; i--) {
|
|
155
|
-
const property = expr.properties[i];
|
|
155
|
+
for (let i = expr.properties.nodes.length - 1; i >= 0; i--) {
|
|
156
|
+
const property = expr.properties.nodes[i];
|
|
156
157
|
if (ts.isSpreadAssignment(property)) {
|
|
157
158
|
const defines = visitRequestInitConstSelectedValues(lowerer, property.expression, selector, new Set(seen), visit);
|
|
158
159
|
if (defines)
|
|
@@ -172,7 +173,7 @@ function visitRequestInitConstSelectedValues(lowerer, value, selector, seen, vis
|
|
|
172
173
|
return false;
|
|
173
174
|
}
|
|
174
175
|
if (selector.kind === "index" && ts.isArrayLiteralExpression(expr)) {
|
|
175
|
-
const element = expr.elements[selector.index];
|
|
176
|
+
const element = expr.elements.nodes[selector.index];
|
|
176
177
|
if (element === undefined || ts.isOmittedExpression(element) || ts.isSpreadElement(element)) {
|
|
177
178
|
return false;
|
|
178
179
|
}
|
|
@@ -214,7 +215,7 @@ function visitRequestInitConstSelectedValues(lowerer, value, selector, seen, vis
|
|
|
214
215
|
seen.add(symbol);
|
|
215
216
|
let sawDeclaration = false;
|
|
216
217
|
let defines = true;
|
|
217
|
-
for (const declaration of
|
|
218
|
+
for (const declaration of symbol.declarations) {
|
|
218
219
|
if (ts.isVariableDeclaration(declaration) &&
|
|
219
220
|
declaration.initializer !== undefined &&
|
|
220
221
|
ts.isVariableDeclarationList(declaration.parent) &&
|
|
@@ -243,7 +244,7 @@ function requestInitConstBindingSource(lowerer, declaration) {
|
|
|
243
244
|
else if (ts.isArrayBindingPattern(pattern)) {
|
|
244
245
|
if (current.dotDotDotToken)
|
|
245
246
|
return null;
|
|
246
|
-
const index = pattern.elements.indexOf(current);
|
|
247
|
+
const index = pattern.elements.nodes.indexOf(current);
|
|
247
248
|
if (index < 0)
|
|
248
249
|
return null;
|
|
249
250
|
selectors.unshift({ kind: "index", index });
|
|
@@ -295,7 +296,7 @@ function fenceRequestInitProperty(lowerer, access, seen) {
|
|
|
295
296
|
if (!symbol || seen.has(symbol))
|
|
296
297
|
return;
|
|
297
298
|
seen.add(symbol);
|
|
298
|
-
for (const declaration of
|
|
299
|
+
for (const declaration of symbol.declarations) {
|
|
299
300
|
if (ts.isPropertyAssignment(declaration)) {
|
|
300
301
|
fenceRequestInitValueInner(lowerer, declaration.initializer, seen);
|
|
301
302
|
}
|
|
@@ -333,8 +334,8 @@ function fenceRequestInitObject(lowerer, init, seen) {
|
|
|
333
334
|
// effective contributor for each dictionary member; a definite later
|
|
334
335
|
// `cache: undefined`, for example, suppresses an earlier unsupported
|
|
335
336
|
// cache value just as WebIDL observes at runtime.
|
|
336
|
-
for (let index = init.properties.length - 1; index >= 0; index--) {
|
|
337
|
-
const prop = init.properties[index];
|
|
337
|
+
for (let index = init.properties.nodes.length - 1; index >= 0; index--) {
|
|
338
|
+
const prop = init.properties.nodes[index];
|
|
338
339
|
if (ts.isSpreadAssignment(prop)) {
|
|
339
340
|
for (const row of rows) {
|
|
340
341
|
if (shadowed.has(row.member))
|
|
@@ -399,7 +400,7 @@ function fenceRequestInitValueInner(lowerer, value, seen) {
|
|
|
399
400
|
if (requestInitPropMutatedSymbols(lowerer).has(symbol))
|
|
400
401
|
return;
|
|
401
402
|
seen.add(symbol);
|
|
402
|
-
for (const declaration of
|
|
403
|
+
for (const declaration of symbol.declarations) {
|
|
403
404
|
if (ts.isBindingElement(declaration)) {
|
|
404
405
|
const source = requestInitConstBindingSource(lowerer, declaration);
|
|
405
406
|
if (source !== null) {
|
|
@@ -428,14 +429,14 @@ export function lowerFetchCall(lowerer, call) {
|
|
|
428
429
|
const symbol = lowerer.resolveValueSymbol(callee);
|
|
429
430
|
if (!symbol || !lowerer.isStdlibSymbol(symbol))
|
|
430
431
|
return null;
|
|
431
|
-
if (call.arguments.length < 1)
|
|
432
|
+
if (call.arguments.nodes.length < 1)
|
|
432
433
|
return null;
|
|
433
434
|
const loc = locOf(call);
|
|
434
|
-
const initNode = call.arguments[1];
|
|
435
|
+
const initNode = call.arguments.nodes[1];
|
|
435
436
|
if (initNode !== undefined)
|
|
436
437
|
fenceRequestInitValue(lowerer, initNode);
|
|
437
438
|
{
|
|
438
|
-
const inputNode = call.arguments[0];
|
|
439
|
+
const inputNode = call.arguments.nodes[0];
|
|
439
440
|
const input = lowerer.lowerExpr(inputNode);
|
|
440
441
|
let init;
|
|
441
442
|
if (initNode === undefined) {
|
|
@@ -470,7 +471,7 @@ export function lowerFetchCall(lowerer, call) {
|
|
|
470
471
|
{ kind: "varDecl", localId: inputLocal.id, init: input, loc },
|
|
471
472
|
{ kind: "varDecl", localId: initLocal.id, init, loc },
|
|
472
473
|
];
|
|
473
|
-
for (const argument of call.arguments.slice(2)) {
|
|
474
|
+
for (const argument of call.arguments.nodes.slice(2)) {
|
|
474
475
|
if (ts.isSpreadElement(argument)) {
|
|
475
476
|
lowerer.noLowering("spread surplus arguments on static fetch()", argument, "pass surplus arguments without spread syntax");
|
|
476
477
|
}
|
|
@@ -513,12 +514,12 @@ export function lowerStaticResponseCall(lowerer, call) {
|
|
|
513
514
|
const member = staticResponseMemberName(lowerer, access);
|
|
514
515
|
if (access.questionDotToken ||
|
|
515
516
|
(member !== "json" && member !== "text" && member !== "bytes" && member !== "arrayBuffer") ||
|
|
516
|
-
call.arguments.length !== 0) {
|
|
517
|
+
call.arguments.nodes.length !== 0) {
|
|
517
518
|
return null;
|
|
518
519
|
}
|
|
519
520
|
const recvType = lowerer.checker.getBaseTypeOfLiteralType(lowerer.typeOf(access.expression));
|
|
520
521
|
const sym = recvType.getAliasSymbol() ?? recvType.getSymbol();
|
|
521
|
-
if (!sym || sym
|
|
522
|
+
if (!sym || ts.symbolName(sym) !== "Response" || !lowerer.isStdlibSymbol(sym))
|
|
522
523
|
return null;
|
|
523
524
|
const recv = lowerer.lowerExpr(access.expression);
|
|
524
525
|
if (recv.type.kind !== "dyn")
|
|
@@ -591,7 +592,7 @@ function lowerStaticFixedFetchMethodCall(lowerer, call, access, member, receiver
|
|
|
591
592
|
loc,
|
|
592
593
|
},
|
|
593
594
|
then: answer,
|
|
594
|
-
else_: nodeThrowExpr(1, "", `${
|
|
595
|
+
else_: nodeThrowExpr(1, "", `${ts.getTextOfNode(access)} is not a function`, answer.type, loc),
|
|
595
596
|
type: answer.type,
|
|
596
597
|
loc,
|
|
597
598
|
};
|
|
@@ -721,7 +722,7 @@ function fetchMethodArgumentIsLive(owner, members, index) {
|
|
|
721
722
|
export function fenceStaticResponseMember(lowerer, access, use) {
|
|
722
723
|
const recvType = lowerer.checker.getBaseTypeOfLiteralType(lowerer.typeOf(access.expression));
|
|
723
724
|
const sym = recvType.getAliasSymbol() ?? recvType.getSymbol();
|
|
724
|
-
if (!sym || sym
|
|
725
|
+
if (!sym || ts.symbolName(sym) !== "Response" || !lowerer.isStdlibSymbol(sym))
|
|
725
726
|
return null;
|
|
726
727
|
const members = fetchAccessMemberNames(lowerer, access);
|
|
727
728
|
if (members === null)
|
|
@@ -744,7 +745,7 @@ export function fenceStaticResponseMember(lowerer, access, use) {
|
|
|
744
745
|
export function fenceStaticHeadersMember(lowerer, access, use) {
|
|
745
746
|
const recvType = lowerer.checker.getBaseTypeOfLiteralType(lowerer.typeOf(access.expression));
|
|
746
747
|
const sym = recvType.getAliasSymbol() ?? recvType.getSymbol();
|
|
747
|
-
if (!sym || sym
|
|
748
|
+
if (!sym || ts.symbolName(sym) !== "Headers" || !lowerer.isStdlibSymbol(sym))
|
|
748
749
|
return null;
|
|
749
750
|
const members = fetchAccessMemberNames(lowerer, access);
|
|
750
751
|
if (members === null)
|
|
@@ -775,7 +776,11 @@ export function fenceStaticAbortControllerMemberRead(lowerer, access) {
|
|
|
775
776
|
function isStdlibFetchInterface(lowerer, node, owner) {
|
|
776
777
|
const type = lowerer.checker.getBaseTypeOfLiteralType(lowerer.typeOf(node));
|
|
777
778
|
for (const symbol of [type.getSymbol(), type.getAliasSymbol()]) {
|
|
778
|
-
|
|
779
|
+
// NodeJS.ReadableStream shares the WHATWG interface's name.
|
|
780
|
+
if (symbol !== undefined &&
|
|
781
|
+
ts.symbolName(symbol) === owner &&
|
|
782
|
+
lowerer.isStdlibSymbol(symbol) &&
|
|
783
|
+
!symbol.declarations.some((d) => ts.isInterfaceDeclaration(d) && isDeclaredInAmbientNamespace(d, "NodeJS")))
|
|
779
784
|
return symbol;
|
|
780
785
|
}
|
|
781
786
|
return null;
|
|
@@ -829,9 +834,9 @@ function fetchObjectAssignmentMemberName(lowerer, property) {
|
|
|
829
834
|
function fetchInterfaceInventoryOwner(lowerer, node) {
|
|
830
835
|
const type = lowerer.checker.getBaseTypeOfLiteralType(lowerer.typeOf(node));
|
|
831
836
|
const symbol = [type.getSymbol(), type.getAliasSymbol()].find((candidate) => candidate !== undefined &&
|
|
832
|
-
NODE24_FETCH_COMPAT_PROFILE.inventory.interfaces.includes(candidate
|
|
837
|
+
NODE24_FETCH_COMPAT_PROFILE.inventory.interfaces.includes(ts.symbolName(candidate)) &&
|
|
833
838
|
lowerer.isStdlibSymbol(candidate));
|
|
834
|
-
return symbol ? { owner: symbol
|
|
839
|
+
return symbol ? { owner: ts.symbolName(symbol), symbol } : null;
|
|
835
840
|
}
|
|
836
841
|
function fenceFetchObjectMembers(lowerer, ownerNode, members) {
|
|
837
842
|
const resolved = fetchInterfaceInventoryOwner(lowerer, ownerNode);
|
|
@@ -858,7 +863,7 @@ function fenceFetchObjectMembers(lowerer, ownerNode, members) {
|
|
|
858
863
|
}
|
|
859
864
|
}
|
|
860
865
|
export function fenceFetchObjectBinding(lowerer, pattern) {
|
|
861
|
-
fenceFetchObjectMembers(lowerer, pattern, pattern.elements.flatMap((element) => {
|
|
866
|
+
fenceFetchObjectMembers(lowerer, pattern, pattern.elements.nodes.flatMap((element) => {
|
|
862
867
|
if (element.dotDotDotToken)
|
|
863
868
|
return [];
|
|
864
869
|
const member = fetchObjectBindingMemberName(lowerer, element);
|
|
@@ -869,7 +874,7 @@ export function fenceFetchObjectBinding(lowerer, pattern) {
|
|
|
869
874
|
* a binding pattern, but its source type lives on the right-hand expression
|
|
870
875
|
* instead of the target AST. */
|
|
871
876
|
export function fenceFetchObjectAssignment(lowerer, target, source) {
|
|
872
|
-
fenceFetchObjectMembers(lowerer, source, target.properties.flatMap((property) => {
|
|
877
|
+
fenceFetchObjectMembers(lowerer, source, target.properties.nodes.flatMap((property) => {
|
|
873
878
|
const member = fetchObjectAssignmentMemberName(lowerer, property);
|
|
874
879
|
return member === null ? [] : [{ member, node: property }];
|
|
875
880
|
}));
|
|
@@ -901,7 +906,7 @@ export function lowerFetchElementMethodCall(lowerer, call) {
|
|
|
901
906
|
if (call.questionDotToken ||
|
|
902
907
|
!ts.isElementAccessExpression(call.expression) ||
|
|
903
908
|
call.expression.questionDotToken ||
|
|
904
|
-
call.arguments.some((argument) => ts.isSpreadElement(argument))) {
|
|
909
|
+
call.arguments.nodes.some((argument) => ts.isSpreadElement(argument))) {
|
|
905
910
|
return null;
|
|
906
911
|
}
|
|
907
912
|
const access = call.expression;
|
|
@@ -929,7 +934,7 @@ export function lowerFetchElementMethodCall(lowerer, call) {
|
|
|
929
934
|
const loc = locOf(call);
|
|
930
935
|
const receiverLocal = lowerer.declareHiddenLocal("%fetchReceiver", DYN);
|
|
931
936
|
const keyLocal = lowerer.declareHiddenLocal("%fetchMember", STRING);
|
|
932
|
-
const argumentValues = call.arguments.map((argument, index) => fetchMethodArgumentIsLive(resolved.owner, members, index)
|
|
937
|
+
const argumentValues = call.arguments.nodes.map((argument, index) => fetchMethodArgumentIsLive(resolved.owner, members, index)
|
|
933
938
|
? lowerLiveWebValue(lowerer, argument)
|
|
934
939
|
: lowerer.lowerExprExpecting(argument, DYN));
|
|
935
940
|
const argumentLocals = argumentValues.map((argument) => lowerer.declareHiddenLocal("%fetchMethodArg", argument.type));
|
|
@@ -963,7 +968,7 @@ export function lowerFetchElementMethodCall(lowerer, call) {
|
|
|
963
968
|
loc,
|
|
964
969
|
}));
|
|
965
970
|
const staticResponsePromise = resolved.owner === "Response" &&
|
|
966
|
-
call.arguments.length === 0 &&
|
|
971
|
+
call.arguments.nodes.length === 0 &&
|
|
967
972
|
members.every((member) => member === "text" || member === "bytes")
|
|
968
973
|
? (() => {
|
|
969
974
|
// The checker spells this call as
|
|
@@ -989,7 +994,7 @@ export function lowerFetchElementMethodCall(lowerer, call) {
|
|
|
989
994
|
kind: "dynInvoke",
|
|
990
995
|
recv: receiverRef,
|
|
991
996
|
method: member,
|
|
992
|
-
calleeName:
|
|
997
|
+
calleeName: ts.getTextOfNode(access),
|
|
993
998
|
args: argumentRefs,
|
|
994
999
|
type: DYN,
|
|
995
1000
|
loc,
|
|
@@ -999,7 +1004,7 @@ export function lowerFetchElementMethodCall(lowerer, call) {
|
|
|
999
1004
|
// throw "is not a function" rather than dispatching every mismatch to the
|
|
1000
1005
|
// last member.
|
|
1001
1006
|
const invocationType = staticResponsePromise ?? DYN;
|
|
1002
|
-
let result = nodeThrowExpr(1, "", `${
|
|
1007
|
+
let result = nodeThrowExpr(1, "", `${ts.getTextOfNode(access)} is not a function`, invocationType, loc);
|
|
1003
1008
|
for (let index = members.length - 1; index >= 0; index--) {
|
|
1004
1009
|
const member = members[index];
|
|
1005
1010
|
result = {
|
|
@@ -1065,7 +1070,7 @@ export function fenceStaticReadableStreamMember(lowerer, access, use) {
|
|
|
1065
1070
|
* member-call path tries to lower the receiver as a value. */
|
|
1066
1071
|
function staticFirstArgWithSurplusArgs(lowerer, call, first) {
|
|
1067
1072
|
const loc = locOf(call);
|
|
1068
|
-
if (call.arguments.length <= 1)
|
|
1073
|
+
if (call.arguments.nodes.length <= 1)
|
|
1069
1074
|
return first;
|
|
1070
1075
|
const firstLocal = lowerer.declareHiddenLocal("%fetchArg", first.type);
|
|
1071
1076
|
const firstRef = {
|
|
@@ -1075,7 +1080,7 @@ function staticFirstArgWithSurplusArgs(lowerer, call, first) {
|
|
|
1075
1080
|
loc,
|
|
1076
1081
|
};
|
|
1077
1082
|
const stmts = [{ kind: "varDecl", localId: firstLocal.id, init: first, loc }];
|
|
1078
|
-
for (const argument of call.arguments.slice(1)) {
|
|
1083
|
+
for (const argument of call.arguments.nodes.slice(1)) {
|
|
1079
1084
|
if (ts.isSpreadElement(argument)) {
|
|
1080
1085
|
lowerer.noLowering("spread surplus arguments on the static fetch companion APIs", argument, "pass surplus arguments without spread syntax");
|
|
1081
1086
|
}
|
|
@@ -1107,18 +1112,18 @@ export function lowerStaticFetchCompanionCall(lowerer, call) {
|
|
|
1107
1112
|
}
|
|
1108
1113
|
const root = call.expression.expression;
|
|
1109
1114
|
const symbol = lowerer.resolveValueSymbol(root);
|
|
1110
|
-
if (!symbol || !lowerer.isStdlibSymbol(symbol))
|
|
1115
|
+
if ((!symbol || !lowerer.isStdlibSymbol(symbol)) && !isStreamWebReadableStream(lowerer, root))
|
|
1111
1116
|
return null;
|
|
1112
1117
|
const loc = locOf(call);
|
|
1113
1118
|
if (root.text === "AbortSignal") {
|
|
1114
1119
|
noteEventListeners(lowerer, loc);
|
|
1115
1120
|
switch (call.expression.name.text) {
|
|
1116
1121
|
case "timeout":
|
|
1117
|
-
if (call.arguments[0] && ts.isSpreadElement(call.arguments[0])) {
|
|
1122
|
+
if (call.arguments.nodes[0] && ts.isSpreadElement(call.arguments.nodes[0])) {
|
|
1118
1123
|
return null;
|
|
1119
1124
|
}
|
|
1120
|
-
return staticCallWithSurplusArgs(lowerer, call, call.arguments[0]
|
|
1121
|
-
? lowerer.lowerExprExpecting(call.arguments[0], DYN)
|
|
1125
|
+
return staticCallWithSurplusArgs(lowerer, call, call.arguments.nodes[0]
|
|
1126
|
+
? lowerer.lowerExprExpecting(call.arguments.nodes[0], DYN)
|
|
1122
1127
|
: dynUndefinedExpr(loc), (first) => ({
|
|
1123
1128
|
kind: "libCall",
|
|
1124
1129
|
fn: "fetch.abortTimeout",
|
|
@@ -1127,7 +1132,7 @@ export function lowerStaticFetchCompanionCall(lowerer, call) {
|
|
|
1127
1132
|
loc,
|
|
1128
1133
|
}));
|
|
1129
1134
|
case "abort":
|
|
1130
|
-
if (call.arguments.length === 0) {
|
|
1135
|
+
if (call.arguments.nodes.length === 0) {
|
|
1131
1136
|
return {
|
|
1132
1137
|
kind: "libCall",
|
|
1133
1138
|
fn: "fetch.abortNow",
|
|
@@ -1136,9 +1141,9 @@ export function lowerStaticFetchCompanionCall(lowerer, call) {
|
|
|
1136
1141
|
loc,
|
|
1137
1142
|
};
|
|
1138
1143
|
}
|
|
1139
|
-
if (ts.isSpreadElement(call.arguments[0]))
|
|
1144
|
+
if (ts.isSpreadElement(call.arguments.nodes[0]))
|
|
1140
1145
|
return null;
|
|
1141
|
-
return staticCallWithSurplusArgs(lowerer, call, lowerLiveWebValue(lowerer, call.arguments[0]), (first) => ({
|
|
1146
|
+
return staticCallWithSurplusArgs(lowerer, call, lowerLiveWebValue(lowerer, call.arguments.nodes[0]), (first) => ({
|
|
1142
1147
|
kind: "libCall",
|
|
1143
1148
|
fn: "fetch.abortNow",
|
|
1144
1149
|
args: [first],
|
|
@@ -1146,11 +1151,11 @@ export function lowerStaticFetchCompanionCall(lowerer, call) {
|
|
|
1146
1151
|
loc,
|
|
1147
1152
|
}));
|
|
1148
1153
|
case "any":
|
|
1149
|
-
if (call.arguments[0] && ts.isSpreadElement(call.arguments[0])) {
|
|
1154
|
+
if (call.arguments.nodes[0] && ts.isSpreadElement(call.arguments.nodes[0])) {
|
|
1150
1155
|
return null;
|
|
1151
1156
|
}
|
|
1152
|
-
return staticCallWithSurplusArgs(lowerer, call, call.arguments[0]
|
|
1153
|
-
? lowerer.lowerExprExpecting(call.arguments[0], DYN)
|
|
1157
|
+
return staticCallWithSurplusArgs(lowerer, call, call.arguments.nodes[0]
|
|
1158
|
+
? lowerer.lowerExprExpecting(call.arguments.nodes[0], DYN)
|
|
1154
1159
|
: dynUndefinedExpr(loc), (first) => ({
|
|
1155
1160
|
kind: "libCall",
|
|
1156
1161
|
fn: "fetch.abortAny",
|
|
@@ -1164,8 +1169,8 @@ export function lowerStaticFetchCompanionCall(lowerer, call) {
|
|
|
1164
1169
|
}
|
|
1165
1170
|
if (root.text === "ReadableStream" &&
|
|
1166
1171
|
call.expression.name.text === "from" &&
|
|
1167
|
-
(!call.arguments[0] || !ts.isSpreadElement(call.arguments[0]))) {
|
|
1168
|
-
if (!call.arguments[0]) {
|
|
1172
|
+
(!call.arguments.nodes[0] || !ts.isSpreadElement(call.arguments.nodes[0]))) {
|
|
1173
|
+
if (!call.arguments.nodes[0]) {
|
|
1169
1174
|
return {
|
|
1170
1175
|
kind: "libCall",
|
|
1171
1176
|
fn: "fetch.streamFrom",
|
|
@@ -1174,7 +1179,7 @@ export function lowerStaticFetchCompanionCall(lowerer, call) {
|
|
|
1174
1179
|
loc,
|
|
1175
1180
|
};
|
|
1176
1181
|
}
|
|
1177
|
-
let source = lowerer.lowerExpr(call.arguments[0]);
|
|
1182
|
+
let source = lowerer.lowerExpr(call.arguments.nodes[0]);
|
|
1178
1183
|
// A readonly tuple satisfies the fallback's readonly-array overload,
|
|
1179
1184
|
// but maps to a monomorphic record in IR. Reuse the ordinary
|
|
1180
1185
|
// tuple→array width conversion with the resolved generic parameter so
|
|
@@ -1196,7 +1201,7 @@ export function lowerStaticFetchCompanionCall(lowerer, call) {
|
|
|
1196
1201
|
canConvertToDyn(source.type.elem, (id) => lowerer.shapes.get(id), (id) => lowerer.unions.get(id))) ||
|
|
1197
1202
|
source.type.kind === "dyn";
|
|
1198
1203
|
if (!preserve) {
|
|
1199
|
-
lowerer.noLowering(`ReadableStream.from() over ${lowerer.checker.typeToString(lowerer.typeOf(call.arguments[0]))} iterables`, call.arguments[0], "arrays, Uint8Array, and strings are supported — spread other synchronous iterables into an array first: [...iterable]");
|
|
1204
|
+
lowerer.noLowering(`ReadableStream.from() over ${lowerer.checker.typeToString(lowerer.typeOf(call.arguments.nodes[0]))} iterables`, call.arguments.nodes[0], "arrays, Uint8Array, and strings are supported — spread other synchronous iterables into an array first: [...iterable]");
|
|
1200
1205
|
}
|
|
1201
1206
|
return staticCallWithSurplusArgs(lowerer, call, source, (first) => ({
|
|
1202
1207
|
kind: "libCall",
|
|
@@ -1219,7 +1224,7 @@ export function lowerStaticFetchCompanionCall(lowerer, call) {
|
|
|
1219
1224
|
export function lowerStaticAbortControllerCall(lowerer, call) {
|
|
1220
1225
|
const access = call.expression;
|
|
1221
1226
|
if (call.questionDotToken ||
|
|
1222
|
-
call.arguments.some((argument) => ts.isSpreadElement(argument)) ||
|
|
1227
|
+
call.arguments.nodes.some((argument) => ts.isSpreadElement(argument)) ||
|
|
1223
1228
|
(!ts.isPropertyAccessExpression(access) && !ts.isElementAccessExpression(access)) ||
|
|
1224
1229
|
access.questionDotToken ||
|
|
1225
1230
|
staticResponseMemberName(lowerer, access) !== "abort") {
|
|
@@ -1227,25 +1232,24 @@ export function lowerStaticAbortControllerCall(lowerer, call) {
|
|
|
1227
1232
|
}
|
|
1228
1233
|
const receiverTs = lowerer.checker.getBaseTypeOfLiteralType(lowerer.typeOf(access.expression));
|
|
1229
1234
|
const symbol = receiverTs.getAliasSymbol() ?? receiverTs.getSymbol();
|
|
1230
|
-
if (symbol
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
.some((d) => ts.isInterfaceDeclaration(d) && lowerer.isStdlibFile(d.getSourceFile()))) {
|
|
1235
|
+
if (symbol === undefined ||
|
|
1236
|
+
ts.symbolName(symbol) !== "AbortController" ||
|
|
1237
|
+
!symbol.declarations.some((d) => ts.isInterfaceDeclaration(d) && lowerer.isStdlibFile(ts.getSourceFileOfNode(d)))) {
|
|
1234
1238
|
return null;
|
|
1235
1239
|
}
|
|
1236
1240
|
const receiver = lowerer.lowerExpr(access.expression);
|
|
1237
1241
|
if (receiver.type.kind !== "dyn")
|
|
1238
1242
|
return null;
|
|
1239
1243
|
const loc = locOf(call);
|
|
1240
|
-
const first = call.arguments[0]
|
|
1241
|
-
? lowerLiveWebValue(lowerer, call.arguments[0])
|
|
1244
|
+
const first = call.arguments.nodes[0]
|
|
1245
|
+
? lowerLiveWebValue(lowerer, call.arguments.nodes[0])
|
|
1242
1246
|
: dynUndefinedExpr(loc);
|
|
1243
1247
|
const args = [staticFirstArgWithSurplusArgs(lowerer, call, first)];
|
|
1244
1248
|
return lowerStaticFixedFetchMethodCall(lowerer, call, access, "abort", receiver, args, (receiverRef, argumentRefs) => ({
|
|
1245
1249
|
kind: "dynInvoke",
|
|
1246
1250
|
recv: receiverRef,
|
|
1247
1251
|
method: "abort",
|
|
1248
|
-
calleeName:
|
|
1252
|
+
calleeName: ts.getTextOfNode(access),
|
|
1249
1253
|
args: argumentRefs,
|
|
1250
1254
|
type: DYN,
|
|
1251
1255
|
loc,
|
|
@@ -1257,7 +1261,7 @@ export function lowerStaticAbortControllerCall(lowerer, call) {
|
|
|
1257
1261
|
export function lowerStaticReadableStreamControllerCall(lowerer, call) {
|
|
1258
1262
|
const access = call.expression;
|
|
1259
1263
|
if (call.questionDotToken ||
|
|
1260
|
-
call.arguments.length > 1 ||
|
|
1264
|
+
call.arguments.nodes.length > 1 ||
|
|
1261
1265
|
(!ts.isPropertyAccessExpression(access) && !ts.isElementAccessExpression(access)) ||
|
|
1262
1266
|
access.questionDotToken) {
|
|
1263
1267
|
return null;
|
|
@@ -1267,10 +1271,9 @@ export function lowerStaticReadableStreamControllerCall(lowerer, call) {
|
|
|
1267
1271
|
return null;
|
|
1268
1272
|
const receiverTs = lowerer.checker.getBaseTypeOfLiteralType(lowerer.typeOf(access.expression));
|
|
1269
1273
|
const symbol = receiverTs.getAliasSymbol() ?? receiverTs.getSymbol();
|
|
1270
|
-
if (symbol
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
.some((d) => ts.isInterfaceDeclaration(d) && lowerer.isStdlibFile(d.getSourceFile()))) {
|
|
1274
|
+
if (symbol === undefined ||
|
|
1275
|
+
ts.symbolName(symbol) !== "ReadableStreamDefaultController" ||
|
|
1276
|
+
!symbol.declarations.some((d) => ts.isInterfaceDeclaration(d) && lowerer.isStdlibFile(ts.getSourceFileOfNode(d)))) {
|
|
1274
1277
|
return null;
|
|
1275
1278
|
}
|
|
1276
1279
|
const recv = lowerer.lowerExpr(access.expression);
|
|
@@ -1278,13 +1281,15 @@ export function lowerStaticReadableStreamControllerCall(lowerer, call) {
|
|
|
1278
1281
|
return null;
|
|
1279
1282
|
const loc = locOf(call);
|
|
1280
1283
|
const args = [
|
|
1281
|
-
call.arguments
|
|
1284
|
+
call.arguments.nodes[0]
|
|
1285
|
+
? lowerLiveWebValue(lowerer, call.arguments.nodes[0])
|
|
1286
|
+
: dynUndefinedExpr(loc),
|
|
1282
1287
|
];
|
|
1283
1288
|
return lowerStaticFixedFetchMethodCall(lowerer, call, access, member, recv, args, (receiver, argumentRefs) => ({
|
|
1284
1289
|
kind: "dynInvoke",
|
|
1285
1290
|
recv: receiver,
|
|
1286
1291
|
method: member,
|
|
1287
|
-
calleeName:
|
|
1292
|
+
calleeName: ts.getTextOfNode(access),
|
|
1288
1293
|
args: argumentRefs,
|
|
1289
1294
|
type: DYN,
|
|
1290
1295
|
loc,
|
|
@@ -1296,8 +1301,8 @@ export function lowerStaticReadableStreamControllerCall(lowerer, call) {
|
|
|
1296
1301
|
export function lowerStaticReadableStreamCancelCall(lowerer, call) {
|
|
1297
1302
|
const access = call.expression;
|
|
1298
1303
|
if (call.questionDotToken ||
|
|
1299
|
-
call.arguments.length > 1 ||
|
|
1300
|
-
call.arguments.some((argument) => ts.isSpreadElement(argument)) ||
|
|
1304
|
+
call.arguments.nodes.length > 1 ||
|
|
1305
|
+
call.arguments.nodes.some((argument) => ts.isSpreadElement(argument)) ||
|
|
1301
1306
|
(!ts.isPropertyAccessExpression(access) && !ts.isElementAccessExpression(access)) ||
|
|
1302
1307
|
access.questionDotToken ||
|
|
1303
1308
|
staticResponseMemberName(lowerer, access) !== "cancel") {
|
|
@@ -1312,13 +1317,15 @@ export function lowerStaticReadableStreamCancelCall(lowerer, call) {
|
|
|
1312
1317
|
return null;
|
|
1313
1318
|
const loc = locOf(call);
|
|
1314
1319
|
const args = [
|
|
1315
|
-
call.arguments
|
|
1320
|
+
call.arguments.nodes[0]
|
|
1321
|
+
? lowerLiveWebValue(lowerer, call.arguments.nodes[0])
|
|
1322
|
+
: dynUndefinedExpr(loc),
|
|
1316
1323
|
];
|
|
1317
1324
|
return lowerStaticFixedFetchMethodCall(lowerer, call, access, "cancel", receiver, args, (receiverRef, argumentRefs) => ({
|
|
1318
1325
|
kind: "dynInvoke",
|
|
1319
1326
|
recv: receiverRef,
|
|
1320
1327
|
method: "cancel",
|
|
1321
|
-
calleeName:
|
|
1328
|
+
calleeName: ts.getTextOfNode(access),
|
|
1322
1329
|
args: argumentRefs,
|
|
1323
1330
|
type: DYN,
|
|
1324
1331
|
loc,
|
|
@@ -1331,8 +1338,8 @@ export function lowerStaticReadableStreamCancelCall(lowerer, call) {
|
|
|
1331
1338
|
export function lowerStaticAbortSignalListenerCall(lowerer, call) {
|
|
1332
1339
|
const access = call.expression;
|
|
1333
1340
|
if (call.questionDotToken ||
|
|
1334
|
-
call.arguments.length < 2 ||
|
|
1335
|
-
call.arguments.some((arg) => ts.isSpreadElement(arg)) ||
|
|
1341
|
+
call.arguments.nodes.length < 2 ||
|
|
1342
|
+
call.arguments.nodes.some((arg) => ts.isSpreadElement(arg)) ||
|
|
1336
1343
|
(!ts.isPropertyAccessExpression(access) && !ts.isElementAccessExpression(access)) ||
|
|
1337
1344
|
access.questionDotToken) {
|
|
1338
1345
|
return null;
|
|
@@ -1343,10 +1350,9 @@ export function lowerStaticAbortSignalListenerCall(lowerer, call) {
|
|
|
1343
1350
|
}
|
|
1344
1351
|
const receiverTs = lowerer.checker.getBaseTypeOfLiteralType(lowerer.typeOf(access.expression));
|
|
1345
1352
|
const symbol = receiverTs.getAliasSymbol() ?? receiverTs.getSymbol();
|
|
1346
|
-
if ((symbol
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
.some((d) => ts.isInterfaceDeclaration(d) && lowerer.isStdlibFile(d.getSourceFile()))) {
|
|
1353
|
+
if (((symbol === undefined || ts.symbolName(symbol) !== "AbortSignal") &&
|
|
1354
|
+
(symbol === undefined || ts.symbolName(symbol) !== "EventTarget")) ||
|
|
1355
|
+
!symbol.declarations.some((d) => ts.isInterfaceDeclaration(d) && lowerer.isStdlibFile(ts.getSourceFileOfNode(d)))) {
|
|
1350
1356
|
return null;
|
|
1351
1357
|
}
|
|
1352
1358
|
const recv = lowerer.lowerExpr(access.expression);
|
|
@@ -1354,12 +1360,12 @@ export function lowerStaticAbortSignalListenerCall(lowerer, call) {
|
|
|
1354
1360
|
return null;
|
|
1355
1361
|
const loc = locOf(call);
|
|
1356
1362
|
noteEventListeners(lowerer, loc);
|
|
1357
|
-
const args = call.arguments.map((arg, index) => index === 1 ? lowerLiveWebValue(lowerer, arg) : lowerer.lowerExprExpecting(arg, DYN));
|
|
1363
|
+
const args = call.arguments.nodes.map((arg, index) => index === 1 ? lowerLiveWebValue(lowerer, arg) : lowerer.lowerExprExpecting(arg, DYN));
|
|
1358
1364
|
return lowerStaticFixedFetchMethodCall(lowerer, call, access, member, recv, args, (receiver, argumentRefs) => ({
|
|
1359
1365
|
kind: "dynInvoke",
|
|
1360
1366
|
recv: receiver,
|
|
1361
1367
|
method: member,
|
|
1362
|
-
calleeName:
|
|
1368
|
+
calleeName: ts.getTextOfNode(access),
|
|
1363
1369
|
args: argumentRefs,
|
|
1364
1370
|
type: DYN,
|
|
1365
1371
|
loc,
|
|
@@ -1372,7 +1378,7 @@ export function lowerEventTargetNew(lowerer, expr) {
|
|
|
1372
1378
|
const name = stdlibGlobalNameOf(lowerer, expr.expression);
|
|
1373
1379
|
if (name !== "EventTarget" && name !== "Event" && name !== "CustomEvent")
|
|
1374
1380
|
return null;
|
|
1375
|
-
const args = expr.arguments ?? [];
|
|
1381
|
+
const args = expr.arguments?.nodes ?? [];
|
|
1376
1382
|
if (args.some(ts.isSpreadElement))
|
|
1377
1383
|
return null;
|
|
1378
1384
|
const loc = locOf(expr);
|
|
@@ -1408,7 +1414,7 @@ export function lowerAbortControllerNew(lowerer, expr) {
|
|
|
1408
1414
|
const symbol = lowerer.resolveValueSymbol(expr.expression);
|
|
1409
1415
|
if (!symbol || !lowerer.isStdlibSymbol(symbol))
|
|
1410
1416
|
return null;
|
|
1411
|
-
const args = expr.arguments ?? [];
|
|
1417
|
+
const args = expr.arguments?.nodes ?? [];
|
|
1412
1418
|
if (args.some((argument) => ts.isSpreadElement(argument)))
|
|
1413
1419
|
return null;
|
|
1414
1420
|
const loc = locOf(expr);
|
|
@@ -1434,14 +1440,20 @@ export function lowerAbortControllerNew(lowerer, expr) {
|
|
|
1434
1440
|
loc,
|
|
1435
1441
|
};
|
|
1436
1442
|
}
|
|
1443
|
+
/** An import binding of node:stream/web's ReadableStream, which IS the
|
|
1444
|
+
* global class (`import { ReadableStream } from "node:stream/web"`). */
|
|
1445
|
+
function isStreamWebReadableStream(lowerer, ident) {
|
|
1446
|
+
return ident.text === "ReadableStream" && lowerer.isStdlibGlobal(ident, "ReadableStream");
|
|
1447
|
+
}
|
|
1437
1448
|
export function lowerStaticReadableStreamNew(lowerer, expr) {
|
|
1438
1449
|
if (!ts.isIdentifier(expr.expression) || expr.expression.text !== "ReadableStream") {
|
|
1439
1450
|
return null;
|
|
1440
1451
|
}
|
|
1441
1452
|
const symbol = lowerer.resolveValueSymbol(expr.expression);
|
|
1442
|
-
if (!symbol || !lowerer.isStdlibSymbol(symbol))
|
|
1453
|
+
if ((!symbol || !lowerer.isStdlibSymbol(symbol)) &&
|
|
1454
|
+
!isStreamWebReadableStream(lowerer, expr.expression))
|
|
1443
1455
|
return null;
|
|
1444
|
-
const args = expr.arguments ?? [];
|
|
1456
|
+
const args = expr.arguments?.nodes ?? [];
|
|
1445
1457
|
if (args.length > 1)
|
|
1446
1458
|
return null;
|
|
1447
1459
|
const loc = locOf(expr);
|
|
@@ -1463,7 +1475,7 @@ export function lowerFetchWebNew(lowerer, expr) {
|
|
|
1463
1475
|
const name = stdlibGlobalNameOf(lowerer, expr.expression);
|
|
1464
1476
|
if (name !== "Request" && name !== "Headers")
|
|
1465
1477
|
return null;
|
|
1466
|
-
const args = expr.arguments ?? [];
|
|
1478
|
+
const args = expr.arguments?.nodes ?? [];
|
|
1467
1479
|
if (args.some(ts.isSpreadElement))
|
|
1468
1480
|
return null;
|
|
1469
1481
|
const loc = locOf(expr);
|
|
@@ -1485,15 +1497,38 @@ export function lowerFetchWebNew(lowerer, expr) {
|
|
|
1485
1497
|
export function lowerResponseNew(lowerer, expr) {
|
|
1486
1498
|
if (stdlibGlobalNameOf(lowerer, expr.expression) !== "Response")
|
|
1487
1499
|
return null;
|
|
1488
|
-
const args = expr.arguments ?? [];
|
|
1500
|
+
const args = expr.arguments?.nodes ?? [];
|
|
1489
1501
|
if (args.some(ts.isSpreadElement))
|
|
1490
1502
|
return null;
|
|
1491
|
-
|
|
1503
|
+
return lowerResponseConstruction(lowerer, args, locOf(expr), false);
|
|
1504
|
+
}
|
|
1505
|
+
/** Static `Response.json(data, init?)`: the data crosses into the runtime's
|
|
1506
|
+
* checked-dynamic JSON serializer (toJSON hooks included) after ResponseInit
|
|
1507
|
+
* converts, then the response initializes as the constructor does. */
|
|
1508
|
+
export function lowerResponseStaticJson(lowerer, call) {
|
|
1509
|
+
if (call.questionDotToken || !ts.isPropertyAccessExpression(call.expression))
|
|
1510
|
+
return null;
|
|
1511
|
+
const access = call.expression;
|
|
1512
|
+
if (access.questionDotToken || access.name.text !== "json")
|
|
1513
|
+
return null;
|
|
1514
|
+
if (!lowerer.isStdlibGlobal(access.expression, "Response"))
|
|
1515
|
+
return null;
|
|
1516
|
+
if (call.arguments.nodes.some(ts.isSpreadElement) || call.arguments.nodes.length === 0)
|
|
1517
|
+
return null;
|
|
1518
|
+
return lowerResponseConstruction(lowerer, call.arguments.nodes, locOf(call), true);
|
|
1519
|
+
}
|
|
1520
|
+
function lowerResponseConstruction(lowerer, args, loc, json) {
|
|
1492
1521
|
const toDyn = (node, value, what) => {
|
|
1493
1522
|
if (node === undefined)
|
|
1494
1523
|
return dynUndefinedExpr(loc);
|
|
1495
1524
|
if (value.type.kind === "dyn")
|
|
1496
1525
|
return value;
|
|
1526
|
+
if (what === "JSON data") {
|
|
1527
|
+
const boxed = lowerer.coerceToExpected(value, DYN);
|
|
1528
|
+
if (boxed.type.kind === "dyn")
|
|
1529
|
+
return boxed;
|
|
1530
|
+
lowerer.noLowering(`Response.json of '${lowerer.fmt(value.type)}' values`, node, "the data must cross the checked-dynamic boundary (number, string, boolean, null, records, arrays, and 'unknown')");
|
|
1531
|
+
}
|
|
1497
1532
|
/* A user class can satisfy ResponseInit structurally through plain
|
|
1498
1533
|
* fields. Project just the declared dictionary members into a record,
|
|
1499
1534
|
* then use the ordinary checked-dynamic copy. objRecordWidthHelper
|
|
@@ -1598,8 +1633,11 @@ export function lowerResponseNew(lowerer, expr) {
|
|
|
1598
1633
|
}
|
|
1599
1634
|
const result = {
|
|
1600
1635
|
kind: "libCall",
|
|
1601
|
-
fn: "fetch.responseNew",
|
|
1602
|
-
args: [
|
|
1636
|
+
fn: json ? "fetch.responseJsonStatic" : "fetch.responseNew",
|
|
1637
|
+
args: [
|
|
1638
|
+
toDyn(bodyNode, bodyRef, json ? "JSON data" : "a body"),
|
|
1639
|
+
toDyn(initNode, initRef, "an init value"),
|
|
1640
|
+
],
|
|
1603
1641
|
type: DYN,
|
|
1604
1642
|
loc,
|
|
1605
1643
|
};
|
|
@@ -1612,7 +1650,7 @@ export function lowerResponseNew(lowerer, expr) {
|
|
|
1612
1650
|
export function lowerStaticReadableStreamReaderCall(lowerer, call) {
|
|
1613
1651
|
const access = call.expression;
|
|
1614
1652
|
if (call.questionDotToken ||
|
|
1615
|
-
call.arguments.length !== 0 ||
|
|
1653
|
+
call.arguments.nodes.length !== 0 ||
|
|
1616
1654
|
(!ts.isPropertyAccessExpression(access) && !ts.isElementAccessExpression(access)) ||
|
|
1617
1655
|
access.questionDotToken) {
|
|
1618
1656
|
return null;
|
|
@@ -1622,10 +1660,9 @@ export function lowerStaticReadableStreamReaderCall(lowerer, call) {
|
|
|
1622
1660
|
return null;
|
|
1623
1661
|
const receiverTs = lowerer.typeOf(access.expression);
|
|
1624
1662
|
const symbol = receiverTs.getSymbol();
|
|
1625
|
-
if (symbol
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
.some((d) => ts.isInterfaceDeclaration(d) && lowerer.isStdlibFile(d.getSourceFile()))) {
|
|
1663
|
+
if (symbol === undefined ||
|
|
1664
|
+
ts.symbolName(symbol) !== "ReadableStreamDefaultReader" ||
|
|
1665
|
+
!symbol.declarations.some((d) => ts.isInterfaceDeclaration(d) && lowerer.isStdlibFile(ts.getSourceFileOfNode(d)))) {
|
|
1629
1666
|
return null;
|
|
1630
1667
|
}
|
|
1631
1668
|
const type = lowerer.mapTypeOf(lowerer.typeOf(call));
|
|
@@ -1644,15 +1681,15 @@ export function lowerStaticReadableStreamReaderCall(lowerer, call) {
|
|
|
1644
1681
|
export function lowerDynamicImportCall(lowerer, call) {
|
|
1645
1682
|
if (call.expression.kind !== ts.SyntaxKind.ImportKeyword)
|
|
1646
1683
|
return null;
|
|
1647
|
-
const arg = call.arguments[0];
|
|
1684
|
+
const arg = call.arguments.nodes[0];
|
|
1648
1685
|
if (arg === undefined || !ts.isStringLiteralLike(arg)) {
|
|
1649
1686
|
lowerer.unsupported("SC1090", call, "dynamic import() of computed specifiers (the module graph resolves at " +
|
|
1650
1687
|
"build time — the specifier must be a string literal)");
|
|
1651
1688
|
}
|
|
1652
|
-
if (call.arguments.length !== 1) {
|
|
1689
|
+
if (call.arguments.nodes.length !== 1) {
|
|
1653
1690
|
lowerer.unsupported("SC1090", call, "dynamic import() with import attributes");
|
|
1654
1691
|
}
|
|
1655
|
-
const res = lowerer.dynImports.get(`${
|
|
1692
|
+
const res = lowerer.dynImports.get(`${ts.getSourceFileOfNode(call).fileName}\u0000${arg.text}`);
|
|
1656
1693
|
if (res === undefined)
|
|
1657
1694
|
lowerer.refuseUnsupportedApi("'import()'", call);
|
|
1658
1695
|
if (res.kind === "program-module") {
|
|
@@ -1666,7 +1703,7 @@ export function lowerDynamicImportCall(lowerer, call) {
|
|
|
1666
1703
|
/** The checker-resolved program source behind one literal import(). */
|
|
1667
1704
|
function programImportTarget(lowerer, arg) {
|
|
1668
1705
|
const modSym = lowerer.checker.getSymbolAtLocation(arg);
|
|
1669
|
-
for (const d of modSym ?
|
|
1706
|
+
for (const d of modSym ? modSym.declarations : []) {
|
|
1670
1707
|
if (ts.isSourceFile(d) && !d.isDeclarationFile)
|
|
1671
1708
|
return d;
|
|
1672
1709
|
}
|
|
@@ -1816,12 +1853,12 @@ export function lowerStdlibMethodCall(lowerer, call, access) {
|
|
|
1816
1853
|
{
|
|
1817
1854
|
const sigMember = lowerer.stdlibGlobalMember(access, "AbortSignal");
|
|
1818
1855
|
if ((sigMember === "timeout" || sigMember === "abort" || sigMember === "any") &&
|
|
1819
|
-
call.arguments.every((argument) => !ts.isSpreadElement(argument))) {
|
|
1856
|
+
call.arguments.nodes.every((argument) => !ts.isSpreadElement(argument))) {
|
|
1820
1857
|
lowerer.refuseUnsupportedApi(`'AbortSignal.${sigMember}'`, call);
|
|
1821
1858
|
}
|
|
1822
1859
|
}
|
|
1823
1860
|
if (lowerer.stdlibGlobalMember(access, "ReadableStream") === "from" &&
|
|
1824
|
-
call.arguments.every((argument) => !ts.isSpreadElement(argument))) {
|
|
1861
|
+
call.arguments.nodes.every((argument) => !ts.isSpreadElement(argument))) {
|
|
1825
1862
|
lowerer.refuseUnsupportedApi("'ReadableStream.from'", call);
|
|
1826
1863
|
}
|
|
1827
1864
|
const isMath = lowerer.stdlibGlobalMember(access, "Math") !== null;
|
|
@@ -1832,8 +1869,8 @@ export function lowerStdlibMethodCall(lowerer, call, access) {
|
|
|
1832
1869
|
// for undefined, instead of trusting the checker's number type.
|
|
1833
1870
|
const mathArg = (a) => lowerToNumberArgument(lowerer, a);
|
|
1834
1871
|
if (staticMath && name === "hypot") {
|
|
1835
|
-
const elems = call.arguments.map((a) => ts.isSpreadElement(a) ? lowerer.lowerExprExpecting(a.expression, arrayOf(F64)) : mathArg(a));
|
|
1836
|
-
const spreads = call.arguments.flatMap((a, i) => (ts.isSpreadElement(a) ? [i] : []));
|
|
1872
|
+
const elems = call.arguments.nodes.map((a) => ts.isSpreadElement(a) ? lowerer.lowerExprExpecting(a.expression, arrayOf(F64)) : mathArg(a));
|
|
1873
|
+
const spreads = call.arguments.nodes.flatMap((a, i) => (ts.isSpreadElement(a) ? [i] : []));
|
|
1837
1874
|
const packed = {
|
|
1838
1875
|
kind: "arrayLit",
|
|
1839
1876
|
elems,
|
|
@@ -1843,7 +1880,7 @@ export function lowerStdlibMethodCall(lowerer, call, access) {
|
|
|
1843
1880
|
};
|
|
1844
1881
|
return { kind: "libCall", fn: staticMath.fn, args: [packed], type: F64, loc };
|
|
1845
1882
|
}
|
|
1846
|
-
if (staticMath && call.arguments.every((a) => !ts.isSpreadElement(a))) {
|
|
1883
|
+
if (staticMath && call.arguments.nodes.every((a) => !ts.isSpreadElement(a))) {
|
|
1847
1884
|
// Math.max/Math.min at ANY plain arity — Node's are variadic. The
|
|
1848
1885
|
// spec's reduction is a left fold of the same NaN-poisoning
|
|
1849
1886
|
// ±0-ordered scalar compare the two-arg form lowers to, so n
|
|
@@ -1854,18 +1891,18 @@ export function lowerStdlibMethodCall(lowerer, call, access) {
|
|
|
1854
1891
|
// arguments are the fold's seed: -Infinity for max, +Infinity for
|
|
1855
1892
|
// min, exactly Node.
|
|
1856
1893
|
if (name === "max" || name === "min") {
|
|
1857
|
-
if (call.arguments.length === 0) {
|
|
1894
|
+
if (call.arguments.nodes.length === 0) {
|
|
1858
1895
|
return { kind: "numLit", value: name === "max" ? -Infinity : Infinity, type: F64, loc };
|
|
1859
1896
|
}
|
|
1860
|
-
const args = call.arguments.map(mathArg);
|
|
1897
|
+
const args = call.arguments.nodes.map(mathArg);
|
|
1861
1898
|
let acc = args[0];
|
|
1862
1899
|
for (let i = 1; i < args.length; i++) {
|
|
1863
1900
|
acc = { kind: "libCall", fn: staticMath.fn, args: [acc, args[i]], type: F64, loc };
|
|
1864
1901
|
}
|
|
1865
1902
|
return acc;
|
|
1866
1903
|
}
|
|
1867
|
-
if (call.arguments.length === staticMath.arity) {
|
|
1868
|
-
const args = call.arguments.map(mathArg);
|
|
1904
|
+
if (call.arguments.nodes.length === staticMath.arity) {
|
|
1905
|
+
const args = call.arguments.nodes.map(mathArg);
|
|
1869
1906
|
return { kind: "libCall", fn: staticMath.fn, args, type: F64, loc };
|
|
1870
1907
|
}
|
|
1871
1908
|
}
|
|
@@ -1875,9 +1912,9 @@ export function lowerStdlibMethodCall(lowerer, call, access) {
|
|
|
1875
1912
|
// the nest-calls fence.
|
|
1876
1913
|
if (isMath &&
|
|
1877
1914
|
(name === "max" || name === "min") &&
|
|
1878
|
-
call.arguments.length === 1 &&
|
|
1879
|
-
ts.isSpreadElement(call.arguments[0])) {
|
|
1880
|
-
const spread = call.arguments[0];
|
|
1915
|
+
call.arguments.nodes.length === 1 &&
|
|
1916
|
+
ts.isSpreadElement(call.arguments.nodes[0])) {
|
|
1917
|
+
const spread = call.arguments.nodes[0];
|
|
1881
1918
|
let src = lowerer.lowerExpr(spread.expression);
|
|
1882
1919
|
// JavaScript array call results retain checked storage so aliases stay
|
|
1883
1920
|
// shared. This read-only fold can extract the inferred numeric array.
|
|
@@ -1887,6 +1924,11 @@ export function lowerStdlibMethodCall(lowerer, call, access) {
|
|
|
1887
1924
|
src = lowerer.coerceInto(spread.expression, src, inferred);
|
|
1888
1925
|
}
|
|
1889
1926
|
}
|
|
1927
|
+
// A generator, or a class whose [Symbol.iterator] is a generator
|
|
1928
|
+
// method, drains into the number[] the fold reads.
|
|
1929
|
+
src = classGeneratorIterable(lowerer, src) ?? src;
|
|
1930
|
+
if (src.type.kind === "generator")
|
|
1931
|
+
src = generatorDrain(lowerer, src, F64, loc) ?? src;
|
|
1890
1932
|
if (src.type.kind !== "array" || src.type.elem.kind !== "f64") {
|
|
1891
1933
|
lowerer.unsupported("SC1090", spread, `spreading '${lowerer.fmt(src.type)}' into Math.${name} (only a number[] spreads)`);
|
|
1892
1934
|
}
|
|
@@ -1899,7 +1941,7 @@ export function lowerStdlibMethodCall(lowerer, call, access) {
|
|
|
1899
1941
|
};
|
|
1900
1942
|
}
|
|
1901
1943
|
const mathFn = isMath ? own(STDLIB_SURFACE.math.fns, name) : undefined;
|
|
1902
|
-
if (mathFn && call.arguments.length === mathFn.args.length) {
|
|
1944
|
+
if (mathFn && call.arguments.nodes.length === mathFn.args.length) {
|
|
1903
1945
|
lowerer.refuseUnsupportedApi(`'Math.${name}'`, call);
|
|
1904
1946
|
}
|
|
1905
1947
|
const kind = lowerer.mapTypeOf(lowerer.typeOf(access.expression))?.kind;
|
|
@@ -1908,7 +1950,7 @@ export function lowerStdlibMethodCall(lowerer, call, access) {
|
|
|
1908
1950
|
: kind === "string"
|
|
1909
1951
|
? own(STDLIB_SURFACE.string, name)
|
|
1910
1952
|
: undefined;
|
|
1911
|
-
if (!entry || call.arguments.length !== entry.args.length)
|
|
1953
|
+
if (!entry || call.arguments.nodes.length !== entry.args.length)
|
|
1912
1954
|
return null;
|
|
1913
1955
|
if (!lowerer.isStdlibMember(access))
|
|
1914
1956
|
return null;
|
|
@@ -1975,11 +2017,11 @@ export function npmMemberFence(lowerer, access) {
|
|
|
1975
2017
|
* npmPackageOf, also asked directly for import-alias bindings (whose
|
|
1976
2018
|
* aliased symbol is the package's export). */
|
|
1977
2019
|
export function npmPackageOfSymbol(lowerer, sym) {
|
|
1978
|
-
const decls = sym ?
|
|
2020
|
+
const decls = sym ? sym.declarations : undefined;
|
|
1979
2021
|
if (!decls || decls.length === 0)
|
|
1980
2022
|
return null;
|
|
1981
|
-
if (!decls.every((d) => lowerer.isNpmFile(
|
|
2023
|
+
if (!decls.every((d) => lowerer.isNpmFile(ts.getSourceFileOfNode(d))))
|
|
1982
2024
|
return null;
|
|
1983
|
-
return npmPackageNameOf(decls[0]
|
|
2025
|
+
return npmPackageNameOf(ts.getSourceFileOfNode(decls[0]).fileName);
|
|
1984
2026
|
}
|
|
1985
2027
|
//# sourceMappingURL=lower-stdlib.js.map
|