@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,3 +1,4 @@
|
|
|
1
|
+
import type { TargetCpu } from "../target-cpu.js";
|
|
1
2
|
import { JsIcSites } from "../../ir/js-ic.js";
|
|
2
3
|
import { type ArraySearchKind } from "./array-search.js";
|
|
3
4
|
import type { IrBytesElem, IrExpr, IrFfiCallbackParam, IrFfiImport, IrFunction, IrGlobal, IrLocal, IrModule, IrRecordShape, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/ir.js";
|
|
@@ -7,7 +8,7 @@ import type { IntegerCountedForLoop, IntegerPairedForLoop } from "../../ir/integ
|
|
|
7
8
|
import { type SplitSpan, type StoredSplitSnapshot } from "./split-loops.js";
|
|
8
9
|
import { type ChunkResult, EmitJournal } from "./emit-journal.js";
|
|
9
10
|
import { type IntegerRange, type IntegerRanges } from "../../ir/integer-ranges.js";
|
|
10
|
-
import { type Int32Slots } from "../../ir/int32-slots.js";
|
|
11
|
+
import { type DynamicFieldStores, Int32Slots } from "../../ir/int32-slots.js";
|
|
11
12
|
import { type FinalFields } from "../../ir/final-fields.js";
|
|
12
13
|
import { type Int32Abi } from "./int32-abi.js";
|
|
13
14
|
import { type Int32Local } from "./int32-locals.js";
|
|
@@ -33,7 +34,7 @@ import { ReferenceWrites, type Writes } from "./reference-writes.js";
|
|
|
33
34
|
import { LlvmDebugInfo } from "./debug-info.js";
|
|
34
35
|
import { StackCallbacks } from "./stack-callbacks.js";
|
|
35
36
|
import { AmbientReceiverReaders } from "./constant-callbacks.js";
|
|
36
|
-
import { type
|
|
37
|
+
import { type LendingFacts, type StringSliceSnapshot } from "./string-slices.js";
|
|
37
38
|
import { LazyCaptures } from "./lazy-captures.js";
|
|
38
39
|
import { StackCaptures } from "./stack-captures.js";
|
|
39
40
|
import { PublishWalkers } from "./publish.js";
|
|
@@ -46,6 +47,7 @@ import { LlWalkers } from "./walkers.js";
|
|
|
46
47
|
import { NullableUnions } from "./nullable-unions.js";
|
|
47
48
|
import { type InlineRcMode, type MapKeyAccess } from "./shapes.js";
|
|
48
49
|
import type { ExprOf, LibCallExpr, LlStreamTypedRefAdapter, LlValue } from "./expr-context.js";
|
|
50
|
+
import { type SpeculationContext, type SpeculativeValue } from "./speculative-integers.js";
|
|
49
51
|
export { LlvmUnsupportedError } from "./unsupported.js";
|
|
50
52
|
export interface LlArgPackAndTrampolinePrologue {
|
|
51
53
|
definitions: string[];
|
|
@@ -78,15 +80,20 @@ export interface ForkPrimitives {
|
|
|
78
80
|
export interface LlvmTargetOptions {
|
|
79
81
|
/** C ABI target; omitted direct emission uses the host ABI. */
|
|
80
82
|
targetTriple?: string;
|
|
83
|
+
/** Linux (glibc and musl) executables: functions reached only by direct
|
|
84
|
+
* calls propagate exceptions by unwinding the native stack (unwind-abi.ts). */
|
|
85
|
+
unwindAbi?: boolean;
|
|
86
|
+
/** Functions kept on the pending-flag ABI under `unwindAbi`: the ones an
|
|
87
|
+
* earlier emission found breaking its rules (UnwindAbiViolation). */
|
|
88
|
+
unwindExcluded?: ReadonlySet<string>;
|
|
81
89
|
/** Emit the function bodies in this many contiguous ranges, each by its
|
|
82
|
-
* own emitter, and merge them in function order (emit-journal.ts
|
|
83
|
-
* output is the same as one
|
|
84
|
-
*
|
|
90
|
+
* own emitter, and merge them in function order (emit-journal.ts, and
|
|
91
|
+
* debug-info.ts for debug metadata). The output is the same as one
|
|
92
|
+
* emitter's. */
|
|
85
93
|
functionChunks?: number;
|
|
86
94
|
/** Emit the function bodies of a large module on this many forked worker
|
|
87
95
|
* processes at a time (emit-module.ts), forked with `forkPrimitives`. The
|
|
88
|
-
* output is the same as one emitter's.
|
|
89
|
-
* emit in one emitter. */
|
|
96
|
+
* output is the same as one emitter's. */
|
|
90
97
|
functionWorkers?: number;
|
|
91
98
|
/** The host's process primitives, where it can fork (the native
|
|
92
99
|
* compiler's). */
|
|
@@ -127,6 +134,10 @@ export interface LlvmTargetOptions {
|
|
|
127
134
|
* store the instance's address over 8 in 32 bits (classes.ts
|
|
128
135
|
* compactRefLoadLines). Elsewhere they keep 8-byte pointers. */
|
|
129
136
|
lowRegion?: boolean;
|
|
137
|
+
/** The x86-64 level the program's code may require (`--target-cpu`):
|
|
138
|
+
* every emitted function carries it as its `target-cpu`. Unset, code
|
|
139
|
+
* runs on any x86-64 CPU. */
|
|
140
|
+
targetCpu?: TargetCpu;
|
|
130
141
|
}
|
|
131
142
|
/** LlvmTargetOptions.lowRegion for an executable: Linux targets without
|
|
132
143
|
* sanitizers, whose address space below 32 GiB is free (ASan keeps its
|
|
@@ -134,6 +145,16 @@ export interface LlvmTargetOptions {
|
|
|
134
145
|
* there). `platform` is a target platform (`linux`, `darwin`, `win32`,
|
|
135
146
|
* `wasi`). */
|
|
136
147
|
export declare function lowRegionTarget(platform: string, sanitize: boolean): boolean;
|
|
148
|
+
/** The int32 slot analysis of one module and the inputs it read: the
|
|
149
|
+
* constructor's own analyses of that module, which LlEmitter takes over
|
|
150
|
+
* instead of repeating them when it emits the same module. */
|
|
151
|
+
export interface Int32SlotAnalysis {
|
|
152
|
+
readonly mod: IrModule;
|
|
153
|
+
readonly nodeIndex: IrNodeIndex;
|
|
154
|
+
readonly initializerBindings: ReturnType<typeof findInitializerBindings>;
|
|
155
|
+
readonly dynamicStores: DynamicFieldStores;
|
|
156
|
+
readonly slots: Int32Slots;
|
|
157
|
+
}
|
|
137
158
|
export declare function emitLlvmModule(input: IrModule, options?: LlvmTargetOptions): string;
|
|
138
159
|
/** emitLlvmModule's text as parts that concatenate to it, without the copy
|
|
139
160
|
* that joining them makes: a large program's text is 150 MB. */
|
|
@@ -184,8 +205,9 @@ export declare class LlEmitter {
|
|
|
184
205
|
readonly stringSlices: Map<string, StringSliceSnapshot>;
|
|
185
206
|
/** Slices written into stack buffers (findScratchStringSlices). */
|
|
186
207
|
scratchStringSlices: ReadonlySet<IrExpr>;
|
|
187
|
-
/** String parameters
|
|
188
|
-
|
|
208
|
+
/** String parameters, record fields and record producers a caller may
|
|
209
|
+
* lend scratch slices to. */
|
|
210
|
+
lendingFacts: LendingFacts;
|
|
189
211
|
localStackUnions: Map<string, {
|
|
190
212
|
kind: "unionWrap";
|
|
191
213
|
unionId: string;
|
|
@@ -367,6 +389,7 @@ export declare class LlEmitter {
|
|
|
367
389
|
readonly emitLibraryIdentity: boolean;
|
|
368
390
|
readonly runtimeAbiMarker: boolean;
|
|
369
391
|
readonly detachedExit: boolean;
|
|
392
|
+
readonly targetCpu: TargetCpu | undefined;
|
|
370
393
|
readonly wasmBoundsChecks: boolean;
|
|
371
394
|
/** Interned string literals: UTF-8 text → { symbol, byte length } —
|
|
372
395
|
* first-use order, the runtime ABI’s determinism discipline. */
|
|
@@ -472,7 +495,18 @@ export declare class LlEmitter {
|
|
|
472
495
|
readonly checkedNarrows: CheckedNarrows;
|
|
473
496
|
callArrayReads: Map<IrExpr, LocalArrayRead>;
|
|
474
497
|
mapReadLifetimes: MapReadLifetimes;
|
|
498
|
+
/** Locals of the current function that hold a Map.get result as the
|
|
499
|
+
* entry's own reference (findMapReadBorrows, borrowableMapGet). */
|
|
500
|
+
borrowedMapGets: ReadonlySet<string>;
|
|
475
501
|
readNumberMapWrites: ReadonlySet<IrExpr>;
|
|
502
|
+
/** The integer views of the current function's number Map/Set keys, by
|
|
503
|
+
* the key's double operand (noteNumberMapKey, map-number-lookup.ts). */
|
|
504
|
+
numberMapKeyIntegers: Map<string, {
|
|
505
|
+
name: string;
|
|
506
|
+
type: "i32" | "i64";
|
|
507
|
+
signed: boolean;
|
|
508
|
+
range: IntegerRange;
|
|
509
|
+
}>;
|
|
476
510
|
/** The current function's fused string-key Map get-then-set pairs (map-entry-fusion.ts). */
|
|
477
511
|
mapEntryFusion: MapEntryFusion | null;
|
|
478
512
|
readonly callLifetimes: CallLifetimes;
|
|
@@ -542,6 +576,10 @@ export declare class LlEmitter {
|
|
|
542
576
|
/** May-throw analysis (computeMayThrow): pending
|
|
543
577
|
* checks are emitted only after calls that can actually raise. */
|
|
544
578
|
readonly mayThrow: Set<string>;
|
|
579
|
+
/** The functions that propagate exceptions by unwinding (unwind-abi.ts). */
|
|
580
|
+
readonly unwindAbi: Set<string>;
|
|
581
|
+
/** Whether the function being emitted is one of unwindAbi. */
|
|
582
|
+
currentUnwindAbi: boolean;
|
|
545
583
|
readonly indirectMayThrow: boolean;
|
|
546
584
|
/** Worker programs: the functions that poll for termination on entry
|
|
547
585
|
* (workerTerminationPolls); null outside worker programs. */
|
|
@@ -580,6 +618,20 @@ export declare class LlEmitter {
|
|
|
580
618
|
/** Locals whose array literal emitStmts left for the `await Promise.all`
|
|
581
619
|
* that reads them (deferredPromiseAllLocal). */
|
|
582
620
|
private readonly deferredPromiseAllEntries;
|
|
621
|
+
/** Empty array literals that a capacity hint follows directly
|
|
622
|
+
* (reservedArrayLength), with that hint. Constructing the literal with
|
|
623
|
+
* the hinted capacity consumes the hint, which then emits nothing. */
|
|
624
|
+
readonly reservedArrayLengths: Map<IrExpr, {
|
|
625
|
+
kind: "arraySetLength";
|
|
626
|
+
arr: IrExpr;
|
|
627
|
+
length: IrExpr;
|
|
628
|
+
loc: SrcLoc;
|
|
629
|
+
pop?: boolean;
|
|
630
|
+
reserve?: boolean;
|
|
631
|
+
} & {
|
|
632
|
+
kind: "arraySetLength";
|
|
633
|
+
}>;
|
|
634
|
+
readonly consumedReserves: Set<IrStmt>;
|
|
583
635
|
/** The promise a `return` emitted past its finally regions already
|
|
584
636
|
* produced for its adopting await (borrowed from the return's parked
|
|
585
637
|
* slot); that await takes it instead of evaluating its operand. */
|
|
@@ -647,6 +699,7 @@ export declare class LlEmitter {
|
|
|
647
699
|
* statics and construct thunks assemble around the bodies. */
|
|
648
700
|
readonly classObjs: Map<string, {
|
|
649
701
|
nameSym: string;
|
|
702
|
+
baseNameSym: string | null;
|
|
650
703
|
}>;
|
|
651
704
|
private readonly unionFieldReadGroups;
|
|
652
705
|
/** Preorder intervals of the runtime error classes under THIS module's
|
|
@@ -718,12 +771,20 @@ export declare class LlEmitter {
|
|
|
718
771
|
streamingSplitsEnabled: boolean;
|
|
719
772
|
readonly initializerBindings: ReturnType<typeof findInitializerBindings>;
|
|
720
773
|
/** Whole-program int32 storage and parameter/result facts. */
|
|
721
|
-
|
|
774
|
+
get int32Slots(): Int32Slots;
|
|
775
|
+
private int32SlotsValue;
|
|
776
|
+
/** The join of the int32 slot analysis a forked process computes
|
|
777
|
+
* (startInt32Slots). */
|
|
778
|
+
private int32SlotsJoin;
|
|
722
779
|
/** The program has no runtime store into a checked-dynamic value
|
|
723
780
|
* (dynamicFieldStores), so live views of classes and records never
|
|
724
781
|
* commit back into their objects. Library builds keep their commits:
|
|
725
782
|
* their values cross a native boundary. */
|
|
726
783
|
readonly liveViewsReadOnly: boolean;
|
|
784
|
+
/** The program freezes, seals or prevents extensions of untyped values
|
|
785
|
+
* (IrModule.untypedIntegrity): the commits of class views store the
|
|
786
|
+
* view's integrity state in the instance's integrity word. */
|
|
787
|
+
readonly untypedIntegrity: boolean;
|
|
727
788
|
/** Functions whose direct calls use i32 parameters or results. */
|
|
728
789
|
readonly int32Abis: ReadonlyMap<string, Int32Abi>;
|
|
729
790
|
/** Pure number functions with speculative integer clones. */
|
|
@@ -764,6 +825,9 @@ export declare class LlEmitter {
|
|
|
764
825
|
integerTempsEnabled: boolean;
|
|
765
826
|
/** Speculative integer loops (speculative-integers.ts) run in this function. */
|
|
766
827
|
speculativeLoopsEnabled: boolean;
|
|
828
|
+
/** False inside the copy of a versioned loop that runs when its guard
|
|
829
|
+
* fails: loops there get no speculative or int32 kind copies. */
|
|
830
|
+
loopCopiesEnabled: boolean;
|
|
767
831
|
/** The fast copy of a speculative integer loop being emitted: its
|
|
768
832
|
* integer-computed writes and where each resumes in the ordinary copy. */
|
|
769
833
|
speculation: {
|
|
@@ -776,6 +840,8 @@ export declare class LlEmitter {
|
|
|
776
840
|
* integer loop has neither. */
|
|
777
841
|
bails?: string;
|
|
778
842
|
ran?: string;
|
|
843
|
+
/** Writes that speculate a rewritten value (rewriteSpeculable). */
|
|
844
|
+
values?: ReadonlyMap<IrStmt, SpeculativeValue>;
|
|
779
845
|
} | null;
|
|
780
846
|
/** Speculative loop sites numbered so far in the module. */
|
|
781
847
|
speculativeLoopSites: number;
|
|
@@ -784,6 +850,16 @@ export declare class LlEmitter {
|
|
|
784
850
|
label: string;
|
|
785
851
|
placed: boolean;
|
|
786
852
|
}> | null;
|
|
853
|
+
/** The rewritten values of the writes `speculationResume` resumes at. */
|
|
854
|
+
speculationResumeValues: ReadonlyMap<IrStmt, SpeculativeValue> | null;
|
|
855
|
+
/** Hoisted speculative leaves numbered so far in the function being
|
|
856
|
+
* emitted (emitFunction resets it): a function's local names must not
|
|
857
|
+
* depend on which functions the same emitter emitted before it, since
|
|
858
|
+
* function workers each emit a share of the module. */
|
|
859
|
+
speculativeLeaves: number;
|
|
860
|
+
private readonly inlinableFunctions;
|
|
861
|
+
/** What speculative loop planning may assume here (SpeculationContext). */
|
|
862
|
+
speculationContext(): SpeculationContext;
|
|
787
863
|
/** Run once at the top of the next loop copy's header
|
|
788
864
|
* (`enterLoopHeader`): records the ordinary copy's header, or sends the
|
|
789
865
|
* third copy's header there. */
|
|
@@ -825,9 +901,23 @@ export declare class LlEmitter {
|
|
|
825
901
|
* (one-unit tests and switches, charAtUnitRead), with the charAt each
|
|
826
902
|
* stands for: a loop version's proof for the charAt covers its read. */
|
|
827
903
|
readonly charAtUnitReads: Map<IrExpr, IrExpr>;
|
|
904
|
+
/** String reads a loop version proved in bounds of a string's UTF-16
|
|
905
|
+
* units, with the units pointer to read (string-unit-versions.ts). */
|
|
906
|
+
stringUnitReads: ReadonlyMap<IrExpr | IrStmt, string>;
|
|
907
|
+
/** `length` reads of a loop version's string, with the i64 UTF-16
|
|
908
|
+
* length its guard took (bytes-loop-versions.ts). */
|
|
909
|
+
stringLengthReads: ReadonlyMap<IrExpr, string>;
|
|
828
910
|
/** Worker programs: typed-array accesses whose views an enclosing version
|
|
829
911
|
* guard proved thread-owned. */
|
|
830
912
|
bytesOwned: ReadonlySet<IrExpr | IrStmt>;
|
|
913
|
+
/** The alias-scope attachment of each typed-array element read and write
|
|
914
|
+
* in the current loop version's fast copy (emitVersionedLoop), and the
|
|
915
|
+
* one the element access being emitted carries (bytesElementAlias). */
|
|
916
|
+
bytesAliasScopes: ReadonlyMap<IrExpr | IrStmt, string>;
|
|
917
|
+
bytesAccessScope: string;
|
|
918
|
+
/** Loop versions with alias scopes in the current function; it names
|
|
919
|
+
* their scopes. */
|
|
920
|
+
aliasScopedVersions: number;
|
|
831
921
|
integerViews: Map<string, string>;
|
|
832
922
|
/** Module globals the current function owns outright (initializer
|
|
833
923
|
* bindings): their function-local slot, which stands in for the global. */
|
|
@@ -913,7 +1003,13 @@ export declare class LlEmitter {
|
|
|
913
1003
|
private readonly journaled;
|
|
914
1004
|
/** Stack-trace mode: functions no capture can include (no frame push). */
|
|
915
1005
|
readonly unframedFunctions: ReadonlySet<string>;
|
|
916
|
-
constructor(mod: IrModule, options: LlvmTargetOptions, journal?: EmitJournal | null);
|
|
1006
|
+
constructor(mod: IrModule, options: LlvmTargetOptions, journal?: EmitJournal | null, int32Analysis?: Int32SlotAnalysis | null);
|
|
1007
|
+
/** Computes the int32 slot analysis, or starts it on a forked process.
|
|
1008
|
+
* Dev builds read its result only near the end of the constructor
|
|
1009
|
+
* (int32Abis is empty with debug info), so for a large module the
|
|
1010
|
+
* process computes it while the constructor runs the other analyses. */
|
|
1011
|
+
private startInt32Slots;
|
|
1012
|
+
private joinInt32Slots;
|
|
917
1013
|
/** The borrowed parameters of a hierarchy's vtable slot (empty: owned). */
|
|
918
1014
|
virtualSlotBorrowed(rootName: string, slotIndex: number): ReadonlySet<number>;
|
|
919
1015
|
/** Optimized emission: no debug-info (dev) posture. */
|
|
@@ -1201,12 +1297,31 @@ export declare class LlEmitter {
|
|
|
1201
1297
|
* predecessors so the caller's remaining instructions stay well-formed;
|
|
1202
1298
|
* LLVM deletes it. */
|
|
1203
1299
|
emitAlwaysPendingUnwind(): void;
|
|
1300
|
+
/** Emits `line`, a `call` of `callee`, and reports whether the call
|
|
1301
|
+
* needs no pending check after it: a call of an unwinding-ABI function
|
|
1302
|
+
* becomes an `invoke` whose landing pad runs this frame's unwind (the
|
|
1303
|
+
* same releases and handler as emitPendingCheck's unwind path), and the
|
|
1304
|
+
* normal path continues in a fresh block. Coroutine bodies keep plain
|
|
1305
|
+
* calls (unwindAbiFunctions excludes their callees). */
|
|
1306
|
+
emitDirectCall(line: string, callee: string): boolean;
|
|
1307
|
+
/** Whether emitUnwind runs for a landing pad, whose unwind goes on with
|
|
1308
|
+
* `resume` instead of raising again. */
|
|
1309
|
+
private inLandingPad;
|
|
1310
|
+
/** Whether the function being emitted has a landing pad (its definition
|
|
1311
|
+
* needs the personality). */
|
|
1312
|
+
usesLandingPads: boolean;
|
|
1204
1313
|
/** A recursive function's entry check: below the running stack's guard,
|
|
1205
1314
|
* throw Node's RangeError and unwind like any other pending exception. */
|
|
1206
1315
|
emitStackCheck(): void;
|
|
1207
1316
|
/** Whether the emitter follows this call with a pending test (the
|
|
1208
1317
|
* conditions in expr-calls.ts). */
|
|
1209
1318
|
private callTestsPending;
|
|
1319
|
+
/** Whether `loop` needs a cancellation poll: in a worker program, unless
|
|
1320
|
+
* the loop already runs a pending test on every iteration, which observes
|
|
1321
|
+
* a terminate request itself (a separate poll would only add work). */
|
|
1322
|
+
workerLoopPolls(loop: Extract<IrStmt, {
|
|
1323
|
+
kind: "while" | "doWhile" | "for" | "forOf";
|
|
1324
|
+
}>): boolean;
|
|
1210
1325
|
workerLoopBudget(loop: Extract<IrStmt, {
|
|
1211
1326
|
kind: "while" | "doWhile" | "for" | "forOf";
|
|
1212
1327
|
}>): string | null;
|
|
@@ -1237,6 +1352,11 @@ export declare class LlEmitter {
|
|
|
1237
1352
|
* the body repeats on every iteration (a typed array's length, for one)
|
|
1238
1353
|
* stay in the loop. */
|
|
1239
1354
|
emitWorkerLoopCheck(slot: string | null): void;
|
|
1355
|
+
/** The cancellation poll itself. Calls and throwing operations retain
|
|
1356
|
+
* their own checks. Loops amortize this extra poll across bounded
|
|
1357
|
+
* batches of iterations so scalar work does not cross the runtime ABI on
|
|
1358
|
+
* every iteration. */
|
|
1359
|
+
emitWorkerPoll(): void;
|
|
1240
1360
|
/** Moves an already-evaluated value into the runtime's exception cell —
|
|
1241
1361
|
* the `throw` statement's kind dispatch (stmts.ts's), shared with
|
|
1242
1362
|
* every synthetic thrower. Ownership of a refcounted payload must have
|
|
@@ -1252,6 +1372,10 @@ export declare class LlEmitter {
|
|
|
1252
1372
|
private truthyOf;
|
|
1253
1373
|
/** A union value's tag (i32): the box's tag word, or the NULL test of a
|
|
1254
1374
|
* nullable union's pointer. */
|
|
1375
|
+
/** A box's tag and payload words are written only where the box is
|
|
1376
|
+
* built (runtime constructors and untagged stack stores), so their loads
|
|
1377
|
+
* carry their own alias tags: element and field stores cannot change
|
|
1378
|
+
* them, and loops keep them hoisted. */
|
|
1255
1379
|
unionTag(uName: string, unionId: string): string;
|
|
1256
1380
|
/** Guard for helpers that build or read a union's `%ScrUnion` box
|
|
1257
1381
|
* directly (library-shaped unions with fixed arms): a nullable union
|
|
@@ -1278,6 +1402,8 @@ export declare class LlEmitter {
|
|
|
1278
1402
|
* the scr_union_new_* dispatch of unionWrap and the wrap-into-join
|
|
1279
1403
|
* sites (shift). */
|
|
1280
1404
|
unionNewOwned(unionId: string, tag: number, v: LlValue): string;
|
|
1405
|
+
/** `name` and every class whose membership interval falls in its own. */
|
|
1406
|
+
private classSubtypes;
|
|
1281
1407
|
classMetaOf(className: string): LlClassMeta;
|
|
1282
1408
|
/** The field-slot pointer of a class member: rc at 0, the vtable word at
|
|
1283
1409
|
* 1 on hierarchy members, then the flattened field list. Runtime error
|
|
@@ -1357,6 +1483,10 @@ export declare class LlEmitter {
|
|
|
1357
1483
|
matchBytesLoopVersion(s: IrStmt & {
|
|
1358
1484
|
kind: "for" | "while";
|
|
1359
1485
|
}, counted: IntegerCountedForLoop | null, paired?: IntegerPairedForLoop | null): ReturnType<typeof matchBytesLoopVersion>;
|
|
1486
|
+
private unitSafe;
|
|
1487
|
+
/** The functions a loop over a string's UTF-16 units may call, or null
|
|
1488
|
+
* where emitted reads do not use the runtime's scan receiver. */
|
|
1489
|
+
private unitSafeFunctions;
|
|
1360
1490
|
/** The alias tag of a whole-slot load of a binding (module globals only). */
|
|
1361
1491
|
slotAlias(id: string): string;
|
|
1362
1492
|
binding(id: string): {
|
|
@@ -1462,6 +1592,7 @@ export declare class LlEmitter {
|
|
|
1462
1592
|
* the range's order, and answers the rename of the range's text to this
|
|
1463
1593
|
* emitter's numbered helpers. Ranges merge in function order. */
|
|
1464
1594
|
mergeChunk(chunk: ChunkResult): (text: string) => string;
|
|
1595
|
+
private functionNamed;
|
|
1465
1596
|
/** Adds a content-named constant a chunk interned. Its symbol is this
|
|
1466
1597
|
* emitter's own: a digest collision retries in first-use order, which a
|
|
1467
1598
|
* chunk alone does not know. */
|
|
@@ -1895,7 +2026,7 @@ export declare class LlEmitter {
|
|
|
1895
2026
|
emitBytesIndex(receiver: string, index: LlValue, expr?: IrExpr, inBounds?: boolean): string;
|
|
1896
2027
|
emitBytesData(receiver: string): string;
|
|
1897
2028
|
emitBytesLength(elem: IrBytesElem, receiver: string, bytes: boolean): LlValue;
|
|
1898
|
-
emitBytesGet(elem: IrBytesElem, receiver: string, index: LlValue, expr?: IrExpr, inBounds?: boolean, invalidNaN?: boolean, owned?: boolean): LlValue;
|
|
2029
|
+
emitBytesGet(elem: IrBytesElem, receiver: string, index: LlValue, expr?: IrExpr, inBounds?: boolean, invalidNaN?: boolean, owned?: boolean, scope?: string): LlValue;
|
|
1899
2030
|
emitToUint32(value: string, expr?: IrExpr, uint32?: string): string;
|
|
1900
2031
|
/** Stores a number into its int32-stored local, when it is one. The
|
|
1901
2032
|
* value is proven to be in the local's range, so its low 32 bits are the
|
|
@@ -1906,7 +2037,7 @@ export declare class LlEmitter {
|
|
|
1906
2037
|
* as its incoming double, which is the same number. */
|
|
1907
2038
|
int32LocalValue(localId: string, bits: string, type: IrType): LlValue;
|
|
1908
2039
|
storeIntegerView(localId: string, value: LlValue, expr?: IrExpr): void;
|
|
1909
|
-
emitBytesSet(elem: IrBytesElem, receiver: string, index: LlValue, value: LlValue, indexExpr?: IrExpr, expr?: IrExpr, inBounds?: boolean, owned?: boolean): void;
|
|
2040
|
+
emitBytesSet(elem: IrBytesElem, receiver: string, index: LlValue, value: LlValue, indexExpr?: IrExpr, expr?: IrExpr, inBounds?: boolean, owned?: boolean, scope?: string): void;
|
|
1910
2041
|
emitBytesIntrinsic(e: IrExpr & {
|
|
1911
2042
|
kind: "bytesIntrinsic";
|
|
1912
2043
|
}): LlValue;
|