@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,4 +1,5 @@
|
|
|
1
1
|
import { type IrClassDef, type IrModule } from "./ir.js";
|
|
2
|
+
import { type DynamicFieldStores } from "./int32-slots.js";
|
|
2
3
|
/** Whole-program final reference fields.
|
|
3
4
|
*
|
|
4
5
|
* A reference-counted class field is final when every write the program can
|
|
@@ -35,4 +36,4 @@ export declare function constructorClass(fnName: string): string | null;
|
|
|
35
36
|
/** `scalars` extends the analysis from reference-counted fields to fields of
|
|
36
37
|
* every type, for consumers that read a final field's value once instead of
|
|
37
38
|
* borrowing it (field-values.ts). */
|
|
38
|
-
export declare function analyzeFinalFields(mod: IrModule, scalars?: boolean): FinalFields;
|
|
39
|
+
export declare function analyzeFinalFields(mod: IrModule, scalars?: boolean, stores?: DynamicFieldStores): FinalFields;
|
package/dist/ir/final-fields.js
CHANGED
|
@@ -76,12 +76,12 @@ export function constructorClass(fnName) {
|
|
|
76
76
|
/** `scalars` extends the analysis from reference-counted fields to fields of
|
|
77
77
|
* every type, for consumers that read a final field's value once instead of
|
|
78
78
|
* borrowing it (field-values.ts). */
|
|
79
|
-
export function analyzeFinalFields(mod, scalars = false) {
|
|
79
|
+
export function analyzeFinalFields(mod, scalars = false, stores) {
|
|
80
80
|
const classes = new Map((mod.classes ?? []).map((c) => [c.name, c]));
|
|
81
81
|
const finals = new FinalFields(classes);
|
|
82
82
|
if (mod.lib)
|
|
83
83
|
return finals;
|
|
84
|
-
const dynamic = dynamicFieldStores(mod);
|
|
84
|
+
const dynamic = stores ?? dynamicFieldStores(mod);
|
|
85
85
|
if (dynamic.all)
|
|
86
86
|
return finals;
|
|
87
87
|
const genericFamilies = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"final-fields.js","sourceRoot":"","sources":["../../src/ir/final-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA4D,MAAM,SAAS,CAAC;AACjG,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"final-fields.js","sourceRoot":"","sources":["../../src/ir/final-fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -160,6 +160,8 @@ const MODULE_FIELDS = {
|
|
|
160
160
|
"contracts.programLifetime[]": "other",
|
|
161
161
|
"wasmModules[].sha256": "other",
|
|
162
162
|
"wasmModules[].bytes": "other",
|
|
163
|
+
"wasmUntranslated[].sha256": "other",
|
|
164
|
+
"wasmUntranslated[].reason": "other",
|
|
163
165
|
"threadSlotKeys[]": "other",
|
|
164
166
|
};
|
|
165
167
|
const loc = { file: "references.ts", start: 0, end: 0 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-references.test.js","sourceRoot":"","sources":["../../src/ir/function-references.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"function-references.test.js","sourceRoot":"","sources":["../../src/ir/function-references.test.ts"],"names":[],"mappings":"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"}
|
package/dist/ir/int32-slots.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IrClassDef, IrExpr, IrModule } from "./ir.js";
|
|
1
|
+
import type { IrClassDef, IrExpr, IrGlobal, IrModule } from "./ir.js";
|
|
2
2
|
import { type IntegerRange, type IntegerSlotFacts } from "./integer-ranges.js";
|
|
3
3
|
/** The storage slot an array-valued expression reads, as an
|
|
4
4
|
* IrContracts.int32Elements key: a local or parameter
|
|
@@ -125,15 +125,18 @@ export declare class Int32Slots {
|
|
|
125
125
|
* whose key is not a literal), otherwise the
|
|
126
126
|
* literal keys of `dyn.keySet`/`dyn.keyDelete`. A view commits a store back
|
|
127
127
|
* into the instance's native field slots, which the IR does not show. */
|
|
128
|
-
export
|
|
128
|
+
export interface DynamicFieldStores {
|
|
129
129
|
all: boolean;
|
|
130
130
|
names: Set<string>;
|
|
131
|
-
}
|
|
131
|
+
}
|
|
132
|
+
/** Computes DynamicFieldStores with one walk of every function. Analyses of
|
|
133
|
+
* the same module accept the result so the emitter walks the module once. */
|
|
134
|
+
export declare function dynamicFieldStores(mod: IrModule, records?: Map<string, import("./ir.js").IrRecordShape>, unions?: Map<string, import("./ir.js").IrUnionDef>): DynamicFieldStores;
|
|
132
135
|
/** The f64 class field families a runtime store through a live dynamic view
|
|
133
136
|
* can write: the class reaches checked-dynamic code (directly or through
|
|
134
137
|
* another exposed type), and some dynamic store in the program can name the
|
|
135
138
|
* field. */
|
|
136
|
-
export declare function dynamicallyStoredFamilies(mod: IrModule, slots: Int32Slots): Set<string>;
|
|
139
|
+
export declare function dynamicallyStoredFamilies(mod: IrModule, slots: Int32Slots, stores?: DynamicFieldStores): Set<string>;
|
|
137
140
|
/** How functions can be reached besides direct calls: as values (closures,
|
|
138
141
|
* the entry, constructors behind class values: `valueEscaped`), through
|
|
139
142
|
* virtual dispatch (`virtualTargets`), or as vtable entries the runtime
|
|
@@ -143,4 +146,9 @@ export declare function functionCallFacts(mod: IrModule, classes: ReadonlyMap<st
|
|
|
143
146
|
virtualTargets: Set<string>;
|
|
144
147
|
runtimeVirtual: (name: string) => boolean;
|
|
145
148
|
};
|
|
146
|
-
|
|
149
|
+
/** Facts about the same module that a caller has already computed. */
|
|
150
|
+
export interface Int32SlotInputs {
|
|
151
|
+
dynamicStores?: DynamicFieldStores;
|
|
152
|
+
initializerBindings?: ReadonlyMap<string, IrGlobal[]>;
|
|
153
|
+
}
|
|
154
|
+
export declare function analyzeInt32Slots(mod: IrModule, inputs?: Int32SlotInputs): Int32Slots;
|
package/dist/ir/int32-slots.js
CHANGED
|
@@ -335,6 +335,7 @@ const DYN_READ_ONLY = new Set([
|
|
|
335
335
|
"date.nativeNew",
|
|
336
336
|
"date.nativeNewFields",
|
|
337
337
|
"date.nativeNewValue",
|
|
338
|
+
"date.argumentsTime",
|
|
338
339
|
// The dynamic operators run the ToPrimitive and coercion helpers of
|
|
339
340
|
// dyn.compare, dyn.numberConstructor and dyn.toStringCoerce, then build a
|
|
340
341
|
// fresh number, string or bigint. dyn.increment steps dyn.toNumeric's result.
|
|
@@ -362,6 +363,7 @@ const DYN_READ_ONLY = new Set([
|
|
|
362
363
|
"dyn.collectionIteratorIndex",
|
|
363
364
|
"dyn.mapSeedEntries",
|
|
364
365
|
"dyn.mapSeedEntry",
|
|
366
|
+
"dyn.nameClassPrototype",
|
|
365
367
|
"dyn.numberConstructor",
|
|
366
368
|
"dyn.objCreate",
|
|
367
369
|
"dyn.objEntries",
|
|
@@ -436,11 +438,8 @@ function walkFunction(fn, visit) {
|
|
|
436
438
|
for (const s of fn.body)
|
|
437
439
|
stmt(s);
|
|
438
440
|
}
|
|
439
|
-
/**
|
|
440
|
-
*
|
|
441
|
-
* whose key is not a literal), otherwise the
|
|
442
|
-
* literal keys of `dyn.keySet`/`dyn.keyDelete`. A view commits a store back
|
|
443
|
-
* into the instance's native field slots, which the IR does not show. */
|
|
441
|
+
/** Computes DynamicFieldStores with one walk of every function. Analyses of
|
|
442
|
+
* the same module accept the result so the emitter walks the module once. */
|
|
444
443
|
export function dynamicFieldStores(mod, records = new Map((mod.records ?? []).map((r) => [r.id, r])), unions = new Map((mod.unions ?? []).map((u) => [u.id, u]))) {
|
|
445
444
|
const dynTypes = new Map();
|
|
446
445
|
const dynNamed = new Map();
|
|
@@ -503,7 +502,7 @@ export function dynamicFieldStores(mod, records = new Map((mod.records ?? []).ma
|
|
|
503
502
|
* can write: the class reaches checked-dynamic code (directly or through
|
|
504
503
|
* another exposed type), and some dynamic store in the program can name the
|
|
505
504
|
* field. */
|
|
506
|
-
export function dynamicallyStoredFamilies(mod, slots) {
|
|
505
|
+
export function dynamicallyStoredFamilies(mod, slots, stores) {
|
|
507
506
|
const classes = new Map((mod.classes ?? []).map((c) => [c.name, c]));
|
|
508
507
|
const children = new Map();
|
|
509
508
|
for (const cls of classes.values())
|
|
@@ -580,7 +579,7 @@ export function dynamicallyStoredFamilies(mod, slots) {
|
|
|
580
579
|
// writes every field from the view, which holds the exact snapshot value
|
|
581
580
|
// of any property no store named. So reaching dynamic code disqualifies
|
|
582
581
|
// exactly the field names some dynamic store in the program can name.
|
|
583
|
-
const { all: dynWritesAll, names: dynWritten } = dynamicFieldStores(mod, records, unions);
|
|
582
|
+
const { all: dynWritesAll, names: dynWritten } = stores ?? dynamicFieldStores(mod, records, unions);
|
|
584
583
|
for (const fn of mod.functions)
|
|
585
584
|
walkFunction(fn, {
|
|
586
585
|
expr: (e) => {
|
|
@@ -638,23 +637,11 @@ export function functionCallFacts(mod, classes, subtree) {
|
|
|
638
637
|
for (const cls of classes.values())
|
|
639
638
|
if (runtimeRooted(cls.name))
|
|
640
639
|
runtimePrefixes.push(`%${cls.name}.`);
|
|
641
|
-
for (const fn of mod.functions)
|
|
642
|
-
walkFunction(fn, {
|
|
643
|
-
expr: (e) => {
|
|
644
|
-
const referenced = exprFunctionReference(e);
|
|
645
|
-
if (referenced !== undefined)
|
|
646
|
-
escaped.add(referenced);
|
|
647
|
-
if (e.kind !== "virtualCall")
|
|
648
|
-
return;
|
|
649
|
-
for (const name of subtree(e.className))
|
|
650
|
-
virtualTargets.add(`%${name}.${e.method}`);
|
|
651
|
-
for (let c = classes.get(e.className); c; c = c.base ? classes.get(c.base) : undefined)
|
|
652
|
-
virtualTargets.add(`%${c.name}.${e.method}`);
|
|
653
|
-
},
|
|
654
|
-
});
|
|
655
640
|
// A class value can reach `new` through its construct thunk; one that
|
|
656
|
-
// only feeds an instanceof interval check cannot.
|
|
641
|
+
// only feeds an instanceof interval check cannot. Class references are
|
|
642
|
+
// checked once every function has contributed its tested-only ones.
|
|
657
643
|
const testedOnly = new Set();
|
|
644
|
+
const classRefs = [];
|
|
658
645
|
for (const fn of mod.functions) {
|
|
659
646
|
// Direct operands, and unboxed locals bound once to a class reference
|
|
660
647
|
// and read only as instanceof operands (the lowering's temporary).
|
|
@@ -667,7 +654,16 @@ export function functionCallFacts(mod, classes, subtree) {
|
|
|
667
654
|
};
|
|
668
655
|
walkFunction(fn, {
|
|
669
656
|
expr: (e) => {
|
|
670
|
-
|
|
657
|
+
const referenced = exprFunctionReference(e);
|
|
658
|
+
if (referenced !== undefined)
|
|
659
|
+
escaped.add(referenced);
|
|
660
|
+
if (e.kind === "virtualCall") {
|
|
661
|
+
for (const name of subtree(e.className))
|
|
662
|
+
virtualTargets.add(`%${name}.${e.method}`);
|
|
663
|
+
for (let c = classes.get(e.className); c; c = c.base ? classes.get(c.base) : undefined)
|
|
664
|
+
virtualTargets.add(`%${c.name}.${e.method}`);
|
|
665
|
+
}
|
|
666
|
+
else if (e.kind === "instanceOfValue") {
|
|
671
667
|
if (e.classValue.kind === "classRef")
|
|
672
668
|
testedOnly.add(e.classValue);
|
|
673
669
|
else if (e.classValue.kind === "varRef")
|
|
@@ -677,6 +673,8 @@ export function functionCallFacts(mod, classes, subtree) {
|
|
|
677
673
|
count(reads, e.localId);
|
|
678
674
|
else if (e.kind === "assignExpr" || e.kind === "incDec")
|
|
679
675
|
count(writes, e.localId);
|
|
676
|
+
else if (e.kind === "classRef")
|
|
677
|
+
classRefs.push(e);
|
|
680
678
|
},
|
|
681
679
|
stmt: (s) => {
|
|
682
680
|
if (s.kind === "varDecl" && s.init?.kind === "classRef")
|
|
@@ -690,17 +688,13 @@ export function functionCallFacts(mod, classes, subtree) {
|
|
|
690
688
|
if (!boxed.has(id) && writes.get(id) === 1 && reads.get(id) === tests.get(id))
|
|
691
689
|
testedOnly.add(ref);
|
|
692
690
|
}
|
|
693
|
-
for (const
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
if (e.kind === "classRef" && !testedOnly.has(e))
|
|
697
|
-
escaped.add(`%${e.className}.constructor`);
|
|
698
|
-
},
|
|
699
|
-
});
|
|
691
|
+
for (const e of classRefs)
|
|
692
|
+
if (!testedOnly.has(e))
|
|
693
|
+
escaped.add(`%${e.className}.constructor`);
|
|
700
694
|
const runtimeVirtual = (name) => runtimePrefixes.some((prefix) => name.startsWith(prefix));
|
|
701
695
|
return { valueEscaped: escaped, virtualTargets, runtimeVirtual };
|
|
702
696
|
}
|
|
703
|
-
export function analyzeInt32Slots(mod) {
|
|
697
|
+
export function analyzeInt32Slots(mod, inputs = {}) {
|
|
704
698
|
const classes = new Map((mod.classes ?? []).map((c) => [c.name, c]));
|
|
705
699
|
const slots = new Int32Slots(classes);
|
|
706
700
|
if (mod.lib)
|
|
@@ -782,7 +776,7 @@ export function analyzeInt32Slots(mod) {
|
|
|
782
776
|
dropFamily(family, "runtime-provided or generic class");
|
|
783
777
|
}
|
|
784
778
|
/* ── dynamic, reflective and runtime exposure ── */
|
|
785
|
-
for (const family of dynamicallyStoredFamilies(mod, slots)) {
|
|
779
|
+
for (const family of dynamicallyStoredFamilies(mod, slots, inputs.dynamicStores)) {
|
|
786
780
|
if (slots.isPinnedField(family))
|
|
787
781
|
continue;
|
|
788
782
|
dropFamily(family, "dynamic stores can name the field");
|
|
@@ -801,57 +795,17 @@ export function analyzeInt32Slots(mod) {
|
|
|
801
795
|
for (const param of fn.params)
|
|
802
796
|
dropParam(fn.name, param.localId, why);
|
|
803
797
|
};
|
|
804
|
-
//
|
|
805
|
-
//
|
|
798
|
+
// One walk of every function collects what the steps below need: the
|
|
799
|
+
// functions IR calls reach directly, calls whose arity differs from their
|
|
800
|
+
// callee's, the captured bindings' boxes, and which functions read which
|
|
801
|
+
// slot facts. Facts that depend on earlier steps are applied in walk order
|
|
802
|
+
// where those steps complete.
|
|
806
803
|
const called = slots.called;
|
|
807
|
-
|
|
808
|
-
walkFunction(fn, {
|
|
809
|
-
expr: (e) => {
|
|
810
|
-
if (e.kind === "call")
|
|
811
|
-
called.add(e.callee);
|
|
812
|
-
else if (e.kind === "new")
|
|
813
|
-
called.add(`%${e.className}.constructor`);
|
|
814
|
-
},
|
|
815
|
-
});
|
|
816
|
-
for (const fn of mod.functions) {
|
|
817
|
-
if (fn.returnType.kind === "f64" && !fn.async && !fn.generator) {
|
|
818
|
-
slots.addReturn(fn.name);
|
|
819
|
-
slots.assumeNonNegative(`ret:${fn.name}`);
|
|
820
|
-
}
|
|
821
|
-
if (fn.async ||
|
|
822
|
-
fn.generator ||
|
|
823
|
-
!called.has(fn.name) ||
|
|
824
|
-
escaped.has(fn.name) ||
|
|
825
|
-
virtual(fn.name))
|
|
826
|
-
continue;
|
|
827
|
-
for (const param of fn.params)
|
|
828
|
-
if (param.type.kind === "f64" && !slots.isPinned(paramKey(fn.name, param.localId))) {
|
|
829
|
-
slots.addParam(fn.name, param.localId);
|
|
830
|
-
slots.assumeNonNegative(paramKey(fn.name, param.localId));
|
|
831
|
-
}
|
|
832
|
-
}
|
|
804
|
+
const arityMismatches = [];
|
|
833
805
|
const arityChecked = (fn, args, offset) => {
|
|
834
806
|
if (fn && fn.params.length !== args + offset)
|
|
835
|
-
|
|
807
|
+
arityMismatches.push(fn);
|
|
836
808
|
};
|
|
837
|
-
for (const fn of mod.functions)
|
|
838
|
-
walkFunction(fn, {
|
|
839
|
-
expr: (e) => {
|
|
840
|
-
if (e.kind === "call")
|
|
841
|
-
arityChecked(functions.get(e.callee), e.args.length, 0);
|
|
842
|
-
else if (e.kind === "new")
|
|
843
|
-
arityChecked(functions.get(`%${e.className}.constructor`), e.args.length, 1);
|
|
844
|
-
},
|
|
845
|
-
});
|
|
846
|
-
// Candidates the fixpoint may drop; rangedParameters retries some.
|
|
847
|
-
const candidates = new Map();
|
|
848
|
-
const retry = new Set();
|
|
849
|
-
for (const fn of mod.functions) {
|
|
850
|
-
const ids = fn.params.filter((p) => slots.hasParam(fn.name, p.localId)).map((p) => p.localId);
|
|
851
|
-
if (ids.length > 0)
|
|
852
|
-
candidates.set(fn.name, ids);
|
|
853
|
-
}
|
|
854
|
-
/* ── captured bindings ── */
|
|
855
809
|
// A captured local lives in one box shared by its declaring function and
|
|
856
810
|
// every closure that captures it (closure.captures[i] is the lifted
|
|
857
811
|
// function's captures[i]). The box holds an int32 when every write to it
|
|
@@ -869,6 +823,18 @@ export function analyzeInt32Slots(mod) {
|
|
|
869
823
|
const boxKey = (fnName, localId) => `${fnName}\0${localId}`;
|
|
870
824
|
const boxMembers = new Set();
|
|
871
825
|
const unstableBoxes = new Set();
|
|
826
|
+
// Readers: which functions depend on which slot facts. Reads of a boxed
|
|
827
|
+
// local resolve to its box once the boxes are known.
|
|
828
|
+
const readers = new Map();
|
|
829
|
+
const reads = (slot, fnName) => {
|
|
830
|
+
const set = readers.get(slot);
|
|
831
|
+
if (set)
|
|
832
|
+
set.add(fnName);
|
|
833
|
+
else
|
|
834
|
+
readers.set(slot, new Set([fnName]));
|
|
835
|
+
};
|
|
836
|
+
const boxedReads = [];
|
|
837
|
+
const incrementedFamilies = [];
|
|
872
838
|
for (const fn of mod.functions) {
|
|
873
839
|
for (const local of fn.locals)
|
|
874
840
|
if (local.boxed) {
|
|
@@ -879,9 +845,34 @@ export function analyzeInt32Slots(mod) {
|
|
|
879
845
|
}
|
|
880
846
|
for (const capture of fn.classCaptures ?? [])
|
|
881
847
|
unstableBoxes.add(boxKey(fn.name, capture.localId));
|
|
848
|
+
const read = new Set();
|
|
882
849
|
walkFunction(fn, {
|
|
883
850
|
expr: (e) => {
|
|
884
|
-
if (e.kind === "
|
|
851
|
+
if (e.kind === "call") {
|
|
852
|
+
called.add(e.callee);
|
|
853
|
+
arityChecked(functions.get(e.callee), e.args.length, 0);
|
|
854
|
+
reads(`ret:${e.callee}`, fn.name);
|
|
855
|
+
}
|
|
856
|
+
else if (e.kind === "new") {
|
|
857
|
+
const constructor = `%${e.className}.constructor`;
|
|
858
|
+
called.add(constructor);
|
|
859
|
+
arityChecked(functions.get(constructor), e.args.length, 1);
|
|
860
|
+
// Constructors return nothing: this only records their callers.
|
|
861
|
+
reads(`ret:${constructor}`, fn.name);
|
|
862
|
+
}
|
|
863
|
+
else if (e.kind === "varRef")
|
|
864
|
+
read.add(e.localId);
|
|
865
|
+
else if (e.kind === "fieldGet") {
|
|
866
|
+
const family = slots.family(e.className, e.field);
|
|
867
|
+
if (family)
|
|
868
|
+
reads(`field:${family}`, fn.name);
|
|
869
|
+
}
|
|
870
|
+
else if (e.kind === "fieldIncDec") {
|
|
871
|
+
const family = slots.family(e.className, e.field);
|
|
872
|
+
if (family)
|
|
873
|
+
incrementedFamilies.push(family);
|
|
874
|
+
}
|
|
875
|
+
else if (e.kind === "closure") {
|
|
885
876
|
const lifted = functions.get(e.fnName);
|
|
886
877
|
e.captures.forEach((id, i) => {
|
|
887
878
|
const inner = lifted?.captures?.[i];
|
|
@@ -908,7 +899,39 @@ export function analyzeInt32Slots(mod) {
|
|
|
908
899
|
unstableBoxes.add(boxKey(fn.name, s.catchLocalId));
|
|
909
900
|
},
|
|
910
901
|
});
|
|
902
|
+
if (read.size > 0)
|
|
903
|
+
boxedReads.push([fn, read]);
|
|
911
904
|
}
|
|
905
|
+
// Only functions some IR call reaches directly get parameter facts: one
|
|
906
|
+
// the backend invokes by convention has no call site to prove against.
|
|
907
|
+
for (const fn of mod.functions) {
|
|
908
|
+
if (fn.returnType.kind === "f64" && !fn.async && !fn.generator) {
|
|
909
|
+
slots.addReturn(fn.name);
|
|
910
|
+
slots.assumeNonNegative(`ret:${fn.name}`);
|
|
911
|
+
}
|
|
912
|
+
if (fn.async ||
|
|
913
|
+
fn.generator ||
|
|
914
|
+
!called.has(fn.name) ||
|
|
915
|
+
escaped.has(fn.name) ||
|
|
916
|
+
virtual(fn.name))
|
|
917
|
+
continue;
|
|
918
|
+
for (const param of fn.params)
|
|
919
|
+
if (param.type.kind === "f64" && !slots.isPinned(paramKey(fn.name, param.localId))) {
|
|
920
|
+
slots.addParam(fn.name, param.localId);
|
|
921
|
+
slots.assumeNonNegative(paramKey(fn.name, param.localId));
|
|
922
|
+
}
|
|
923
|
+
}
|
|
924
|
+
for (const fn of arityMismatches)
|
|
925
|
+
dropAllParams(fn, "call arity differs");
|
|
926
|
+
// Candidates the fixpoint may drop; rangedParameters retries some.
|
|
927
|
+
const candidates = new Map();
|
|
928
|
+
const retry = new Set();
|
|
929
|
+
for (const fn of mod.functions) {
|
|
930
|
+
const ids = fn.params.filter((p) => slots.hasParam(fn.name, p.localId)).map((p) => p.localId);
|
|
931
|
+
if (ids.length > 0)
|
|
932
|
+
candidates.set(fn.name, ids);
|
|
933
|
+
}
|
|
934
|
+
/* ── captured bindings ── */
|
|
912
935
|
const groups = new Map();
|
|
913
936
|
for (const key of boxMembers) {
|
|
914
937
|
const root = boxRoot(key);
|
|
@@ -977,42 +1000,16 @@ export function analyzeInt32Slots(mod) {
|
|
|
977
1000
|
reason(`box:${group}`, why);
|
|
978
1001
|
return slots.dropBox(group);
|
|
979
1002
|
};
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
};
|
|
989
|
-
for (const fn of mod.functions)
|
|
990
|
-
walkFunction(fn, {
|
|
991
|
-
expr: (e) => {
|
|
992
|
-
if (e.kind === "fieldGet") {
|
|
993
|
-
const family = slots.family(e.className, e.field);
|
|
994
|
-
if (family)
|
|
995
|
-
reads(`field:${family}`, fn.name);
|
|
996
|
-
}
|
|
997
|
-
else if (e.kind === "call")
|
|
998
|
-
reads(`ret:${e.callee}`, fn.name);
|
|
999
|
-
// Constructors return nothing: this only records their callers.
|
|
1000
|
-
else if (e.kind === "new")
|
|
1001
|
-
reads(`ret:%${e.className}.constructor`, fn.name);
|
|
1002
|
-
else if (e.kind === "varRef") {
|
|
1003
|
-
const group = slots.boxGroup(fn.name, e.localId);
|
|
1004
|
-
if (group !== null)
|
|
1005
|
-
reads(`box:${group}`, fn.name);
|
|
1006
|
-
}
|
|
1007
|
-
else if (e.kind === "fieldIncDec") {
|
|
1008
|
-
const family = slots.family(e.className, e.field);
|
|
1009
|
-
if (family)
|
|
1010
|
-
dropFamily(family, "++/-- on the field");
|
|
1011
|
-
}
|
|
1012
|
-
},
|
|
1013
|
-
});
|
|
1003
|
+
for (const [fn, read] of boxedReads)
|
|
1004
|
+
for (const localId of read) {
|
|
1005
|
+
const group = slots.boxGroup(fn.name, localId);
|
|
1006
|
+
if (group !== null)
|
|
1007
|
+
reads(`box:${group}`, fn.name);
|
|
1008
|
+
}
|
|
1009
|
+
for (const family of incrementedFamilies)
|
|
1010
|
+
dropFamily(family, "++/-- on the field");
|
|
1014
1011
|
/* ── the optimistic fixpoint ── */
|
|
1015
|
-
const bindings = findInitializerBindings(mod);
|
|
1012
|
+
const bindings = inputs.initializerBindings ?? findInitializerBindings(mod);
|
|
1016
1013
|
const numeric = (fn) => withInitializerBindings(fn, bindings.get(fn.name) ?? []);
|
|
1017
1014
|
const queue = mod.functions.map((fn) => fn.name);
|
|
1018
1015
|
const queued = new Set(queue);
|