@scriptc/compiler 0.1.7 → 0.2.1
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 +98 -39
- package/ambient/scriptc-overrides.d.ts +10 -6
- package/ambient/scriptc.d.ts +15 -0
- package/dist/backend/build-cache.d.ts +1 -3
- package/dist/backend/build-cache.js +3 -22
- package/dist/backend/build-cache.js.map +1 -1
- package/dist/backend/cache-root.d.ts +3 -0
- package/dist/backend/cache-root.js +23 -0
- package/dist/backend/cache-root.js.map +1 -0
- package/dist/backend/cycle-analysis.d.ts +15 -0
- package/dist/backend/cycle-analysis.js +108 -0
- package/dist/backend/cycle-analysis.js.map +1 -0
- package/dist/backend/cycle-analysis.test.js +124 -0
- package/dist/backend/cycle-analysis.test.js.map +1 -0
- package/dist/backend/executable-features.d.ts +4 -0
- package/dist/backend/executable-features.js +42 -0
- package/dist/backend/executable-features.js.map +1 -0
- package/dist/backend/external-c.d.ts +5 -27
- package/dist/backend/external-c.js +5 -40
- package/dist/backend/external-c.js.map +1 -1
- package/dist/backend/ffi-callbacks.d.ts +2 -3
- package/dist/backend/ffi-callbacks.js +2 -3
- package/dist/backend/ffi-callbacks.js.map +1 -1
- package/dist/backend/library-identity-markers.d.ts +4 -9
- package/dist/backend/library-identity-markers.js +11 -49
- package/dist/backend/library-identity-markers.js.map +1 -1
- package/dist/backend/library-pack.d.ts +5 -0
- package/dist/backend/library-pack.js +123 -0
- package/dist/backend/library-pack.js.map +1 -0
- package/dist/backend/link-plan-core.d.ts +20 -0
- package/dist/backend/link-plan-core.js +18 -0
- package/dist/backend/link-plan-core.js.map +1 -0
- package/dist/backend/link-plan.d.ts +1 -1
- package/dist/backend/link-plan.js +16 -17
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/link-trace.d.ts +2 -0
- package/dist/backend/link-trace.js +24 -0
- package/dist/backend/link-trace.js.map +1 -0
- package/dist/backend/linker.js +1 -1
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/literals.d.ts +9 -0
- package/dist/backend/literals.js +35 -0
- package/dist/backend/literals.js.map +1 -0
- package/dist/backend/literals.test.d.ts +1 -0
- package/dist/backend/literals.test.js +53 -0
- package/dist/backend/literals.test.js.map +1 -0
- package/dist/backend/llvm/blocks.d.ts +2 -0
- package/dist/backend/llvm/blocks.js +9 -4
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/blocks.test.d.ts +1 -0
- package/dist/backend/llvm/blocks.test.js +91 -0
- package/dist/backend/llvm/blocks.test.js.map +1 -0
- package/dist/backend/llvm/classes.d.ts +14 -8
- package/dist/backend/llvm/classes.js +88 -30
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +5 -1
- package/dist/backend/llvm/common.js +45 -4
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/debug-info.js +2 -7
- package/dist/backend/llvm/debug-info.js.map +1 -1
- package/dist/backend/llvm/debug-info.test.d.ts +1 -0
- package/dist/backend/llvm/debug-info.test.js +110 -0
- package/dist/backend/llvm/debug-info.test.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +21 -2
- package/dist/backend/llvm/dyn.js +647 -251
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +596 -1
- package/dist/backend/llvm/emitter.js +769 -425
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.d.ts +1 -0
- package/dist/backend/llvm/emitter.test.js +179 -0
- package/dist/backend/llvm/emitter.test.js.map +1 -0
- package/dist/backend/llvm/expr-async.js +23 -14
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +2 -2
- package/dist/backend/llvm/expr-bytes.js +60 -31
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +1 -1
- package/dist/backend/llvm/expr-callbacks.js +25 -22
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +136 -35
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +1 -1
- package/dist/backend/llvm/expr-containers.js +43 -14
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +5 -260
- package/dist/backend/llvm/expr-control.js +10 -6
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.d.ts +1 -1
- package/dist/backend/llvm/expr-dispatch.js +2 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +78 -81
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-island.d.ts +1 -1
- package/dist/backend/llvm/expr-island.js +11 -7
- package/dist/backend/llvm/expr-island.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +1 -1
- package/dist/backend/llvm/expr-primitives.js +62 -31
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +1 -1
- package/dist/backend/llvm/expr-records.d.ts +5 -1
- package/dist/backend/llvm/expr-records.js +54 -7
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.d.ts +4 -4
- package/dist/backend/llvm/expr-stream-bridges.js +220 -131
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.d.ts +1 -0
- package/dist/backend/llvm/expr-stream-bridges.test.js +55 -0
- package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -0
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.js +12 -12
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/layouts.d.ts +19 -0
- package/dist/backend/llvm/layouts.js +12 -0
- package/dist/backend/llvm/layouts.js.map +1 -0
- package/dist/backend/llvm/lib-abi.d.ts +19 -0
- package/dist/backend/llvm/lib-abi.js +82 -0
- package/dist/backend/llvm/lib-abi.js.map +1 -0
- package/dist/backend/llvm/lib-connect.d.ts +2 -0
- package/dist/backend/llvm/lib-connect.js +51 -0
- package/dist/backend/llvm/lib-connect.js.map +1 -0
- package/dist/backend/llvm/lib-datagram.d.ts +2 -0
- package/dist/backend/llvm/lib-datagram.js +135 -0
- package/dist/backend/llvm/lib-datagram.js.map +1 -0
- package/dist/backend/llvm/lib-dispatch.js +50 -6
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +30 -18
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.d.ts +2 -0
- package/dist/backend/llvm/lib-http2.js +215 -0
- package/dist/backend/llvm/lib-http2.js.map +1 -0
- package/dist/backend/llvm/lib-lookup.d.ts +2 -0
- package/dist/backend/llvm/lib-lookup.js +39 -0
- package/dist/backend/llvm/lib-lookup.js.map +1 -0
- package/dist/backend/llvm/lib-network.js +25 -2
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +44 -19
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +162 -3
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +3 -2
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-test.d.ts +2 -0
- package/dist/backend/llvm/lib-test.js +34 -0
- package/dist/backend/llvm/lib-test.js.map +1 -0
- package/dist/backend/llvm/lib-tls.d.ts +2 -0
- package/dist/backend/llvm/lib-tls.js +82 -0
- package/dist/backend/llvm/lib-tls.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +10 -9
- package/dist/backend/llvm/shapes.js +42 -131
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/unsupported.d.ts +1 -0
- package/dist/backend/llvm/unsupported.js +1 -2
- package/dist/backend/llvm/unsupported.js.map +1 -1
- package/dist/backend/llvm/walkers.js +1 -7
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/mangle.d.ts +2 -2
- package/dist/backend/mangle.js +16 -5
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/{c/may-throw.d.ts → may-throw.d.ts} +1 -1
- package/dist/backend/{c/may-throw.js → may-throw.js} +51 -46
- package/dist/backend/may-throw.js.map +1 -0
- package/dist/backend/may-throw.test.d.ts +1 -0
- package/dist/backend/may-throw.test.js +58 -0
- package/dist/backend/may-throw.test.js.map +1 -0
- package/dist/backend/native-codegen-core.d.ts +22 -0
- package/dist/backend/native-codegen-core.js +44 -0
- package/dist/backend/native-codegen-core.js.map +1 -0
- package/dist/backend/native-codegen.d.ts +3 -19
- package/dist/backend/native-codegen.js +5 -44
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +2 -2
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +94 -0
- package/dist/backend/native-link-info-core.js +62 -0
- package/dist/backend/native-link-info-core.js.map +1 -0
- package/dist/backend/native-link-info.d.ts +3 -88
- package/dist/backend/native-link-info.js +12 -243
- package/dist/backend/native-link-info.js.map +1 -1
- package/dist/backend/native-link-info.test.js +41 -146
- package/dist/backend/native-link-info.test.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +12 -30
- package/dist/backend/native-toolchain.js +83 -233
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +77 -5
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/native-tools.d.ts +24 -0
- package/dist/backend/native-tools.js +33 -0
- package/dist/backend/native-tools.js.map +1 -0
- package/dist/backend/object-localize.js +19 -8
- package/dist/backend/object-localize.js.map +1 -1
- package/dist/backend/object-localize.test.js +22 -0
- package/dist/backend/object-localize.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 +101 -0
- package/dist/backend/runtime-pack-core.js +172 -0
- package/dist/backend/runtime-pack-core.js.map +1 -0
- package/dist/backend/runtime-pack-native.d.ts +21 -0
- package/dist/backend/runtime-pack-native.js +73 -0
- package/dist/backend/runtime-pack-native.js.map +1 -0
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.d.ts +3 -83
- package/dist/backend/runtime-pack.js +8 -151
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +24 -1
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/target-diagnostics.d.ts +22 -0
- package/dist/backend/target-diagnostics.js +108 -0
- package/dist/backend/target-diagnostics.js.map +1 -0
- package/dist/backend/target-platform.d.ts +15 -0
- package/dist/backend/target-platform.js +72 -0
- package/dist/backend/target-platform.js.map +1 -0
- package/dist/backend/targets.d.ts +13 -4
- package/dist/backend/targets.js +103 -34
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +72 -4
- package/dist/backend/targets.test.js.map +1 -1
- package/dist/backend/toolchain-environment.d.ts +6 -0
- package/dist/backend/toolchain-environment.js +99 -0
- package/dist/backend/toolchain-environment.js.map +1 -0
- package/dist/backend/vendor-archives.d.ts +1 -9
- package/dist/backend/vendor-archives.js +2 -9
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/backend/vendor-inputs.d.ts +9 -0
- package/dist/backend/vendor-inputs.js +10 -0
- package/dist/backend/vendor-inputs.js.map +1 -0
- package/dist/backend/warm-cache.d.ts +3 -0
- package/dist/backend/warm-cache.js +41 -0
- package/dist/backend/warm-cache.js.map +1 -0
- package/dist/cli/command.d.ts +3 -0
- package/dist/cli/command.js +328 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/host.d.ts +24 -0
- package/dist/cli/host.js +2 -0
- package/dist/cli/host.js.map +1 -0
- package/dist/cli/output-options.d.ts +26 -0
- package/dist/cli/output-options.js +60 -0
- package/dist/cli/output-options.js.map +1 -0
- package/dist/cli/paths.d.ts +12 -0
- package/dist/cli/paths.js +42 -0
- package/dist/cli/paths.js.map +1 -0
- package/dist/cli/usage.d.ts +74 -0
- package/dist/cli/usage.js +86 -0
- package/dist/cli/usage.js.map +1 -0
- package/dist/cli/wasi-paths.d.ts +8 -0
- package/dist/cli/wasi-paths.js +41 -0
- package/dist/cli/wasi-paths.js.map +1 -0
- package/dist/cli/wasi-runner.d.ts +2 -0
- package/dist/cli/wasi-runner.js +28 -0
- package/dist/cli/wasi-runner.js.map +1 -0
- package/dist/compat/fetch-profile.js +37 -7
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/compile-types.d.ts +162 -0
- package/dist/compile-types.js +2 -0
- package/dist/compile-types.js.map +1 -0
- package/dist/coverage/report.js +11 -5
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +5 -2
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.js +5 -10
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +3 -4
- package/dist/executable/executable-cache.js +5 -6
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +16 -17
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.d.ts +14 -0
- package/dist/executable/prepare.js +66 -0
- package/dist/executable/prepare.js.map +1 -0
- package/dist/ffi/ffi-manifest.d.ts +11 -4
- package/dist/ffi/ffi-manifest.js +170 -58
- package/dist/ffi/ffi-manifest.js.map +1 -1
- package/dist/ffi/ffi-manifest.test.d.ts +1 -0
- package/dist/ffi/ffi-manifest.test.js +111 -0
- package/dist/ffi/ffi-manifest.test.js.map +1 -0
- package/dist/format-integer.d.ts +3 -0
- package/dist/format-integer.js +14 -0
- package/dist/format-integer.js.map +1 -0
- package/dist/frontend/analysis.d.ts +5 -0
- package/dist/frontend/analysis.js +88 -0
- package/dist/frontend/analysis.js.map +1 -0
- package/dist/frontend/arguments-usage.d.ts +1 -3
- package/dist/frontend/arguments-usage.js.map +1 -1
- package/dist/frontend/builtin-modules.d.ts +1 -1
- package/dist/frontend/builtin-modules.js +1 -1
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/cjs-lexer.d.ts +4 -25
- package/dist/frontend/cjs-lexer.js +6 -806
- package/dist/frontend/cjs-lexer.js.map +1 -1
- package/dist/frontend/cjs-resolve.d.ts +5 -0
- package/dist/frontend/cjs-resolve.js +429 -0
- package/dist/frontend/cjs-resolve.js.map +1 -0
- package/dist/frontend/cjs-syntax.d.ts +26 -0
- package/dist/frontend/cjs-syntax.js +806 -0
- package/dist/frontend/cjs-syntax.js.map +1 -0
- package/dist/frontend/comptime-node.d.ts +4 -0
- package/dist/frontend/comptime-node.js +16 -0
- package/dist/frontend/comptime-node.js.map +1 -0
- package/dist/frontend/comptime-node.test.d.ts +1 -0
- package/dist/frontend/comptime-node.test.js +37 -0
- package/dist/frontend/comptime-node.test.js.map +1 -0
- package/dist/frontend/dts-paths.d.ts +3 -4
- package/dist/frontend/dts-paths.js +15 -8
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/fork-target.js +2 -2
- package/dist/frontend/fork-target.js.map +1 -1
- package/dist/frontend/helper-tokens.d.ts +1 -0
- package/dist/frontend/helper-tokens.js +147 -0
- package/dist/frontend/helper-tokens.js.map +1 -0
- package/dist/frontend/helper-tokens.test.d.ts +1 -0
- package/dist/frontend/helper-tokens.test.js +35 -0
- package/dist/frontend/helper-tokens.test.js.map +1 -0
- package/dist/frontend/inferred-js-diagnostics.d.ts +5 -0
- package/dist/frontend/inferred-js-diagnostics.js +69 -0
- package/dist/frontend/inferred-js-diagnostics.js.map +1 -0
- package/dist/frontend/inferred-js-diagnostics.test.d.ts +1 -0
- package/dist/frontend/inferred-js-diagnostics.test.js +58 -0
- package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -0
- package/dist/frontend/input-tracker.d.ts +5 -2
- package/dist/frontend/input-tracker.js +24 -3
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +23 -0
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lib-contract.js +32 -24
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/literal-values.d.ts +4 -0
- package/dist/frontend/literal-values.js +21 -0
- package/dist/frontend/literal-values.js.map +1 -0
- package/dist/frontend/literal-values.test.d.ts +1 -0
- package/dist/frontend/literal-values.test.js +91 -0
- package/dist/frontend/literal-values.test.js.map +1 -0
- package/dist/frontend/lowering/abstract-equality.d.ts +1 -1
- package/dist/frontend/lowering/abstract-equality.js +3 -0
- package/dist/frontend/lowering/abstract-equality.js.map +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.js +11 -6
- package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
- package/dist/frontend/lowering/array-values.d.ts +4 -1
- package/dist/frontend/lowering/array-values.js +43 -1
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/callback-arg.js +1 -0
- package/dist/frontend/lowering/callback-arg.js.map +1 -1
- package/dist/frontend/lowering/class-callbacks.d.ts +12 -0
- package/dist/frontend/lowering/class-callbacks.js +74 -0
- package/dist/frontend/lowering/class-callbacks.js.map +1 -0
- package/dist/frontend/lowering/class-construction.d.ts +12 -0
- package/dist/frontend/lowering/class-construction.js +156 -0
- package/dist/frontend/lowering/class-construction.js.map +1 -0
- package/dist/frontend/lowering/class-descriptors.d.ts +10 -0
- package/dist/frontend/lowering/class-descriptors.js +114 -0
- package/dist/frontend/lowering/class-descriptors.js.map +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +51 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +1158 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.d.ts +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +93 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -0
- package/dist/frontend/lowering/class-instance-constructor.d.ts +7 -0
- package/dist/frontend/lowering/class-instance-constructor.js +67 -0
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -0
- package/dist/frontend/lowering/class-method-values.d.ts +13 -0
- package/dist/frontend/lowering/class-method-values.js +235 -0
- package/dist/frontend/lowering/class-method-values.js.map +1 -0
- package/dist/frontend/lowering/class-prototypes.d.ts +19 -0
- package/dist/frontend/lowering/class-prototypes.js +242 -0
- package/dist/frontend/lowering/class-prototypes.js.map +1 -0
- package/dist/frontend/lowering/class-runtime-statics.d.ts +8 -0
- package/dist/frontend/lowering/class-runtime-statics.js +66 -0
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -0
- package/dist/frontend/lowering/class-static-data.d.ts +6 -0
- package/dist/frontend/lowering/class-static-data.js +56 -0
- package/dist/frontend/lowering/class-static-data.js.map +1 -0
- package/dist/frontend/lowering/containers/buffer-numeric-methods.d.ts +4 -0
- package/dist/frontend/lowering/containers/buffer-numeric-methods.js +26 -0
- package/dist/frontend/lowering/containers/buffer-numeric-methods.js.map +1 -0
- package/dist/frontend/lowering/containers/bytes.d.ts +11 -7
- package/dist/frontend/lowering/containers/bytes.js +208 -163
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.d.ts +2 -2
- package/dist/frontend/lowering/containers/string-and-regexp.js +58 -63
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.d.ts +7 -0
- package/dist/frontend/lowering/containers/string-replacement.js +217 -0
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -0
- package/dist/frontend/lowering/error-methods.d.ts +14 -0
- package/dist/frontend/lowering/error-methods.js +177 -0
- package/dist/frontend/lowering/error-methods.js.map +1 -0
- package/dist/frontend/lowering/expressions/global-symbols.d.ts +6 -0
- package/dist/frontend/lowering/expressions/global-symbols.js +11 -0
- package/dist/frontend/lowering/expressions/global-symbols.js.map +1 -0
- package/dist/frontend/lowering/expressions/native-proxy.d.ts +7 -0
- package/dist/frontend/lowering/expressions/native-proxy.js +51 -0
- package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.d.ts +6 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js +132 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -0
- package/dist/frontend/lowering/expressions/object-literals.d.ts +8 -8
- package/dist/frontend/lowering/expressions/object-literals.js +509 -183
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +3 -4
- package/dist/frontend/lowering/expressions/optional-chains.js +88 -24
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/try-lower-expression.js +1 -0
- package/dist/frontend/lowering/expressions/try-lower-expression.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-field-write.d.ts +8 -0
- package/dist/frontend/lowering/expressions/union-field-write.js +71 -0
- package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -0
- package/dist/frontend/lowering/function-context.d.ts +101 -0
- package/dist/frontend/lowering/function-context.js +109 -0
- package/dist/frontend/lowering/function-context.js.map +1 -0
- package/dist/frontend/lowering/generator-delegation.d.ts +7 -0
- package/dist/frontend/lowering/generator-delegation.js +85 -0
- package/dist/frontend/lowering/generator-delegation.js.map +1 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +11 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +143 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.d.ts +4 -1
- package/dist/frontend/lowering/lib-boundary.js +112 -20
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lib-boundary.test.d.ts +1 -0
- package/dist/frontend/lowering/lib-boundary.test.js +45 -0
- package/dist/frontend/lowering/lib-boundary.test.js.map +1 -0
- package/dist/frontend/lowering/lower-array-sort.d.ts +1 -1
- package/dist/frontend/lowering/lower-assert.d.ts +1 -1
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.d.ts +1 -1
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.d.ts +18 -0
- package/dist/frontend/lowering/lower-builtin-values.js +249 -0
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -0
- package/dist/frontend/lowering/lower-builtins.d.ts +33 -46
- package/dist/frontend/lowering/lower-builtins.js +676 -365
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +28 -22
- package/dist/frontend/lowering/lower-calls.js +1660 -412
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +95 -57
- package/dist/frontend/lowering/lower-classes.js +1491 -404
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +1 -1
- package/dist/frontend/lowering/lower-comptime.js +23 -32
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +36 -32
- package/dist/frontend/lowering/lower-containers.js +925 -181
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.d.ts +1 -1
- package/dist/frontend/lowering/lower-dgram.js +3 -2
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.d.ts +1 -1
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +30 -1
- package/dist/frontend/lowering/lower-event-emitter.js +58 -26
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-expando.d.ts +7 -1
- package/dist/frontend/lowering/lower-expando.js +14 -6
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +37 -13
- package/dist/frontend/lowering/lower-exprs.js +2163 -863
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +2 -5
- package/dist/frontend/lowering/lower-generators.js +88 -46
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.d.ts +7 -0
- package/dist/frontend/lowering/lower-global-value.js +17 -0
- package/dist/frontend/lowering/lower-global-value.js.map +1 -0
- package/dist/frontend/lowering/lower-inspect.d.ts +1 -1
- package/dist/frontend/lowering/lower-inspect.js +17 -8
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +7 -8
- package/dist/frontend/lowering/lower-island.js +66 -33
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.d.ts +2 -2
- package/dist/frontend/lowering/lower-mixins.js +5 -3
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +1 -1
- package/dist/frontend/lowering/lower-modules.js +445 -39
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.test.d.ts +1 -0
- package/dist/frontend/lowering/lower-modules.test.js +39 -0
- package/dist/frontend/lowering/lower-modules.test.js.map +1 -0
- package/dist/frontend/lowering/lower-namespaces.d.ts +1 -1
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-module.d.ts +1 -1
- package/dist/frontend/lowering/lower-node-module.js +13 -10
- package/dist/frontend/lowering/lower-node-module.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +1 -1
- package/dist/frontend/lowering/lower-server.js +6 -10
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +17 -17
- package/dist/frontend/lowering/lower-stmts.js +855 -514
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +1 -1
- package/dist/frontend/lowering/lower-stream.js +20 -11
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-test.d.ts +1 -1
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lower-url.d.ts +6 -0
- package/dist/frontend/lowering/lower-url.js +77 -0
- package/dist/frontend/lowering/lower-url.js.map +1 -0
- package/dist/frontend/lowering/lowerer.d.ts +140 -190
- package/dist/frontend/lowering/lowerer.js +1193 -712
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.d.ts +1 -0
- package/dist/frontend/lowering/lowerer.test.js +172 -0
- package/dist/frontend/lowering/lowerer.test.js.map +1 -0
- package/dist/frontend/lowering/native-ffi.d.ts +5 -0
- package/dist/frontend/lowering/native-ffi.js +40 -0
- package/dist/frontend/lowering/native-ffi.js.map +1 -0
- package/dist/frontend/lowering/object-enumeration-receiver.d.ts +7 -0
- package/dist/frontend/lowering/object-enumeration-receiver.js +33 -0
- package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -0
- package/dist/frontend/lowering/object-factory-new.d.ts +8 -0
- package/dist/frontend/lowering/object-factory-new.js +68 -0
- package/dist/frontend/lowering/object-factory-new.js.map +1 -0
- package/dist/frontend/lowering/optional-arguments.js +6 -1
- package/dist/frontend/lowering/optional-arguments.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.js +2 -1
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-locals.d.ts +14 -0
- package/dist/frontend/lowering/runtime-optional-locals.js +41 -0
- package/dist/frontend/lowering/runtime-optional-locals.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-locals.test.d.ts +1 -0
- package/dist/frontend/lowering/runtime-optional-locals.test.js +85 -0
- package/dist/frontend/lowering/runtime-optional-locals.test.js.map +1 -0
- package/dist/frontend/lowering/sanitize-class-types.d.ts +8 -0
- package/dist/frontend/lowering/sanitize-class-types.js +79 -0
- package/dist/frontend/lowering/sanitize-class-types.js.map +1 -0
- package/dist/frontend/lowering/sanitize-class-types.test.d.ts +1 -0
- package/dist/frontend/lowering/sanitize-class-types.test.js +60 -0
- package/dist/frontend/lowering/sanitize-class-types.test.js.map +1 -0
- package/dist/frontend/lowering/static-this.d.ts +5 -1
- package/dist/frontend/lowering/static-this.js +28 -2
- package/dist/frontend/lowering/static-this.js.map +1 -1
- package/dist/frontend/lowering/string-index.d.ts +7 -0
- package/dist/frontend/lowering/string-index.js +39 -0
- package/dist/frontend/lowering/string-index.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +10 -3
- package/dist/frontend/lowering/surfaces.js +86 -37
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/symbol-fields.d.ts +22 -0
- package/dist/frontend/lowering/symbol-fields.js +183 -0
- package/dist/frontend/lowering/symbol-fields.js.map +1 -0
- package/dist/frontend/lowering/symbol-methods.d.ts +7 -0
- package/dist/frontend/lowering/symbol-methods.js +30 -0
- package/dist/frontend/lowering/symbol-methods.js.map +1 -0
- package/dist/frontend/lowering/text-decoder-encoding.d.ts +12 -0
- package/dist/frontend/lowering/text-decoder-encoding.js +82 -0
- package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -0
- package/dist/frontend/lowering/text-decoder-encoding.test.d.ts +1 -0
- package/dist/frontend/lowering/text-decoder-encoding.test.js +38 -0
- package/dist/frontend/lowering/text-decoder-encoding.test.js.map +1 -0
- package/dist/frontend/lowering/union-narrow.d.ts +9 -0
- package/dist/frontend/lowering/union-narrow.js +59 -0
- package/dist/frontend/lowering/union-narrow.js.map +1 -0
- package/dist/frontend/lowering/union-narrow.test.d.ts +1 -0
- package/dist/frontend/lowering/union-narrow.test.js +72 -0
- package/dist/frontend/lowering/union-narrow.test.js.map +1 -0
- package/dist/frontend/lowering/union-retag.d.ts +43 -0
- package/dist/frontend/lowering/union-retag.js +259 -0
- package/dist/frontend/lowering/union-retag.js.map +1 -0
- package/dist/frontend/lowering/union-retag.test.d.ts +1 -0
- package/dist/frontend/lowering/union-retag.test.js +405 -0
- package/dist/frontend/lowering/union-retag.test.js.map +1 -0
- package/dist/frontend/lowering/unregistered-class-types.d.ts +14 -0
- package/dist/frontend/lowering/unregistered-class-types.js +94 -0
- package/dist/frontend/lowering/unregistered-class-types.js.map +1 -0
- package/dist/frontend/lowering/unregistered-class-types.test.d.ts +1 -0
- package/dist/frontend/lowering/unregistered-class-types.test.js +65 -0
- package/dist/frontend/lowering/unregistered-class-types.test.js.map +1 -0
- package/dist/frontend/lowering/width-lift.d.ts +40 -0
- package/dist/frontend/lowering/width-lift.js +2 -0
- package/dist/frontend/lowering/width-lift.js.map +1 -0
- package/dist/frontend/module-syntax.d.ts +58 -0
- package/dist/frontend/module-syntax.js +123 -0
- package/dist/frontend/module-syntax.js.map +1 -0
- package/dist/frontend/module-syntax.test.d.ts +1 -0
- package/dist/frontend/module-syntax.test.js +78 -0
- package/dist/frontend/module-syntax.test.js.map +1 -0
- package/dist/frontend/npm-fetch-analysis.d.ts +17 -0
- package/dist/frontend/npm-fetch-analysis.js +100 -0
- package/dist/frontend/npm-fetch-analysis.js.map +1 -0
- package/dist/frontend/npm-fetch-analysis.test.d.ts +1 -0
- package/dist/frontend/npm-fetch-analysis.test.js +107 -0
- package/dist/frontend/npm-fetch-analysis.test.js.map +1 -0
- package/dist/frontend/npm-fetch-node.d.ts +2 -0
- package/dist/frontend/npm-fetch-node.js +12 -0
- package/dist/frontend/npm-fetch-node.js.map +1 -0
- package/dist/frontend/npm-fetch-syntax.d.ts +6 -0
- package/dist/frontend/npm-fetch-syntax.js +207 -0
- package/dist/frontend/npm-fetch-syntax.js.map +1 -0
- package/dist/frontend/npm-node.d.ts +10 -0
- package/dist/frontend/npm-node.js +14 -0
- package/dist/frontend/npm-node.js.map +1 -0
- package/dist/frontend/npm-static-bundled-cjs.d.ts +8 -0
- package/dist/frontend/npm-static-bundled-cjs.js +236 -0
- package/dist/frontend/npm-static-bundled-cjs.js.map +1 -0
- package/dist/frontend/npm-static-bundled-cjs.test.d.ts +1 -0
- package/dist/frontend/npm-static-bundled-cjs.test.js +69 -0
- package/dist/frontend/npm-static-bundled-cjs.test.js.map +1 -0
- package/dist/frontend/npm-static-declaration-syntax.d.ts +57 -0
- package/dist/frontend/npm-static-declaration-syntax.js +944 -0
- package/dist/frontend/npm-static-declaration-syntax.js.map +1 -0
- package/dist/frontend/npm-static-declarations.d.ts +11 -39
- package/dist/frontend/npm-static-declarations.js +22 -561
- package/dist/frontend/npm-static-declarations.js.map +1 -1
- package/dist/frontend/npm-static-declarations.test.js +245 -6
- package/dist/frontend/npm-static-declarations.test.js.map +1 -1
- package/dist/frontend/npm-static-prune.d.ts +1 -1
- package/dist/frontend/npm-static-prune.js +121 -38
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-prune.test.js +9 -1
- package/dist/frontend/npm-static-prune.test.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-host.d.ts +4 -0
- package/dist/frontend/npm-static-rewrite-host.js +179 -0
- package/dist/frontend/npm-static-rewrite-host.js.map +1 -0
- package/dist/frontend/npm-static-rewrite-syntax.d.ts +16 -0
- package/dist/frontend/npm-static-rewrite-syntax.js +905 -0
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -0
- package/dist/frontend/npm-static-rewrite.d.ts +0 -5
- package/dist/frontend/npm-static-rewrite.js +2 -1079
- package/dist/frontend/npm-static-rewrite.js.map +1 -1
- package/dist/frontend/npm-static-subtyping.d.ts +5 -0
- package/dist/frontend/npm-static-subtyping.js +55 -0
- package/dist/frontend/npm-static-subtyping.js.map +1 -0
- package/dist/frontend/npm-static-subtyping.test.d.ts +1 -0
- package/dist/frontend/npm-static-subtyping.test.js +58 -0
- package/dist/frontend/npm-static-subtyping.test.js.map +1 -0
- package/dist/frontend/npm-static.d.ts +7 -15
- package/dist/frontend/npm-static.js +19 -28
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.d.ts +8 -69
- package/dist/frontend/npm.js +21 -361
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/npm.test.js +2 -2
- package/dist/frontend/npm.test.js.map +1 -1
- package/dist/frontend/pipeline-native.d.ts +6 -0
- package/dist/frontend/pipeline-native.js +32 -0
- package/dist/frontend/pipeline-native.js.map +1 -0
- package/dist/frontend/pipeline.d.ts +54 -0
- package/dist/frontend/pipeline.js +382 -0
- package/dist/frontend/pipeline.js.map +1 -0
- package/dist/frontend/pipeline.test.d.ts +1 -0
- package/dist/frontend/pipeline.test.js +77 -0
- package/dist/frontend/pipeline.test.js.map +1 -0
- package/dist/frontend/program-analysis.d.ts +10 -0
- package/dist/frontend/program-analysis.js +14 -0
- package/dist/frontend/program-analysis.js.map +1 -0
- package/dist/frontend/program-node.d.ts +9 -0
- package/dist/frontend/program-node.js +48 -0
- package/dist/frontend/program-node.js.map +1 -0
- package/dist/frontend/program.d.ts +39 -20
- package/dist/frontend/program.js +393 -189
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +105 -2
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/provenance-core.d.ts +9 -0
- package/dist/frontend/provenance-core.js +435 -0
- package/dist/frontend/provenance-core.js.map +1 -0
- package/dist/frontend/provenance.d.ts +0 -4
- package/dist/frontend/provenance.js +4 -459
- package/dist/frontend/provenance.js.map +1 -1
- package/dist/frontend/resolve.d.ts +3 -1
- package/dist/frontend/resolve.js +6 -3
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/runtime-resolve.d.ts +4 -3
- package/dist/frontend/runtime-resolve.js +22 -18
- package/dist/frontend/runtime-resolve.js.map +1 -1
- package/dist/frontend/runtime-resolve.test.js +53 -0
- package/dist/frontend/runtime-resolve.test.js.map +1 -1
- package/dist/frontend/services-node.d.ts +5 -0
- package/dist/frontend/services-node.js +19 -0
- package/dist/frontend/services-node.js.map +1 -0
- package/dist/frontend/services-node.test.d.ts +1 -0
- package/dist/frontend/services-node.test.js +70 -0
- package/dist/frontend/services-node.test.js.map +1 -0
- package/dist/frontend/services.d.ts +44 -0
- package/dist/frontend/services.js +90 -0
- package/dist/frontend/services.js.map +1 -0
- package/dist/frontend/services.test.d.ts +1 -0
- package/dist/frontend/services.test.js +174 -0
- package/dist/frontend/services.test.js.map +1 -0
- package/dist/frontend/ts7/adapter.d.ts +3 -3
- package/dist/frontend/ts7/adapter.js +14 -31
- package/dist/frontend/ts7/adapter.js.map +1 -1
- package/dist/frontend/ts7/api.d.ts +16 -0
- package/dist/frontend/ts7/api.js +24 -0
- package/dist/frontend/ts7/api.js.map +1 -0
- package/dist/frontend/ts7/ast-bytes.d.ts +31 -0
- package/dist/frontend/ts7/ast-bytes.js +137 -0
- package/dist/frontend/ts7/ast-bytes.js.map +1 -0
- package/dist/frontend/ts7/ast-bytes.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-bytes.test.js +73 -0
- package/dist/frontend/ts7/ast-bytes.test.js.map +1 -0
- package/dist/frontend/ts7/ast-guards.generated.d.ts +353 -0
- package/dist/frontend/ts7/ast-guards.generated.js +1951 -0
- package/dist/frontend/ts7/ast-guards.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-guards.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-guards.test.js +43 -0
- package/dist/frontend/ts7/ast-guards.test.js.map +1 -0
- package/dist/frontend/ts7/ast-node.d.ts +194 -0
- package/dist/frontend/ts7/ast-node.js +448 -0
- package/dist/frontend/ts7/ast-node.js.map +1 -0
- package/dist/frontend/ts7/ast-node.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-node.test.js +266 -0
- package/dist/frontend/ts7/ast-node.test.js.map +1 -0
- package/dist/frontend/ts7/ast-schema.generated.d.ts +503 -0
- package/dist/frontend/ts7/ast-schema.generated.js +1446 -0
- package/dist/frontend/ts7/ast-schema.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-text.d.ts +6 -0
- package/dist/frontend/ts7/ast-text.js +124 -0
- package/dist/frontend/ts7/ast-text.js.map +1 -0
- package/dist/frontend/ts7/ast-text.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-text.test.js +38 -0
- package/dist/frontend/ts7/ast-text.test.js.map +1 -0
- package/dist/frontend/ts7/ast-tokens.generated.d.ts +2 -0
- package/dist/frontend/ts7/ast-tokens.generated.js +155 -0
- package/dist/frontend/ts7/ast-tokens.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-types.d.ts +42 -0
- package/dist/frontend/ts7/ast-types.generated.d.ts +1615 -0
- package/dist/frontend/ts7/ast-types.generated.js +5 -0
- package/dist/frontend/ts7/ast-types.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-types.js +3 -0
- package/dist/frontend/ts7/ast-types.js.map +1 -0
- package/dist/frontend/ts7/ast-wire.d.ts +58 -0
- package/dist/frontend/ts7/ast-wire.js +267 -0
- package/dist/frontend/ts7/ast-wire.js.map +1 -0
- package/dist/frontend/ts7/ast-wire.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-wire.test.js +151 -0
- package/dist/frontend/ts7/ast-wire.test.js.map +1 -0
- package/dist/frontend/ts7/ast.d.ts +14 -14
- package/dist/frontend/ts7/ast.js +25 -18
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/census-check.js +1 -0
- package/dist/frontend/ts7/census-check.js.map +1 -1
- package/dist/frontend/ts7/checker-cache.d.ts +48 -0
- package/dist/frontend/ts7/checker-cache.js +92 -0
- package/dist/frontend/ts7/checker-cache.js.map +1 -0
- package/dist/frontend/ts7/checker.d.ts +19 -46
- package/dist/frontend/ts7/checker.js +231 -161
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.d.ts +1 -0
- package/dist/frontend/ts7/checker.test.js +335 -0
- package/dist/frontend/ts7/checker.test.js.map +1 -0
- package/dist/frontend/ts7/enums.d.ts +4 -27
- package/dist/frontend/ts7/enums.generated.d.ts +878 -0
- package/dist/frontend/ts7/enums.generated.js +1313 -0
- package/dist/frontend/ts7/enums.generated.js.map +1 -0
- package/dist/frontend/ts7/enums.js +4 -45
- package/dist/frontend/ts7/enums.js.map +1 -1
- package/dist/frontend/ts7/enums.test.d.ts +1 -0
- package/dist/frontend/ts7/enums.test.js +48 -0
- package/dist/frontend/ts7/enums.test.js.map +1 -0
- package/dist/frontend/ts7/native-api.d.ts +10 -0
- package/dist/frontend/ts7/native-api.js +10 -0
- package/dist/frontend/ts7/native-api.js.map +1 -0
- package/dist/frontend/ts7/native-host.d.ts +2 -0
- package/dist/frontend/ts7/native-host.js +11 -0
- package/dist/frontend/ts7/native-host.js.map +1 -0
- package/dist/frontend/ts7/native-process.d.ts +14 -0
- package/dist/frontend/ts7/native-process.js +62 -0
- package/dist/frontend/ts7/native-process.js.map +1 -0
- package/dist/frontend/ts7/program-adapter.d.ts +10 -98
- package/dist/frontend/ts7/program-adapter.js +16 -310
- package/dist/frontend/ts7/program-adapter.js.map +1 -1
- package/dist/frontend/ts7/program-host.d.ts +115 -0
- package/dist/frontend/ts7/program-host.js +347 -0
- package/dist/frontend/ts7/program-host.js.map +1 -0
- package/dist/frontend/ts7/program-host.test.d.ts +1 -0
- package/dist/frontend/ts7/program-host.test.js +207 -0
- package/dist/frontend/ts7/program-host.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-api.d.ts +12 -0
- package/dist/frontend/ts7/rpc-api.js +23 -0
- package/dist/frontend/ts7/rpc-api.js.map +1 -0
- package/dist/frontend/ts7/rpc-client.d.ts +27 -0
- package/dist/frontend/ts7/rpc-client.js +102 -0
- package/dist/frontend/ts7/rpc-client.js.map +1 -0
- package/dist/frontend/ts7/rpc-client.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-client.test.js +133 -0
- package/dist/frontend/ts7/rpc-client.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-filesystem.d.ts +16 -0
- package/dist/frontend/ts7/rpc-filesystem.js +42 -0
- package/dist/frontend/ts7/rpc-filesystem.js.map +1 -0
- package/dist/frontend/ts7/rpc-filesystem.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-filesystem.test.js +89 -0
- package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-process.d.ts +2 -0
- package/dist/frontend/ts7/rpc-process.js +148 -0
- package/dist/frontend/ts7/rpc-process.js.map +1 -0
- package/dist/frontend/ts7/rpc-process.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-process.test.js +29 -0
- package/dist/frontend/ts7/rpc-process.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-wire.d.ts +46 -0
- package/dist/frontend/ts7/rpc-wire.js +195 -0
- package/dist/frontend/ts7/rpc-wire.js.map +1 -0
- package/dist/frontend/ts7/rpc-wire.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-wire.test.js +168 -0
- package/dist/frontend/ts7/rpc-wire.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-checker.d.ts +137 -0
- package/dist/frontend/ts7/semantic-checker.js +221 -0
- package/dist/frontend/ts7/semantic-checker.js.map +1 -0
- package/dist/frontend/ts7/semantic-checker.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-checker.test.js +119 -0
- package/dist/frontend/ts7/semantic-checker.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-json.d.ts +5 -0
- package/dist/frontend/ts7/semantic-json.js +47 -0
- package/dist/frontend/ts7/semantic-json.js.map +1 -0
- package/dist/frontend/ts7/semantic-json.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-json.test.js +42 -0
- package/dist/frontend/ts7/semantic-json.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-model.d.ts +222 -0
- package/dist/frontend/ts7/semantic-model.js +423 -0
- package/dist/frontend/ts7/semantic-model.js.map +1 -0
- package/dist/frontend/ts7/semantic-model.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-model.test.js +322 -0
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-schema.generated.d.ts +283 -0
- package/dist/frontend/ts7/semantic-schema.generated.js +222 -0
- package/dist/frontend/ts7/semantic-schema.generated.js.map +1 -0
- package/dist/frontend/ts7/semantic-types.d.ts +5 -0
- package/dist/frontend/ts7/semantic-types.js +2 -0
- package/dist/frontend/ts7/semantic-types.js.map +1 -0
- package/dist/frontend/ts7/session-cache.d.ts +17 -0
- package/dist/frontend/ts7/session-cache.js +97 -0
- package/dist/frontend/ts7/session-cache.js.map +1 -0
- package/dist/frontend/ts7/session-cache.test.d.ts +1 -0
- package/dist/frontend/ts7/session-cache.test.js +87 -0
- package/dist/frontend/ts7/session-cache.test.js.map +1 -0
- package/dist/frontend/ts7/session-path.d.ts +18 -0
- package/dist/frontend/ts7/session-path.js +203 -0
- package/dist/frontend/ts7/session-path.js.map +1 -0
- package/dist/frontend/ts7/session-path.test.d.ts +1 -0
- package/dist/frontend/ts7/session-path.test.js +34 -0
- package/dist/frontend/ts7/session-path.test.js.map +1 -0
- package/dist/frontend/ts7/session-schema.generated.d.ts +167 -0
- package/dist/frontend/ts7/session-schema.generated.js +5 -0
- package/dist/frontend/ts7/session-schema.generated.js.map +1 -0
- package/dist/frontend/ts7/session-timing.d.ts +50 -0
- package/dist/frontend/ts7/session-timing.js +61 -0
- package/dist/frontend/ts7/session-timing.js.map +1 -0
- package/dist/frontend/ts7/session-timing.test.d.ts +1 -0
- package/dist/frontend/ts7/session-timing.test.js +52 -0
- package/dist/frontend/ts7/session-timing.test.js.map +1 -0
- package/dist/frontend/ts7/session.d.ts +105 -0
- package/dist/frontend/ts7/session.js +233 -0
- package/dist/frontend/ts7/session.js.map +1 -0
- package/dist/frontend/ts7/session.test.d.ts +1 -0
- package/dist/frontend/ts7/session.test.js +215 -0
- package/dist/frontend/ts7/session.test.js.map +1 -0
- package/dist/frontend/ts7/source-parser-node.d.ts +6 -0
- package/dist/frontend/ts7/source-parser-node.js +15 -0
- package/dist/frontend/ts7/source-parser-node.js.map +1 -0
- package/dist/frontend/ts7/source-parser.d.ts +25 -0
- package/dist/frontend/ts7/source-parser.js +96 -0
- package/dist/frontend/ts7/source-parser.js.map +1 -0
- package/dist/frontend/ts7/source-parser.test.d.ts +1 -0
- package/dist/frontend/ts7/source-parser.test.js +151 -0
- package/dist/frontend/ts7/source-parser.test.js.map +1 -0
- package/dist/frontend/ts7/syntax.d.ts +3 -0
- package/dist/frontend/ts7/syntax.js +4 -0
- package/dist/frontend/ts7/syntax.js.map +1 -0
- package/dist/frontend/tsc-codes.js +3 -0
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +34 -18
- package/dist/frontend/type-mapper.js +552 -131
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +146 -2
- package/dist/frontend/type-mapper.test.js.map +1 -1
- package/dist/frontend/union-discriminants.d.ts +16 -0
- package/dist/frontend/union-discriminants.js +98 -0
- package/dist/frontend/union-discriminants.js.map +1 -0
- package/dist/frontend/union-discriminants.test.d.ts +1 -0
- package/dist/frontend/union-discriminants.test.js +182 -0
- package/dist/frontend/union-discriminants.test.js.map +1 -0
- package/dist/index.d.ts +7 -198
- package/dist/index.js +369 -1572
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +16 -4
- package/dist/ir/analysis.js +23 -4
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/analysis.test.js +15 -2
- package/dist/ir/analysis.test.js.map +1 -1
- package/dist/ir/constant-tables.js +67 -49
- package/dist/ir/constant-tables.js.map +1 -1
- package/dist/ir/constant-tables.test.js +1 -1
- package/dist/ir/control-flow.d.ts +6 -0
- package/dist/ir/control-flow.js +142 -0
- package/dist/ir/control-flow.js.map +1 -0
- package/dist/ir/control-flow.test.d.ts +1 -0
- package/dist/ir/control-flow.test.js +113 -0
- package/dist/ir/control-flow.test.js.map +1 -0
- package/dist/ir/integer-loops.js +7 -18
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-ranges.js +53 -27
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/ir.d.ts +334 -176
- package/dist/ir/ir.js +710 -903
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +162 -1
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/scalar-records.js +165 -134
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/scalar-records.test.js +1 -1
- package/dist/ir/serialize.d.ts +4 -2
- package/dist/ir/serialize.js +33 -14
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.d.ts +1 -0
- package/dist/ir/serialize.test.js +57 -0
- package/dist/ir/serialize.test.js.map +1 -0
- package/dist/ir/traverse.d.ts +41 -0
- package/dist/ir/traverse.js +660 -0
- package/dist/ir/traverse.js.map +1 -0
- package/dist/ir/traverse.test.d.ts +1 -0
- package/dist/ir/traverse.test.js +242 -0
- package/dist/ir/traverse.test.js.map +1 -0
- package/dist/ir/validate.js +2018 -1498
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +536 -2
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/cache-primitives.d.ts +2 -3
- package/dist/library/cache-primitives.js +4 -6
- package/dist/library/cache-primitives.js.map +1 -1
- package/dist/library/fence-eval.js +2 -2
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/int-infer.js +7 -6
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/library-cache.d.ts +3 -2
- package/dist/library/library-cache.js +5 -17
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +54 -41
- package/dist/library/library-cache.test.js.map +1 -1
- package/dist/library/library-profile.d.ts +3 -1
- package/dist/library/library-profile.js +15 -6
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/prepare.d.ts +15 -0
- package/dist/library/prepare.js +584 -0
- package/dist/library/prepare.js.map +1 -0
- package/dist/library/semantic-source.d.ts +1 -1
- package/dist/library/semantic-source.js +8 -6
- package/dist/library/semantic-source.js.map +1 -1
- package/dist/library/sidecar-validate.js +4 -4
- package/dist/library/sidecar-validate.js.map +1 -1
- package/dist/library/sidecar.d.ts +2 -0
- package/dist/library/sidecar.js +10 -3
- package/dist/library/sidecar.js.map +1 -1
- package/dist/native/cache.d.ts +11 -0
- package/dist/native/cache.js +113 -0
- package/dist/native/cache.js.map +1 -0
- package/dist/native/cache.test.d.ts +1 -0
- package/dist/native/cache.test.js +66 -0
- package/dist/native/cache.test.js.map +1 -0
- package/dist/native/cli.d.ts +1 -0
- package/dist/native/cli.js +112 -0
- package/dist/native/cli.js.map +1 -0
- package/dist/native/compiler.d.ts +15 -0
- package/dist/native/compiler.js +336 -0
- package/dist/native/compiler.js.map +1 -0
- package/dist/native/compiler.test.d.ts +1 -0
- package/dist/native/compiler.test.js +174 -0
- package/dist/native/compiler.test.js.map +1 -0
- package/dist/native/comptime.d.ts +5 -0
- package/dist/native/comptime.js +73 -0
- package/dist/native/comptime.js.map +1 -0
- package/dist/native/comptime.test.d.ts +1 -0
- package/dist/native/comptime.test.js +65 -0
- package/dist/native/comptime.test.js.map +1 -0
- package/dist/native/executable-cache.d.ts +26 -0
- package/dist/native/executable-cache.js +228 -0
- package/dist/native/executable-cache.js.map +1 -0
- package/dist/native/executable-cache.test.d.ts +1 -0
- package/dist/native/executable-cache.test.js +151 -0
- package/dist/native/executable-cache.test.js.map +1 -0
- package/dist/native/file-identity.d.ts +4 -0
- package/dist/native/file-identity.js +14 -0
- package/dist/native/file-identity.js.map +1 -0
- package/dist/native/file-identity.test.d.ts +1 -0
- package/dist/native/file-identity.test.js +43 -0
- package/dist/native/file-identity.test.js.map +1 -0
- package/dist/native/library.d.ts +22 -0
- package/dist/native/library.js +83 -0
- package/dist/native/library.js.map +1 -0
- package/dist/native/prepare.d.ts +21 -0
- package/dist/native/prepare.js +174 -0
- package/dist/native/prepare.js.map +1 -0
- package/dist/native/prepare.test.d.ts +1 -0
- package/dist/native/prepare.test.js +70 -0
- package/dist/native/prepare.test.js.map +1 -0
- package/dist/native/sanitizer.d.ts +11 -0
- package/dist/native/sanitizer.js +137 -0
- package/dist/native/sanitizer.js.map +1 -0
- package/dist/native/sanitizer.test.d.ts +1 -0
- package/dist/native/sanitizer.test.js +58 -0
- package/dist/native/sanitizer.test.js.map +1 -0
- package/dist/native/task.d.ts +4 -0
- package/dist/native/task.js +16 -0
- package/dist/native/task.js.map +1 -0
- package/dist/native/task.test.d.ts +1 -0
- package/dist/native/task.test.js +17 -0
- package/dist/native/task.test.js.map +1 -0
- package/dist/native/toolchain.d.ts +45 -0
- package/dist/native/toolchain.js +94 -0
- package/dist/native/toolchain.js.map +1 -0
- package/dist/native/toolchain.test.d.ts +1 -0
- package/dist/native/toolchain.test.js +85 -0
- package/dist/native/toolchain.test.js.map +1 -0
- package/dist/startup-cache.d.ts +1 -1
- package/dist/startup-cache.js +2 -5
- package/dist/startup-cache.js.map +1 -1
- package/dist/timing.d.ts +4 -0
- package/dist/timing.js +19 -0
- package/dist/timing.js.map +1 -0
- package/dist/wasi-paths.js +10 -7
- package/dist/wasi-paths.js.map +1 -1
- package/package.json +28 -19
- package/surface-manifest.json +107 -98
- package/dist/backend/c/async.d.ts +0 -171
- package/dist/backend/c/async.js +0 -1317
- package/dist/backend/c/async.js.map +0 -1
- package/dist/backend/c/c-emitter.d.ts +0 -536
- package/dist/backend/c/c-emitter.js +0 -1932
- package/dist/backend/c/c-emitter.js.map +0 -1
- package/dist/backend/c/exprs.d.ts +0 -15
- package/dist/backend/c/exprs.js +0 -8847
- package/dist/backend/c/exprs.js.map +0 -1
- package/dist/backend/c/island.d.ts +0 -45
- package/dist/backend/c/island.js +0 -281
- package/dist/backend/c/island.js.map +0 -1
- package/dist/backend/c/may-throw.js.map +0 -1
- package/dist/backend/c/shapes.d.ts +0 -142
- package/dist/backend/c/shapes.js +0 -603
- package/dist/backend/c/shapes.js.map +0 -1
- package/dist/backend/c/stmts.d.ts +0 -76
- package/dist/backend/c/stmts.js +0 -1108
- package/dist/backend/c/stmts.js.map +0 -1
- package/dist/backend/c/types.d.ts +0 -71
- package/dist/backend/c/types.js +0 -459
- package/dist/backend/c/types.js.map +0 -1
- package/dist/backend/c/types.test.js +0 -32
- package/dist/backend/c/types.test.js.map +0 -1
- package/dist/backend/c/walkers.d.ts +0 -134
- package/dist/backend/c/walkers.js +0 -1772
- package/dist/backend/c/walkers.js.map +0 -1
- /package/dist/backend/{c/types.test.d.ts → cycle-analysis.test.d.ts} +0 -0
|
@@ -1,56 +1,30 @@
|
|
|
1
|
+
import { RuntimeOptionalLocals } from "./runtime-optional-locals.js";
|
|
2
|
+
import type { WidthLift } from "./width-lift.js";
|
|
3
|
+
export type { WidthLift } from "./width-lift.js";
|
|
4
|
+
import { type FnCtx } from "./function-context.js";
|
|
5
|
+
export { newFnCtx, type FnCtx } from "./function-context.js";
|
|
6
|
+
import type { FrontendServices } from "../services.js";
|
|
7
|
+
import type { ClassSymbolKey } from "./symbol-fields.js";
|
|
8
|
+
import type { HttpClientFnBinding } from "./lower-server.js";
|
|
1
9
|
import * as ts from "../ts7/adapter.js";
|
|
10
|
+
import { type UnionLiteral } from "../union-discriminants.js";
|
|
2
11
|
import type { ScrDiagnostic } from "../../diagnostics/diagnostic.js";
|
|
3
12
|
import { UNSUPPORTED } from "../../diagnostics/diagnostic.js";
|
|
4
13
|
import type { IrClassDef, IrExpr, IrFfiImport, IrFunction, IrGlobal, IrLocal, IrModule, IrParam, IrRecordShape, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/ir.js";
|
|
5
14
|
import { type DynamicImportResolution, type NpmBuiltinUse, type NpmLazyTrap } from "../npm.js";
|
|
6
15
|
import { type StartupCrash } from "../program.js";
|
|
7
16
|
import { ShapeRegistry, type TypeMapperCtx, UnionRegistry } from "../type-mapper.js";
|
|
8
|
-
import { CompoundOp, IslandFnEntry, BuiltinModuleFn } from "./surfaces.js";
|
|
9
|
-
import { FileParts } from "./lower-modules.js";
|
|
10
|
-
import { ClassInfo, ClassIteratorInfo, GenericClassInfo, findStaticOn } from "./lower-classes.js";
|
|
11
|
-
import { MixinFnShape } from "./lower-mixins.js";
|
|
12
|
-
import { ParamShape, FnSig, GenericFnInfo, GenericInstance } from "./lower-calls.js";
|
|
13
|
-
import { type EmitSpecCtx, type EmitSpecRequest } from "./lower-event-emitter.js";
|
|
14
|
-
import { FieldTarget } from "./lower-exprs.js";
|
|
15
|
-
import type {
|
|
17
|
+
import { type CompoundOp, type IslandFnEntry, type BuiltinModuleFn } from "./surfaces.js";
|
|
18
|
+
import { type FileParts } from "./lower-modules.js";
|
|
19
|
+
import { type ClassInfo, type ClassIteratorInfo, type GenericClassInfo, findStaticOn } from "./lower-classes.js";
|
|
20
|
+
import { type MixinFnShape } from "./lower-mixins.js";
|
|
21
|
+
import { type ParamShape, type FnSig, type GenericFnInfo, type GenericInstance } from "./lower-calls.js";
|
|
22
|
+
import { type ComputedEventPattern, type EmitSpecCtx, type EmitSpecRequest, type EventSig } from "./lower-event-emitter.js";
|
|
23
|
+
import { type FieldTarget } from "./lower-exprs.js";
|
|
24
|
+
import type { ExpandoMembers } from "./lower-expando.js";
|
|
16
25
|
/** Entry function name. '%' cannot appear in a TS identifier, so a user
|
|
17
26
|
* function can never collide with it (mangling is injective per prefix). */
|
|
18
27
|
export declare const ENTRY_NAME = "%main";
|
|
19
|
-
/** One step of the copy-reshape width relation (widthLiftPlan): how a
|
|
20
|
-
* source-typed value enters a destination slot. Pure data — the plan half;
|
|
21
|
-
* applyWidthLift is the build half. */
|
|
22
|
-
export type WidthLift = {
|
|
23
|
-
how: "copy";
|
|
24
|
-
} | {
|
|
25
|
-
how: "wrap";
|
|
26
|
-
tag: number;
|
|
27
|
-
} | {
|
|
28
|
-
how: "retag";
|
|
29
|
-
} | {
|
|
30
|
-
how: "liftWrap";
|
|
31
|
-
tag: number;
|
|
32
|
-
arm: IrType;
|
|
33
|
-
} | {
|
|
34
|
-
how: "width";
|
|
35
|
-
} | {
|
|
36
|
-
how: "arr";
|
|
37
|
-
} | {
|
|
38
|
-
how: "tupleArr";
|
|
39
|
-
} | {
|
|
40
|
-
how: "emptyArr";
|
|
41
|
-
} | {
|
|
42
|
-
how: "objWidth";
|
|
43
|
-
} | {
|
|
44
|
-
how: "clsWidth";
|
|
45
|
-
} | {
|
|
46
|
-
how: "narrow";
|
|
47
|
-
} | {
|
|
48
|
-
how: "dynIn";
|
|
49
|
-
} | {
|
|
50
|
-
how: "upcast";
|
|
51
|
-
} | {
|
|
52
|
-
how: "funcAdapt";
|
|
53
|
-
};
|
|
54
28
|
export declare class PoisonError extends Error {
|
|
55
29
|
}
|
|
56
30
|
/** A function-shaped value that exists only in the compiler's static
|
|
@@ -77,64 +51,6 @@ export type StaticCallableProjection = {
|
|
|
77
51
|
* NAMES user code can spell now that the real lib declares them; treating
|
|
78
52
|
* an inherited function as a table entry would mis-lower or ICE. */
|
|
79
53
|
export declare function own<T>(table: Record<string, T | undefined>, key: string): T | undefined;
|
|
80
|
-
/** Per-function lowering context. A stack of these models nested functions:
|
|
81
|
-
* identifier resolution walks outward, and a hit in an enclosing context
|
|
82
|
-
* turns into a capture (boxing the binding at its origin and threading it
|
|
83
|
-
* through every function in between). */
|
|
84
|
-
export interface FnCtx {
|
|
85
|
-
locals: IrLocal[];
|
|
86
|
-
scopes: Map<ts.Symbol, IrLocal>[];
|
|
87
|
-
localCounters: Map<string, number>;
|
|
88
|
-
/** Lifted functions only: capture entries (also present in `locals`,
|
|
89
|
-
* boxed), in closure caps[] order. undefined ⇔ plain declared function. */
|
|
90
|
-
captures: IrParam[] | null;
|
|
91
|
-
/** Parent-function localIds feeding each capture, parallel to captures. */
|
|
92
|
-
captureSources: string[];
|
|
93
|
-
captureBySymbol: Map<ts.Symbol, IrLocal>;
|
|
94
|
-
/** Named function expressions/declarations: the function's own name
|
|
95
|
-
* symbol. Self-references become `selfRef` (NOT a capture — a box holding
|
|
96
|
-
* its own closure would be an RC cycle and leak). */
|
|
97
|
-
selfSymbol: ts.Symbol | null;
|
|
98
|
-
selfType: IrType | null;
|
|
99
|
-
/** Await is legal here (async function body). */
|
|
100
|
-
isAsync?: boolean;
|
|
101
|
-
/** Yield is legal here (generator function body): the yield/next value
|
|
102
|
-
* channels the yield lowering types itself against. */
|
|
103
|
-
generator?: {
|
|
104
|
-
yieldT: IrType;
|
|
105
|
-
nextT: IrType;
|
|
106
|
-
resultType: IrType & {
|
|
107
|
-
kind: "record";
|
|
108
|
-
};
|
|
109
|
-
} | null;
|
|
110
|
-
/** VARIADIC `arguments` form (rest-marked func type with no declared
|
|
111
|
-
* rest param): the synthetic trailing dyn-array param `arguments`
|
|
112
|
-
* reads resolve to. */
|
|
113
|
-
argumentsLocal?: IrLocal | null;
|
|
114
|
-
/** Declared return type — lets `return` detect record-shape mismatches
|
|
115
|
-
* (SC2002) before the validator would ICE on them. */
|
|
116
|
-
returnType: IrType;
|
|
117
|
-
/** Implicit-any instance RETURN INFERENCE (resolveInferredReturn):
|
|
118
|
-
* present ⇔ `return` statements lower their values BARE (no coercion)
|
|
119
|
-
* and record themselves here; the post-pass unifies the types and wraps
|
|
120
|
-
* each return onto the settled one. `returnType` holds the DYN pin. */
|
|
121
|
-
inferReturn?: {
|
|
122
|
-
entries: {
|
|
123
|
-
stmt: IrStmt;
|
|
124
|
-
node: ts.Expression | null;
|
|
125
|
-
}[];
|
|
126
|
-
} | null;
|
|
127
|
-
/** Enclosing jump targets, innermost last. `labels` carries the source
|
|
128
|
-
* statement's JS label names so labeled break/continue resolve. Finally
|
|
129
|
-
* regions do not appear here: the backends route every abrupt completion
|
|
130
|
-
* through the cleanup regions it crosses. Per function, so a nested
|
|
131
|
-
* function's jumps never bind to enclosing constructs. */
|
|
132
|
-
ctl: {
|
|
133
|
-
kind: "loop" | "switch" | "block";
|
|
134
|
-
labels?: string[];
|
|
135
|
-
}[];
|
|
136
|
-
}
|
|
137
|
-
export declare function newFnCtx(lifted: boolean, selfSymbol: ts.Symbol | null, selfType: IrType | null, returnType: IrType): FnCtx;
|
|
138
54
|
export interface LowerStats {
|
|
139
55
|
/** Statements the lowerer attempted (nested statements count individually;
|
|
140
56
|
* statements inside a poisoned construct were never reached and don't). */
|
|
@@ -148,14 +64,12 @@ export interface LowerStats {
|
|
|
148
64
|
/** Functions whose signature couldn't be analyzed (bodies not counted). */
|
|
149
65
|
functionsSkipped: number;
|
|
150
66
|
}
|
|
151
|
-
/** True when a lowered statement's OWN expressions contain island
|
|
152
|
-
* constructs — a generic JSON walk (like moduleUsesRegex): `kind`
|
|
153
|
-
* discriminants live only on IR objects, so user string values can never
|
|
154
|
-
* false-positive. Nested statements are skipped (counted separately). */
|
|
155
67
|
/** Every identifier a binding name binds: the identifier itself, or all
|
|
156
68
|
* identifiers of a (possibly nested) destructuring pattern in source
|
|
157
69
|
* order. */
|
|
158
70
|
export declare function boundIdentifiersOf(name: ts.BindingName): ts.Identifier[];
|
|
71
|
+
/** Inspect executable children directly, without boxing the statement tree
|
|
72
|
+
* into checked-dynamic storage just to calculate coverage. */
|
|
159
73
|
export declare function stmtUsesIsland(stmts: IrStmt | IrStmt[]): boolean;
|
|
160
74
|
export interface LowerResult {
|
|
161
75
|
/** Present iff diagnostics is empty. */
|
|
@@ -190,6 +104,8 @@ export interface LowerResult {
|
|
|
190
104
|
npmLazyTraps?: NpmLazyTrap[];
|
|
191
105
|
}
|
|
192
106
|
export interface LowerOptions {
|
|
107
|
+
/** Parser/checker services owned by the load; required for npm graph analysis. */
|
|
108
|
+
frontendServices?: FrontendServices | undefined;
|
|
193
109
|
/** --dynamic: the island engine is linked, so island constructs
|
|
194
110
|
* (__island_eval) may lower. Off by default — without it they produce a
|
|
195
111
|
* requires-dynamic diagnostic instead. */
|
|
@@ -269,6 +185,7 @@ interface RuntimeFenceClosureTarget extends Omit<RuntimeFenceFunctionTarget, "ki
|
|
|
269
185
|
}
|
|
270
186
|
/** The Lowerer's pass configuration (see lowerToIr). */
|
|
271
187
|
export interface LowererMode {
|
|
188
|
+
frontendServices?: FrontendServices | undefined;
|
|
272
189
|
/** Names of bodies a prior reachability pass reached; null lowers everything. */
|
|
273
190
|
reachable?: ReadonlySet<string> | null;
|
|
274
191
|
/** Coverage remainder: lower ONLY bodies outside `reachable`, skip the
|
|
@@ -374,7 +291,7 @@ export declare function dynUndefinedExpr(loc: SrcLoc): IrExpr;
|
|
|
374
291
|
* symbol-to-string TypeError). kind 0 Error / 1 TypeError / 2 RangeError;
|
|
375
292
|
* an empty code means no code slot. `type` is the replaced expression's
|
|
376
293
|
* own (never materialized — the global.undefRead pattern). */
|
|
377
|
-
export declare function nodeThrowExpr(kind: 0 | 1 | 2, code: string, message: string, type: IrType, loc: SrcLoc): IrExpr;
|
|
294
|
+
export declare function nodeThrowExpr(kind: 0 | 1 | 2 | 5, code: string, message: string, type: IrType, loc: SrcLoc): IrExpr;
|
|
378
295
|
/** The post-validation fence STRING a validation-ladder Chk libCall
|
|
379
296
|
* throws after its Node-order checks pass: the same SC2020 text the
|
|
380
297
|
* per-statement runtime fence would have thrown (message + "[code at
|
|
@@ -421,6 +338,7 @@ export declare class Lowerer {
|
|
|
421
338
|
readonly entry: ts.SourceFile;
|
|
422
339
|
readonly moduleOrder: ts.SourceFile[];
|
|
423
340
|
readonly dynamic: boolean;
|
|
341
|
+
readonly frontendServices: FrontendServices | undefined;
|
|
424
342
|
readonly checker: ts.TypeChecker;
|
|
425
343
|
readonly diags: ScrDiagnostic[];
|
|
426
344
|
readonly fnSigsBySymbol: Map<ts.Symbol, FnSig>;
|
|
@@ -432,14 +350,14 @@ export declare class Lowerer {
|
|
|
432
350
|
/** Object-literal GENERIC methods (`{ m<T>(x: T) {...} }`), interned by
|
|
433
351
|
* their function-like node — instances ride the same monomorphization
|
|
434
352
|
* queue (objLitGenericFnInfoOf). */
|
|
435
|
-
readonly objLitGenericFns: Map<
|
|
353
|
+
readonly objLitGenericFns: Map<import("../ts7/ast-node.js").AstNode, GenericFnInfo>;
|
|
436
354
|
/** Generic arrow/function-expression INITIALIZERS of never-reassigned
|
|
437
355
|
* bindings (`const f = <T>(x: T) => x`), interned by the function-like
|
|
438
356
|
* node — registered in genericFnsBySymbol under the binding's symbol
|
|
439
357
|
* (and a named function expression's own inner name), so calls and
|
|
440
358
|
* pinned values resolve through genericFnOf exactly like top-level
|
|
441
359
|
* generic function declarations (bindingGenericFnInfoOf). */
|
|
442
|
-
readonly bindingGenericFns: Map<
|
|
360
|
+
readonly bindingGenericFns: Map<import("../ts7/ast-node.js").AstNode, GenericFnInfo>;
|
|
443
361
|
/** Per-symbol result of the never-reassigned file scan
|
|
444
362
|
* (bindingNeverReassigned — object-literal generic-method receivers). */
|
|
445
363
|
readonly neverReassignedCache: Map<ts.Symbol, boolean>;
|
|
@@ -469,7 +387,7 @@ export declare class Lowerer {
|
|
|
469
387
|
/** IMPLICIT-ANY function-value bindings (npm-static JS — `const knownBy
|
|
470
388
|
* = (cmd) => ...`), by their VariableDeclaration: the registered info,
|
|
471
389
|
* or null for probed non-qualifiers (implicitLocalFnNodeOf). */
|
|
472
|
-
readonly implicitLocalFns: Map<
|
|
390
|
+
readonly implicitLocalFns: Map<import("../ts7/ast-node.js").AstNode, GenericFnInfo | null>;
|
|
473
391
|
/** Monomorphization worklist: instances queued by call sites, drained in
|
|
474
392
|
* run() (processing an instance body can queue more). */
|
|
475
393
|
readonly instantiationQueue: {
|
|
@@ -499,6 +417,10 @@ export declare class Lowerer {
|
|
|
499
417
|
/** Non-null while an instance body lowers: type-parameter symbol →
|
|
500
418
|
* concrete IR type, consulted inside mapType's recursion. */
|
|
501
419
|
typeParamBindings: Map<ts.Symbol, IrType> | null;
|
|
420
|
+
localClassInstantiations: {
|
|
421
|
+
owner: ts.FunctionLikeDeclaration;
|
|
422
|
+
name: string;
|
|
423
|
+
}[];
|
|
502
424
|
/** The ts-level twin of typeParamBindings, non-null while a CALL-keyed
|
|
503
425
|
* instance body lowers: type-parameter symbol → the bound CHECKER type,
|
|
504
426
|
* consulted where the mapped IrType has already widened away information
|
|
@@ -523,10 +445,23 @@ export declare class Lowerer {
|
|
|
523
445
|
* aliases, so this carries the var/let form the checker cannot.
|
|
524
446
|
* Scoped strictly by narrowingAliases (lowerIf / lowerCondition). */
|
|
525
447
|
readonly aliasNarrowTypes: Map<ts.Symbol, ts.Type>;
|
|
448
|
+
/** These caches belong to this lowering pass. The program already owns
|
|
449
|
+
* their symbol/node keys; no module-level cache should retain a pass. */
|
|
450
|
+
readonly classSymbolKeys: Map<ts.Symbol, ClassSymbolKey | null>;
|
|
451
|
+
readonly registeredClassSymbols: Map<string, ts.Symbol>;
|
|
452
|
+
readonly httpClientFnBindings: Map<ts.Symbol, HttpClientFnBinding>;
|
|
453
|
+
streamPropMutatedSyms: Set<ts.Symbol> | null;
|
|
454
|
+
requestInitPropMutatedSyms: Set<ts.Symbol> | null;
|
|
455
|
+
emitterEventTable: Map<string, EventSig> | null;
|
|
456
|
+
emitterComputedPatterns: ComputedEventPattern[];
|
|
526
457
|
/** Locals widened beyond the checker's type because an inferred indexed
|
|
527
458
|
* read can be absent at runtime. Bare reads preserve that union until a
|
|
528
459
|
* surrounding JavaScript guard/default consumes it. */
|
|
529
|
-
readonly runtimeOptionalLocals:
|
|
460
|
+
readonly runtimeOptionalLocals: RuntimeOptionalLocals;
|
|
461
|
+
/** An effectful switch test can change the original binding after the
|
|
462
|
+
* discriminant was captured. A case match narrows the captured value,
|
|
463
|
+
* not that mutable binding; preserve its tagged representation on reads. */
|
|
464
|
+
readonly unstableSwitchBindings: Set<ts.Symbol>;
|
|
530
465
|
/** All storage slots widened for runtime absence, including slots whose
|
|
531
466
|
* current control-flow branch has temporarily narrowed the value. */
|
|
532
467
|
readonly runtimeOptionalStorageLocals: Set<IrLocal>;
|
|
@@ -545,18 +480,21 @@ export declare class Lowerer {
|
|
|
545
480
|
readonly runtimeOptionalBindingTypes: Map<ts.Symbol, IrType>;
|
|
546
481
|
/** Concise callback/lambda returns promoted by the HOF callback prepass;
|
|
547
482
|
* arrows have no declaration symbol to key in fnSigsBySymbol. */
|
|
548
|
-
readonly runtimeOptionalFunctionReturns:
|
|
483
|
+
readonly runtimeOptionalFunctionReturns: Map<import("../ts7/ast-node.js").AstNode, IrType>;
|
|
484
|
+
/** Intrinsic callback slots can supply a destination for fresh return
|
|
485
|
+
* literals, such as a reduce accumulator with recursive union fields. */
|
|
486
|
+
readonly contextualFunctionReturns: Map<import("../ts7/ast-node.js").AstNode, IrType>;
|
|
549
487
|
/** Arithmetic over an unchecked string read can answer either NaN or a
|
|
550
488
|
* string. Bindings and returns use this marker to retain that result union
|
|
551
489
|
* through checker-bare string annotations. */
|
|
552
|
-
readonly runtimeOptionalArithmeticTypes:
|
|
490
|
+
readonly runtimeOptionalArithmeticTypes: Map<import("../ts7/ast-node.js").AstNode, IrType>;
|
|
553
491
|
/** Record fields promoted to an undefined-armed union by an indexed-read
|
|
554
492
|
* value. The key is the concrete emitted shape and field name. */
|
|
555
493
|
readonly runtimeOptionalFields: Set<string>;
|
|
556
494
|
/** Callback pattern parameters carry an optional source without making
|
|
557
495
|
* every name destructured from a present source optional. */
|
|
558
|
-
readonly runtimeOptionalPatternTypes:
|
|
559
|
-
readonly runtimeOptionalReduceTypes:
|
|
496
|
+
readonly runtimeOptionalPatternTypes: Map<import("../ts7/ast-node.js").AstNode, IrType>;
|
|
497
|
+
readonly runtimeOptionalReduceTypes: Map<ts.CallExpression, IrType>;
|
|
560
498
|
/** Capture entries and their origin share one mutable box. Normalize each
|
|
561
499
|
* entry to the origin so writes and flow proofs stay synchronized. */
|
|
562
500
|
readonly runtimeOptionalRoots: Map<IrLocal, IrLocal>;
|
|
@@ -651,6 +589,15 @@ export declare class Lowerer {
|
|
|
651
589
|
/** Union re-tag helpers (%union.retag.N), interned per (from, to)
|
|
652
590
|
* unionId pair — see unionRetagHelper. */
|
|
653
591
|
readonly retagHelpers: Map<string, string>;
|
|
592
|
+
/** Copy-only routes depend on the two union contracts and discriminator
|
|
593
|
+
* layouts, without recursive width assumptions or evolving class members. */
|
|
594
|
+
private readonly copyRetagHelpers;
|
|
595
|
+
private readonly unionLiteralOwners;
|
|
596
|
+
private readonly strippedUndefinedArms;
|
|
597
|
+
private readonly stdlibSymbols;
|
|
598
|
+
/** Method adapter names are owned by class-method-values. Looking them
|
|
599
|
+
* up must not scan and retain every unrelated lifted function. */
|
|
600
|
+
readonly classMethodValueHelpers: Set<string>;
|
|
654
601
|
/** Callee names of every interned coercion helper whose CALL mints a
|
|
655
602
|
* FRESH closure per evaluation (%fn.width.*, %fn.adapt.*,
|
|
656
603
|
* %fnval.spawnres.*). Registered at the mint site — NOT recovered by
|
|
@@ -669,7 +616,7 @@ export declare class Lowerer {
|
|
|
669
616
|
/** CJS export-table ACCESSORS (`module.exports = { get path() {...} }`),
|
|
670
617
|
* lifted lazily as module-level functions and interned per accessor
|
|
671
618
|
* declaration: member reads call the getter (lower-exprs). */
|
|
672
|
-
readonly cjsAccessorFns: Map<
|
|
619
|
+
readonly cjsAccessorFns: Map<import("../ts7/ast-node.js").AstNode, {
|
|
673
620
|
fnName: string;
|
|
674
621
|
type: IrType & {
|
|
675
622
|
kind: "func";
|
|
@@ -712,9 +659,9 @@ export declare class Lowerer {
|
|
|
712
659
|
* of re-lowering, its checker type reads non-nullish (typeOf), and the
|
|
713
660
|
* node carrying the ?. token is marked handled so the receiver-typed
|
|
714
661
|
* lowerings stop declining it (chainBlocked). */
|
|
715
|
-
readonly chainRecvByNode: Map<
|
|
716
|
-
readonly chainNarrowedType: Map<
|
|
717
|
-
readonly chainHandled: Set<
|
|
662
|
+
readonly chainRecvByNode: Map<import("../ts7/ast-node.js").AstNode, IrExpr>;
|
|
663
|
+
readonly chainNarrowedType: Map<import("../ts7/ast-node.js").AstNode, ts.Type>;
|
|
664
|
+
readonly chainHandled: Set<import("../ts7/ast-node.js").AstNode>;
|
|
718
665
|
/** for-of-over-matchAll bindings whose `.index` reads the companion-index
|
|
719
666
|
* array: binding SYMBOL → the hidden number[] of match start indices plus
|
|
720
667
|
* the hidden cursor holding THIS iteration's position (registered while
|
|
@@ -752,6 +699,15 @@ export declare class Lowerer {
|
|
|
752
699
|
/** Keyed by program-wide qualified class name (what IR object types carry). */
|
|
753
700
|
readonly classes: Map<string, ClassInfo>;
|
|
754
701
|
readonly classBySymbol: Map<ts.Symbol, ClassInfo>;
|
|
702
|
+
/** Named method slots observed before class collection need a callable
|
|
703
|
+
* ABI and shared prototype descriptors instead of call-site specialization. */
|
|
704
|
+
readonly prototypeMethodAccesses: Map<string, import("../ts7/ast-node.js").AstNode>;
|
|
705
|
+
/** Inferred JS methods participating in an override chain keep a vtable
|
|
706
|
+
* ABI instead of call-site specialization. Filled before class collection. */
|
|
707
|
+
readonly virtualJsMethods: Set<ts.MethodDeclaration>;
|
|
708
|
+
/** Largest fixed argument list below a JS method, discovered before any
|
|
709
|
+
* base vtable signature is collected. Unused checked slots carry undefined. */
|
|
710
|
+
readonly virtualJsMethodArity: Map<ts.MethodDeclaration, number>;
|
|
755
711
|
/** The class whose members are lowering — `super` binds lexically to it
|
|
756
712
|
* (arrows inside methods lower within this window, so they see it too). */
|
|
757
713
|
currentClass: ClassInfo | null;
|
|
@@ -760,12 +716,12 @@ export declare class Lowerer {
|
|
|
760
716
|
* or callable const): per function symbol, each written member's module
|
|
761
717
|
* global — string keys for spelled/folded names, ts.Symbols for
|
|
762
718
|
* unique-symbol keys (lower-expando.ts). */
|
|
763
|
-
readonly expandoMembers: Map<ts.Symbol,
|
|
719
|
+
readonly expandoMembers: Map<ts.Symbol, ExpandoMembers>;
|
|
764
720
|
/** CJS export globals ALSO key by their declaration NODE: the checker
|
|
765
721
|
* hands importers a distinct (late-bound) symbol for `module.exports`
|
|
766
722
|
* property exports — different object, same declaration — so globalOf
|
|
767
723
|
* falls back through the shared node (collectGlobals registers both). */
|
|
768
|
-
readonly globalsByDeclNode: Map<
|
|
724
|
+
readonly globalsByDeclNode: Map<import("../ts7/ast-node.js").AstNode, IrGlobal>;
|
|
769
725
|
readonly globalsList: IrGlobal[];
|
|
770
726
|
/** npm-import init statements (--dynamic), keyed by file AND import
|
|
771
727
|
* declaration: the island.import assignments/side-effect loads for that
|
|
@@ -807,6 +763,7 @@ export declare class Lowerer {
|
|
|
807
763
|
* engine handle (a dynamic import's namespace object) — paramShape's
|
|
808
764
|
* early-out. */
|
|
809
765
|
readonly jsvalParamOverrides: Set<ts.ParameterDeclaration>;
|
|
766
|
+
readonly checkedCallbackParams: Set<ts.ParameterDeclaration>;
|
|
810
767
|
/** Inline Promise.then parameters whose contextual type is a builtin
|
|
811
768
|
* module namespace anonymous object. The settled native token is the
|
|
812
769
|
* ABI truth even when the checker type has no stable module symbol. */
|
|
@@ -827,7 +784,7 @@ export declare class Lowerer {
|
|
|
827
784
|
* non-instantiated one (its only value members are import= aliases,
|
|
828
785
|
* still resolved statically). Ambient blocks never register — their
|
|
829
786
|
* members keep the ReferenceError/fence paths (lower-namespaces.ts). */
|
|
830
|
-
readonly nsBlocks: Map<
|
|
787
|
+
readonly nsBlocks: Map<import("../ts7/ast-node.js").AstNode, "flattened" | "typeOnly">;
|
|
831
788
|
/** File → its %init function name, filled by prepareModuleInits before
|
|
832
789
|
* any body lowers: import headers and inline require statements call
|
|
833
790
|
* dependency inits by these names. */
|
|
@@ -894,7 +851,13 @@ export declare class Lowerer {
|
|
|
894
851
|
onEdge: ((name: string) => void) | null;
|
|
895
852
|
fnStack: FnCtx[];
|
|
896
853
|
readonly liftedFns: IrFunction[];
|
|
854
|
+
/** One Error-method helper belongs to this lowering session. Its cached
|
|
855
|
+
* dispatch revision needs no weak-key identity or process-global state. */
|
|
856
|
+
errorMethodDispatchRevision: string | null;
|
|
857
|
+
errorPropertyDispatchRevision: string | null;
|
|
897
858
|
lambdaCounter: number;
|
|
859
|
+
readonly preparedClassFactories: Map<ts.ArrowFunction | ts.FunctionExpression, IrExpr>;
|
|
860
|
+
readonly preparingClassFactories: Set<ts.ArrowFunction | ts.FunctionExpression>;
|
|
898
861
|
/** Statement lists currently mid-lowering, innermost last: the forward-
|
|
899
862
|
* capture machinery needs to know which later statements of an OPEN list
|
|
900
863
|
* a symbol's declaration sits in, which scope frame list-level declarations
|
|
@@ -907,20 +870,6 @@ export declare class Lowerer {
|
|
|
907
870
|
frame: Map<ts.Symbol, IrLocal>;
|
|
908
871
|
out: IrStmt[];
|
|
909
872
|
}[];
|
|
910
|
-
/** Forward-captured consts pre-declared as TDZ boxes, keyed by symbol:
|
|
911
|
-
* lowerVarDecl consumes the entry when the source declaration arrives and
|
|
912
|
-
* emits the initializing `assign` instead of a fresh declaration. */
|
|
913
|
-
readonly tdzPredeclared: Map<ts.Symbol, IrLocal>;
|
|
914
|
-
/** Nested function DECLARATIONS lowered eagerly by the forward-hoisting
|
|
915
|
-
* machinery (predeclareForwardFnDecl — a reference above the declaration
|
|
916
|
-
* in the same function, JS's function hoisting): the statement loop skips
|
|
917
|
-
* the source statement when it arrives. */
|
|
918
|
-
readonly hoistedFnDecls: Set<ts.FunctionDeclaration>;
|
|
919
|
-
/** `var` bindings hoisted to their function root (hoistVarBinding), keyed
|
|
920
|
-
* by the checker's merged symbol — every same-name `var` in one function
|
|
921
|
-
* is one symbol, so one slot. Module-scope vars live in globalsBySymbol
|
|
922
|
-
* instead. */
|
|
923
|
-
readonly hoistedVars: Map<ts.Symbol, IrLocal>;
|
|
924
873
|
/** Per-file `var` module globals whose type carries an undefined arm:
|
|
925
874
|
* lowerFileInit assigns them the interned undefined right after the
|
|
926
875
|
* run-once guard — JS hoists module vars to `undefined` at entry, so a
|
|
@@ -1148,15 +1097,6 @@ export declare class Lowerer {
|
|
|
1148
1097
|
/** Final retention, pruning, and module assembly shared by ordinary emit
|
|
1149
1098
|
* and the retained reachability worklist. */
|
|
1150
1099
|
finishModule(functions: IrFunction[]): LowerResult;
|
|
1151
|
-
/** The unregistered-class type sweep (run()'s last step before the
|
|
1152
|
-
* module assembles): every `{kind:"object"}` TYPE naming a class with
|
|
1153
|
-
* no registered ClassInfo is rewritten IN PLACE to the f64 dummy.
|
|
1154
|
-
* classval types are exempt (they emit the class-independent
|
|
1155
|
-
* `ScrClassObj *` — inert-but-valid storage, the validator's own
|
|
1156
|
-
* stance), and only type objects rewrite — node-level classNames
|
|
1157
|
-
* (`new`, upcasts) cannot reach here (their lowerings fence without a
|
|
1158
|
-
* registered class), so the validator still backstops those. */
|
|
1159
|
-
sanitizeUnregisteredClassTypes(roots: unknown[]): void;
|
|
1160
1100
|
/** True when `t` (recursively) names a class instance type with no
|
|
1161
1101
|
* registered ClassInfo — the shape of a JS class whose collection fenced.
|
|
1162
1102
|
* Used by run()'s global pruning; shapes/unions recurse with a seen-set
|
|
@@ -1247,8 +1187,9 @@ export declare class Lowerer {
|
|
|
1247
1187
|
fenceStaticReadableStreamMember(access: ts.PropertyAccessExpression | ts.ElementAccessExpression, use: "read" | "call"): IrExpr | null;
|
|
1248
1188
|
typeOf(node: ts.Node): ts.Type;
|
|
1249
1189
|
/** mapType with this Lowerer's registries and (while a generic instance
|
|
1250
|
-
* body lowers) type-parameter bindings threaded through.
|
|
1251
|
-
|
|
1190
|
+
* body lowers) type-parameter bindings threaded through. A supplied mapper
|
|
1191
|
+
* retains interface-view substitutions while sharing ABI normalization. */
|
|
1192
|
+
mapTypeOf(t: ts.Type, mapper?: (type: ts.Type) => IrType | null): IrType | null;
|
|
1252
1193
|
/** The one position where a contextual UNION must not be adopted over the
|
|
1253
1194
|
* expression's own: the LEFT operand of `&&`, `||`, or `??`. Adopting a
|
|
1254
1195
|
* contextual union is normally safe because tsc proved the value
|
|
@@ -1353,6 +1294,11 @@ export declare class Lowerer {
|
|
|
1353
1294
|
* this is THE tag for that (union, arm) pair program-wide — every wrap,
|
|
1354
1295
|
* narrow, and tag test agrees by construction. */
|
|
1355
1296
|
armTag(unionId: string, arm: IrType): number;
|
|
1297
|
+
/** Literal ownership depends only on the union contract and record layouts.
|
|
1298
|
+
* Recheck it when recursive placeholders close, not for every literal. */
|
|
1299
|
+
literalUnionArm(unionId: string, values: readonly UnionLiteral[]): (IrType & {
|
|
1300
|
+
kind: "record";
|
|
1301
|
+
}) | null;
|
|
1356
1302
|
/** Implicit union construction. Wherever a value flows into a typed slot
|
|
1357
1303
|
* (initializer, assignment, call argument, return, field write, record
|
|
1358
1304
|
* literal field, ternary arm) whose expected type is a union and the
|
|
@@ -1381,9 +1327,11 @@ export declare class Lowerer {
|
|
|
1381
1327
|
* before any helper exists. The cases, in order:
|
|
1382
1328
|
* copy — exact same type (typeEquals), the field/element moves as is
|
|
1383
1329
|
* retag — union into union, every arm mapped (unionRetagMappable —
|
|
1384
|
-
* identity arms
|
|
1385
|
-
*
|
|
1330
|
+
* identity arms and compatible payload conversions; a shared
|
|
1331
|
+
* discriminant may select different record destinations)
|
|
1386
1332
|
* wrap — a non-unit arm value into a union that contains it
|
|
1333
|
+
* discriminantWrap — identical recursive layouts distinguished by
|
|
1334
|
+
* their literal field value rather than their storage id
|
|
1387
1335
|
* liftWrap — a record/array value into a union with NO identical arm
|
|
1388
1336
|
* but exactly ONE arm it width-lifts into (the findRoute
|
|
1389
1337
|
* rule applied at every level; several candidates are
|
|
@@ -1409,6 +1357,13 @@ export declare class Lowerer {
|
|
|
1409
1357
|
* lift needs (planned first, so the interns cannot fail — a failure here
|
|
1410
1358
|
* is a lowerer bug, not a user diagnostic). */
|
|
1411
1359
|
applyWidthLift(lift: WidthLift, value: IrExpr, dst: IrType, loc: SrcLoc): IrExpr;
|
|
1360
|
+
/** Dispatch a structural copy from its runtime union tag. Each record
|
|
1361
|
+
* payload has its own field offsets and optional-field completions;
|
|
1362
|
+
* interpreting all arms as the destination layout would corrupt memory.
|
|
1363
|
+
* Intern before descending so recursive record unions can reuse it. */
|
|
1364
|
+
unionRecordWidthHelper(fromId: string, target: IrType & {
|
|
1365
|
+
kind: "record";
|
|
1366
|
+
}, loc: SrcLoc): string;
|
|
1412
1367
|
/** Interned `%rec.width.<n>(r)` — builds the target shape from a source
|
|
1413
1368
|
* record by copying fields: every target field must exist on the source
|
|
1414
1369
|
* with the EXACT same type, or with a type that LIFTS under
|
|
@@ -1612,28 +1567,9 @@ export declare class Lowerer {
|
|
|
1612
1567
|
}, toT: IrType & {
|
|
1613
1568
|
kind: "func";
|
|
1614
1569
|
}, loc: SrcLoc): string | null;
|
|
1615
|
-
/**
|
|
1616
|
-
*
|
|
1617
|
-
*
|
|
1618
|
-
* (unionNarrow + unionWrap — the payload pointer moves, no copy, so
|
|
1619
|
-
* ref-arm identity is preserved across the re-tag). Arms map by
|
|
1620
|
-
* canonical type (typeEquals): every non-unit source arm must exist in
|
|
1621
|
-
* the destination, or the pair isn't mappable (null — the caller keeps
|
|
1622
|
-
* the SC2003 fence). A stranded UNIT arm (undefined/null with no
|
|
1623
|
-
* destination arm) is different: it means tsc's picture at the site was
|
|
1624
|
-
* NARROWER than the IR type — control-flow narrowing to a sub-union, or
|
|
1625
|
-
* a non-null assertion, both of which erase at lowering — so the arm is
|
|
1626
|
-
* exactly the possibility the checker proved (or the source asserted)
|
|
1627
|
-
* away. It compiles to a runtime trap case throwing a catchable
|
|
1628
|
-
* TypeError-shaped string, the lying-cast stance (SEMANTICS.md): sound
|
|
1629
|
-
* narrowing never reaches it, a lying `!` throws instead of smuggling
|
|
1630
|
-
* an unrepresentable unit into the destination. */
|
|
1631
|
-
/** True when unionRetagHelper can bridge the pair — every non-unit
|
|
1632
|
-
* source arm exists (typeEquals) in the destination, or width-lifts
|
|
1633
|
-
* into exactly one destination arm (widthLiftPlan — record and array
|
|
1634
|
-
* arms compose the re-tag with the per-arm reshape). Pure: callers that
|
|
1635
|
-
* must validate a WHOLE plan before interning anything (recordWidthHelper)
|
|
1636
|
-
* probe with this so a failed later field never orphans a helper. */
|
|
1570
|
+
/** Validate the complete union conversion before interning helpers.
|
|
1571
|
+
* Recursive width plans close through the same in-progress pair guard;
|
|
1572
|
+
* no optimistic result is memoized after that planning stack unwinds. */
|
|
1637
1573
|
unionRetagMappable(fromId: string, toId: string): boolean;
|
|
1638
1574
|
/** A checker-NARROWED union flowing into a different union: `typeof r
|
|
1639
1575
|
* === "string" || Buffer.isBuffer(r)` proves the record arm of r away,
|
|
@@ -1670,6 +1606,9 @@ export declare class Lowerer {
|
|
|
1670
1606
|
strandedCoercionTrap(expr: IrExpr, expected: IrType & {
|
|
1671
1607
|
kind: "union";
|
|
1672
1608
|
}, loc: SrcLoc): IrExpr | null;
|
|
1609
|
+
recordUnionWrapHelper(source: IrType & {
|
|
1610
|
+
kind: "record";
|
|
1611
|
+
}, toId: string, loc: SrcLoc): string | null;
|
|
1673
1612
|
unionRetagHelper(fromId: string, toId: string, loc: SrcLoc, trappable?: ReadonlySet<number>): string | null;
|
|
1674
1613
|
/** Interned `%union.narrow.<n>(u)` — the CHECKED single-arm extraction
|
|
1675
1614
|
* behind `x!` on union values: the asserted arm's payload comes out
|
|
@@ -1753,13 +1692,16 @@ export declare class Lowerer {
|
|
|
1753
1692
|
* `var` read before its unit-initialized statement holds undefined —
|
|
1754
1693
|
* also a unit — so the mixed case reports both names. */
|
|
1755
1694
|
provenUnitAnyOf(node: ts.Node, value: IrExpr): string | null;
|
|
1756
|
-
/**
|
|
1757
|
-
*
|
|
1758
|
-
*
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
*
|
|
1695
|
+
/** A key conversion may rebox or upcast a reference, but must never copy
|
|
1696
|
+
* its referent. Apply the ordinary checked narrowing to absent arms from
|
|
1697
|
+
* runtime-optional reads; only present reference arms participate here. */
|
|
1698
|
+
lowerCollectionKey(node: ts.Expression, expected: IrType): IrExpr;
|
|
1699
|
+
/** Lower for a known destination, then apply ordinary value coercion.
|
|
1700
|
+
* Fresh arrays and records use the destination layout directly. */
|
|
1762
1701
|
lowerExprExpecting(node: ts.Expression, expected: IrType | undefined): IrExpr;
|
|
1702
|
+
/** An unannotated empty collection has no existing elements or aliases
|
|
1703
|
+
* that constrain its layout. An explicit type argument still wins. */
|
|
1704
|
+
emptyCollectionFor(node: ts.Expression, expected: IrType): IrExpr | null;
|
|
1763
1705
|
/** A value flowing into an index-signature VALUE slot (an overflow
|
|
1764
1706
|
* literal entry, a dynamic-keyed record write). dyn slots (`unknown`
|
|
1765
1707
|
* signatures — ModelPricing's) take a dyn conversion: dyn values pass
|
|
@@ -1876,8 +1818,8 @@ export declare class Lowerer {
|
|
|
1876
1818
|
context: string;
|
|
1877
1819
|
ordinal: number;
|
|
1878
1820
|
}): void;
|
|
1879
|
-
lowerClassExpressionInfo(expr: ts.
|
|
1880
|
-
lowerClassExpression(expr: ts.
|
|
1821
|
+
lowerClassExpressionInfo(expr: ts.ClassLikeDeclaration): ClassInfo;
|
|
1822
|
+
lowerClassExpression(expr: ts.ClassLikeDeclaration): IrExpr;
|
|
1881
1823
|
findMethodOn(info: ClassInfo | null, name: string): {
|
|
1882
1824
|
declarer: ClassInfo;
|
|
1883
1825
|
sig: {
|
|
@@ -1885,6 +1827,7 @@ export declare class Lowerer {
|
|
|
1885
1827
|
ret: IrType;
|
|
1886
1828
|
abstract?: true;
|
|
1887
1829
|
async?: true;
|
|
1830
|
+
gen?: NonNullable<IrFunction["generator"]>;
|
|
1888
1831
|
};
|
|
1889
1832
|
} | null;
|
|
1890
1833
|
isSubclassOf(sub: string, sup: string): boolean;
|
|
@@ -1900,15 +1843,20 @@ export declare class Lowerer {
|
|
|
1900
1843
|
* members ride fp.classDecls; expressions register only when their
|
|
1901
1844
|
* containing statement lowers). */
|
|
1902
1845
|
readonly exprClasses: ClassInfo[];
|
|
1903
|
-
readonly
|
|
1846
|
+
readonly exprClassInfoByName: Map<string, ClassInfo>;
|
|
1904
1847
|
/** Class expressions whose collection is IN FLIGHT — the reentrancy
|
|
1905
1848
|
* guard for heritage-demanded collection (lowerClassExpressionInfo). */
|
|
1906
|
-
readonly collectingExprClasses: Set<ts.
|
|
1849
|
+
readonly collectingExprClasses: Set<ts.ClassLikeDeclaration>;
|
|
1907
1850
|
/** Static-init statements of class expressions inside the statement
|
|
1908
1851
|
* currently lowering — lowerFileInit drains the buffer immediately
|
|
1909
1852
|
* BEFORE that statement (JS's order for the supported whole-initializer
|
|
1910
1853
|
* positions). */
|
|
1911
1854
|
readonly pendingClassExprInits: IrStmt[];
|
|
1855
|
+
readonly computedClassBases: Map<string, {
|
|
1856
|
+
value: IrExpr;
|
|
1857
|
+
classInfo: ClassInfo;
|
|
1858
|
+
}>;
|
|
1859
|
+
readonly computedCallableBases: Map<ts.ClassLikeDeclaration, IrExpr>;
|
|
1912
1860
|
/** Discovery hook: registers a just-collected expression class's member
|
|
1913
1861
|
* bodies as worklist units (the units map is otherwise built before
|
|
1914
1862
|
* lowering starts). Null in the emit pass. */
|
|
@@ -1916,7 +1864,7 @@ export declare class Lowerer {
|
|
|
1916
1864
|
/** Mixin functions (`(Base: T) => class extends Base {…}`) by their
|
|
1917
1865
|
* function-like node: recognized shape, or null for checked
|
|
1918
1866
|
* non-qualifiers (lower-mixins.ts). */
|
|
1919
|
-
readonly mixinFnShapes: Map<
|
|
1867
|
+
readonly mixinFnShapes: Map<import("../ts7/ast-node.js").AstNode, MixinFnShape | null>;
|
|
1920
1868
|
/** Mixin instantiations by CALL SITE (one class per once-evaluated call
|
|
1921
1869
|
* — the class-expression identity rule); null marks a poisoned
|
|
1922
1870
|
* instantiation so re-demands fence instead of half-collecting. */
|
|
@@ -1955,7 +1903,7 @@ export declare class Lowerer {
|
|
|
1955
1903
|
* onExprClassCollected should instantiations ever need eager
|
|
1956
1904
|
* registration. */
|
|
1957
1905
|
onLateClassCollected: ((info: ClassInfo) => void) | null;
|
|
1958
|
-
genericClassInstanceType(decl: ts.ClassLikeDeclaration, ref: ts.Type): IrType | null;
|
|
1906
|
+
genericClassInstanceType(decl: ts.ClassLikeDeclaration, ref: ts.Type, mapArgument?: (type: ts.Type) => IrType | null): IrType | null;
|
|
1959
1907
|
findStaticOn(info: ClassInfo | null, name: string): ReturnType<typeof findStaticOn>;
|
|
1960
1908
|
staticShadowBelow(info: ClassInfo, name: string): boolean;
|
|
1961
1909
|
ctorAbiEquals(sub: ClassInfo, sup: ClassInfo): boolean;
|
|
@@ -1974,8 +1922,8 @@ export declare class Lowerer {
|
|
|
1974
1922
|
fieldInitStmts(info: ClassInfo, thisLocal: IrLocal): IrStmt[];
|
|
1975
1923
|
lowerDerivedCtorBody(info: ClassInfo, thisLocal: IrLocal, forward?: IrExpr[]): IrStmt[];
|
|
1976
1924
|
superCallStmt(info: ClassInfo, thisLocal: IrLocal, args: IrExpr[], loc: SrcLoc): IrStmt;
|
|
1977
|
-
/** Declares the
|
|
1978
|
-
*
|
|
1925
|
+
/** Declares the this parameter in the function's dedicated binding slot.
|
|
1926
|
+
* Arrow captures use the same boxing and threading as named bindings. */
|
|
1979
1927
|
declareThis(type: IrType): IrLocal;
|
|
1980
1928
|
lowerFunction(decl: ts.FunctionDeclaration): IrFunction | null;
|
|
1981
1929
|
collectGlobals(sf: ts.SourceFile, topStmts: ts.Statement[]): void;
|
|
@@ -2008,7 +1956,7 @@ export declare class Lowerer {
|
|
|
2008
1956
|
};
|
|
2009
1957
|
/** The binding for `symbol` inside context `ctx` — a scoped local or an
|
|
2010
1958
|
* already-threaded capture entry. */
|
|
2011
|
-
bindingIn(ctx: FnCtx, symbol: ts.Symbol): IrLocal | null;
|
|
1959
|
+
bindingIn(ctx: FnCtx, symbol: ts.Symbol | undefined): IrLocal | null;
|
|
2012
1960
|
/** Resolves an identifier to a local of the CURRENT function, creating
|
|
2013
1961
|
* capture entries (and boxing the origin binding) when the name lives in
|
|
2014
1962
|
* an enclosing function. Self-references of a named lambda are NOT
|
|
@@ -2026,7 +1974,7 @@ export declare class Lowerer {
|
|
|
2026
1974
|
* the REAL lowering path still resolves (and diagnoses) the reference
|
|
2027
1975
|
* itself. */
|
|
2028
1976
|
peekLocal(ident: ts.Identifier): IrLocal | null;
|
|
2029
|
-
resolveKey(symbol: ts.Symbol, blame?: ts.Node): IrLocal | null;
|
|
1977
|
+
resolveKey(symbol: ts.Symbol | undefined, blame?: ts.Node): IrLocal | null;
|
|
2030
1978
|
isSelfReference(ident: ts.Identifier): boolean;
|
|
2031
1979
|
lowerStmts(stmts: readonly ts.Statement[]): IrStmt[];
|
|
2032
1980
|
noteBlockedBindings(stmt: ts.Statement): void;
|
|
@@ -2100,7 +2048,9 @@ export declare class Lowerer {
|
|
|
2100
2048
|
}) | (IrType & {
|
|
2101
2049
|
kind: "record";
|
|
2102
2050
|
})): IrExpr;
|
|
2103
|
-
lowerObjectLiteral(expr: ts.ObjectLiteralExpression
|
|
2051
|
+
lowerObjectLiteral(expr: ts.ObjectLiteralExpression, expected?: IrType & {
|
|
2052
|
+
kind: "record";
|
|
2053
|
+
}): IrExpr;
|
|
2104
2054
|
lowerShorthandValue(prop: ts.ShorthandPropertyAssignment): IrExpr;
|
|
2105
2055
|
rejectThisInObjectMethod(node: ts.Node): void;
|
|
2106
2056
|
lowerElementAccess(expr: ts.ElementAccessExpression): IrExpr;
|
|
@@ -2117,7 +2067,7 @@ export declare class Lowerer {
|
|
|
2117
2067
|
caughtToString(node: ts.Expression): IrExpr | null;
|
|
2118
2068
|
lowerInstanceOf(expr: ts.BinaryExpression, loc: SrcLoc): IrExpr;
|
|
2119
2069
|
private withRuntimeOptionalClassValue;
|
|
2120
|
-
|
|
2070
|
+
withExpressionOverride<T>(node: ts.Expression, value: IrExpr, lower: () => T): T;
|
|
2121
2071
|
lowerCall(expr: ts.CallExpression): IrExpr;
|
|
2122
2072
|
isTopLevelFnSymbol(ident: ts.Identifier): boolean;
|
|
2123
2073
|
lowerNestedFunctionDecl(stmt: ts.FunctionDeclaration): IrStmt;
|
|
@@ -2164,7 +2114,7 @@ export declare class Lowerer {
|
|
|
2164
2114
|
fieldGetExpr(target: FieldTarget, loc: SrcLoc, blame: ts.Node): IrExpr;
|
|
2165
2115
|
fieldSetStmt(target: FieldTarget, value: IrExpr, loc: SrcLoc, blame: ts.Node): IrStmt;
|
|
2166
2116
|
lowerFieldCompound(access: ts.PropertyAccessExpression | ts.ElementAccessExpression, op: CompoundOp, rhsNode: ts.Expression | null, loc: SrcLoc): IrStmt;
|
|
2167
|
-
|
|
2117
|
+
errorConstructorArgs(args: readonly ts.Expression[], loc: SrcLoc, blame: ts.Node): IrExpr[];
|
|
2168
2118
|
inheritsBuiltinErrorCtor(info: ClassInfo): boolean;
|
|
2169
2119
|
inheritsBuiltinEmitterCtor(info: ClassInfo): boolean;
|
|
2170
2120
|
lowerNew(expr: ts.NewExpression): IrExpr;
|
|
@@ -2225,6 +2175,7 @@ export declare class Lowerer {
|
|
|
2225
2175
|
module: string;
|
|
2226
2176
|
member: string;
|
|
2227
2177
|
}, loc: SrcLoc): IrExpr | null;
|
|
2178
|
+
lowerNativeCallableValue(fn: BuiltinModuleFn, display: string, loc: SrcLoc): IrExpr | null;
|
|
2228
2179
|
isBuiltinCallableValue(expr: IrExpr): boolean;
|
|
2229
2180
|
lowerBuiltinModuleCall(expr: ts.CallExpression, bi: {
|
|
2230
2181
|
module: string;
|
|
@@ -2332,4 +2283,3 @@ export declare class Lowerer {
|
|
|
2332
2283
|
islandGlobalFnOf(ident: ts.Identifier): IslandFnEntry | null;
|
|
2333
2284
|
lowerIslandMethodCall(call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
|
|
2334
2285
|
}
|
|
2335
|
-
export {};
|