@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
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import type { ConstructorReturnPlan } from "./constructor-returns.js";
|
|
1
2
|
import { type CycleInitFlag } from "./cycle-initialization.js";
|
|
3
|
+
import { type JsonRequireModule } from "./json-require.js";
|
|
4
|
+
import { type EarlyReference, type RequireInitFlag } from "./require-initialization.js";
|
|
5
|
+
import { KeyOrderNotes } from "./key-order-witness.js";
|
|
6
|
+
import { type WasmModuleReport } from "../../wasm/discover.js";
|
|
2
7
|
import type { FieldLift } from "./coercions/structural-plans.js";
|
|
3
8
|
import { CoercionState } from "./coercions/state.js";
|
|
4
9
|
import { NarrowingStability } from "./narrowing-stability.js";
|
|
@@ -10,8 +15,10 @@ import type { WidthLift } from "./width-lift.js";
|
|
|
10
15
|
import { type FnCtx } from "./function-context.js";
|
|
11
16
|
import type { FrontendServices } from "../services.js";
|
|
12
17
|
import { type ProtocolDispatch } from "./class-protocol-dispatch.js";
|
|
18
|
+
import { type DynamicFunction } from "../../ir/tiers.js";
|
|
19
|
+
import { type TierMode, type TierReport } from "../tier-analysis.js";
|
|
13
20
|
import { DeferredModuleInitializers } from "./deferred-module-initializers.js";
|
|
14
|
-
import type
|
|
21
|
+
import { type ClassSymbolKey } from "./symbol-fields.js";
|
|
15
22
|
import type { HttpClientFnBinding } from "./lower-server.js";
|
|
16
23
|
export type { WidthLift } from "./width-lift.js";
|
|
17
24
|
export { newFnCtx, type FnCtx } from "./function-context.js";
|
|
@@ -23,6 +30,7 @@ import type { IrClassDef, IrExpr, IrFfiImport, IrFunction, IrGlobal, IrLocal, Ir
|
|
|
23
30
|
import { type StartupCrash } from "../program.js";
|
|
24
31
|
import { ShapeRegistry, type TypeMapperCtx, UnionRegistry } from "../type-mapper.js";
|
|
25
32
|
import { type CompoundOp, type StdlibFnEntry, type BuiltinModuleFn } from "./surfaces.js";
|
|
33
|
+
import { type BuiltinClassRef } from "./builtins/class-values.js";
|
|
26
34
|
import { type FileParts } from "./lower-modules.js";
|
|
27
35
|
import { type ClassInfo, type ClassIteratorInfo, type GenericClassInfo, findStaticOn } from "./lower-classes.js";
|
|
28
36
|
import { type MixinFnShape } from "./lower-mixins.js";
|
|
@@ -59,6 +67,15 @@ export type StaticCallableProjection = {
|
|
|
59
67
|
kind: "promisified-builtin";
|
|
60
68
|
module: string;
|
|
61
69
|
member: string;
|
|
70
|
+
} | {
|
|
71
|
+
kind: "promisified-zlib";
|
|
72
|
+
member: string;
|
|
73
|
+
} | {
|
|
74
|
+
kind: "promisified-crypto";
|
|
75
|
+
member: string;
|
|
76
|
+
} | {
|
|
77
|
+
kind: "promisified-dns";
|
|
78
|
+
member: string;
|
|
62
79
|
};
|
|
63
80
|
/** Own-property lookup for the surface tables. They are plain object
|
|
64
81
|
* literals, so a bare `table[name]` would also find Object.prototype
|
|
@@ -73,6 +90,9 @@ export interface LowerStats {
|
|
|
73
90
|
statementsFailed: number;
|
|
74
91
|
/** Functions whose signature couldn't be analyzed (bodies not counted). */
|
|
75
92
|
functionsSkipped: number;
|
|
93
|
+
/** Coverage only: reached statements that compile into dynamic-tier
|
|
94
|
+
* functions (tier-analysis.ts), a subset of the compiled statements. */
|
|
95
|
+
statementsDynamic?: number;
|
|
76
96
|
}
|
|
77
97
|
/** Every identifier a binding name binds: the identifier itself, or all
|
|
78
98
|
* identifiers of a (possibly nested) destructuring pattern in source
|
|
@@ -110,18 +130,29 @@ export interface LowerResult {
|
|
|
110
130
|
stats: LowerStats;
|
|
111
131
|
runtimeFences?: ScrDiagnostic[];
|
|
112
132
|
};
|
|
133
|
+
/** Coverage only: the WebAssembly modules the build can see (wasm/discover.ts). */
|
|
134
|
+
wasmModules?: WasmModuleReport[];
|
|
113
135
|
/** Compile-time-detectable behavior differences from Node (SC6xxx
|
|
114
136
|
* divergence warnings) in the program's own modules. Never failures. */
|
|
115
137
|
divergences?: ScrDiagnostic[];
|
|
138
|
+
/** Functions lowering placed in the dynamic tier (ir/tiers.ts), present
|
|
139
|
+
* when there are any. */
|
|
140
|
+
dynamicFunctions?: DynamicFunction[];
|
|
141
|
+
/** LowerOptions.tierReport: the report-only tier assignment. */
|
|
142
|
+
tiers?: TierReport;
|
|
116
143
|
}
|
|
117
144
|
export interface LowerOptions {
|
|
118
145
|
/** Parser/checker services owned by the load; required for npm graph analysis. */
|
|
119
146
|
frontendServices?: FrontendServices | undefined;
|
|
147
|
+
/** The project's tsconfig sets `checkJs` (see isCheckedJsSourceFile). */
|
|
148
|
+
projectCheckJs?: boolean;
|
|
120
149
|
/** Coverage: additionally lower the unreached remainder (bodies nothing
|
|
121
150
|
* on the entry path reaches) in a throwaway pass and report its
|
|
122
151
|
* diagnostics and stats under `unreached` — the whole-program analysis
|
|
123
152
|
* builds deliberately gave up. */
|
|
124
153
|
coverage?: boolean;
|
|
154
|
+
/** Coverage only: module files named by --wasm (absolute). */
|
|
155
|
+
wasmFiles?: readonly string[];
|
|
125
156
|
/** The platform the build TARGETS ("win32" under a windows cross triple,
|
|
126
157
|
* the host platform otherwise — see buildTargetPlatform in index.ts).
|
|
127
158
|
* The whole program compiles for one platform, so the platform-keyed
|
|
@@ -134,6 +165,8 @@ export interface LowerOptions {
|
|
|
134
165
|
* resolution walk and named-import link checks): the program
|
|
135
166
|
* compiles to that startup crash. */
|
|
136
167
|
startupCrash?: StartupCrash | null;
|
|
168
|
+
/** LoadResult.inlineRequireCycleCalls. */
|
|
169
|
+
inlineRequireCycleCalls?: ReadonlySet<ts.Node> | undefined;
|
|
137
170
|
/** LIBRARY mode's reachability roots: the profile-mapped exports of the
|
|
138
171
|
* entry module. Executable builds root at the entry's top level alone
|
|
139
172
|
* (an unreferenced export dead-strips); a library's exports are called from
|
|
@@ -159,6 +192,14 @@ export interface LowerOptions {
|
|
|
159
192
|
/** The mapped entries plus relative declaration dependencies, attributed
|
|
160
193
|
* to their owning external specifier. */
|
|
161
194
|
externalTypeSpecifiersByFile?: ReadonlyMap<string, readonly string[]>;
|
|
195
|
+
/** `--tier` (tier-analysis.ts); "auto" when absent. */
|
|
196
|
+
tierMode?: TierMode;
|
|
197
|
+
/** Coverage only: compute the tier-assignment report (`--explain-dynamic`).
|
|
198
|
+
* `preflight` holds the import and package refusals coverage reports
|
|
199
|
+
* beside the lowering's own blockers; they request module demotions. */
|
|
200
|
+
tierReport?: {
|
|
201
|
+
preflight: readonly ScrDiagnostic[];
|
|
202
|
+
};
|
|
162
203
|
}
|
|
163
204
|
interface RuntimeFenceFallback {
|
|
164
205
|
code: `SC${number}`;
|
|
@@ -192,38 +233,52 @@ interface RuntimeFenceClosureTarget extends Omit<RuntimeFenceFunctionTarget, "ki
|
|
|
192
233
|
}
|
|
193
234
|
/** The Lowerer's pass configuration (see lowerToIr). */
|
|
194
235
|
export interface LowererMode {
|
|
236
|
+
/** Symbols whose deferred diagnostics reachable emit already flushed —
|
|
237
|
+
* the remainder must not report them a second time. */
|
|
238
|
+
alreadyFlushed?: ReadonlySet<ts.Symbol>;
|
|
239
|
+
/** LowerOptions.externalTypes, threaded through every lowering pass. */
|
|
240
|
+
externalTypes?: ReadonlyMap<string, string>;
|
|
241
|
+
/** LowerOptions.externalTypeSpecifiersByFile, shared by every pass. */
|
|
242
|
+
externalTypeSpecifiersByFile?: ReadonlyMap<string, readonly string[]>;
|
|
243
|
+
/** Program-validated ambient declaration symbols for each FFI name.
|
|
244
|
+
* Undefined in discovery's legacy call-local validation path. */
|
|
245
|
+
ffiBindingSymbols?: ReadonlyMap<string, ReadonlySet<ts.Symbol>>;
|
|
246
|
+
/** The build's outbound native FFI declarations. */
|
|
247
|
+
ffiImports?: readonly IrFfiImport[];
|
|
248
|
+
/** Statically resolved child_process.fork program roots, in stable target-id order. */
|
|
249
|
+
forkTargets?: readonly ts.SourceFile[];
|
|
195
250
|
frontendServices?: FrontendServices | undefined;
|
|
251
|
+
/** The program's general stream representation (TypeMapperCtx.
|
|
252
|
+
* generalNodeStreams). lowerToIr turns it on only after a pass without
|
|
253
|
+
* it saw a stream flow that needs it (requiresGeneralNodeStreams). */
|
|
254
|
+
generalNodeStreams?: boolean;
|
|
255
|
+
/** With generalNodeStreams, the checked-dynamic stream slots
|
|
256
|
+
* (TypeMapperCtx.dynNodeStreams). lowerToIr turns it on only after a
|
|
257
|
+
* pass saw an untyped value flow into a stream slot
|
|
258
|
+
* (requiresDynNodeStreams). */
|
|
259
|
+
dynNodeStreams?: boolean;
|
|
260
|
+
/** LoadResult.inlineRequireCycleCalls. */
|
|
261
|
+
inlineRequireCycleCalls?: ReadonlySet<ts.Node> | undefined;
|
|
262
|
+
/** LowerOptions.libraryCallbacks (see there). */
|
|
263
|
+
libraryCallbacks?: boolean;
|
|
264
|
+
projectCheckJs?: boolean;
|
|
196
265
|
/** Names of bodies a prior reachability pass reached; null lowers everything. */
|
|
197
266
|
reachable?: ReadonlySet<string> | null;
|
|
198
267
|
/** Coverage remainder: lower ONLY bodies outside `reachable`, skip the
|
|
199
268
|
* always-reachable init bodies and module building, and report deferred
|
|
200
269
|
* collection diagnostics nothing flushed. */
|
|
201
270
|
remainder?: boolean;
|
|
202
|
-
/** Symbols whose deferred diagnostics reachable emit already flushed —
|
|
203
|
-
* the remainder must not report them a second time. */
|
|
204
|
-
alreadyFlushed?: ReadonlySet<ts.Symbol>;
|
|
205
|
-
/** The build's target platform (LowerOptions.targetPlatform — lowerToIr
|
|
206
|
-
* passes it to every pass). Defaults to the host. */
|
|
207
|
-
targetPlatform?: string;
|
|
208
271
|
/** Node's startup refusal (preflight's resolution walk / named-import
|
|
209
272
|
* link checks): %main opens with exactly this throw, before any
|
|
210
273
|
* module init — Node refuses the whole graph before anything evaluates,
|
|
211
274
|
* so nothing runs. */
|
|
212
275
|
startupCrash?: StartupCrash | null;
|
|
213
|
-
/** The build's
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
forkTargets?: readonly ts.SourceFile[];
|
|
276
|
+
/** The build's target platform (LowerOptions.targetPlatform — lowerToIr
|
|
277
|
+
* passes it to every pass). Defaults to the host. */
|
|
278
|
+
targetPlatform?: string;
|
|
279
|
+
/** LowerOptions.tierMode, shared by every pass. */
|
|
280
|
+
tierMode?: TierMode;
|
|
219
281
|
workerTargets?: readonly ts.SourceFile[];
|
|
220
|
-
/** Program-validated ambient declaration symbols for each FFI name.
|
|
221
|
-
* Undefined in discovery's legacy call-local validation path. */
|
|
222
|
-
ffiBindingSymbols?: ReadonlyMap<string, ReadonlySet<ts.Symbol>>;
|
|
223
|
-
/** LowerOptions.externalTypes, threaded through every lowering pass. */
|
|
224
|
-
externalTypes?: ReadonlyMap<string, string>;
|
|
225
|
-
/** LowerOptions.externalTypeSpecifiersByFile, shared by every pass. */
|
|
226
|
-
externalTypeSpecifiersByFile?: ReadonlyMap<string, readonly string[]>;
|
|
227
282
|
}
|
|
228
283
|
/** Build lowering runs as a reachability worklist over the ts.Program:
|
|
229
284
|
*
|
|
@@ -292,6 +347,15 @@ export declare class Lowerer {
|
|
|
292
347
|
readonly checker: ts.TypeChecker;
|
|
293
348
|
readonly diags: ScrDiagnostic[];
|
|
294
349
|
readonly fnSigsBySymbol: Map<ts.Symbol, FnSig>;
|
|
350
|
+
/** Per file: whether it assigns `exports` and `module.exports`
|
|
351
|
+
* (cjs-exports-object.ts). */
|
|
352
|
+
readonly cjsExportsAssignments: Map<ts.SourceFile, {
|
|
353
|
+
exports: boolean;
|
|
354
|
+
moduleExports: boolean;
|
|
355
|
+
}>;
|
|
356
|
+
/** Inline require() calls whose module edge closes a require cycle
|
|
357
|
+
* (LoadResult.inlineRequireCycleCalls). */
|
|
358
|
+
readonly inlineRequireCycleCalls: ReadonlySet<ts.Node>;
|
|
295
359
|
/** Immutable callable aliases and compiler-generated adapters. The map
|
|
296
360
|
* is symbol-keyed, so shadowing and cross-module imports keep the same
|
|
297
361
|
* exact binding discipline as globals/functions. */
|
|
@@ -380,10 +444,32 @@ export declare class Lowerer {
|
|
|
380
444
|
/** Non-null while an instance body lowers: type-parameter symbol →
|
|
381
445
|
* concrete IR type, consulted inside mapType's recursion. */
|
|
382
446
|
typeParamBindings: Map<ts.Symbol, IrType> | null;
|
|
447
|
+
/** Generic lambdas lowering as erased values (lowerLambda): their own
|
|
448
|
+
* type parameters are bound to `unknown`, so lambdaSignature admits
|
|
449
|
+
* them. */
|
|
450
|
+
readonly erasingLambdas: Set<import("../ts7/ast-node.js").AstNode>;
|
|
451
|
+
/** Function expressions lowered against a fixed target signature with a
|
|
452
|
+
* tuple-typed `arguments` (typed-arguments.ts). */
|
|
453
|
+
readonly typedArgumentsLambdas: Set<import("../ts7/ast-node.js").AstNode>;
|
|
454
|
+
/** Const bindings holding a forwarded fixed tuple (`const args =
|
|
455
|
+
* arguments as any` in a typed-arguments function) → the tuple type. */
|
|
456
|
+
readonly tupleAliasSymbols: Map<ts.Symbol, IrType>;
|
|
457
|
+
/** `??` expressions whose result is the optional callback's own function
|
|
458
|
+
* type (an adapted function default); their bindings take that type. */
|
|
459
|
+
readonly nullishFuncResults: Set<import("../ts7/ast-node.js").AstNode>;
|
|
460
|
+
/** The static names of the current generic instance's name-keyed
|
|
461
|
+
* function parameters (static-function-names.ts). */
|
|
462
|
+
staticFnNames: Map<ts.Symbol, string | null> | null;
|
|
463
|
+
/** Nesting depth of erased generic bodies being lowered (erased lambdas
|
|
464
|
+
* and erased instances). */
|
|
465
|
+
erasingDepth: number;
|
|
383
466
|
localClassInstantiations: {
|
|
384
467
|
owner: ts.FunctionLikeDeclaration;
|
|
385
468
|
name: string;
|
|
386
469
|
}[];
|
|
470
|
+
/** Instance types (by checker type id) of the local classes generic
|
|
471
|
+
* factory calls return, and the per-instance class each names. */
|
|
472
|
+
readonly localClassInstanceTypes: Map<number, string>;
|
|
387
473
|
/** The ts-level twin of typeParamBindings, non-null while a CALL-keyed
|
|
388
474
|
* instance body lowers: type-parameter symbol → the bound CHECKER type,
|
|
389
475
|
* consulted where the mapped IrType has already widened away information
|
|
@@ -397,6 +483,19 @@ export declare class Lowerer {
|
|
|
397
483
|
* typeParamBindings — the checker has no `T` to substitute, so the
|
|
398
484
|
* binding rides the node-type accessor instead of mapType. */
|
|
399
485
|
implicitParamTypes: Map<ts.Symbol, ts.Type> | null;
|
|
486
|
+
/** The builtin class each binding names (`const E = EventEmitter`,
|
|
487
|
+
* `const C = zlib.Gzip`), keyed by the binding's symbol; null for
|
|
488
|
+
* bindings that name none (builtinClassAliasOf). new, instanceof,
|
|
489
|
+
* typeof, .name and === resolve at compile time. */
|
|
490
|
+
readonly builtinClassAliases: Map<ts.Symbol, BuiltinClassRef | null>;
|
|
491
|
+
/** Whether some net.Socket in this program may get an encoding: a
|
|
492
|
+
* setEncoding call whose receiver is a socket or an untyped value.
|
|
493
|
+
* Computed once on first use (null until then). */
|
|
494
|
+
socketEncodingReachable: boolean | null;
|
|
495
|
+
/** Whether some server in this program may listen on a Unix socket: a
|
|
496
|
+
* listen call whose first argument is a string. Computed once on first
|
|
497
|
+
* use (null until then); address() answers the path only when true. */
|
|
498
|
+
unixListenReachable: boolean | null;
|
|
400
499
|
/** IMPLICIT-ANY instances lowered EAGERLY at first demand (their return
|
|
401
500
|
* types are inferred from the body — the call site needs them settled),
|
|
402
501
|
* collected here for run()'s function list (the liftedFns discipline). */
|
|
@@ -412,8 +511,13 @@ export declare class Lowerer {
|
|
|
412
511
|
* their symbol/node keys; no module-level cache should retain a pass. */
|
|
413
512
|
readonly classSymbolKeys: Map<ts.Symbol, ClassSymbolKey | null>;
|
|
414
513
|
readonly registeredClassSymbols: Map<string, ts.Symbol>;
|
|
514
|
+
/** Symbol-key identities by description, in resolution order (the slot
|
|
515
|
+
* ordinals of key-table keys — symbolKeyOf). */
|
|
516
|
+
readonly symbolFieldIdentities: Map<string, ts.Symbol[]>;
|
|
415
517
|
readonly httpClientFnBindings: Map<ts.Symbol, HttpClientFnBinding>;
|
|
416
518
|
streamPropMutatedSyms: Set<ts.Symbol> | null;
|
|
519
|
+
/** Whether some source reads process.exitCode (processReadsExitCode). */
|
|
520
|
+
readsExitCode: boolean | null;
|
|
417
521
|
requestInitPropMutatedSyms: Set<ts.Symbol> | null;
|
|
418
522
|
emitterEventTable: Map<string, EventSig> | null;
|
|
419
523
|
emitterComputedPatterns: ComputedEventPattern[];
|
|
@@ -442,6 +546,12 @@ export declare class Lowerer {
|
|
|
442
546
|
* carry undefined at runtime. Identifier reads keep the union tag so
|
|
443
547
|
* typeof and later boundaries observe the real value. */
|
|
444
548
|
readonly runtimeOptionalGlobals: Set<IrGlobal>;
|
|
549
|
+
/** Per CommonJS file using top-level `this`: the global holding the
|
|
550
|
+
* object that stands for its original exports (lowerCjsTopLevelThis). */
|
|
551
|
+
readonly cjsExportsThis: Map<ts.SourceFile, IrGlobal>;
|
|
552
|
+
/** Inline program-module require calls whose %init the enclosing member
|
|
553
|
+
* read or member call is already sequencing (cjs-inline-require.ts). */
|
|
554
|
+
readonly inlineRequireInitDone: Set<ts.CallExpression>;
|
|
445
555
|
/** Bindings whose unchecked string arithmetic can produce either a number
|
|
446
556
|
* (NaN for an absent read) or a string. Preserve that result union at bare
|
|
447
557
|
* reads instead of applying the checker-bare string narrowing adapter. */
|
|
@@ -454,7 +564,9 @@ export declare class Lowerer {
|
|
|
454
564
|
/** A pipeline() function stage's `source` parameter: the IR type of what
|
|
455
565
|
* the pipeline passes it (the previous stage as an async iterable), set
|
|
456
566
|
* while the stage lowers. Parameter typing and `for await` heads read
|
|
457
|
-
* it before the checker's `AsyncIterable<T>`.
|
|
567
|
+
* it before the checker's `AsyncIterable<T>`. A stream option callback's
|
|
568
|
+
* completion parameter declared with an any-typed `data` is pinned here
|
|
569
|
+
* too while the callback lowers (pinAnyDataCompletion). */
|
|
458
570
|
readonly stageSourceTypes: Map<ts.Symbol, IrType>;
|
|
459
571
|
/** Set when a match result lowers to execGroups/matchGroups, the inputs
|
|
460
572
|
* of regex span folding. */
|
|
@@ -464,6 +576,10 @@ export declare class Lowerer {
|
|
|
464
576
|
* declared optional binding to that read's bare type, so presence tests
|
|
465
577
|
* on these bindings consult the stored tag instead. */
|
|
466
578
|
readonly runtimeOptionalAssignedSymbols: Set<ts.Symbol>;
|
|
579
|
+
/** Generic function declarations whose body can return an indexed read
|
|
580
|
+
* that misses.
|
|
581
|
+
* Each instance's result admits undefined (generic-functions.ts). */
|
|
582
|
+
readonly runtimeOptionalGenericReturns: Set<import("../ts7/ast-node.js").AstNode>;
|
|
467
583
|
/** Concise callback/lambda returns promoted by the HOF callback prepass;
|
|
468
584
|
* arrows have no declaration symbol to key in fnSigsBySymbol. */
|
|
469
585
|
readonly runtimeOptionalFunctionReturns: Map<import("../ts7/ast-node.js").AstNode, IrType>;
|
|
@@ -477,6 +593,8 @@ export declare class Lowerer {
|
|
|
477
593
|
/** Record fields promoted to an undefined-armed union by an indexed-read
|
|
478
594
|
* value. The key is the concrete emitted shape and field name. */
|
|
479
595
|
readonly runtimeOptionalFields: Set<string>;
|
|
596
|
+
/** Bindings initialized by a Date's `toJSON()` (analyzeDateJsonResults). */
|
|
597
|
+
readonly dateJsonBindings: Set<ts.Symbol>;
|
|
480
598
|
/** Record bindings whose flow class reaches storage outside the class:
|
|
481
599
|
* they keep the declared layout, so an initializer from unchecked reads
|
|
482
600
|
* converts once instead of the binding adopting the widened variant. */
|
|
@@ -505,11 +623,29 @@ export declare class Lowerer {
|
|
|
505
623
|
runtimeOptionalRootOf(local: IrLocal): IrLocal;
|
|
506
624
|
runtimeOptionalBindingType(node: ts.Node): IrType | null;
|
|
507
625
|
runtimeOptionalBindingType(node: ts.Node, fallback: IrType): IrType;
|
|
626
|
+
/** A TypeScript object literal handed to a JavaScript checked-value
|
|
627
|
+
* parameter whose inferred type is open (`constructor({ factory, ...options
|
|
628
|
+
* } = {})` — the rest element admits any property): the literal names a
|
|
629
|
+
* property the contextual JS type does not declare, so it has no record
|
|
630
|
+
* layout there and is built as the plain object the JS side receives. */
|
|
631
|
+
private excessJsContextualProperty;
|
|
632
|
+
/** The index value of a keyed read of a record's index signature that
|
|
633
|
+
* can answer undefined for a missing key while its checker type does not
|
|
634
|
+
* admit undefined, or null. A literal key naming a declared field is a
|
|
635
|
+
* field read. */
|
|
636
|
+
optionalIndexSignatureRead(e: ts.ElementAccessExpression): IrType | null;
|
|
508
637
|
runtimeOptionalIdentifierValue(node: ts.Expression): {
|
|
509
638
|
value: IrExpr;
|
|
510
639
|
present: IrType;
|
|
511
640
|
unionId: string;
|
|
512
641
|
} | null;
|
|
642
|
+
/** True when `node`'s lowered value can hold a hidden `undefined` the
|
|
643
|
+
* checker type does not admit: an unchecked element or member read, a call
|
|
644
|
+
* whose lowered return admits undefined, or a binding whose storage the
|
|
645
|
+
* optional-read analysis marked. Whether the value actually carries the
|
|
646
|
+
* undefined arm is only known once it is lowered
|
|
647
|
+
* (runtimeOptionalSourceValue); this is the syntactic precondition. */
|
|
648
|
+
isRuntimeOptionalOrigin(node: ts.Expression): boolean;
|
|
513
649
|
/** Recover the original optional union when a checked single-arm helper
|
|
514
650
|
* was installed before a strict property consumer could name its member.
|
|
515
651
|
* Recovery covers member reads and storage roots marked by the
|
|
@@ -520,7 +656,7 @@ export declare class Lowerer {
|
|
|
520
656
|
* value. Reuse a plain read directly or stabilize an effectful receiver
|
|
521
657
|
* once, throw Node's member-read TypeError for a unit arm, and extract the
|
|
522
658
|
* expected present arm otherwise. */
|
|
523
|
-
runtimeOptionalPropertyReceiver(node: ts.Expression, value: IrExpr, expected: IrType, member: string): IrExpr | null;
|
|
659
|
+
runtimeOptionalPropertyReceiver(node: ts.Expression, value: IrExpr, expected: IrType, member: string, action?: "read" | "set"): IrExpr | null;
|
|
524
660
|
runtimeOptionalFieldKey(shapeId: string, field: string): string;
|
|
525
661
|
isRuntimeOptionalField(shapeId: string, field: string): boolean;
|
|
526
662
|
isRuntimeOptionalGlobal(global: IrGlobal): boolean;
|
|
@@ -571,10 +707,28 @@ export declare class Lowerer {
|
|
|
571
707
|
/** Settled generic class-rest metadata requires the historical emit
|
|
572
708
|
* fallback so its fence can poison the original statement atomically. */
|
|
573
709
|
requiresHistoricalOrderRelower: boolean;
|
|
710
|
+
/** A general stream value (a runtime stream class instance) reached a
|
|
711
|
+
* slot the child/process stdio handles represent — NodeJS.ReadableStream,
|
|
712
|
+
* NodeJS.WritableStream, or @types/node's stream.Readable/Writable — or
|
|
713
|
+
* a stdio handle reached an 'unknown' slot. lowerToIr then lowers the
|
|
714
|
+
* program again under the general stream representation. */
|
|
715
|
+
requiresGeneralNodeStreams: boolean;
|
|
716
|
+
/** An untyped value reached a stream slot (a checked unwrap into a
|
|
717
|
+
* runtime stream class, or an untyped pipe/pipeline stage). lowerToIr
|
|
718
|
+
* then lowers the program again with checked-dynamic stream slots
|
|
719
|
+
* (dyn-streams.ts). */
|
|
720
|
+
requiresDynNodeStreams: boolean;
|
|
721
|
+
/** Receiver representations forced by the per-value stream dispatch
|
|
722
|
+
* (dyn-streams.ts): the native arm lowers a member call on the unboxed
|
|
723
|
+
* stream through the ordinary class-method path. */
|
|
724
|
+
readonly receiverTypeOverrides: Map<import("../ts7/ast-node.js").AstNode, IrType>;
|
|
574
725
|
/** Helpers that snapshot shape declaration order into their bodies.
|
|
575
726
|
* Reachability lowers inits before the declarations they discover, so
|
|
576
727
|
* these rebuild after the worklist restores historical shape metadata. */
|
|
577
728
|
readonly shapeOrderHelperFinalizers: (() => void)[];
|
|
729
|
+
/** Construction witnesses that choose each shape's enumeration order
|
|
730
|
+
* once lowering settles (key-order-witness.ts). */
|
|
731
|
+
readonly keyOrder: KeyOrderNotes;
|
|
578
732
|
/** Emit-override specializations (`%C.emit:<event>` — lower-event-emitter.ts's
|
|
579
733
|
* emit-overrides block): interned names, the drive-loop queue, and the
|
|
580
734
|
* currently-lowering specialization's context (the super-forward
|
|
@@ -586,6 +740,9 @@ export declare class Lowerer {
|
|
|
586
740
|
/** Generated value helpers, keyed by operation and type. Callers own
|
|
587
741
|
* their key prefixes; this includes more than structural conversions. */
|
|
588
742
|
readonly valueHelpers: Map<string, string>;
|
|
743
|
+
/** structuralNarrowing's assignable classes, keyed by static and
|
|
744
|
+
* narrowed class name. */
|
|
745
|
+
readonly structuralClassPeers: Map<string, readonly string[]>;
|
|
589
746
|
/** Interned node:assert helpers (deep-equality comparisons keyed by
|
|
590
747
|
* typeKey, throws wrappers keyed by callback type + expected class) —
|
|
591
748
|
* the valueHelpers pattern with its own namespace. */
|
|
@@ -606,6 +763,16 @@ export declare class Lowerer {
|
|
|
606
763
|
/** Method adapter names are owned by class-method-values. Looking them
|
|
607
764
|
* up must not scan and retain every unrelated lifted function. */
|
|
608
765
|
readonly classMethodValueHelpers: Set<string>;
|
|
766
|
+
/** Reflected class methods whose lambda is lowering right now (null
|
|
767
|
+
* until lowerLambda named it), with the closure it will produce: a
|
|
768
|
+
* method that reads itself as a value inside its own body
|
|
769
|
+
* (`o.create = K.create`) takes this closure instead of lowering the
|
|
770
|
+
* method again. */
|
|
771
|
+
readonly methodLambdasInProgress: Map<import("../ts7/ast-node.js").AstNode, {
|
|
772
|
+
fnName: string;
|
|
773
|
+
type: IrType;
|
|
774
|
+
selfReads: number;
|
|
775
|
+
} | null>;
|
|
609
776
|
readonly classMethodValueSelections: Map<string, import("./class-method-values.js").ClassMethodValueSelection>;
|
|
610
777
|
/** Callee names of every interned coercion helper whose CALL mints a
|
|
611
778
|
* FRESH closure per evaluation (%fn.width.*, %fn.adapt.*,
|
|
@@ -632,6 +799,13 @@ export declare class Lowerer {
|
|
|
632
799
|
kind: "func";
|
|
633
800
|
};
|
|
634
801
|
}>;
|
|
802
|
+
/** Accessor exports' link-time values for ES-module importers, and the
|
|
803
|
+
* per-module flag that the copy already ran (cjsAccessorSnapshotStores). */
|
|
804
|
+
readonly cjsAccessorSnapshots: Map<import("../ts7/ast-node.js").AstNode, {
|
|
805
|
+
id: string;
|
|
806
|
+
type: IrType;
|
|
807
|
+
}>;
|
|
808
|
+
readonly cjsSnapshotReady: Map<ts.SourceFile, string>;
|
|
635
809
|
/** Interned `%iter.drain.<n>` helpers (classIteratorDrainCall): one per
|
|
636
810
|
* receiver class — the eager drain of a class iterable's protocol into
|
|
637
811
|
* a fresh element array, behind array/call spreads. */
|
|
@@ -656,6 +830,8 @@ export declare class Lowerer {
|
|
|
656
830
|
* so named imports, namespace reads, CommonJS bindings, and alias chains
|
|
657
831
|
* all reuse one immortal zero-capture closure. */
|
|
658
832
|
readonly builtinCallableValueFns: Map<string, string>;
|
|
833
|
+
/** Each builtin function-value adapter's Node name, for boxed values. */
|
|
834
|
+
readonly builtinCallableValueNames: Map<string, string>;
|
|
659
835
|
/** Optional-chain lowering state. While a chain body lowers, the guarded
|
|
660
836
|
* receiver NODE reads as a chainRecv (typed by the narrowed arm) instead
|
|
661
837
|
* of re-lowering, its checker type reads non-nullish (typeOf), and the
|
|
@@ -709,6 +885,10 @@ export declare class Lowerer {
|
|
|
709
885
|
/** Named method slots observed before class collection need a callable
|
|
710
886
|
* ABI and shared prototype descriptors instead of call-site specialization. */
|
|
711
887
|
readonly prototypeMethodAccesses: Map<string, import("../ts7/ast-node.js").AstNode>;
|
|
888
|
+
/** Well-known symbol methods (`sym:iterator`) the program may replace
|
|
889
|
+
* through a symbol-keyed write: an instance or prototype property, or a
|
|
890
|
+
* reflection call. */
|
|
891
|
+
readonly replacedSymbolMethods: Set<string>;
|
|
712
892
|
/** Typed calls through class-backed protocols, by signature; class
|
|
713
893
|
* dynamic dispatch adds their native arms (class-protocol-dispatch.ts). */
|
|
714
894
|
readonly protocolDispatches: Map<string, ProtocolDispatch>;
|
|
@@ -726,6 +906,9 @@ export declare class Lowerer {
|
|
|
726
906
|
* base vtable signature is collected. Unused checked slots carry undefined. */
|
|
727
907
|
readonly virtualJsMethodArity: Map<ts.MethodDeclaration, number>;
|
|
728
908
|
readonly checkedVirtualJsMethods: Set<ts.MethodDeclaration>;
|
|
909
|
+
/** Overrides whose return narrows part of the base's union return; they
|
|
910
|
+
* return through the base's union ABI (overrideReturnAbi). */
|
|
911
|
+
readonly unionReturnOverrides: Set<ts.MethodDeclaration>;
|
|
729
912
|
readonly checkedVirtualJsAccessors: Set<ts.GetAccessorDeclaration | ts.SetAccessorDeclaration>;
|
|
730
913
|
readonly checkedVirtualJsValueReturns: Set<ts.MethodDeclaration>;
|
|
731
914
|
/** The class whose members are lowering — `super` binds lexically to it
|
|
@@ -749,6 +932,10 @@ export declare class Lowerer {
|
|
|
749
932
|
* prepended by lowerFileInit so the bindings are live before any
|
|
750
933
|
* top-level statement runs. */
|
|
751
934
|
readonly jsonInitActions: Map<ts.SourceFile, IrStmt[]>;
|
|
935
|
+
/** CommonJS require() of JSON documents: the shared object per document
|
|
936
|
+
* and the calls reading it (json-require.ts). */
|
|
937
|
+
readonly jsonRequireModules: Map<string, JsonRequireModule>;
|
|
938
|
+
readonly jsonRequireCalls: Map<ts.CallExpression, JsonRequireModule>;
|
|
752
939
|
/** Dynamic `import("literal")` resolutions, keyed
|
|
753
940
|
* `fileName\u0000specifier` (collectDynamicImports fills it during npm
|
|
754
941
|
* collection; lowerDynamicImportCall reads it per site). */
|
|
@@ -770,6 +957,13 @@ export declare class Lowerer {
|
|
|
770
957
|
/** Inline Promise.then parameters whose contextual type is a builtin
|
|
771
958
|
* module namespace anonymous object. The settled native token is the
|
|
772
959
|
* ABI truth even when the checker type has no stable module symbol. */
|
|
960
|
+
/** Receivers of a stream call on a Hash or Hmac (lowerHashStreamCall):
|
|
961
|
+
* for the duration of that call, the receiver lowers to the Transform of
|
|
962
|
+
* the value held in the named local. */
|
|
963
|
+
readonly hashStreamReceivers: Map<ts.ExpressionBase, {
|
|
964
|
+
localId: string;
|
|
965
|
+
type: IrType;
|
|
966
|
+
}>;
|
|
773
967
|
readonly moduleNsParamOverrides: Map<ts.ParameterDeclaration, {
|
|
774
968
|
kind: "moduleNs";
|
|
775
969
|
moduleId: string;
|
|
@@ -783,6 +977,12 @@ export declare class Lowerer {
|
|
|
783
977
|
readonly workerTargets: readonly ts.SourceFile[];
|
|
784
978
|
readonly workerTargetIdByPath: Map<string, number>;
|
|
785
979
|
usesWorkers: boolean;
|
|
980
|
+
/** The program uses the WebAssembly API (builtins/webassembly.ts): the
|
|
981
|
+
* build translates the modules it discovers. */
|
|
982
|
+
usesWebAssembly: boolean;
|
|
983
|
+
/** The program calls WebAssembly.Module.customSections: translated
|
|
984
|
+
* modules keep their custom sections. */
|
|
985
|
+
usesWasmCustomSections: boolean;
|
|
786
986
|
/** The program constructs a LifetimeRegion (lifetime-regions.ts). */
|
|
787
987
|
usesLifetimeRegions: boolean;
|
|
788
988
|
/** Per-directory answers of experimental-import.ts's declaration-file test. */
|
|
@@ -796,6 +996,16 @@ export declare class Lowerer {
|
|
|
796
996
|
key: string;
|
|
797
997
|
node: ts.Node;
|
|
798
998
|
}>;
|
|
999
|
+
/** Each ThreadSlots name's type arguments (thread-slots.ts). */
|
|
1000
|
+
readonly threadSlotNames: Map<string, string>;
|
|
1001
|
+
/** The family each `new ThreadSlots(...)` opens. */
|
|
1002
|
+
readonly threadSlotFamilies: Map<ts.NewExpression, {
|
|
1003
|
+
name: string;
|
|
1004
|
+
key: IrType;
|
|
1005
|
+
value: IrType;
|
|
1006
|
+
}>;
|
|
1007
|
+
/** Classes used as ThreadSlots keys: their hierarchies carry a slot word. */
|
|
1008
|
+
readonly threadSlotKeys: Set<string>;
|
|
799
1009
|
readonly forkTargetIdByPath: Map<string, number>;
|
|
800
1010
|
/** Namespace ModuleBlocks this program lowers, filled by splitFiles:
|
|
801
1011
|
* "flattened" — an instantiated namespace whose body joined the file's
|
|
@@ -874,6 +1084,9 @@ export declare class Lowerer {
|
|
|
874
1084
|
deferredModuleInitializers: DeferredModuleInitializers | null;
|
|
875
1085
|
fnStack: FnCtx[];
|
|
876
1086
|
readonly liftedFns: IrFunction[];
|
|
1087
|
+
/** Runtime-provided classes used as values (defineClassValueConstruct),
|
|
1088
|
+
* by IR class name. */
|
|
1089
|
+
readonly runtimeClassValues: Map<string, ClassInfo>;
|
|
877
1090
|
/** One Error-method helper belongs to this lowering session. Its cached
|
|
878
1091
|
* dispatch revision needs no weak-key identity or process-global state. */
|
|
879
1092
|
errorMethodDispatchRevision: string | null;
|
|
@@ -906,6 +1119,21 @@ export declare class Lowerer {
|
|
|
906
1119
|
* by class name (cycle-initialization.ts). */
|
|
907
1120
|
readonly classInitFlags: Map<string, CycleInitFlag>;
|
|
908
1121
|
readonly cycleInitDeclarations: Map<ts.StatementBase, CycleInitFlag[]>;
|
|
1122
|
+
/** Each class's constructor return plan by class name
|
|
1123
|
+
* (constructor-returns.ts); null when no return can yield an object. */
|
|
1124
|
+
readonly constructorReturnPlans: Map<string, ConstructorReturnPlan | null>;
|
|
1125
|
+
/** Pointer-guarded (`tdz`) module bindings declared without an
|
|
1126
|
+
* initializer (`let f: T;`): an initialization flag tracks their
|
|
1127
|
+
* declaration (markCycleEarlyBindings). */
|
|
1128
|
+
readonly uninitializedLexicalGlobals: Map<string, {
|
|
1129
|
+
name: ts.Identifier;
|
|
1130
|
+
module: ts.SourceFile;
|
|
1131
|
+
symbol: ts.Symbol;
|
|
1132
|
+
}>;
|
|
1133
|
+
/** CommonJS require declarations whose bindings code running before the
|
|
1134
|
+
* require can read, and those references (require-initialization.ts). */
|
|
1135
|
+
readonly requireInitFlags: Map<ts.VariableDeclaration, RequireInitFlag>;
|
|
1136
|
+
readonly requireEarlyReferences: EarlyReference[];
|
|
909
1137
|
get ctx(): FnCtx;
|
|
910
1138
|
get scopes(): Map<ts.Symbol, IrLocal>[];
|
|
911
1139
|
/** Names of bodies a prior reachability pass reached; null lowers everything. */
|
|
@@ -929,6 +1157,16 @@ export declare class Lowerer {
|
|
|
929
1157
|
/** Coverage remainder mode: the reachability gate inverts (see wantBody)
|
|
930
1158
|
* and no module is built. */
|
|
931
1159
|
readonly remainder: boolean;
|
|
1160
|
+
/** `--tier` (tier-analysis.ts). Stage S2 is report-only: both modes
|
|
1161
|
+
* refuse and fence exactly as before. Stage S6 demotes the units of
|
|
1162
|
+
* committed refusals in "auto" and keeps them refusals in "static-only". */
|
|
1163
|
+
readonly tierMode: TierMode;
|
|
1164
|
+
readonly generalNodeStreams: boolean;
|
|
1165
|
+
readonly dynNodeStreams: boolean;
|
|
1166
|
+
/** Functions finishModule placed in the dynamic tier (ir/tiers.ts). */
|
|
1167
|
+
dynamicFunctions: DynamicFunction[];
|
|
1168
|
+
/** Their IR, for coverage's dynamic statement count. */
|
|
1169
|
+
dynamicBodies: IrFunction[];
|
|
932
1170
|
/** Deferred collection diagnostics (failed signatures/class shapes) by
|
|
933
1171
|
* declaration symbol: an unreached declaration must not fail the build,
|
|
934
1172
|
* so its diagnostics wait until a reference makes them relevant. */
|
|
@@ -956,6 +1194,9 @@ export declare class Lowerer {
|
|
|
956
1194
|
readonly targetPlatform: string;
|
|
957
1195
|
/** LowererMode.startupCrash — buildMain opens %main with the throw. */
|
|
958
1196
|
readonly startupCrash: StartupCrash | null;
|
|
1197
|
+
/** The project's tsconfig sets `checkJs`. */
|
|
1198
|
+
readonly projectCheckJs: boolean;
|
|
1199
|
+
private readonly checkedJsFiles;
|
|
959
1200
|
/** Outbound native bindings by their source-level ambient name. */
|
|
960
1201
|
readonly ffiImports: readonly IrFfiImport[];
|
|
961
1202
|
readonly libraryCallbacks: boolean;
|
|
@@ -997,18 +1238,45 @@ export declare class Lowerer {
|
|
|
997
1238
|
total: number;
|
|
998
1239
|
failed: number;
|
|
999
1240
|
}>;
|
|
1241
|
+
/** Statements and field initializers already in the coverage totals, and
|
|
1242
|
+
* those already counted as failed. Speculative lowering can lower one
|
|
1243
|
+
* function body several times: each receiver probe of
|
|
1244
|
+
* `(function () { ... }).call(this)` lowers it. A source statement counts
|
|
1245
|
+
* once however many times it lowers. */
|
|
1246
|
+
private readonly countedStatements;
|
|
1247
|
+
private readonly failedStatements;
|
|
1248
|
+
/** Adds `node` to the coverage totals unless it is already counted (the
|
|
1249
|
+
* caller checks suppressStats). */
|
|
1250
|
+
countStatement(node: ts.Node, file: string | undefined): void;
|
|
1251
|
+
/** Counts `node` as failed unless it already is (the caller checks
|
|
1252
|
+
* suppressStats). */
|
|
1253
|
+
countStatementFailed(node: ts.Node, file: string | undefined): void;
|
|
1000
1254
|
/** Bumps the per-file attribution counter (no-op unless provenance is
|
|
1001
1255
|
* active and this is the emit/discovery lane — mirror the CALLER's
|
|
1002
1256
|
* suppressStats guard, this method only gates remainder). */
|
|
1003
1257
|
bumpFileStat(file: string, kind: "total" | "failed"): void;
|
|
1004
1258
|
constructor(program: ts.Program, entry: ts.SourceFile, moduleOrder: ts.SourceFile[], mode?: LowererMode);
|
|
1259
|
+
/** A JavaScript file TypeScript type-checks (`// @ts-check`, or the
|
|
1260
|
+
* project's `checkJs`). Its JSDoc types are enforced like TypeScript
|
|
1261
|
+
* annotations, so its classes use them as a TypeScript file would. */
|
|
1262
|
+
checkedJsFile(sf: ts.SourceFile): boolean;
|
|
1005
1263
|
registerBuiltinErrorClasses(): void;
|
|
1006
1264
|
private classProtocols;
|
|
1007
1265
|
classImplementedProtocol(type: ts.Type): boolean;
|
|
1008
1266
|
/** Declared class fields may store a DYN value only when its static type
|
|
1009
|
-
*
|
|
1010
|
-
*
|
|
1267
|
+
* is `unknown` or `object` (also with `null` or `undefined`, or an array
|
|
1268
|
+
* of those), names checked protocol identity, is an owned runtime
|
|
1269
|
+
* handle (a Worker or MessagePort, or a fetch Headers/Request/Response),
|
|
1270
|
+
* or is a WeakMap/WeakSet (native weak collections live in
|
|
1271
|
+
* checked-dynamic storage, as locals of those types do); `any` fields
|
|
1272
|
+
* stay refused. */
|
|
1011
1273
|
classFieldStoresDyn(type: ts.Type): boolean;
|
|
1274
|
+
/** A stdlib WeakMap or WeakSet, alone or with `null`/`undefined`. */
|
|
1275
|
+
private weakCollectionType;
|
|
1276
|
+
/** `unknown`, `object`, an array of those, or a union of those with
|
|
1277
|
+
* `null` and `undefined`: types whose values use checked-dynamic storage
|
|
1278
|
+
* as they do in JavaScript class fields. */
|
|
1279
|
+
private opaqueValueType;
|
|
1012
1280
|
/** The nominal identity of a checker module-namespace type. Program
|
|
1013
1281
|
* modules use their normalized absolute source name; supported builtins
|
|
1014
1282
|
* use the lowering tables' canonical bare name. */
|
|
@@ -1017,6 +1285,8 @@ export declare class Lowerer {
|
|
|
1017
1285
|
builtinErrorInfoOf(symbol: ts.Symbol | null | undefined): ClassInfo | null;
|
|
1018
1286
|
builtinEmitterInfoOf(symbol: ts.Symbol | null | undefined): ClassInfo | null;
|
|
1019
1287
|
builtinStreamInfoOf(symbol: ts.Symbol | null | undefined): ClassInfo | null;
|
|
1288
|
+
builtinClassAliasOf(symbol: ts.Symbol): BuiltinClassRef | null;
|
|
1289
|
+
defineClassValueConstruct(info: ClassInfo): void;
|
|
1020
1290
|
/** Program-wide qualified name for a top-level declaration. */
|
|
1021
1291
|
qualify(sf: ts.SourceFile, name: string): string;
|
|
1022
1292
|
/** The IR name mapType gives class instance types — must agree with
|
|
@@ -1080,6 +1350,11 @@ export declare class Lowerer {
|
|
|
1080
1350
|
* JS module, the statement is not discarded by a later table, and the
|
|
1081
1351
|
* identifier resolves to a class declaration. Null otherwise. */
|
|
1082
1352
|
cjsMemberExportClassSymbol(d: ts.Node): ts.Symbol | null;
|
|
1353
|
+
/** For an inline program `require("./c")`: the class symbol its module's
|
|
1354
|
+
* kept `module.exports = <class identifier>` names, or null when the
|
|
1355
|
+
* whole export is something else. Undefined when `expr` is not such a
|
|
1356
|
+
* require. */
|
|
1357
|
+
memberExportRequiredClass(expr: ts.Expression): ts.Symbol | null | undefined;
|
|
1083
1358
|
/** The CommonJS JS module a DEFAULT-import binding's declaration loads
|
|
1084
1359
|
* (`import d from "./lib.cjs"`), or null: Node's ESM-CJS interop binds
|
|
1085
1360
|
* the default to module.exports — exactly a require binding — so those
|
|
@@ -1087,6 +1362,12 @@ export declare class Lowerer {
|
|
|
1087
1362
|
* (any .ts, ESM-syntax .js/.mjs) answer null and keep the ESM default
|
|
1088
1363
|
* machinery. */
|
|
1089
1364
|
private cjsDefaultImportDepOf;
|
|
1365
|
+
/** The table module a non-identifier module reference names: an inline
|
|
1366
|
+
* `require("./x")` (cjs-inline-require.ts) or tsc's unstamped
|
|
1367
|
+
* `x_1.default` interop read (cjs-tsc-interop.ts). */
|
|
1368
|
+
cjsModuleRefDepOf(expr: ts.Expression): ts.SourceFile | null;
|
|
1369
|
+
/** The table module a CommonJS module binding identifier names. */
|
|
1370
|
+
cjsModuleBindingDepOf(expr: ts.Identifier): ts.SourceFile | null;
|
|
1090
1371
|
/** The compiled module behind a require-like namespace binding: an
|
|
1091
1372
|
* ordinary CommonJS require declaration, a canonical createRequire
|
|
1092
1373
|
* declaration, or an ESM default import of CommonJS. One resolver keeps
|
|
@@ -1129,6 +1410,17 @@ export declare class Lowerer {
|
|
|
1129
1410
|
* calls of these names. Runs in every pass so the ids are
|
|
1130
1411
|
* deterministic. */
|
|
1131
1412
|
prepareModuleInits(parts: FileParts[]): void;
|
|
1413
|
+
/** node:punycode's load at a require() call: the module body reports
|
|
1414
|
+
* DEP0040 when it first runs, unless isInsideNodeModules() finds the
|
|
1415
|
+
* requiring frame in a dependency, and process.emitWarning delivers the
|
|
1416
|
+
* report on the next tick. Later loads are cache hits either way. */
|
|
1417
|
+
punycodeRequireWarning(node: ts.Node): IrStmt;
|
|
1418
|
+
/** node:punycode's DEP0040 for a static ES import anywhere in the module
|
|
1419
|
+
* graph: Node links builtins before any module evaluates, so the report
|
|
1420
|
+
* comes first, before the program can register a 'warning' listener —
|
|
1421
|
+
* whichever file imports it (a dependency's ES import has no requiring
|
|
1422
|
+
* frame either). Prepended to the entry's %init. */
|
|
1423
|
+
punycodeLinkWarning(): IrStmt[];
|
|
1132
1424
|
/** The lowering of a CommonJS `require("./local")` occurrence: a call of
|
|
1133
1425
|
* the required module's run-once %init at exactly this statement's
|
|
1134
1426
|
* position — Node's inline evaluation, with the guard supplying the
|
|
@@ -1149,6 +1441,16 @@ export declare class Lowerer {
|
|
|
1149
1441
|
* TypeScript's default indexed-access type is a useful source annotation,
|
|
1150
1442
|
* but it is not a runtime proof; promoting only the affected slots keeps
|
|
1151
1443
|
* the rest of the dense ABI unchanged. */
|
|
1444
|
+
/** A Date's `toJSON()` answers null for an invalid date while the lib
|
|
1445
|
+
* types say `string`: unannotated bindings initialized by such a call,
|
|
1446
|
+
* and object-literal fields holding one, keep `string | null`. */
|
|
1447
|
+
analyzeDateJsonResults(parts: FileParts[]): void;
|
|
1448
|
+
/** A file-scope get-or-create read (`let e = map[k]; if (e ===
|
|
1449
|
+
* undefined) ...` over an index-signature record) keeps a missing key as
|
|
1450
|
+
* undefined (isGuardedRecordRead). Its pre-registered global takes the
|
|
1451
|
+
* undefined arm before any body reads it; the declaration lowers its
|
|
1452
|
+
* initializer as the matching absence probe. */
|
|
1453
|
+
analyzeGuardedRecordReadGlobals(parts: FileParts[]): void;
|
|
1152
1454
|
analyzeRuntimeOptionalArrayReads(parts: FileParts[]): void;
|
|
1153
1455
|
run(): LowerResult;
|
|
1154
1456
|
/** Final retention, pruning, and module assembly shared by ordinary emit
|
|
@@ -1215,6 +1517,21 @@ export declare class Lowerer {
|
|
|
1215
1517
|
deferToRuntimeFence(diagsBefore: number, node: ts.Node, target: RuntimeFenceStatementTarget): IrStmt | null;
|
|
1216
1518
|
deferToRuntimeFence(diagsBefore: number, node: ts.Node, target: RuntimeFenceFunctionTarget): IrFunction | null;
|
|
1217
1519
|
deferToRuntimeFence(diagsBefore: number, node: ts.Node, target: RuntimeFenceClosureTarget): IrExpr | null;
|
|
1520
|
+
/** The runtimeFence statement that throws `first`'s message (or the
|
|
1521
|
+
* fallback's) at `node`. */
|
|
1522
|
+
private runtimeFenceStmt;
|
|
1523
|
+
/** The current length of the capture buffer (diagSink), or 0 without one:
|
|
1524
|
+
* the mark capturedRuntimeFence reads the refusal from. */
|
|
1525
|
+
diagSinkMark(): number;
|
|
1526
|
+
/** The runtimeFence for a JavaScript statement refused while a capture
|
|
1527
|
+
* buffer (diagSink) is active. The buffer's owner decides whether its
|
|
1528
|
+
* diagnostics report, and some owners keep the lowered result (a
|
|
1529
|
+
* successful tryLowerExpression candidate, a computed class base whose
|
|
1530
|
+
* diagnostics defer to the class). Without a fence the refused statement
|
|
1531
|
+
* would vanish from that result; with one it throws the refusal when it
|
|
1532
|
+
* runs, exactly like the fence lowerStmts emits outside a buffer. The
|
|
1533
|
+
* diagnostics stay in the buffer for its owner. Null without a buffer. */
|
|
1534
|
+
capturedRuntimeFence(sinkMark: number, node: ts.Node): IrStmt | null;
|
|
1218
1535
|
/** All diagnostics land here; while a generic instance body is lowering,
|
|
1219
1536
|
* the instantiation context is appended so the user knows which concrete
|
|
1220
1537
|
* types made the (source-anchored) construct fail. */
|
|
@@ -1245,6 +1562,10 @@ export declare class Lowerer {
|
|
|
1245
1562
|
* body lowers) type-parameter bindings threaded through. A supplied mapper
|
|
1246
1563
|
* retains interface-view substitutions while sharing ABI normalization. */
|
|
1247
1564
|
mapTypeOf(t: ts.Type, mapper?: (type: ts.Type) => IrType | null): IrType | null;
|
|
1565
|
+
/** The runtime type of a record member slot typed `t`: an overloaded
|
|
1566
|
+
* member's erased function (erasedOverloadMemberType — the type a record
|
|
1567
|
+
* shape stores for it), otherwise mapTypeOf. */
|
|
1568
|
+
memberSlotTypeOf(t: ts.Type): IrType | null;
|
|
1248
1569
|
/** The one position where a contextual UNION must not be adopted over the
|
|
1249
1570
|
* expression's own: the LEFT operand of `&&`, `||`, or `??`. Adopting a
|
|
1250
1571
|
* contextual union is normally safe because tsc proved the value
|
|
@@ -1425,6 +1746,9 @@ export declare class Lowerer {
|
|
|
1425
1746
|
recordUnionWrapHelper(source: IrType & {
|
|
1426
1747
|
kind: "record";
|
|
1427
1748
|
}, toId: string, loc: SrcLoc): string | null;
|
|
1749
|
+
recordUnionRouteHelper(source: IrType & {
|
|
1750
|
+
kind: "record";
|
|
1751
|
+
}, toId: string, loc: SrcLoc): string | null;
|
|
1428
1752
|
unionRetagHelper(fromId: string, toId: string, loc: SrcLoc, trappable?: ReadonlySet<number>): string | null;
|
|
1429
1753
|
narrowedArmHelper(fromId: string, target: IrType, loc: SrcLoc): string | null;
|
|
1430
1754
|
checkedNarrowCall(helper: string, value: IrExpr, type: IrType, loc: SrcLoc): IrExpr;
|
|
@@ -1456,6 +1780,10 @@ export declare class Lowerer {
|
|
|
1456
1780
|
/** Lower for a known destination, then apply ordinary value coercion.
|
|
1457
1781
|
* Fresh arrays and records use the destination layout directly. */
|
|
1458
1782
|
lowerExprExpecting(node: ts.Expression, expected: IrType | undefined): IrExpr;
|
|
1783
|
+
/** The conversion lowerExprExpecting applies to `e`, the lowered value
|
|
1784
|
+
* of `node` when it is not fresh construction the destination directs
|
|
1785
|
+
* (a literal, conditional, or empty collection). */
|
|
1786
|
+
coerceExistingInto(node: ts.Expression, e: IrExpr, expected: IrType): IrExpr;
|
|
1459
1787
|
/** An unannotated empty collection has no existing elements or aliases
|
|
1460
1788
|
* that constrain its layout. An explicit type argument still wins. */
|
|
1461
1789
|
emptyCollectionFor(node: ts.Expression, expected: IrType): IrExpr | null;
|
|
@@ -1471,6 +1799,14 @@ export declare class Lowerer {
|
|
|
1471
1799
|
* declared result type of an index-signature read under
|
|
1472
1800
|
* noUncheckedIndexedAccess. Null when the type cannot take the arm. */
|
|
1473
1801
|
withUndefinedArmOf(t: IrType): IrType | null;
|
|
1802
|
+
/** Whether a promise of `from` converts to a promise of `to` through the
|
|
1803
|
+
* checked payload widening (coerceToExpected's boxed-settlement rule,
|
|
1804
|
+
* which keeps the promise's identity and settlement turn). */
|
|
1805
|
+
promisePayloadWidens(from: IrType & {
|
|
1806
|
+
kind: "promise";
|
|
1807
|
+
}, to: IrType & {
|
|
1808
|
+
kind: "promise";
|
|
1809
|
+
}): boolean;
|
|
1474
1810
|
/** True when a static type converts to a dyn value (the dynFrom
|
|
1475
1811
|
* walker's domain): JSON-safe, bytes<u8> (Uint8Array/Buffer — the checked-dynamic tree's
|
|
1476
1812
|
* bytes kind, payload copied; stdin chunks into unknown-typed helpers),
|
|
@@ -1492,6 +1828,13 @@ export declare class Lowerer {
|
|
|
1492
1828
|
* undefined, which the void slot drops. Units are pure literals, so
|
|
1493
1829
|
* nothing evaluates; unit-typed non-literals keep the fences. */
|
|
1494
1830
|
lowerReturnValue(node: ts.Expression): IrExpr | null;
|
|
1831
|
+
/** A fresh JS object literal returned into a checked-native (dyn) result,
|
|
1832
|
+
* which lowers straight into that storage. */
|
|
1833
|
+
private returnsLiteralIntoDyn;
|
|
1834
|
+
/** The value of `return <e>` (already lowered untyped) in an async or
|
|
1835
|
+
* void context: a promise flattens through the returned-promise await,
|
|
1836
|
+
* everything else converts into the declared result. */
|
|
1837
|
+
private asyncReturnValueOf;
|
|
1495
1838
|
/** Whether a promise returned here resolves the function's own promise
|
|
1496
1839
|
* by adoption (async functions; async generators await their return
|
|
1497
1840
|
* operand instead). */
|
|
@@ -1510,6 +1853,10 @@ export declare class Lowerer {
|
|
|
1510
1853
|
* caller never sees a value, so the return goes out bare. Async
|
|
1511
1854
|
* void-inner returns still resolve a returned promise first. */
|
|
1512
1855
|
lowerReturnStmt(node: ts.Expression, loc: SrcLoc): IrStmt;
|
|
1856
|
+
/** `return u` of a promise-armed union (maybe-promise, or promise-or-
|
|
1857
|
+
* unit) in an async function: adopt the promise arm, fulfill with the
|
|
1858
|
+
* others (maybe-promise.ts). Null when the return is not that shape. */
|
|
1859
|
+
maybePromiseReturn(node: ts.Expression, e: IrExpr, expected: IrType): IrStmt | null;
|
|
1513
1860
|
private lowerReturnOf;
|
|
1514
1861
|
maybeNarrow(expr: IrExpr, node: ts.Node): IrExpr;
|
|
1515
1862
|
lowerUnitComparison(left: IrExpr, right: IrExpr, negated: boolean, loc: SrcLoc): IrExpr | null;
|
|
@@ -1609,6 +1956,21 @@ export declare class Lowerer {
|
|
|
1609
1956
|
ordinal: number;
|
|
1610
1957
|
}): void;
|
|
1611
1958
|
lowerClassExpressionInfo(expr: ts.ClassLikeDeclaration): ClassInfo;
|
|
1959
|
+
/** Depth of the whole-program analyses that query types across every
|
|
1960
|
+
* file before reachability is known (speculativeTypeQueries). */
|
|
1961
|
+
private speculativeTypeQueryDepth;
|
|
1962
|
+
/** Runs a whole-program analysis whose type queries are speculative: they
|
|
1963
|
+
* visit every file, reached or not, and no statement or declaration owns
|
|
1964
|
+
* a refusal they trigger (collectLocalClassForType). */
|
|
1965
|
+
speculativeTypeQueries(analysis: () => void): void;
|
|
1966
|
+
/** Collects a function-local class because a type query named its
|
|
1967
|
+
* instance type. Collection and body lowering own a refusal of that
|
|
1968
|
+
* class: the poison reaches the declaration or statement that asked, as
|
|
1969
|
+
* before. A speculative whole-program analysis owns none, so there the
|
|
1970
|
+
* refusal stays reported (the build fails with it, as it did where such
|
|
1971
|
+
* an analysis already caught the poison) and the class is unmappable for
|
|
1972
|
+
* the query instead of the poison escaping the compiler. */
|
|
1973
|
+
collectLocalClassForType(decl: ts.ClassLikeDeclaration): boolean;
|
|
1612
1974
|
lowerClassExpression(expr: ts.ClassLikeDeclaration): IrExpr;
|
|
1613
1975
|
findMethodOn(info: ClassInfo | null, name: string): {
|
|
1614
1976
|
declarer: ClassInfo;
|
|
@@ -1620,6 +1982,9 @@ export declare class Lowerer {
|
|
|
1620
1982
|
gen?: NonNullable<IrFunction["generator"]>;
|
|
1621
1983
|
};
|
|
1622
1984
|
} | null;
|
|
1985
|
+
/** A class whose root is the runtime's %Error (builtin errors and their
|
|
1986
|
+
* program subclasses). */
|
|
1987
|
+
isErrorRootedClass(className: string): boolean;
|
|
1623
1988
|
isSubclassOf(sub: string, sup: string): boolean;
|
|
1624
1989
|
inHierarchy(info: ClassInfo): boolean;
|
|
1625
1990
|
overrideBelow(info: ClassInfo, name: string): boolean;
|
|
@@ -1722,6 +2087,9 @@ export declare class Lowerer {
|
|
|
1722
2087
|
collectGlobals(sf: ts.SourceFile, topStmts: ts.Statement[]): void;
|
|
1723
2088
|
lowerFileInit(sf: ts.SourceFile, stmts: ts.Statement[], name: string): IrFunction;
|
|
1724
2089
|
lowerDefaultExport(stmt: ts.ExportAssignment): IrStmt | null;
|
|
2090
|
+
/** Statements %main runs before any module initializer: runtime
|
|
2091
|
+
* registrations the lowering passes add. */
|
|
2092
|
+
readonly mainPrelude: IrStmt[];
|
|
1725
2093
|
buildMain(): IrFunction;
|
|
1726
2094
|
declareLocal(nameNode: ts.Node, name: string, type: IrType, mutable: boolean): IrLocal;
|
|
1727
2095
|
/** A never-returning call in a value position of type `expected`: the
|
|
@@ -1733,6 +2101,21 @@ export declare class Lowerer {
|
|
|
1733
2101
|
* defaulted parameter (the parameter's symbol binds to the separately-
|
|
1734
2102
|
* declared body local; nothing in the source can name this one). */
|
|
1735
2103
|
declareHiddenLocal(name: string, type: IrType): IrLocal;
|
|
2104
|
+
/** The body binding of a fixed-tuple rest parameter: one native slot per
|
|
2105
|
+
* position (the flattened ABI), rebuilt into the tuple the source names.
|
|
2106
|
+
* The empty tuple rides the empty-array representation. */
|
|
2107
|
+
declareRestTupleParam(decl: ts.ParameterDeclaration, nameNode: ts.Identifier, elemShapes: readonly ParamShape[], params: IrParam[], prologue: IrStmt[]): void;
|
|
2108
|
+
/** `value as never` flowing into a typed slot: `never` is assignable to
|
|
2109
|
+
* every type, so the assertion promises the slot's type. A dynamic value
|
|
2110
|
+
* takes the checked extraction to it, as `value as T` would. Null for
|
|
2111
|
+
* every other form, and for numeric, dynamic and union slots, which
|
|
2112
|
+
* keep the existing lowering. */
|
|
2113
|
+
private neverAssertionInto;
|
|
2114
|
+
/** The tuple record of a forwarded-only rest tuple's native slots. */
|
|
2115
|
+
private forwardedSlotsTuple;
|
|
2116
|
+
/** A fresh tuple holding the given positional slots, typed `tupleType`
|
|
2117
|
+
* (a tuple record, or the empty-array form of `[]`). */
|
|
2118
|
+
tupleOfSlots(slots: readonly IrLocal[], tupleType: IrType, blame: ts.Node, loc: SrcLoc): IrExpr;
|
|
1736
2119
|
/** Declares a callee's parameter locals from its ParamShapes and builds
|
|
1737
2120
|
* the DEFAULT-PARAM PROLOGUE. Required/optional/rest params bind their
|
|
1738
2121
|
* symbol directly (one local of the ABI type). A defaulted param `x: T = e`
|
|
@@ -1763,7 +2146,7 @@ export declare class Lowerer {
|
|
|
1763
2146
|
/** Lexical `this` — the enclosing method's this-param, possibly captured
|
|
1764
2147
|
* through arrows (function expressions/declarations reset `this` in JS;
|
|
1765
2148
|
* their bodies never see an enclosing method's binding). */
|
|
1766
|
-
resolveThis(): IrLocal | null;
|
|
2149
|
+
resolveThis(blame?: ts.Node): IrLocal | null;
|
|
1767
2150
|
peekLocal(ident: ts.Identifier): IrLocal | null;
|
|
1768
2151
|
resolveKey(symbol: ts.Symbol | undefined, blame?: ts.Node): IrLocal | null;
|
|
1769
2152
|
isSelfReference(ident: ts.Identifier): boolean;
|
|
@@ -1980,7 +2363,7 @@ export declare class Lowerer {
|
|
|
1980
2363
|
}, loc: SrcLoc): IrExpr | null;
|
|
1981
2364
|
lowerSpawnSyncCall(expr: ts.CallExpression, loc: SrcLoc): IrExpr;
|
|
1982
2365
|
lowerSpawnCall(expr: ts.CallExpression, loc: SrcLoc): IrExpr;
|
|
1983
|
-
lowerExecFileCall(expr: ts.CallExpression, loc: SrcLoc): IrExpr;
|
|
2366
|
+
lowerExecFileCall(expr: ts.CallExpression, loc: SrcLoc, shell?: boolean): IrExpr;
|
|
1984
2367
|
lowerExecSyncCall(expr: ts.CallExpression, shell: boolean, loc: SrcLoc): IrExpr;
|
|
1985
2368
|
envToPairsHelper(shapeId: string, loc: SrcLoc): string | null;
|
|
1986
2369
|
lowerJsonMethodCall(call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
|