@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,4 +1,5 @@
|
|
|
1
1
|
/* Array literals. */
|
|
2
|
+
import { indexedUnionArms, lowerIndexedUnionToArray } from "../indexed-unions.js";
|
|
2
3
|
import * as ts from "../../ts7/adapter.js";
|
|
3
4
|
import { neverTaintedJsType } from "../lowerer.js";
|
|
4
5
|
import { notIterableSpelling } from "../iterable-spelling.js";
|
|
@@ -14,9 +15,10 @@ import { lowerCollectionSpread } from "../containers/collection-methods.js";
|
|
|
14
15
|
import { strCharsCall } from "../containers/array-construction.js";
|
|
15
16
|
import { generatorDrain } from "../iterator-adapters.js";
|
|
16
17
|
import { isSearchParamsIterable } from "../builtins/url.js";
|
|
17
|
-
import { varRef } from "../../../ir/build.js";
|
|
18
|
-
import { arrayValueStore } from "../array-values.js";
|
|
18
|
+
import { dynUndefinedExpr, varRef } from "../../../ir/build.js";
|
|
19
|
+
import { arrayValueStore, primitiveElement } from "../array-values.js";
|
|
19
20
|
import { classGeneratorIterable } from "../class-iterables.js";
|
|
21
|
+
import { iteratorCanStep } from "../iterator-consumption.js";
|
|
20
22
|
/** JavaScript: whether `expr` is or holds an existing checked-dynamic
|
|
21
23
|
* object — a binding stored as a dyn value whose checker type is an
|
|
22
24
|
* object, or an array or object literal with such an element. Building
|
|
@@ -74,6 +76,12 @@ function emptyNeverLiteral(lowerer, expr) {
|
|
|
74
76
|
* tsc's API doesn't surface it (ternary arms under an array context —
|
|
75
77
|
* tsc accepts the arm covariantly, but a tagged element representation
|
|
76
78
|
* must be BUILT as the slot's element type). */
|
|
79
|
+
/** The checker type of `node` admits undefined. */
|
|
80
|
+
function mayHoldUndefined(lowerer, node) {
|
|
81
|
+
const type = lowerer.typeOf(node);
|
|
82
|
+
const parts = type.isUnionType() ? ts.constituentTypes(type) : [type];
|
|
83
|
+
return parts.some((part) => (part.flags & (ts.TypeFlags.Undefined | ts.TypeFlags.Void)) !== 0);
|
|
84
|
+
}
|
|
77
85
|
export function lowerArrayLiteral(lowerer, expr, expected) {
|
|
78
86
|
const loc = locOf(expr);
|
|
79
87
|
const ctxType = lowerer.checker.getContextualType(expr);
|
|
@@ -415,6 +423,12 @@ export function lowerArrayLiteral(lowerer, expr, expected) {
|
|
|
415
423
|
const drained = lowerer.classIteratorDrainCall(src, locOf(el), type.elem);
|
|
416
424
|
if (drained)
|
|
417
425
|
src = drained;
|
|
426
|
+
// In JavaScript an iterable class whose inferred iterator shape has
|
|
427
|
+
// no static protocol spreads through the runtime's iterator walk.
|
|
428
|
+
else if (isJsSourceFile(ts.getSourceFileOfNode(el)) &&
|
|
429
|
+
lowerer.classes.get(src.type.className) &&
|
|
430
|
+
lowerer.findMethodOn(lowerer.classes.get(src.type.className), "sym:iterator"))
|
|
431
|
+
src = lowerer.coerceInto(el.expression, src, DYN);
|
|
418
432
|
}
|
|
419
433
|
// `[...s]` on a STRING spreads its code-point characters (the
|
|
420
434
|
// string iterator's walk — astral chars whole) through the same
|
|
@@ -438,13 +452,18 @@ export function lowerArrayLiteral(lowerer, expr, expected) {
|
|
|
438
452
|
loc: locOf(el),
|
|
439
453
|
};
|
|
440
454
|
}
|
|
455
|
+
// A union of typed arrays and number arrays (indexed-unions.ts):
|
|
456
|
+
// each arm's elements as a number[].
|
|
457
|
+
const indexedArms = indexedUnionArms(lowerer, src.type);
|
|
458
|
+
if (indexedArms)
|
|
459
|
+
src = lowerIndexedUnionToArray(lowerer, src, indexedArms, locOf(el));
|
|
441
460
|
// `[...obj]` over a class whose [Symbol.iterator] is a generator
|
|
442
461
|
// method spreads the generator that method returns.
|
|
443
462
|
src = classGeneratorIterable(lowerer, src) ?? src;
|
|
444
463
|
// `[...it]` over a generator (or an iterator adapted into one):
|
|
445
464
|
// drain it once, in order, into a fresh element array.
|
|
446
465
|
if (src.type.kind === "generator") {
|
|
447
|
-
const drained = generatorDrain(lowerer, src, type.elem, locOf(el));
|
|
466
|
+
const drained = generatorDrain(lowerer, src, type.elem, locOf(el), type.optionalElements === true);
|
|
448
467
|
if (drained)
|
|
449
468
|
src = drained;
|
|
450
469
|
}
|
|
@@ -526,6 +545,9 @@ export function lowerArrayLiteral(lowerer, expr, expected) {
|
|
|
526
545
|
// holes reject inside lowerExpr.
|
|
527
546
|
let lowered;
|
|
528
547
|
const directOptionalCandidate = runtimeOptionalElements.has(i) ||
|
|
548
|
+
// An element that can be undefined in a `(T | undefined)[]`
|
|
549
|
+
// (primitiveElement) is stored as a present undefined.
|
|
550
|
+
(primitiveElement(type.elem) && mayHoldUndefined(lowerer, el)) ||
|
|
529
551
|
ts.isElementAccessExpression(el) ||
|
|
530
552
|
(ts.isCallExpression(el) &&
|
|
531
553
|
ts.isPropertyAccessExpression(el.expression) &&
|
|
@@ -605,7 +627,8 @@ export function lowerArrayLiteral(lowerer, expr, expected) {
|
|
|
605
627
|
continue;
|
|
606
628
|
}
|
|
607
629
|
let value = el;
|
|
608
|
-
|
|
630
|
+
// An undefined element is stored directly (arrayValueStore).
|
|
631
|
+
if (!typeEquals(value.type, type.elem) && value.type.kind !== "undefinedT") {
|
|
609
632
|
const temp = lowerer.declareHiddenLocal("%arrayValue", value.type);
|
|
610
633
|
body.push({ kind: "varDecl", localId: temp.id, init: value, loc });
|
|
611
634
|
value = varRef(temp.id, temp.type, loc);
|
|
@@ -681,13 +704,17 @@ function lowerTupleSpreadLiteral(lowerer, expr, type, shape) {
|
|
|
681
704
|
lowerer.badType(expr, lowerer.typeOf(expr));
|
|
682
705
|
return { kind: "seqExpr", stmts, result: { kind: "recordLit", fields, type, loc }, type, loc };
|
|
683
706
|
}
|
|
684
|
-
/** Drain
|
|
685
|
-
*
|
|
686
|
-
*
|
|
707
|
+
/** Drain a checked-dynamic iterable: `next` is read once when the iterator
|
|
708
|
+
* opens, as JS keeps it in the iterator record, so a `next` the iterator
|
|
709
|
+
* assigns while it runs is not called. Runtime iterators step natively, and
|
|
710
|
+
* other iterators call the `next` read (class methods keep their emitted
|
|
711
|
+
* dispatch). `spell` is the TypeError message for a source that is not
|
|
712
|
+
* iterable (notIterableSpelling). */
|
|
687
713
|
function checkedIteratorPack(lowerer, source, spell, loc) {
|
|
688
714
|
const name = "%iterator.pack.checked";
|
|
689
715
|
if (!lowerer.liftedFns.some((fn) => fn.name === name)) {
|
|
690
716
|
const ref = (id) => ({ kind: "varRef", localId: id, type: DYN, loc });
|
|
717
|
+
const flag = (id) => ({ kind: "varRef", localId: id, type: BOOL, loc });
|
|
691
718
|
const property = (key) => ({
|
|
692
719
|
kind: "dynKeyGet",
|
|
693
720
|
value: ref("step"),
|
|
@@ -695,6 +722,7 @@ function checkedIteratorPack(lowerer, source, spell, loc) {
|
|
|
695
722
|
type: DYN,
|
|
696
723
|
loc,
|
|
697
724
|
});
|
|
725
|
+
const finished = { kind: "return", value: ref("result"), loc };
|
|
698
726
|
lowerer.liftedFns.push({
|
|
699
727
|
name,
|
|
700
728
|
params: [
|
|
@@ -703,12 +731,13 @@ function checkedIteratorPack(lowerer, source, spell, loc) {
|
|
|
703
731
|
],
|
|
704
732
|
returnType: DYN,
|
|
705
733
|
locals: [
|
|
706
|
-
...["source", "iterator", "step", "result"].map((id) => ({
|
|
734
|
+
...["source", "iterator", "next", "step", "value", "result"].map((id) => ({
|
|
707
735
|
id,
|
|
708
736
|
name: id,
|
|
709
737
|
type: DYN,
|
|
710
738
|
mutable: id !== "source",
|
|
711
739
|
})),
|
|
740
|
+
{ id: "fast", name: "fast", type: BOOL, mutable: false },
|
|
712
741
|
{ id: "spell", name: "spell", type: STRING, mutable: false },
|
|
713
742
|
],
|
|
714
743
|
body: [
|
|
@@ -724,6 +753,24 @@ function checkedIteratorPack(lowerer, source, spell, loc) {
|
|
|
724
753
|
},
|
|
725
754
|
loc,
|
|
726
755
|
},
|
|
756
|
+
{
|
|
757
|
+
kind: "varDecl",
|
|
758
|
+
localId: "next",
|
|
759
|
+
init: {
|
|
760
|
+
kind: "dynKeyGet",
|
|
761
|
+
value: ref("iterator"),
|
|
762
|
+
key: { kind: "strLit", value: "next", type: STRING, loc },
|
|
763
|
+
type: DYN,
|
|
764
|
+
loc,
|
|
765
|
+
},
|
|
766
|
+
loc,
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
kind: "varDecl",
|
|
770
|
+
localId: "fast",
|
|
771
|
+
init: iteratorCanStep(ref("iterator"), ref("next"), loc),
|
|
772
|
+
loc,
|
|
773
|
+
},
|
|
727
774
|
{
|
|
728
775
|
kind: "varDecl",
|
|
729
776
|
localId: "result",
|
|
@@ -734,25 +781,77 @@ function checkedIteratorPack(lowerer, source, spell, loc) {
|
|
|
734
781
|
kind: "while",
|
|
735
782
|
cond: { kind: "boolLit", value: true, type: BOOL, loc },
|
|
736
783
|
body: [
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
init: {
|
|
741
|
-
kind: "dynInvoke",
|
|
742
|
-
recv: ref("iterator"),
|
|
743
|
-
method: "next",
|
|
744
|
-
calleeName: "iterator.next",
|
|
745
|
-
args: [],
|
|
746
|
-
type: DYN,
|
|
747
|
-
loc,
|
|
748
|
-
},
|
|
749
|
-
loc,
|
|
750
|
-
},
|
|
784
|
+
// Declared before the branches, which each assign it: a local
|
|
785
|
+
// declared in a branch is released when the branch ends.
|
|
786
|
+
{ kind: "varDecl", localId: "value", init: dynUndefinedExpr(loc), loc },
|
|
751
787
|
{
|
|
752
788
|
kind: "if",
|
|
753
|
-
cond:
|
|
754
|
-
then: [
|
|
755
|
-
|
|
789
|
+
cond: flag("fast"),
|
|
790
|
+
then: [
|
|
791
|
+
{
|
|
792
|
+
kind: "assign",
|
|
793
|
+
localId: "value",
|
|
794
|
+
value: {
|
|
795
|
+
kind: "libCall",
|
|
796
|
+
fn: "dyn.iteratorStep",
|
|
797
|
+
args: [ref("iterator")],
|
|
798
|
+
type: DYN,
|
|
799
|
+
loc,
|
|
800
|
+
},
|
|
801
|
+
loc,
|
|
802
|
+
},
|
|
803
|
+
{
|
|
804
|
+
kind: "if",
|
|
805
|
+
cond: {
|
|
806
|
+
kind: "libCall",
|
|
807
|
+
fn: "dyn.iteratorStepDone",
|
|
808
|
+
args: [ref("iterator")],
|
|
809
|
+
type: BOOL,
|
|
810
|
+
loc,
|
|
811
|
+
},
|
|
812
|
+
then: [finished],
|
|
813
|
+
else_: null,
|
|
814
|
+
loc,
|
|
815
|
+
},
|
|
816
|
+
],
|
|
817
|
+
else_: [
|
|
818
|
+
{
|
|
819
|
+
kind: "varDecl",
|
|
820
|
+
localId: "step",
|
|
821
|
+
init: {
|
|
822
|
+
kind: "libCall",
|
|
823
|
+
fn: "dyn.iteratorResult",
|
|
824
|
+
args: [
|
|
825
|
+
{
|
|
826
|
+
kind: "dynCall",
|
|
827
|
+
callee: ref("next"),
|
|
828
|
+
receiver: ref("iterator"),
|
|
829
|
+
calleeName: "iterator.next",
|
|
830
|
+
args: [],
|
|
831
|
+
type: DYN,
|
|
832
|
+
loc,
|
|
833
|
+
},
|
|
834
|
+
],
|
|
835
|
+
type: DYN,
|
|
836
|
+
loc,
|
|
837
|
+
},
|
|
838
|
+
loc,
|
|
839
|
+
},
|
|
840
|
+
{
|
|
841
|
+
kind: "if",
|
|
842
|
+
cond: {
|
|
843
|
+
kind: "dynTest",
|
|
844
|
+
test: "truthy",
|
|
845
|
+
value: property("done"),
|
|
846
|
+
type: BOOL,
|
|
847
|
+
loc,
|
|
848
|
+
},
|
|
849
|
+
then: [finished],
|
|
850
|
+
else_: null,
|
|
851
|
+
loc,
|
|
852
|
+
},
|
|
853
|
+
{ kind: "assign", localId: "value", value: property("value"), loc },
|
|
854
|
+
],
|
|
756
855
|
loc,
|
|
757
856
|
},
|
|
758
857
|
{
|
|
@@ -760,7 +859,7 @@ function checkedIteratorPack(lowerer, source, spell, loc) {
|
|
|
760
859
|
expr: {
|
|
761
860
|
kind: "libCall",
|
|
762
861
|
fn: "dyn.packPush",
|
|
763
|
-
args: [ref("result"),
|
|
862
|
+
args: [ref("result"), ref("value")],
|
|
764
863
|
type: VOID,
|
|
765
864
|
loc,
|
|
766
865
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-literals.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/expressions/array-literals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"array-literals.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/expressions/array-literals.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ import { fenceNodeModuleMutation, lowerRequireCacheHas } from "../lower-node-mod
|
|
|
19
19
|
import { errorToStringCall } from "../error-methods.js";
|
|
20
20
|
import { classToStringConversion, classUnionToString } from "../class-to-primitive.js";
|
|
21
21
|
import { isPerfEntryType, perfEntryTag } from "../builtins/performance.js";
|
|
22
|
+
import { isX509Type, x509ToString } from "../builtins/x509.js";
|
|
22
23
|
import { guardNullProto, nullProtoRecordShape } from "../null-prototype.js";
|
|
23
24
|
import { numLit, varRef } from "../../../ir/build.js";
|
|
24
25
|
import { lowerUrlAssignment } from "../builtins/url.js";
|
|
@@ -192,34 +193,39 @@ function lowerLooseNullCompare(lowerer, expr, loc) {
|
|
|
192
193
|
// No unit arms: never null-ish (defensive — the fold below).
|
|
193
194
|
return { kind: "boolLit", value: negated, type: BOOL, loc };
|
|
194
195
|
}
|
|
195
|
-
const isTag = (tag) => ({
|
|
196
|
+
const isTag = (tag, value) => ({
|
|
196
197
|
kind: "unionIsTag",
|
|
197
198
|
unionId: ut.unionId,
|
|
198
199
|
tag,
|
|
199
200
|
negated,
|
|
200
|
-
value
|
|
201
|
+
value,
|
|
201
202
|
type: BOOL,
|
|
202
203
|
loc,
|
|
203
204
|
});
|
|
204
205
|
if (tags.length === 1)
|
|
205
|
-
return isTag(tags[0]);
|
|
206
|
+
return isTag(tags[0], other);
|
|
206
207
|
// Both null AND undefined arms: tag-in-set as a short-circuit pair
|
|
207
|
-
// (De Morgan for `!=`). The operand
|
|
208
|
-
//
|
|
209
|
-
//
|
|
210
|
-
|
|
208
|
+
// (De Morgan for `!=`). The operand rides both tests, so an operand
|
|
209
|
+
// that is not a plain read (`m.get(k)! == null`) is evaluated once
|
|
210
|
+
// into a hidden local first.
|
|
211
|
+
let value = other;
|
|
212
|
+
let prefix = [];
|
|
211
213
|
if (!isSafeToRepeat(other)) {
|
|
212
|
-
lowerer.
|
|
213
|
-
|
|
214
|
+
const tmp = lowerer.declareHiddenLocal("%nullish", ut);
|
|
215
|
+
value = varRef(tmp.id, ut, loc);
|
|
216
|
+
prefix = [{ kind: "varDecl", localId: tmp.id, init: other, loc }];
|
|
214
217
|
}
|
|
215
|
-
|
|
218
|
+
const test = {
|
|
216
219
|
kind: "logical",
|
|
217
220
|
op: negated ? "&&" : "||",
|
|
218
|
-
left: isTag(tags[0]),
|
|
219
|
-
right: isTag(tags[1]),
|
|
221
|
+
left: isTag(tags[0], value),
|
|
222
|
+
right: isTag(tags[1], value),
|
|
220
223
|
type: BOOL,
|
|
221
224
|
loc,
|
|
222
225
|
};
|
|
226
|
+
return prefix.length === 0
|
|
227
|
+
? test
|
|
228
|
+
: { kind: "seqExpr", stmts: prefix, result: test, type: BOOL, loc };
|
|
223
229
|
}
|
|
224
230
|
if (other.type.kind === "void") {
|
|
225
231
|
return null; // no static tag to test — keep the fence
|
|
@@ -603,9 +609,17 @@ export function ensureString(lowerer, e, node) {
|
|
|
603
609
|
const joinableUnion = elem.kind === "union" &&
|
|
604
610
|
(lowerer.unions
|
|
605
611
|
.get(elem.unionId)
|
|
606
|
-
?.arms.every((a) => a.kind === "f64" ||
|
|
612
|
+
?.arms.every((a) => a.kind === "f64" ||
|
|
613
|
+
a.kind === "string" ||
|
|
614
|
+
a.kind === "bool" ||
|
|
615
|
+
a.kind === "date" ||
|
|
616
|
+
isUnitType(a)) ??
|
|
607
617
|
false);
|
|
608
|
-
if (elem.kind === "f64" ||
|
|
618
|
+
if (elem.kind === "f64" ||
|
|
619
|
+
elem.kind === "string" ||
|
|
620
|
+
elem.kind === "bool" ||
|
|
621
|
+
elem.kind === "date" ||
|
|
622
|
+
joinableUnion) {
|
|
609
623
|
const sep = { kind: "strLit", value: ",", type: STRING, loc: e.loc };
|
|
610
624
|
return {
|
|
611
625
|
kind: "arrIntrinsic",
|
|
@@ -626,6 +640,8 @@ export function ensureString(lowerer, e, node) {
|
|
|
626
640
|
const shape = lowerer.shapes.get(e.type.shapeId);
|
|
627
641
|
if (isPerfEntryType(lowerer, e.type))
|
|
628
642
|
return perfEntryTag(lowerer, e, e.type, e.loc);
|
|
643
|
+
if (isX509Type(lowerer, e.type))
|
|
644
|
+
return x509ToString(e, e.loc);
|
|
629
645
|
if (shape && !shape.tuple && !shape.fields.some((f) => f.name === "toString")) {
|
|
630
646
|
// A null-prototype record (Object.groupBy) has no toString or
|
|
631
647
|
// valueOf: ToPrimitive throws Node's TypeError.
|
|
@@ -1333,6 +1349,19 @@ export function lowerBinary(lowerer, expr) {
|
|
|
1333
1349
|
loc,
|
|
1334
1350
|
};
|
|
1335
1351
|
}
|
|
1352
|
+
// A Date against an untyped value: the same Date object, whose
|
|
1353
|
+
// checked-dynamic handle the untyped value would hold.
|
|
1354
|
+
if (dynSide.type.kind === "dyn" && scalarSide.type.kind === "date") {
|
|
1355
|
+
const boxed = lowerer.coerceToExpected(scalarSide, DYN);
|
|
1356
|
+
return {
|
|
1357
|
+
kind: "dynScalarEq",
|
|
1358
|
+
left: scalarSide === left ? boxed : left,
|
|
1359
|
+
right: scalarSide === right ? boxed : right,
|
|
1360
|
+
...(negated ? { negated: true } : {}),
|
|
1361
|
+
type: BOOL,
|
|
1362
|
+
loc,
|
|
1363
|
+
};
|
|
1364
|
+
}
|
|
1336
1365
|
if (dynSide.type.kind === "dyn" &&
|
|
1337
1366
|
(scalarSide.type.kind === "f64" ||
|
|
1338
1367
|
scalarSide.type.kind === "string" ||
|
|
@@ -1725,6 +1754,28 @@ export function lowerBinary(lowerer, expr) {
|
|
|
1725
1754
|
loc,
|
|
1726
1755
|
};
|
|
1727
1756
|
if (left.type.kind === "string" || right.type.kind === "string") {
|
|
1757
|
+
// A Date on the left converts after the right operand is
|
|
1758
|
+
// evaluated, which can run its setters.
|
|
1759
|
+
if (left.type.kind === "date" && !isSafeToRepeat(right)) {
|
|
1760
|
+
const date = lowerer.declareHiddenLocal("%plus", left.type);
|
|
1761
|
+
const other = lowerer.declareHiddenLocal("%plus", right.type);
|
|
1762
|
+
return {
|
|
1763
|
+
kind: "seqExpr",
|
|
1764
|
+
stmts: [
|
|
1765
|
+
{ kind: "varDecl", localId: date.id, init: left, loc },
|
|
1766
|
+
{ kind: "varDecl", localId: other.id, init: right, loc },
|
|
1767
|
+
],
|
|
1768
|
+
result: {
|
|
1769
|
+
kind: "strConcat",
|
|
1770
|
+
left: concatOperand(lowerer, varRef(date.id, left.type, loc), expr.left),
|
|
1771
|
+
right: concatOperand(lowerer, varRef(other.id, right.type, loc), expr.right),
|
|
1772
|
+
type: STRING,
|
|
1773
|
+
loc,
|
|
1774
|
+
},
|
|
1775
|
+
type: STRING,
|
|
1776
|
+
loc,
|
|
1777
|
+
};
|
|
1778
|
+
}
|
|
1728
1779
|
return {
|
|
1729
1780
|
kind: "strConcat",
|
|
1730
1781
|
left: concatOperand(lowerer, left, expr.left),
|
|
@@ -1896,12 +1947,41 @@ export function lowerBinary(lowerer, expr) {
|
|
|
1896
1947
|
};
|
|
1897
1948
|
if (bothStr)
|
|
1898
1949
|
return { kind: "strCmp", op: cmpOp, left, right, type: BOOL, loc };
|
|
1899
|
-
//
|
|
1900
|
-
//
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1950
|
+
// Dates compare by time value, the number hint of ToPrimitive. Both
|
|
1951
|
+
// operands evaluate before either converts, so a right operand that
|
|
1952
|
+
// mutates the left Date (`a < (a.setTime(t), b)`) is seen: with such
|
|
1953
|
+
// a right operand, both Dates bind first and their times read after.
|
|
1954
|
+
if (left.type.kind === "date" && right.type.kind === "date") {
|
|
1955
|
+
const time = (d) => ({
|
|
1956
|
+
kind: "libCall",
|
|
1957
|
+
fn: "date.getTime",
|
|
1958
|
+
args: [d],
|
|
1959
|
+
type: F64,
|
|
1960
|
+
loc,
|
|
1961
|
+
});
|
|
1962
|
+
if (isSafeToRepeat(right))
|
|
1963
|
+
return { kind: "bin", op: cmpOp, left: time(left), right: time(right), type: BOOL, loc };
|
|
1964
|
+
const leftDate = lowerer.declareHiddenLocal("%date", left.type);
|
|
1965
|
+
const rightDate = lowerer.declareHiddenLocal("%date", right.type);
|
|
1966
|
+
return {
|
|
1967
|
+
kind: "seqExpr",
|
|
1968
|
+
stmts: [
|
|
1969
|
+
{ kind: "varDecl", localId: leftDate.id, init: left, loc },
|
|
1970
|
+
{ kind: "varDecl", localId: rightDate.id, init: right, loc },
|
|
1971
|
+
],
|
|
1972
|
+
result: {
|
|
1973
|
+
kind: "bin",
|
|
1974
|
+
op: cmpOp,
|
|
1975
|
+
left: time(varRef(leftDate.id, left.type, loc)),
|
|
1976
|
+
right: time(varRef(rightDate.id, right.type, loc)),
|
|
1977
|
+
type: BOOL,
|
|
1978
|
+
loc,
|
|
1979
|
+
},
|
|
1980
|
+
type: BOOL,
|
|
1981
|
+
loc,
|
|
1982
|
+
};
|
|
1983
|
+
}
|
|
1984
|
+
if (lowerer.dynConvertible(left.type) && lowerer.dynConvertible(right.type)) {
|
|
1905
1985
|
return {
|
|
1906
1986
|
kind: "libCall",
|
|
1907
1987
|
fn: "dyn.compare",
|
|
@@ -2097,6 +2177,7 @@ export function lowerStrictEquality(lowerer, node, leftNode, rightNode, left, ri
|
|
|
2097
2177
|
idLeft.type.kind === "map" ||
|
|
2098
2178
|
idLeft.type.kind === "set" ||
|
|
2099
2179
|
idLeft.type.kind === "regex" ||
|
|
2180
|
+
idLeft.type.kind === "date" ||
|
|
2100
2181
|
idLeft.type.kind === "url" ||
|
|
2101
2182
|
idLeft.type.kind === "object" ||
|
|
2102
2183
|
idLeft.type.kind === "record" ||
|
|
@@ -2132,12 +2213,7 @@ export function lowerStrictEquality(lowerer, node, leftNode, rightNode, left, ri
|
|
|
2132
2213
|
loc,
|
|
2133
2214
|
};
|
|
2134
2215
|
}
|
|
2135
|
-
|
|
2136
|
-
// identity has no representation, so equality keeps the fence.
|
|
2137
|
-
if (idLeft.type.kind !== "date" &&
|
|
2138
|
-
idRight.type.kind !== "date" &&
|
|
2139
|
-
lowerer.dynConvertible(idLeft.type) &&
|
|
2140
|
-
lowerer.dynConvertible(idRight.type)) {
|
|
2216
|
+
if (lowerer.dynConvertible(idLeft.type) && lowerer.dynConvertible(idRight.type)) {
|
|
2141
2217
|
return {
|
|
2142
2218
|
kind: "dynScalarEq",
|
|
2143
2219
|
left: lowerer.coerceToExpected(idLeft, DYN),
|