@scriptc/compiler 0.4.3 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ambient/scriptc-node-fallback.d.ts +270 -72
- package/ambient/scriptc-overrides.d.ts +21 -0
- package/dist/backend/executable-features.js +3 -0
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/library-pack.js +2 -1
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/linker.js +11 -1
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/lld.d.ts +9 -0
- package/dist/backend/lld.js +48 -0
- package/dist/backend/lld.js.map +1 -0
- package/dist/backend/lld.test.d.ts +1 -0
- package/dist/backend/lld.test.js +53 -0
- package/dist/backend/lld.test.js.map +1 -0
- package/dist/backend/llvm/appended-array-literals.d.ts +11 -1
- package/dist/backend/llvm/appended-array-literals.js +29 -0
- package/dist/backend/llvm/appended-array-literals.js.map +1 -1
- package/dist/backend/llvm/blocks.js +10 -1
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/bytes-alias.d.ts +13 -4
- package/dist/backend/llvm/bytes-alias.js +16 -5
- package/dist/backend/llvm/bytes-alias.js.map +1 -1
- package/dist/backend/llvm/bytes-bounds.d.ts +5 -1
- package/dist/backend/llvm/bytes-bounds.js +199 -2
- package/dist/backend/llvm/bytes-bounds.js.map +1 -1
- package/dist/backend/llvm/bytes-loop-versions.d.ts +45 -3
- package/dist/backend/llvm/bytes-loop-versions.js +244 -20
- package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
- package/dist/backend/llvm/bytes-loop-versions.test.js +18 -6
- package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.d.ts +8 -2
- package/dist/backend/llvm/call-lifetimes.js +87 -18
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +132 -0
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +3 -2
- package/dist/backend/llvm/classes.js +4 -4
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/counted-loops.d.ts +14 -2
- package/dist/backend/llvm/counted-loops.js +54 -5
- package/dist/backend/llvm/counted-loops.js.map +1 -1
- package/dist/backend/llvm/debug-info.d.ts +42 -1
- package/dist/backend/llvm/debug-info.js +72 -6
- package/dist/backend/llvm/debug-info.js.map +1 -1
- package/dist/backend/llvm/dense-array-loops.js +2 -2
- package/dist/backend/llvm/dense-array-loops.js.map +1 -1
- package/dist/backend/llvm/dense-array-loops.test.js +1 -0
- package/dist/backend/llvm/dense-array-loops.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +69 -8
- package/dist/backend/llvm/dyn.js +396 -49
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emit-function.js +30 -16
- package/dist/backend/llvm/emit-function.js.map +1 -1
- package/dist/backend/llvm/emit-journal.d.ts +8 -4
- package/dist/backend/llvm/emit-journal.js +75 -5
- package/dist/backend/llvm/emit-journal.js.map +1 -1
- package/dist/backend/llvm/emit-module.d.ts +4 -0
- package/dist/backend/llvm/emit-module.js +74 -29
- package/dist/backend/llvm/emit-module.js.map +1 -1
- package/dist/backend/llvm/emit-statements.js +297 -28
- package/dist/backend/llvm/emit-statements.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +144 -13
- package/dist/backend/llvm/emitter.js +523 -92
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +11 -2
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +11 -13
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +6 -4
- package/dist/backend/llvm/expr-bytes.js +45 -16
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +13 -11
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +11 -0
- package/dist/backend/llvm/expr-containers.js +101 -9
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +3 -0
- package/dist/backend/llvm/expr-control.js +83 -0
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.d.ts +1 -1
- package/dist/backend/llvm/expr-dynamic.js +22 -4
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +121 -14
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +111 -26
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/forked-analysis.d.ts +8 -0
- package/dist/backend/llvm/forked-analysis.js +43 -0
- package/dist/backend/llvm/forked-analysis.js.map +1 -0
- package/dist/backend/llvm/integer-values.d.ts +12 -0
- package/dist/backend/llvm/integer-values.js +69 -5
- package/dist/backend/llvm/integer-values.js.map +1 -1
- package/dist/backend/llvm/integer-views.d.ts +2 -1
- package/dist/backend/llvm/integer-views.js +12 -1
- package/dist/backend/llvm/integer-views.js.map +1 -1
- package/dist/backend/llvm/js-ic.d.ts +4 -0
- package/dist/backend/llvm/js-ic.js +133 -15
- package/dist/backend/llvm/js-ic.js.map +1 -1
- package/dist/backend/llvm/layouts.d.ts +1 -0
- package/dist/backend/llvm/layouts.js.map +1 -1
- package/dist/backend/llvm/lazy-captures.d.ts +6 -1
- package/dist/backend/llvm/lazy-captures.js +10 -5
- package/dist/backend/llvm/lazy-captures.js.map +1 -1
- package/dist/backend/llvm/lib-abi.d.ts +5 -0
- package/dist/backend/llvm/lib-abi.js +19 -0
- package/dist/backend/llvm/lib-abi.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +249 -33
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.d.ts +10 -0
- package/dist/backend/llvm/lib-filesystem.js +32 -0
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.js +2 -2
- package/dist/backend/llvm/lib-http2.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +2 -0
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +48 -1
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +64 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-tls.js +28 -3
- package/dist/backend/llvm/lib-tls.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +2 -1
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
- package/dist/backend/llvm/loop-array-borrows.d.ts +4 -1
- package/dist/backend/llvm/loop-array-borrows.js +11 -5
- package/dist/backend/llvm/loop-array-borrows.js.map +1 -1
- package/dist/backend/llvm/map-entry-fusion.d.ts +5 -3
- package/dist/backend/llvm/map-entry-fusion.js +20 -11
- package/dist/backend/llvm/map-entry-fusion.js.map +1 -1
- package/dist/backend/llvm/map-entry-fusion.test.js +14 -6
- package/dist/backend/llvm/map-entry-fusion.test.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.d.ts +16 -6
- package/dist/backend/llvm/map-number-lookup.js +41 -9
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.test.js +70 -2
- package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.d.ts +25 -2
- package/dist/backend/llvm/map-read-lifetimes.js +136 -6
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +8 -3
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.d.ts +5 -0
- package/dist/backend/llvm/nullable-unions.js +29 -2
- package/dist/backend/llvm/nullable-unions.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.test.js +25 -1
- package/dist/backend/llvm/nullable-unions.test.js.map +1 -1
- package/dist/backend/llvm/publish.js +3 -3
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/record-union-keys.test.d.ts +1 -0
- package/dist/backend/llvm/record-union-keys.test.js +161 -0
- package/dist/backend/llvm/record-union-keys.test.js.map +1 -0
- package/dist/backend/llvm/reference-effects.js +3 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/serialized-ir-emission.test.js +2 -0
- package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +4 -5
- package/dist/backend/llvm/shapes.js +106 -58
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +14 -2
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.d.ts +50 -3
- package/dist/backend/llvm/speculative-integers.js +411 -24
- package/dist/backend/llvm/speculative-integers.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.test.js +103 -1
- package/dist/backend/llvm/speculative-integers.test.js.map +1 -1
- package/dist/backend/llvm/split.d.ts +10 -1
- package/dist/backend/llvm/split.js +243 -59
- package/dist/backend/llvm/split.js.map +1 -1
- package/dist/backend/llvm/split.test.js +92 -13
- package/dist/backend/llvm/split.test.js.map +1 -1
- package/dist/backend/llvm/stack-captures.js +1 -5
- package/dist/backend/llvm/stack-captures.js.map +1 -1
- package/dist/backend/llvm/stack-objects.test.js +3 -2
- package/dist/backend/llvm/stack-objects.test.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-reads.d.ts +13 -0
- package/dist/backend/llvm/string-reads.js +22 -0
- package/dist/backend/llvm/string-reads.js.map +1 -1
- package/dist/backend/llvm/string-slices.d.ts +36 -2
- package/dist/backend/llvm/string-slices.js +308 -12
- package/dist/backend/llvm/string-slices.js.map +1 -1
- package/dist/backend/llvm/string-slices.test.js +182 -3
- package/dist/backend/llvm/string-slices.test.js.map +1 -1
- package/dist/backend/llvm/string-unit-versions.d.ts +11 -0
- package/dist/backend/llvm/string-unit-versions.js +191 -0
- package/dist/backend/llvm/string-unit-versions.js.map +1 -0
- package/dist/backend/llvm/string-unit-versions.test.d.ts +1 -0
- package/dist/backend/llvm/string-unit-versions.test.js +117 -0
- package/dist/backend/llvm/string-unit-versions.test.js.map +1 -0
- package/dist/backend/llvm/test-boxed-unions.d.ts +5 -2
- package/dist/backend/llvm/test-boxed-unions.js +24 -8
- package/dist/backend/llvm/test-boxed-unions.js.map +1 -1
- package/dist/backend/llvm/union-repr.d.ts +4 -3
- package/dist/backend/llvm/union-repr.js +6 -5
- package/dist/backend/llvm/union-repr.js.map +1 -1
- package/dist/backend/llvm/unwind-abi.d.ts +52 -0
- package/dist/backend/llvm/unwind-abi.js +498 -0
- package/dist/backend/llvm/unwind-abi.js.map +1 -0
- package/dist/backend/llvm/unwind-abi.test.d.ts +1 -0
- package/dist/backend/llvm/unwind-abi.test.js +255 -0
- package/dist/backend/llvm/unwind-abi.test.js.map +1 -0
- package/dist/backend/llvm/walkers.js +13 -0
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/llvm/wrapping-sums.d.ts +14 -10
- package/dist/backend/llvm/wrapping-sums.js +31 -14
- package/dist/backend/llvm/wrapping-sums.js.map +1 -1
- package/dist/backend/loop-polls.d.ts +6 -0
- package/dist/backend/loop-polls.js +24 -0
- package/dist/backend/loop-polls.js.map +1 -1
- package/dist/backend/may-throw.js +8 -8
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +12 -2
- package/dist/backend/native/executable.js +48 -6
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +4 -3
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native/program-shards.d.ts +2 -2
- package/dist/backend/native/program-shards.js +2 -2
- package/dist/backend/native/program-shards.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +4 -1
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native/vendor.d.ts +1 -1
- package/dist/backend/native/vendor.js +1 -1
- package/dist/backend/native/vendor.js.map +1 -1
- package/dist/backend/native-codegen-core.d.ts +5 -3
- package/dist/backend/native-codegen-core.js +13 -6
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +3 -1
- package/dist/backend/native-codegen.js +4 -3
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +6 -4
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +8 -0
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/native-profile.d.ts +14 -0
- package/dist/backend/native-profile.js +28 -0
- package/dist/backend/native-profile.js.map +1 -1
- package/dist/backend/native-profile.test.js +8 -1
- package/dist/backend/native-profile.test.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +11 -11
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-core.d.ts +3 -1
- package/dist/backend/runtime-pack-core.js +2 -0
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-native.d.ts +17 -5
- package/dist/backend/runtime-pack-native.js +186 -14
- package/dist/backend/runtime-pack-native.js.map +1 -1
- package/dist/backend/runtime-pack-native.test.js +160 -3
- package/dist/backend/runtime-pack-native.test.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +2 -1
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +2 -1
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/target-cpu.d.ts +26 -0
- package/dist/backend/target-cpu.js +98 -0
- package/dist/backend/target-cpu.js.map +1 -0
- package/dist/backend/target-cpu.test.d.ts +1 -0
- package/dist/backend/target-cpu.test.js +38 -0
- package/dist/backend/target-cpu.test.js.map +1 -0
- package/dist/backend/vendor-archives.d.ts +4 -1
- package/dist/backend/vendor-archives.js +78 -4
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/backend/vendor-inputs.d.ts +3 -1
- package/dist/backend/vendor-inputs.js +3 -1
- package/dist/backend/vendor-inputs.js.map +1 -1
- package/dist/backend/warm-cache.js +1 -0
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/cli/command.js +98 -12
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/usage.d.ts +25 -1
- package/dist/cli/usage.js +40 -3
- package/dist/cli/usage.js.map +1 -1
- package/dist/compat/fetch-profile.d.ts +15 -6
- package/dist/compat/fetch-profile.js +519 -498
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/compile-types.d.ts +14 -0
- package/dist/contracts/int32-elements.js +2 -1
- package/dist/contracts/int32-elements.js.map +1 -1
- package/dist/coverage/report.d.ts +14 -3
- package/dist/coverage/report.js +216 -0
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +25 -25
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/coverage/verdict-cache.d.ts +2 -0
- package/dist/coverage/verdict-cache.js +10 -1
- package/dist/coverage/verdict-cache.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +19 -0
- package/dist/diagnostics/diagnostic.js +53 -2
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/envelope.d.ts +54 -0
- package/dist/diagnostics/envelope.js +7 -1
- package/dist/diagnostics/envelope.js.map +1 -1
- package/dist/diagnostics/render.d.ts +7 -0
- package/dist/diagnostics/render.js +15 -4
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +6 -0
- package/dist/executable/executable-cache.js +5 -0
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +3 -0
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.js +5 -1
- package/dist/executable/prepare.js.map +1 -1
- package/dist/frontend/analysis.js +26 -2
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/decl-projection.js +105 -10
- package/dist/frontend/decl-projection.js.map +1 -1
- package/dist/frontend/fork-target.js +67 -1
- package/dist/frontend/fork-target.js.map +1 -1
- package/dist/frontend/fork-target.test.js +43 -0
- package/dist/frontend/fork-target.test.js.map +1 -1
- package/dist/frontend/input-tracker.d.ts +4 -1
- package/dist/frontend/input-tracker.js +42 -4
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +45 -0
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lowering/abstract-equality.js +38 -1
- package/dist/frontend/lowering/abstract-equality.js.map +1 -1
- package/dist/frontend/lowering/argument-counts.d.ts +36 -0
- package/dist/frontend/lowering/argument-counts.js +201 -0
- package/dist/frontend/lowering/argument-counts.js.map +1 -0
- package/dist/frontend/lowering/array-values.d.ts +27 -0
- package/dist/frontend/lowering/array-values.js +112 -0
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/binding-analysis.d.ts +3 -0
- package/dist/frontend/lowering/binding-analysis.js +9 -3
- package/dist/frontend/lowering/binding-analysis.js.map +1 -1
- package/dist/frontend/lowering/builtin-namespaces.d.ts +13 -0
- package/dist/frontend/lowering/builtin-namespaces.js +238 -0
- package/dist/frontend/lowering/builtin-namespaces.js.map +1 -0
- package/dist/frontend/lowering/builtins/async-context.d.ts +8 -2
- package/dist/frontend/lowering/builtins/async-context.js +62 -3
- package/dist/frontend/lowering/builtins/async-context.js.map +1 -1
- package/dist/frontend/lowering/builtins/compression.d.ts +4 -3
- package/dist/frontend/lowering/builtins/compression.js +86 -5
- package/dist/frontend/lowering/builtins/compression.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.js +3 -1
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/date-classes.js +17 -1
- package/dist/frontend/lowering/builtins/date-classes.js.map +1 -1
- package/dist/frontend/lowering/builtins/dates.d.ts +19 -5
- package/dist/frontend/lowering/builtins/dates.js +163 -9
- package/dist/frontend/lowering/builtins/dates.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.js +29 -4
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-glob.js +6 -3
- package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-paths.d.ts +43 -5
- package/dist/frontend/lowering/builtins/fs-paths.js +245 -93
- package/dist/frontend/lowering/builtins/fs-paths.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-streams.d.ts +4 -0
- package/dist/frontend/lowering/builtins/fs-streams.js +24 -1
- package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.d.ts +4 -1
- package/dist/frontend/lowering/builtins/json.js +9 -3
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-bindings.d.ts +6 -0
- package/dist/frontend/lowering/builtins/module-bindings.js +23 -1
- package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +6 -3
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-resolution.d.ts +5 -0
- package/dist/frontend/lowering/builtins/module-resolution.js +95 -4
- package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.d.ts +1 -1
- package/dist/frontend/lowering/builtins/promises.js +293 -139
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +5 -1
- package/dist/frontend/lowering/builtins/readline.js +22 -11
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/reflection.d.ts +4 -1
- package/dist/frontend/lowering/builtins/reflection.js +41 -1
- package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
- package/dist/frontend/lowering/builtins/text-codecs.js +31 -2
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
- package/dist/frontend/lowering/builtins/webassembly.js +4 -1
- package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
- package/dist/frontend/lowering/builtins/x509.d.ts +33 -0
- package/dist/frontend/lowering/builtins/x509.js +431 -0
- package/dist/frontend/lowering/builtins/x509.js.map +1 -0
- package/dist/frontend/lowering/call-arguments.js +44 -0
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.js +1 -2
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/cjs-exports-object.js +1 -1
- package/dist/frontend/lowering/cjs-exports-object.js.map +1 -1
- package/dist/frontend/lowering/cjs-inline-require.d.ts +32 -0
- package/dist/frontend/lowering/cjs-inline-require.js +308 -5
- package/dist/frontend/lowering/cjs-inline-require.js.map +1 -1
- package/dist/frontend/lowering/class-attributes.d.ts +7 -0
- package/dist/frontend/lowering/class-attributes.js +52 -10
- package/dist/frontend/lowering/class-attributes.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +23 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +288 -9
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-method-mutations.js +97 -26
- package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
- package/dist/frontend/lowering/class-method-values.js +71 -1
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.d.ts +25 -0
- package/dist/frontend/lowering/class-protocols.js +183 -1
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.d.ts +8 -0
- package/dist/frontend/lowering/class-prototypes.js +83 -2
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-to-primitive.d.ts +5 -0
- package/dist/frontend/lowering/class-to-primitive.js +79 -7
- package/dist/frontend/lowering/class-to-primitive.js.map +1 -1
- package/dist/frontend/lowering/coercions/state.d.ts +1 -0
- package/dist/frontend/lowering/coercions/state.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +89 -10
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/coercions/unions.d.ts +4 -2
- package/dist/frontend/lowering/coercions/unions.js +13 -6
- package/dist/frontend/lowering/coercions/unions.js.map +1 -1
- package/dist/frontend/lowering/completion-callbacks.d.ts +4 -0
- package/dist/frontend/lowering/completion-callbacks.js +146 -0
- package/dist/frontend/lowering/completion-callbacks.js.map +1 -0
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +5 -4
- package/dist/frontend/lowering/containers/array-callbacks.js +58 -21
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.d.ts +4 -1
- package/dist/frontend/lowering/containers/array-construction.js +107 -9
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +96 -8
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.js +346 -77
- package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.d.ts +25 -17
- package/dist/frontend/lowering/containers/bytes.js +453 -45
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.js +11 -1
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +12 -0
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +73 -25
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/containers/iterator-helpers.d.ts +4 -4
- package/dist/frontend/lowering/containers/iterator-helpers.js +8 -2
- package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
- package/dist/frontend/lowering/containers/replacer-params.d.ts +37 -0
- package/dist/frontend/lowering/containers/replacer-params.js +294 -0
- package/dist/frontend/lowering/containers/replacer-params.js.map +1 -0
- package/dist/frontend/lowering/containers/replacer-params.test.d.ts +1 -0
- package/dist/frontend/lowering/containers/replacer-params.test.js +61 -0
- package/dist/frontend/lowering/containers/replacer-params.test.js.map +1 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js +2 -1
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js +7 -3
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.d.ts +4 -2
- package/dist/frontend/lowering/cycle-initialization.js +4 -1
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
- package/dist/frontend/lowering/date-values.d.ts +14 -0
- package/dist/frontend/lowering/date-values.js +254 -0
- package/dist/frontend/lowering/date-values.js.map +1 -0
- package/dist/frontend/lowering/deferred-module-initializers.js +16 -8
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.test.js +22 -6
- package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
- package/dist/frontend/lowering/dispatch-sites.js +1 -0
- package/dist/frontend/lowering/dispatch-sites.js.map +1 -1
- package/dist/frontend/lowering/expressions/array-literals.d.ts +0 -8
- package/dist/frontend/lowering/expressions/array-literals.js +125 -26
- package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/binary.js +102 -26
- package/dist/frontend/lowering/expressions/binary.js.map +1 -1
- package/dist/frontend/lowering/expressions/element-access.js +129 -6
- package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/identifiers.js +66 -4
- package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
- package/dist/frontend/lowering/expressions/narrowing.d.ts +2 -1
- package/dist/frontend/lowering/expressions/narrowing.js +8 -1
- package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +8 -2
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/property-access.js +121 -34
- package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/relational.js +76 -11
- package/dist/frontend/lowering/expressions/relational.js.map +1 -1
- package/dist/frontend/lowering/expressions/typeof.js +12 -1
- package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
- package/dist/frontend/lowering/expressions/updates.js +37 -11
- package/dist/frontend/lowering/expressions/updates.js.map +1 -1
- package/dist/frontend/lowering/f64-handles.d.ts +8 -0
- package/dist/frontend/lowering/f64-handles.js +16 -0
- package/dist/frontend/lowering/f64-handles.js.map +1 -0
- package/dist/frontend/lowering/frozen-records.d.ts +5 -0
- package/dist/frontend/lowering/frozen-records.js +12 -4
- package/dist/frontend/lowering/frozen-records.js.map +1 -1
- package/dist/frontend/lowering/function-context.d.ts +3 -0
- package/dist/frontend/lowering/function-context.js.map +1 -1
- package/dist/frontend/lowering/function-returns.js +30 -0
- package/dist/frontend/lowering/function-returns.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.js +17 -6
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/indexed-unions.d.ts +54 -0
- package/dist/frontend/lowering/indexed-unions.js +401 -0
- package/dist/frontend/lowering/indexed-unions.js.map +1 -0
- package/dist/frontend/lowering/instantiation-path.d.ts +3 -2
- package/dist/frontend/lowering/instantiation-path.js.map +1 -1
- package/dist/frontend/lowering/instantiation-path.test.js +6 -4
- package/dist/frontend/lowering/instantiation-path.test.js.map +1 -1
- package/dist/frontend/lowering/iterator-adapters.d.ts +4 -2
- package/dist/frontend/lowering/iterator-adapters.js +26 -33
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
- package/dist/frontend/lowering/js-collection-types.d.ts +11 -0
- package/dist/frontend/lowering/js-collection-types.js +490 -0
- package/dist/frontend/lowering/js-collection-types.js.map +1 -0
- package/dist/frontend/lowering/key-order-witness.js +210 -32
- package/dist/frontend/lowering/key-order-witness.js.map +1 -1
- package/dist/frontend/lowering/key-order-witness.test.js +104 -4
- package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
- package/dist/frontend/lowering/lib-boundary.js +2 -2
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.d.ts +14 -0
- package/dist/frontend/lowering/lower-assert.js +298 -29
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.js +3 -3
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +116 -10
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +59 -7
- package/dist/frontend/lowering/lower-classes.js +668 -222
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-console.js +2 -1
- package/dist/frontend/lowering/lower-console.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +5 -0
- package/dist/frontend/lowering/lower-exprs.js +254 -3
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +7 -0
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.js +5 -4
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +1 -1
- package/dist/frontend/lowering/lower-inspect.js +299 -57
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +49 -22
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +3 -0
- package/dist/frontend/lowering/lower-namespaces.js +44 -1
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-module.js +1 -1
- package/dist/frontend/lowering/lower-node-module.js.map +1 -1
- package/dist/frontend/lowering/lower-server.js +126 -32
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +4 -1
- package/dist/frontend/lowering/lower-stdlib.js +51 -37
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +393 -79
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +515 -121
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +82 -12
- package/dist/frontend/lowering/lowerer.js +317 -44
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +1 -1
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/module-namespace-elements.d.ts +13 -0
- package/dist/frontend/lowering/module-namespace-elements.js +118 -1
- package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
- package/dist/frontend/lowering/object-factory-new.d.ts +5 -0
- package/dist/frontend/lowering/object-factory-new.js +20 -6
- package/dist/frontend/lowering/object-factory-new.js.map +1 -1
- package/dist/frontend/lowering/overload-choice.d.ts +33 -0
- package/dist/frontend/lowering/overload-choice.js +190 -0
- package/dist/frontend/lowering/overload-choice.js.map +1 -0
- package/dist/frontend/lowering/private-brands.d.ts +5 -0
- package/dist/frontend/lowering/private-brands.js +39 -0
- package/dist/frontend/lowering/private-brands.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-elements.d.ts +6 -0
- package/dist/frontend/lowering/runtime-optional-elements.js +14 -3
- package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
- package/dist/frontend/lowering/sanitize-class-types.js +2 -0
- package/dist/frontend/lowering/sanitize-class-types.js.map +1 -1
- package/dist/frontend/lowering/site-dependencies.d.ts +7 -2
- package/dist/frontend/lowering/site-dependencies.js +0 -15
- package/dist/frontend/lowering/site-dependencies.js.map +1 -1
- package/dist/frontend/lowering/site-dependencies.test.js +7 -5
- package/dist/frontend/lowering/site-dependencies.test.js.map +1 -1
- package/dist/frontend/lowering/string-index-bounds.d.ts +7 -4
- package/dist/frontend/lowering/string-index-bounds.js +21 -7
- package/dist/frontend/lowering/string-index-bounds.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +12 -3
- package/dist/frontend/lowering/surfaces.js +1630 -1540
- 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 +45 -2
- package/dist/frontend/lowering/symbol-fields.js.map +1 -1
- package/dist/frontend/lowering/union-narrow.d.ts +5 -2
- package/dist/frontend/lowering/union-narrow.js +6 -3
- package/dist/frontend/lowering/union-narrow.js.map +1 -1
- package/dist/frontend/lowering/union-narrow.test.js +10 -0
- package/dist/frontend/lowering/union-narrow.test.js.map +1 -1
- package/dist/frontend/npm-static-namespace-defaults.d.ts +6 -0
- package/dist/frontend/npm-static-namespace-defaults.js +163 -0
- package/dist/frontend/npm-static-namespace-defaults.js.map +1 -0
- package/dist/frontend/npm-static-namespace-defaults.test.d.ts +1 -0
- package/dist/frontend/npm-static-namespace-defaults.test.js +72 -0
- package/dist/frontend/npm-static-namespace-defaults.test.js.map +1 -0
- package/dist/frontend/npm-static-prune.js +152 -111
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static.js +35 -32
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/package-shims.d.ts +7 -4
- package/dist/frontend/package-shims.js +39 -40
- package/dist/frontend/package-shims.js.map +1 -1
- package/dist/frontend/pipeline-native.d.ts +2 -2
- package/dist/frontend/pipeline-native.js +2 -2
- package/dist/frontend/pipeline-native.js.map +1 -1
- package/dist/frontend/pipeline.d.ts +19 -2
- package/dist/frontend/pipeline.js +103 -12
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/program-analysis.d.ts +7 -1
- package/dist/frontend/program-analysis.js +8 -0
- package/dist/frontend/program-analysis.js.map +1 -1
- package/dist/frontend/program.d.ts +28 -5
- package/dist/frontend/program.js +422 -76
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/resolve.d.ts +2 -0
- package/dist/frontend/resolve.js +5 -0
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/services.d.ts +3 -0
- package/dist/frontend/services.js +31 -4
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/shape-inference/analyze.d.ts +93 -0
- package/dist/frontend/shape-inference/analyze.js +3138 -0
- package/dist/frontend/shape-inference/analyze.js.map +1 -0
- package/dist/frontend/shape-inference/constant-graphs.d.ts +54 -0
- package/dist/frontend/shape-inference/constant-graphs.js +357 -0
- package/dist/frontend/shape-inference/constant-graphs.js.map +1 -0
- package/dist/frontend/shape-inference/domain.d.ts +32 -0
- package/dist/frontend/shape-inference/domain.js +104 -0
- package/dist/frontend/shape-inference/domain.js.map +1 -0
- package/dist/frontend/shape-inference/index.d.ts +7 -0
- package/dist/frontend/shape-inference/index.js +19 -0
- package/dist/frontend/shape-inference/index.js.map +1 -0
- package/dist/frontend/shape-inference/report.d.ts +21 -0
- package/dist/frontend/shape-inference/report.js +348 -0
- package/dist/frontend/shape-inference/report.js.map +1 -0
- package/dist/frontend/token-equivalence.d.ts +6 -0
- package/dist/frontend/token-equivalence.js +66 -9
- package/dist/frontend/token-equivalence.js.map +1 -1
- package/dist/frontend/token-equivalence.test.js +33 -1
- package/dist/frontend/token-equivalence.test.js.map +1 -1
- package/dist/frontend/ts7/checker-features.d.ts +15 -0
- package/dist/frontend/ts7/checker-features.js +45 -0
- package/dist/frontend/ts7/checker-features.js.map +1 -0
- package/dist/frontend/ts7/checker-features.test.d.ts +1 -0
- package/dist/frontend/ts7/checker-features.test.js +40 -0
- package/dist/frontend/ts7/checker-features.test.js.map +1 -0
- package/dist/frontend/ts7/checker-server.d.ts +19 -0
- package/dist/frontend/ts7/checker-server.js +46 -0
- package/dist/frontend/ts7/checker-server.js.map +1 -0
- package/dist/frontend/ts7/checker-server.test.d.ts +1 -0
- package/dist/frontend/ts7/checker-server.test.js +38 -0
- package/dist/frontend/ts7/checker-server.test.js.map +1 -0
- package/dist/frontend/ts7/lib-diagnostics.js +39 -13
- package/dist/frontend/ts7/lib-diagnostics.js.map +1 -1
- package/dist/frontend/ts7/lib-diagnostics.test.js +40 -0
- package/dist/frontend/ts7/lib-diagnostics.test.js.map +1 -1
- package/dist/frontend/ts7/native-api.d.ts +1 -0
- package/dist/frontend/ts7/native-api.js +25 -2
- package/dist/frontend/ts7/native-api.js.map +1 -1
- package/dist/frontend/ts7/native-process.d.ts +9 -2
- package/dist/frontend/ts7/native-process.js +22 -4
- package/dist/frontend/ts7/native-process.js.map +1 -1
- package/dist/frontend/ts7/program-host.d.ts +11 -0
- package/dist/frontend/ts7/program-host.js +36 -22
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.d.ts +9 -0
- package/dist/frontend/ts7/semantic-json.js +25 -5
- package/dist/frontend/ts7/semantic-json.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.d.ts +3 -0
- package/dist/frontend/ts7/semantic-model.js +8 -1
- package/dist/frontend/ts7/semantic-model.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.test.js +6 -1
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-types.d.ts +1 -1
- package/dist/frontend/ts7/semantic-types.js +1 -1
- package/dist/frontend/ts7/semantic-types.js.map +1 -1
- package/dist/frontend/ts7/source-parser.js +3 -1
- package/dist/frontend/ts7/source-parser.js.map +1 -1
- package/dist/frontend/tsc-codes.js +10 -0
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +18 -6
- package/dist/frontend/type-mapper.js +205 -44
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.d.ts +44 -3
- package/dist/index.js +39 -8
- package/dist/index.js.map +1 -1
- package/dist/ir/builtin-effects.js +37 -0
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +7 -2
- package/dist/ir/builtin-signatures.js +5104 -4894
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/callback-specialization.d.ts +4 -2
- package/dist/ir/callback-specialization.js +24 -9
- package/dist/ir/callback-specialization.js.map +1 -1
- package/dist/ir/capture-values.js +4 -2
- package/dist/ir/capture-values.js.map +1 -1
- package/dist/ir/char-unit-locals.d.ts +12 -2
- package/dist/ir/char-unit-locals.js +400 -58
- package/dist/ir/char-unit-locals.js.map +1 -1
- package/dist/ir/char-unit-locals.test.js +111 -0
- package/dist/ir/char-unit-locals.test.js.map +1 -1
- package/dist/ir/constant-globals.js +18 -4
- package/dist/ir/constant-globals.js.map +1 -1
- package/dist/ir/expression-inlining.d.ts +15 -0
- package/dist/ir/expression-inlining.js +166 -0
- package/dist/ir/expression-inlining.js.map +1 -0
- package/dist/ir/expression-inlining.test.d.ts +1 -0
- package/dist/ir/expression-inlining.test.js +123 -0
- package/dist/ir/expression-inlining.test.js.map +1 -0
- package/dist/ir/function-references.js +2 -0
- package/dist/ir/function-references.js.map +1 -1
- package/dist/ir/function-references.test.js +6 -0
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/int32-arrays.d.ts +27 -6
- package/dist/ir/int32-arrays.js +106 -18
- package/dist/ir/int32-arrays.js.map +1 -1
- package/dist/ir/int32-slots.d.ts +26 -1
- package/dist/ir/int32-slots.js +291 -5
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +38 -0
- package/dist/ir/int32-slots.test.js.map +1 -1
- package/dist/ir/integer-loop-facts.d.ts +5 -0
- package/dist/ir/integer-loop-facts.js +90 -1
- package/dist/ir/integer-loop-facts.js.map +1 -1
- package/dist/ir/integer-loops.d.ts +14 -1
- package/dist/ir/integer-loops.js +107 -11
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +70 -0
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.js +18 -2
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +64 -4
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/ir.d.ts +63 -11
- package/dist/ir/ir.js +47 -7
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +2 -1
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/js-ic.d.ts +10 -3
- package/dist/ir/js-ic.js +14 -2
- package/dist/ir/js-ic.js.map +1 -1
- package/dist/ir/js-ic.test.js +11 -0
- package/dist/ir/js-ic.test.js.map +1 -1
- package/dist/ir/node-index.d.ts +7 -0
- package/dist/ir/node-index.js +32 -0
- package/dist/ir/node-index.js.map +1 -1
- package/dist/ir/receiver-readers.d.ts +6 -1
- package/dist/ir/receiver-readers.js +53 -28
- package/dist/ir/receiver-readers.js.map +1 -1
- package/dist/ir/row-pairs.d.ts +15 -0
- package/dist/ir/row-pairs.js +373 -0
- package/dist/ir/row-pairs.js.map +1 -0
- package/dist/ir/row-pairs.test.d.ts +1 -0
- package/dist/ir/row-pairs.test.js +129 -0
- package/dist/ir/row-pairs.test.js.map +1 -0
- package/dist/ir/runtime-features.d.ts +17 -4
- package/dist/ir/runtime-features.js +94 -13
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/scalar-records.d.ts +15 -0
- package/dist/ir/scalar-records.js +301 -1
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/scalar-records.test.js +181 -1
- package/dist/ir/scalar-records.test.js.map +1 -1
- package/dist/ir/self-captures.js +8 -0
- package/dist/ir/self-captures.js.map +1 -1
- package/dist/ir/validate.js +78 -28
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/fence-eval.js +4 -4
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/ir-policy.js +5 -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 +1 -0
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +13 -0
- package/dist/library/library-cache.test.js.map +1 -1
- package/dist/native/cache.d.ts +5 -1
- package/dist/native/cache.js +15 -3
- package/dist/native/cache.js.map +1 -1
- package/dist/native/cli.js +6 -0
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.d.ts +3 -0
- package/dist/native/compiler.js +72 -26
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/compiler.test.js +87 -2
- package/dist/native/compiler.test.js.map +1 -1
- package/dist/native/executable-cache-open.test.d.ts +1 -0
- package/dist/native/executable-cache-open.test.js +80 -0
- package/dist/native/executable-cache-open.test.js.map +1 -0
- package/dist/native/executable-cache.d.ts +43 -3
- package/dist/native/executable-cache.js +177 -36
- package/dist/native/executable-cache.js.map +1 -1
- package/dist/native/executable-cache.test.js +103 -0
- package/dist/native/executable-cache.test.js.map +1 -1
- package/dist/native/prepare.d.ts +1 -1
- package/dist/native/prepare.js +49 -17
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/prepare.test.js +69 -3
- package/dist/native/prepare.test.js.map +1 -1
- package/dist/native/sanitizer.d.ts +1 -1
- package/dist/native/sanitizer.js +17 -3
- package/dist/native/sanitizer.js.map +1 -1
- package/dist/native/sanitizer.test.js +4 -0
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/node-islands/classify.d.ts +14 -0
- package/dist/node-islands/classify.js +114 -0
- package/dist/node-islands/classify.js.map +1 -0
- package/dist/node-islands/detect.d.ts +13 -0
- package/dist/node-islands/detect.js +805 -0
- package/dist/node-islands/detect.js.map +1 -0
- package/dist/node-islands/detect.test.d.ts +1 -0
- package/dist/node-islands/detect.test.js +136 -0
- package/dist/node-islands/detect.test.js.map +1 -0
- package/dist/node-islands/origin.d.ts +21 -0
- package/dist/node-islands/origin.js +60 -0
- package/dist/node-islands/origin.js.map +1 -0
- package/dist/node-islands/policy.d.ts +49 -0
- package/dist/node-islands/policy.js +130 -0
- package/dist/node-islands/policy.js.map +1 -0
- package/dist/node-islands/report.d.ts +22 -0
- package/dist/node-islands/report.js +326 -0
- package/dist/node-islands/report.js.map +1 -0
- package/dist/node-islands/report.test.d.ts +1 -0
- package/dist/node-islands/report.test.js +228 -0
- package/dist/node-islands/report.test.js.map +1 -0
- package/dist/node-islands/rules.d.ts +20 -0
- package/dist/node-islands/rules.js +91 -0
- package/dist/node-islands/rules.js.map +1 -0
- package/dist/node-islands/scan.d.ts +53 -0
- package/dist/node-islands/scan.js +104 -0
- package/dist/node-islands/scan.js.map +1 -0
- package/dist/node-islands/summary.d.ts +78 -0
- package/dist/node-islands/summary.js +26 -0
- package/dist/node-islands/summary.js.map +1 -0
- package/dist/project-config.d.ts +50 -0
- package/dist/project-config.js +372 -0
- package/dist/project-config.js.map +1 -0
- package/dist/project-config.test.d.ts +1 -0
- package/dist/project-config.test.js +154 -0
- package/dist/project-config.test.js.map +1 -0
- package/dist/wasm/discover.js +6 -31
- package/dist/wasm/discover.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +21 -38
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-types.js","sourceRoot":"","sources":["../../../src/frontend/ts7/semantic-types.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"semantic-types.js","sourceRoot":"","sources":["../../../src/frontend/ts7/semantic-types.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -31,7 +31,9 @@ export class Ts7SourceParser {
|
|
|
31
31
|
this.api = this.connect();
|
|
32
32
|
}
|
|
33
33
|
connect() {
|
|
34
|
-
|
|
34
|
+
// Called as a plain function: the instance is not its receiver.
|
|
35
|
+
const createApi = this.createApi;
|
|
36
|
+
return createApi({
|
|
35
37
|
cwd: this.cwd,
|
|
36
38
|
fs: {
|
|
37
39
|
readFile: (path) => this.files.get(tsgoPath(path)) ?? null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-parser.js","sourceRoot":"","sources":["../../../src/frontend/ts7/source-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAK7C;;;;gBAIgB;AAChB,MAAM,oBAAoB,GAAG,GAAG,GAAG,IAAI,CAAC;AAExC;;;mEAGmE;AACnE,MAAM,OAAO,eAAe;IAeP,YAAY;IAdvB,GAAG,CAAS;IACH,SAAS,CAAsB;IACxC,YAAY,GAAG,CAAC,CAAC;IACR,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClC,UAAU,CAAS;IAC5B,YAAY,CAAqB;IACjC,YAAY,CAAqB;IACjC,YAAY,CAAyB;IACrC,MAAM,GAAG,KAAK,CAAC;IACN,GAAG,CAAS;IAE7B,YACE,SAA8B,EAC9B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACF,YAAY,GAAG,oBAAoB;4BAAnC,YAAY;QAE7B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,uCAAuC,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAEO,OAAO;QACb,
|
|
1
|
+
{"version":3,"file":"source-parser.js","sourceRoot":"","sources":["../../../src/frontend/ts7/source-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -127,10 +127,20 @@ export const JS_RELAXED_TSC_CODES = new Set([
|
|
|
127
127
|
// JavaScript subclasses may widen fields or add method parameters.
|
|
128
128
|
// Class lowering checks native storage and override ABIs at each use.
|
|
129
129
|
2415,
|
|
130
|
+
// a private or protected constructor (`new readline.Interface(...)`,
|
|
131
|
+
// whose declaration is protected): JavaScript has no constructor
|
|
132
|
+
// accessibility, and Node constructs the class. Each `new` meets the
|
|
133
|
+
// lowerer's per-site constructor fences.
|
|
134
|
+
2673,
|
|
135
|
+
2674,
|
|
130
136
|
// unresolvable modules: Node throws WHEN the require executes — the
|
|
131
137
|
// binding types as any and reached uses fence instead of passing unchecked
|
|
132
138
|
2307,
|
|
133
139
|
2792,
|
|
140
|
+
// `delete` of a property the inference typed required (2790): JS deletes
|
|
141
|
+
// any configurable property, and the lowering checks each delete's
|
|
142
|
+
// receiver itself
|
|
143
|
+
2790,
|
|
134
144
|
// useUnknownInCatchVariables' annotation demand ("'e' is of type
|
|
135
145
|
// 'unknown'", "Object is of type 'unknown'"): a JS catch clause CANNOT
|
|
136
146
|
// annotate its variable, so the demand is unsatisfiable in source —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsc-codes.js","sourceRoot":"","sources":["../../src/frontend/tsc-codes.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ;IACR,eAAe;IACf,kBAAkB;IAClB,qBAAqB;IACrB,qBAAqB;IACrB,8BAA8B;IAC9B,6BAA6B;IAC7B,gBAAgB;IAChB,cAAc;IACd,4BAA4B;IAC5B,0BAA0B;IAC1B,4BAA4B;IAC5B,oBAAoB;IACpB,oCAAoC;IACpC,mBAAmB;IACnB,4BAA4B;IAC5B,gBAAgB;IAChB,oBAAoB;IACpB,mBAAmB;IACnB,sBAAsB;IACtB,cAAc;IACd,iEAAiE;IACjE,qEAAqE;IACrE,kEAAkE;IAClE,kEAAkE;IAClE,iBAAiB;IACjB,8BAA8B;IAC9B,oEAAoE;IACpE,iEAAiE;IACjE,KAAK;IACL,YAAY;IACZ,oBAAoB;IACpB,iBAAiB;IACjB,gBAAgB;CACR,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,kEAAkE;IAClE,8DAA8D;IAC9D,iCAAiC;IACjC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,oEAAoE;IACpE,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,oEAAoE;IACpE,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,mCAAmC;IACnC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI,EAAE,4DAA4D;IAClE,IAAI,EAAE,yEAAyE;IAC/E,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,uEAAuE;IACvE,wEAAwE;IACxE,4EAA4E;IAC5E,oEAAoE;IACpE,kBAAkB;IAClB,IAAI;IACJ,IAAI;IACJ,qEAAqE;IACrE,uEAAuE;IACvE,mEAAmE;IACnE,sEAAsE;IACtE,kEAAkE;IAClE,sEAAsE;IACtE,wDAAwD;IACxD,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,uEAAuE;IACvE,4DAA4D;IAC5D,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,uEAAuE;IACvE,wEAAwE;IACxE,qEAAqE;IACrE,yCAAyC;IACzC,IAAI;IACJ,wEAAwE;IACxE,qEAAqE;IACrE,wDAAwD;IACxD,IAAI;IACJ,wEAAwE;IACxE,sEAAsE;IACtE,6DAA6D;IAC7D,IAAI;IACJ,IAAI;IACJ,iEAAiE;IACjE,IAAI;IACJ,mEAAmE;IACnE,sEAAsE;IACtE,IAAI;IACJ,oEAAoE;IACpE,2EAA2E;IAC3E,IAAI;IACJ,IAAI;IACJ,iEAAiE;IACjE,uEAAuE;IACvE,oEAAoE;IACpE,sEAAsE;IACtE,sEAAsE;IACtE,2FAA2F;IAC3F,KAAK;IACL,IAAI;CACL,CAAC,CAAC;AAEH;2EAC2E;AAC3E,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAEtF;;gCAEgC;AAChC,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,uEAAuE;IACvE,+CAA+C;IAC/C,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC"}
|
|
1
|
+
{"version":3,"file":"tsc-codes.js","sourceRoot":"","sources":["../../src/frontend/tsc-codes.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ;IACR,eAAe;IACf,kBAAkB;IAClB,qBAAqB;IACrB,qBAAqB;IACrB,8BAA8B;IAC9B,6BAA6B;IAC7B,gBAAgB;IAChB,cAAc;IACd,4BAA4B;IAC5B,0BAA0B;IAC1B,4BAA4B;IAC5B,oBAAoB;IACpB,oCAAoC;IACpC,mBAAmB;IACnB,4BAA4B;IAC5B,gBAAgB;IAChB,oBAAoB;IACpB,mBAAmB;IACnB,sBAAsB;IACtB,cAAc;IACd,iEAAiE;IACjE,qEAAqE;IACrE,kEAAkE;IAClE,kEAAkE;IAClE,iBAAiB;IACjB,8BAA8B;IAC9B,oEAAoE;IACpE,iEAAiE;IACjE,KAAK;IACL,YAAY;IACZ,oBAAoB;IACpB,iBAAiB;IACjB,gBAAgB;CACR,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,kEAAkE;IAClE,8DAA8D;IAC9D,iCAAiC;IACjC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,oEAAoE;IACpE,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,oEAAoE;IACpE,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,mCAAmC;IACnC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI,EAAE,4DAA4D;IAClE,IAAI,EAAE,yEAAyE;IAC/E,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,uEAAuE;IACvE,wEAAwE;IACxE,4EAA4E;IAC5E,oEAAoE;IACpE,kBAAkB;IAClB,IAAI;IACJ,IAAI;IACJ,qEAAqE;IACrE,uEAAuE;IACvE,mEAAmE;IACnE,sEAAsE;IACtE,kEAAkE;IAClE,sEAAsE;IACtE,wDAAwD;IACxD,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,uEAAuE;IACvE,4DAA4D;IAC5D,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,uEAAuE;IACvE,wEAAwE;IACxE,qEAAqE;IACrE,yCAAyC;IACzC,IAAI;IACJ,wEAAwE;IACxE,qEAAqE;IACrE,wDAAwD;IACxD,IAAI;IACJ,wEAAwE;IACxE,sEAAsE;IACtE,6DAA6D;IAC7D,IAAI;IACJ,IAAI;IACJ,iEAAiE;IACjE,IAAI;IACJ,mEAAmE;IACnE,sEAAsE;IACtE,IAAI;IACJ,qEAAqE;IACrE,iEAAiE;IACjE,qEAAqE;IACrE,yCAAyC;IACzC,IAAI;IACJ,IAAI;IACJ,oEAAoE;IACpE,2EAA2E;IAC3E,IAAI;IACJ,IAAI;IACJ,yEAAyE;IACzE,mEAAmE;IACnE,kBAAkB;IAClB,IAAI;IACJ,iEAAiE;IACjE,uEAAuE;IACvE,oEAAoE;IACpE,sEAAsE;IACtE,sEAAsE;IACtE,2FAA2F;IAC3F,KAAK;IACL,IAAI;CACL,CAAC,CAAC;AAEH;2EAC2E;AAC3E,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAEtF;;gCAEgC;AAChC,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,uEAAuE;IACvE,+CAA+C;IAC/C,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -9,9 +9,10 @@ export declare function jsOpenObjectType(decl: ts.Node | undefined, type: IrType
|
|
|
9
9
|
* global, SubtleCrypto, CryptoKey handles and the algorithm dictionaries
|
|
10
10
|
* (scr_webcrypto.c). */
|
|
11
11
|
export declare const WEBCRYPTO_DYN_TYPES: ReadonlySet<string>;
|
|
12
|
-
/** node:crypto's key
|
|
13
|
-
* KeyObject.export
|
|
14
|
-
*
|
|
12
|
+
/** node:crypto's key, signature and X509Certificate check option
|
|
13
|
+
* interfaces: the key functions, KeyObject.export, sign/verify and the
|
|
14
|
+
* X509Certificate checks take them as checked-dynamic arguments
|
|
15
|
+
* (scr_lib.c, scr_pki.c, scr_x509.c). */
|
|
15
16
|
export declare const CRYPTO_KEY_OPTION_DYN_TYPES: ReadonlySet<string>;
|
|
16
17
|
export declare const FETCH_AMBIENT_TYPES: readonly ["Response", "Request", "ResponseInit", "RequestInit", "Event", "CustomEvent", "MessageEvent", "EventTarget", "AddEventListenerOptions", "EventListenerOptions", "EventInit", "CustomEventInit", "AbortController", "AbortSignal", "Headers", "ReadableStream", "ReadableStreamDefaultReader", "ReadableStreamDefaultController", "ReadableStreamReadResult", "ReadableStreamReadValueResult", "ReadableStreamReadDoneResult", "TransformStream", "WritableStream", "WritableStreamDefaultWriter", "Blob", "File", "BlobPropertyBag", "FilePropertyBag", "BlobOptions", "FileOptions"];
|
|
17
18
|
/** node:crypto's Cipheriv and Decipheriv names in @types/node. */
|
|
@@ -422,9 +423,9 @@ export declare function isWorkerHandleType(type: ts.Type, ctx: Pick<TypeMapperCt
|
|
|
422
423
|
* elsewhere stay unmapped (they can hold any object implementing the
|
|
423
424
|
* protocol). Null when the annotation is not one of them. */
|
|
424
425
|
export declare function mapAsyncGeneratorAnnotation(type: ts.Type, ctx: TypeMapperCtx): IrType | null;
|
|
425
|
-
/** The native fetch handles (Headers, Request, Response
|
|
426
|
-
* arrays or with null/undefined: checked-dynamic
|
|
427
|
-
* stored, like the worker handles above. */
|
|
426
|
+
/** The native fetch handles (Headers, Request, Response, AbortController,
|
|
427
|
+
* AbortSignal), optionally in arrays or with null/undefined: checked-dynamic
|
|
428
|
+
* handles wherever they are stored, like the worker handles above. */
|
|
428
429
|
export declare function isFetchHandleType(type: ts.Type, ctx: Pick<TypeMapperCtx, "checker" | "isStdlibFile">): boolean;
|
|
429
430
|
export declare function mapType(type: ts.Type, ctx: TypeMapperCtx): IrType | null;
|
|
430
431
|
/** The element types of a REST parameter's type when it is a fixed tuple:
|
|
@@ -502,6 +503,17 @@ export declare function isUnitOnlyTsType(t: ts.Type, resolveTypeParam?: TypePara
|
|
|
502
503
|
* result is exactly the nullable-callback shape mapType's union branch
|
|
503
504
|
* admits, `(() => void) | undefined`) so the interned union is IDENTICAL
|
|
504
505
|
* to what mapping the checker's own `T | undefined` produces. */
|
|
506
|
+
/** The X509Certificate record's hidden slot for its publicKey KeyObject,
|
|
507
|
+
* filled on the first read (builtins/x509.ts). */
|
|
508
|
+
export declare const X509_PUBLIC_KEY_FIELD = "%publicKey";
|
|
509
|
+
/** The X509Certificate record's hidden copy of its DER, which its methods
|
|
510
|
+
* read: a program can write into the Buffer `raw` answers, and in Node
|
|
511
|
+
* that changes neither the certificate's checks nor its PEM. */
|
|
512
|
+
export declare const X509_DER_FIELD = "%der";
|
|
513
|
+
/** The X509Certificate record's fields in @types/node's declaration order
|
|
514
|
+
* ("string?" is string | undefined), then the hidden publicKey and DER
|
|
515
|
+
* slots. */
|
|
516
|
+
export declare const X509_FIELDS: readonly (readonly [string, IrType | "string?"])[];
|
|
505
517
|
export declare function withUndefinedArm(t: IrType, unions: UnionRegistry): IrType | null;
|
|
506
518
|
/** Preserve a nullish runtime value that JavaScript inference omitted. */
|
|
507
519
|
export declare function withUnitArm(t: IrType, kind: "nullT" | "undefinedT", unions: UnionRegistry): IrType | null;
|
|
@@ -107,9 +107,10 @@ export const WEBCRYPTO_DYN_TYPES = new Set([
|
|
|
107
107
|
"HkdfParams",
|
|
108
108
|
"AesDerivedKeyParams",
|
|
109
109
|
]);
|
|
110
|
-
/** node:crypto's key
|
|
111
|
-
* KeyObject.export
|
|
112
|
-
*
|
|
110
|
+
/** node:crypto's key, signature and X509Certificate check option
|
|
111
|
+
* interfaces: the key functions, KeyObject.export, sign/verify and the
|
|
112
|
+
* X509Certificate checks take them as checked-dynamic arguments
|
|
113
|
+
* (scr_lib.c, scr_pki.c, scr_x509.c). */
|
|
113
114
|
export const CRYPTO_KEY_OPTION_DYN_TYPES = new Set([
|
|
114
115
|
"AsymmetricKeyExportOptions",
|
|
115
116
|
"ECKeyPairKeyObjectOptions",
|
|
@@ -121,12 +122,14 @@ export const CRYPTO_KEY_OPTION_DYN_TYPES = new Set([
|
|
|
121
122
|
"PrivateKeyInput",
|
|
122
123
|
"PublicKeyInput",
|
|
123
124
|
"RSAKeyPairKeyObjectOptions",
|
|
125
|
+
"X25519KeyPairOptions",
|
|
124
126
|
"RSAKeyPairOptions",
|
|
125
127
|
"SignKeyObjectInput",
|
|
126
128
|
"SignPrivateKeyInput",
|
|
127
129
|
"SigningOptions",
|
|
128
130
|
"VerifyKeyObjectInput",
|
|
129
131
|
"VerifyPublicKeyInput",
|
|
132
|
+
"X509CheckOptions",
|
|
130
133
|
]);
|
|
131
134
|
export const FETCH_AMBIENT_TYPES = [
|
|
132
135
|
"Response",
|
|
@@ -1083,9 +1086,17 @@ function genChannels(yieldTs, retTs, nextTs, ctx) {
|
|
|
1083
1086
|
: mapType(nextTs, ctx);
|
|
1084
1087
|
if (!nextT || nextT.kind === "void" || nextT.kind === "nullT")
|
|
1085
1088
|
return null;
|
|
1086
|
-
const ownChannel = (t) => t.kind === "f64" || t.kind === "bool" || t.kind === "string"
|
|
1089
|
+
const ownChannel = (t) => t.kind === "f64" || t.kind === "bool" || t.kind === "string";
|
|
1090
|
+
// A record yield channel keeps its type beside a dyn return (an
|
|
1091
|
+
// `IterableIterator<Row>`). A record return channel beside a dyn yield
|
|
1092
|
+
// does not: the value a delegating `yield*` answers (Effect.gen's
|
|
1093
|
+
// generators) is often an object whose methods a record would drop.
|
|
1087
1094
|
const dynMix = (yieldT.kind === "dyn" && retT.kind !== "dyn" && retT.kind !== "void" && !ownChannel(retT)) ||
|
|
1088
|
-
(retT.kind === "dyn" &&
|
|
1095
|
+
(retT.kind === "dyn" &&
|
|
1096
|
+
yieldT.kind !== "dyn" &&
|
|
1097
|
+
yieldT.kind !== "void" &&
|
|
1098
|
+
!ownChannel(yieldT) &&
|
|
1099
|
+
yieldT.kind !== "record");
|
|
1089
1100
|
if (dynMix)
|
|
1090
1101
|
return { yieldT: DYN, retT: DYN, nextT };
|
|
1091
1102
|
return { yieldT, retT, nextT };
|
|
@@ -1111,16 +1122,18 @@ let mapTypeDepth = 0;
|
|
|
1111
1122
|
* stay fenced instead of interning a per-context-wrong shape). */
|
|
1112
1123
|
let contextResolutions = 0;
|
|
1113
1124
|
/** node:url's legacy record interfaces: url.parse()'s Url instance (and
|
|
1114
|
-
* its two query-typed refinements), url.format()'s UrlObject input,
|
|
1115
|
-
* URL form's URLFormatOptions. The values
|
|
1116
|
-
* Node's Url instance carries its class name
|
|
1117
|
-
* reads any object's fields with JS truthiness
|
|
1125
|
+
* its two query-typed refinements), url.format()'s UrlObject input, the
|
|
1126
|
+
* URL form's URLFormatOptions, and urlToHttpOptions's result. The values
|
|
1127
|
+
* are checked-dynamic objects — Node's Url instance carries its class name
|
|
1128
|
+
* and null fields, format() reads any object's fields with JS truthiness,
|
|
1129
|
+
* and urlToHttpOptions answers a null-prototype object. */
|
|
1118
1130
|
const LEGACY_URL_TYPES = new Set([
|
|
1119
1131
|
"Url",
|
|
1120
1132
|
"UrlObject",
|
|
1121
1133
|
"UrlWithParsedQuery",
|
|
1122
1134
|
"UrlWithStringQuery",
|
|
1123
1135
|
"URLFormatOptions",
|
|
1136
|
+
"UrlHttpOptions",
|
|
1124
1137
|
]);
|
|
1125
1138
|
export function isLegacyUrlType(type, ctx) {
|
|
1126
1139
|
const symbol = type.getAliasSymbol() ?? type.getSymbol();
|
|
@@ -1385,9 +1398,16 @@ export function mapAsyncGeneratorAnnotation(type, ctx) {
|
|
|
1385
1398
|
return null;
|
|
1386
1399
|
return { kind: "generator", async: true, ...channels };
|
|
1387
1400
|
}
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1401
|
+
const FETCH_HANDLE_NAMES = new Set([
|
|
1402
|
+
"Headers",
|
|
1403
|
+
"Request",
|
|
1404
|
+
"Response",
|
|
1405
|
+
"AbortController",
|
|
1406
|
+
"AbortSignal",
|
|
1407
|
+
]);
|
|
1408
|
+
/** The native fetch handles (Headers, Request, Response, AbortController,
|
|
1409
|
+
* AbortSignal), optionally in arrays or with null/undefined: checked-dynamic
|
|
1410
|
+
* handles wherever they are stored, like the worker handles above. */
|
|
1391
1411
|
export function isFetchHandleType(type, ctx) {
|
|
1392
1412
|
const members = type.isUnionType() ? ts.constituentTypes(type) : [type];
|
|
1393
1413
|
let handle = false;
|
|
@@ -1402,9 +1422,7 @@ export function isFetchHandleType(type, ctx) {
|
|
|
1402
1422
|
else {
|
|
1403
1423
|
const symbol = member.getSymbol();
|
|
1404
1424
|
if (!symbol ||
|
|
1405
|
-
(ts.symbolName(symbol)
|
|
1406
|
-
ts.symbolName(symbol) !== "Request" &&
|
|
1407
|
-
ts.symbolName(symbol) !== "Response") ||
|
|
1425
|
+
!FETCH_HANDLE_NAMES.has(ts.symbolName(symbol)) ||
|
|
1408
1426
|
!symbol.declarations.some((d) => (ts.isInterfaceDeclaration(d) || ts.isClassDeclaration(d)) &&
|
|
1409
1427
|
ctx.isStdlibFile(ts.getSourceFileOfNode(d))))
|
|
1410
1428
|
return false;
|
|
@@ -1958,6 +1976,20 @@ function mapTypeInner(type, ctx) {
|
|
|
1958
1976
|
elem = unitOnlyUnion(unions);
|
|
1959
1977
|
if (!elem)
|
|
1960
1978
|
return null;
|
|
1979
|
+
// `(T | undefined)[]` of a number, string or boolean T stores T
|
|
1980
|
+
// elements: an array slot holds a present undefined by its own state,
|
|
1981
|
+
// so a T[] seen as `(T | undefined)[]` stays the same array.
|
|
1982
|
+
let optionalElements = false;
|
|
1983
|
+
if (elem.kind === "union") {
|
|
1984
|
+
const arms = unions.get(elem.unionId)?.arms;
|
|
1985
|
+
const present = arms?.length === 2 ? arms.find((arm) => arm.kind !== "undefinedT") : undefined;
|
|
1986
|
+
if (present !== undefined &&
|
|
1987
|
+
arms.some((arm) => arm.kind === "undefinedT") &&
|
|
1988
|
+
(present.kind === "f64" || present.kind === "string" || present.kind === "bool")) {
|
|
1989
|
+
elem = present;
|
|
1990
|
+
optionalElements = true;
|
|
1991
|
+
}
|
|
1992
|
+
}
|
|
1961
1993
|
// A dyn ELEMENT makes the WHOLE array the checked-dynamic value:
|
|
1962
1994
|
// `unknown[]`, `object[]`, and the collapsed `(string | object)[]`
|
|
1963
1995
|
// (the plugins-slot shape) — the checked-dynamic tree has real arrays, so length/
|
|
@@ -1981,7 +2013,7 @@ function mapTypeInner(type, ctx) {
|
|
|
1981
2013
|
// drain of the auxiliary-server registries): handles are ordinary
|
|
1982
2014
|
// refcounted REF elements (their `_v` adapters, no trace — both drop
|
|
1983
2015
|
// their closures at their terminal event).
|
|
1984
|
-
return arrayOf(elem);
|
|
2016
|
+
return optionalElements ? { kind: "array", elem, optionalElements: true } : arrayOf(elem);
|
|
1985
2017
|
}
|
|
1986
2018
|
// Tuples: `[string, string]` maps to an interned RECORD shape flagged
|
|
1987
2019
|
// `tuple`, with one field per position named by its index ("0", "1", ...)
|
|
@@ -2712,10 +2744,9 @@ function mapTypeInner(type, ctx) {
|
|
|
2712
2744
|
const collectionView = mapCollectionView(widened, ctx);
|
|
2713
2745
|
if (collectionView)
|
|
2714
2746
|
return collectionView;
|
|
2715
|
-
// Date: a TimeClip'd
|
|
2716
|
-
//
|
|
2717
|
-
//
|
|
2718
|
-
// carries no object identity.
|
|
2747
|
+
// Date: a refcounted object holding its TimeClip'd time value (ScrDate),
|
|
2748
|
+
// shared with the checked-dynamic Date handle, so it keeps its identity
|
|
2749
|
+
// through every slot and through `unknown`. Setters stay fenced.
|
|
2719
2750
|
if (isStdlibInterface("Date"))
|
|
2720
2751
|
return DATE_T;
|
|
2721
2752
|
// RegExp: a reference to the lib RegExp interface — provenance, not the
|
|
@@ -3302,10 +3333,11 @@ function mapTypeInner(type, ctx) {
|
|
|
3302
3333
|
// argument — fenced at the call).
|
|
3303
3334
|
// Mixed dyn/concrete value channels share checked storage, so either
|
|
3304
3335
|
// branch of the result record has the same representation. A number,
|
|
3305
|
-
// boolean
|
|
3306
|
-
//
|
|
3307
|
-
// values ride OUT typed and box
|
|
3308
|
-
// for-of and spread read them
|
|
3336
|
+
// boolean or string channel keeps its own type beside a dyn one (the
|
|
3337
|
+
// `Generator<number>` default), and so does a record yield channel beside
|
|
3338
|
+
// a dyn return (`IterableIterator<Row>`): its values ride OUT typed and box
|
|
3339
|
+
// only when the result record is built, so for-of and spread read them
|
|
3340
|
+
// back unchecked.
|
|
3309
3341
|
if (isStdlibInterface("Generator") ||
|
|
3310
3342
|
isStdlibInterface("AsyncGenerator") ||
|
|
3311
3343
|
isStdlibInterface("IterableIterator") ||
|
|
@@ -3696,25 +3728,36 @@ function mapTypeInner(type, ctx) {
|
|
|
3696
3728
|
], false, undefined, ["publicKey", "privateKey"]),
|
|
3697
3729
|
};
|
|
3698
3730
|
}
|
|
3699
|
-
//
|
|
3700
|
-
//
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
|
|
3731
|
+
// X509Certificate.toLegacyObject()'s PeerCertificate (and tls's detailed
|
|
3732
|
+
// form) is a plain checked-dynamic object.
|
|
3733
|
+
if (psym !== undefined &&
|
|
3734
|
+
(ts.symbolName(psym) === "PeerCertificate" ||
|
|
3735
|
+
ts.symbolName(psym) === "DetailedPeerCertificate") &&
|
|
3736
|
+
psym.declarations.some((d) => ts.isInterfaceDeclaration(d) && ctx.isStdlibFile(ts.getSourceFileOfNode(d)))) {
|
|
3737
|
+
return DYN;
|
|
3738
|
+
}
|
|
3739
|
+
// crypto.X509Certificate — the Dirent-style data record: its fields are
|
|
3740
|
+
// the certificate's lowered members, all computed at construction by the
|
|
3741
|
+
// new-expression lowering (raw decodes the input once, and the others
|
|
3742
|
+
// read raw). Module-checked like SecureContext; @types/node declares the
|
|
3743
|
+
// class inside `declare module "crypto"`, the shipped fallback mirrors
|
|
3744
|
+
// it. JSON.stringify of one shows the fields where Node's internal-slot
|
|
3745
|
+
// object shows {} — the Dirent %dtype edge's cousin.
|
|
3706
3746
|
if (psym !== undefined &&
|
|
3707
3747
|
ts.symbolName(psym) === "X509Certificate" &&
|
|
3708
3748
|
psym.declarations.some((d) => (ts.isInterfaceDeclaration(d) || ts.isClassDeclaration(d)) &&
|
|
3709
3749
|
ctx.isStdlibFile(ts.getSourceFileOfNode(d)) &&
|
|
3710
3750
|
isDeclaredInAmbientModule(d, "crypto"))) {
|
|
3751
|
+
const optionalString = withUndefinedArm(STRING, ctx.unions);
|
|
3752
|
+
if (!optionalString)
|
|
3753
|
+
return null;
|
|
3754
|
+
const fields = X509_FIELDS.map(([name, type]) => ({
|
|
3755
|
+
name,
|
|
3756
|
+
type: type === "string?" ? optionalString : type,
|
|
3757
|
+
}));
|
|
3711
3758
|
return {
|
|
3712
3759
|
kind: "record",
|
|
3713
|
-
shapeId: ctx.shapes.intern([
|
|
3714
|
-
{ name: "fingerprint", type: STRING },
|
|
3715
|
-
{ name: "validFrom", type: STRING },
|
|
3716
|
-
{ name: "validTo", type: STRING },
|
|
3717
|
-
], false, undefined, ["fingerprint", "validFrom", "validTo"]),
|
|
3760
|
+
shapeId: ctx.shapes.intern([...fields].sort((a, b) => (a.name < b.name ? -1 : 1)), false, undefined, fields.map((f) => f.name)),
|
|
3718
3761
|
};
|
|
3719
3762
|
}
|
|
3720
3763
|
// perf_hooks' PerformanceEntry, PerformanceMark and PerformanceMeasure
|
|
@@ -3948,6 +3991,10 @@ function mapTypeInner(type, ctx) {
|
|
|
3948
3991
|
return hybrid;
|
|
3949
3992
|
}
|
|
3950
3993
|
const callSigs = checker.getCallSignatures(widened);
|
|
3994
|
+
// AsyncLocalStorage.snapshot()'s generic runner is a dyn function value
|
|
3995
|
+
// (als.snapshot), called through the dyn call path.
|
|
3996
|
+
if (callSigs.length === 1 && isAsyncLocalStorageSnapshot(callSigs[0], ctx))
|
|
3997
|
+
return DYN;
|
|
3951
3998
|
if (callSigs.length === 1)
|
|
3952
3999
|
return mapCallSignature(callSigs[0], ctx);
|
|
3953
4000
|
// Records: object types whose members are all data properties (shorthand
|
|
@@ -4080,6 +4127,20 @@ function mapTypeInner(type, ctx) {
|
|
|
4080
4127
|
if (record)
|
|
4081
4128
|
return record;
|
|
4082
4129
|
}
|
|
4130
|
+
// An intersection whose constituents all map to ONE representation is
|
|
4131
|
+
// that representation. An intersection that restates an optional member
|
|
4132
|
+
// as required (`Opts & { files: Array<{ path: string }> }` over
|
|
4133
|
+
// `files?: Array<{ path: string }>`) gives the member the type `A[] & B[]`
|
|
4134
|
+
// with two separately written but structurally equal element literals;
|
|
4135
|
+
// the checker keeps both, while their arrays (tuples, maps, ...) intern
|
|
4136
|
+
// to one IR type. Reached only after every other intersection rule
|
|
4137
|
+
// declined, so intersections that already mapped keep their mapping. A
|
|
4138
|
+
// dynamic result stays unmapped: two opaque types are not one type.
|
|
4139
|
+
if (widened.isIntersectionType()) {
|
|
4140
|
+
const same = mapEqualConstituentsIntersection(widened, ctx);
|
|
4141
|
+
if (same)
|
|
4142
|
+
return same;
|
|
4143
|
+
}
|
|
4083
4144
|
// Unions. `boolean` is internally `true | false`, and narrowing produces
|
|
4084
4145
|
// literal unions like `"a" | "b"` — parts that map to the SAME IR type
|
|
4085
4146
|
// collapse (deduplicated by typeKey), so a single surviving arm is just
|
|
@@ -4237,7 +4298,6 @@ function mapTypeInner(type, ctx) {
|
|
|
4237
4298
|
}
|
|
4238
4299
|
if (arms.some((a) => a.kind === "void" ||
|
|
4239
4300
|
a.kind === "union" ||
|
|
4240
|
-
a.kind === "date" ||
|
|
4241
4301
|
a.kind === "dyn" ||
|
|
4242
4302
|
// A generator arm only comes from an Iterable<T> (an optional
|
|
4243
4303
|
// one keeps its unit arms beside the iterable union's).
|
|
@@ -4271,6 +4331,24 @@ function mapTypeInner(type, ctx) {
|
|
|
4271
4331
|
/** One non-overloaded call signature's func type (mapTypeInner's
|
|
4272
4332
|
* single-signature rule; erasedOverloadMemberType maps each overload of a
|
|
4273
4333
|
* member through it). */
|
|
4334
|
+
/** Whether `sig` is the function type AsyncLocalStorage.snapshot() returns:
|
|
4335
|
+
* declared as that static method's return type in the async_hooks module
|
|
4336
|
+
* of the standard library declarations. */
|
|
4337
|
+
function isAsyncLocalStorageSnapshot(sig, ctx) {
|
|
4338
|
+
const decl = sig.declaration;
|
|
4339
|
+
if (decl === undefined || !ts.isFunctionTypeNode(decl))
|
|
4340
|
+
return false;
|
|
4341
|
+
const method = decl.parent;
|
|
4342
|
+
return (method !== undefined &&
|
|
4343
|
+
ts.isMethodDeclaration(method) &&
|
|
4344
|
+
ts.isIdentifier(method.name) &&
|
|
4345
|
+
method.name.text === "snapshot" &&
|
|
4346
|
+
method.parent !== undefined &&
|
|
4347
|
+
ts.isClassDeclaration(method.parent) &&
|
|
4348
|
+
method.parent.name?.text === "AsyncLocalStorage" &&
|
|
4349
|
+
ctx.isStdlibFile(ts.getSourceFileOfNode(decl)) &&
|
|
4350
|
+
isDeclaredInAmbientModule(decl, "async_hooks"));
|
|
4351
|
+
}
|
|
4274
4352
|
function mapCallSignature(sig, ctx) {
|
|
4275
4353
|
const { checker } = ctx;
|
|
4276
4354
|
if (sig.getTypeParameters().length && ctx.erasingSignature !== sig)
|
|
@@ -5712,7 +5790,7 @@ export function genResultRecord(yieldT, retT, shapes, unions) {
|
|
|
5712
5790
|
byKey.set(typeKey(a), a);
|
|
5713
5791
|
return true;
|
|
5714
5792
|
}
|
|
5715
|
-
if (t.kind === "regex" || t.kind === "
|
|
5793
|
+
if (t.kind === "regex" || t.kind === "generator") {
|
|
5716
5794
|
return false; // no legal union arm exists for these kinds
|
|
5717
5795
|
}
|
|
5718
5796
|
byKey.set(typeKey(t), t);
|
|
@@ -5777,6 +5855,36 @@ function boundVoidReturnType(p, resolveTypeParam) {
|
|
|
5777
5855
|
* result is exactly the nullable-callback shape mapType's union branch
|
|
5778
5856
|
* admits, `(() => void) | undefined`) so the interned union is IDENTICAL
|
|
5779
5857
|
* to what mapping the checker's own `T | undefined` produces. */
|
|
5858
|
+
/** The X509Certificate record's hidden slot for its publicKey KeyObject,
|
|
5859
|
+
* filled on the first read (builtins/x509.ts). */
|
|
5860
|
+
export const X509_PUBLIC_KEY_FIELD = "%publicKey";
|
|
5861
|
+
/** The X509Certificate record's hidden copy of its DER, which its methods
|
|
5862
|
+
* read: a program can write into the Buffer `raw` answers, and in Node
|
|
5863
|
+
* that changes neither the certificate's checks nor its PEM. */
|
|
5864
|
+
export const X509_DER_FIELD = "%der";
|
|
5865
|
+
/** The X509Certificate record's fields in @types/node's declaration order
|
|
5866
|
+
* ("string?" is string | undefined), then the hidden publicKey and DER
|
|
5867
|
+
* slots. */
|
|
5868
|
+
export const X509_FIELDS = [
|
|
5869
|
+
["ca", BOOL],
|
|
5870
|
+
["fingerprint", STRING],
|
|
5871
|
+
["fingerprint256", STRING],
|
|
5872
|
+
["fingerprint512", STRING],
|
|
5873
|
+
["subject", STRING],
|
|
5874
|
+
["subjectAltName", "string?"],
|
|
5875
|
+
["infoAccess", "string?"],
|
|
5876
|
+
["issuer", STRING],
|
|
5877
|
+
["raw", { kind: "bytes", elem: "u8" }],
|
|
5878
|
+
["serialNumber", STRING],
|
|
5879
|
+
["signatureAlgorithm", "string?"],
|
|
5880
|
+
["signatureAlgorithmOid", STRING],
|
|
5881
|
+
["validFrom", STRING],
|
|
5882
|
+
["validFromDate", DATE_T],
|
|
5883
|
+
["validTo", STRING],
|
|
5884
|
+
["validToDate", DATE_T],
|
|
5885
|
+
[X509_PUBLIC_KEY_FIELD, DYN],
|
|
5886
|
+
[X509_DER_FIELD, { kind: "bytes", elem: "u8" }],
|
|
5887
|
+
];
|
|
5780
5888
|
export function withUndefinedArm(t, unions) {
|
|
5781
5889
|
return withUnitArm(t, "undefinedT", unions);
|
|
5782
5890
|
}
|
|
@@ -5787,16 +5895,16 @@ export function withUnitArm(t, kind, unions) {
|
|
|
5787
5895
|
const def = unions.get(t.unionId);
|
|
5788
5896
|
if (!def)
|
|
5789
5897
|
return null;
|
|
5790
|
-
if (def.arms.some((a) => a.kind === "date"))
|
|
5791
|
-
return null;
|
|
5792
5898
|
if (def.arms.some((a) => a.kind === kind))
|
|
5793
5899
|
return t;
|
|
5794
5900
|
const arms = [...def.arms, unit];
|
|
5901
|
+
// Date and Promise arms beside other data arms have no union home.
|
|
5902
|
+
if (!unionContainerArmsOk(arms))
|
|
5903
|
+
return null;
|
|
5795
5904
|
arms.sort((a, b) => (typeKey(a) < typeKey(b) ? -1 : 1));
|
|
5796
5905
|
return { kind: "union", unionId: unions.transform(def, arms) };
|
|
5797
5906
|
}
|
|
5798
5907
|
if (t.kind === "void" ||
|
|
5799
|
-
t.kind === "date" ||
|
|
5800
5908
|
t.kind === "dyn" ||
|
|
5801
5909
|
// A bare unit field type cannot occur (units live only inside unions),
|
|
5802
5910
|
// but guard against constructing a single-arm union from one.
|
|
@@ -5817,6 +5925,21 @@ export function withUnitArm(t, kind, unions) {
|
|
|
5817
5925
|
* assigned keys, which is also Node's answer for Object.assign(fn, obj)
|
|
5818
5926
|
* (a function's own length/name are non-enumerable). Null whenever the
|
|
5819
5927
|
* shape doesn't fit — the caller falls through to the plain-func mapping. */
|
|
5928
|
+
/** The IR type every constituent of an intersection maps to, or null when a
|
|
5929
|
+
* constituent is unmappable or dynamic, or two constituents differ. */
|
|
5930
|
+
function mapEqualConstituentsIntersection(widened, ctx) {
|
|
5931
|
+
let same = null;
|
|
5932
|
+
for (const part of ts.constituentTypes(widened)) {
|
|
5933
|
+
const mapped = mapType(part, ctx);
|
|
5934
|
+
if (mapped === null || mapped.kind === "dyn")
|
|
5935
|
+
return null;
|
|
5936
|
+
if (same === null)
|
|
5937
|
+
same = mapped;
|
|
5938
|
+
else if (!typeEquals(same, mapped))
|
|
5939
|
+
return null;
|
|
5940
|
+
}
|
|
5941
|
+
return same;
|
|
5942
|
+
}
|
|
5820
5943
|
function mapHybridCallableIntersection(widened, ctx) {
|
|
5821
5944
|
const { checker, shapes } = ctx;
|
|
5822
5945
|
if (!widened.isIntersectionType())
|
|
@@ -6086,6 +6209,42 @@ function immutableSourceType(type, ctx) {
|
|
|
6086
6209
|
}
|
|
6087
6210
|
return null;
|
|
6088
6211
|
}
|
|
6212
|
+
/** A mapped type reached through a type alias whose arguments mention no
|
|
6213
|
+
* type parameter (`Record<never, number>`, `Catalog<typeof data, "image">`,
|
|
6214
|
+
* a module-level alias without arguments):
|
|
6215
|
+
* the checker computed its members from concrete inputs, so an empty
|
|
6216
|
+
* result really is the empty object type, unlike `Partial<T>` inside a
|
|
6217
|
+
* generic body. */
|
|
6218
|
+
function resolvedMappedAlias(t, ctx) {
|
|
6219
|
+
if (!isMappedShape(t) || t.getAliasSymbol() === undefined)
|
|
6220
|
+
return false;
|
|
6221
|
+
const args = t.getAliasTypeArguments();
|
|
6222
|
+
const seen = new Set();
|
|
6223
|
+
const concrete = (part) => {
|
|
6224
|
+
if (part.flags & (ts.TypeFlags.TypeParameter | ts.TypeFlags.Index))
|
|
6225
|
+
return false;
|
|
6226
|
+
if (part.flags & (ts.TypeFlags.IndexedAccess | ts.TypeFlags.Conditional))
|
|
6227
|
+
return false;
|
|
6228
|
+
if (seen.has(part))
|
|
6229
|
+
return true;
|
|
6230
|
+
seen.add(part);
|
|
6231
|
+
if (part.isUnionType() || part.isIntersectionType())
|
|
6232
|
+
return ts.constituentTypes(part).every(concrete);
|
|
6233
|
+
if (!part.getAliasTypeArguments().every(concrete))
|
|
6234
|
+
return false;
|
|
6235
|
+
return ((part.flags & ts.TypeFlags.Object) === 0 ||
|
|
6236
|
+
(part.objectFlags & ts.ObjectFlags.Reference) === 0 ||
|
|
6237
|
+
ctx.checker.getTypeArguments(part).every(concrete));
|
|
6238
|
+
};
|
|
6239
|
+
// An alias without type arguments is concrete when it is declared at
|
|
6240
|
+
// module level (a function body's alias may mention that function's type
|
|
6241
|
+
// parameters).
|
|
6242
|
+
if (args.length === 0)
|
|
6243
|
+
return t
|
|
6244
|
+
.getAliasSymbol()
|
|
6245
|
+
.declarations.every((d) => ts.isTypeAliasDeclaration(d) && (ts.isSourceFile(d.parent) || ts.isModuleBlock(d.parent)));
|
|
6246
|
+
return args.every(concrete);
|
|
6247
|
+
}
|
|
6089
6248
|
/** True for MAPPED-type results — `Partial<Config>`, `Record<"a", n>`,
|
|
6090
6249
|
* whatever `Pick`/`Omit` reduce to. Their shape is computed by the checker,
|
|
6091
6250
|
* not declared anywhere: the only declaration behind them is the utility
|
|
@@ -6988,8 +7147,11 @@ function mapRecordTypeInner(widened, ctx) {
|
|
|
6988
7147
|
// still unknown there) — interning `{}` would give a wrong type. The
|
|
6989
7148
|
// degenerate empties (`Partial<{}>`, `Omit<C, keyof C>`) go with it.
|
|
6990
7149
|
// An INDEX-SIGNATURE shape is exempt: `Record<string, T>` legitimately
|
|
6991
|
-
// has zero declared members — the signature is the shape.
|
|
6992
|
-
|
|
7150
|
+
// has zero declared members — the signature is the shape. So is a mapped
|
|
7151
|
+
// alias instantiated over concrete arguments (`Record<never, T>`, a
|
|
7152
|
+
// catalog type whose key filter keeps no key): the checker resolved it,
|
|
7153
|
+
// and it is the empty object type below.
|
|
7154
|
+
if (computed && props.length === 0 && !indexValue && !resolvedMappedAlias(widened, ctx))
|
|
6993
7155
|
return null;
|
|
6994
7156
|
// An empty object type — `{}` (spelled, the checker's shared
|
|
6995
7157
|
// intrinsic, or inferred from an empty object literal), `interface
|
|
@@ -7312,7 +7474,6 @@ function armHasUnionHome(arm) {
|
|
|
7312
7474
|
case "void":
|
|
7313
7475
|
case "union":
|
|
7314
7476
|
case "regex":
|
|
7315
|
-
case "date":
|
|
7316
7477
|
case "generator":
|
|
7317
7478
|
case "dyn":
|
|
7318
7479
|
return false;
|