@scriptc/compiler 0.4.1 → 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 +582 -78
- 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 +4 -1
- 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 +4 -0
- package/dist/backend/library-pack.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 +2 -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 +72 -1
- package/dist/backend/llvm/classes.js +331 -45
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +223 -16
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +1 -3
- package/dist/backend/llvm/common.js +1 -3
- 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-loops.d.ts +19 -16
- package/dist/backend/llvm/dense-array-loops.js +46 -10
- 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 +25 -1
- package/dist/backend/llvm/dyn.js +331 -8
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emit-function.js +22 -6
- package/dist/backend/llvm/emit-function.js.map +1 -1
- package/dist/backend/llvm/emit-module.js +17 -11
- package/dist/backend/llvm/emit-module.js.map +1 -1
- package/dist/backend/llvm/emit-statements.d.ts +0 -23
- package/dist/backend/llvm/emit-statements.js +325 -25
- package/dist/backend/llvm/emit-statements.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +141 -15
- package/dist/backend/llvm/emitter.js +537 -64
- 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 +34 -22
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js +21 -5
- 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 +54 -6
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +26 -8
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +38 -6
- 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/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 +65 -14
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +53 -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 +66 -45
- 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/publish.d.ts +8 -1
- package/dist/backend/llvm/publish.js +64 -25
- 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/shapes.d.ts +9 -7
- package/dist/backend/llvm/shapes.js +12 -10
- package/dist/backend/llvm/shapes.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 +3 -0
- package/dist/backend/llvm/string-reads.js +84 -0
- package/dist/backend/llvm/string-reads.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 +3 -0
- package/dist/backend/mangle.js +5 -0
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +22 -4
- package/dist/backend/native/executable.js +24 -8
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +1 -0
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +11 -6
- package/dist/backend/native-codegen.js +36 -9
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +0 -23
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +14 -4
- package/dist/backend/native-link-info-core.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 +1 -1
- package/dist/backend/runtime-pack-core.js +1 -1
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +4 -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 +9 -69
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/target-diagnostics.js +31 -1
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/warm-cache.js +3 -0
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/cli/command.js +26 -6
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/usage.d.ts +5 -1
- package/dist/cli/usage.js +7 -2
- package/dist/cli/usage.js.map +1 -1
- package/dist/contracts/check.js +1 -1
- 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 +23 -1
- package/dist/executable/executable-cache.js +59 -7
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +45 -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/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/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/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 +4 -2
- package/dist/frontend/lowering/builtins/crypto.js +59 -3
- 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 +12 -1
- package/dist/frontend/lowering/builtins/ecdh.js +7 -7
- package/dist/frontend/lowering/builtins/ecdh.js.map +1 -1
- 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 +2 -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.js +3 -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.js +2 -1
- 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/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 +1 -1
- package/dist/frontend/lowering/builtins/timers.js.map +1 -1
- 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.js +13 -6
- 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/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 +568 -151
- 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 +7 -0
- package/dist/frontend/lowering/class-protocols.js +64 -4
- 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 +36 -3
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-to-primitive.js +25 -5
- 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/function-adapters.js +6 -5
- 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 +7 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +14 -13
- 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 +25 -4
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +6 -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 +1 -1
- package/dist/frontend/lowering/containers/bytes.js +129 -28
- 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 +8 -7
- 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 +36 -9
- 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.js +25 -4
- 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 +15 -0
- package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/binary.js +45 -3
- package/dist/frontend/lowering/expressions/binary.js.map +1 -1
- package/dist/frontend/lowering/expressions/element-access.js +17 -1
- 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/narrowing.js +35 -5
- 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 +27 -6
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +5 -5
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/property-access.d.ts +0 -4
- package/dist/frontend/lowering/expressions/property-access.js +99 -7
- package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/relational.js +63 -5
- package/dist/frontend/lowering/expressions/relational.js.map +1 -1
- package/dist/frontend/lowering/expressions/updates.js +63 -9
- package/dist/frontend/lowering/expressions/updates.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 +42 -1
- package/dist/frontend/lowering/generic-functions.js +448 -18
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/intern-tables.js +2 -1
- package/dist/frontend/lowering/intern-tables.js.map +1 -1
- 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-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-calls.d.ts +4 -0
- package/dist/frontend/lowering/lower-calls.js +339 -91
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +18 -0
- package/dist/frontend/lowering/lower-classes.js +280 -25
- package/dist/frontend/lowering/lower-classes.js.map +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-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 +116 -11
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +304 -72
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +10 -6
- 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.js +15 -5
- 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 +4 -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 +237 -59
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.js +12 -10
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +168 -20
- 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 +4 -3
- package/dist/frontend/lowering/lower-timers.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +125 -28
- package/dist/frontend/lowering/lowerer.js +557 -63
- 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/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 +2 -2
- package/dist/frontend/lowering/static-typeof.js +42 -3
- package/dist/frontend/lowering/static-typeof.js.map +1 -1
- package/dist/frontend/lowering/strict-equality.js +2 -1
- package/dist/frontend/lowering/strict-equality.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 +42 -26
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/var-hoisting.js +37 -3
- package/dist/frontend/lowering/var-hoisting.js.map +1 -1
- 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 +8 -0
- package/dist/frontend/npm-static.js +47 -2
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/program.d.ts +13 -0
- package/dist/frontend/program.js +103 -6
- 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/services.d.ts +6 -0
- package/dist/frontend/services.js +18 -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.js +5 -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 +15 -0
- package/dist/frontend/ts7/semantic-model.js +67 -19
- 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.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 +265 -32
- 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 +7 -0
- package/dist/index.js +402 -86
- package/dist/index.js.map +1 -1
- package/dist/ir/array-length-stability.js +7 -0
- package/dist/ir/array-length-stability.js.map +1 -1
- package/dist/ir/array-length-stability.test.js +25 -0
- package/dist/ir/array-length-stability.test.js.map +1 -1
- package/dist/ir/builtin-effects.js +28 -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 +141 -12
- 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 +9 -4
- package/dist/ir/integer-loop-facts.js +93 -18
- 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.test.js +64 -0
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/ir.d.ts +17 -2
- package/dist/ir/ir.js +3 -1
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +31 -7
- package/dist/ir/runtime-features.js +138 -11
- 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 +14 -2
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +56 -16
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/ir-policy.js +10 -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 +5 -0
- package/dist/native/cli.js.map +1 -1
- package/dist/native/prepare.js +5 -1
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/sanitizer.test.js +4 -1
- 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 +21 -21
- package/shims/undici/core/client.ts +4 -4
- package/surface-manifest.json +19 -49
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { JsIcSites } from "../../ir/js-ic.js";
|
|
2
2
|
import { type ArraySearchKind } from "./array-search.js";
|
|
3
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";
|
|
4
5
|
import { type DenseArrayLoop } from "./dense-array-loops.js";
|
|
5
6
|
import { findInitializedByteLoopBindings } from "./byte-windows.js";
|
|
6
7
|
import { matchBytesLoopVersion } from "./bytes-loop-versions.js";
|
|
@@ -98,7 +99,18 @@ export interface LlvmTargetOptions {
|
|
|
98
99
|
/** Translated WebAssembly memories check bounds explicitly instead of
|
|
99
100
|
* relying on guard pages (wasm-modules.ts wasmBoundsChecks). */
|
|
100
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;
|
|
101
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;
|
|
102
114
|
export declare function emitLlvmModule(input: IrModule, options?: LlvmTargetOptions): string;
|
|
103
115
|
/** Keep large translation units below the host's single-string limit. */
|
|
104
116
|
export declare function emitLlvmModuleSource(input: IrModule, options?: LlvmTargetOptions): string | readonly string[];
|
|
@@ -207,6 +219,13 @@ export declare class LlEmitter {
|
|
|
207
219
|
integerArrayBindings: Set<string>;
|
|
208
220
|
readonly fieldAliasTags: Map<string, number>;
|
|
209
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;
|
|
210
229
|
/** Native class fields with different property names cannot occupy the
|
|
211
230
|
* same slot of one object. Inherited views of the same property share a
|
|
212
231
|
* tag. Array storage has its own disjoint categories; untagged runtime
|
|
@@ -370,6 +389,12 @@ export declare class LlEmitter {
|
|
|
370
389
|
readonly callLifetimes: CallLifetimes;
|
|
371
390
|
readonly constantCallbacks: Map<string, Map<string, string>>;
|
|
372
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;
|
|
373
398
|
readonly stackCallbacks: StackCallbacks;
|
|
374
399
|
readonly receiverReaders: AmbientReceiverReaders;
|
|
375
400
|
readonly stackCaptures: StackCaptures;
|
|
@@ -451,9 +476,15 @@ export declare class LlEmitter {
|
|
|
451
476
|
/** Fiberless async functions a stackless coroutine body awaits directly;
|
|
452
477
|
* each gets an inline await entry (emitCoroInlineAwait). */
|
|
453
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>;
|
|
454
482
|
/** The async functions whose bodies never suspend and that a direct
|
|
455
483
|
* await may enter in place (selectStacklessAsync). */
|
|
456
484
|
private inlineAwaitable;
|
|
485
|
+
/** Locals whose array literal emitStmts left for the `await Promise.all`
|
|
486
|
+
* that reads them (deferredPromiseAllLocal). */
|
|
487
|
+
private readonly deferredPromiseAllEntries;
|
|
457
488
|
/** The promise a `return` emitted past its finally regions already
|
|
458
489
|
* produced for its adopting await (borrowed from the return's parked
|
|
459
490
|
* slot); that await takes it instead of evaluating its operand. */
|
|
@@ -465,7 +496,10 @@ export declare class LlEmitter {
|
|
|
465
496
|
/** The program calls mock.timers members (moduleUsesMockTimers): timer
|
|
466
497
|
* calls emit scr_test.c's mock-aware entry points. */
|
|
467
498
|
readonly mockTimers: boolean;
|
|
468
|
-
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;
|
|
469
503
|
/** Whether timer and tick scheduling goes through the *_als entry
|
|
470
504
|
* points (RuntimeFeatures asyncContext). */
|
|
471
505
|
get schedulesInContext(): boolean;
|
|
@@ -483,7 +517,6 @@ export declare class LlEmitter {
|
|
|
483
517
|
/** Identity-preserving static→dyn capsules for program classes and Web
|
|
484
518
|
* APIs whose values remain directly observable. */
|
|
485
519
|
readonly liveDynRefAdapters: Map<string, LlStreamTypedRefAdapter>;
|
|
486
|
-
private dynBuiltinStreamUse;
|
|
487
520
|
/** See moduleUsesDynBuiltinStream. */
|
|
488
521
|
get usesDynBuiltinStream(): boolean;
|
|
489
522
|
/** Runtime-arm dispatchers for live union values. */
|
|
@@ -626,6 +659,19 @@ export declare class LlEmitter {
|
|
|
626
659
|
max: number;
|
|
627
660
|
};
|
|
628
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;
|
|
629
675
|
countedLoopsEnabled: boolean;
|
|
630
676
|
/** Speculative integer loops (speculative-integers.ts) run in this function. */
|
|
631
677
|
speculativeLoopsEnabled: boolean;
|
|
@@ -636,12 +682,23 @@ export declare class LlEmitter {
|
|
|
636
682
|
resume: Map<IrStmt, string>;
|
|
637
683
|
/** Globals whose double is written back only when the copy is left. */
|
|
638
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;
|
|
639
690
|
} | null;
|
|
691
|
+
/** Speculative loop sites numbered so far in the module. */
|
|
692
|
+
speculativeLoopSites: number;
|
|
640
693
|
/** The ordinary copy being emitted: resume labels still to place. */
|
|
641
694
|
speculationResume: Map<IrStmt, {
|
|
642
695
|
label: string;
|
|
643
696
|
placed: boolean;
|
|
644
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;
|
|
645
702
|
/** The function being emitted, for speculative globals. */
|
|
646
703
|
speculativeFunction: string;
|
|
647
704
|
/** Every function that writes each number global (computed on demand). */
|
|
@@ -673,6 +730,9 @@ export declare class LlEmitter {
|
|
|
673
730
|
* guard already passed. */
|
|
674
731
|
readonly provenCountedGuards: Set<IrStmt>;
|
|
675
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>;
|
|
676
736
|
integerViews: Map<string, string>;
|
|
677
737
|
/** Module globals the current function owns outright (initializer
|
|
678
738
|
* bindings): their function-local slot, which stands in for the global. */
|
|
@@ -808,10 +868,19 @@ export declare class LlEmitter {
|
|
|
808
868
|
* fiberless, and module evaluation bodies and `dyn` results keep fibers
|
|
809
869
|
* as they do there. The runtime traps if a stackless body ever parks. */
|
|
810
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;
|
|
811
880
|
/** The spawn wrapper of a fiberless async function: runs the body on the
|
|
812
|
-
* caller's stack between scr_async_inline_enter/leave
|
|
813
|
-
* fresh promise from its outcome — the
|
|
814
|
-
* 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. */
|
|
815
884
|
emitFiberlessAsyncSpawn(fn: IrFunction, spawnParams: string[]): string[];
|
|
816
885
|
/** Whether `await f(...)` may enter f through its await-call entry. The
|
|
817
886
|
* entry's result is the awaited value of f's own body type; direct calls
|
|
@@ -821,10 +890,23 @@ export declare class LlEmitter {
|
|
|
821
890
|
* place (emitCoroInlineAwait): f never suspends, and its direct call is
|
|
822
891
|
* one an await-call entry could take. */
|
|
823
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;
|
|
824
906
|
/** The inline await entry of a fiberless async function (`sc_ai_*`): its
|
|
825
|
-
* body on the caller's stack between scr_async_inline_enter/exit
|
|
826
|
-
* its spawn wrapper, returning the result and
|
|
827
|
-
* 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). */
|
|
828
910
|
emitAsyncInlineAwaitCall(fn: IrFunction): string[];
|
|
829
911
|
/** A stackless coroutine body's `await f(...)` of a fiberless f, the
|
|
830
912
|
* await-call entry's turns without its promise: the body runs in place,
|
|
@@ -833,6 +915,32 @@ export declare class LlEmitter {
|
|
|
833
915
|
* the spawn wrapper's promise would. An adopting await (`return f(...)`)
|
|
834
916
|
* first takes the adoption's then-job turn either way. */
|
|
835
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;
|
|
836
944
|
emitAsyncAwaitCall(fn: IrFunction, argPackLines: string[] | null, adopt?: boolean): string[];
|
|
837
945
|
emitAsyncScaffolding(): string[];
|
|
838
946
|
/** Whether `fn`'s body is emitted as an LLVM switched coroutine: every
|
|
@@ -975,11 +1083,13 @@ export declare class LlEmitter {
|
|
|
975
1083
|
* releases the dummy (NULL for refcounted kinds) harmlessly. A scalar
|
|
976
1084
|
* call result of the function's return type may be passed as the unwind's
|
|
977
1085
|
* dummy value (see emitUnwind). `poll` marks a worker termination poll
|
|
978
|
-
* (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. */
|
|
979
1089
|
emitPendingCheck(passThrough?: {
|
|
980
1090
|
name: string;
|
|
981
1091
|
type: IrType;
|
|
982
|
-
}, poll?: boolean): void;
|
|
1092
|
+
}, poll?: boolean, guard?: string): void;
|
|
983
1093
|
/** After a runtime call that ALWAYS leaves an exception pending (the
|
|
984
1094
|
* compiler-resolved Node throws): the pending test would always answer
|
|
985
1095
|
* true, so unwind unconditionally. Emission continues in a block with no
|
|
@@ -1068,11 +1178,19 @@ export declare class LlEmitter {
|
|
|
1068
1178
|
* 1 on hierarchy members, then the flattened field list. Runtime error
|
|
1069
1179
|
* classes GEP through %ScrError (their structs live in the runtime; the
|
|
1070
1180
|
* def's [name, message, %code, %cause] order matches the layout). */
|
|
1071
|
-
classFieldPtr(objName: string, className: string, field: string): {
|
|
1181
|
+
classFieldPtr(objName: string, className: string, field: string, refs?: "pointer" | "compressed"): {
|
|
1072
1182
|
ptr: string;
|
|
1073
1183
|
type: IrType;
|
|
1074
1184
|
inline: boolean;
|
|
1185
|
+
compressed: boolean;
|
|
1075
1186
|
};
|
|
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;
|
|
1076
1194
|
/** The dynamic class's preorder number (borrowed object; the static class
|
|
1077
1195
|
* names the struct spelling and where the number is, classPreLines). */
|
|
1078
1196
|
loadVtPre(objName: string, staticClassName: string): string;
|
|
@@ -1139,6 +1257,13 @@ export declare class LlEmitter {
|
|
|
1139
1257
|
emitDebugLocal(local: IrLocal, slot: string, arg?: number, captured?: boolean): void;
|
|
1140
1258
|
/** Loads a boxed binding's box pointer out of its slot. */
|
|
1141
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;
|
|
1142
1267
|
/** The payload slot of a capture box (ScrBox.slot, field 5). */
|
|
1143
1268
|
boxSlot(box: string): string;
|
|
1144
1269
|
boxGet(box: string, t: IrType): string;
|
|
@@ -1454,8 +1579,9 @@ export declare class LlEmitter {
|
|
|
1454
1579
|
private emitPublish;
|
|
1455
1580
|
/** Branches on "`obj` is published" (rc == SIZE_MAX, or a count of
|
|
1456
1581
|
* UINT32_MAX in the low half for `count` i32: classes.ts
|
|
1457
|
-
* LlClassMeta.idInRc
|
|
1458
|
-
* the
|
|
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. */
|
|
1459
1585
|
private emitPublishedTest;
|
|
1460
1586
|
private publishedNamesSym;
|
|
1461
1587
|
/** The class-name table the hierarchy field guards index by preorder. */
|
|
@@ -1630,7 +1756,7 @@ export declare class LlEmitter {
|
|
|
1630
1756
|
emitBytesIndex(receiver: string, index: LlValue, expr?: IrExpr, inBounds?: boolean): string;
|
|
1631
1757
|
emitBytesData(receiver: string): string;
|
|
1632
1758
|
emitBytesLength(elem: IrBytesElem, receiver: string, bytes: boolean): LlValue;
|
|
1633
|
-
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;
|
|
1634
1760
|
emitToUint32(value: string, expr?: IrExpr, uint32?: string): string;
|
|
1635
1761
|
/** Stores a number into its int32-stored local, when it is one. The
|
|
1636
1762
|
* value is proven to be in the local's range, so its low 32 bits are the
|
|
@@ -1641,7 +1767,7 @@ export declare class LlEmitter {
|
|
|
1641
1767
|
* as its incoming double, which is the same number. */
|
|
1642
1768
|
int32LocalValue(localId: string, bits: string, type: IrType): LlValue;
|
|
1643
1769
|
storeIntegerView(localId: string, value: LlValue, expr?: IrExpr): void;
|
|
1644
|
-
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;
|
|
1645
1771
|
emitBytesIntrinsic(e: IrExpr & {
|
|
1646
1772
|
kind: "bytesIntrinsic";
|
|
1647
1773
|
}): LlValue;
|