@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
|
@@ -3,6 +3,7 @@ import { declaredMemberOf, isPromisePrototypeRead } from "./expressions/property
|
|
|
3
3
|
import { hostsAll } from "./expressions/hosted-narrowing.js";
|
|
4
4
|
import { requestGeneralStreamSurface } from "./general-streams.js";
|
|
5
5
|
import { lowerForAwaitDynStream } from "./dyn-streams.js";
|
|
6
|
+
import { lowerForAwaitValueStream } from "./builtins/hash-stream.js";
|
|
6
7
|
import { lowerChildPropertyWrite } from "./handle-properties.js";
|
|
7
8
|
import { matchAllRowsReadByElements, storedMatchAllRowsReadByElements, } from "./containers/match-row-uses.js";
|
|
8
9
|
import { dynUndefinedExpr, nodeThrowExpr, numLit, varRef } from "../../ir/build.js";
|
|
@@ -46,7 +47,7 @@ import { lowerForOfArrayIter, lowerForOfMap, lowerForOfSearchParams, lowerForOfS
|
|
|
46
47
|
import { lowerForOfHelperChain } from "./containers/iterator-helpers.js";
|
|
47
48
|
import { objectIterOverIndexShape } from "./containers/indexed-objects.js";
|
|
48
49
|
import { strCharsCall } from "./containers/array-construction.js";
|
|
49
|
-
import { bindingContextualGenericFnNodeOf, bindingGenericFnAliasInfoOf, bindingGenericFnInfoOf, bindingGenericFnNodeOf, implicitLocalFnInfoOf, implicitLocalFnNodeOf, implicitMethodCallInfersReturn, genericLocalClassBinding, } from "./generic-functions.js";
|
|
50
|
+
import { bindingContextualGenericFnNodeOf, bindingGenericFnAliasInfoOf, bindingGenericFnInfoOf, bindingGenericFnNodeOf, genericBindingPresenceStore, genericBindingStoredValue, implicitLocalFnInfoOf, implicitLocalFnNodeOf, implicitMethodCallInfersReturn, genericLocalClassBinding, } from "./generic-functions.js";
|
|
50
51
|
import { bindingNeverReassigned, deadUnmappableBinding, nullishExprUnitOf, nullishGenericBindingUnitOf, } from "./binding-analysis.js";
|
|
51
52
|
import { hasExplicitJsDocReturn } from "./function-returns.js";
|
|
52
53
|
import { recordKeysArrayCall } from "./lower-calls.js";
|
|
@@ -57,7 +58,7 @@ import { classStaticDataFor } from "./class-static-data.js";
|
|
|
57
58
|
import { objectFactorySignature } from "./object-factory-new.js";
|
|
58
59
|
import { isClassCallback, lowerClassCallbackAssign } from "./class-callbacks.js";
|
|
59
60
|
import { classForInHasKey, classPropertiesHelper } from "./class-dynamic-dispatch.js";
|
|
60
|
-
import { genericIfaceBindingKeepsClass } from "./lower-classes.js";
|
|
61
|
+
import { genericIfaceBindingKeepsClass, superConditionLead } from "./lower-classes.js";
|
|
61
62
|
import { lowerStreamUnderscoreAssign, streamClassAliasDecl } from "./lower-stream.js";
|
|
62
63
|
import { staticAssertInstanceDecl } from "./assert-instances.js";
|
|
63
64
|
import { lowerHttpResPropertyAssignment, lowerHttpServerTimeoutAssignment, lowerNetServerMaxConnectionsAssignment, lowerServerCloseOverrideAssignment, } from "./lower-server.js";
|
|
@@ -1319,33 +1320,40 @@ export function lowerStmt(lowerer, stmt) {
|
|
|
1319
1320
|
return lowerer.lowerDefaultExport(stmt);
|
|
1320
1321
|
}
|
|
1321
1322
|
if (ts.isIfStatement(stmt)) {
|
|
1322
|
-
|
|
1323
|
+
// `if (super(), test)`: the super call runs as a statement, then the
|
|
1324
|
+
// test decides.
|
|
1325
|
+
const lead = superConditionLead(stmt.expression);
|
|
1326
|
+
const leading = lead ? lowerer.lowerExprStatement(lead.left) : null;
|
|
1327
|
+
const test = lead ? lead.right : stmt.expression;
|
|
1328
|
+
const cond = lowerer.lowerCondition(test);
|
|
1323
1329
|
// A global-detection condition (static-typeof.ts) folds; its untaken
|
|
1324
1330
|
// arm is code Node never runs and does not lower, unless it declares a
|
|
1325
1331
|
// hoisted binding.
|
|
1326
|
-
const decided = staticCondition(lowerer,
|
|
1332
|
+
const decided = staticCondition(lowerer, test);
|
|
1327
1333
|
if (decided !== null) {
|
|
1328
1334
|
const taken = decided ? stmt.thenStatement : stmt.elseStatement;
|
|
1329
1335
|
const untaken = decided ? stmt.elseStatement : stmt.thenStatement;
|
|
1330
1336
|
if (untaken === undefined || !declaresHoistedBinding(untaken)) {
|
|
1331
1337
|
const arm = taken === undefined ? [] : lowerer.lowerScopedBlock(taken);
|
|
1332
|
-
|
|
1338
|
+
const folded = decided
|
|
1333
1339
|
? { kind: "if", cond, then: arm, else_: null, loc: locOf(stmt) }
|
|
1334
1340
|
: { kind: "if", cond, then: [], else_: arm, loc: locOf(stmt) };
|
|
1341
|
+
return leading ? { kind: "block", body: [leading, folded], loc: locOf(stmt) } : folded;
|
|
1335
1342
|
}
|
|
1336
1343
|
}
|
|
1337
1344
|
// Aliased-typeof narrows (ms's `var type = typeof val` guard): the
|
|
1338
1345
|
// then-branch lowers under what a TRUE condition proves, the
|
|
1339
1346
|
// else-branch under a FALSE one — the var/let alias narrowing the
|
|
1340
1347
|
// checker only performs for consts (aliasTypeofNarrows).
|
|
1341
|
-
const then = lowerer.narrowingAliases(aliasTypeofNarrows(lowerer,
|
|
1348
|
+
const then = lowerer.narrowingAliases(aliasTypeofNarrows(lowerer, test, true), () => withRuntimeOptionalNarrowed(lowerer, runtimeOptionalTrueIds(lowerer, test), () => lowerer.lowerScopedBlock(stmt.thenStatement)));
|
|
1342
1349
|
const else_ = stmt.elseStatement
|
|
1343
|
-
? lowerer.narrowingAliases(aliasTypeofNarrows(lowerer,
|
|
1350
|
+
? lowerer.narrowingAliases(aliasTypeofNarrows(lowerer, test, false), () => withRuntimeOptionalNarrowed(lowerer, runtimeOptionalGuardIds(lowerer, test, false), () => lowerer.lowerScopedBlock(stmt.elseStatement)))
|
|
1344
1351
|
: null;
|
|
1345
1352
|
for (const local of falsyExitRuntimeOptionalLocals(lowerer, stmt)) {
|
|
1346
1353
|
lowerer.runtimeOptionalLocals.delete(lowerer.runtimeOptionalRootOf(local));
|
|
1347
1354
|
}
|
|
1348
|
-
|
|
1355
|
+
const lowered = { kind: "if", cond, then, else_, loc: locOf(stmt) };
|
|
1356
|
+
return leading ? { kind: "block", body: [leading, lowered], loc: locOf(stmt) } : lowered;
|
|
1349
1357
|
}
|
|
1350
1358
|
if (ts.isWhileStatement(stmt)) {
|
|
1351
1359
|
const labels = lowerer.takeLabels();
|
|
@@ -3270,6 +3278,10 @@ function stdlibGlobalTokenDestructure(lowerer, decl, isLet) {
|
|
|
3270
3278
|
const globalName = stdlibGlobalNameOf(lowerer, decl.initializer);
|
|
3271
3279
|
if (globalName === null)
|
|
3272
3280
|
return null;
|
|
3281
|
+
// `workerData` is a value (the data the worker was started with), not an
|
|
3282
|
+
// API surface: its members destructure as any untyped value's do.
|
|
3283
|
+
if (globalName === "workerData")
|
|
3284
|
+
return null;
|
|
3273
3285
|
if (!ts.isObjectBindingPattern(decl.name)) {
|
|
3274
3286
|
lowerer.unsupported("SC1031", decl.name, `array destructuring of the builtin global '${globalName}' (builtin globals are not iterable)`);
|
|
3275
3287
|
}
|
|
@@ -3314,9 +3326,13 @@ function stdlibGlobalTokenDestructure(lowerer, decl, isLet) {
|
|
|
3314
3326
|
const canonical = ts.symbolName(member) === "global" ? "globalThis" : ts.symbolName(member);
|
|
3315
3327
|
token = `[builtin ${canonical}]`;
|
|
3316
3328
|
alias = canonical;
|
|
3317
|
-
// Builtin constructors read as their interned function values,
|
|
3318
|
-
// same values the bare and
|
|
3319
|
-
|
|
3329
|
+
// Builtin constructors read as their interned function values, and
|
|
3330
|
+
// crypto as the WebCrypto object: the same values the bare and
|
|
3331
|
+
// `globalThis.X` spellings read.
|
|
3332
|
+
value =
|
|
3333
|
+
canonical === "crypto"
|
|
3334
|
+
? { kind: "libCall", fn: "webcrypto.object", args: [], type: DYN, loc: locOf(el) }
|
|
3335
|
+
: builtinGlobalValue(canonical, locOf(el), true);
|
|
3320
3336
|
}
|
|
3321
3337
|
else if (globalName === "console" && !CONSOLE_CALL_MEMBERS.has(propName)) {
|
|
3322
3338
|
token = `[builtin console.${propName}]`;
|
|
@@ -4248,8 +4264,19 @@ export function lowerVarDecl(lowerer, decl, isLet) {
|
|
|
4248
4264
|
{
|
|
4249
4265
|
const gfnNode = bindingGenericFnNodeOf(decl) ?? bindingContextualGenericFnNodeOf(lowerer, decl);
|
|
4250
4266
|
if (gfnNode) {
|
|
4251
|
-
bindingGenericFnInfoOf(lowerer, decl, gfnNode);
|
|
4252
|
-
|
|
4267
|
+
const info = bindingGenericFnInfoOf(lowerer, decl, gfnNode);
|
|
4268
|
+
// A nested function that lowered before this declaration read the
|
|
4269
|
+
// binding as an ordinary TDZ box (predeclareForwardCapture); the
|
|
4270
|
+
// declaration initializes it, so those reads see the function once
|
|
4271
|
+
// it runs and a ReferenceError before.
|
|
4272
|
+
const symbol = lowerer.checker.getSymbolAtLocation(decl.name);
|
|
4273
|
+
const pre = symbol ? lowerer.ctx.tdzPredeclared.get(symbol) : undefined;
|
|
4274
|
+
if (pre) {
|
|
4275
|
+
lowerer.ctx.tdzPredeclared.delete(symbol);
|
|
4276
|
+
const value = genericBindingStoredValue(lowerer, decl, info);
|
|
4277
|
+
return { kind: "assign", localId: pre.id, value, initializes: true, loc: locOf(decl) };
|
|
4278
|
+
}
|
|
4279
|
+
return genericBindingPresenceStore(info, decl);
|
|
4253
4280
|
}
|
|
4254
4281
|
}
|
|
4255
4282
|
// `const h = id` — an ALIAS of a generic function: the alias's symbol
|
|
@@ -5151,6 +5178,16 @@ export function jsBindingHasOpenWrites(lowerer, decl) {
|
|
|
5151
5178
|
const candidates = (writes.get(decl.name.text) ?? []).filter((node) => lowerer.resolveValueSymbol(node.left) === symbol);
|
|
5152
5179
|
if (candidates.some((node) => (lowerer.typeOf(node.right).flags & (ts.TypeFlags.Any | ts.TypeFlags.Unknown)) !== 0))
|
|
5153
5180
|
return true;
|
|
5181
|
+
// A write that can store null or undefined into a binding the checker
|
|
5182
|
+
// types as a primitive (`offset = match[3] || null`): JavaScript files
|
|
5183
|
+
// are checked without strict null checks, so the declared type does not
|
|
5184
|
+
// admit them.
|
|
5185
|
+
// The declared type is mapped only when such a write exists.
|
|
5186
|
+
if (candidates.some((node) => node.operatorToken.kind === ts.SyntaxKind.EqualsToken && mayBeNullish(node.right))) {
|
|
5187
|
+
const primitive = lowerer.mapTypeOf(lowerer.typeOf(decl.name));
|
|
5188
|
+
if (primitive?.kind === "string" || primitive?.kind === "f64" || primitive?.kind === "bool")
|
|
5189
|
+
return true;
|
|
5190
|
+
}
|
|
5154
5191
|
// A plain JavaScript write of a value the declared type cannot hold (the
|
|
5155
5192
|
// checker does not report it): buffer-crc32 replaces its number[] table
|
|
5156
5193
|
// with `new Int32Array(table)`. Only a different representation counts;
|
|
@@ -5177,6 +5214,30 @@ export function jsBindingHasOpenWrites(lowerer, decl) {
|
|
|
5177
5214
|
(written.kind !== declared.kind || written.kind === "bytes"));
|
|
5178
5215
|
});
|
|
5179
5216
|
}
|
|
5217
|
+
/** Whether `node` can evaluate to null or undefined by its form: the
|
|
5218
|
+
* literals, `void`, and conditional or logical expressions with such an
|
|
5219
|
+
* operand in result position. */
|
|
5220
|
+
function mayBeNullish(node) {
|
|
5221
|
+
while (ts.isParenthesizedExpression(node))
|
|
5222
|
+
node = node.expression;
|
|
5223
|
+
if (node.kind === ts.SyntaxKind.NullKeyword || ts.isVoidExpression(node))
|
|
5224
|
+
return true;
|
|
5225
|
+
if (ts.isIdentifier(node))
|
|
5226
|
+
return node.text === "undefined";
|
|
5227
|
+
if (ts.isConditionalExpression(node))
|
|
5228
|
+
return mayBeNullish(node.whenTrue) || mayBeNullish(node.whenFalse);
|
|
5229
|
+
if (ts.isBinaryExpression(node)) {
|
|
5230
|
+
const op = node.operatorToken.kind;
|
|
5231
|
+
if (op === ts.SyntaxKind.BarBarToken ||
|
|
5232
|
+
op === ts.SyntaxKind.QuestionQuestionToken ||
|
|
5233
|
+
op === ts.SyntaxKind.AmpersandAmpersandToken)
|
|
5234
|
+
return (mayBeNullish(node.right) ||
|
|
5235
|
+
(op === ts.SyntaxKind.AmpersandAmpersandToken && mayBeNullish(node.left)));
|
|
5236
|
+
if (op === ts.SyntaxKind.CommaToken)
|
|
5237
|
+
return mayBeNullish(node.right);
|
|
5238
|
+
}
|
|
5239
|
+
return false;
|
|
5240
|
+
}
|
|
5180
5241
|
function immediatelyGuardedAbsenceProbe(lowerer, decl) {
|
|
5181
5242
|
const guard = immediateAbsenceGuard(lowerer, decl);
|
|
5182
5243
|
// `if (!x)`: the falsy test sees a missing value.
|
|
@@ -6429,8 +6490,9 @@ export function lowerExprStatement(lowerer, expr) {
|
|
|
6429
6490
|
// (closures box), the runtime sets the member on OBJ receivers
|
|
6430
6491
|
// and throws Node's TypeErrors on the rest. The receiver is
|
|
6431
6492
|
// PROBED (tryLowerExpression) and claimed exactly when it lowers to
|
|
6432
|
-
// dyn; typed receivers keep their own lowerings and fences.
|
|
6433
|
-
|
|
6493
|
+
// dyn; typed receivers keep their own lowerings and fences. A
|
|
6494
|
+
// private name is the field of its class (fieldTarget).
|
|
6495
|
+
if (!expr.left.questionDotToken && !ts.isPrivateIdentifier(expr.left.name)) {
|
|
6434
6496
|
const recv = tryLowerExpression(lowerer, expr.left.expression);
|
|
6435
6497
|
if (recv && recv.type.kind === "dyn") {
|
|
6436
6498
|
const loc = locOf(expr);
|
|
@@ -7998,8 +8060,10 @@ export function lowerForOf(lowerer, stmt) {
|
|
|
7998
8060
|
lowerer.stdlibGlobalMember(stmt.expression, "process") === "stdin") {
|
|
7999
8061
|
return lowerForAwaitStdin(lowerer, stmt);
|
|
8000
8062
|
}
|
|
8001
|
-
// A checked-dynamic NodeJS.ReadableStream iterates its native stream
|
|
8002
|
-
|
|
8063
|
+
// A checked-dynamic NodeJS.ReadableStream iterates its native stream,
|
|
8064
|
+
// and a Hash, Hmac, Cipheriv or Decipheriv iterates its Transform.
|
|
8065
|
+
const dynStream = lowerForAwaitDynStream(lowerer, stmt, () => lowerForAwaitBuiltin(lowerer, stmt)) ??
|
|
8066
|
+
lowerForAwaitValueStream(lowerer, stmt, () => lowerForAwaitBuiltin(lowerer, stmt));
|
|
8003
8067
|
if (dynStream)
|
|
8004
8068
|
return dynStream;
|
|
8005
8069
|
const builtin = lowerForAwaitBuiltin(lowerer, stmt);
|
|
@@ -9960,10 +10024,23 @@ function lowerForInArray(lowerer, stmt, labels, arrExpr) {
|
|
|
9960
10024
|
try {
|
|
9961
10025
|
const arr = lowerer.declareHiddenLocal("%inarr", arrExpr.type);
|
|
9962
10026
|
const len = lowerer.declareHiddenLocal("%inlen", F64);
|
|
10027
|
+
const keysT = { kind: "array", elem: STRING };
|
|
10028
|
+
const keys = lowerer.declareHiddenLocal("%inkeys", keysT);
|
|
10029
|
+
const total = lowerer.declareHiddenLocal("%intotal", F64);
|
|
9963
10030
|
const i = lowerer.declareHiddenLocal("%ini", F64);
|
|
9964
10031
|
i.mutable = true;
|
|
9965
10032
|
const arrRef = () => ({ kind: "varRef", localId: arr.id, type: arrExpr.type, loc });
|
|
10033
|
+
const keysRef = () => ({ kind: "varRef", localId: keys.id, type: keysT, loc });
|
|
10034
|
+
const lenRef = () => ({ kind: "varRef", localId: len.id, type: F64, loc });
|
|
9966
10035
|
const iRef = () => ({ kind: "varRef", localId: i.id, type: F64, loc });
|
|
10036
|
+
const isIndex = () => ({
|
|
10037
|
+
kind: "bin",
|
|
10038
|
+
op: "<",
|
|
10039
|
+
left: iRef(),
|
|
10040
|
+
right: lenRef(),
|
|
10041
|
+
type: BOOL,
|
|
10042
|
+
loc,
|
|
10043
|
+
});
|
|
9967
10044
|
const liveLen = () => ({
|
|
9968
10045
|
kind: "arrIntrinsic",
|
|
9969
10046
|
method: "length",
|
|
@@ -9972,7 +10049,52 @@ function lowerForInArray(lowerer, stmt, labels, arrExpr) {
|
|
|
9972
10049
|
type: F64,
|
|
9973
10050
|
loc,
|
|
9974
10051
|
});
|
|
9975
|
-
|
|
10052
|
+
// Indices first, then the named keys the array had when the loop began.
|
|
10053
|
+
const namedKey = () => ({
|
|
10054
|
+
kind: "arrayGet",
|
|
10055
|
+
arr: keysRef(),
|
|
10056
|
+
index: { kind: "bin", op: "-", left: iRef(), right: lenRef(), type: F64, loc },
|
|
10057
|
+
type: STRING,
|
|
10058
|
+
loc,
|
|
10059
|
+
});
|
|
10060
|
+
const keyInit = {
|
|
10061
|
+
kind: "ternary",
|
|
10062
|
+
cond: isIndex(),
|
|
10063
|
+
then: { kind: "toString", operand: iRef(), type: STRING, loc },
|
|
10064
|
+
else_: namedKey(),
|
|
10065
|
+
type: STRING,
|
|
10066
|
+
loc,
|
|
10067
|
+
};
|
|
10068
|
+
// An index is visited while it is below the live length and not a hole,
|
|
10069
|
+
// a named key while the array still has it.
|
|
10070
|
+
const visits = {
|
|
10071
|
+
kind: "ternary",
|
|
10072
|
+
cond: isIndex(),
|
|
10073
|
+
then: {
|
|
10074
|
+
kind: "logical",
|
|
10075
|
+
op: "&&",
|
|
10076
|
+
left: { kind: "bin", op: "<", left: iRef(), right: liveLen(), type: BOOL, loc },
|
|
10077
|
+
right: {
|
|
10078
|
+
kind: "bin",
|
|
10079
|
+
op: "!==",
|
|
10080
|
+
left: { kind: "arrayState", arr: arrRef(), index: iRef(), type: F64, loc },
|
|
10081
|
+
right: { kind: "numLit", value: 0, type: F64, loc },
|
|
10082
|
+
type: BOOL,
|
|
10083
|
+
loc,
|
|
10084
|
+
},
|
|
10085
|
+
type: BOOL,
|
|
10086
|
+
loc,
|
|
10087
|
+
},
|
|
10088
|
+
else_: {
|
|
10089
|
+
kind: "libCall",
|
|
10090
|
+
fn: "array.hasNamedKey",
|
|
10091
|
+
args: [arrRef(), namedKey()],
|
|
10092
|
+
type: BOOL,
|
|
10093
|
+
loc,
|
|
10094
|
+
},
|
|
10095
|
+
type: BOOL,
|
|
10096
|
+
loc,
|
|
10097
|
+
};
|
|
9976
10098
|
// The three binding forms, sharing the per-visit key declaration.
|
|
9977
10099
|
let keyDecl;
|
|
9978
10100
|
let writes = [];
|
|
@@ -10025,6 +10147,32 @@ function lowerForInArray(lowerer, stmt, labels, arrExpr) {
|
|
|
10025
10147
|
body: [
|
|
10026
10148
|
{ kind: "varDecl", localId: arr.id, init: arrExpr, loc },
|
|
10027
10149
|
{ kind: "varDecl", localId: len.id, init: liveLen(), loc },
|
|
10150
|
+
{
|
|
10151
|
+
kind: "varDecl",
|
|
10152
|
+
localId: keys.id,
|
|
10153
|
+
init: { kind: "libCall", fn: "array.namedKeys", args: [arrRef()], type: keysT, loc },
|
|
10154
|
+
loc,
|
|
10155
|
+
},
|
|
10156
|
+
{
|
|
10157
|
+
kind: "varDecl",
|
|
10158
|
+
localId: total.id,
|
|
10159
|
+
init: {
|
|
10160
|
+
kind: "bin",
|
|
10161
|
+
op: "+",
|
|
10162
|
+
left: lenRef(),
|
|
10163
|
+
right: {
|
|
10164
|
+
kind: "arrIntrinsic",
|
|
10165
|
+
method: "length",
|
|
10166
|
+
receiver: keysRef(),
|
|
10167
|
+
args: [],
|
|
10168
|
+
type: F64,
|
|
10169
|
+
loc,
|
|
10170
|
+
},
|
|
10171
|
+
type: F64,
|
|
10172
|
+
loc,
|
|
10173
|
+
},
|
|
10174
|
+
loc,
|
|
10175
|
+
},
|
|
10028
10176
|
{
|
|
10029
10177
|
kind: "for",
|
|
10030
10178
|
init: {
|
|
@@ -10037,7 +10185,7 @@ function lowerForInArray(lowerer, stmt, labels, arrExpr) {
|
|
|
10037
10185
|
kind: "bin",
|
|
10038
10186
|
op: "<",
|
|
10039
10187
|
left: iRef(),
|
|
10040
|
-
right: { kind: "varRef", localId:
|
|
10188
|
+
right: { kind: "varRef", localId: total.id, type: F64, loc },
|
|
10041
10189
|
type: BOOL,
|
|
10042
10190
|
loc,
|
|
10043
10191
|
},
|
|
@@ -10057,7 +10205,7 @@ function lowerForInArray(lowerer, stmt, labels, arrExpr) {
|
|
|
10057
10205
|
body: [
|
|
10058
10206
|
{
|
|
10059
10207
|
kind: "if",
|
|
10060
|
-
cond:
|
|
10208
|
+
cond: visits,
|
|
10061
10209
|
then: [keyDecl, ...writes, ...body],
|
|
10062
10210
|
else_: null,
|
|
10063
10211
|
loc,
|