@scriptc/compiler 0.1.7 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ambient/scriptc-node-fallback.d.ts +98 -39
- package/ambient/scriptc-overrides.d.ts +10 -6
- package/ambient/scriptc.d.ts +15 -0
- package/dist/backend/build-cache.d.ts +1 -3
- package/dist/backend/build-cache.js +3 -22
- package/dist/backend/build-cache.js.map +1 -1
- package/dist/backend/cache-root.d.ts +3 -0
- package/dist/backend/cache-root.js +23 -0
- package/dist/backend/cache-root.js.map +1 -0
- package/dist/backend/cycle-analysis.d.ts +15 -0
- package/dist/backend/cycle-analysis.js +108 -0
- package/dist/backend/cycle-analysis.js.map +1 -0
- package/dist/backend/cycle-analysis.test.js +124 -0
- package/dist/backend/cycle-analysis.test.js.map +1 -0
- package/dist/backend/executable-features.d.ts +4 -0
- package/dist/backend/executable-features.js +42 -0
- package/dist/backend/executable-features.js.map +1 -0
- package/dist/backend/external-c.d.ts +5 -27
- package/dist/backend/external-c.js +5 -40
- package/dist/backend/external-c.js.map +1 -1
- package/dist/backend/ffi-callbacks.d.ts +2 -3
- package/dist/backend/ffi-callbacks.js +2 -3
- package/dist/backend/ffi-callbacks.js.map +1 -1
- package/dist/backend/library-identity-markers.d.ts +4 -9
- package/dist/backend/library-identity-markers.js +11 -49
- package/dist/backend/library-identity-markers.js.map +1 -1
- package/dist/backend/library-pack.d.ts +5 -0
- package/dist/backend/library-pack.js +123 -0
- package/dist/backend/library-pack.js.map +1 -0
- package/dist/backend/link-plan-core.d.ts +20 -0
- package/dist/backend/link-plan-core.js +18 -0
- package/dist/backend/link-plan-core.js.map +1 -0
- package/dist/backend/link-plan.d.ts +1 -1
- package/dist/backend/link-plan.js +16 -17
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/link-trace.d.ts +2 -0
- package/dist/backend/link-trace.js +24 -0
- package/dist/backend/link-trace.js.map +1 -0
- package/dist/backend/linker.js +1 -1
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/literals.d.ts +9 -0
- package/dist/backend/literals.js +35 -0
- package/dist/backend/literals.js.map +1 -0
- package/dist/backend/literals.test.d.ts +1 -0
- package/dist/backend/literals.test.js +53 -0
- package/dist/backend/literals.test.js.map +1 -0
- package/dist/backend/llvm/blocks.d.ts +2 -0
- package/dist/backend/llvm/blocks.js +9 -4
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/blocks.test.d.ts +1 -0
- package/dist/backend/llvm/blocks.test.js +91 -0
- package/dist/backend/llvm/blocks.test.js.map +1 -0
- package/dist/backend/llvm/classes.d.ts +14 -8
- package/dist/backend/llvm/classes.js +88 -30
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +5 -1
- package/dist/backend/llvm/common.js +45 -4
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/debug-info.js +2 -7
- package/dist/backend/llvm/debug-info.js.map +1 -1
- package/dist/backend/llvm/debug-info.test.d.ts +1 -0
- package/dist/backend/llvm/debug-info.test.js +110 -0
- package/dist/backend/llvm/debug-info.test.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +21 -2
- package/dist/backend/llvm/dyn.js +647 -251
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +596 -1
- package/dist/backend/llvm/emitter.js +769 -425
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.d.ts +1 -0
- package/dist/backend/llvm/emitter.test.js +179 -0
- package/dist/backend/llvm/emitter.test.js.map +1 -0
- package/dist/backend/llvm/expr-async.js +23 -14
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +2 -2
- package/dist/backend/llvm/expr-bytes.js +60 -31
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +1 -1
- package/dist/backend/llvm/expr-callbacks.js +25 -22
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +136 -35
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +1 -1
- package/dist/backend/llvm/expr-containers.js +43 -14
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +5 -260
- package/dist/backend/llvm/expr-control.js +10 -6
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.d.ts +1 -1
- package/dist/backend/llvm/expr-dispatch.js +2 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +78 -81
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-island.d.ts +1 -1
- package/dist/backend/llvm/expr-island.js +11 -7
- package/dist/backend/llvm/expr-island.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +1 -1
- package/dist/backend/llvm/expr-primitives.js +62 -31
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +1 -1
- package/dist/backend/llvm/expr-records.d.ts +5 -1
- package/dist/backend/llvm/expr-records.js +54 -7
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.d.ts +4 -4
- package/dist/backend/llvm/expr-stream-bridges.js +220 -131
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.d.ts +1 -0
- package/dist/backend/llvm/expr-stream-bridges.test.js +55 -0
- package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -0
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.js +12 -12
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/layouts.d.ts +19 -0
- package/dist/backend/llvm/layouts.js +12 -0
- package/dist/backend/llvm/layouts.js.map +1 -0
- package/dist/backend/llvm/lib-abi.d.ts +19 -0
- package/dist/backend/llvm/lib-abi.js +82 -0
- package/dist/backend/llvm/lib-abi.js.map +1 -0
- package/dist/backend/llvm/lib-connect.d.ts +2 -0
- package/dist/backend/llvm/lib-connect.js +51 -0
- package/dist/backend/llvm/lib-connect.js.map +1 -0
- package/dist/backend/llvm/lib-datagram.d.ts +2 -0
- package/dist/backend/llvm/lib-datagram.js +135 -0
- package/dist/backend/llvm/lib-datagram.js.map +1 -0
- package/dist/backend/llvm/lib-dispatch.js +50 -6
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +30 -18
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.d.ts +2 -0
- package/dist/backend/llvm/lib-http2.js +215 -0
- package/dist/backend/llvm/lib-http2.js.map +1 -0
- package/dist/backend/llvm/lib-lookup.d.ts +2 -0
- package/dist/backend/llvm/lib-lookup.js +39 -0
- package/dist/backend/llvm/lib-lookup.js.map +1 -0
- package/dist/backend/llvm/lib-network.js +25 -2
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +44 -19
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +162 -3
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +3 -2
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-test.d.ts +2 -0
- package/dist/backend/llvm/lib-test.js +34 -0
- package/dist/backend/llvm/lib-test.js.map +1 -0
- package/dist/backend/llvm/lib-tls.d.ts +2 -0
- package/dist/backend/llvm/lib-tls.js +82 -0
- package/dist/backend/llvm/lib-tls.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +10 -9
- package/dist/backend/llvm/shapes.js +42 -131
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/unsupported.d.ts +1 -0
- package/dist/backend/llvm/unsupported.js +1 -2
- package/dist/backend/llvm/unsupported.js.map +1 -1
- package/dist/backend/llvm/walkers.js +1 -7
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/mangle.d.ts +2 -2
- package/dist/backend/mangle.js +16 -5
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/{c/may-throw.d.ts → may-throw.d.ts} +1 -1
- package/dist/backend/{c/may-throw.js → may-throw.js} +51 -46
- package/dist/backend/may-throw.js.map +1 -0
- package/dist/backend/may-throw.test.d.ts +1 -0
- package/dist/backend/may-throw.test.js +58 -0
- package/dist/backend/may-throw.test.js.map +1 -0
- package/dist/backend/native-codegen-core.d.ts +22 -0
- package/dist/backend/native-codegen-core.js +44 -0
- package/dist/backend/native-codegen-core.js.map +1 -0
- package/dist/backend/native-codegen.d.ts +3 -19
- package/dist/backend/native-codegen.js +5 -44
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +2 -2
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +94 -0
- package/dist/backend/native-link-info-core.js +62 -0
- package/dist/backend/native-link-info-core.js.map +1 -0
- package/dist/backend/native-link-info.d.ts +3 -88
- package/dist/backend/native-link-info.js +12 -243
- package/dist/backend/native-link-info.js.map +1 -1
- package/dist/backend/native-link-info.test.js +41 -146
- package/dist/backend/native-link-info.test.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +12 -30
- package/dist/backend/native-toolchain.js +83 -233
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +77 -5
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/native-tools.d.ts +24 -0
- package/dist/backend/native-tools.js +33 -0
- package/dist/backend/native-tools.js.map +1 -0
- package/dist/backend/object-localize.js +19 -8
- package/dist/backend/object-localize.js.map +1 -1
- package/dist/backend/object-localize.test.js +22 -0
- package/dist/backend/object-localize.test.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-core.d.ts +101 -0
- package/dist/backend/runtime-pack-core.js +172 -0
- package/dist/backend/runtime-pack-core.js.map +1 -0
- package/dist/backend/runtime-pack-native.d.ts +21 -0
- package/dist/backend/runtime-pack-native.js +73 -0
- package/dist/backend/runtime-pack-native.js.map +1 -0
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.d.ts +3 -83
- package/dist/backend/runtime-pack.js +8 -151
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +24 -1
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/target-diagnostics.d.ts +22 -0
- package/dist/backend/target-diagnostics.js +108 -0
- package/dist/backend/target-diagnostics.js.map +1 -0
- package/dist/backend/target-platform.d.ts +15 -0
- package/dist/backend/target-platform.js +72 -0
- package/dist/backend/target-platform.js.map +1 -0
- package/dist/backend/targets.d.ts +13 -4
- package/dist/backend/targets.js +103 -34
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +72 -4
- package/dist/backend/targets.test.js.map +1 -1
- package/dist/backend/toolchain-environment.d.ts +6 -0
- package/dist/backend/toolchain-environment.js +99 -0
- package/dist/backend/toolchain-environment.js.map +1 -0
- package/dist/backend/vendor-archives.d.ts +1 -9
- package/dist/backend/vendor-archives.js +2 -9
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/backend/vendor-inputs.d.ts +9 -0
- package/dist/backend/vendor-inputs.js +10 -0
- package/dist/backend/vendor-inputs.js.map +1 -0
- package/dist/backend/warm-cache.d.ts +3 -0
- package/dist/backend/warm-cache.js +41 -0
- package/dist/backend/warm-cache.js.map +1 -0
- package/dist/cli/command.d.ts +3 -0
- package/dist/cli/command.js +328 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/host.d.ts +24 -0
- package/dist/cli/host.js +2 -0
- package/dist/cli/host.js.map +1 -0
- package/dist/cli/output-options.d.ts +26 -0
- package/dist/cli/output-options.js +60 -0
- package/dist/cli/output-options.js.map +1 -0
- package/dist/cli/paths.d.ts +12 -0
- package/dist/cli/paths.js +42 -0
- package/dist/cli/paths.js.map +1 -0
- package/dist/cli/usage.d.ts +74 -0
- package/dist/cli/usage.js +86 -0
- package/dist/cli/usage.js.map +1 -0
- package/dist/cli/wasi-paths.d.ts +8 -0
- package/dist/cli/wasi-paths.js +41 -0
- package/dist/cli/wasi-paths.js.map +1 -0
- package/dist/cli/wasi-runner.d.ts +2 -0
- package/dist/cli/wasi-runner.js +28 -0
- package/dist/cli/wasi-runner.js.map +1 -0
- package/dist/compat/fetch-profile.js +37 -7
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/compile-types.d.ts +162 -0
- package/dist/compile-types.js +2 -0
- package/dist/compile-types.js.map +1 -0
- package/dist/coverage/report.js +11 -5
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +5 -2
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.js +5 -10
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +3 -4
- package/dist/executable/executable-cache.js +5 -6
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +16 -17
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.d.ts +14 -0
- package/dist/executable/prepare.js +66 -0
- package/dist/executable/prepare.js.map +1 -0
- package/dist/ffi/ffi-manifest.d.ts +11 -4
- package/dist/ffi/ffi-manifest.js +170 -58
- package/dist/ffi/ffi-manifest.js.map +1 -1
- package/dist/ffi/ffi-manifest.test.d.ts +1 -0
- package/dist/ffi/ffi-manifest.test.js +111 -0
- package/dist/ffi/ffi-manifest.test.js.map +1 -0
- package/dist/format-integer.d.ts +3 -0
- package/dist/format-integer.js +14 -0
- package/dist/format-integer.js.map +1 -0
- package/dist/frontend/analysis.d.ts +5 -0
- package/dist/frontend/analysis.js +88 -0
- package/dist/frontend/analysis.js.map +1 -0
- package/dist/frontend/arguments-usage.d.ts +1 -3
- package/dist/frontend/arguments-usage.js.map +1 -1
- package/dist/frontend/builtin-modules.d.ts +1 -1
- package/dist/frontend/builtin-modules.js +1 -1
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/cjs-lexer.d.ts +4 -25
- package/dist/frontend/cjs-lexer.js +6 -806
- package/dist/frontend/cjs-lexer.js.map +1 -1
- package/dist/frontend/cjs-resolve.d.ts +5 -0
- package/dist/frontend/cjs-resolve.js +429 -0
- package/dist/frontend/cjs-resolve.js.map +1 -0
- package/dist/frontend/cjs-syntax.d.ts +26 -0
- package/dist/frontend/cjs-syntax.js +806 -0
- package/dist/frontend/cjs-syntax.js.map +1 -0
- package/dist/frontend/comptime-node.d.ts +4 -0
- package/dist/frontend/comptime-node.js +16 -0
- package/dist/frontend/comptime-node.js.map +1 -0
- package/dist/frontend/comptime-node.test.d.ts +1 -0
- package/dist/frontend/comptime-node.test.js +37 -0
- package/dist/frontend/comptime-node.test.js.map +1 -0
- package/dist/frontend/dts-paths.d.ts +3 -4
- package/dist/frontend/dts-paths.js +15 -8
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/fork-target.js +2 -2
- package/dist/frontend/fork-target.js.map +1 -1
- package/dist/frontend/helper-tokens.d.ts +1 -0
- package/dist/frontend/helper-tokens.js +147 -0
- package/dist/frontend/helper-tokens.js.map +1 -0
- package/dist/frontend/helper-tokens.test.d.ts +1 -0
- package/dist/frontend/helper-tokens.test.js +35 -0
- package/dist/frontend/helper-tokens.test.js.map +1 -0
- package/dist/frontend/inferred-js-diagnostics.d.ts +5 -0
- package/dist/frontend/inferred-js-diagnostics.js +69 -0
- package/dist/frontend/inferred-js-diagnostics.js.map +1 -0
- package/dist/frontend/inferred-js-diagnostics.test.d.ts +1 -0
- package/dist/frontend/inferred-js-diagnostics.test.js +58 -0
- package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -0
- package/dist/frontend/input-tracker.d.ts +5 -2
- package/dist/frontend/input-tracker.js +24 -3
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +23 -0
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lib-contract.js +32 -24
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/literal-values.d.ts +4 -0
- package/dist/frontend/literal-values.js +21 -0
- package/dist/frontend/literal-values.js.map +1 -0
- package/dist/frontend/literal-values.test.d.ts +1 -0
- package/dist/frontend/literal-values.test.js +91 -0
- package/dist/frontend/literal-values.test.js.map +1 -0
- package/dist/frontend/lowering/abstract-equality.d.ts +1 -1
- package/dist/frontend/lowering/abstract-equality.js +3 -0
- package/dist/frontend/lowering/abstract-equality.js.map +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.js +11 -6
- package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
- package/dist/frontend/lowering/array-values.d.ts +4 -1
- package/dist/frontend/lowering/array-values.js +43 -1
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/callback-arg.js +1 -0
- package/dist/frontend/lowering/callback-arg.js.map +1 -1
- package/dist/frontend/lowering/class-callbacks.d.ts +12 -0
- package/dist/frontend/lowering/class-callbacks.js +74 -0
- package/dist/frontend/lowering/class-callbacks.js.map +1 -0
- package/dist/frontend/lowering/class-construction.d.ts +12 -0
- package/dist/frontend/lowering/class-construction.js +156 -0
- package/dist/frontend/lowering/class-construction.js.map +1 -0
- package/dist/frontend/lowering/class-descriptors.d.ts +10 -0
- package/dist/frontend/lowering/class-descriptors.js +114 -0
- package/dist/frontend/lowering/class-descriptors.js.map +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +51 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +1158 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.d.ts +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +93 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -0
- package/dist/frontend/lowering/class-instance-constructor.d.ts +7 -0
- package/dist/frontend/lowering/class-instance-constructor.js +67 -0
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -0
- package/dist/frontend/lowering/class-method-values.d.ts +13 -0
- package/dist/frontend/lowering/class-method-values.js +235 -0
- package/dist/frontend/lowering/class-method-values.js.map +1 -0
- package/dist/frontend/lowering/class-prototypes.d.ts +19 -0
- package/dist/frontend/lowering/class-prototypes.js +242 -0
- package/dist/frontend/lowering/class-prototypes.js.map +1 -0
- package/dist/frontend/lowering/class-runtime-statics.d.ts +8 -0
- package/dist/frontend/lowering/class-runtime-statics.js +66 -0
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -0
- package/dist/frontend/lowering/class-static-data.d.ts +6 -0
- package/dist/frontend/lowering/class-static-data.js +56 -0
- package/dist/frontend/lowering/class-static-data.js.map +1 -0
- package/dist/frontend/lowering/containers/buffer-numeric-methods.d.ts +4 -0
- package/dist/frontend/lowering/containers/buffer-numeric-methods.js +26 -0
- package/dist/frontend/lowering/containers/buffer-numeric-methods.js.map +1 -0
- package/dist/frontend/lowering/containers/bytes.d.ts +11 -7
- package/dist/frontend/lowering/containers/bytes.js +208 -163
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.d.ts +2 -2
- package/dist/frontend/lowering/containers/string-and-regexp.js +58 -63
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.d.ts +7 -0
- package/dist/frontend/lowering/containers/string-replacement.js +217 -0
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -0
- package/dist/frontend/lowering/error-methods.d.ts +14 -0
- package/dist/frontend/lowering/error-methods.js +177 -0
- package/dist/frontend/lowering/error-methods.js.map +1 -0
- package/dist/frontend/lowering/expressions/global-symbols.d.ts +6 -0
- package/dist/frontend/lowering/expressions/global-symbols.js +11 -0
- package/dist/frontend/lowering/expressions/global-symbols.js.map +1 -0
- package/dist/frontend/lowering/expressions/native-proxy.d.ts +7 -0
- package/dist/frontend/lowering/expressions/native-proxy.js +51 -0
- package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.d.ts +6 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js +132 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -0
- package/dist/frontend/lowering/expressions/object-literals.d.ts +8 -8
- package/dist/frontend/lowering/expressions/object-literals.js +509 -183
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +3 -4
- package/dist/frontend/lowering/expressions/optional-chains.js +88 -24
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/try-lower-expression.js +1 -0
- package/dist/frontend/lowering/expressions/try-lower-expression.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-field-write.d.ts +8 -0
- package/dist/frontend/lowering/expressions/union-field-write.js +71 -0
- package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -0
- package/dist/frontend/lowering/function-context.d.ts +101 -0
- package/dist/frontend/lowering/function-context.js +109 -0
- package/dist/frontend/lowering/function-context.js.map +1 -0
- package/dist/frontend/lowering/generator-delegation.d.ts +7 -0
- package/dist/frontend/lowering/generator-delegation.js +85 -0
- package/dist/frontend/lowering/generator-delegation.js.map +1 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +11 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +143 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.d.ts +4 -1
- package/dist/frontend/lowering/lib-boundary.js +112 -20
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lib-boundary.test.d.ts +1 -0
- package/dist/frontend/lowering/lib-boundary.test.js +45 -0
- package/dist/frontend/lowering/lib-boundary.test.js.map +1 -0
- package/dist/frontend/lowering/lower-array-sort.d.ts +1 -1
- package/dist/frontend/lowering/lower-assert.d.ts +1 -1
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.d.ts +1 -1
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.d.ts +18 -0
- package/dist/frontend/lowering/lower-builtin-values.js +249 -0
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -0
- package/dist/frontend/lowering/lower-builtins.d.ts +33 -46
- package/dist/frontend/lowering/lower-builtins.js +676 -365
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +28 -22
- package/dist/frontend/lowering/lower-calls.js +1660 -412
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +95 -57
- package/dist/frontend/lowering/lower-classes.js +1491 -404
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +1 -1
- package/dist/frontend/lowering/lower-comptime.js +23 -32
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +36 -32
- package/dist/frontend/lowering/lower-containers.js +925 -181
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.d.ts +1 -1
- package/dist/frontend/lowering/lower-dgram.js +3 -2
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.d.ts +1 -1
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +30 -1
- package/dist/frontend/lowering/lower-event-emitter.js +58 -26
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-expando.d.ts +7 -1
- package/dist/frontend/lowering/lower-expando.js +14 -6
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +37 -13
- package/dist/frontend/lowering/lower-exprs.js +2163 -863
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +2 -5
- package/dist/frontend/lowering/lower-generators.js +88 -46
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.d.ts +7 -0
- package/dist/frontend/lowering/lower-global-value.js +17 -0
- package/dist/frontend/lowering/lower-global-value.js.map +1 -0
- package/dist/frontend/lowering/lower-inspect.d.ts +1 -1
- package/dist/frontend/lowering/lower-inspect.js +17 -8
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +7 -8
- package/dist/frontend/lowering/lower-island.js +66 -33
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.d.ts +2 -2
- package/dist/frontend/lowering/lower-mixins.js +5 -3
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +1 -1
- package/dist/frontend/lowering/lower-modules.js +445 -39
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.test.d.ts +1 -0
- package/dist/frontend/lowering/lower-modules.test.js +39 -0
- package/dist/frontend/lowering/lower-modules.test.js.map +1 -0
- package/dist/frontend/lowering/lower-namespaces.d.ts +1 -1
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-module.d.ts +1 -1
- package/dist/frontend/lowering/lower-node-module.js +13 -10
- package/dist/frontend/lowering/lower-node-module.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +1 -1
- package/dist/frontend/lowering/lower-server.js +6 -10
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +17 -17
- package/dist/frontend/lowering/lower-stmts.js +855 -514
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +1 -1
- package/dist/frontend/lowering/lower-stream.js +20 -11
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-test.d.ts +1 -1
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lower-url.d.ts +6 -0
- package/dist/frontend/lowering/lower-url.js +77 -0
- package/dist/frontend/lowering/lower-url.js.map +1 -0
- package/dist/frontend/lowering/lowerer.d.ts +140 -190
- package/dist/frontend/lowering/lowerer.js +1193 -712
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.d.ts +1 -0
- package/dist/frontend/lowering/lowerer.test.js +172 -0
- package/dist/frontend/lowering/lowerer.test.js.map +1 -0
- package/dist/frontend/lowering/native-ffi.d.ts +5 -0
- package/dist/frontend/lowering/native-ffi.js +40 -0
- package/dist/frontend/lowering/native-ffi.js.map +1 -0
- package/dist/frontend/lowering/object-enumeration-receiver.d.ts +7 -0
- package/dist/frontend/lowering/object-enumeration-receiver.js +33 -0
- package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -0
- package/dist/frontend/lowering/object-factory-new.d.ts +8 -0
- package/dist/frontend/lowering/object-factory-new.js +68 -0
- package/dist/frontend/lowering/object-factory-new.js.map +1 -0
- package/dist/frontend/lowering/optional-arguments.js +6 -1
- package/dist/frontend/lowering/optional-arguments.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.js +2 -1
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-locals.d.ts +14 -0
- package/dist/frontend/lowering/runtime-optional-locals.js +41 -0
- package/dist/frontend/lowering/runtime-optional-locals.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-locals.test.d.ts +1 -0
- package/dist/frontend/lowering/runtime-optional-locals.test.js +85 -0
- package/dist/frontend/lowering/runtime-optional-locals.test.js.map +1 -0
- package/dist/frontend/lowering/sanitize-class-types.d.ts +8 -0
- package/dist/frontend/lowering/sanitize-class-types.js +79 -0
- package/dist/frontend/lowering/sanitize-class-types.js.map +1 -0
- package/dist/frontend/lowering/sanitize-class-types.test.d.ts +1 -0
- package/dist/frontend/lowering/sanitize-class-types.test.js +60 -0
- package/dist/frontend/lowering/sanitize-class-types.test.js.map +1 -0
- package/dist/frontend/lowering/static-this.d.ts +5 -1
- package/dist/frontend/lowering/static-this.js +28 -2
- package/dist/frontend/lowering/static-this.js.map +1 -1
- package/dist/frontend/lowering/string-index.d.ts +7 -0
- package/dist/frontend/lowering/string-index.js +39 -0
- package/dist/frontend/lowering/string-index.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +10 -3
- package/dist/frontend/lowering/surfaces.js +86 -37
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/symbol-fields.d.ts +22 -0
- package/dist/frontend/lowering/symbol-fields.js +183 -0
- package/dist/frontend/lowering/symbol-fields.js.map +1 -0
- package/dist/frontend/lowering/symbol-methods.d.ts +7 -0
- package/dist/frontend/lowering/symbol-methods.js +30 -0
- package/dist/frontend/lowering/symbol-methods.js.map +1 -0
- package/dist/frontend/lowering/text-decoder-encoding.d.ts +12 -0
- package/dist/frontend/lowering/text-decoder-encoding.js +82 -0
- package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -0
- package/dist/frontend/lowering/text-decoder-encoding.test.d.ts +1 -0
- package/dist/frontend/lowering/text-decoder-encoding.test.js +38 -0
- package/dist/frontend/lowering/text-decoder-encoding.test.js.map +1 -0
- package/dist/frontend/lowering/union-narrow.d.ts +9 -0
- package/dist/frontend/lowering/union-narrow.js +59 -0
- package/dist/frontend/lowering/union-narrow.js.map +1 -0
- package/dist/frontend/lowering/union-narrow.test.d.ts +1 -0
- package/dist/frontend/lowering/union-narrow.test.js +72 -0
- package/dist/frontend/lowering/union-narrow.test.js.map +1 -0
- package/dist/frontend/lowering/union-retag.d.ts +43 -0
- package/dist/frontend/lowering/union-retag.js +259 -0
- package/dist/frontend/lowering/union-retag.js.map +1 -0
- package/dist/frontend/lowering/union-retag.test.d.ts +1 -0
- package/dist/frontend/lowering/union-retag.test.js +405 -0
- package/dist/frontend/lowering/union-retag.test.js.map +1 -0
- package/dist/frontend/lowering/unregistered-class-types.d.ts +14 -0
- package/dist/frontend/lowering/unregistered-class-types.js +94 -0
- package/dist/frontend/lowering/unregistered-class-types.js.map +1 -0
- package/dist/frontend/lowering/unregistered-class-types.test.d.ts +1 -0
- package/dist/frontend/lowering/unregistered-class-types.test.js +65 -0
- package/dist/frontend/lowering/unregistered-class-types.test.js.map +1 -0
- package/dist/frontend/lowering/width-lift.d.ts +40 -0
- package/dist/frontend/lowering/width-lift.js +2 -0
- package/dist/frontend/lowering/width-lift.js.map +1 -0
- package/dist/frontend/module-syntax.d.ts +58 -0
- package/dist/frontend/module-syntax.js +123 -0
- package/dist/frontend/module-syntax.js.map +1 -0
- package/dist/frontend/module-syntax.test.d.ts +1 -0
- package/dist/frontend/module-syntax.test.js +78 -0
- package/dist/frontend/module-syntax.test.js.map +1 -0
- package/dist/frontend/npm-fetch-analysis.d.ts +17 -0
- package/dist/frontend/npm-fetch-analysis.js +100 -0
- package/dist/frontend/npm-fetch-analysis.js.map +1 -0
- package/dist/frontend/npm-fetch-analysis.test.d.ts +1 -0
- package/dist/frontend/npm-fetch-analysis.test.js +107 -0
- package/dist/frontend/npm-fetch-analysis.test.js.map +1 -0
- package/dist/frontend/npm-fetch-node.d.ts +2 -0
- package/dist/frontend/npm-fetch-node.js +12 -0
- package/dist/frontend/npm-fetch-node.js.map +1 -0
- package/dist/frontend/npm-fetch-syntax.d.ts +6 -0
- package/dist/frontend/npm-fetch-syntax.js +207 -0
- package/dist/frontend/npm-fetch-syntax.js.map +1 -0
- package/dist/frontend/npm-node.d.ts +10 -0
- package/dist/frontend/npm-node.js +14 -0
- package/dist/frontend/npm-node.js.map +1 -0
- package/dist/frontend/npm-static-bundled-cjs.d.ts +8 -0
- package/dist/frontend/npm-static-bundled-cjs.js +236 -0
- package/dist/frontend/npm-static-bundled-cjs.js.map +1 -0
- package/dist/frontend/npm-static-bundled-cjs.test.d.ts +1 -0
- package/dist/frontend/npm-static-bundled-cjs.test.js +69 -0
- package/dist/frontend/npm-static-bundled-cjs.test.js.map +1 -0
- package/dist/frontend/npm-static-declaration-syntax.d.ts +57 -0
- package/dist/frontend/npm-static-declaration-syntax.js +944 -0
- package/dist/frontend/npm-static-declaration-syntax.js.map +1 -0
- package/dist/frontend/npm-static-declarations.d.ts +11 -39
- package/dist/frontend/npm-static-declarations.js +22 -561
- package/dist/frontend/npm-static-declarations.js.map +1 -1
- package/dist/frontend/npm-static-declarations.test.js +245 -6
- package/dist/frontend/npm-static-declarations.test.js.map +1 -1
- package/dist/frontend/npm-static-prune.d.ts +1 -1
- package/dist/frontend/npm-static-prune.js +121 -38
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-prune.test.js +9 -1
- package/dist/frontend/npm-static-prune.test.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-host.d.ts +4 -0
- package/dist/frontend/npm-static-rewrite-host.js +179 -0
- package/dist/frontend/npm-static-rewrite-host.js.map +1 -0
- package/dist/frontend/npm-static-rewrite-syntax.d.ts +16 -0
- package/dist/frontend/npm-static-rewrite-syntax.js +905 -0
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -0
- package/dist/frontend/npm-static-rewrite.d.ts +0 -5
- package/dist/frontend/npm-static-rewrite.js +2 -1079
- package/dist/frontend/npm-static-rewrite.js.map +1 -1
- package/dist/frontend/npm-static-subtyping.d.ts +5 -0
- package/dist/frontend/npm-static-subtyping.js +55 -0
- package/dist/frontend/npm-static-subtyping.js.map +1 -0
- package/dist/frontend/npm-static-subtyping.test.d.ts +1 -0
- package/dist/frontend/npm-static-subtyping.test.js +58 -0
- package/dist/frontend/npm-static-subtyping.test.js.map +1 -0
- package/dist/frontend/npm-static.d.ts +7 -15
- package/dist/frontend/npm-static.js +19 -28
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.d.ts +8 -69
- package/dist/frontend/npm.js +21 -361
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/npm.test.js +2 -2
- package/dist/frontend/npm.test.js.map +1 -1
- package/dist/frontend/pipeline-native.d.ts +6 -0
- package/dist/frontend/pipeline-native.js +32 -0
- package/dist/frontend/pipeline-native.js.map +1 -0
- package/dist/frontend/pipeline.d.ts +54 -0
- package/dist/frontend/pipeline.js +382 -0
- package/dist/frontend/pipeline.js.map +1 -0
- package/dist/frontend/pipeline.test.d.ts +1 -0
- package/dist/frontend/pipeline.test.js +77 -0
- package/dist/frontend/pipeline.test.js.map +1 -0
- package/dist/frontend/program-analysis.d.ts +10 -0
- package/dist/frontend/program-analysis.js +14 -0
- package/dist/frontend/program-analysis.js.map +1 -0
- package/dist/frontend/program-node.d.ts +9 -0
- package/dist/frontend/program-node.js +48 -0
- package/dist/frontend/program-node.js.map +1 -0
- package/dist/frontend/program.d.ts +39 -20
- package/dist/frontend/program.js +393 -189
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +105 -2
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/provenance-core.d.ts +9 -0
- package/dist/frontend/provenance-core.js +435 -0
- package/dist/frontend/provenance-core.js.map +1 -0
- package/dist/frontend/provenance.d.ts +0 -4
- package/dist/frontend/provenance.js +4 -459
- package/dist/frontend/provenance.js.map +1 -1
- package/dist/frontend/resolve.d.ts +3 -1
- package/dist/frontend/resolve.js +6 -3
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/runtime-resolve.d.ts +4 -3
- package/dist/frontend/runtime-resolve.js +22 -18
- package/dist/frontend/runtime-resolve.js.map +1 -1
- package/dist/frontend/runtime-resolve.test.js +53 -0
- package/dist/frontend/runtime-resolve.test.js.map +1 -1
- package/dist/frontend/services-node.d.ts +5 -0
- package/dist/frontend/services-node.js +19 -0
- package/dist/frontend/services-node.js.map +1 -0
- package/dist/frontend/services-node.test.d.ts +1 -0
- package/dist/frontend/services-node.test.js +70 -0
- package/dist/frontend/services-node.test.js.map +1 -0
- package/dist/frontend/services.d.ts +44 -0
- package/dist/frontend/services.js +90 -0
- package/dist/frontend/services.js.map +1 -0
- package/dist/frontend/services.test.d.ts +1 -0
- package/dist/frontend/services.test.js +174 -0
- package/dist/frontend/services.test.js.map +1 -0
- package/dist/frontend/ts7/adapter.d.ts +3 -3
- package/dist/frontend/ts7/adapter.js +14 -31
- package/dist/frontend/ts7/adapter.js.map +1 -1
- package/dist/frontend/ts7/api.d.ts +16 -0
- package/dist/frontend/ts7/api.js +24 -0
- package/dist/frontend/ts7/api.js.map +1 -0
- package/dist/frontend/ts7/ast-bytes.d.ts +31 -0
- package/dist/frontend/ts7/ast-bytes.js +137 -0
- package/dist/frontend/ts7/ast-bytes.js.map +1 -0
- package/dist/frontend/ts7/ast-bytes.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-bytes.test.js +73 -0
- package/dist/frontend/ts7/ast-bytes.test.js.map +1 -0
- package/dist/frontend/ts7/ast-guards.generated.d.ts +353 -0
- package/dist/frontend/ts7/ast-guards.generated.js +1951 -0
- package/dist/frontend/ts7/ast-guards.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-guards.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-guards.test.js +43 -0
- package/dist/frontend/ts7/ast-guards.test.js.map +1 -0
- package/dist/frontend/ts7/ast-node.d.ts +194 -0
- package/dist/frontend/ts7/ast-node.js +448 -0
- package/dist/frontend/ts7/ast-node.js.map +1 -0
- package/dist/frontend/ts7/ast-node.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-node.test.js +266 -0
- package/dist/frontend/ts7/ast-node.test.js.map +1 -0
- package/dist/frontend/ts7/ast-schema.generated.d.ts +503 -0
- package/dist/frontend/ts7/ast-schema.generated.js +1446 -0
- package/dist/frontend/ts7/ast-schema.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-text.d.ts +6 -0
- package/dist/frontend/ts7/ast-text.js +124 -0
- package/dist/frontend/ts7/ast-text.js.map +1 -0
- package/dist/frontend/ts7/ast-text.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-text.test.js +38 -0
- package/dist/frontend/ts7/ast-text.test.js.map +1 -0
- package/dist/frontend/ts7/ast-tokens.generated.d.ts +2 -0
- package/dist/frontend/ts7/ast-tokens.generated.js +155 -0
- package/dist/frontend/ts7/ast-tokens.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-types.d.ts +42 -0
- package/dist/frontend/ts7/ast-types.generated.d.ts +1615 -0
- package/dist/frontend/ts7/ast-types.generated.js +5 -0
- package/dist/frontend/ts7/ast-types.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-types.js +3 -0
- package/dist/frontend/ts7/ast-types.js.map +1 -0
- package/dist/frontend/ts7/ast-wire.d.ts +58 -0
- package/dist/frontend/ts7/ast-wire.js +267 -0
- package/dist/frontend/ts7/ast-wire.js.map +1 -0
- package/dist/frontend/ts7/ast-wire.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-wire.test.js +151 -0
- package/dist/frontend/ts7/ast-wire.test.js.map +1 -0
- package/dist/frontend/ts7/ast.d.ts +14 -14
- package/dist/frontend/ts7/ast.js +25 -18
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/census-check.js +1 -0
- package/dist/frontend/ts7/census-check.js.map +1 -1
- package/dist/frontend/ts7/checker-cache.d.ts +48 -0
- package/dist/frontend/ts7/checker-cache.js +92 -0
- package/dist/frontend/ts7/checker-cache.js.map +1 -0
- package/dist/frontend/ts7/checker.d.ts +19 -46
- package/dist/frontend/ts7/checker.js +231 -161
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.d.ts +1 -0
- package/dist/frontend/ts7/checker.test.js +335 -0
- package/dist/frontend/ts7/checker.test.js.map +1 -0
- package/dist/frontend/ts7/enums.d.ts +4 -27
- package/dist/frontend/ts7/enums.generated.d.ts +878 -0
- package/dist/frontend/ts7/enums.generated.js +1313 -0
- package/dist/frontend/ts7/enums.generated.js.map +1 -0
- package/dist/frontend/ts7/enums.js +4 -45
- package/dist/frontend/ts7/enums.js.map +1 -1
- package/dist/frontend/ts7/enums.test.d.ts +1 -0
- package/dist/frontend/ts7/enums.test.js +48 -0
- package/dist/frontend/ts7/enums.test.js.map +1 -0
- package/dist/frontend/ts7/native-api.d.ts +10 -0
- package/dist/frontend/ts7/native-api.js +10 -0
- package/dist/frontend/ts7/native-api.js.map +1 -0
- package/dist/frontend/ts7/native-host.d.ts +2 -0
- package/dist/frontend/ts7/native-host.js +11 -0
- package/dist/frontend/ts7/native-host.js.map +1 -0
- package/dist/frontend/ts7/native-process.d.ts +14 -0
- package/dist/frontend/ts7/native-process.js +62 -0
- package/dist/frontend/ts7/native-process.js.map +1 -0
- package/dist/frontend/ts7/program-adapter.d.ts +10 -98
- package/dist/frontend/ts7/program-adapter.js +16 -310
- package/dist/frontend/ts7/program-adapter.js.map +1 -1
- package/dist/frontend/ts7/program-host.d.ts +115 -0
- package/dist/frontend/ts7/program-host.js +347 -0
- package/dist/frontend/ts7/program-host.js.map +1 -0
- package/dist/frontend/ts7/program-host.test.d.ts +1 -0
- package/dist/frontend/ts7/program-host.test.js +207 -0
- package/dist/frontend/ts7/program-host.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-api.d.ts +12 -0
- package/dist/frontend/ts7/rpc-api.js +23 -0
- package/dist/frontend/ts7/rpc-api.js.map +1 -0
- package/dist/frontend/ts7/rpc-client.d.ts +27 -0
- package/dist/frontend/ts7/rpc-client.js +102 -0
- package/dist/frontend/ts7/rpc-client.js.map +1 -0
- package/dist/frontend/ts7/rpc-client.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-client.test.js +133 -0
- package/dist/frontend/ts7/rpc-client.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-filesystem.d.ts +16 -0
- package/dist/frontend/ts7/rpc-filesystem.js +42 -0
- package/dist/frontend/ts7/rpc-filesystem.js.map +1 -0
- package/dist/frontend/ts7/rpc-filesystem.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-filesystem.test.js +89 -0
- package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-process.d.ts +2 -0
- package/dist/frontend/ts7/rpc-process.js +148 -0
- package/dist/frontend/ts7/rpc-process.js.map +1 -0
- package/dist/frontend/ts7/rpc-process.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-process.test.js +29 -0
- package/dist/frontend/ts7/rpc-process.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-wire.d.ts +46 -0
- package/dist/frontend/ts7/rpc-wire.js +195 -0
- package/dist/frontend/ts7/rpc-wire.js.map +1 -0
- package/dist/frontend/ts7/rpc-wire.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-wire.test.js +168 -0
- package/dist/frontend/ts7/rpc-wire.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-checker.d.ts +137 -0
- package/dist/frontend/ts7/semantic-checker.js +221 -0
- package/dist/frontend/ts7/semantic-checker.js.map +1 -0
- package/dist/frontend/ts7/semantic-checker.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-checker.test.js +119 -0
- package/dist/frontend/ts7/semantic-checker.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-json.d.ts +5 -0
- package/dist/frontend/ts7/semantic-json.js +47 -0
- package/dist/frontend/ts7/semantic-json.js.map +1 -0
- package/dist/frontend/ts7/semantic-json.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-json.test.js +42 -0
- package/dist/frontend/ts7/semantic-json.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-model.d.ts +222 -0
- package/dist/frontend/ts7/semantic-model.js +423 -0
- package/dist/frontend/ts7/semantic-model.js.map +1 -0
- package/dist/frontend/ts7/semantic-model.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-model.test.js +322 -0
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-schema.generated.d.ts +283 -0
- package/dist/frontend/ts7/semantic-schema.generated.js +222 -0
- package/dist/frontend/ts7/semantic-schema.generated.js.map +1 -0
- package/dist/frontend/ts7/semantic-types.d.ts +5 -0
- package/dist/frontend/ts7/semantic-types.js +2 -0
- package/dist/frontend/ts7/semantic-types.js.map +1 -0
- package/dist/frontend/ts7/session-cache.d.ts +17 -0
- package/dist/frontend/ts7/session-cache.js +97 -0
- package/dist/frontend/ts7/session-cache.js.map +1 -0
- package/dist/frontend/ts7/session-cache.test.d.ts +1 -0
- package/dist/frontend/ts7/session-cache.test.js +87 -0
- package/dist/frontend/ts7/session-cache.test.js.map +1 -0
- package/dist/frontend/ts7/session-path.d.ts +18 -0
- package/dist/frontend/ts7/session-path.js +203 -0
- package/dist/frontend/ts7/session-path.js.map +1 -0
- package/dist/frontend/ts7/session-path.test.d.ts +1 -0
- package/dist/frontend/ts7/session-path.test.js +34 -0
- package/dist/frontend/ts7/session-path.test.js.map +1 -0
- package/dist/frontend/ts7/session-schema.generated.d.ts +167 -0
- package/dist/frontend/ts7/session-schema.generated.js +5 -0
- package/dist/frontend/ts7/session-schema.generated.js.map +1 -0
- package/dist/frontend/ts7/session-timing.d.ts +50 -0
- package/dist/frontend/ts7/session-timing.js +61 -0
- package/dist/frontend/ts7/session-timing.js.map +1 -0
- package/dist/frontend/ts7/session-timing.test.d.ts +1 -0
- package/dist/frontend/ts7/session-timing.test.js +52 -0
- package/dist/frontend/ts7/session-timing.test.js.map +1 -0
- package/dist/frontend/ts7/session.d.ts +105 -0
- package/dist/frontend/ts7/session.js +233 -0
- package/dist/frontend/ts7/session.js.map +1 -0
- package/dist/frontend/ts7/session.test.d.ts +1 -0
- package/dist/frontend/ts7/session.test.js +215 -0
- package/dist/frontend/ts7/session.test.js.map +1 -0
- package/dist/frontend/ts7/source-parser-node.d.ts +6 -0
- package/dist/frontend/ts7/source-parser-node.js +15 -0
- package/dist/frontend/ts7/source-parser-node.js.map +1 -0
- package/dist/frontend/ts7/source-parser.d.ts +25 -0
- package/dist/frontend/ts7/source-parser.js +96 -0
- package/dist/frontend/ts7/source-parser.js.map +1 -0
- package/dist/frontend/ts7/source-parser.test.d.ts +1 -0
- package/dist/frontend/ts7/source-parser.test.js +151 -0
- package/dist/frontend/ts7/source-parser.test.js.map +1 -0
- package/dist/frontend/ts7/syntax.d.ts +3 -0
- package/dist/frontend/ts7/syntax.js +4 -0
- package/dist/frontend/ts7/syntax.js.map +1 -0
- package/dist/frontend/tsc-codes.js +3 -0
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +34 -18
- package/dist/frontend/type-mapper.js +552 -131
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +146 -2
- package/dist/frontend/type-mapper.test.js.map +1 -1
- package/dist/frontend/union-discriminants.d.ts +16 -0
- package/dist/frontend/union-discriminants.js +98 -0
- package/dist/frontend/union-discriminants.js.map +1 -0
- package/dist/frontend/union-discriminants.test.d.ts +1 -0
- package/dist/frontend/union-discriminants.test.js +182 -0
- package/dist/frontend/union-discriminants.test.js.map +1 -0
- package/dist/index.d.ts +7 -198
- package/dist/index.js +369 -1572
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +16 -4
- package/dist/ir/analysis.js +23 -4
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/analysis.test.js +15 -2
- package/dist/ir/analysis.test.js.map +1 -1
- package/dist/ir/constant-tables.js +67 -49
- package/dist/ir/constant-tables.js.map +1 -1
- package/dist/ir/constant-tables.test.js +1 -1
- package/dist/ir/control-flow.d.ts +6 -0
- package/dist/ir/control-flow.js +142 -0
- package/dist/ir/control-flow.js.map +1 -0
- package/dist/ir/control-flow.test.d.ts +1 -0
- package/dist/ir/control-flow.test.js +113 -0
- package/dist/ir/control-flow.test.js.map +1 -0
- package/dist/ir/integer-loops.js +7 -18
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-ranges.js +53 -27
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/ir.d.ts +334 -176
- package/dist/ir/ir.js +710 -903
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +162 -1
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/scalar-records.js +165 -134
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/scalar-records.test.js +1 -1
- package/dist/ir/serialize.d.ts +4 -2
- package/dist/ir/serialize.js +33 -14
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.d.ts +1 -0
- package/dist/ir/serialize.test.js +57 -0
- package/dist/ir/serialize.test.js.map +1 -0
- package/dist/ir/traverse.d.ts +41 -0
- package/dist/ir/traverse.js +660 -0
- package/dist/ir/traverse.js.map +1 -0
- package/dist/ir/traverse.test.d.ts +1 -0
- package/dist/ir/traverse.test.js +242 -0
- package/dist/ir/traverse.test.js.map +1 -0
- package/dist/ir/validate.js +2018 -1498
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +536 -2
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/cache-primitives.d.ts +2 -3
- package/dist/library/cache-primitives.js +4 -6
- package/dist/library/cache-primitives.js.map +1 -1
- package/dist/library/fence-eval.js +2 -2
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/int-infer.js +7 -6
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/library-cache.d.ts +3 -2
- package/dist/library/library-cache.js +5 -17
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +54 -41
- package/dist/library/library-cache.test.js.map +1 -1
- package/dist/library/library-profile.d.ts +3 -1
- package/dist/library/library-profile.js +15 -6
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/prepare.d.ts +15 -0
- package/dist/library/prepare.js +584 -0
- package/dist/library/prepare.js.map +1 -0
- package/dist/library/semantic-source.d.ts +1 -1
- package/dist/library/semantic-source.js +8 -6
- package/dist/library/semantic-source.js.map +1 -1
- package/dist/library/sidecar-validate.js +4 -4
- package/dist/library/sidecar-validate.js.map +1 -1
- package/dist/library/sidecar.d.ts +2 -0
- package/dist/library/sidecar.js +10 -3
- package/dist/library/sidecar.js.map +1 -1
- package/dist/native/cache.d.ts +11 -0
- package/dist/native/cache.js +113 -0
- package/dist/native/cache.js.map +1 -0
- package/dist/native/cache.test.d.ts +1 -0
- package/dist/native/cache.test.js +66 -0
- package/dist/native/cache.test.js.map +1 -0
- package/dist/native/cli.d.ts +1 -0
- package/dist/native/cli.js +112 -0
- package/dist/native/cli.js.map +1 -0
- package/dist/native/compiler.d.ts +15 -0
- package/dist/native/compiler.js +336 -0
- package/dist/native/compiler.js.map +1 -0
- package/dist/native/compiler.test.d.ts +1 -0
- package/dist/native/compiler.test.js +174 -0
- package/dist/native/compiler.test.js.map +1 -0
- package/dist/native/comptime.d.ts +5 -0
- package/dist/native/comptime.js +73 -0
- package/dist/native/comptime.js.map +1 -0
- package/dist/native/comptime.test.d.ts +1 -0
- package/dist/native/comptime.test.js +65 -0
- package/dist/native/comptime.test.js.map +1 -0
- package/dist/native/executable-cache.d.ts +26 -0
- package/dist/native/executable-cache.js +228 -0
- package/dist/native/executable-cache.js.map +1 -0
- package/dist/native/executable-cache.test.d.ts +1 -0
- package/dist/native/executable-cache.test.js +151 -0
- package/dist/native/executable-cache.test.js.map +1 -0
- package/dist/native/file-identity.d.ts +4 -0
- package/dist/native/file-identity.js +14 -0
- package/dist/native/file-identity.js.map +1 -0
- package/dist/native/file-identity.test.d.ts +1 -0
- package/dist/native/file-identity.test.js +43 -0
- package/dist/native/file-identity.test.js.map +1 -0
- package/dist/native/library.d.ts +22 -0
- package/dist/native/library.js +83 -0
- package/dist/native/library.js.map +1 -0
- package/dist/native/prepare.d.ts +21 -0
- package/dist/native/prepare.js +174 -0
- package/dist/native/prepare.js.map +1 -0
- package/dist/native/prepare.test.d.ts +1 -0
- package/dist/native/prepare.test.js +70 -0
- package/dist/native/prepare.test.js.map +1 -0
- package/dist/native/sanitizer.d.ts +11 -0
- package/dist/native/sanitizer.js +137 -0
- package/dist/native/sanitizer.js.map +1 -0
- package/dist/native/sanitizer.test.d.ts +1 -0
- package/dist/native/sanitizer.test.js +58 -0
- package/dist/native/sanitizer.test.js.map +1 -0
- package/dist/native/task.d.ts +4 -0
- package/dist/native/task.js +16 -0
- package/dist/native/task.js.map +1 -0
- package/dist/native/task.test.d.ts +1 -0
- package/dist/native/task.test.js +17 -0
- package/dist/native/task.test.js.map +1 -0
- package/dist/native/toolchain.d.ts +45 -0
- package/dist/native/toolchain.js +94 -0
- package/dist/native/toolchain.js.map +1 -0
- package/dist/native/toolchain.test.d.ts +1 -0
- package/dist/native/toolchain.test.js +85 -0
- package/dist/native/toolchain.test.js.map +1 -0
- package/dist/startup-cache.d.ts +1 -1
- package/dist/startup-cache.js +2 -5
- package/dist/startup-cache.js.map +1 -1
- package/dist/timing.d.ts +4 -0
- package/dist/timing.js +19 -0
- package/dist/timing.js.map +1 -0
- package/dist/wasi-paths.js +10 -7
- package/dist/wasi-paths.js.map +1 -1
- package/package.json +28 -19
- package/surface-manifest.json +107 -98
- package/dist/backend/c/async.d.ts +0 -171
- package/dist/backend/c/async.js +0 -1317
- package/dist/backend/c/async.js.map +0 -1
- package/dist/backend/c/c-emitter.d.ts +0 -536
- package/dist/backend/c/c-emitter.js +0 -1932
- package/dist/backend/c/c-emitter.js.map +0 -1
- package/dist/backend/c/exprs.d.ts +0 -15
- package/dist/backend/c/exprs.js +0 -8847
- package/dist/backend/c/exprs.js.map +0 -1
- package/dist/backend/c/island.d.ts +0 -45
- package/dist/backend/c/island.js +0 -281
- package/dist/backend/c/island.js.map +0 -1
- package/dist/backend/c/may-throw.js.map +0 -1
- package/dist/backend/c/shapes.d.ts +0 -142
- package/dist/backend/c/shapes.js +0 -603
- package/dist/backend/c/shapes.js.map +0 -1
- package/dist/backend/c/stmts.d.ts +0 -76
- package/dist/backend/c/stmts.js +0 -1108
- package/dist/backend/c/stmts.js.map +0 -1
- package/dist/backend/c/types.d.ts +0 -71
- package/dist/backend/c/types.js +0 -459
- package/dist/backend/c/types.js.map +0 -1
- package/dist/backend/c/types.test.js +0 -32
- package/dist/backend/c/types.test.js.map +0 -1
- package/dist/backend/c/walkers.d.ts +0 -134
- package/dist/backend/c/walkers.js +0 -1772
- package/dist/backend/c/walkers.js.map +0 -1
- /package/dist/backend/{c/types.test.d.ts → cycle-analysis.test.d.ts} +0 -0
|
@@ -3,10 +3,10 @@ import { InternalCompilerError } from "../../errors.js";
|
|
|
3
3
|
import { newValueMayThrow } from "../../ir/analysis.js";
|
|
4
4
|
import { isFfiCallbackParam, isFfiContextParam, isFfiReleaseParam, isRefCounted } from "../../ir/ir.js";
|
|
5
5
|
import { collectFfiRetainedOps, parseFfiCallbackKey } from "../ffi-callbacks.js";
|
|
6
|
-
import { mangleClassNew, mangleClassRetain, mangleFnClosure, mangleFunction, mangleLocal, mangleVtStruct } from "../mangle.js";
|
|
7
|
-
import { classStructSym } from "./classes.js";
|
|
6
|
+
import { mangleClassNew, mangleClassRetain, mangleClassStruct, mangleFnClosure, mangleFunction, mangleLocal, mangleVtStruct } from "../mangle.js";
|
|
7
|
+
import { classEnvironmentIndex, classStructSym } from "./classes.js";
|
|
8
8
|
import { LlvmUnsupportedError } from "./unsupported.js";
|
|
9
|
-
import { f64Lit, ffiNativeTypeLl } from "./common.js";
|
|
9
|
+
import { f64Lit, ffiNativeTypeLl, ffiNativeParamLl, ffiNativeReturnLl } from "./common.js";
|
|
10
10
|
export function emitCallExpr(host, e) {
|
|
11
11
|
const B = host.B;
|
|
12
12
|
switch (e.kind) {
|
|
@@ -42,7 +42,8 @@ export function emitCallExpr(host, e) {
|
|
|
42
42
|
}
|
|
43
43
|
case "ffiCall": {
|
|
44
44
|
// LIBRARY mode: every ffiCall is a profile-declared host-callback
|
|
45
|
-
// channel (the library lane loads no native-FFI manifest).
|
|
45
|
+
// channel (the library lane loads no native-FFI manifest). Wasm
|
|
46
|
+
// calls named imports; native libraries fetch
|
|
46
47
|
// the slot's registered pointer — scr_library_cb_require delivers
|
|
47
48
|
// the channel's trap constant through the funnel (SC4025) when the
|
|
48
49
|
// host never registered — then brackets the typed indirect call,
|
|
@@ -53,7 +54,7 @@ export function emitCallExpr(host, e) {
|
|
|
53
54
|
const libCb = host.mod.lib?.callbacks?.find((c) => c.name === e.import);
|
|
54
55
|
if (libCb !== undefined) {
|
|
55
56
|
const cbArgs = e.args.map((arg) => host.emitExpr(arg));
|
|
56
|
-
const natTypes = [
|
|
57
|
+
const natTypes = [];
|
|
57
58
|
const natArgs = [];
|
|
58
59
|
libCb.params.forEach((cls, i) => {
|
|
59
60
|
const arg = cbArgs[i];
|
|
@@ -103,10 +104,10 @@ export function emitCallExpr(host, e) {
|
|
|
103
104
|
const len = B.tmp();
|
|
104
105
|
const data = B.tmp();
|
|
105
106
|
B.line(`${lenPtr} = getelementptr inbounds %ScrStr, ptr ${arg.name}, i64 0, i32 1`);
|
|
106
|
-
B.line(`${len} = load
|
|
107
|
-
B.line(`${data} = getelementptr inbounds i8, ptr ${arg.name}, i64 24`);
|
|
108
|
-
natTypes.push("ptr",
|
|
109
|
-
natArgs.push(`ptr ${data}`,
|
|
107
|
+
B.line(`${len} = load ${host.sizeType}, ptr ${lenPtr}`);
|
|
108
|
+
B.line(`${data} = getelementptr inbounds i8, ptr ${arg.name}, i64 ${host.abiOffset(24, 12)}`);
|
|
109
|
+
natTypes.push("ptr", host.sizeType);
|
|
110
|
+
natArgs.push(`ptr ${data}`, `${host.sizeType} ${len}`);
|
|
110
111
|
break;
|
|
111
112
|
}
|
|
112
113
|
case "bytes": {
|
|
@@ -114,26 +115,34 @@ export function emitCallExpr(host, e) {
|
|
|
114
115
|
const len = B.tmp();
|
|
115
116
|
const dataPtr = B.tmp();
|
|
116
117
|
const data = B.tmp();
|
|
117
|
-
B.line(`${lenPtr} = getelementptr inbounds i8, ptr ${arg.name}, i64 8`);
|
|
118
|
-
B.line(`${len} = load
|
|
119
|
-
B.line(`${dataPtr} = getelementptr inbounds i8, ptr ${arg.name}, i64 24`);
|
|
118
|
+
B.line(`${lenPtr} = getelementptr inbounds i8, ptr ${arg.name}, i64 ${host.abiOffset(8, 4)}`);
|
|
119
|
+
B.line(`${len} = load ${host.sizeType}, ptr ${lenPtr}`);
|
|
120
|
+
B.line(`${dataPtr} = getelementptr inbounds i8, ptr ${arg.name}, i64 ${host.abiOffset(24, 12)}`);
|
|
120
121
|
B.line(`${data} = load ptr, ptr ${dataPtr}`);
|
|
121
|
-
natTypes.push("ptr",
|
|
122
|
-
natArgs.push(`ptr ${data}`,
|
|
122
|
+
natTypes.push("ptr", host.sizeType);
|
|
123
|
+
natArgs.push(`ptr ${data}`, `${host.sizeType} ${len}`);
|
|
123
124
|
break;
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
127
|
});
|
|
127
|
-
host.declare(`declare ptr @scr_library_cb_require(${host.sizeType}, ptr)`);
|
|
128
|
-
host.declare(`declare ptr @scr_library_cb_ctx(${host.sizeType})`);
|
|
129
128
|
host.declare(`declare void @scr_library_callback_begin()`);
|
|
130
129
|
host.declare(`declare void @scr_library_callback_end()`);
|
|
131
|
-
const fn = B.tmp();
|
|
132
|
-
B.line(`${fn} = call ptr @scr_library_cb_require(${host.sizeType} ${libCb.slot}, ptr @sc_lib_cb_trap_${libCb.slot})`);
|
|
133
|
-
const ctx = B.tmp();
|
|
134
|
-
B.line(`${ctx} = call ptr @scr_library_cb_ctx(${host.sizeType} ${libCb.slot})`);
|
|
135
130
|
const retTy = ffiNativeTypeLl(libCb.returns);
|
|
136
|
-
|
|
131
|
+
let fn;
|
|
132
|
+
if (host.wasi) {
|
|
133
|
+
fn = `@sc_wasm_import_${libCb.slot}`;
|
|
134
|
+
host.declare(`declare ${retTy} ${fn}(${natTypes.join(", ")}) "wasm-import-module"="scriptc" "wasm-import-name"="${libCb.name}"`);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
host.declare(`declare ptr @scr_library_cb_require(${host.sizeType}, ptr)`);
|
|
138
|
+
host.declare(`declare ptr @scr_library_cb_ctx(${host.sizeType})`);
|
|
139
|
+
fn = B.tmp();
|
|
140
|
+
B.line(`${fn} = call ptr @scr_library_cb_require(${host.sizeType} ${libCb.slot}, ptr @sc_lib_cb_trap_${libCb.slot})`);
|
|
141
|
+
const ctx = B.tmp();
|
|
142
|
+
B.line(`${ctx} = call ptr @scr_library_cb_ctx(${host.sizeType} ${libCb.slot})`);
|
|
143
|
+
natArgs.unshift(`ptr ${ctx}`);
|
|
144
|
+
}
|
|
145
|
+
const call = `call ${retTy} ${fn}(${natArgs.join(", ")})`;
|
|
137
146
|
if (libCb.returns === "void") {
|
|
138
147
|
B.line(`call void @scr_library_callback_begin()`);
|
|
139
148
|
B.line(call);
|
|
@@ -159,6 +168,25 @@ export function emitCallExpr(host, e) {
|
|
|
159
168
|
const entry = host.ffiByName.get(e.import);
|
|
160
169
|
if (!entry)
|
|
161
170
|
throw new InternalCompilerError(`llvm emitter bug: unknown FFI import ${e.import}`);
|
|
171
|
+
if (entry.callbackOperation) {
|
|
172
|
+
const adapter = host.ffiCallbackAdapter(entry.callbackTarget ?? entry.name, "callback");
|
|
173
|
+
if (entry.callbackOperation === "release") {
|
|
174
|
+
host.declare(`declare void @scr_ffi_release_optional(ptr, ptr)`);
|
|
175
|
+
const callback = B.tmp();
|
|
176
|
+
B.line(`${callback} = load ptr, ptr @${adapter.global}`);
|
|
177
|
+
B.line(`call void @scr_ffi_release_optional(ptr @${adapter.table}, ptr ${callback})`);
|
|
178
|
+
return { name: "", type: e.type };
|
|
179
|
+
}
|
|
180
|
+
const callback = host.emitExpr(e.args[0]);
|
|
181
|
+
host.declare(`declare void @scr_ffi_retain_slot(ptr, ptr, ptr)`);
|
|
182
|
+
host.declare(`declare void @scr_ffi_commit_slot(ptr, ptr)`);
|
|
183
|
+
host.declare(`declare ptr @scr_bigint_from_pointer(ptr)`);
|
|
184
|
+
B.line(`call void @scr_ffi_retain_slot(ptr @${adapter.table}, ptr @${adapter.global}, ptr ${callback.name})`);
|
|
185
|
+
B.line(`call void @scr_ffi_commit_slot(ptr @${adapter.table}, ptr ${callback.name})`);
|
|
186
|
+
const result = B.tmp();
|
|
187
|
+
B.line(`${result} = call ptr @scr_bigint_from_pointer(ptr @${adapter.symbol})`);
|
|
188
|
+
return host.own({ name: result, type: e.type });
|
|
189
|
+
}
|
|
162
190
|
const args = e.args.map((arg) => host.emitExpr(arg));
|
|
163
191
|
const sourceArgs = new Map();
|
|
164
192
|
const callbackArgs = new Map();
|
|
@@ -251,29 +279,53 @@ export function emitCallExpr(host, e) {
|
|
|
251
279
|
}
|
|
252
280
|
const arg = sourceArgs.get(i);
|
|
253
281
|
switch (param) {
|
|
282
|
+
case "i64":
|
|
283
|
+
case "u64":
|
|
284
|
+
case "pointer": {
|
|
285
|
+
const ty = ffiNativeTypeLl(param);
|
|
286
|
+
host.declare(`declare ${ty} @scr_bigint_to_${param}(ptr)`);
|
|
287
|
+
const raw = B.tmp();
|
|
288
|
+
B.line(`${raw} = call ${ty} @scr_bigint_to_${param}(ptr ${arg.name})`);
|
|
289
|
+
nativeParamTypes.push(ty);
|
|
290
|
+
nativeArgs.push(`${ty} ${raw}`);
|
|
291
|
+
break;
|
|
292
|
+
}
|
|
254
293
|
case "f64":
|
|
255
294
|
nativeParamTypes.push("double");
|
|
256
295
|
nativeArgs.push(`double ${arg.name}`);
|
|
257
296
|
break;
|
|
297
|
+
case "f32": {
|
|
298
|
+
const value = B.tmp();
|
|
299
|
+
B.line(`${value} = fptrunc double ${arg.name} to float`);
|
|
300
|
+
nativeParamTypes.push("float");
|
|
301
|
+
nativeArgs.push(`float ${value}`);
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
258
304
|
case "bool": {
|
|
259
305
|
const widened = B.tmp();
|
|
260
306
|
B.line(`${widened} = zext i1 ${arg.name} to i8`);
|
|
261
|
-
|
|
262
|
-
|
|
307
|
+
const nativeParam = ffiNativeParamLl(param, host.ffiExtendNarrowIntegers);
|
|
308
|
+
nativeParamTypes.push(nativeParam);
|
|
309
|
+
nativeArgs.push(`${nativeParam} ${widened}`);
|
|
263
310
|
break;
|
|
264
311
|
}
|
|
265
312
|
case "u8":
|
|
313
|
+
case "i8":
|
|
314
|
+
case "u16":
|
|
315
|
+
case "i16":
|
|
266
316
|
case "u32": {
|
|
267
317
|
host.declare(`declare double @scr_bit_ushr(double, double)`);
|
|
268
318
|
const asDouble = B.tmp();
|
|
269
319
|
const asU32 = B.tmp();
|
|
270
320
|
B.line(`${asDouble} = call double @scr_bit_ushr(double ${arg.name}, double ${f64Lit(0)})`);
|
|
271
321
|
B.line(`${asU32} = fptoui double ${asDouble} to i32`);
|
|
272
|
-
if (param
|
|
273
|
-
const
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
322
|
+
if (param !== "u32") {
|
|
323
|
+
const narrow = B.tmp();
|
|
324
|
+
const nativeType = ffiNativeTypeLl(param);
|
|
325
|
+
B.line(`${narrow} = trunc i32 ${asU32} to ${nativeType}`);
|
|
326
|
+
const nativeParam = ffiNativeParamLl(param, host.ffiExtendNarrowIntegers);
|
|
327
|
+
nativeParamTypes.push(nativeParam);
|
|
328
|
+
nativeArgs.push(`${nativeParam} ${narrow}`);
|
|
277
329
|
}
|
|
278
330
|
else {
|
|
279
331
|
nativeParamTypes.push("i32");
|
|
@@ -302,7 +354,8 @@ export function emitCallExpr(host, e) {
|
|
|
302
354
|
nativeArgs.push(`ptr ${data}`, `i64 ${len}`);
|
|
303
355
|
break;
|
|
304
356
|
}
|
|
305
|
-
case "bytes":
|
|
357
|
+
case "bytes":
|
|
358
|
+
case "mutable-bytes": {
|
|
306
359
|
const lenPtr = B.tmp();
|
|
307
360
|
const len = B.tmp();
|
|
308
361
|
const dataPtr = B.tmp();
|
|
@@ -318,8 +371,9 @@ export function emitCallExpr(host, e) {
|
|
|
318
371
|
}
|
|
319
372
|
});
|
|
320
373
|
const retTy = ffiNativeTypeLl(entry.returns);
|
|
321
|
-
|
|
322
|
-
|
|
374
|
+
const retAbi = ffiNativeReturnLl(entry.returns, host.ffiExtendNarrowIntegers);
|
|
375
|
+
host.declare(`declare ${retAbi} @${entry.symbol}(${nativeParamTypes.join(", ")})`);
|
|
376
|
+
const call = `call ${retAbi} @${entry.symbol}(${nativeArgs.join(", ")})`;
|
|
323
377
|
const restoreRawContexts = () => {
|
|
324
378
|
for (let i = rawContexts.length - 1; i >= 0; i--) {
|
|
325
379
|
const saved = rawContexts[i];
|
|
@@ -358,6 +412,15 @@ export function emitCallExpr(host, e) {
|
|
|
358
412
|
B.line(`${raw} = ${call}`);
|
|
359
413
|
restoreRawContexts();
|
|
360
414
|
finishRetainedReleases();
|
|
415
|
+
if (entry.returns === "i64" || entry.returns === "u64" || entry.returns === "pointer") {
|
|
416
|
+
host.declare(`declare ptr @scr_bigint_from_${entry.returns}(${retTy})`);
|
|
417
|
+
const value = B.tmp();
|
|
418
|
+
B.line(`${value} = call ptr @scr_bigint_from_${entry.returns}(${retTy} ${raw})`);
|
|
419
|
+
const result = host.own({ name: value, type: e.type });
|
|
420
|
+
if (callbacksMayThrow)
|
|
421
|
+
host.emitPendingCheck();
|
|
422
|
+
return result;
|
|
423
|
+
}
|
|
361
424
|
if (entry.returns === "f64") {
|
|
362
425
|
const result = { name: raw, type: e.type };
|
|
363
426
|
if (callbacksMayThrow)
|
|
@@ -373,7 +436,8 @@ export function emitCallExpr(host, e) {
|
|
|
373
436
|
return result;
|
|
374
437
|
}
|
|
375
438
|
const value = B.tmp();
|
|
376
|
-
const op = entry.returns === "
|
|
439
|
+
const op = entry.returns === "f32" ? "fpext"
|
|
440
|
+
: entry.returns === "i8" || entry.returns === "i16" || entry.returns === "i32" ? "sitofp" : "uitofp";
|
|
377
441
|
B.line(`${value} = ${op} ${retTy} ${raw} to double`);
|
|
378
442
|
const result = { name: value, type: e.type };
|
|
379
443
|
if (callbacksMayThrow)
|
|
@@ -399,6 +463,12 @@ export function emitCallExpr(host, e) {
|
|
|
399
463
|
const c = B.tmp();
|
|
400
464
|
B.line(`${c} = call ptr @scr_closure_new(ptr @${host.callTarget(e.fnName)}, ${host.sizeType} ${e.captures.length})`);
|
|
401
465
|
const out = host.own({ name: c, type: e.type });
|
|
466
|
+
const functionKind = (target.generator ? 1 : 0) + (target.async ? 2 : 0) + (target.ownsPrototype ? 4 : 0);
|
|
467
|
+
if (functionKind) {
|
|
468
|
+
const kindPtr = B.tmp();
|
|
469
|
+
B.line(`${kindPtr} = getelementptr inbounds %ScrClosure, ptr ${c}, i64 0, i32 4`);
|
|
470
|
+
B.line(`store i32 ${functionKind}, ptr ${kindPtr}`);
|
|
471
|
+
}
|
|
402
472
|
e.captures.forEach((localId, i) => {
|
|
403
473
|
const box = host.loadBox(`%${mangleLocal(localId)}`);
|
|
404
474
|
const retained = host.retainBox(box);
|
|
@@ -420,6 +490,7 @@ export function emitCallExpr(host, e) {
|
|
|
420
490
|
if (e.args.length !== ft.params.length)
|
|
421
491
|
throw new LlvmUnsupportedError("callValue:arity", e.loc);
|
|
422
492
|
const callee = host.emitExpr(e.callee);
|
|
493
|
+
const receiver = e.receiver === undefined ? null : host.emitExpr(e.receiver);
|
|
423
494
|
const args = e.args.map((a) => host.emitExpr(a));
|
|
424
495
|
for (const a of args)
|
|
425
496
|
host.moveTemp(a);
|
|
@@ -431,14 +502,19 @@ export function emitCallExpr(host, e) {
|
|
|
431
502
|
`ptr ${callee.name}`,
|
|
432
503
|
...args.map((a, i) => `${host.llType(ft.params[i])} ${a.name}`),
|
|
433
504
|
].join(", ");
|
|
505
|
+
host.declare("declare void @scr_dyn_this_push_dyn(ptr)");
|
|
506
|
+
host.declare("declare void @scr_dyn_this_pop()");
|
|
507
|
+
B.line(`call void @scr_dyn_this_push_dyn(ptr ${receiver?.name ?? "null"})`);
|
|
434
508
|
if (e.type.kind === "void") {
|
|
435
509
|
B.line(`call void ${fn}(${argList})`);
|
|
510
|
+
B.line("call void @scr_dyn_this_pop()");
|
|
436
511
|
if (host.indirectMayThrow)
|
|
437
512
|
host.emitPendingCheck();
|
|
438
513
|
return { name: "", type: e.type };
|
|
439
514
|
}
|
|
440
515
|
const t = B.tmp();
|
|
441
516
|
B.line(`${t} = call ${host.llType(e.type)} ${fn}(${argList})`);
|
|
517
|
+
B.line("call void @scr_dyn_this_pop()");
|
|
442
518
|
// The check runs AFTER the result temp joins the frame: an unwind
|
|
443
519
|
// releases it (the dummy is NULL for refcounted returns).
|
|
444
520
|
const out = host.own({ name: t, type: e.type });
|
|
@@ -480,6 +556,21 @@ export function emitCallExpr(host, e) {
|
|
|
480
556
|
// address. The +1 retain is a no-op on immortals but keeps the
|
|
481
557
|
// owned-temps discipline uniform (the regexLit pattern).
|
|
482
558
|
const sym = host.classObjSym(e.className);
|
|
559
|
+
if (e.captures !== undefined) {
|
|
560
|
+
host.declare(`declare ptr @scr_classobj_new(ptr, ${host.sizeType})`);
|
|
561
|
+
const value = B.tmp();
|
|
562
|
+
B.line(`${value} = call ptr @scr_classobj_new(ptr @${sym}, ${host.sizeType} ${e.captures.length})`);
|
|
563
|
+
e.captures.forEach((id, index) => {
|
|
564
|
+
const box = host.loadBox(`%${mangleLocal(id)}`);
|
|
565
|
+
const owned = host.retainBox(box);
|
|
566
|
+
const caps = B.tmp();
|
|
567
|
+
const slot = B.tmp();
|
|
568
|
+
B.line(`${caps} = getelementptr inbounds %ScrClassObj, ptr ${value}, i64 1`);
|
|
569
|
+
B.line(`${slot} = getelementptr inbounds ptr, ptr ${caps}, ${host.sizeType} ${index}`);
|
|
570
|
+
B.line(`store ptr ${owned}, ptr ${slot}`);
|
|
571
|
+
});
|
|
572
|
+
return host.own({ name: value, type: e.type });
|
|
573
|
+
}
|
|
483
574
|
return host.own({ name: host.retainValue(`@${sym}`, e.type), type: e.type });
|
|
484
575
|
}
|
|
485
576
|
case "newValue": {
|
|
@@ -504,9 +595,9 @@ export function emitCallExpr(host, e) {
|
|
|
504
595
|
.map((a, i) => `${host.llType(ctor.params[i + 1].type)} ${a.name}`)
|
|
505
596
|
.join(", ");
|
|
506
597
|
const t = B.tmp();
|
|
507
|
-
B.line(`${t} = call ptr ${thunk}(${argList})`);
|
|
598
|
+
B.line(`${t} = call ptr ${thunk}(ptr ${callee.name}${argList ? ", " + argList : ""})`);
|
|
508
599
|
const out = host.own({ name: t, type: e.type });
|
|
509
|
-
if (newValueMayThrow(cls, host.classMeta, host.mayThrow))
|
|
600
|
+
if (newValueMayThrow(cls, host.classMeta.get(cls), host.mayThrow))
|
|
510
601
|
host.emitPendingCheck();
|
|
511
602
|
return out;
|
|
512
603
|
}
|
|
@@ -518,6 +609,16 @@ export function emitCallExpr(host, e) {
|
|
|
518
609
|
throw new InternalCompilerError("llvm emitter bug: instanceOfValue on a non-object");
|
|
519
610
|
const v = host.emitExpr(e.value);
|
|
520
611
|
const target = host.emitExpr(e.classValue);
|
|
612
|
+
if (e.classValue.type.kind === "classval" && host.classMeta.get(e.classValue.type.className)?.def.localCaptures !== undefined &&
|
|
613
|
+
host.classMeta.get(e.value.type.className)?.def.fields.some((field) => field.name === `%classEnvironment:${e.classValue.type.kind === "classval" ? e.classValue.type.className : ""}`)) {
|
|
614
|
+
const slot = B.tmp();
|
|
615
|
+
const actual = B.tmp();
|
|
616
|
+
const result = B.tmp();
|
|
617
|
+
B.line(`${slot} = getelementptr inbounds %${mangleClassStruct(e.classValue.type.className)}, ptr ${v.name}, i64 0, i32 ${classEnvironmentIndex(host.classMeta.get(e.classValue.type.className))}`);
|
|
618
|
+
B.line(`${actual} = load ptr, ptr ${slot}`);
|
|
619
|
+
B.line(`${result} = icmp eq ptr ${actual}, ${target.name}`);
|
|
620
|
+
return { name: result, type: e.type };
|
|
621
|
+
}
|
|
521
622
|
const pre = host.loadVtPre(v.name, e.value.type.className);
|
|
522
623
|
const tprep = B.tmp();
|
|
523
624
|
const tpre = B.tmp();
|
|
@@ -537,7 +638,7 @@ export function emitCallExpr(host, e) {
|
|
|
537
638
|
}
|
|
538
639
|
case "promiseVoidWiden": {
|
|
539
640
|
// One ScrPromise* either way — ownership transfers, type-only
|
|
540
|
-
|
|
641
|
+
//.
|
|
541
642
|
const v = host.emitExpr(e.value);
|
|
542
643
|
host.moveTemp(v);
|
|
543
644
|
return host.own({ name: v.name, type: e.type });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr-calls.js","sourceRoot":"","sources":["../../../src/backend/llvm/expr-calls.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxG,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC/H,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,UAAU,YAAY,CAAC,IAAwB,EAAE,CAAqM;IACxP,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACjB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,MAAM,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,qBAAqB,CAAC,oCAAoC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7F,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAAE,MAAM,IAAI,qBAAqB,CAAC,oDAAoD,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACnI,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B;YACnE,MAAM,OAAO,GAAG,IAAI;iBACjB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;iBACjE,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,+DAA+D;YAC/D,iEAAiE;YACjE,iEAAiE;YACjE,oBAAoB;YACpB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,CAAC,CAAC,IAAI,CAAC,aAAa,MAAM,IAAI,OAAO,GAAG,CAAC,CAAC;gBAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;oBAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACzD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpC,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,OAAO,GAAG,CAAC,CAAC;YACnE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;gBAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,KAAK,SAAS,EAAE,CAAC;YACf,kEAAkE;YAClE,iEAAiE;YACjE,kEAAkE;YAClE,mEAAmE;YACnE,iEAAiE;YACjE,qEAAqE;YACrE,8EAA8E;YAC9E,iEAAiE;YACjE,4BAA4B;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;YACxE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvD,MAAM,QAAQ,GAAa,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM,OAAO,GAAa,EAAE,CAAC;gBAC7B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;oBAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;oBACvB,QAAQ,GAAG,EAAE,CAAC;wBACZ,KAAK,KAAK;4BACR,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACxB,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;4BACnC,MAAM;wBACR,KAAK,MAAM,EAAE,CAAC;4BACZ,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACxB,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,cAAc,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC;4BACjD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACpB,OAAO,CAAC,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;4BAC9B,MAAM;wBACR,CAAC;wBACD,KAAK,IAAI,CAAC;wBACV,KAAK,KAAK,EAAE,CAAC;4BACX,IAAI,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;4BAC7D,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACzB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,uCAAuC,GAAG,CAAC,IAAI,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC3F,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,oBAAoB,QAAQ,SAAS,CAAC,CAAC;4BACtD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gCACjB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gCACrB,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,KAAK,QAAQ,CAAC,CAAC;gCAC7C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACpB,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;4BAC7B,CAAC;iCAAM,CAAC;gCACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gCACrB,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;4BAC/B,CAAC;4BACD,MAAM;wBACR,CAAC;wBACD,KAAK,KAAK,EAAE,CAAC;4BACX,IAAI,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;4BAC3D,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACzB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,qCAAqC,GAAG,CAAC,IAAI,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BACzF,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,oBAAoB,QAAQ,SAAS,CAAC,CAAC;4BACtD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACrB,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;4BAC7B,MAAM;wBACR,CAAC;wBACD,KAAK,QAAQ,EAAE,CAAC;4BACd,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACvB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACpB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACrB,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,0CAA0C,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC;4BACpF,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,MAAM,EAAE,CAAC,CAAC;4BAC3C,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,qCAAqC,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;4BACvE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;4BAC5B,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC;4BAC1C,MAAM;wBACR,CAAC;wBACD,KAAK,OAAO,EAAE,CAAC;4BACb,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACvB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACpB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACxB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACrB,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,qCAAqC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC;4BACxE,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,MAAM,EAAE,CAAC,CAAC;4BAC3C,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,qCAAqC,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;4BAC1E,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,oBAAoB,OAAO,EAAE,CAAC,CAAC;4BAC7C,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;4BAC5B,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC;4BAC1C,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,uCAAuC,IAAI,CAAC,QAAQ,QAAQ,CAAC,CAAC;gBAC3E,IAAI,CAAC,OAAO,CAAC,mCAAmC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAClE,IAAI,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;gBAC3D,IAAI,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;gBACzD,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACnB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,uCAAuC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,yBAAyB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBACtH,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACpB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,mCAAmC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBAChF,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,QAAQ,KAAK,IAAI,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC7E,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;oBAC7B,CAAC,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;oBAClD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACb,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;oBAChD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpC,CAAC;gBACD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACpB,CAAC,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;gBAClD,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC3B,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;gBAChD,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;oBAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChE,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;oBACtB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,iBAAiB,GAAG,KAAK,CAAC,CAAC;oBAC1C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvC,CAAC;gBACD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACtB,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACzD,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,MAAM,EAAE,IAAI,KAAK,IAAI,GAAG,YAAY,CAAC,CAAC;gBACrD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,qBAAqB,CAAC,wCAAwC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAChG,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;YAC9C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAmB,CAAC;YAChD,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACvC,IAAI,iBAAiB,CAAC,KAAK,CAAC;oBAAE,OAAO;gBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAE,CAAC;gBACjC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC9B,IAAI,kBAAkB,CAAC,KAAK,CAAC;oBAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACxE,IAAI,iBAAiB,CAAC,KAAK,CAAC;oBAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;YAEH,MAAM,EAAE,aAAa,EAAE,qBAAqB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GACxE,qBAAqB,CAAU,KAAK,EAAE,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7G,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;gBACvD,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;oBAC/E,IAAI,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;oBACjE,IAAI,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;YACD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;gBACxD,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxD,IAAI,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;YACD,+DAA+D;YAC/D,gEAAgE;YAChE,iEAAiE;YACjE,+DAA+D;YAC/D,oEAAoE;YACpE,8DAA8D;YAC9D,kCAAkC;YAClC,KAAK,MAAM,YAAY,IAAI,qBAAqB,EAAE,CAAC;gBACjD,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBACjC,CAAC,CAAC,IAAI,CAAC,uCAAuC,YAAY,CAAC,KAAK,UAAU,YAAY,CAAC,MAAM,SAAS,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;gBACvI,CAAC;qBAAM,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;oBAChC,IAAI,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC;oBAC/D,CAAC,CAAC,IAAI,CAAC,0CAA0C,YAAY,CAAC,KAAK,SAAS,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC7G,CAAC;qBAAM,CAAC;oBACN,CAAC,CAAC,IAAI,CAAC,kCAAkC,YAAY,CAAC,KAAK,SAAS,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;gBACrG,CAAC;YACH,CAAC;YACD,iEAAiE;YACjE,mEAAmE;YACnE,+DAA+D;YAC/D,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;gBACvC,CAAC,CAAC,IAAI,CAAC,6BAA6B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,OAAO,CAAC,KAAK,SAAS,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;YAChI,CAAC;YAED,MAAM,WAAW,GAAwC,EAAE,CAAC;YAC5D,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;oBAAE,SAAS;gBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACvE,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI;oBAAE,SAAS;gBACnC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAE,CAAC;gBACtD,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACzB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,qBAAqB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtD,CAAC,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,IAAI,UAAU,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC1D,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,MAAM,gBAAgB,GAAa,EAAE,CAAC;YACtC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBAChC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACvE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC7B,UAAU,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC1C,OAAO;gBACT,CAAC;gBACD,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACpE,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACrD,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC7B,UAAU,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC1C,OAAO;gBACT,CAAC;gBACD,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACjD,IAAI,CAAC,QAAQ;wBAAE,MAAM,IAAI,qBAAqB,CAAC,kCAAkC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;oBACvH,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC7B,UAAU,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;oBACxC,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;gBAC/B,QAAQ,KAAK,EAAE,CAAC;oBACd,KAAK,KAAK;wBACR,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAChC,UAAU,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;wBACtC,MAAM;oBACR,KAAK,MAAM,EAAE,CAAC;wBACZ,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACxB,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,cAAc,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC;wBACjD,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC5B,UAAU,CAAC,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;wBACjC,MAAM;oBACR,CAAC;oBACD,KAAK,IAAI,CAAC;oBACV,KAAK,KAAK,EAAE,CAAC;wBACX,IAAI,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;wBAC7D,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACzB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACtB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,uCAAuC,GAAG,CAAC,IAAI,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC3F,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,oBAAoB,QAAQ,SAAS,CAAC,CAAC;wBACtD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;4BACnB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACrB,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,KAAK,QAAQ,CAAC,CAAC;4BAC7C,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC5B,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;wBAChC,CAAC;6BAAM,CAAC;4BACN,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BAC7B,UAAU,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;wBAClC,CAAC;wBACD,MAAM;oBACR,CAAC;oBACD,KAAK,KAAK,EAAE,CAAC;wBACX,IAAI,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;wBAC3D,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACzB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACtB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,qCAAqC,GAAG,CAAC,IAAI,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACzF,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,oBAAoB,QAAQ,SAAS,CAAC,CAAC;wBACtD,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC7B,UAAU,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;wBAChC,MAAM;oBACR,CAAC;oBACD,KAAK,QAAQ,EAAE,CAAC;wBACd,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACvB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACpB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACrB,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,0CAA0C,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC;wBACpF,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,MAAM,EAAE,CAAC,CAAC;wBAC3C,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,qCAAqC,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;wBACvE,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBACpC,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC;wBAC7C,MAAM;oBACR,CAAC;oBACD,KAAK,OAAO,EAAE,CAAC;wBACb,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACvB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACpB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACxB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACrB,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,qCAAqC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC;wBACxE,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,MAAM,EAAE,CAAC,CAAC;wBAC3C,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,qCAAqC,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;wBAC1E,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,oBAAoB,OAAO,EAAE,CAAC,CAAC;wBAC7C,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBACpC,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC;wBAC7C,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CACV,WAAW,KAAK,KAAK,KAAK,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACpE,CAAC;YACF,MAAM,IAAI,GAAG,QAAQ,KAAK,KAAK,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACxE,MAAM,kBAAkB,GAAG,GAAS,EAAE;gBACpC,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;oBAC9B,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,QAAQ,UAAU,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC,CAAC;YACF,MAAM,sBAAsB,GAAG,GAAS,EAAE;gBACxC,8DAA8D;gBAC9D,+DAA+D;gBAC/D,8DAA8D;gBAC9D,KAAK,MAAM,YAAY,IAAI,qBAAqB,EAAE,CAAC;oBACjD,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;wBACjC,CAAC,CAAC,IAAI,CAAC,uCAAuC,YAAY,CAAC,KAAK,SAAS,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;oBAC1G,CAAC;gBACH,CAAC;gBACD,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzD,IAAI,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;gBAC1D,CAAC;gBACD,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxD,IAAI,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;gBAClE,CAAC;gBACD,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;oBACvC,CAAC,CAAC,IAAI,CAAC,6BAA6B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,OAAO,CAAC,KAAK,SAAS,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;gBAChI,CAAC;YACH,CAAC,CAAC;YACF,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC;YAC/E,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC7B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACb,kBAAkB,EAAE,CAAC;gBACrB,sBAAsB,EAAE,CAAC;gBACzB,IAAI,iBAAiB;oBAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpC,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACpB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,EAAE,CAAC,CAAC;YAC3B,kBAAkB,EAAE,CAAC;YACrB,sBAAsB,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3C,IAAI,iBAAiB;oBAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACtB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,iBAAiB,GAAG,KAAK,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7C,IAAI,iBAAiB;oBAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;YACzD,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,MAAM,EAAE,IAAI,KAAK,IAAI,GAAG,YAAY,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,IAAI,iBAAiB;gBAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC/C,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,SAAS,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,qBAAqB,CAAC,mDAAmD,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5G,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAClC,gEAAgE;gBAChE,+DAA+D;gBAC/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5B,OAAO,IAAI,CAAC,GAAG,CAAC;oBACd,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;oBAC/D,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC;YACL,CAAC;YACD,gEAAgE;YAChE,mDAAmD;YACnD,IAAI,CAAC,OAAO,CAAC,qCAAqC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,qCAAqC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACrH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;gBAChC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACrC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACrB,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,8CAA8C,CAAC,gBAAgB,CAAC,CAAC;gBAC/E,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,sCAAsC,IAAI,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAChG,CAAC,CAAC,IAAI,CAAC,aAAa,QAAQ,SAAS,IAAI,EAAE,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC;QACD,KAAK,WAAW,EAAE,CAAC;YACjB,iEAAiE;YACjE,8DAA8D;YAC9D,gDAAgD;YAChD,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;gBAAE,MAAM,IAAI,qBAAqB,CAAC,yCAAyC,CAAC,CAAC;YAC9G,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YACzB,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM;gBAAE,MAAM,IAAI,oBAAoB,CAAC,iBAAiB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YACjG,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACpB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACnB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,8CAA8C,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC;YACxF,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,GAAG,EAAE,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG;gBACd,OAAO,MAAM,CAAC,IAAI,EAAE;gBACpB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;aACjE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC;gBACtC,IAAI,IAAI,CAAC,gBAAgB;oBAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACnD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpC,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC;YAC/D,kEAAkE;YAClE,0DAA0D;YAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,gBAAgB;gBAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,KAAK,SAAS;YACZ,kEAAkE;YAClE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,KAAK,KAAK,EAAE,CAAC;YACX,+DAA+D;YAC/D,iEAAiE;YACjE,+DAA+D;YAC/D,+DAA+D;YAC/D,gDAAgD;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,qBAAqB,CAAC,yBAAyB,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC;YACzG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG;gBACd,OAAO,CAAC,EAAE;gBACV,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;aAC5E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,CAAC,CAAC,IAAI,CAAC,cAAc,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,cAAc,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;YAClF,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,cAAc,CAAC;gBAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9E,OAAO,GAAG,CAAC;QACb,CAAC;QACD,KAAK,UAAU,EAAE,CAAC;YAChB,2DAA2D;YAC3D,+DAA+D;YAC/D,yDAAyD;YACzD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,KAAK,UAAU,EAAE,CAAC;YAChB,8DAA8D;YAC9D,8DAA8D;YAC9D,6DAA6D;YAC7D,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;gBAAE,MAAM,IAAI,qBAAqB,CAAC,mDAAmD,CAAC,CAAC;YAC5H,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,qBAAqB,CAAC,iCAAiC,GAAG,wBAAwB,CAAC,CAAC;YACzG,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;YAC1E,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,+CAA+C,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC;YAC3F,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,oBAAoB,KAAK,EAAE,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI;iBACjB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;iBACnE,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,IAAI,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;gBAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAClF,OAAO,GAAG,CAAC;QACb,CAAC;QACD,KAAK,iBAAiB,EAAE,CAAC;YACvB,kEAAkE;YAClE,+DAA+D;YAC/D,6DAA6D;YAC7D,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,qBAAqB,CAAC,mDAAmD,CAAC,CAAC;YACzH,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,+CAA+C,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC;YAC3F,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,IAAI,CAAC,QAAQ,SAAS,KAAK,EAAE,CAAC,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,+CAA+C,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC;YAC5F,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,QAAQ,SAAS,MAAM,EAAE,CAAC,CAAC;YAC1D,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACnB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,IAAI,CAAC,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,IAAI,CAAC,QAAQ,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;QACD,KAAK,kBAAkB,EAAE,CAAC;YACxB,8DAA8D;YAC9D,0BAA0B;YAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,EAAE,CAAC;YAChB,8DAA8D;YAC9D,gEAAgE;YAChE,iEAAiE;YACjE,0CAA0C;YAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,YAAY,EAAE,CAAC;YAClB,4DAA4D;YAC5D,6DAA6D;YAC7D,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,qBAAqB,CAAC,8CAA8C,CAAC,CAAC;YACpH,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACnB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,IAAI,CAAC,QAAQ,IAAI,GAAG,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,IAAI,CAAC,QAAQ,IAAI,GAAG,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACnE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACjE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;QACD,KAAK,aAAa,EAAE,CAAC;YACnB,gEAAgE;YAChE,kEAAkE;YAClE,gEAAgE;YAChE,2DAA2D;YAC3D,eAAe;YACf,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CACvC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAC9F,CAAC;YACF,IAAI,OAAO,GAAG,CAAC;gBAAE,MAAM,IAAI,qBAAqB,CAAC,wCAAwC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACpH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,CAAC;YACvC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B;YACnE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;YAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACpB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACpB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACnB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,8BAA8B,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,gBAAgB,CAAC,CAAC;YACrG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,GAAG,EAAE,CAAC,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,8BAA8B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;YACvH,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI;iBACjB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;iBAClE,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC;gBACtC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;oBAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAChE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpC,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC;YAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;gBAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChE,OAAO,GAAG,CAAC;QACb,CAAC;QACD,SAAS,CAAC;YACR,MAAM,WAAW,GAAU,CAAC,CAAC;YAC7B,KAAK,WAAW,CAAC;YACjB,MAAM,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"expr-calls.js","sourceRoot":"","sources":["../../../src/backend/llvm/expr-calls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IrExpr, IrType } from "../../ir/ir.js";
|
|
1
|
+
import { type IrExpr, type IrType } from "../../ir/ir.js";
|
|
2
2
|
import type { LlvmEmitterContext, LlValue } from "./expr-context.js";
|
|
3
3
|
export declare function resolveThunkFor(host: LlvmEmitterContext, inner: IrType): string;
|
|
4
4
|
export declare function tagInSet(host: LlvmEmitterContext, uName: string, tags: number[]): string;
|
|
@@ -11,9 +11,9 @@ export function resolveThunkFor(host, inner) {
|
|
|
11
11
|
if (!sym) {
|
|
12
12
|
sym = mangleResolveThunk(host.resolveThunks.size);
|
|
13
13
|
host.resolveThunks.set(key, sym);
|
|
14
|
-
const v = vAdapters(host, inner);
|
|
14
|
+
const v = vAdapters(host.shapeHost, inner);
|
|
15
15
|
host.declare(`declare void @scr_resolve_ref_impl(ptr, ptr, ptr, ptr, ptr)`);
|
|
16
|
-
host.resolveThunkDefs.push(`define internal void @${sym}(ptr %self, ptr %v) ${FN_ATTRS} { ; resolve<${key}>`, `entry:`, ` call void @scr_resolve_ref_impl(ptr %self, ptr %v, ptr ${v.retain}, ptr ${v.release}, ptr ${traceArg(host, inner)})`, ` ret void`, `}`, ``);
|
|
16
|
+
host.resolveThunkDefs.push(`define internal void @${sym}(ptr %self, ptr %v) ${FN_ATTRS} { ; resolve<${key}>`, `entry:`, ` call void @scr_resolve_ref_impl(ptr %self, ptr %v, ptr ${v.retain}, ptr ${v.release}, ptr ${traceArg(host.shapeHost, inner)})`, ` ret void`, `}`, ``);
|
|
17
17
|
}
|
|
18
18
|
return sym;
|
|
19
19
|
}
|
|
@@ -254,13 +254,14 @@ export function emitArrIntrinsic(host, e) {
|
|
|
254
254
|
}
|
|
255
255
|
case "pop":
|
|
256
256
|
case "shift": {
|
|
257
|
-
|
|
257
|
+
const dynamic = elem.kind === "dyn" && e.type.kind === "dyn";
|
|
258
|
+
if (!dynamic && e.type.kind !== "union")
|
|
258
259
|
throw new InternalCompilerError("llvm emitter bug: array removal result is not a union");
|
|
259
|
-
const def = host.unionsById.get(e.type.unionId);
|
|
260
|
+
const def = e.type.kind === "union" ? host.unionsById.get(e.type.unionId) : undefined;
|
|
260
261
|
const tag = def ? def.arms.findIndex((arm) => typeEquals(arm, elem)) : -1;
|
|
261
262
|
const undefTag = undefinedArmTag(e.type, host.unionsById);
|
|
262
263
|
const sameUnion = elem.kind === "union" && typeEquals(elem, e.type);
|
|
263
|
-
if ((!sameUnion && tag < 0) || undefTag < 0)
|
|
264
|
+
if (!dynamic && ((!sameUnion && tag < 0) || undefTag < 0))
|
|
264
265
|
throw new InternalCompilerError("llvm emitter bug: array removal union lacks its arms");
|
|
265
266
|
host.declare(`declare zeroext i8 @scr_arr_${method}_state(ptr, ptr)`);
|
|
266
267
|
const rawSlot = B.slot();
|
|
@@ -285,10 +286,18 @@ export function emitArrIntrinsic(host, e) {
|
|
|
285
286
|
B.line(`${value} = icmp ne i64 ${raw}, 0`);
|
|
286
287
|
else
|
|
287
288
|
B.line(`${value} = inttoptr i64 ${raw} to ptr`);
|
|
288
|
-
B.line(`store ptr ${sameUnion ? value : host.unionNewOwned(tag, { name: value, type: elem })}, ptr ${resultSlot}`);
|
|
289
|
+
B.line(`store ptr ${dynamic || sameUnion ? value : host.unionNewOwned(tag, { name: value, type: elem })}, ptr ${resultSlot}`);
|
|
289
290
|
B.br(lj);
|
|
290
291
|
B.startBlock(la);
|
|
291
|
-
|
|
292
|
+
if (dynamic) {
|
|
293
|
+
host.declare(`declare ptr @scr_dyn_undefined()`);
|
|
294
|
+
const absent = B.tmp();
|
|
295
|
+
B.line(`${absent} = call ptr @scr_dyn_undefined()`);
|
|
296
|
+
B.line(`store ptr ${absent}, ptr ${resultSlot}`);
|
|
297
|
+
}
|
|
298
|
+
else if (e.type.kind === "union") {
|
|
299
|
+
B.line(`store ptr ${host.unitInstanceRef(e.type.unionId, undefTag)}, ptr ${resultSlot}`);
|
|
300
|
+
}
|
|
292
301
|
B.br(lj);
|
|
293
302
|
B.startBlock(lj);
|
|
294
303
|
const out = B.tmp();
|
|
@@ -447,14 +456,21 @@ export function emitMapNew(host, e) {
|
|
|
447
456
|
throw new InternalCompilerError("llvm emitter bug: mapNew of non-map type");
|
|
448
457
|
const B = host.B;
|
|
449
458
|
const value = e.type.value;
|
|
450
|
-
const rc = isRefCounted(value) ? vAdapters(host, value) : { retain: "null", release: "null" };
|
|
451
|
-
host.declare(`declare ptr @scr_map_new(i32, i32, ptr, ptr, ptr)`);
|
|
459
|
+
const rc = isRefCounted(value) ? vAdapters(host.shapeHost, value) : { retain: "null", release: "null" };
|
|
452
460
|
const m = B.tmp();
|
|
453
|
-
|
|
461
|
+
const kAcc = mapKeyAccess(e.type.key);
|
|
462
|
+
if (kAcc === "ref") {
|
|
463
|
+
const keyRc = vAdapters(host.shapeHost, e.type.key);
|
|
464
|
+
host.declare(`declare ptr @scr_map_new_typed(i32, i32, ptr, ptr, ptr, ptr, ptr, ptr)`);
|
|
465
|
+
B.line(`${m} = call ptr @scr_map_new_typed(i32 ${mapKeyKindNum(e.type.key)}, i32 ${mapValKindNum(value)}, ptr ${keyRc.retain}, ptr ${keyRc.release}, ptr ${traceArg(host.shapeHost, e.type.key)}, ptr ${rc.retain}, ptr ${rc.release}, ptr ${traceArg(host.shapeHost, value)})`);
|
|
466
|
+
}
|
|
467
|
+
else {
|
|
468
|
+
host.declare(`declare ptr @scr_map_new(i32, i32, ptr, ptr, ptr)`);
|
|
469
|
+
B.line(`${m} = call ptr @scr_map_new(i32 ${mapKeyKindNum(e.type.key)}, i32 ${mapValKindNum(value)}, ptr ${rc.retain}, ptr ${rc.release}, ptr ${traceArg(host.shapeHost, value)})`);
|
|
470
|
+
}
|
|
454
471
|
const out = host.own({ name: m, type: e.type });
|
|
455
472
|
// Seeded construction: set() each pair in source order — a repeated
|
|
456
473
|
// key overwrites (the runtime releases the old value).
|
|
457
|
-
const kAcc = mapKeyAccess(e.type.key);
|
|
458
474
|
const vAcc = elemAccess(value);
|
|
459
475
|
for (const pair of e.seed ?? []) {
|
|
460
476
|
const k = host.emitExpr(pair.key);
|
|
@@ -500,6 +516,19 @@ export function emitMapLikeIntrinsic(host, e) {
|
|
|
500
516
|
// instance. When V is itself a union, the stored box IS the
|
|
501
517
|
// result (`undefined` sorts last in canonical arm order).
|
|
502
518
|
const k = host.emitExpr(e.args[0]);
|
|
519
|
+
if (value.kind === "dyn") {
|
|
520
|
+
host.declare(`declare ptr @scr_map_get_${kAcc}_ref(ptr, ${kTy})`);
|
|
521
|
+
host.declare(`declare ptr @scr_dyn_undefined()`);
|
|
522
|
+
const raw = B.tmp();
|
|
523
|
+
const absent = B.tmp();
|
|
524
|
+
const isnull = B.tmp();
|
|
525
|
+
const result = B.tmp();
|
|
526
|
+
B.line(`${raw} = call ptr @scr_map_get_${kAcc}_ref(ptr ${r.name}, ${kTy} ${k.name})`);
|
|
527
|
+
B.line(`${absent} = call ptr @scr_dyn_undefined()`);
|
|
528
|
+
B.line(`${isnull} = icmp eq ptr ${raw}, null`);
|
|
529
|
+
B.line(`${result} = select i1 ${isnull}, ptr ${absent}, ptr ${raw}`);
|
|
530
|
+
return host.own({ name: result, type: e.type });
|
|
531
|
+
}
|
|
503
532
|
if (e.type.kind !== "union")
|
|
504
533
|
throw new InternalCompilerError("llvm emitter bug: map get result is not a union");
|
|
505
534
|
const def = host.unionsById.get(e.type.unionId);
|
|
@@ -670,9 +699,9 @@ export function emitSetNew(host, e) {
|
|
|
670
699
|
const kAcc = mapKeyAccess(e.type.elem);
|
|
671
700
|
const s = B.tmp();
|
|
672
701
|
if (kAcc === "ref") {
|
|
673
|
-
const rc = vAdapters(host, e.type.elem);
|
|
674
|
-
host.declare(`declare ptr @
|
|
675
|
-
B.line(`${s} = call ptr @
|
|
702
|
+
const rc = vAdapters(host.shapeHost, e.type.elem);
|
|
703
|
+
host.declare(`declare ptr @scr_map_new_typed(i32, i32, ptr, ptr, ptr, ptr, ptr, ptr)`);
|
|
704
|
+
B.line(`${s} = call ptr @scr_map_new_typed(i32 ${mapKeyKindNum(e.type.elem)}, i32 0, ptr ${rc.retain}, ptr ${rc.release}, ptr ${traceArg(host.shapeHost, e.type.elem)}, ptr null, ptr null, ptr null)`);
|
|
676
705
|
}
|
|
677
706
|
else {
|
|
678
707
|
host.declare(`declare ptr @scr_map_new(i32, i32, ptr, ptr, ptr)`);
|