@scriptc/compiler 0.1.7 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ambient/scriptc-node-fallback.d.ts +73 -24
- 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 +107 -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 +70 -28
- 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 +16 -2
- package/dist/backend/llvm/dyn.js +494 -165
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +596 -1
- package/dist/backend/llvm/emitter.js +695 -410
- 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 +1 -1
- package/dist/backend/llvm/expr-bytes.js +32 -14
- 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 +9 -5
- 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 +62 -74
- 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 +51 -30
- 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 +43 -4
- 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 +102 -121
- 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 +21 -16
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +117 -1
- 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 +35 -130
- 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 +10 -25
- package/dist/backend/native-toolchain.js +31 -211
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +5 -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 +70 -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 +95 -30
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +65 -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 +3 -3
- 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 +3 -3
- 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 +63 -0
- package/dist/frontend/lowering/class-callbacks.js.map +1 -0
- package/dist/frontend/lowering/class-descriptors.d.ts +9 -0
- package/dist/frontend/lowering/class-descriptors.js +73 -0
- package/dist/frontend/lowering/class-descriptors.js.map +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +41 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +803 -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 +92 -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 +64 -0
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -0
- package/dist/frontend/lowering/class-method-values.d.ts +10 -0
- package/dist/frontend/lowering/class-method-values.js +170 -0
- package/dist/frontend/lowering/class-method-values.js.map +1 -0
- package/dist/frontend/lowering/class-prototypes.d.ts +16 -0
- package/dist/frontend/lowering/class-prototypes.js +134 -0
- package/dist/frontend/lowering/class-prototypes.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 +164 -155
- 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 +39 -16
- 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 +11 -0
- package/dist/frontend/lowering/error-methods.js +78 -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 +49 -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 +124 -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 +473 -178
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +20 -8
- 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 +93 -0
- package/dist/frontend/lowering/function-context.js +103 -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 +10 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +105 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.d.ts +2 -1
- package/dist/frontend/lowering/lib-boundary.js +59 -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 +12 -0
- package/dist/frontend/lowering/lower-builtin-values.js +139 -0
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -0
- package/dist/frontend/lowering/lower-builtins.d.ts +27 -41
- package/dist/frontend/lowering/lower-builtins.js +539 -343
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +20 -17
- package/dist/frontend/lowering/lower-calls.js +1236 -353
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +83 -45
- package/dist/frontend/lowering/lower-classes.js +952 -339
- 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 +27 -32
- package/dist/frontend/lowering/lower-containers.js +796 -151
- 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.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 +35 -11
- package/dist/frontend/lowering/lower-exprs.js +1674 -779
- 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 +77 -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 +5 -8
- package/dist/frontend/lowering/lower-island.js +34 -23
- 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 +233 -30
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- 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 +10 -14
- package/dist/frontend/lowering/lower-stmts.js +728 -496
- 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 +19 -10
- 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 +113 -189
- package/dist/frontend/lowering/lowerer.js +1031 -672
- 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 +26 -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 +8 -3
- package/dist/frontend/lowering/surfaces.js +61 -29
- 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 +10 -0
- package/dist/frontend/lowering/text-decoder-encoding.js +77 -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 +5 -4
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-prune.test.js +1 -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 +38 -19
- package/dist/frontend/program.js +344 -169
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +87 -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 +21 -15
- 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 +52 -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 +25 -17
- package/dist/frontend/type-mapper.js +465 -121
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +123 -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 +21 -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 +291 -152
- package/dist/ir/ir.js +588 -881
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +127 -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 +19 -12
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.d.ts +1 -0
- package/dist/ir/serialize.test.js +53 -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 +1942 -1491
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +476 -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 +135 -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 +74 -0
- package/dist/native/toolchain.js.map +1 -0
- package/dist/native/toolchain.test.d.ts +1 -0
- package/dist/native/toolchain.test.js +33 -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 +52 -18
- 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,6 +1,16 @@
|
|
|
1
|
-
import type { IrModule } from "../../ir/ir.js";
|
|
1
|
+
import type { IrBytesElem, IrExpr, IrFfiImport, IrFunction, IrLocal, IrModule, IrRecordShape, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/ir.js";
|
|
2
|
+
import { type IntegerRanges } from "../../ir/integer-ranges.js";
|
|
3
|
+
import { type ConstantNumericTable } from "../../ir/constant-tables.js";
|
|
4
|
+
import { type FfiCallbackAdapter } from "../ffi-callbacks.js";
|
|
5
|
+
import { BlockBuilder } from "./blocks.js";
|
|
6
|
+
import { type LlClassMeta } from "./classes.js";
|
|
7
|
+
import { LlDyn, type DynHost } from "./dyn.js";
|
|
8
|
+
import { LlWalkers } from "./walkers.js";
|
|
9
|
+
import type { ExprOf, LibCallExpr, LlStreamTypedRefAdapter, LlValue } from "./expr-context.js";
|
|
2
10
|
export { LlvmUnsupportedError } from "./unsupported.js";
|
|
3
11
|
export interface LlvmTargetOptions {
|
|
12
|
+
/** C ABI target; omitted direct emission uses the host ABI. */
|
|
13
|
+
targetTriple?: string;
|
|
4
14
|
/** Exact frontend sources for dev-build locations and variable metadata. */
|
|
5
15
|
debugSources?: ReadonlyMap<string, string>;
|
|
6
16
|
/** Pointer width of the target C ABI. Native targets are 64-bit today. */
|
|
@@ -15,3 +25,588 @@ export interface LlvmTargetOptions {
|
|
|
15
25
|
runtimeAbiMarker?: boolean;
|
|
16
26
|
}
|
|
17
27
|
export declare function emitLlvmModule(mod: IrModule, options?: LlvmTargetOptions): string;
|
|
28
|
+
export declare class LlEmitter {
|
|
29
|
+
readonly mod: IrModule;
|
|
30
|
+
private readonly debug;
|
|
31
|
+
private debugScope;
|
|
32
|
+
readonly sizeType: "i32" | "i64";
|
|
33
|
+
readonly ffiExtendNarrowIntegers: boolean;
|
|
34
|
+
readonly cycleColorOffset: number;
|
|
35
|
+
readonly wasi: boolean;
|
|
36
|
+
private readonly emitLibraryIdentity;
|
|
37
|
+
private readonly runtimeAbiMarker;
|
|
38
|
+
/** Interned string literals: UTF-8 text → { symbol, byte length } —
|
|
39
|
+
* first-use order, the runtime ABI’s determinism discipline. */
|
|
40
|
+
private readonly literals;
|
|
41
|
+
/** Interned unit-armed union instances: "unionId:tag" → symbol — one
|
|
42
|
+
* immortal (rc == SIZE_MAX) static per (union, unit tag).
|
|
43
|
+
* RC entry points and the collector skip immortals. */
|
|
44
|
+
private readonly unitInstances;
|
|
45
|
+
/** Interned regex literals: "<flags>/<pattern>" → { symbol, interned
|
|
46
|
+
* source/flags literal refs } — one immortal ScrRegex per distinct
|
|
47
|
+
* (pattern, flags) pair; the bytecode slot starts null and the runtime
|
|
48
|
+
* compiles it lazily on first use. The source/flags strings intern at
|
|
49
|
+
* REGISTRATION (bodies emit before the literal table flushes). */
|
|
50
|
+
readonly regexInstances: Map<string, {
|
|
51
|
+
sym: string;
|
|
52
|
+
src: string;
|
|
53
|
+
fl: string;
|
|
54
|
+
}>;
|
|
55
|
+
/** Interned tagged-template strings objects: per-site key → { symbol,
|
|
56
|
+
* interned cooked-literal refs }. One immortal ScrArr of string slots
|
|
57
|
+
* per template SITE (the spec's per-occurrence identity — the C
|
|
58
|
+
* emitter's templateStringsInstances discipline). */
|
|
59
|
+
readonly templateStringsInstances: Map<string, {
|
|
60
|
+
sym: string;
|
|
61
|
+
slots: string[];
|
|
62
|
+
}>;
|
|
63
|
+
/** Interned NUL-terminated C-string constants (scr_jb_puts labels, the
|
|
64
|
+
* stringify indent text): UTF-8 text → { symbol, byte length }. */
|
|
65
|
+
private readonly cstrs;
|
|
66
|
+
/** Type-directed walker functions (JSON serializers, the indent
|
|
67
|
+
* rewriter, union ToString/join) — interned per typeKey/unionId, defs
|
|
68
|
+
* flushed with the shape helpers. */
|
|
69
|
+
readonly walkers: LlWalkers;
|
|
70
|
+
/** The dyn (ScrDyn dyn) helper registry — dyn.ts's interned ports of
|
|
71
|
+
* walkers.ts's dyn slice. */
|
|
72
|
+
readonly dyn: LlDyn;
|
|
73
|
+
/** Explicit callback boundary for standalone layout and walker stages. */
|
|
74
|
+
readonly shapeHost: DynHost;
|
|
75
|
+
/** External declarations, in first-use order. */
|
|
76
|
+
private readonly decls;
|
|
77
|
+
/** Declared functions referenced as values: each needs an env-signature
|
|
78
|
+
* wrapper + an interned immortal closure (so `f === f` holds). */
|
|
79
|
+
readonly fnValues: Set<string>;
|
|
80
|
+
private needsOom;
|
|
81
|
+
needsBadTag: boolean;
|
|
82
|
+
needsBadKey: boolean;
|
|
83
|
+
private needsRetainBox;
|
|
84
|
+
readonly fnByName: Map<string, IrFunction>;
|
|
85
|
+
/** Manifest-bound native imports, used by ffiCall emission. */
|
|
86
|
+
readonly ffiByName: Map<string, IrFfiImport>;
|
|
87
|
+
/** C-ABI callback trampolines and (for raw/no-userdata callbacks) their
|
|
88
|
+
* distinct call-scoped TLS closure slots. */
|
|
89
|
+
private readonly ffiCallbackAdapters;
|
|
90
|
+
/** Module-level constant consulted per ffiCall: with a retained
|
|
91
|
+
* descriptor anywhere in the manifest, every native call is a
|
|
92
|
+
* pending-exception checkpoint (may-throw derives the same fact from
|
|
93
|
+
* the same helper). */
|
|
94
|
+
readonly ffiHasRetainedCallback: boolean;
|
|
95
|
+
private readonly ffiHasForeignCallback;
|
|
96
|
+
private readonly globalTypes;
|
|
97
|
+
private readonly tdzGlobals;
|
|
98
|
+
readonly constantNumericTables: ReadonlyMap<string, ConstantNumericTable>;
|
|
99
|
+
/** May-throw analysis (computeMayThrow): pending
|
|
100
|
+
* checks are emitted only after calls that can actually raise. */
|
|
101
|
+
readonly mayThrow: Set<string>;
|
|
102
|
+
readonly indirectMayThrow: boolean;
|
|
103
|
+
/** Method names with at least one may-throw implementation — the
|
|
104
|
+
* virtualCall pending check's key. */
|
|
105
|
+
readonly mayThrowMethods: Set<string>;
|
|
106
|
+
/** setTimeout and friends appeared somewhere: main must run the event
|
|
107
|
+
* loop even in programs with no async functions. */
|
|
108
|
+
usesTimers: boolean;
|
|
109
|
+
/** Emitted ref-kind resolve thunks for new Promise, interned per inner
|
|
110
|
+
* typeKey → thunk symbol. */
|
|
111
|
+
readonly resolveThunks: Map<string, string>;
|
|
112
|
+
readonly resolveThunkDefs: string[];
|
|
113
|
+
/** ReadableStream.from adapters keep typed arrays by reference and box
|
|
114
|
+
* one current element per pull. */
|
|
115
|
+
readonly streamFromArrayAdapters: Map<string, string>;
|
|
116
|
+
/** Identity-preserving static→dyn capsules for program classes and Web
|
|
117
|
+
* APIs whose values remain directly observable. */
|
|
118
|
+
readonly liveDynRefAdapters: Map<string, LlStreamTypedRefAdapter>;
|
|
119
|
+
/** Runtime-arm dispatchers for live union values. */
|
|
120
|
+
readonly liveDynUnionRefAdapters: Map<string, string>;
|
|
121
|
+
readonly dynPromiseAdapters: Map<string, string>;
|
|
122
|
+
readonly unionsById: Map<string, IrUnionDef>;
|
|
123
|
+
readonly recordsById: Map<string, IrRecordShape>;
|
|
124
|
+
readonly recordCloneShapes: Set<string>;
|
|
125
|
+
readonly tracedShapes: Set<string>;
|
|
126
|
+
readonly tracedUnions: Set<string>;
|
|
127
|
+
/** The class graph (buildClassGraph): preorder numbering, hierarchy
|
|
128
|
+
* membership, virtual slot lists. */
|
|
129
|
+
readonly classMeta: Map<string, LlClassMeta>;
|
|
130
|
+
/** Class objects (classes as first-class values): className → the
|
|
131
|
+
* interned .name literal ref — registered during body emission, the
|
|
132
|
+
* statics and construct thunks assemble around the bodies. */
|
|
133
|
+
private readonly classObjs;
|
|
134
|
+
private readonly unionFieldReadGroups;
|
|
135
|
+
/** Preorder intervals of the runtime error classes under THIS module's
|
|
136
|
+
* class-forest numbering (main() stamps scr_error_vts with them, exactly
|
|
137
|
+
* like the runtime ABI’s errorVtStampLines). */
|
|
138
|
+
private readonly errorIntervals;
|
|
139
|
+
/** The runtime emitter vtable's preorder interval, when the program
|
|
140
|
+
* touches node:events (the class def rides the module exactly then) —
|
|
141
|
+
* main() stamps scr_emitter_vt with it (emitterVtStampLines, ported). */
|
|
142
|
+
private emitterInterval;
|
|
143
|
+
/** The runtime stream vtables' preorder intervals (streamVtStampLines,
|
|
144
|
+
* ported): the defs ride every emitter-touching module (the frontend
|
|
145
|
+
* collects the whole emitter-rooted tree), and scr_stream.c links on
|
|
146
|
+
* the same predicate, so the stamps always have their globals. */
|
|
147
|
+
private readonly streamIntervals;
|
|
148
|
+
B: BlockBuilder;
|
|
149
|
+
frames: LlValue[][];
|
|
150
|
+
private scopes;
|
|
151
|
+
/** Scope slots dominate every throw site. Share their exceptional cleanup
|
|
152
|
+
* for identical live bindings and handlers; statement temporaries stay at
|
|
153
|
+
* their own throw sites because their SSA values are path-dependent. */
|
|
154
|
+
private readonly unwindCleanups;
|
|
155
|
+
/** Enclosing break/continue targets. `kind` separates loops from
|
|
156
|
+
* switches and labeled blocks: an unlabeled break binds to the innermost
|
|
157
|
+
* NON-BLOCK entry (loop or switch — blocks only enter the stack when
|
|
158
|
+
* labeled, and only a labeled break can target one); an unlabeled
|
|
159
|
+
* continue binds to the innermost LOOP; a labeled jump binds to the
|
|
160
|
+
* entry whose `labels` contains its label. `contLabel` is null exactly
|
|
161
|
+
* for blocks and switches. */
|
|
162
|
+
private jumpTargets;
|
|
163
|
+
private currentLocals;
|
|
164
|
+
private captureIds;
|
|
165
|
+
/** Active canonical byte-loop induction bindings: local id → size_t slot. */
|
|
166
|
+
integerLoopBindings: Map<string, string>;
|
|
167
|
+
integerRanges: IntegerRanges;
|
|
168
|
+
/** Enclosing try-with-FINALLY regions, innermost last: a `return`
|
|
169
|
+
* inside one runs every crossed finally (innermost first) before the
|
|
170
|
+
* actual ret — the runtime ABI’s pending-return path, with the finally
|
|
171
|
+
* bodies emitted inline at the return site instead of behind a goto.
|
|
172
|
+
* `tryDepth` snapshots tryStack.length at region entry: a throw inside
|
|
173
|
+
* a pending-return finally copy propagates OUT of the completing try
|
|
174
|
+
* (past its own catch), so the copies emit under the truncated stack.
|
|
175
|
+
* break/continue use the same region snapshots through
|
|
176
|
+
* emitFinallysForJump. */
|
|
177
|
+
private finallyStack;
|
|
178
|
+
/** Enclosing try contexts, innermost last — the compile-time unwind
|
|
179
|
+
* targets: a pending check or `throw` inside a try
|
|
180
|
+
* releases frames/scopes down to the recorded depths and branches to
|
|
181
|
+
* `label` (the catch, or the exception-path finally) instead of
|
|
182
|
+
* returning out of the function. Entering a try emits no code. */
|
|
183
|
+
private tryStack;
|
|
184
|
+
/** Return type of the function being emitted — the unwind path returns
|
|
185
|
+
* a dummy of this type (never read: callers check the flag first). */
|
|
186
|
+
private currentReturnType;
|
|
187
|
+
/** Active only while emitting a wasm32 async body lowered with LLVM's
|
|
188
|
+
* switched-coroutine intrinsics. */
|
|
189
|
+
currentWasiCoro: {
|
|
190
|
+
kind: "async" | "generator";
|
|
191
|
+
id: string;
|
|
192
|
+
handle: string;
|
|
193
|
+
self: string;
|
|
194
|
+
finalLabel: string;
|
|
195
|
+
cleanupLabel: string;
|
|
196
|
+
suspendLabel: string;
|
|
197
|
+
} | null;
|
|
198
|
+
/** The generator channels of the function being emitted (null outside
|
|
199
|
+
* generator bodies): yieldExpr emission reads them, and emitTryCatch's
|
|
200
|
+
* catch prologue emits the GENRET sentinel re-unwind exactly here. */
|
|
201
|
+
currentGenerator: {
|
|
202
|
+
yieldT: IrType;
|
|
203
|
+
nextT: IrType;
|
|
204
|
+
} | null;
|
|
205
|
+
/** Active optional-chain bind slots, by chain id (chainRecv reads). */
|
|
206
|
+
readonly chainSlots: Map<string, LlValue>;
|
|
207
|
+
logArgSlots: number;
|
|
208
|
+
private readonly stackTraces;
|
|
209
|
+
constructor(mod: IrModule, options: LlvmTargetOptions);
|
|
210
|
+
abiOffset(native64: number, wasm32: number): number;
|
|
211
|
+
llType(t: IrType): string;
|
|
212
|
+
ffiCallbackAdapter(binding: string, id: string): FfiCallbackAdapter;
|
|
213
|
+
/** C-callable scalar callback trampolines. A callback with an explicit
|
|
214
|
+
* context entry receives the closure at that exact ABI position. A raw
|
|
215
|
+
* callback loads it from a call-scoped TLS slot installed around the
|
|
216
|
+
* outer native call. */
|
|
217
|
+
private emitFfiCallbackDefs;
|
|
218
|
+
emit(): string;
|
|
219
|
+
/** LIBRARY mode: the profile-declared external definitions — the
|
|
220
|
+
* export-map wrappers plus init / sink-registration / reset / collect.
|
|
221
|
+
* Plain `define` (not `define internal`) — the exact linkage distinction
|
|
222
|
+
* that separates the executable lane's @main from everything else. The
|
|
223
|
+
* bodies delegate every runtime half to scr_library.c, mirroring the C
|
|
224
|
+
* emission line for line, so the two lanes are identical by
|
|
225
|
+
* construction. */
|
|
226
|
+
private emitLibDefs;
|
|
227
|
+
/** The shared abort helpers (emitted only when referenced): the OOM
|
|
228
|
+
* abort of untraced shape allocation and the invalid-union-tag abort —
|
|
229
|
+
* both print the runtime ABI’s exact message on fd 2 and abort. */
|
|
230
|
+
private helperDefs;
|
|
231
|
+
/** Env-signature wrappers + interned immortal closures for declared
|
|
232
|
+
* functions used as values (the runtime ABI’s sc_w_/sc_fc_ pair): every
|
|
233
|
+
* mention of `f` yields the same pointer, so `f === f` holds. */
|
|
234
|
+
private emitFnValueDefs;
|
|
235
|
+
/** The argument-pack ABI and trampoline prefix shared by async functions
|
|
236
|
+
* and generators. Their promise/generator completion and spawn tails stay
|
|
237
|
+
* with the callers below. */
|
|
238
|
+
private emitArgPackAndTrampolinePrologue;
|
|
239
|
+
/** Per-async-function machinery — async.ts's scaffolding, .ll
|
|
240
|
+
* flavored: an argument-pack struct type, a fiber trampoline (unpacks,
|
|
241
|
+
* frees the pack, runs the ordinary compiled body, settles the
|
|
242
|
+
* promise — fulfilling on clean return, leaving a pending exception
|
|
243
|
+
* for the runtime to reject with), and a spawn wrapper call sites and
|
|
244
|
+
* closures enter through (packs the args +1, scr_async_spawn runs the
|
|
245
|
+
* fiber eagerly to its first suspension and returns the promise). */
|
|
246
|
+
private emitAsyncScaffolding;
|
|
247
|
+
/** Per-generator-function machinery — the async scaffolding's lazy
|
|
248
|
+
* sibling (async.ts's emitGenScaffolding): the same argument pack,
|
|
249
|
+
* a fiber trampoline whose epilogue stores the COMPLETION value (or
|
|
250
|
+
* consumes the GENRET sentinel, promoting the parked .return value), a
|
|
251
|
+
* spawn wrapper that only ALLOCATES the suspended fiber, and the
|
|
252
|
+
* never-started teardown that drops the packed (+1) arguments. */
|
|
253
|
+
private emitGenScaffolding;
|
|
254
|
+
internLiteral(text: string): string;
|
|
255
|
+
/** Interned NUL-terminated C-string constant (the scr_jb_puts /
|
|
256
|
+
* stringify-indent currency) — `@`-ref, first-use order. */
|
|
257
|
+
cstr(text: string): string;
|
|
258
|
+
needBadTag(): void;
|
|
259
|
+
/** The interned immortal instance for a UNIT arm of a union — asserts
|
|
260
|
+
* the arm really is payload-less (undefined/null). Public: class
|
|
261
|
+
* emission initializes undefined-admitting fields through it
|
|
262
|
+
* (ClassHost). */
|
|
263
|
+
unitInstanceRef(unionId: string, tag: number): string;
|
|
264
|
+
declare(decl: string): void;
|
|
265
|
+
needOom(): void;
|
|
266
|
+
private currentFrame;
|
|
267
|
+
/** Registers an owned refcounted value on the current statement frame. */
|
|
268
|
+
own(v: LlValue): LlValue;
|
|
269
|
+
/** Registers a SLOT whose current contents the frame owns (conditional
|
|
270
|
+
* results: optional chains, branch joins that park ownership). */
|
|
271
|
+
ownSlot(slot: string, type: IrType): void;
|
|
272
|
+
/** Strike a refcounted temp from its frame: ownership is being moved. */
|
|
273
|
+
moveTemp(v: LlValue): void;
|
|
274
|
+
/** The retained (+1) read of a refcounted value — type-directed through
|
|
275
|
+
* the `_v` table (immortals skip, exactly the C retain calls). */
|
|
276
|
+
retainValue(name: string, type: IrType): string;
|
|
277
|
+
/** The release call for one owned refcounted value — type-directed like
|
|
278
|
+
* releaseCallC (all runtime releases are NULL-tolerant). */
|
|
279
|
+
releaseValue(name: string, type: IrType): void;
|
|
280
|
+
releaseFrame(frame: LlValue[]): void;
|
|
281
|
+
private releaseScope;
|
|
282
|
+
/** THE release-on-jump path (break/continue/return): pending statement
|
|
283
|
+
* frames and entered scopes down to the given depths, innermost first —
|
|
284
|
+
* everything whose normal fall-through releases the jump bypasses.
|
|
285
|
+
* Release every scope crossed by the control-flow edge. */
|
|
286
|
+
private releaseForJump;
|
|
287
|
+
/** Run the finally regions an abrupt loop/block jump crosses, then
|
|
288
|
+
* release to the already-resolved target. This is the return path's
|
|
289
|
+
* completion walk without a parked result value. */
|
|
290
|
+
private emitFinallysForJump;
|
|
291
|
+
/** THE unwind path at a point where an exception is pending: release
|
|
292
|
+
* everything between here and the innermost try handler — or the whole
|
|
293
|
+
* function — and branch to the handler / return a dummy value (never
|
|
294
|
+
* read: callers of a may-throw function test the pending flag before
|
|
295
|
+
* using the result). Callers own the surrounding pending branch; a
|
|
296
|
+
* `throw` unwinds unconditionally. */
|
|
297
|
+
private emitUnwind;
|
|
298
|
+
/** The emitter contract for exceptions: after EVERY call that can throw
|
|
299
|
+
* (per the may-throw analysis), test the pending flag and unwind. The
|
|
300
|
+
* call's result temp must join its frame BEFORE this runs so the unwind
|
|
301
|
+
* releases the dummy (NULL for refcounted kinds) harmlessly. */
|
|
302
|
+
emitPendingCheck(): void;
|
|
303
|
+
/** Moves an already-evaluated value into the runtime's exception cell —
|
|
304
|
+
* the `throw` statement's kind dispatch (stmts.ts's), shared with
|
|
305
|
+
* every synthetic thrower. Ownership of a refcounted payload must have
|
|
306
|
+
* been moved off its frame by the caller. */
|
|
307
|
+
emitThrowValue(v: LlValue): void;
|
|
308
|
+
/** JS truthiness of a value (falsy: false, 0, -0, NaN, "", nullish
|
|
309
|
+
* union arms): one fcmp for f64 (NaN and both zeros compare !one), a
|
|
310
|
+
* length load for strings, an inline tag switch for unions, `!= null`
|
|
311
|
+
* for the always-truthy object kinds (JS: [] and {} are truthy). */
|
|
312
|
+
truthy(v: LlValue): string;
|
|
313
|
+
/** Emit truthiness for one non-union kind. Union arms are known-present,
|
|
314
|
+
* so object kinds become the constant true instead of a pointer test. */
|
|
315
|
+
private truthyOf;
|
|
316
|
+
/** Loads a union box's tag (i32). */
|
|
317
|
+
unionTag(uName: string): string;
|
|
318
|
+
/** The BORROWED payload pointer of a ref arm (scr_union_peek inlined —
|
|
319
|
+
* the runtime's is a static inline). */
|
|
320
|
+
unionPeek(uName: string): string;
|
|
321
|
+
/** Emits `switch` over a union's tag with one block per arm; each arm
|
|
322
|
+
* body must TERMINATE its block (the callers branch to a join). The
|
|
323
|
+
* default block is the runtime ABI’s invalid-tag abort. Shared field
|
|
324
|
+
* reads can group equivalent storage prefixes and emit one representative. */
|
|
325
|
+
unionTagSwitch(uName: string, def: IrUnionDef, arm: (armType: IrType, tag: number) => void, fieldGroups?: number[][]): void;
|
|
326
|
+
/** The +1 extraction of a union's single narrowed arm (unionNarrow /
|
|
327
|
+
* the nullish-family reads): scalars via the runtime getters, ref arms
|
|
328
|
+
* a retained peek. */
|
|
329
|
+
unionExtract(uName: string, arm: IrType): string;
|
|
330
|
+
/** Constructs a union box around an OWNED (+1, already moved) value —
|
|
331
|
+
* the scr_union_new_* dispatch of unionWrap and the wrap-into-join
|
|
332
|
+
* sites (shift). */
|
|
333
|
+
unionNewOwned(tag: number, v: LlValue): string;
|
|
334
|
+
classMetaOf(className: string): LlClassMeta;
|
|
335
|
+
/** The field-slot pointer of a class member: rc at 0, the vtable word at
|
|
336
|
+
* 1 on hierarchy members, then the flattened field list. Runtime error
|
|
337
|
+
* classes GEP through %ScrError (their structs live in the runtime; the
|
|
338
|
+
* def's [name, message, %code, %cause] order matches the layout). */
|
|
339
|
+
classFieldPtr(objName: string, className: string, field: string): {
|
|
340
|
+
ptr: string;
|
|
341
|
+
type: IrType;
|
|
342
|
+
};
|
|
343
|
+
/** `o->vt->pre` — the dynamic class's preorder number (borrowed object;
|
|
344
|
+
* the static class names which struct spelling carries the vt word). */
|
|
345
|
+
loadVtPre(objName: string, staticClassName: string): string;
|
|
346
|
+
/** The class object's static symbol (classes as values), registering it
|
|
347
|
+
* for assembly on first use and interning the .name literal while the
|
|
348
|
+
* table is still open (the regex-literal discipline). */
|
|
349
|
+
classObjSym(className: string): string;
|
|
350
|
+
recordShape(shapeId: string): IrRecordShape;
|
|
351
|
+
/** Record prefixes with the same LLVM storage types put a field at the
|
|
352
|
+
* same offset on every target. Share one field-read block per matching
|
|
353
|
+
* prefix; class variants retain their own concrete layout dispatch. */
|
|
354
|
+
unionFieldGroups(def: IrUnionDef, field: string): number[][];
|
|
355
|
+
/** The field-slot pointer of a record member (rc header at index 0). */
|
|
356
|
+
recordFieldPtr(objName: string, shapeId: string, field: string): {
|
|
357
|
+
ptr: string;
|
|
358
|
+
type: IrType;
|
|
359
|
+
};
|
|
360
|
+
/** The overflow map's slot pointer on an index-signature shape. */
|
|
361
|
+
recordOvfPtr(objName: string, shapeId: string): string;
|
|
362
|
+
/** Loads a record field (i8-stored bools trunc to i1). */
|
|
363
|
+
loadField(ptr: string, t: IrType): string;
|
|
364
|
+
/** Stores a record field (i1 zext to the i8 storage). */
|
|
365
|
+
storeField(ptr: string, t: IrType, value: string): void;
|
|
366
|
+
/** A binding's storage: a module global, a plain local slot, or a boxed
|
|
367
|
+
* local (the slot holds the capture BOX; access goes through it). */
|
|
368
|
+
binding(id: string): {
|
|
369
|
+
kind: "global" | "local" | "boxed";
|
|
370
|
+
slot: string;
|
|
371
|
+
type: IrType;
|
|
372
|
+
local?: IrLocal;
|
|
373
|
+
};
|
|
374
|
+
private emitDebugLocal;
|
|
375
|
+
/** Loads a boxed binding's box pointer out of its slot. */
|
|
376
|
+
loadBox(slot: string): string;
|
|
377
|
+
boxGet(box: string, t: IrType): string;
|
|
378
|
+
/** scr_box_set_* — the ref form takes ownership of the passed value. */
|
|
379
|
+
boxSet(box: string, t: IrType, value: string): void;
|
|
380
|
+
retainBox(box: string): string;
|
|
381
|
+
/** The initializing write of a scalar TDZ box: mint the one-element
|
|
382
|
+
* array cell holding the value and move it into the ARR-kind box
|
|
383
|
+
* (set_ref releases nothing — the slot was the empty sentinel). */
|
|
384
|
+
private tdzScalarInit;
|
|
385
|
+
/** The TDZ-guarded read of a boxed binding: an empty payload slot is
|
|
386
|
+
* the temporal dead zone — throw Node's exact catchable ReferenceError
|
|
387
|
+
* (exprs.ts's varRef guard). Scalars then peek the one-element
|
|
388
|
+
* array cell; ref kinds read the box normally (+1). */
|
|
389
|
+
private checkTdz;
|
|
390
|
+
checkGlobalTdz(id: string): void;
|
|
391
|
+
private throwIfUninitialized;
|
|
392
|
+
tdzBoxRead(box: string, t: IrType, name: string): string;
|
|
393
|
+
/** Declaration stores initialize an empty TDZ box. Later stores check
|
|
394
|
+
* it after the RHS and update scalar cells in place. References move in. */
|
|
395
|
+
writeBindingBox(box: string, local: IrLocal, value: string, initializes?: boolean, borrowed?: boolean): void;
|
|
396
|
+
/** The LLVM symbol a direct call or closure enters a function through:
|
|
397
|
+
* async bodies are entered via their emitted spawn wrapper (which runs
|
|
398
|
+
* the fiber eagerly to its first suspension and returns the promise);
|
|
399
|
+
* generator bodies via theirs (which only ALLOCATES the suspended
|
|
400
|
+
* fiber and returns the generator object). */
|
|
401
|
+
callTarget(fnName: string): string;
|
|
402
|
+
/** Queue the current wasm coroutine and suspend it. The runtime decides
|
|
403
|
+
* whether the promise waiter list or the ready FIFO owns the continuation;
|
|
404
|
+
* LLVM keeps all live locals in the coroutine frame. */
|
|
405
|
+
emitWasiSuspend(promise: string | null): void;
|
|
406
|
+
/** Suspend after a target-specific runtime helper already queued the
|
|
407
|
+
* continuation (used by module awaits, which skip the hop when settled). */
|
|
408
|
+
emitWasiSuspendPrepared(): void;
|
|
409
|
+
/** Move a clean async return value into the current fiber's promise. */
|
|
410
|
+
private emitWasiFulfill;
|
|
411
|
+
private emitFunction;
|
|
412
|
+
private emitStmts;
|
|
413
|
+
/** Emits a block in its own lexical scope (refcounted locals released at
|
|
414
|
+
* end). `setup` runs after the
|
|
415
|
+
* scope opens, before the statements — the catch-binding hook: it may
|
|
416
|
+
* emit prelude lines and register entries the scope owns (released on
|
|
417
|
+
* every exit, jumps and unwinds included). */
|
|
418
|
+
private emitBlock;
|
|
419
|
+
emitStmt(s: IrStmt): void;
|
|
420
|
+
private emitStmtBody;
|
|
421
|
+
/** try/catch/finally via pending-flag unwinding — stmts.ts's
|
|
422
|
+
* emitTryCatch, block-flavored. Entering a try emits NO code: the try
|
|
423
|
+
* context is compile-time state (tryStack) redirecting unwinds inside
|
|
424
|
+
* the region to a label here. Shape:
|
|
425
|
+
*
|
|
426
|
+
* { try body } unwinds inside release frames/scopes down to
|
|
427
|
+
* this statement's depths, then br the handler
|
|
428
|
+
* br after (normal completion skips the handler)
|
|
429
|
+
* try.c: (emitted only when some unwind targets it)
|
|
430
|
+
* binding = scr_exc_take() (or scr_exc_clear() when bindingless)
|
|
431
|
+
* { catch body }
|
|
432
|
+
* after: { finally body } normal path
|
|
433
|
+
* br try.e
|
|
434
|
+
* try.fx: exception path: the pending exception is
|
|
435
|
+
* stash = scr_exc_take() STASHED across the finally body so the
|
|
436
|
+
* { finally body } body's own pending checks answer for
|
|
437
|
+
* scr_rethrow(stash) themselves; a throw inside REPLACES the
|
|
438
|
+
* <unwind> stash (it unwinds through the synthetic
|
|
439
|
+
* try.e: scope entry) — JS's semantics exactly
|
|
440
|
+
*
|
|
441
|
+
* Abrupt completions inside tryBody/catchBody ride the finallyStack:
|
|
442
|
+
* returns inline copies at the return site, while break/continue use the
|
|
443
|
+
* shared region walk before branching to their resolved target. */
|
|
444
|
+
private emitTryCatch;
|
|
445
|
+
/** JS-exact switch: lazily evaluated, arbitrary-expression case tests in
|
|
446
|
+
* source order, bodies falling through in source order until a break —
|
|
447
|
+
* A chain of conditional branches. All case bodies
|
|
448
|
+
* share ONE scope; because dispatch can jump PAST a varDecl into a later
|
|
449
|
+
* case, refcounted/boxed case-body locals are NULL-reset up front and
|
|
450
|
+
* the scope-exit releases rely on NULL tolerance. */
|
|
451
|
+
private emitSwitch;
|
|
452
|
+
/** Evaluates a condition (IR conds are bool-typed) and releases its
|
|
453
|
+
* temps BEFORE the branch — safe because the result is a scalar i1, and
|
|
454
|
+
* required in loop-condition blocks (their temps must not survive into
|
|
455
|
+
* later blocks across the back edge). */
|
|
456
|
+
private emitCondition;
|
|
457
|
+
/** Evaluates `expr` in its own statement frame inside an already-open
|
|
458
|
+
* branch and moves the result into `slot`: the chosen value's ownership
|
|
459
|
+
* transfers, every other temp the arm allocated releases inside the
|
|
460
|
+
* branch. The shared core of ternary/logical. */
|
|
461
|
+
emitBranchInto(slot: string, expr: IrExpr): void;
|
|
462
|
+
emitLiteralExpr(e: ExprOf<"numLit" | "boolLit" | "strLit" | "moduleNsRef" | "unitLit" | "varRef">): LlValue;
|
|
463
|
+
emitOperatorExpr(e: ExprOf<"bin" | "unary" | "incDec" | "fieldIncDec" | "assignExpr" | "seqExpr">): LlValue;
|
|
464
|
+
emitControlExpr(e: ExprOf<"dynDestrCheck" | "dynIterN" | "toBool" | "logical" | "ternary" | "optChain" | "chainRecv" | "orDefault" | "nullish">): LlValue;
|
|
465
|
+
emitStringExpr(e: ExprOf<"strConcat" | "strEq" | "strCmp" | "toString" | "strIntrinsic" | "regexLit" | "templateStrings" | "regexIntrinsic">): LlValue;
|
|
466
|
+
/**
|
|
467
|
+
* Lower canonical `target = target + suffix` after evaluating the old
|
|
468
|
+
* left side and suffix in JavaScript order. The snapshot stays owned by
|
|
469
|
+
* the statement frame while the destination relinquishes its CURRENT
|
|
470
|
+
* value, making the snapshot unique unless a real observable alias exists.
|
|
471
|
+
*/
|
|
472
|
+
emitStringSelfConcatAssign(localId: string, left: IrExpr, suffix: IrExpr, retainForYield: boolean): LlValue;
|
|
473
|
+
emitContainerExpr(e: ExprOf<"arrayLit" | "arrayNewLen" | "arrayGet" | "arrayHas" | "arrayState" | "arrIntrinsic" | "bytesNew" | "bytesIntrinsic" | "mapNew" | "mapIntrinsic" | "setIntrinsic" | "setNew">): LlValue;
|
|
474
|
+
emitCallExpr(e: ExprOf<"call" | "ffiCall" | "closure" | "callValue" | "selfRef" | "new" | "classRef" | "newValue" | "instanceOfValue" | "promiseVoidWiden" | "upcast" | "downcast" | "instanceOf" | "virtualCall">): LlValue;
|
|
475
|
+
emitRecordExpr(e: ExprOf<"fieldGet" | "recordGet" | "recordLit" | "recordClone" | "recordKeyGet" | "recordOvfKeys" | "recordOvfHas">): LlValue;
|
|
476
|
+
emitDynamicExpr(e: ExprOf<"dynFrom" | "dynFromJsval" | "dynCall" | "dynInvoke" | "dynArrLit" | "dynObjLit" | "unionWrap" | "unionNarrow" | "unionDisc" | "unionKeyGet" | "unionIsTag" | "dynKeyGet" | "dynHasKey" | "dynScalarEq" | "dynTest" | "unionEq" | "unionFuncEq" | "caughtTest" | "caughtCheck" | "caughtNarrow" | "caughtToDyn">): LlValue;
|
|
477
|
+
emitIntrinsicExpr(e: ExprOf<"intrinsic">): LlValue;
|
|
478
|
+
emitSerializationExpr(e: ExprOf<"jsonStringify" | "dynCheck">): LlValue;
|
|
479
|
+
emitAsyncExpr(e: ExprOf<"yieldExpr" | "genResume" | "awaitExpr" | "awaitUnionExpr" | "newPromise" | "promiseWithResolvers">): LlValue;
|
|
480
|
+
emitJsInteropExpr(e: ExprOf<"jsMarshal" | "jsOp" | "jsExit" | "jsBridgePromise">): LlValue;
|
|
481
|
+
/** Read a receiver whose value is consumed immediately by a field or tag
|
|
482
|
+
* load. No user code may run between this read and its consumer. Locals
|
|
483
|
+
* and their projections already have an owner; other expressions keep
|
|
484
|
+
* their ordinary statement-frame ownership. The caller must retain any
|
|
485
|
+
* reference result before evaluating another expression. */
|
|
486
|
+
emitReadReceiver(e: IrExpr): LlValue;
|
|
487
|
+
emitExpr(e: IrExpr): LlValue;
|
|
488
|
+
emitJsMarshal(e: IrExpr & {
|
|
489
|
+
kind: "jsMarshal";
|
|
490
|
+
}): LlValue;
|
|
491
|
+
emitJsOp(e: IrExpr & {
|
|
492
|
+
kind: "jsOp";
|
|
493
|
+
}): LlValue;
|
|
494
|
+
emitJsExit(e: IrExpr & {
|
|
495
|
+
kind: "jsExit";
|
|
496
|
+
}): LlValue;
|
|
497
|
+
islandAdapter(arity: number, retKind: "void" | "jsval" | "f64" | "bool" | "string"): string;
|
|
498
|
+
islandTypedAdapter(fn: IrType & {
|
|
499
|
+
kind: "func";
|
|
500
|
+
}): string;
|
|
501
|
+
dynKind(d: string): string;
|
|
502
|
+
raceAdapterFor(from: IrType, to: IrType): string;
|
|
503
|
+
genResultThunkFor(genT: IrType & {
|
|
504
|
+
kind: "generator";
|
|
505
|
+
}, recT: IrType & {
|
|
506
|
+
kind: "record";
|
|
507
|
+
}): string;
|
|
508
|
+
childExitThunkFor(param: IrType): string;
|
|
509
|
+
execFileThunkFor(cbT: IrType & {
|
|
510
|
+
kind: "func";
|
|
511
|
+
}): string;
|
|
512
|
+
ipcMessageThunkFor(cbT: IrType & {
|
|
513
|
+
kind: "func";
|
|
514
|
+
}): string;
|
|
515
|
+
ipcSendThunkFor(cbT: IrType & {
|
|
516
|
+
kind: "func";
|
|
517
|
+
}): string;
|
|
518
|
+
childExitSignalThunkFor(codeParam: IrType, sigParam: IrType): string;
|
|
519
|
+
childDataThunkFor(param: IrType): string;
|
|
520
|
+
emitterFixedAdapter(cbT: IrType & {
|
|
521
|
+
kind: "func";
|
|
522
|
+
}): {
|
|
523
|
+
fn: string;
|
|
524
|
+
shim: string;
|
|
525
|
+
};
|
|
526
|
+
wrapEmitterListener(target: string, adapterFn: string): string;
|
|
527
|
+
unwrapNullableClosure(u: string, funcTag: number): string;
|
|
528
|
+
closeBindThunkFor(cbUnion: IrType, retServer: boolean): string;
|
|
529
|
+
closeOverrideWrapFor(cbUnion: IrType, retServer: boolean): string;
|
|
530
|
+
streamDataAdapter(cbT: IrType & {
|
|
531
|
+
kind: "func";
|
|
532
|
+
}): string;
|
|
533
|
+
streamDoneFnFor(kind: "w" | "f" | "d" | "t" | "l", doneT: IrType & {
|
|
534
|
+
kind: "func";
|
|
535
|
+
}): string;
|
|
536
|
+
fsRenameThunkFor(cbT: IrType & {
|
|
537
|
+
kind: "func";
|
|
538
|
+
}): string;
|
|
539
|
+
cryptoBytesThunkFor(cbT: IrType & {
|
|
540
|
+
kind: "func";
|
|
541
|
+
}): string;
|
|
542
|
+
zlibBytesThunkFor(cbT: IrType & {
|
|
543
|
+
kind: "func";
|
|
544
|
+
}): string;
|
|
545
|
+
streamCbThunkFor(kind: "r" | "w" | "f" | "d" | "t" | "l" | "e", cbT: IrType): string;
|
|
546
|
+
resolveThunkFor(inner: IrType): string;
|
|
547
|
+
tagInSet(uName: string, tags: number[]): string;
|
|
548
|
+
arrPush(arr: string, acc: "f64" | "bool" | "ref", value: string): string;
|
|
549
|
+
emitArrayCopyLoop(dst: string, src: string, acc: "f64" | "bool" | "ref"): void;
|
|
550
|
+
emitStrIntrinsic(e: IrExpr & {
|
|
551
|
+
kind: "strIntrinsic";
|
|
552
|
+
}): LlValue;
|
|
553
|
+
emitArrIntrinsic(e: IrExpr & {
|
|
554
|
+
kind: "arrIntrinsic";
|
|
555
|
+
}): LlValue;
|
|
556
|
+
wrapNullable(raw: string, present: string, valueType: IrType, valueTag: number, resultType: IrType & {
|
|
557
|
+
kind: "union";
|
|
558
|
+
}, absentTag: number): LlValue;
|
|
559
|
+
emitMapNew(e: IrExpr & {
|
|
560
|
+
kind: "mapNew";
|
|
561
|
+
}): LlValue;
|
|
562
|
+
mapSet(m: string, kAcc: "f64" | "str" | "ref", vAcc: "f64" | "bool" | "ref", key: string, value: string): void;
|
|
563
|
+
emitMapLikeIntrinsic(e: Extract<IrExpr, {
|
|
564
|
+
kind: "mapIntrinsic" | "setIntrinsic";
|
|
565
|
+
}>): LlValue;
|
|
566
|
+
emitSetNew(e: IrExpr & {
|
|
567
|
+
kind: "setNew";
|
|
568
|
+
}): LlValue;
|
|
569
|
+
emitStableReceiver(receiver: IrExpr, following: IrExpr[]): LlValue;
|
|
570
|
+
emitIntegerLoopIndex(expr: IrExpr): string | null;
|
|
571
|
+
emitBytesIndex(receiver: string, index: string, integerIndex?: boolean): string;
|
|
572
|
+
emitBytesData(receiver: string): string;
|
|
573
|
+
emitBytesLength(elem: IrBytesElem, receiver: string, bytes: boolean): LlValue;
|
|
574
|
+
emitBytesGet(elem: IrBytesElem, receiver: string, index: string, integerIndex?: boolean): LlValue;
|
|
575
|
+
emitToUint32(value: string, expr?: IrExpr): string;
|
|
576
|
+
private emitBytesSet;
|
|
577
|
+
emitBytesIntrinsic(e: IrExpr & {
|
|
578
|
+
kind: "bytesIntrinsic";
|
|
579
|
+
}): LlValue;
|
|
580
|
+
emitRegexIntrinsic(e: IrExpr & {
|
|
581
|
+
kind: "regexIntrinsic";
|
|
582
|
+
}): LlValue;
|
|
583
|
+
emitRecordKeyGet(e: IrExpr & {
|
|
584
|
+
kind: "recordKeyGet";
|
|
585
|
+
}): LlValue;
|
|
586
|
+
keyedRecordReadInto(slot: string, join: string, objName: string, keyName: string, shapeId: string, resultType: IrType, overflowOnly: boolean, loc?: SrcLoc): void;
|
|
587
|
+
dynPromiseAdapter(inner: IrType): string;
|
|
588
|
+
streamTypedRefCommitAdapter(t: IrType, snapshot: string): string;
|
|
589
|
+
liveDynRefAdapter(t: IrType): LlStreamTypedRefAdapter;
|
|
590
|
+
liveDynUnionRefAdapter(t: IrType & {
|
|
591
|
+
kind: "union";
|
|
592
|
+
}): string;
|
|
593
|
+
streamTypedRefBoxValue(B: BlockBuilder, t: IrType, value: string): string;
|
|
594
|
+
streamFromArrayAdapter(t: IrType & {
|
|
595
|
+
kind: "array";
|
|
596
|
+
}): string;
|
|
597
|
+
emitWebLibCall(e: LibCallExpr): LlValue;
|
|
598
|
+
emitDynamicLibCall(e: LibCallExpr): LlValue;
|
|
599
|
+
emitFilesystemLibCall(e: LibCallExpr): LlValue;
|
|
600
|
+
emitPathUrlLibCall(e: LibCallExpr): LlValue;
|
|
601
|
+
emitPrimitiveLibCall(e: LibCallExpr): LlValue;
|
|
602
|
+
emitChildProcessLibCall(e: LibCallExpr): LlValue;
|
|
603
|
+
emitAsyncContextLibCall(e: LibCallExpr): LlValue;
|
|
604
|
+
emitProcessLibCall(e: LibCallExpr): LlValue;
|
|
605
|
+
emitErrorsEventsLibCall(e: LibCallExpr): LlValue;
|
|
606
|
+
emitStreamLibCall(e: LibCallExpr): LlValue;
|
|
607
|
+
emitNetworkHttpLibCall(e: LibCallExpr): LlValue;
|
|
608
|
+
emitAssertInspectLibCall(e: LibCallExpr): LlValue;
|
|
609
|
+
emitIoLibCall(e: LibCallExpr): LlValue;
|
|
610
|
+
emitGenericLibCall(e: LibCallExpr): LlValue;
|
|
611
|
+
emitLibCall(e: LibCallExpr): LlValue;
|
|
612
|
+
}
|