@scriptc/compiler 0.4.0 → 0.4.2
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 +617 -83
- package/dist/backend/cycle-analysis.d.ts +2 -1
- package/dist/backend/cycle-analysis.js +4 -4
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-mutability.d.ts +2 -1
- package/dist/backend/cycle-mutability.js +2 -2
- package/dist/backend/cycle-mutability.js.map +1 -1
- package/dist/backend/executable-features.js +10 -0
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/immutability.d.ts +2 -1
- package/dist/backend/immutability.js +2 -2
- package/dist/backend/immutability.js.map +1 -1
- package/dist/backend/library-pack.js +7 -0
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/link-plan-core.d.ts +2 -0
- package/dist/backend/link-plan-core.js +2 -0
- package/dist/backend/link-plan-core.js.map +1 -1
- package/dist/backend/link-plan.d.ts +1 -0
- package/dist/backend/link-plan.js +1 -0
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +7 -3
- package/dist/backend/llvm/alloc.js +7 -4
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/array-search.js +4 -1
- package/dist/backend/llvm/array-search.js.map +1 -1
- package/dist/backend/llvm/bytes-loop-versions.d.ts +23 -2
- package/dist/backend/llvm/bytes-loop-versions.js +115 -19
- package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
- package/dist/backend/llvm/bytes-loop-versions.test.js +131 -0
- package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +99 -2
- package/dist/backend/llvm/classes.js +436 -57
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +235 -16
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +21 -5
- package/dist/backend/llvm/common.js +50 -5
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.js +8 -4
- package/dist/backend/llvm/constant-callbacks.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.test.js +4 -4
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
- package/dist/backend/llvm/counted-loops.d.ts +4 -1
- package/dist/backend/llvm/counted-loops.js +62 -23
- package/dist/backend/llvm/counted-loops.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.d.ts +3 -1
- package/dist/backend/llvm/dense-array-access.js +61 -38
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.test.js +4 -0
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
- package/dist/backend/llvm/dense-array-loops.d.ts +19 -16
- package/dist/backend/llvm/dense-array-loops.js +49 -13
- package/dist/backend/llvm/dense-array-loops.js.map +1 -1
- package/dist/backend/llvm/dense-array-loops.test.js +50 -14
- package/dist/backend/llvm/dense-array-loops.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +34 -1
- package/dist/backend/llvm/dyn.js +393 -14
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emit-function.js +27 -8
- package/dist/backend/llvm/emit-function.js.map +1 -1
- package/dist/backend/llvm/emit-module.js +67 -39
- package/dist/backend/llvm/emit-module.js.map +1 -1
- package/dist/backend/llvm/emit-statements.d.ts +3 -25
- package/dist/backend/llvm/emit-statements.js +414 -37
- package/dist/backend/llvm/emit-statements.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +159 -22
- package/dist/backend/llvm/emitter.js +573 -89
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +19 -0
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +5 -2
- package/dist/backend/llvm/expr-bytes.js +110 -40
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +1 -1
- package/dist/backend/llvm/expr-calls.js +51 -26
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js +27 -14
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-control.js +2 -3
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +95 -5
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +29 -11
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +55 -0
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +48 -20
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.js +131 -35
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/integer-clones.js +3 -3
- package/dist/backend/llvm/integer-clones.js.map +1 -1
- package/dist/backend/llvm/js-ic.d.ts +18 -0
- package/dist/backend/llvm/js-ic.js +712 -0
- package/dist/backend/llvm/js-ic.js.map +1 -0
- package/dist/backend/llvm/jsval.js +139 -11
- package/dist/backend/llvm/jsval.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +10 -0
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +61 -0
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.d.ts +4 -0
- package/dist/backend/llvm/lib-http2.js +20 -17
- package/dist/backend/llvm/lib-http2.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +69 -17
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +75 -1
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +65 -28
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-tls.js +23 -0
- package/dist/backend/llvm/lib-tls.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +91 -61
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +14 -0
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.d.ts +20 -4
- package/dist/backend/llvm/map-number-lookup.js +43 -7
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/narrow-guards.js +64 -0
- package/dist/backend/llvm/narrow-guards.js.map +1 -1
- package/dist/backend/llvm/publish.d.ts +11 -1
- package/dist/backend/llvm/publish.js +80 -22
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/publish.test.js +3 -0
- package/dist/backend/llvm/publish.test.js.map +1 -1
- package/dist/backend/llvm/receivers.js +1 -1
- package/dist/backend/llvm/receivers.js.map +1 -1
- package/dist/backend/llvm/reference-writes.js +2 -0
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.js +161 -14
- package/dist/backend/llvm/regex-matchers.js.map +1 -1
- package/dist/backend/llvm/regex-matchers.test.js +18 -0
- package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
- package/dist/backend/llvm/regions.js +2 -2
- package/dist/backend/llvm/regions.js.map +1 -1
- package/dist/backend/llvm/regions.test.js +7 -1
- package/dist/backend/llvm/regions.test.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +17 -9
- package/dist/backend/llvm/shapes.js +21 -17
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.d.ts +20 -1
- package/dist/backend/llvm/speculative-integers.js +94 -6
- package/dist/backend/llvm/speculative-integers.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.test.js +55 -1
- package/dist/backend/llvm/speculative-integers.test.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +2 -1
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-reads.d.ts +4 -1
- package/dist/backend/llvm/string-reads.js +88 -4
- package/dist/backend/llvm/string-reads.js.map +1 -1
- package/dist/backend/llvm/thread-slots.test.js +5 -4
- package/dist/backend/llvm/thread-slots.test.js.map +1 -1
- package/dist/backend/llvm/wasm-modules.d.ts +6 -5
- package/dist/backend/llvm/wasm-modules.js +32 -9
- package/dist/backend/llvm/wasm-modules.js.map +1 -1
- package/dist/backend/mangle.d.ts +8 -0
- package/dist/backend/mangle.js +12 -0
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +40 -2
- package/dist/backend/native/executable.js +40 -7
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +3 -1
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +17 -6
- package/dist/backend/native-codegen.js +55 -9
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +18 -14
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +30 -2
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/native-profile.d.ts +32 -0
- package/dist/backend/native-profile.js +39 -0
- package/dist/backend/native-profile.js.map +1 -0
- package/dist/backend/native-profile.test.d.ts +1 -0
- package/dist/backend/native-profile.test.js +58 -0
- package/dist/backend/native-profile.test.js.map +1 -0
- package/dist/backend/native-tools.d.ts +14 -0
- package/dist/backend/native-tools.js +13 -0
- package/dist/backend/native-tools.js.map +1 -1
- package/dist/backend/optimization.d.ts +2 -2
- 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 +4 -0
- package/dist/backend/runtime-pack-core.js +4 -0
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +7 -1
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.d.ts +0 -21
- package/dist/backend/runtime-pack.js +0 -29
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +12 -69
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/target-diagnostics.js +38 -1
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/warm-cache.js +6 -0
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/cli/command.js +89 -7
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/host.d.ts +3 -0
- package/dist/cli/output-options.d.ts +2 -0
- package/dist/cli/output-options.js +9 -0
- package/dist/cli/output-options.js.map +1 -1
- package/dist/cli/usage.d.ts +15 -1
- package/dist/cli/usage.js +30 -2
- package/dist/cli/usage.js.map +1 -1
- package/dist/compile-types.d.ts +9 -0
- package/dist/contracts/check.js +2 -3
- package/dist/contracts/check.js.map +1 -1
- package/dist/coverage/report.d.ts +7 -2
- package/dist/coverage/report.js +18 -0
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/verdict-cache.d.ts +1 -0
- package/dist/coverage/verdict-cache.js +4 -0
- package/dist/coverage/verdict-cache.js.map +1 -1
- package/dist/coverage/verdict-semantic.js +4 -0
- package/dist/coverage/verdict-semantic.js.map +1 -1
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/dynamic-tier.d.ts +40 -0
- package/dist/diagnostics/dynamic-tier.js +57 -0
- package/dist/diagnostics/dynamic-tier.js.map +1 -0
- package/dist/diagnostics/envelope.d.ts +2 -1
- package/dist/diagnostics/envelope.js +5 -2
- package/dist/diagnostics/envelope.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +32 -0
- package/dist/executable/executable-cache.js +65 -7
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +50 -3
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.js +3 -1
- package/dist/executable/prepare.js.map +1 -1
- package/dist/frontend/analysis.js +1 -0
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/arguments-usage.d.ts +8 -0
- package/dist/frontend/arguments-usage.js +98 -0
- package/dist/frontend/arguments-usage.js.map +1 -1
- package/dist/frontend/arguments-usage.test.d.ts +1 -0
- package/dist/frontend/arguments-usage.test.js +32 -0
- package/dist/frontend/arguments-usage.test.js.map +1 -0
- package/dist/frontend/builtin-package-aliases.d.ts +24 -0
- package/dist/frontend/builtin-package-aliases.js +133 -0
- package/dist/frontend/builtin-package-aliases.js.map +1 -0
- package/dist/frontend/builtin-package-aliases.test.d.ts +1 -0
- package/dist/frontend/builtin-package-aliases.test.js +48 -0
- package/dist/frontend/builtin-package-aliases.test.js.map +1 -0
- package/dist/frontend/dispose-hook.d.ts +2 -0
- package/dist/frontend/dispose-hook.js +14 -0
- package/dist/frontend/dispose-hook.js.map +1 -0
- package/dist/frontend/dts-paths.d.ts +4 -0
- package/dist/frontend/dts-paths.js +9 -1
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/jsx-entities.d.ts +4 -0
- package/dist/frontend/jsx-entities.js +259 -0
- package/dist/frontend/jsx-entities.js.map +1 -0
- package/dist/frontend/jsx-source.d.ts +71 -0
- package/dist/frontend/jsx-source.js +781 -0
- package/dist/frontend/jsx-source.js.map +1 -0
- package/dist/frontend/jsx-source.test.d.ts +1 -0
- package/dist/frontend/jsx-source.test.js +200 -0
- package/dist/frontend/jsx-source.test.js.map +1 -0
- package/dist/frontend/literal-values.test.js +8 -9
- package/dist/frontend/literal-values.test.js.map +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.js +2 -1
- package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
- package/dist/frontend/lowering/array-values.js +3 -2
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/binding-analysis.d.ts +1 -1
- package/dist/frontend/lowering/binding-analysis.js +2 -2
- package/dist/frontend/lowering/binding-analysis.js.map +1 -1
- package/dist/frontend/lowering/builtins/arguments.d.ts +3 -0
- package/dist/frontend/lowering/builtins/arguments.js +30 -15
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
- package/dist/frontend/lowering/builtins/atomics.js +10 -6
- package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
- package/dist/frontend/lowering/builtins/builtin-class-dyn.d.ts +8 -0
- package/dist/frontend/lowering/builtins/builtin-class-dyn.js +50 -1
- package/dist/frontend/lowering/builtins/builtin-class-dyn.js.map +1 -1
- package/dist/frontend/lowering/builtins/callable-aliases.js +3 -2
- package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-async.js +2 -1
- package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js +2 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.d.ts +7 -2
- package/dist/frontend/lowering/builtins/crypto.js +63 -4
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/date-classes.d.ts +46 -0
- package/dist/frontend/lowering/builtins/date-classes.js +477 -0
- package/dist/frontend/lowering/builtins/date-classes.js.map +1 -0
- package/dist/frontend/lowering/builtins/dates.d.ts +11 -1
- package/dist/frontend/lowering/builtins/dates.js +55 -26
- package/dist/frontend/lowering/builtins/dates.js.map +1 -1
- package/dist/frontend/lowering/builtins/dh.d.ts +15 -0
- package/dist/frontend/lowering/builtins/dh.js +151 -0
- package/dist/frontend/lowering/builtins/dh.js.map +1 -0
- package/dist/frontend/lowering/builtins/disposable-stack.js +2 -1
- package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -1
- package/dist/frontend/lowering/builtins/ecdh.d.ts +21 -0
- package/dist/frontend/lowering/builtins/ecdh.js +208 -0
- package/dist/frontend/lowering/builtins/ecdh.js.map +1 -0
- package/dist/frontend/lowering/builtins/errors.d.ts +15 -0
- package/dist/frontend/lowering/builtins/errors.js +110 -0
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.js +23 -17
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.js +6 -4
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-paths.d.ts +15 -0
- package/dist/frontend/lowering/builtins/fs-paths.js +209 -0
- package/dist/frontend/lowering/builtins/fs-paths.js.map +1 -0
- package/dist/frontend/lowering/builtins/hash-stream.d.ts +16 -4
- package/dist/frontend/lowering/builtins/hash-stream.js +86 -23
- package/dist/frontend/lowering/builtins/hash-stream.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.js +54 -1
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/key-object.d.ts +2 -1
- package/dist/frontend/lowering/builtins/key-object.js +20 -7
- package/dist/frontend/lowering/builtins/key-object.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +11 -4
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/numbers.js +9 -5
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/operating-system.js +4 -3
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
- package/dist/frontend/lowering/builtins/performance.js +3 -2
- package/dist/frontend/lowering/builtins/performance.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.d.ts +9 -0
- package/dist/frontend/lowering/builtins/process.js +47 -2
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.js +3 -2
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/promisify-callback.d.ts +3 -0
- package/dist/frontend/lowering/builtins/promisify-callback.js +23 -4
- package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +2 -1
- package/dist/frontend/lowering/builtins/readline.js +23 -6
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/reflection.js +26 -0
- package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
- package/dist/frontend/lowering/builtins/strings.js +13 -5
- package/dist/frontend/lowering/builtins/strings.js.map +1 -1
- package/dist/frontend/lowering/builtins/text-codecs.js +2 -1
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
- package/dist/frontend/lowering/builtins/timers.js +6 -2
- package/dist/frontend/lowering/builtins/timers.js.map +1 -1
- package/dist/frontend/lowering/builtins/typed-array-members.d.ts +7 -0
- package/dist/frontend/lowering/builtins/typed-array-members.js +160 -0
- package/dist/frontend/lowering/builtins/typed-array-members.js.map +1 -0
- package/dist/frontend/lowering/builtins/url.js +4 -3
- package/dist/frontend/lowering/builtins/url.js.map +1 -1
- package/dist/frontend/lowering/builtins/v8.js +2 -1
- package/dist/frontend/lowering/builtins/v8.js.map +1 -1
- package/dist/frontend/lowering/builtins/webcrypto.js +39 -20
- package/dist/frontend/lowering/builtins/webcrypto.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.js +2 -1
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.d.ts +4 -0
- package/dist/frontend/lowering/call-signatures.js +137 -13
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/caught-value-dispatch.d.ts +18 -1
- package/dist/frontend/lowering/caught-value-dispatch.js +201 -32
- package/dist/frontend/lowering/caught-value-dispatch.js.map +1 -1
- package/dist/frontend/lowering/cjs-exports-object.js +34 -1
- package/dist/frontend/lowering/cjs-exports-object.js.map +1 -1
- package/dist/frontend/lowering/class-assertions.js +3 -2
- package/dist/frontend/lowering/class-assertions.js.map +1 -1
- package/dist/frontend/lowering/class-construction.d.ts +2 -1
- package/dist/frontend/lowering/class-construction.js +8 -13
- package/dist/frontend/lowering/class-construction.js.map +1 -1
- package/dist/frontend/lowering/class-descriptors.js +1 -1
- package/dist/frontend/lowering/class-descriptors.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +34 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +577 -152
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +77 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-method-mutations.js +3 -0
- package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
- package/dist/frontend/lowering/class-method-values.js +1 -1
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.d.ts +17 -0
- package/dist/frontend/lowering/class-protocols.js +117 -7
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.d.ts +5 -0
- package/dist/frontend/lowering/class-prototypes.js +42 -4
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-to-primitive.d.ts +2 -2
- package/dist/frontend/lowering/class-to-primitive.js +31 -8
- package/dist/frontend/lowering/class-to-primitive.js.map +1 -1
- package/dist/frontend/lowering/class-unions.js +2 -1
- package/dist/frontend/lowering/class-unions.js.map +1 -1
- package/dist/frontend/lowering/coercions/fresh-spread.d.ts +13 -0
- package/dist/frontend/lowering/coercions/fresh-spread.js +95 -0
- package/dist/frontend/lowering/coercions/fresh-spread.js.map +1 -0
- package/dist/frontend/lowering/coercions/function-adapters.js +105 -75
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +8 -7
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/coercions/unions.js +8 -7
- package/dist/frontend/lowering/coercions/unions.js.map +1 -1
- package/dist/frontend/lowering/collection-ingestion.js +2 -1
- package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +15 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +36 -32
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-concat.js +2 -1
- package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.js +32 -4
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +11 -5
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.js +2 -1
- package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.d.ts +10 -1
- package/dist/frontend/lowering/containers/bytes.js +601 -24
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.js +52 -2
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-grouping.js +3 -2
- package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +80 -10
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +8 -7
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/containers/iterator-helpers.d.ts +32 -1
- package/dist/frontend/lowering/containers/iterator-helpers.js +6 -5
- package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.js +85 -22
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js +2 -1
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.d.ts +26 -10
- package/dist/frontend/lowering/cycle-initialization.js +177 -39
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.d.ts +18 -1
- package/dist/frontend/lowering/deferred-module-initializers.js +226 -115
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.test.js +28 -0
- package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
- package/dist/frontend/lowering/dispatch-sites.d.ts +59 -0
- package/dist/frontend/lowering/dispatch-sites.js +204 -0
- package/dist/frontend/lowering/dispatch-sites.js.map +1 -0
- package/dist/frontend/lowering/dispatch-sites.test.d.ts +1 -0
- package/dist/frontend/lowering/dispatch-sites.test.js +59 -0
- package/dist/frontend/lowering/dispatch-sites.test.js.map +1 -0
- package/dist/frontend/lowering/dyn-streams.d.ts +3 -0
- package/dist/frontend/lowering/dyn-streams.js +1 -1
- package/dist/frontend/lowering/dyn-streams.js.map +1 -1
- package/dist/frontend/lowering/dynamic-tier.d.ts +25 -0
- package/dist/frontend/lowering/dynamic-tier.js +327 -0
- package/dist/frontend/lowering/dynamic-tier.js.map +1 -0
- package/dist/frontend/lowering/error-methods.js +4 -0
- package/dist/frontend/lowering/error-methods.js.map +1 -1
- package/dist/frontend/lowering/expressions/array-literals.js +48 -13
- package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/binary.js +124 -8
- package/dist/frontend/lowering/expressions/binary.js.map +1 -1
- package/dist/frontend/lowering/expressions/element-access.js +30 -7
- package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/identifiers.js +46 -7
- package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
- package/dist/frontend/lowering/expressions/keyed-field-targets.d.ts +14 -2
- package/dist/frontend/lowering/expressions/keyed-field-targets.js +91 -10
- package/dist/frontend/lowering/expressions/keyed-field-targets.js.map +1 -1
- package/dist/frontend/lowering/expressions/narrowing.js +52 -7
- package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.d.ts +0 -3
- package/dist/frontend/lowering/expressions/object-literals.js +75 -7
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +17 -8
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/property-access.d.ts +5 -4
- package/dist/frontend/lowering/expressions/property-access.js +351 -16
- package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/relational.js +112 -9
- package/dist/frontend/lowering/expressions/relational.js.map +1 -1
- package/dist/frontend/lowering/expressions/typeof.js +13 -0
- package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
- package/dist/frontend/lowering/expressions/updates.js +64 -10
- package/dist/frontend/lowering/expressions/updates.js.map +1 -1
- package/dist/frontend/lowering/generator-delegation.d.ts +8 -0
- package/dist/frontend/lowering/generator-delegation.js +191 -1
- package/dist/frontend/lowering/generator-delegation.js.map +1 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +6 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +20 -30
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +46 -1
- package/dist/frontend/lowering/generic-functions.js +660 -73
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/handle-properties.d.ts +24 -0
- package/dist/frontend/lowering/handle-properties.js +281 -0
- package/dist/frontend/lowering/handle-properties.js.map +1 -0
- package/dist/frontend/lowering/intern-tables.js +2 -1
- package/dist/frontend/lowering/intern-tables.js.map +1 -1
- package/dist/frontend/lowering/iterable-spelling.d.ts +7 -0
- package/dist/frontend/lowering/iterable-spelling.js +38 -0
- package/dist/frontend/lowering/iterable-spelling.js.map +1 -0
- package/dist/frontend/lowering/iterator-adapters.js +9 -8
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
- package/dist/frontend/lowering/js-dynamic-objects.js +3 -2
- package/dist/frontend/lowering/js-dynamic-objects.js.map +1 -1
- package/dist/frontend/lowering/json-require.js +2 -1
- package/dist/frontend/lowering/json-require.js.map +1 -1
- package/dist/frontend/lowering/key-order-witness.d.ts +7 -2
- package/dist/frontend/lowering/key-order-witness.js +21 -4
- package/dist/frontend/lowering/key-order-witness.js.map +1 -1
- package/dist/frontend/lowering/key-order-witness.test.js +38 -2
- package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
- package/dist/frontend/lowering/lifetime-regions.js +2 -1
- package/dist/frontend/lowering/lifetime-regions.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.d.ts +33 -15
- package/dist/frontend/lowering/lower-array-sort.js +117 -21
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.test.js +93 -14
- package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +6 -5
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.js +3 -1
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.js +1 -0
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +4 -0
- package/dist/frontend/lowering/lower-calls.js +504 -97
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +22 -0
- package/dist/frontend/lowering/lower-classes.js +339 -32
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.js +65 -15
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +14 -0
- package/dist/frontend/lowering/lower-event-emitter.js +267 -20
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +19 -2
- package/dist/frontend/lowering/lower-exprs.js +148 -12
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +308 -72
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.js +10 -4
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +578 -16
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.js +2 -1
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-mock.js +2 -1
- package/dist/frontend/lowering/lower-mock.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +11 -3
- package/dist/frontend/lowering/lower-modules.js +227 -72
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.test.js +2 -2
- package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +2 -1
- package/dist/frontend/lowering/lower-namespaces.js +24 -3
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +10 -0
- package/dist/frontend/lowering/lower-server.js +263 -60
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.js +39 -18
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +7 -10
- package/dist/frontend/lowering/lower-stmts.js +584 -69
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.test.js +1 -1
- package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +575 -165
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.js +21 -4
- package/dist/frontend/lowering/lower-timers.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +151 -30
- package/dist/frontend/lowering/lowerer.js +725 -84
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +21 -9
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/narrowing-stability.js +5 -0
- package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.js +1 -1
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/object-enumeration-receiver.js +2 -1
- package/dist/frontend/lowering/object-enumeration-receiver.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/private-brands.d.ts +9 -0
- package/dist/frontend/lowering/private-brands.js +66 -15
- package/dist/frontend/lowering/private-brands.js.map +1 -1
- package/dist/frontend/lowering/promise-executor-adapter.js +2 -1
- package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -1
- package/dist/frontend/lowering/rebindable-functions.d.ts +8 -0
- package/dist/frontend/lowering/rebindable-functions.js +54 -0
- package/dist/frontend/lowering/rebindable-functions.js.map +1 -0
- package/dist/frontend/lowering/require-initialization.js +2 -1
- package/dist/frontend/lowering/require-initialization.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-elements.d.ts +5 -0
- package/dist/frontend/lowering/runtime-optional-elements.js +17 -1
- package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-records.d.ts +2 -0
- package/dist/frontend/lowering/runtime-optional-records.js +18 -5
- package/dist/frontend/lowering/runtime-optional-records.js.map +1 -1
- package/dist/frontend/lowering/site-dependencies.d.ts +35 -0
- package/dist/frontend/lowering/site-dependencies.js +84 -0
- package/dist/frontend/lowering/site-dependencies.js.map +1 -0
- package/dist/frontend/lowering/site-dependencies.test.d.ts +1 -0
- package/dist/frontend/lowering/site-dependencies.test.js +53 -0
- package/dist/frontend/lowering/site-dependencies.test.js.map +1 -0
- package/dist/frontend/lowering/stable-names.d.ts +11 -0
- package/dist/frontend/lowering/stable-names.js +35 -0
- package/dist/frontend/lowering/stable-names.js.map +1 -0
- package/dist/frontend/lowering/static-typeof.d.ts +26 -0
- package/dist/frontend/lowering/static-typeof.js +172 -0
- package/dist/frontend/lowering/static-typeof.js.map +1 -0
- package/dist/frontend/lowering/strict-equality.js +2 -1
- package/dist/frontend/lowering/strict-equality.js.map +1 -1
- package/dist/frontend/lowering/string-index-bounds.js +3 -2
- package/dist/frontend/lowering/string-index-bounds.js.map +1 -1
- package/dist/frontend/lowering/structural-positions.d.ts +32 -0
- package/dist/frontend/lowering/structural-positions.js +108 -0
- package/dist/frontend/lowering/structural-positions.js.map +1 -0
- package/dist/frontend/lowering/surfaces.js +72 -30
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/thenables.d.ts +16 -0
- package/dist/frontend/lowering/thenables.js +124 -0
- package/dist/frontend/lowering/thenables.js.map +1 -0
- package/dist/frontend/lowering/var-hoisting.js +37 -3
- package/dist/frontend/lowering/var-hoisting.js.map +1 -1
- package/dist/frontend/npm-static-builtin-aliases.d.ts +8 -0
- package/dist/frontend/npm-static-builtin-aliases.js +65 -0
- package/dist/frontend/npm-static-builtin-aliases.js.map +1 -0
- package/dist/frontend/npm-static-bundled-chunks.d.ts +8 -1
- package/dist/frontend/npm-static-bundled-chunks.js +173 -2
- package/dist/frontend/npm-static-bundled-chunks.js.map +1 -1
- package/dist/frontend/npm-static-bundled-chunks.test.js +112 -0
- package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -1
- package/dist/frontend/npm-static-bundled-esm.js +224 -4
- package/dist/frontend/npm-static-bundled-esm.js.map +1 -1
- package/dist/frontend/npm-static-bundled-esm.test.js +129 -0
- package/dist/frontend/npm-static-bundled-esm.test.js.map +1 -1
- package/dist/frontend/npm-static-enum-iife.d.ts +6 -0
- package/dist/frontend/npm-static-enum-iife.js +280 -0
- package/dist/frontend/npm-static-enum-iife.js.map +1 -0
- package/dist/frontend/npm-static-enum-iife.test.d.ts +1 -0
- package/dist/frontend/npm-static-enum-iife.test.js +116 -0
- package/dist/frontend/npm-static-enum-iife.test.js.map +1 -0
- package/dist/frontend/npm-static-tsc-helpers.d.ts +5 -0
- package/dist/frontend/npm-static-tsc-helpers.js +106 -0
- package/dist/frontend/npm-static-tsc-helpers.js.map +1 -0
- package/dist/frontend/npm-static-tsc-helpers.test.d.ts +1 -0
- package/dist/frontend/npm-static-tsc-helpers.test.js +58 -0
- package/dist/frontend/npm-static-tsc-helpers.test.js.map +1 -0
- package/dist/frontend/npm-static-type-exports-host.d.ts +8 -0
- package/dist/frontend/npm-static-type-exports-host.js +214 -0
- package/dist/frontend/npm-static-type-exports-host.js.map +1 -0
- package/dist/frontend/npm-static-type-exports-host.test.d.ts +1 -0
- package/dist/frontend/npm-static-type-exports-host.test.js +53 -0
- package/dist/frontend/npm-static-type-exports-host.test.js.map +1 -0
- package/dist/frontend/npm-static-type-exports.d.ts +52 -0
- package/dist/frontend/npm-static-type-exports.js +261 -0
- package/dist/frontend/npm-static-type-exports.js.map +1 -0
- package/dist/frontend/npm-static-type-exports.test.d.ts +1 -0
- package/dist/frontend/npm-static-type-exports.test.js +103 -0
- package/dist/frontend/npm-static-type-exports.test.js.map +1 -0
- package/dist/frontend/npm-static-umd.d.ts +6 -0
- package/dist/frontend/npm-static-umd.js +203 -0
- package/dist/frontend/npm-static-umd.js.map +1 -0
- package/dist/frontend/npm-static-umd.test.d.ts +1 -0
- package/dist/frontend/npm-static-umd.test.js +105 -0
- package/dist/frontend/npm-static-umd.test.js.map +1 -0
- package/dist/frontend/npm-static.d.ts +16 -0
- package/dist/frontend/npm-static.js +93 -3
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.js +13 -0
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/package-shims.d.ts +47 -0
- package/dist/frontend/package-shims.js +300 -0
- package/dist/frontend/package-shims.js.map +1 -0
- package/dist/frontend/pipeline.js +67 -1
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/program.d.ts +21 -0
- package/dist/frontend/program.js +174 -14
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +1 -1
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/resolve.js +13 -0
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/services.d.ts +12 -0
- package/dist/frontend/services.js +37 -0
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/ts7/ast-node.d.ts +21 -7
- package/dist/frontend/ts7/ast-node.js +131 -29
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +60 -0
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/ts7/ast-wire.d.ts +27 -2
- package/dist/frontend/ts7/ast-wire.js +124 -21
- package/dist/frontend/ts7/ast-wire.js.map +1 -1
- package/dist/frontend/ts7/ast.d.ts +23 -2
- package/dist/frontend/ts7/ast.js +143 -2
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/checker.d.ts +13 -1
- package/dist/frontend/ts7/checker.js +75 -1
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.js +9 -6
- package/dist/frontend/ts7/checker.test.js.map +1 -1
- package/dist/frontend/ts7/enums.d.ts +3 -3
- package/dist/frontend/ts7/enums.generated.d.ts +10 -0
- package/dist/frontend/ts7/enums.generated.js +21 -0
- package/dist/frontend/ts7/enums.generated.js.map +1 -1
- package/dist/frontend/ts7/enums.js +19 -0
- package/dist/frontend/ts7/enums.js.map +1 -1
- package/dist/frontend/ts7/program-host.d.ts +6 -5
- package/dist/frontend/ts7/program-host.js +12 -2
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.d.ts +10 -0
- package/dist/frontend/ts7/semantic-checker.js +25 -20
- package/dist/frontend/ts7/semantic-checker.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.d.ts +13 -0
- package/dist/frontend/ts7/semantic-json.js +146 -0
- package/dist/frontend/ts7/semantic-json.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.test.js +57 -1
- package/dist/frontend/ts7/semantic-json.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.d.ts +18 -0
- package/dist/frontend/ts7/semantic-model.js +90 -16
- package/dist/frontend/ts7/semantic-model.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.test.js +3 -2
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
- package/dist/frontend/ts7/session.d.ts +19 -4
- package/dist/frontend/ts7/session.js +1 -1
- package/dist/frontend/ts7/session.js.map +1 -1
- package/dist/frontend/tsc-codes.d.ts +1 -1
- package/dist/frontend/tsc-codes.js +7 -0
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +38 -6
- package/dist/frontend/type-mapper.js +466 -47
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +1 -1
- package/dist/frontend/type-mapper.test.js.map +1 -1
- package/dist/frontend-process-args.d.ts +4 -0
- package/dist/frontend-process-args.js +52 -0
- package/dist/frontend-process-args.js.map +1 -0
- package/dist/frontend-process-args.test.d.ts +1 -0
- package/dist/frontend-process-args.test.js +47 -0
- package/dist/frontend-process-args.test.js.map +1 -0
- package/dist/frontend-process.d.ts +1 -0
- package/dist/frontend-process.js +23 -0
- package/dist/frontend-process.js.map +1 -0
- package/dist/heap-collection.d.ts +16 -0
- package/dist/heap-collection.js +42 -0
- package/dist/heap-collection.js.map +1 -0
- package/dist/heap-collection.test.d.ts +1 -0
- package/dist/heap-collection.test.js +59 -0
- package/dist/heap-collection.test.js.map +1 -0
- package/dist/heap-pressure.d.ts +2 -0
- package/dist/heap-pressure.js +12 -0
- package/dist/heap-pressure.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +453 -85
- package/dist/index.js.map +1 -1
- package/dist/ir/array-length-stability.d.ts +3 -2
- package/dist/ir/array-length-stability.js +22 -2
- package/dist/ir/array-length-stability.js.map +1 -1
- package/dist/ir/array-length-stability.test.js +47 -1
- package/dist/ir/array-length-stability.test.js.map +1 -1
- package/dist/ir/builtin-effects.js +41 -0
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +5 -1
- package/dist/ir/builtin-signatures.js +187 -16
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/final-fields.d.ts +2 -1
- package/dist/ir/final-fields.js +2 -2
- package/dist/ir/final-fields.js.map +1 -1
- package/dist/ir/function-references.test.js +2 -0
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/int32-slots.d.ts +13 -5
- package/dist/ir/int32-slots.js +112 -115
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +3 -1
- package/dist/ir/int32-slots.test.js.map +1 -1
- package/dist/ir/integer-loop-facts.d.ts +14 -4
- package/dist/ir/integer-loop-facts.js +172 -32
- package/dist/ir/integer-loop-facts.js.map +1 -1
- package/dist/ir/integer-loops.d.ts +49 -0
- package/dist/ir/integer-loops.js +193 -39
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +201 -1
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +10 -1
- package/dist/ir/integer-ranges.js +122 -25
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +255 -1
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/ir.d.ts +17 -2
- package/dist/ir/ir.js +11 -1
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/js-ic.d.ts +52 -0
- package/dist/ir/js-ic.js +199 -0
- package/dist/ir/js-ic.js.map +1 -0
- package/dist/ir/js-ic.test.d.ts +1 -0
- package/dist/ir/js-ic.test.js +148 -0
- package/dist/ir/js-ic.test.js.map +1 -0
- package/dist/ir/jsval.js +38 -4
- package/dist/ir/jsval.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +64 -5
- package/dist/ir/runtime-features.js +358 -101
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/tiers.js +1 -0
- package/dist/ir/tiers.js.map +1 -1
- package/dist/ir/traverse.d.ts +2 -0
- package/dist/ir/traverse.js +124 -70
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +77 -24
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +15 -2
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/ir-policy.js +11 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/library/library-cache.d.ts +2 -0
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/prepare.js +2 -0
- package/dist/library/prepare.js.map +1 -1
- package/dist/native/cli.js +22 -0
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.js +33 -4
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/executable-cache.js +3 -0
- package/dist/native/executable-cache.js.map +1 -1
- package/dist/native/prepare.js +8 -1
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/sanitizer.test.js +10 -0
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/startup-cache.d.ts +1 -0
- package/dist/startup-cache.js +1 -0
- package/dist/startup-cache.js.map +1 -1
- package/dist/text-parts.d.ts +7 -0
- package/dist/text-parts.js +44 -0
- package/dist/text-parts.js.map +1 -1
- package/dist/text-parts.test.d.ts +1 -0
- package/dist/text-parts.test.js +46 -0
- package/dist/text-parts.test.js.map +1 -0
- package/dist/timing.d.ts +9 -2
- package/dist/timing.js +7 -4
- package/dist/timing.js.map +1 -1
- package/dist/wasm/translate.d.ts +4 -0
- package/dist/wasm/translate.js +2 -2
- package/dist/wasm/translate.js.map +1 -1
- package/package.json +22 -21
- package/shims/fs-extra/core/api.ts +1192 -0
- package/shims/fs-extra/index.ts +9 -0
- package/shims/undici/core/agent.ts +163 -0
- package/shims/undici/core/api.ts +93 -0
- package/shims/undici/core/client.ts +1304 -0
- package/shims/undici/core/connector.ts +157 -0
- package/shims/undici/core/diagnostics-types.ts +68 -0
- package/shims/undici/core/diagnostics.ts +16 -0
- package/shims/undici/core/dispatcher.ts +574 -0
- package/shims/undici/core/errors-v5.ts +22 -0
- package/shims/undici/core/errors-v7.ts +25 -0
- package/shims/undici/core/errors.ts +255 -0
- package/shims/undici/core/fetch.ts +635 -0
- package/shims/undici/core/pool.ts +280 -0
- package/shims/undici/core/readable.ts +268 -0
- package/shims/undici/core/request.ts +313 -0
- package/shims/undici/core/timers.ts +80 -0
- package/shims/undici/core/types.ts +167 -0
- package/shims/undici/core/util.ts +67 -0
- package/shims/undici/v5.ts +119 -0
- package/shims/undici/v7.ts +119 -0
- package/surface-manifest.json +20 -52
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { JsIcSites } from "../../ir/js-ic.js";
|
|
1
2
|
import { type ArraySearchKind } from "./array-search.js";
|
|
2
3
|
import type { IrBytesElem, IrExpr, IrFfiCallbackParam, IrFfiImport, IrFunction, IrGlobal, IrLocal, IrModule, IrRecordShape, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/ir.js";
|
|
4
|
+
import { type RuntimeFeatures } from "../../ir/runtime-features.js";
|
|
3
5
|
import { type DenseArrayLoop } from "./dense-array-loops.js";
|
|
4
6
|
import { findInitializedByteLoopBindings } from "./byte-windows.js";
|
|
5
7
|
import { matchBytesLoopVersion } from "./bytes-loop-versions.js";
|
|
@@ -97,7 +99,18 @@ export interface LlvmTargetOptions {
|
|
|
97
99
|
/** Translated WebAssembly memories check bounds explicitly instead of
|
|
98
100
|
* relying on guard pages (wasm-modules.ts wasmBoundsChecks). */
|
|
99
101
|
wasmBoundsChecks?: boolean;
|
|
102
|
+
/** The executable can reserve its program-lifetime region below 32 GiB
|
|
103
|
+
* (lowRegionTarget): fields that refer to compact class instances then
|
|
104
|
+
* store the instance's address over 8 in 32 bits (classes.ts
|
|
105
|
+
* compactRefLoadLines). Elsewhere they keep 8-byte pointers. */
|
|
106
|
+
lowRegion?: boolean;
|
|
100
107
|
}
|
|
108
|
+
/** LlvmTargetOptions.lowRegion for an executable: Linux targets without
|
|
109
|
+
* sanitizers, whose address space below 32 GiB is free (ASan keeps its
|
|
110
|
+
* shadow memory there; other systems map their own images and libraries
|
|
111
|
+
* there). `platform` is a target platform (`linux`, `darwin`, `win32`,
|
|
112
|
+
* `wasi`). */
|
|
113
|
+
export declare function lowRegionTarget(platform: string, sanitize: boolean): boolean;
|
|
101
114
|
export declare function emitLlvmModule(input: IrModule, options?: LlvmTargetOptions): string;
|
|
102
115
|
/** Keep large translation units below the host's single-string limit. */
|
|
103
116
|
export declare function emitLlvmModuleSource(input: IrModule, options?: LlvmTargetOptions): string | readonly string[];
|
|
@@ -206,6 +219,13 @@ export declare class LlEmitter {
|
|
|
206
219
|
integerArrayBindings: Set<string>;
|
|
207
220
|
readonly fieldAliasTags: Map<string, number>;
|
|
208
221
|
readonly fieldPointerTags: Map<string, number>;
|
|
222
|
+
/** The field pointers (classFieldPtr) of this function whose fields hold
|
|
223
|
+
* 32-bit references to compact class instances (LlClassMeta.compressed):
|
|
224
|
+
* loadField/loadRef decode them and storeField/storeRef encode them. */
|
|
225
|
+
readonly compressedFieldPtrs: Set<string>;
|
|
226
|
+
/** Whether a class has compressed fields: main reserves the region before
|
|
227
|
+
* compiled code runs (scr_plr_init). */
|
|
228
|
+
usesCompactRefs: boolean;
|
|
209
229
|
/** Native class fields with different property names cannot occupy the
|
|
210
230
|
* same slot of one object. Inherited views of the same property share a
|
|
211
231
|
* tag. Array storage has its own disjoint categories; untagged runtime
|
|
@@ -215,10 +235,6 @@ export declare class LlEmitter {
|
|
|
215
235
|
/** The alias tag of a runtime word that emitted code reads and writes
|
|
216
236
|
* outside every field (the lifetime-region count, owner and cursors). */
|
|
217
237
|
memoryAliasAttachment(category: string): string;
|
|
218
|
-
/** The `!range` attachment of an array length load: a length is at most
|
|
219
|
-
* 2^32 - 1 (the runtime's SCR_ARR_MAX_LENGTH), so conversions to double
|
|
220
|
-
* and back fold. 32-bit targets load the full range anyway. */
|
|
221
|
-
get arrayLengthRange(): string;
|
|
222
238
|
/** Whether an element access at `index` of `arr` lies in the hole-free
|
|
223
239
|
* prefix: the counter of a dense array loop's fast copy indexing one of
|
|
224
240
|
* the arrays its entry test covered. */
|
|
@@ -373,6 +389,12 @@ export declare class LlEmitter {
|
|
|
373
389
|
readonly callLifetimes: CallLifetimes;
|
|
374
390
|
readonly constantCallbacks: Map<string, Map<string, string>>;
|
|
375
391
|
currentConstantCallbacks: ReadonlyMap<string, string>;
|
|
392
|
+
/** Callback bindings whose closures an enclosing callback loop version
|
|
393
|
+
* proved to hold their known function: calls take the direct entry with
|
|
394
|
+
* no fallback (emitCallbackVersionedLoop). */
|
|
395
|
+
knownCallbacks: Set<string>;
|
|
396
|
+
readonly callbackVersioning: Set<IrStmt>;
|
|
397
|
+
callbackVersionsEnabled: boolean;
|
|
376
398
|
readonly stackCallbacks: StackCallbacks;
|
|
377
399
|
readonly receiverReaders: AmbientReceiverReaders;
|
|
378
400
|
readonly stackCaptures: StackCaptures;
|
|
@@ -454,9 +476,15 @@ export declare class LlEmitter {
|
|
|
454
476
|
/** Fiberless async functions a stackless coroutine body awaits directly;
|
|
455
477
|
* each gets an inline await entry (emitCoroInlineAwait). */
|
|
456
478
|
readonly inlineAwaitCallees: Set<string>;
|
|
479
|
+
/** Stackless async functions some coroutine body awaits directly: each
|
|
480
|
+
* gets a direct spawn entry (emitCoroDirectAwait). */
|
|
481
|
+
readonly directAwaitCallees: Set<string>;
|
|
457
482
|
/** The async functions whose bodies never suspend and that a direct
|
|
458
483
|
* await may enter in place (selectStacklessAsync). */
|
|
459
484
|
private inlineAwaitable;
|
|
485
|
+
/** Locals whose array literal emitStmts left for the `await Promise.all`
|
|
486
|
+
* that reads them (deferredPromiseAllLocal). */
|
|
487
|
+
private readonly deferredPromiseAllEntries;
|
|
460
488
|
/** The promise a `return` emitted past its finally regions already
|
|
461
489
|
* produced for its adopting await (borrowed from the return's parked
|
|
462
490
|
* slot); that await takes it instead of evaluating its operand. */
|
|
@@ -468,7 +496,10 @@ export declare class LlEmitter {
|
|
|
468
496
|
/** The program calls mock.timers members (moduleUsesMockTimers): timer
|
|
469
497
|
* calls emit scr_test.c's mock-aware entry points. */
|
|
470
498
|
readonly mockTimers: boolean;
|
|
471
|
-
private
|
|
499
|
+
private runtimeFeaturesValue;
|
|
500
|
+
/** The module's runtime features (moduleRuntimeFeatures), found with one
|
|
501
|
+
* walk of the module the first time any of them is read. */
|
|
502
|
+
get runtimeFeatures(): RuntimeFeatures;
|
|
472
503
|
/** Whether timer and tick scheduling goes through the *_als entry
|
|
473
504
|
* points (RuntimeFeatures asyncContext). */
|
|
474
505
|
get schedulesInContext(): boolean;
|
|
@@ -486,7 +517,6 @@ export declare class LlEmitter {
|
|
|
486
517
|
/** Identity-preserving static→dyn capsules for program classes and Web
|
|
487
518
|
* APIs whose values remain directly observable. */
|
|
488
519
|
readonly liveDynRefAdapters: Map<string, LlStreamTypedRefAdapter>;
|
|
489
|
-
private dynBuiltinStreamUse;
|
|
490
520
|
/** See moduleUsesDynBuiltinStream. */
|
|
491
521
|
get usesDynBuiltinStream(): boolean;
|
|
492
522
|
/** Runtime-arm dispatchers for live union values. */
|
|
@@ -503,6 +533,12 @@ export declare class LlEmitter {
|
|
|
503
533
|
readonly recordCloneShapes: Set<string>;
|
|
504
534
|
readonly tracedShapes: Set<string>;
|
|
505
535
|
readonly tracedUnions: Set<string>;
|
|
536
|
+
/** Inline-cache sites of dynamic-tier functions (js-ic.ts): one
|
|
537
|
+
* zero-initialized ScrJsIc per site (scr_js.h). */
|
|
538
|
+
jsIcSiteCount: number;
|
|
539
|
+
private jsIcSitesMemo;
|
|
540
|
+
/** The tier of the function being emitted. */
|
|
541
|
+
currentTier: IrFunction["tier"];
|
|
506
542
|
/** The class graph (buildClassGraph): preorder numbering, hierarchy
|
|
507
543
|
* membership, virtual slot lists. */
|
|
508
544
|
readonly classMeta: Map<string, LlClassMeta>;
|
|
@@ -623,6 +659,19 @@ export declare class LlEmitter {
|
|
|
623
659
|
max: number;
|
|
624
660
|
};
|
|
625
661
|
}>;
|
|
662
|
+
/** Constant number locals whose latest emitted declaration stored an
|
|
663
|
+
* exact integer beside the double, such as `const j = i * 4` in a
|
|
664
|
+
* typed-array loop version: an i64 slot and the integer's range. */
|
|
665
|
+
integerTemps: Map<string, {
|
|
666
|
+
slot: string;
|
|
667
|
+
type: "i64";
|
|
668
|
+
signed: true;
|
|
669
|
+
range: IntegerRange;
|
|
670
|
+
}>;
|
|
671
|
+
/** Integer temps are kept only in optimized synchronous functions: an
|
|
672
|
+
* async or generator body resumes with its locals in its frame, which
|
|
673
|
+
* an entry alloca is not part of. */
|
|
674
|
+
integerTempsEnabled: boolean;
|
|
626
675
|
countedLoopsEnabled: boolean;
|
|
627
676
|
/** Speculative integer loops (speculative-integers.ts) run in this function. */
|
|
628
677
|
speculativeLoopsEnabled: boolean;
|
|
@@ -633,12 +682,23 @@ export declare class LlEmitter {
|
|
|
633
682
|
resume: Map<IrStmt, string>;
|
|
634
683
|
/** Globals whose double is written back only when the copy is left. */
|
|
635
684
|
deferred: Set<string>;
|
|
685
|
+
/** The loop site's count of bailing entries in a row (a global), and
|
|
686
|
+
* whether this entry completed a speculated write (a slot). A proven
|
|
687
|
+
* integer loop has neither. */
|
|
688
|
+
bails?: string;
|
|
689
|
+
ran?: string;
|
|
636
690
|
} | null;
|
|
691
|
+
/** Speculative loop sites numbered so far in the module. */
|
|
692
|
+
speculativeLoopSites: number;
|
|
637
693
|
/** The ordinary copy being emitted: resume labels still to place. */
|
|
638
694
|
speculationResume: Map<IrStmt, {
|
|
639
695
|
label: string;
|
|
640
696
|
placed: boolean;
|
|
641
697
|
}> | null;
|
|
698
|
+
/** Run once at the top of the next loop copy's header
|
|
699
|
+
* (`enterLoopHeader`): records the ordinary copy's header, or sends the
|
|
700
|
+
* third copy's header there. */
|
|
701
|
+
speculationHeader: ((header: string) => void) | null;
|
|
642
702
|
/** The function being emitted, for speculative globals. */
|
|
643
703
|
speculativeFunction: string;
|
|
644
704
|
/** Every function that writes each number global (computed on demand). */
|
|
@@ -649,6 +709,8 @@ export declare class LlEmitter {
|
|
|
649
709
|
* not a constructor (where they change), not async or a generator. */
|
|
650
710
|
finalFieldBorrows: boolean;
|
|
651
711
|
integerRanges: IntegerRanges;
|
|
712
|
+
/** The current function's bounded for-loop cursors (integer-ranges.ts). */
|
|
713
|
+
integerLoopRanges: ReadonlyMap<IrStmt, ReadonlyMap<string, IntegerRange>>;
|
|
652
714
|
/** Number arrays of the current function whose every present element is
|
|
653
715
|
* an int32 (Int32[] contracts), or null when the module has none. */
|
|
654
716
|
int32Elements: ((arr: IrExpr) => boolean) | null;
|
|
@@ -668,6 +730,9 @@ export declare class LlEmitter {
|
|
|
668
730
|
* guard already passed. */
|
|
669
731
|
readonly provenCountedGuards: Set<IrStmt>;
|
|
670
732
|
bytesBounds: ReadonlySet<IrExpr | IrStmt>;
|
|
733
|
+
/** Worker programs: typed-array accesses whose views an enclosing version
|
|
734
|
+
* guard proved thread-owned. */
|
|
735
|
+
bytesOwned: ReadonlySet<IrExpr | IrStmt>;
|
|
671
736
|
integerViews: Map<string, string>;
|
|
672
737
|
/** Module globals the current function owns outright (initializer
|
|
673
738
|
* bindings): their function-local slot, which stands in for the global. */
|
|
@@ -803,10 +868,19 @@ export declare class LlEmitter {
|
|
|
803
868
|
* fiberless, and module evaluation bodies and `dyn` results keep fibers
|
|
804
869
|
* as they do there. The runtime traps if a stackless body ever parks. */
|
|
805
870
|
selectStacklessAsync(fnDefs: string[]): void;
|
|
871
|
+
/** Whether a fiberless body running on its caller's stack needs the
|
|
872
|
+
* frame scr_async_inline_enter/exit keep: it isolates the Error.stack
|
|
873
|
+
* frame chain, which only stack-observing programs push, as a fresh fiber
|
|
874
|
+
* would. Other programs run the body with a plain call. The body runs in
|
|
875
|
+
* its caller's AsyncLocalStorage context either way, as Node runs an async
|
|
876
|
+
* body up to its first await. The frame also counts the bodies running on
|
|
877
|
+
* a fiber's stack for the runtime's trap on a fiberless body that
|
|
878
|
+
* suspends. */
|
|
879
|
+
get fiberlessFrames(): boolean;
|
|
806
880
|
/** The spawn wrapper of a fiberless async function: runs the body on the
|
|
807
|
-
* caller's stack between scr_async_inline_enter/leave
|
|
808
|
-
* fresh promise from its outcome — the
|
|
809
|
-
* without the fiber. */
|
|
881
|
+
* caller's stack (between scr_async_inline_enter/leave when
|
|
882
|
+
* fiberlessFrames) and settles a fresh promise from its outcome — the
|
|
883
|
+
* fiber trampoline's epilogue, without the fiber. */
|
|
810
884
|
emitFiberlessAsyncSpawn(fn: IrFunction, spawnParams: string[]): string[];
|
|
811
885
|
/** Whether `await f(...)` may enter f through its await-call entry. The
|
|
812
886
|
* entry's result is the awaited value of f's own body type; direct calls
|
|
@@ -816,10 +890,23 @@ export declare class LlEmitter {
|
|
|
816
890
|
* place (emitCoroInlineAwait): f never suspends, and its direct call is
|
|
817
891
|
* one an await-call entry could take. */
|
|
818
892
|
inlineAwaitEligible(fnName: string): boolean;
|
|
893
|
+
/** Whether a stackless coroutine body's `await f(...)` may await f's
|
|
894
|
+
* fiber record instead of its promise (emitCoroDirectAwait): f is a
|
|
895
|
+
* stackless async function whose direct call an await-call entry could
|
|
896
|
+
* take. The await consumes the promise, so nothing else can observe it.
|
|
897
|
+
* Worker programs keep the promise for their stop checkpoint. */
|
|
898
|
+
directAwaitEligible(fnName: string): boolean;
|
|
899
|
+
/** A stackless coroutine body's `await f(...)` of a stackless f, without
|
|
900
|
+
* f's promise object: f's prefix runs as the spawn of a fiber record that
|
|
901
|
+
* keeps the promise inside. A body still running wakes this coroutine
|
|
902
|
+
* when it finishes, where its promise's settlement would wake its one
|
|
903
|
+
* waiter; a finished one takes the settled await's turn. The result (or
|
|
904
|
+
* the rejection, re-thrown) comes out of the record, which goes. */
|
|
905
|
+
emitCoroDirectAwait(call: ExprOf<"call">, type: IrType): LlValue;
|
|
819
906
|
/** The inline await entry of a fiberless async function (`sc_ai_*`): its
|
|
820
|
-
* body on the caller's stack between scr_async_inline_enter/exit
|
|
821
|
-
* its spawn wrapper, returning the result and
|
|
822
|
-
* the awaiting coroutine (emitCoroInlineAwait). */
|
|
907
|
+
* body on the caller's stack (between scr_async_inline_enter/exit when
|
|
908
|
+
* fiberlessFrames), as in its spawn wrapper, returning the result and
|
|
909
|
+
* leaving a throw pending for the awaiting coroutine (emitCoroInlineAwait). */
|
|
823
910
|
emitAsyncInlineAwaitCall(fn: IrFunction): string[];
|
|
824
911
|
/** A stackless coroutine body's `await f(...)` of a fiberless f, the
|
|
825
912
|
* await-call entry's turns without its promise: the body runs in place,
|
|
@@ -828,6 +915,32 @@ export declare class LlEmitter {
|
|
|
828
915
|
* the spawn wrapper's promise would. An adopting await (`return f(...)`)
|
|
829
916
|
* first takes the adoption's then-job turn either way. */
|
|
830
917
|
emitCoroInlineAwait(call: ExprOf<"call">, adopt: boolean): LlValue;
|
|
918
|
+
/** The entries of `Promise.all(arg)` that a stackless coroutine body's
|
|
919
|
+
* await may run in place (emitCoroInlinePromiseAll): `arg` is a non-empty
|
|
920
|
+
* array literal, or the local whose declaration emitStmts deferred to this
|
|
921
|
+
* await (deferredPromiseAllEntries), whose every entry is a call to a
|
|
922
|
+
* never-suspending async function, and the result is an array. Null
|
|
923
|
+
* otherwise. Consumes a deferred local's entries. */
|
|
924
|
+
inlinePromiseAllEntries(all: ExprOf<"intrinsic">): ExprOf<"arrayLit"> | null;
|
|
925
|
+
/** Whether every entry of `entries` is a call an await could run in place
|
|
926
|
+
* (inlineAwaitEligible) that yields its promise's inner type. */
|
|
927
|
+
private promiseAllInlineable;
|
|
928
|
+
/** Whether `stmts[i]` declares a local holding an array literal that only
|
|
929
|
+
* `stmts[i + 1]` reads, as the operand of `await Promise.all(local)` that
|
|
930
|
+
* runs first in that statement and may run its entries in place. Nothing
|
|
931
|
+
* runs between the literal and the await, so the await evaluates the
|
|
932
|
+
* literal itself (inlinePromiseAllEntries). Debug builds keep the local. */
|
|
933
|
+
deferredPromiseAllLocal(stmts: readonly IrStmt[], i: number): ExprOf<"arrayLit"> | null;
|
|
934
|
+
/** A stackless coroutine body's `await Promise.all([f(...), ...])` of
|
|
935
|
+
* never-suspending calls, with Promise.all's turns and without its
|
|
936
|
+
* promises: the entries run in place in order and their values fill the
|
|
937
|
+
* result array. Promise.all queues one reaction job per entry, back to
|
|
938
|
+
* back, and the last of them settles the result, whose await then takes a
|
|
939
|
+
* turn: here one turn stands for the entries' jobs and a second for the
|
|
940
|
+
* await. A throwing entry becomes the rejection the await re-throws from
|
|
941
|
+
* its turn; the remaining entries still run, and later throws are handled
|
|
942
|
+
* rejections, as Promise.all's subscriptions make them. */
|
|
943
|
+
emitCoroInlinePromiseAll(entries: ExprOf<"arrayLit">, type: IrType): LlValue;
|
|
831
944
|
emitAsyncAwaitCall(fn: IrFunction, argPackLines: string[] | null, adopt?: boolean): string[];
|
|
832
945
|
emitAsyncScaffolding(): string[];
|
|
833
946
|
/** Whether `fn`'s body is emitted as an LLVM switched coroutine: every
|
|
@@ -970,11 +1083,13 @@ export declare class LlEmitter {
|
|
|
970
1083
|
* releases the dummy (NULL for refcounted kinds) harmlessly. A scalar
|
|
971
1084
|
* call result of the function's return type may be passed as the unwind's
|
|
972
1085
|
* dummy value (see emitUnwind). `poll` marks a worker termination poll
|
|
973
|
-
* (function entry or loop budget), whose test must stay ordered.
|
|
1086
|
+
* (function entry or loop budget), whose test must stay ordered. A
|
|
1087
|
+
* `guard` (an i1) limits the test to the paths where it is true: false
|
|
1088
|
+
* where the joined call could not have left anything pending. */
|
|
974
1089
|
emitPendingCheck(passThrough?: {
|
|
975
1090
|
name: string;
|
|
976
1091
|
type: IrType;
|
|
977
|
-
}, poll?: boolean): void;
|
|
1092
|
+
}, poll?: boolean, guard?: string): void;
|
|
978
1093
|
/** After a runtime call that ALWAYS leaves an exception pending (the
|
|
979
1094
|
* compiler-resolved Node throws): the pending test would always answer
|
|
980
1095
|
* true, so unwind unconditionally. Emission continues in a block with no
|
|
@@ -993,7 +1108,8 @@ export declare class LlEmitter {
|
|
|
993
1108
|
emitLoopCopies(loop: Extract<IrStmt, {
|
|
994
1109
|
kind: "while" | "doWhile" | "for";
|
|
995
1110
|
}>, allowed: boolean, exit: string, emitCopy: (exit: string) => void): void;
|
|
996
|
-
|
|
1111
|
+
/** Store the double of each deferred shadow back to its binding. */
|
|
1112
|
+
writeBackDeferred(deferred: Set<string>): void;
|
|
997
1113
|
/** A number local whose only storage is its own double slot, so an i64
|
|
998
1114
|
* shadow beside it can stand for it within one loop. */
|
|
999
1115
|
speculativeLocal(id: string): boolean;
|
|
@@ -1062,13 +1178,21 @@ export declare class LlEmitter {
|
|
|
1062
1178
|
* 1 on hierarchy members, then the flattened field list. Runtime error
|
|
1063
1179
|
* classes GEP through %ScrError (their structs live in the runtime; the
|
|
1064
1180
|
* def's [name, message, %code, %cause] order matches the layout). */
|
|
1065
|
-
classFieldPtr(objName: string, className: string, field: string): {
|
|
1181
|
+
classFieldPtr(objName: string, className: string, field: string, refs?: "pointer" | "compressed"): {
|
|
1066
1182
|
ptr: string;
|
|
1067
1183
|
type: IrType;
|
|
1068
1184
|
inline: boolean;
|
|
1185
|
+
compressed: boolean;
|
|
1069
1186
|
};
|
|
1070
|
-
/**
|
|
1071
|
-
*
|
|
1187
|
+
/** Loads the reference a field pointer addresses: a pointer, or the
|
|
1188
|
+
* decoded 32-bit reference of a compressed field (compressedFieldPtrs).
|
|
1189
|
+
* `tagged`: the load carries the field's alias tags. */
|
|
1190
|
+
loadRef(ptr: string, tagged?: boolean): string;
|
|
1191
|
+
/** Stores `value` (a pointer) through a field pointer: as is, or encoded
|
|
1192
|
+
* as the 32-bit reference of a compressed field. */
|
|
1193
|
+
storeRef(ptr: string, value: string): void;
|
|
1194
|
+
/** The dynamic class's preorder number (borrowed object; the static class
|
|
1195
|
+
* names the struct spelling and where the number is, classPreLines). */
|
|
1072
1196
|
loadVtPre(objName: string, staticClassName: string): string;
|
|
1073
1197
|
/** The class object's static symbol (classes as values), registering it
|
|
1074
1198
|
* for assembly on first use and interning the .name literal while the
|
|
@@ -1133,6 +1257,13 @@ export declare class LlEmitter {
|
|
|
1133
1257
|
emitDebugLocal(local: IrLocal, slot: string, arg?: number, captured?: boolean): void;
|
|
1134
1258
|
/** Loads a boxed binding's box pointer out of its slot. */
|
|
1135
1259
|
loadBox(slot: string): string;
|
|
1260
|
+
/** The function a call through `callee` is known to reach (a literal
|
|
1261
|
+
* closure, or a binding the constant-callback census resolves) and the
|
|
1262
|
+
* entry it calls directly. Async and generator functions stay indirect. */
|
|
1263
|
+
knownCallbackTarget(callee: IrExpr): {
|
|
1264
|
+
known: IrFunction;
|
|
1265
|
+
direct: string;
|
|
1266
|
+
} | undefined;
|
|
1136
1267
|
/** The payload slot of a capture box (ScrBox.slot, field 5). */
|
|
1137
1268
|
boxSlot(box: string): string;
|
|
1138
1269
|
boxGet(box: string, t: IrType): string;
|
|
@@ -1446,8 +1577,11 @@ export declare class LlEmitter {
|
|
|
1446
1577
|
* immutable (scr_publish with the static type's walker) and answers the
|
|
1447
1578
|
* same value. Throws (pending) when a dyn part is unpublishable. */
|
|
1448
1579
|
private emitPublish;
|
|
1449
|
-
/** Branches on "`obj` is published" (rc == SIZE_MAX
|
|
1450
|
-
* in the
|
|
1580
|
+
/** Branches on "`obj` is published" (rc == SIZE_MAX, or a count of
|
|
1581
|
+
* UINT32_MAX in the low half for `count` i32: classes.ts
|
|
1582
|
+
* LlClassMeta.idInRc, or the top bit of a compact header word for
|
|
1583
|
+
* "compact": classes.ts COMPACT_PUBLISHED); leaves the builder in the cold
|
|
1584
|
+
* block and answers the continuation label. */
|
|
1451
1585
|
private emitPublishedTest;
|
|
1452
1586
|
private publishedNamesSym;
|
|
1453
1587
|
/** The class-name table the hierarchy field guards index by preorder. */
|
|
@@ -1534,6 +1668,9 @@ export declare class LlEmitter {
|
|
|
1534
1668
|
borrowableNullableWrap(e: IrExpr): "unit" | "ref" | null;
|
|
1535
1669
|
materializeSplitLocal(localId: string): void;
|
|
1536
1670
|
emitExpr(e: IrExpr): LlValue;
|
|
1671
|
+
/** The helper classification of this module's inline-cache sites. */
|
|
1672
|
+
get jsIcSites(): JsIcSites;
|
|
1673
|
+
jsIcSite(): string;
|
|
1537
1674
|
/** A fresh read-site cache for one constant-key dyn read. */
|
|
1538
1675
|
dynReadIcSite(): string;
|
|
1539
1676
|
dynKind(d: string): string;
|
|
@@ -1619,7 +1756,7 @@ export declare class LlEmitter {
|
|
|
1619
1756
|
emitBytesIndex(receiver: string, index: LlValue, expr?: IrExpr, inBounds?: boolean): string;
|
|
1620
1757
|
emitBytesData(receiver: string): string;
|
|
1621
1758
|
emitBytesLength(elem: IrBytesElem, receiver: string, bytes: boolean): LlValue;
|
|
1622
|
-
emitBytesGet(elem: IrBytesElem, receiver: string, index: LlValue, expr?: IrExpr, inBounds?: boolean, invalidNaN?: boolean): LlValue;
|
|
1759
|
+
emitBytesGet(elem: IrBytesElem, receiver: string, index: LlValue, expr?: IrExpr, inBounds?: boolean, invalidNaN?: boolean, owned?: boolean): LlValue;
|
|
1623
1760
|
emitToUint32(value: string, expr?: IrExpr, uint32?: string): string;
|
|
1624
1761
|
/** Stores a number into its int32-stored local, when it is one. The
|
|
1625
1762
|
* value is proven to be in the local's range, so its low 32 bits are the
|
|
@@ -1630,7 +1767,7 @@ export declare class LlEmitter {
|
|
|
1630
1767
|
* as its incoming double, which is the same number. */
|
|
1631
1768
|
int32LocalValue(localId: string, bits: string, type: IrType): LlValue;
|
|
1632
1769
|
storeIntegerView(localId: string, value: LlValue, expr?: IrExpr): void;
|
|
1633
|
-
emitBytesSet(elem: IrBytesElem, receiver: string, index: LlValue, value: LlValue, indexExpr?: IrExpr, expr?: IrExpr, inBounds?: boolean): void;
|
|
1770
|
+
emitBytesSet(elem: IrBytesElem, receiver: string, index: LlValue, value: LlValue, indexExpr?: IrExpr, expr?: IrExpr, inBounds?: boolean, owned?: boolean): void;
|
|
1634
1771
|
emitBytesIntrinsic(e: IrExpr & {
|
|
1635
1772
|
kind: "bytesIntrinsic";
|
|
1636
1773
|
}): LlValue;
|