@scriptc/compiler 0.4.2 → 0.4.4
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 +470 -66
- package/dist/backend/cycle-analysis.d.ts +4 -1
- package/dist/backend/cycle-analysis.js +6 -4
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +55 -0
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/cycle-mutability.d.ts +7 -0
- package/dist/backend/cycle-mutability.js +19 -1
- package/dist/backend/cycle-mutability.js.map +1 -1
- package/dist/backend/executable-features.js +2 -0
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/immutability.d.ts +6 -3
- package/dist/backend/immutability.js +33 -29
- package/dist/backend/immutability.js.map +1 -1
- package/dist/backend/library-pack.js +1 -0
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +16 -1
- package/dist/backend/llvm/alloc.js +54 -4
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/appended-array-literals.d.ts +2 -1
- package/dist/backend/llvm/appended-array-literals.js +44 -36
- package/dist/backend/llvm/appended-array-literals.js.map +1 -1
- package/dist/backend/llvm/appended-array-literals.test.js +4 -3
- package/dist/backend/llvm/appended-array-literals.test.js.map +1 -1
- package/dist/backend/llvm/array-search.d.ts +4 -3
- package/dist/backend/llvm/array-search.js +21 -9
- package/dist/backend/llvm/array-search.js.map +1 -1
- package/dist/backend/llvm/blocks.d.ts +1 -1
- package/dist/backend/llvm/blocks.js +2 -2
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/byte-windows.js +2 -0
- package/dist/backend/llvm/byte-windows.js.map +1 -1
- package/dist/backend/llvm/bytes-alias.d.ts +6 -1
- package/dist/backend/llvm/bytes-alias.js +8 -2
- package/dist/backend/llvm/bytes-alias.js.map +1 -1
- package/dist/backend/llvm/bytes-loop-versions.d.ts +47 -5
- package/dist/backend/llvm/bytes-loop-versions.js +479 -32
- package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
- package/dist/backend/llvm/bytes-loop-versions.test.js +263 -2
- package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
- package/dist/backend/llvm/checked-value-lifetimes.js +2 -0
- package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +7 -5
- package/dist/backend/llvm/classes.js +44 -20
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +167 -7
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +9 -3
- package/dist/backend/llvm/common.js +9 -3
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.d.ts +2 -1
- package/dist/backend/llvm/constant-callbacks.js +83 -52
- package/dist/backend/llvm/constant-callbacks.js.map +1 -1
- package/dist/backend/llvm/counted-loops.d.ts +7 -0
- package/dist/backend/llvm/counted-loops.js +18 -0
- package/dist/backend/llvm/counted-loops.js.map +1 -1
- package/dist/backend/llvm/debug-info.js +2 -5
- package/dist/backend/llvm/debug-info.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.d.ts +39 -8
- package/dist/backend/llvm/dense-array-access.js +222 -52
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.test.js +36 -0
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
- package/dist/backend/llvm/dense-array-loops.d.ts +17 -1
- package/dist/backend/llvm/dense-array-loops.js +194 -5
- package/dist/backend/llvm/dense-array-loops.js.map +1 -1
- package/dist/backend/llvm/dense-array-loops.test.js +90 -1
- package/dist/backend/llvm/dense-array-loops.test.js.map +1 -1
- package/dist/backend/llvm/dyn-handle-tags.test.js +6 -1
- package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +30 -0
- package/dist/backend/llvm/dyn.js +373 -70
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emit-function.js +13 -28
- package/dist/backend/llvm/emit-function.js.map +1 -1
- package/dist/backend/llvm/emit-journal.d.ts +93 -0
- package/dist/backend/llvm/emit-journal.js +170 -0
- package/dist/backend/llvm/emit-journal.js.map +1 -0
- package/dist/backend/llvm/emit-module.js +211 -33
- package/dist/backend/llvm/emit-module.js.map +1 -1
- package/dist/backend/llvm/emit-statements.d.ts +0 -4
- package/dist/backend/llvm/emit-statements.js +268 -84
- package/dist/backend/llvm/emit-statements.js.map +1 -1
- package/dist/backend/llvm/emitter-state.d.ts +7 -0
- package/dist/backend/llvm/emitter-state.js +14 -0
- package/dist/backend/llvm/emitter-state.js.map +1 -0
- package/dist/backend/llvm/emitter.d.ts +186 -37
- package/dist/backend/llvm/emitter.js +733 -90
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +65 -7
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +11 -13
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.js +48 -20
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.js +47 -0
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +28 -14
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +14 -2
- package/dist/backend/llvm/expr-containers.js +143 -37
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +14 -0
- package/dist/backend/llvm/expr-dynamic.js +18 -11
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +119 -38
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +11 -6
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-records.d.ts +12 -0
- package/dist/backend/llvm/expr-records.js +106 -0
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.d.ts +2 -2
- package/dist/backend/llvm/expr-stream-bridges.js +210 -69
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +2 -2
- package/dist/backend/llvm/expr-stream-callbacks.js +74 -20
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/int32-kind-loops.d.ts +39 -0
- package/dist/backend/llvm/int32-kind-loops.js +106 -0
- package/dist/backend/llvm/int32-kind-loops.js.map +1 -0
- package/dist/backend/llvm/integer-or-nan-indexes.test.d.ts +1 -0
- package/dist/backend/llvm/integer-or-nan-indexes.test.js +118 -0
- package/dist/backend/llvm/integer-or-nan-indexes.test.js.map +1 -0
- package/dist/backend/llvm/integer-values.d.ts +25 -1
- package/dist/backend/llvm/integer-values.js +95 -0
- package/dist/backend/llvm/integer-values.js.map +1 -1
- package/dist/backend/llvm/js-ic.d.ts +1 -1
- package/dist/backend/llvm/js-ic.js +1 -1
- package/dist/backend/llvm/js-ic.js.map +1 -1
- package/dist/backend/llvm/key-orders.d.ts +7 -0
- package/dist/backend/llvm/key-orders.js +33 -0
- package/dist/backend/llvm/key-orders.js.map +1 -0
- package/dist/backend/llvm/lib-connect.js +4 -0
- package/dist/backend/llvm/lib-connect.js.map +1 -1
- package/dist/backend/llvm/lib-datagram.js +11 -0
- package/dist/backend/llvm/lib-datagram.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +213 -5
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +4 -4
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.js +4 -0
- package/dist/backend/llvm/lib-http2.js.map +1 -1
- package/dist/backend/llvm/lib-lookup.js +16 -6
- package/dist/backend/llvm/lib-lookup.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +37 -1
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +94 -2
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +35 -5
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +115 -19
- 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/loop-state.d.ts +33 -0
- package/dist/backend/llvm/loop-state.js +42 -0
- package/dist/backend/llvm/loop-state.js.map +1 -0
- package/dist/backend/llvm/map-number-lookup.d.ts +26 -8
- package/dist/backend/llvm/map-number-lookup.js +91 -31
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.test.js +55 -0
- package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.js +4 -2
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.d.ts +2 -1
- package/dist/backend/llvm/nullable-unions.js +15 -3
- package/dist/backend/llvm/nullable-unions.js.map +1 -1
- package/dist/backend/llvm/publish.d.ts +10 -0
- package/dist/backend/llvm/publish.js +15 -3
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/receivers.js +6 -1
- package/dist/backend/llvm/receivers.js.map +1 -1
- package/dist/backend/llvm/record-results.d.ts +1 -9
- package/dist/backend/llvm/record-results.js +2 -11
- package/dist/backend/llvm/record-results.js.map +1 -1
- package/dist/backend/llvm/reference-effects.js +3 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-writes.d.ts +7 -2
- package/dist/backend/llvm/reference-writes.js +89 -72
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/running-extrema.d.ts +11 -0
- package/dist/backend/llvm/running-extrema.js +115 -0
- package/dist/backend/llvm/running-extrema.js.map +1 -0
- package/dist/backend/llvm/running-extrema.test.d.ts +1 -0
- package/dist/backend/llvm/running-extrema.test.js +89 -0
- package/dist/backend/llvm/running-extrema.test.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +71 -15
- package/dist/backend/llvm/shapes.js +224 -40
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +53 -7
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.d.ts +6 -0
- package/dist/backend/llvm/speculative-integers.js +2 -2
- package/dist/backend/llvm/speculative-integers.js.map +1 -1
- package/dist/backend/llvm/stack-captures.js +1 -5
- package/dist/backend/llvm/stack-captures.js.map +1 -1
- package/dist/backend/llvm/stack-objects.d.ts +3 -2
- package/dist/backend/llvm/stack-objects.js +5 -2
- package/dist/backend/llvm/stack-objects.js.map +1 -1
- package/dist/backend/llvm/string-reads.d.ts +12 -0
- package/dist/backend/llvm/string-reads.js +44 -0
- package/dist/backend/llvm/string-reads.js.map +1 -1
- package/dist/backend/llvm/union-repr.d.ts +4 -3
- package/dist/backend/llvm/union-repr.js +6 -5
- package/dist/backend/llvm/union-repr.js.map +1 -1
- package/dist/backend/llvm/walk-borrows.d.ts +3 -0
- package/dist/backend/llvm/walk-borrows.js +46 -41
- package/dist/backend/llvm/walk-borrows.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +3 -0
- package/dist/backend/llvm/walkers.js +101 -65
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/llvm/wrapping-sums.d.ts +16 -1
- package/dist/backend/llvm/wrapping-sums.js +126 -0
- package/dist/backend/llvm/wrapping-sums.js.map +1 -1
- package/dist/backend/may-throw.d.ts +8 -10
- package/dist/backend/may-throw.js +14 -10
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +5 -0
- package/dist/backend/native/executable.js +7 -0
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +1 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native-codegen-core.d.ts +5 -3
- package/dist/backend/native-codegen-core.js +13 -6
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.test.js +6 -4
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +4 -0
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/publication.d.ts +12 -1
- package/dist/backend/publication.js +37 -14
- package/dist/backend/publication.js.map +1 -1
- package/dist/backend/publication.test.js +30 -0
- package/dist/backend/publication.test.js.map +1 -1
- package/dist/backend/result-slots.d.ts +16 -0
- package/dist/backend/result-slots.js +23 -0
- package/dist/backend/result-slots.js.map +1 -0
- 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 -0
- package/dist/backend/runtime-pack-core.js +1 -0
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +2 -1
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +2 -1
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/stack-observations.d.ts +2 -1
- package/dist/backend/stack-observations.js +67 -42
- package/dist/backend/stack-observations.js.map +1 -1
- package/dist/backend/target-cpu.d.ts +26 -0
- package/dist/backend/target-cpu.js +98 -0
- package/dist/backend/target-cpu.js.map +1 -0
- package/dist/backend/target-cpu.test.d.ts +1 -0
- package/dist/backend/target-cpu.test.js +38 -0
- package/dist/backend/target-cpu.test.js.map +1 -0
- package/dist/backend/target-diagnostics.js +5 -3
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/warm-cache.js +1 -0
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/cli/command.js +20 -1
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/usage.d.ts +4 -1
- package/dist/cli/usage.js +10 -3
- package/dist/cli/usage.js.map +1 -1
- package/dist/compat/fetch-profile.js +1 -1
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/compile-types.d.ts +7 -0
- package/dist/contracts/check.js +4 -3
- package/dist/contracts/check.js.map +1 -1
- package/dist/contracts/int32-elements.js +10 -2
- package/dist/contracts/int32-elements.js.map +1 -1
- package/dist/coverage/report.js +12 -3
- package/dist/coverage/report.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +4 -0
- package/dist/diagnostics/diagnostic.js +1 -1
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/envelope.d.ts +3 -0
- package/dist/diagnostics/envelope.js +1 -0
- package/dist/diagnostics/envelope.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +5 -0
- package/dist/executable/executable-cache.js +5 -0
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +3 -0
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/frontend/decl-projection.d.ts +41 -0
- package/dist/frontend/decl-projection.js +949 -0
- package/dist/frontend/decl-projection.js.map +1 -0
- package/dist/frontend/decl-projection.test.d.ts +1 -0
- package/dist/frontend/decl-projection.test.js +30 -0
- package/dist/frontend/decl-projection.test.js.map +1 -0
- package/dist/frontend/dts-paths.d.ts +15 -0
- package/dist/frontend/dts-paths.js +25 -0
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/input-tracker.d.ts +6 -0
- package/dist/frontend/input-tracker.js +51 -28
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +19 -0
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lowering/array-values.js +100 -2
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/builtins/async-context.d.ts +8 -2
- package/dist/frontend/lowering/builtins/async-context.js +62 -3
- package/dist/frontend/lowering/builtins/async-context.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-methods.js +46 -15
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process.js +13 -2
- package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.js +87 -10
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/dates.js +4 -1
- package/dist/frontend/lowering/builtins/dates.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.js +3 -3
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-glob.js +6 -3
- package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-paths.d.ts +43 -5
- package/dist/frontend/lowering/builtins/fs-paths.js +245 -93
- package/dist/frontend/lowering/builtins/fs-paths.js.map +1 -1
- package/dist/frontend/lowering/builtins/global-namespace-keys.d.ts +3 -0
- package/dist/frontend/lowering/builtins/global-namespace-keys.js +122 -0
- package/dist/frontend/lowering/builtins/global-namespace-keys.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-calls.js +6 -3
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/numbers.js +9 -1
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.d.ts +7 -1
- package/dist/frontend/lowering/builtins/promises.js +236 -139
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +5 -1
- package/dist/frontend/lowering/builtins/readline.js +35 -3
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/url.js +24 -1
- package/dist/frontend/lowering/builtins/url.js.map +1 -1
- package/dist/frontend/lowering/builtins/webassembly.js +6 -3
- package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.js +0 -1
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/cjs-exports-object.js +1 -1
- package/dist/frontend/lowering/cjs-exports-object.js.map +1 -1
- package/dist/frontend/lowering/cjs-inline-require.d.ts +32 -0
- package/dist/frontend/lowering/cjs-inline-require.js +307 -4
- package/dist/frontend/lowering/cjs-inline-require.js.map +1 -1
- package/dist/frontend/lowering/class-callbacks.d.ts +5 -2
- package/dist/frontend/lowering/class-callbacks.js +82 -12
- package/dist/frontend/lowering/class-callbacks.js.map +1 -1
- package/dist/frontend/lowering/class-construction.d.ts +4 -1
- package/dist/frontend/lowering/class-construction.js +17 -3
- package/dist/frontend/lowering/class-construction.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +49 -2
- package/dist/frontend/lowering/class-dynamic-dispatch.js +880 -108
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +47 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-iterables.d.ts +2 -1
- package/dist/frontend/lowering/class-iterables.js +9 -1
- package/dist/frontend/lowering/class-iterables.js.map +1 -1
- package/dist/frontend/lowering/class-method-mutations.js +83 -24
- package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.d.ts +25 -0
- package/dist/frontend/lowering/class-protocols.js +183 -1
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.js +31 -2
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-runtime-statics.d.ts +9 -3
- package/dist/frontend/lowering/class-runtime-statics.js +29 -4
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural-plans.js +48 -1
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +91 -1
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/completion-callbacks.d.ts +4 -0
- package/dist/frontend/lowering/completion-callbacks.js +146 -0
- package/dist/frontend/lowering/completion-callbacks.js.map +1 -0
- package/dist/frontend/lowering/containers/array-callback-call.js +2 -2
- package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +5 -4
- package/dist/frontend/lowering/containers/array-callbacks.js +345 -24
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-concat.js +10 -0
- package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.js +5 -0
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +26 -3
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.js +19 -8
- package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.d.ts +25 -17
- package/dist/frontend/lowering/containers/bytes.js +455 -46
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.js +3 -0
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +7 -2
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/filter-predicates.d.ts +6 -0
- package/dist/frontend/lowering/containers/filter-predicates.js +205 -0
- package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -0
- package/dist/frontend/lowering/containers/indexed-objects.d.ts +0 -12
- package/dist/frontend/lowering/containers/indexed-objects.js +46 -7
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.js +55 -9
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js +43 -19
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
- package/dist/frontend/lowering/date-values.d.ts +11 -0
- package/dist/frontend/lowering/date-values.js +207 -0
- package/dist/frontend/lowering/date-values.js.map +1 -0
- package/dist/frontend/lowering/dispatch-sites.js +15 -1
- package/dist/frontend/lowering/dispatch-sites.js.map +1 -1
- package/dist/frontend/lowering/divergences.js +9 -1
- package/dist/frontend/lowering/divergences.js.map +1 -1
- package/dist/frontend/lowering/error-methods.js +47 -2
- package/dist/frontend/lowering/error-methods.js.map +1 -1
- package/dist/frontend/lowering/expressions/array-literals.js +53 -0
- package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/binary.js +100 -28
- package/dist/frontend/lowering/expressions/binary.js.map +1 -1
- package/dist/frontend/lowering/expressions/element-access.js +169 -13
- package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/identifiers.js +64 -5
- package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
- package/dist/frontend/lowering/expressions/narrowing.js +95 -1
- package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +3 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -0
- package/dist/frontend/lowering/expressions/object-literals.js +138 -51
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +12 -0
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/property-access.js +168 -10
- package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/relational.js +212 -33
- package/dist/frontend/lowering/expressions/relational.js.map +1 -1
- package/dist/frontend/lowering/expressions/typeof.js +6 -0
- package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-fields.js +4 -0
- package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
- package/dist/frontend/lowering/expressions/updates.js +39 -3
- package/dist/frontend/lowering/expressions/updates.js.map +1 -1
- package/dist/frontend/lowering/frozen-records.d.ts +28 -0
- package/dist/frontend/lowering/frozen-records.js +322 -0
- package/dist/frontend/lowering/frozen-records.js.map +1 -0
- package/dist/frontend/lowering/function-returns.js +64 -0
- package/dist/frontend/lowering/function-returns.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.js +7 -2
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/indexed-unions.d.ts +54 -0
- package/dist/frontend/lowering/indexed-unions.js +401 -0
- package/dist/frontend/lowering/indexed-unions.js.map +1 -0
- package/dist/frontend/lowering/iterable-values.d.ts +49 -0
- package/dist/frontend/lowering/iterable-values.js +297 -0
- package/dist/frontend/lowering/iterable-values.js.map +1 -0
- package/dist/frontend/lowering/iterator-adapters.js +186 -1
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
- package/dist/frontend/lowering/js-class-fields.d.ts +8 -0
- package/dist/frontend/lowering/js-class-fields.js +45 -10
- package/dist/frontend/lowering/js-class-fields.js.map +1 -1
- package/dist/frontend/lowering/key-order-witness.d.ts +18 -3
- package/dist/frontend/lowering/key-order-witness.js +974 -48
- package/dist/frontend/lowering/key-order-witness.js.map +1 -1
- package/dist/frontend/lowering/key-order-witness.test.js +530 -10
- package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +15 -3
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.js +4 -1
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +7 -0
- package/dist/frontend/lowering/lower-calls.js +462 -44
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +11 -2
- package/dist/frontend/lowering/lower-classes.js +324 -69
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.js +3 -1
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.js +215 -3
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.d.ts +11 -0
- package/dist/frontend/lowering/lower-functions.js +83 -0
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.js +42 -32
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.js +6 -3
- package/dist/frontend/lowering/lower-global-value.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +1 -1
- package/dist/frontend/lowering/lower-inspect.js +53 -17
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +53 -5
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.js +5 -1
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-server.js +2 -2
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +5 -0
- package/dist/frontend/lowering/lower-stdlib.js +30 -0
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +23 -0
- package/dist/frontend/lowering/lower-stmts.js +553 -81
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +20 -2
- package/dist/frontend/lowering/lower-stream.js +1483 -156
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +107 -8
- package/dist/frontend/lowering/lowerer.js +381 -36
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/module-namespace-elements.d.ts +11 -1
- package/dist/frontend/lowering/module-namespace-elements.js +82 -5
- package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
- package/dist/frontend/lowering/new-target.d.ts +12 -0
- package/dist/frontend/lowering/new-target.js +280 -0
- package/dist/frontend/lowering/new-target.js.map +1 -0
- package/dist/frontend/lowering/object-factory-new.d.ts +5 -0
- package/dist/frontend/lowering/object-factory-new.js +20 -6
- package/dist/frontend/lowering/object-factory-new.js.map +1 -1
- package/dist/frontend/lowering/overload-choice.d.ts +33 -0
- package/dist/frontend/lowering/overload-choice.js +190 -0
- package/dist/frontend/lowering/overload-choice.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +3 -0
- package/dist/frontend/lowering/surfaces.js +73 -8
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/undefined-index.d.ts +27 -0
- package/dist/frontend/lowering/undefined-index.js +82 -0
- package/dist/frontend/lowering/undefined-index.js.map +1 -0
- package/dist/frontend/lowering/var-hoisting.js +29 -13
- package/dist/frontend/lowering/var-hoisting.js.map +1 -1
- package/dist/frontend/lowering/width-lift.d.ts +18 -0
- package/dist/frontend/npm-static-bundled-chunks.js +9 -11
- package/dist/frontend/npm-static-bundled-chunks.js.map +1 -1
- package/dist/frontend/npm-static-bundled-chunks.test.js +6 -5
- package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-syntax.js +9 -1
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
- package/dist/frontend/npm-static.js +4 -20
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/package-shims.d.ts +3 -0
- package/dist/frontend/package-shims.js +71 -8
- package/dist/frontend/package-shims.js.map +1 -1
- package/dist/frontend/pipeline.js +19 -11
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/process-fork.d.ts +25 -0
- package/dist/frontend/process-fork.js +2 -0
- package/dist/frontend/process-fork.js.map +1 -0
- package/dist/frontend/program-analysis.d.ts +5 -1
- package/dist/frontend/program-analysis.js +5 -0
- package/dist/frontend/program-analysis.js.map +1 -1
- package/dist/frontend/program.d.ts +21 -6
- package/dist/frontend/program.js +681 -83
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +43 -3
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/token-equivalence.d.ts +3 -0
- package/dist/frontend/token-equivalence.js +409 -0
- package/dist/frontend/token-equivalence.js.map +1 -0
- package/dist/frontend/token-equivalence.test.d.ts +1 -0
- package/dist/frontend/token-equivalence.test.js +67 -0
- package/dist/frontend/token-equivalence.test.js.map +1 -0
- package/dist/frontend/ts7/ast-node.d.ts +22 -0
- package/dist/frontend/ts7/ast-node.js +1048 -103
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +24 -0
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/ts7/ast-wire.d.ts +4 -3
- package/dist/frontend/ts7/ast-wire.js +34 -24
- package/dist/frontend/ts7/ast-wire.js.map +1 -1
- package/dist/frontend/ts7/ast-wire.test.js +23 -0
- package/dist/frontend/ts7/ast-wire.test.js.map +1 -1
- package/dist/frontend/ts7/checker-backend.d.ts +3 -4
- package/dist/frontend/ts7/checker-backend.js +2 -2
- package/dist/frontend/ts7/checker-backend.js.map +1 -1
- package/dist/frontend/ts7/checker-backend.test.js +5 -9
- package/dist/frontend/ts7/checker-backend.test.js.map +1 -1
- package/dist/frontend/ts7/checker.d.ts +4 -0
- package/dist/frontend/ts7/checker.js +7 -0
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/lib-diagnostics.d.ts +24 -0
- package/dist/frontend/ts7/lib-diagnostics.js +307 -0
- package/dist/frontend/ts7/lib-diagnostics.js.map +1 -0
- package/dist/frontend/ts7/lib-diagnostics.test.d.ts +1 -0
- package/dist/frontend/ts7/lib-diagnostics.test.js +199 -0
- package/dist/frontend/ts7/lib-diagnostics.test.js.map +1 -0
- package/dist/frontend/ts7/program-host.d.ts +7 -0
- package/dist/frontend/ts7/program-host.js +25 -2
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.d.ts +3 -0
- package/dist/frontend/ts7/semantic-model.js +5 -0
- package/dist/frontend/ts7/semantic-model.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.test.js +6 -1
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-types.d.ts +1 -1
- package/dist/frontend/ts7/semantic-types.js +1 -1
- package/dist/frontend/ts7/semantic-types.js.map +1 -1
- package/dist/frontend/ts7/session.d.ts +14 -1
- package/dist/frontend/ts7/session.js +22 -0
- package/dist/frontend/ts7/session.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +13 -1
- package/dist/frontend/type-mapper.js +229 -20
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.d.ts +0 -5
- package/dist/index.js +46 -4
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +5 -3
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/array-length-stability.d.ts +4 -0
- package/dist/ir/array-length-stability.js +19 -6
- package/dist/ir/array-length-stability.js.map +1 -1
- package/dist/ir/array-length-stability.test.js +24 -0
- package/dist/ir/array-length-stability.test.js.map +1 -1
- package/dist/ir/builtin-effects.d.ts +7 -0
- package/dist/ir/builtin-effects.js +60 -0
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +6 -4
- package/dist/ir/builtin-signatures.js +222 -13
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/callback-specialization.d.ts +2 -1
- package/dist/ir/callback-specialization.js +23 -18
- package/dist/ir/callback-specialization.js.map +1 -1
- package/dist/ir/char-unit-locals.d.ts +19 -0
- package/dist/ir/char-unit-locals.js +185 -0
- package/dist/ir/char-unit-locals.js.map +1 -0
- package/dist/ir/char-unit-locals.test.d.ts +1 -0
- package/dist/ir/char-unit-locals.test.js +94 -0
- package/dist/ir/char-unit-locals.test.js.map +1 -0
- package/dist/ir/final-fields.d.ts +2 -1
- package/dist/ir/final-fields.js +14 -16
- package/dist/ir/final-fields.js.map +1 -1
- package/dist/ir/function-references.d.ts +2 -0
- package/dist/ir/function-references.js +2 -0
- package/dist/ir/function-references.js.map +1 -1
- package/dist/ir/function-references.test.js +3 -0
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/initializer-bindings.d.ts +2 -1
- package/dist/ir/initializer-bindings.js +27 -20
- package/dist/ir/initializer-bindings.js.map +1 -1
- package/dist/ir/int32-arrays.d.ts +108 -0
- package/dist/ir/int32-arrays.js +831 -0
- package/dist/ir/int32-arrays.js.map +1 -0
- package/dist/ir/int32-slots.d.ts +24 -2
- package/dist/ir/int32-slots.js +266 -57
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +33 -0
- package/dist/ir/int32-slots.test.js.map +1 -1
- package/dist/ir/integer-loops.d.ts +3 -3
- package/dist/ir/integer-loops.js +28 -10
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +10 -0
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +5 -0
- package/dist/ir/integer-ranges.js +125 -12
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +30 -0
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/ir.d.ts +83 -10
- package/dist/ir/ir.js +77 -6
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +23 -2
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/js-ic.d.ts +4 -0
- package/dist/ir/js-ic.js +17 -1
- package/dist/ir/js-ic.js.map +1 -1
- package/dist/ir/js-ic.test.js +46 -0
- package/dist/ir/js-ic.test.js.map +1 -1
- package/dist/ir/node-index.d.ts +57 -0
- package/dist/ir/node-index.js +215 -0
- package/dist/ir/node-index.js.map +1 -0
- package/dist/ir/paired-while-loops.d.ts +25 -0
- package/dist/ir/paired-while-loops.js +335 -0
- package/dist/ir/paired-while-loops.js.map +1 -0
- package/dist/ir/paired-while-loops.test.d.ts +1 -0
- package/dist/ir/paired-while-loops.test.js +163 -0
- package/dist/ir/paired-while-loops.test.js.map +1 -0
- package/dist/ir/parameter-versions.d.ts +25 -0
- package/dist/ir/parameter-versions.js +300 -0
- package/dist/ir/parameter-versions.js.map +1 -0
- package/dist/ir/runtime-features.d.ts +34 -13
- package/dist/ir/runtime-features.js +177 -39
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/serialize.d.ts +12 -2
- package/dist/ir/serialize.js +16 -3
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.js +17 -0
- package/dist/ir/serialize.test.js.map +1 -1
- package/dist/ir/traverse.js +18 -6
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +167 -40
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/ir-policy.js +3 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/native/cache.d.ts +6 -1
- package/dist/native/cache.js +28 -5
- package/dist/native/cache.js.map +1 -1
- package/dist/native/cache.test.js +16 -2
- package/dist/native/cache.test.js.map +1 -1
- package/dist/native/cli.js +21 -1
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.js +8 -6
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/executable-cache.d.ts +1 -1
- package/dist/native/executable-cache.js +2 -2
- package/dist/native/executable-cache.js.map +1 -1
- package/dist/native/prepare.d.ts +4 -2
- package/dist/native/prepare.js +130 -32
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/prepare.test.js +96 -20
- package/dist/native/prepare.test.js.map +1 -1
- package/dist/native/sanitizer.test.js +2 -0
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/native/text-file.d.ts +13 -3
- package/dist/native/text-file.js +63 -9
- package/dist/native/text-file.js.map +1 -1
- package/dist/native/text-file.test.d.ts +1 -0
- package/dist/native/text-file.test.js +49 -0
- package/dist/native/text-file.test.js.map +1 -0
- package/dist/native/toolchain.js +4 -4
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +3 -3
- package/dist/native/toolchain.test.js.map +1 -1
- package/package.json +21 -21
- package/shims/chalk/v5.ts +688 -0
- package/shims/hono-node-server/v2.ts +645 -0
- package/shims/hot-shots/client.ts +1126 -0
- package/shims/hot-shots/v8-unix-dgram.ts +8 -0
- package/shims/hot-shots/v8.ts +8 -0
- package/surface-manifest.json +27 -7
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import type { TargetCpu } from "../target-cpu.js";
|
|
1
2
|
import { JsIcSites } from "../../ir/js-ic.js";
|
|
2
3
|
import { type ArraySearchKind } from "./array-search.js";
|
|
3
4
|
import type { IrBytesElem, IrExpr, IrFfiCallbackParam, IrFfiImport, IrFunction, IrGlobal, IrLocal, IrModule, IrRecordShape, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/ir.js";
|
|
4
5
|
import { type RuntimeFeatures } from "../../ir/runtime-features.js";
|
|
5
|
-
import { type DenseArrayLoop } from "./dense-array-loops.js";
|
|
6
|
-
import { findInitializedByteLoopBindings } from "./byte-windows.js";
|
|
7
6
|
import { matchBytesLoopVersion } from "./bytes-loop-versions.js";
|
|
8
|
-
import type { IntegerCountedForLoop } from "../../ir/integer-loops.js";
|
|
7
|
+
import type { IntegerCountedForLoop, IntegerPairedForLoop } from "../../ir/integer-loops.js";
|
|
9
8
|
import { type SplitSpan, type StoredSplitSnapshot } from "./split-loops.js";
|
|
9
|
+
import { type ChunkResult, EmitJournal } from "./emit-journal.js";
|
|
10
10
|
import { type IntegerRange, type IntegerRanges } from "../../ir/integer-ranges.js";
|
|
11
11
|
import { type Int32Slots } from "../../ir/int32-slots.js";
|
|
12
12
|
import { type FinalFields } from "../../ir/final-fields.js";
|
|
@@ -24,9 +24,11 @@ import { NullableRefFields, type NullableRefField } from "./nullable-fields.js";
|
|
|
24
24
|
import { InlineUnionFields } from "./inline-unions.js";
|
|
25
25
|
import { OptionalArrayReads, type LocalArrayRead } from "./local-array-reads.js";
|
|
26
26
|
import { CheckedNarrows } from "./checked-narrows.js";
|
|
27
|
+
import { type ArrayAccess } from "./dense-array-access.js";
|
|
27
28
|
import { type MapReadLifetimes } from "./map-read-lifetimes.js";
|
|
28
29
|
import { type MapEntryFusion } from "./map-entry-fusion.js";
|
|
29
30
|
import { type WalkBorrowHost } from "./walk-borrows.js";
|
|
31
|
+
import { IrNodeIndex } from "../../ir/node-index.js";
|
|
30
32
|
import { ReferenceEffects } from "./reference-effects.js";
|
|
31
33
|
import { ReferenceWrites, type Writes } from "./reference-writes.js";
|
|
32
34
|
import { LlvmDebugInfo } from "./debug-info.js";
|
|
@@ -65,9 +67,31 @@ export interface LlScopeEntry {
|
|
|
65
67
|
* environment, which skip the release call. */
|
|
66
68
|
lazy?: boolean;
|
|
67
69
|
}
|
|
70
|
+
/** Process primitives for forked emission workers. */
|
|
71
|
+
export interface ForkPrimitives {
|
|
72
|
+
/** 0 in the worker, the worker's pid in the parent, -1 on failure. */
|
|
73
|
+
fork(): number;
|
|
74
|
+
/** Ends the worker without running exit handlers. */
|
|
75
|
+
exit(code: number): void;
|
|
76
|
+
/** The worker's exit status, 128 plus a signal number, or -1. */
|
|
77
|
+
wait(pid: number): number;
|
|
78
|
+
}
|
|
68
79
|
export interface LlvmTargetOptions {
|
|
69
80
|
/** C ABI target; omitted direct emission uses the host ABI. */
|
|
70
81
|
targetTriple?: string;
|
|
82
|
+
/** Emit the function bodies in this many contiguous ranges, each by its
|
|
83
|
+
* own emitter, and merge them in function order (emit-journal.ts). The
|
|
84
|
+
* output is the same as one emitter's. Debug builds (`debugSources`)
|
|
85
|
+
* emit in one emitter. */
|
|
86
|
+
functionChunks?: number;
|
|
87
|
+
/** Emit the function bodies of a large module on this many forked worker
|
|
88
|
+
* processes at a time (emit-module.ts), forked with `forkPrimitives`. The
|
|
89
|
+
* output is the same as one emitter's. Debug builds (`debugSources`)
|
|
90
|
+
* emit in one emitter. */
|
|
91
|
+
functionWorkers?: number;
|
|
92
|
+
/** The host's process primitives, where it can fork (the native
|
|
93
|
+
* compiler's). */
|
|
94
|
+
forkPrimitives?: ForkPrimitives | undefined;
|
|
71
95
|
/** Exact frontend sources for dev-build locations and variable metadata. */
|
|
72
96
|
debugSources?: ReadonlyMap<string, string>;
|
|
73
97
|
/** Pointer width of the target C ABI. Native targets are 64-bit today. */
|
|
@@ -104,6 +128,10 @@ export interface LlvmTargetOptions {
|
|
|
104
128
|
* store the instance's address over 8 in 32 bits (classes.ts
|
|
105
129
|
* compactRefLoadLines). Elsewhere they keep 8-byte pointers. */
|
|
106
130
|
lowRegion?: boolean;
|
|
131
|
+
/** The x86-64 level the program's code may require (`--target-cpu`):
|
|
132
|
+
* every emitted function carries it as its `target-cpu`. Unset, code
|
|
133
|
+
* runs on any x86-64 CPU. */
|
|
134
|
+
targetCpu?: TargetCpu;
|
|
107
135
|
}
|
|
108
136
|
/** LlvmTargetOptions.lowRegion for an executable: Linux targets without
|
|
109
137
|
* sanitizers, whose address space below 32 GiB is free (ASan keeps its
|
|
@@ -112,6 +140,9 @@ export interface LlvmTargetOptions {
|
|
|
112
140
|
* `wasi`). */
|
|
113
141
|
export declare function lowRegionTarget(platform: string, sanitize: boolean): boolean;
|
|
114
142
|
export declare function emitLlvmModule(input: IrModule, options?: LlvmTargetOptions): string;
|
|
143
|
+
/** emitLlvmModule's text as parts that concatenate to it, without the copy
|
|
144
|
+
* that joining them makes: a large program's text is 150 MB. */
|
|
145
|
+
export declare function emitLlvmModuleParts(input: IrModule, options?: LlvmTargetOptions): string[];
|
|
115
146
|
/** Keep large translation units below the host's single-string limit. */
|
|
116
147
|
export declare function emitLlvmModuleSource(input: IrModule, options?: LlvmTargetOptions): string | readonly string[];
|
|
117
148
|
export declare function llStrBytes(text: string): string;
|
|
@@ -141,6 +172,8 @@ export declare function boxSlotCount(fn: IrFunction): number;
|
|
|
141
172
|
export declare const MAX_BYTES_LOOP_VERSION_DEPTH = 3;
|
|
142
173
|
export declare class LlEmitter {
|
|
143
174
|
readonly mod: IrModule;
|
|
175
|
+
/** Per-feature state (emitter-state.ts), indexed by each key's slot. */
|
|
176
|
+
readonly moduleStates: unknown[];
|
|
144
177
|
localArrayReads: Map<string, LocalArrayRead>;
|
|
145
178
|
loopArrayBorrows: ReadonlySet<IrStmt>;
|
|
146
179
|
scalarStringSlices: Map<string, {
|
|
@@ -223,9 +256,11 @@ export declare class LlEmitter {
|
|
|
223
256
|
* 32-bit references to compact class instances (LlClassMeta.compressed):
|
|
224
257
|
* loadField/loadRef decode them and storeField/storeRef encode them. */
|
|
225
258
|
readonly compressedFieldPtrs: Set<string>;
|
|
226
|
-
/**
|
|
227
|
-
*
|
|
228
|
-
|
|
259
|
+
/** Compact class instances live in the program-lifetime region below
|
|
260
|
+
* 32 GiB (LlvmTargetOptions.lowRegion, and the program has compact
|
|
261
|
+
* classes): main reserves it before compiled code runs (scr_plr_init), and
|
|
262
|
+
* fields and arrays of compactRefType hold 32-bit references. */
|
|
263
|
+
compactRegion: boolean;
|
|
229
264
|
/** Native class fields with different property names cannot occupy the
|
|
230
265
|
* same slot of one object. Inherited views of the same property share a
|
|
231
266
|
* tag. Array storage has its own disjoint categories; untagged runtime
|
|
@@ -235,9 +270,64 @@ export declare class LlEmitter {
|
|
|
235
270
|
/** The alias tag of a runtime word that emitted code reads and writes
|
|
236
271
|
* outside every field (the lifetime-region count, owner and cursors). */
|
|
237
272
|
memoryAliasAttachment(category: string): string;
|
|
273
|
+
/** The current function's int32 array allocations: the array literals
|
|
274
|
+
* its int32 arrays are written with. They construct SCR_ELEM_I32 arrays. */
|
|
275
|
+
int32Allocations: Set<IrExpr>;
|
|
276
|
+
/** The fill temporaries (`new Array(n).fill(v)`) of those allocations:
|
|
277
|
+
* the same arrays, so int32 too. */
|
|
278
|
+
int32ArrayTemps: Set<string>;
|
|
279
|
+
/** The same for the current function's int32 arrays with checked stores,
|
|
280
|
+
* which are only allocated by fills (ir/int32-arrays.ts
|
|
281
|
+
* checkableInt32Allocations): their temporaries' literals, with the fill's
|
|
282
|
+
* length (a literal constructs SCR_ELEM_I32 storage when that length is at
|
|
283
|
+
* least CHECKED_INT32_MIN_LENGTH, SCR_ELEM_F64 otherwise), and their
|
|
284
|
+
* temporaries. */
|
|
285
|
+
checkedAllocations: Map<IrExpr, IrExpr>;
|
|
286
|
+
checkedArrayTemps: Set<string>;
|
|
287
|
+
/** The fill calls (`.fill(v)`) of those allocations: a value that is not
|
|
288
|
+
* an int32 widens the new array first. */
|
|
289
|
+
checkedFills: Set<IrExpr>;
|
|
290
|
+
/** Collect the int32 allocations of `fn`, about to be emitted. */
|
|
291
|
+
findInt32Allocations(fn: IrFunction): void;
|
|
292
|
+
/** Whether `arr` reads one of the int32 arrays (ir/int32-arrays.ts, kept
|
|
293
|
+
* by the int32 slot analysis): a local or parameter of the current
|
|
294
|
+
* function, or a module global. */
|
|
295
|
+
int32Array(arr: IrExpr): boolean;
|
|
296
|
+
/** Whether `arr` is one of the current function's int32 arrays with
|
|
297
|
+
* checked stores: int32 slots until a store widens it to doubles. Every
|
|
298
|
+
* access tests its kind (emitByElementKind), except in the fast copy of
|
|
299
|
+
* an int32 kind loop, which reads and writes it as an int32 array. */
|
|
300
|
+
checkedInt32Array(arr: IrExpr): boolean;
|
|
301
|
+
/** Whether the local `localId` holds one of the current function's int32
|
|
302
|
+
* arrays with checked stores. */
|
|
303
|
+
checkedInt32Local(localId: string): boolean;
|
|
304
|
+
/** Whether `arr` is an int32 array with checked stores that the fast copy
|
|
305
|
+
* of the int32 kind loop being emitted holds as an int32 array. */
|
|
306
|
+
int32KindArray(arr: IrExpr): boolean;
|
|
307
|
+
/** Before a store of `value` (of `expr`) into `arr`, in the fast copy of
|
|
308
|
+
* an int32 kind loop: continue when it is an int32 that is not -0, and
|
|
309
|
+
* otherwise leave for the statement's resume point, where it re-executes
|
|
310
|
+
* with kind tests. Returns the value as an i32 when it is at hand as an
|
|
311
|
+
* integer, or null when the store converts the double itself. */
|
|
312
|
+
emitInt32KindStoreCheck(arr: IrExpr, value: LlValue, expr: IrExpr): string | null;
|
|
313
|
+
/** Emit an access to the checked int32 array `array` once per element
|
|
314
|
+
* kind: `arm("i32", widened)` while it holds int32 slots and
|
|
315
|
+
* `arm("f64", widened)` after it widened, joined after both. `widened` is
|
|
316
|
+
* the label of the double arm, where an int32 arm's store of a value that
|
|
317
|
+
* is not an int32 continues after widening the array. Returns the phi of
|
|
318
|
+
* the arms' results (of LLVM type `ty`), or null when `ty` is null. */
|
|
319
|
+
emitByElementKind(array: string, ty: string | null, arm: (acc: "i32" | "f64", widened: string) => string | null): string | null;
|
|
320
|
+
/** Before storing the double `value` (of `expr`) into an int32 arm
|
|
321
|
+
* (emitByElementKind) of the checked int32 array `array`: continue in this
|
|
322
|
+
* arm when it is an int32 that is not -0, or widen the array and continue
|
|
323
|
+
* at `widened`. A value proven an int32 needs no test. */
|
|
324
|
+
emitCheckedInt32Store(array: string, value: string, expr: IrExpr, widened: string): void;
|
|
325
|
+
/** The access an element operation on `arr` (of element type `elem`)
|
|
326
|
+
* takes: int32 arrays read and write their 4-byte slots. */
|
|
327
|
+
arrayAccess(arr: IrExpr, elem: IrType): ArrayAccess;
|
|
238
328
|
/** Whether an element access at `index` of `arr` lies in the hole-free
|
|
239
|
-
* prefix:
|
|
240
|
-
*
|
|
329
|
+
* prefix: a counter of a dense array loop's fast copy indexing one of the
|
|
330
|
+
* arrays its entry test covered. */
|
|
241
331
|
provenDenseIndex(arr: IrExpr, index: IrExpr): boolean;
|
|
242
332
|
fieldAliasAttachment(ptr: string): string;
|
|
243
333
|
fieldAliasMetadata(): string[];
|
|
@@ -282,6 +372,7 @@ export declare class LlEmitter {
|
|
|
282
372
|
readonly emitLibraryIdentity: boolean;
|
|
283
373
|
readonly runtimeAbiMarker: boolean;
|
|
284
374
|
readonly detachedExit: boolean;
|
|
375
|
+
readonly targetCpu: TargetCpu | undefined;
|
|
285
376
|
readonly wasmBoundsChecks: boolean;
|
|
286
377
|
/** Interned string literals: UTF-8 text → { symbol, byte length } —
|
|
287
378
|
* first-use order, the runtime ABI’s determinism discipline. */
|
|
@@ -341,6 +432,10 @@ export declare class LlEmitter {
|
|
|
341
432
|
}>;
|
|
342
433
|
/** Interned ScrMapOps descriptors (scr_map.h): initializer → symbol. */
|
|
343
434
|
readonly mapOpsConsts: Map<string, string>;
|
|
435
|
+
/** Method-id slots of checked-dynamic method calls
|
|
436
|
+
* (scr_dyn_invoke_prepared_id): method name → symbol of an i32 the
|
|
437
|
+
* runtime fills with the name's id on the first call. */
|
|
438
|
+
readonly methodIdSlots: Map<string, string>;
|
|
344
439
|
/** Type-directed walker functions (JSON serializers, the indent
|
|
345
440
|
* rewriter, union ToString/join) — interned per typeKey/unionId, defs
|
|
346
441
|
* flushed with the shape helpers. */
|
|
@@ -389,6 +484,9 @@ export declare class LlEmitter {
|
|
|
389
484
|
readonly callLifetimes: CallLifetimes;
|
|
390
485
|
readonly constantCallbacks: Map<string, Map<string, string>>;
|
|
391
486
|
currentConstantCallbacks: ReadonlyMap<string, string>;
|
|
487
|
+
/** The current function's running maximum and minimum updates, whose
|
|
488
|
+
* branches are weighted as rarely taken (running-extrema.ts). */
|
|
489
|
+
runningExtrema: ReadonlySet<IrStmt>;
|
|
392
490
|
/** Callback bindings whose closures an enclosing callback loop version
|
|
393
491
|
* proved to hold their known function: calls take the direct entry with
|
|
394
492
|
* no fallback (emitCallbackVersionedLoop). */
|
|
@@ -437,6 +535,9 @@ export declare class LlEmitter {
|
|
|
437
535
|
/** Module constants that keep one value once initialized
|
|
438
536
|
* (immutability.ts stableGlobals). */
|
|
439
537
|
stableGlobals: ReadonlySet<string>;
|
|
538
|
+
/** Every function body's nodes in walk order (ir/node-index.ts), for the
|
|
539
|
+
* constructor's analyses. */
|
|
540
|
+
readonly nodeIndex: IrNodeIndex;
|
|
440
541
|
private readonly tdzGlobals;
|
|
441
542
|
readonly constantNumericTables: ReadonlyMap<string, ConstantNumericTable>;
|
|
442
543
|
/** Constant-key reads on checked-dynamic objects, each with its own
|
|
@@ -519,6 +620,9 @@ export declare class LlEmitter {
|
|
|
519
620
|
readonly liveDynRefAdapters: Map<string, LlStreamTypedRefAdapter>;
|
|
520
621
|
/** See moduleUsesDynBuiltinStream. */
|
|
521
622
|
get usesDynBuiltinStream(): boolean;
|
|
623
|
+
/** A checked-dynamic for-await may hold a native stream: the program
|
|
624
|
+
* links the stream unit (and the dyn-async one the loop needs). */
|
|
625
|
+
get dynForAwaitStreams(): boolean;
|
|
522
626
|
/** Runtime-arm dispatchers for live union values. */
|
|
523
627
|
readonly liveDynUnionRefAdapters: Map<string, string>;
|
|
524
628
|
readonly dynPromiseAdapters: Map<string, string>;
|
|
@@ -640,14 +744,6 @@ export declare class LlEmitter {
|
|
|
640
744
|
* immortal from construction (classes.ts programLifetimeClass). */
|
|
641
745
|
readonly programLifetime: ReadonlySet<string>;
|
|
642
746
|
numericLocals: Map<string, IrLocal>;
|
|
643
|
-
/** Local arrays of the current function that no other binding can hold
|
|
644
|
-
* (ir/array-length-stability.ts). */
|
|
645
|
-
unaliasedArrays: ReadonlySet<string>;
|
|
646
|
-
/** Dense array loops (dense-array-loops.ts) run in this function. */
|
|
647
|
-
denseLoopsEnabled: boolean;
|
|
648
|
-
denseLoopEntries: ReturnType<typeof findInitializedByteLoopBindings>;
|
|
649
|
-
/** The fast copy of a dense array loop being emitted. */
|
|
650
|
-
denseLoop: DenseArrayLoop | null;
|
|
651
747
|
captureIds: Set<string>;
|
|
652
748
|
/** Active induction bindings retain their width independently of size_t. */
|
|
653
749
|
integerLoopBindings: Map<string, {
|
|
@@ -672,7 +768,6 @@ export declare class LlEmitter {
|
|
|
672
768
|
* async or generator body resumes with its locals in its frame, which
|
|
673
769
|
* an entry alloca is not part of. */
|
|
674
770
|
integerTempsEnabled: boolean;
|
|
675
|
-
countedLoopsEnabled: boolean;
|
|
676
771
|
/** Speculative integer loops (speculative-integers.ts) run in this function. */
|
|
677
772
|
speculativeLoopsEnabled: boolean;
|
|
678
773
|
/** The fast copy of a speculative integer loop being emitted: its
|
|
@@ -699,6 +794,18 @@ export declare class LlEmitter {
|
|
|
699
794
|
* (`enterLoopHeader`): records the ordinary copy's header, or sends the
|
|
700
795
|
* third copy's header there. */
|
|
701
796
|
speculationHeader: ((header: string) => void) | null;
|
|
797
|
+
/** A copy of an int32 kind loop (int32-kind-loops.ts) being emitted: the
|
|
798
|
+
* int32 arrays with checked stores it reads and writes as int32 arrays
|
|
799
|
+
* (the fast copy) or as double arrays (an ordinary copy entered only
|
|
800
|
+
* after they widened), as `function\0local` keys, and where each of the
|
|
801
|
+
* fast copy's writes resumes in the third copy. */
|
|
802
|
+
int32Kinds: {
|
|
803
|
+
int32: Set<string>;
|
|
804
|
+
wide: Set<string>;
|
|
805
|
+
resume: Map<IrStmt, string>;
|
|
806
|
+
} | null;
|
|
807
|
+
/** The resume label of the fast-copy write being emitted. */
|
|
808
|
+
int32KindResume: string | null;
|
|
702
809
|
/** The function being emitted, for speculative globals. */
|
|
703
810
|
speculativeFunction: string;
|
|
704
811
|
/** Every function that writes each number global (computed on demand). */
|
|
@@ -716,20 +823,14 @@ export declare class LlEmitter {
|
|
|
716
823
|
int32Elements: ((arr: IrExpr) => boolean) | null;
|
|
717
824
|
/** Sums whose result only feeds 32-bit conversions (wrapping-sums.ts). */
|
|
718
825
|
wrappingSums: Set<IrExpr>;
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
* function: off in debug and suspending functions and inside a copy. */
|
|
723
|
-
bytesLoopVersionsEnabled: boolean;
|
|
724
|
-
/** Loops being versioned around the statement being emitted: a loop is
|
|
725
|
-
* never versioned inside its own copies, and versions nest boundedly. */
|
|
726
|
-
readonly bytesLoopVersioning: Set<IrStmt>;
|
|
727
|
-
bytesLoopEntries: ReturnType<typeof findInitializedByteLoopBindings> | null;
|
|
728
|
-
bytesLoopFunction: IrFunction | null;
|
|
729
|
-
/** Counted loops whose integer-form safety test an enclosing version
|
|
730
|
-
* guard already passed. */
|
|
731
|
-
readonly provenCountedGuards: Set<IrStmt>;
|
|
826
|
+
/** Number locals of the current function that hold exact integers or NaN
|
|
827
|
+
* (findIntegerOrNaNLocals in wrapping-sums.ts). */
|
|
828
|
+
integerOrNaNLocals: ReadonlyMap<string, IntegerRange>;
|
|
732
829
|
bytesBounds: ReadonlySet<IrExpr | IrStmt>;
|
|
830
|
+
/** The charCodeAt reads standing for charAt reads the emitter rewrote
|
|
831
|
+
* (one-unit tests and switches, charAtUnitRead), with the charAt each
|
|
832
|
+
* stands for: a loop version's proof for the charAt covers its read. */
|
|
833
|
+
readonly charAtUnitReads: Map<IrExpr, IrExpr>;
|
|
733
834
|
/** Worker programs: typed-array accesses whose views an enclosing version
|
|
734
835
|
* guard proved thread-owned. */
|
|
735
836
|
bytesOwned: ReadonlySet<IrExpr | IrStmt>;
|
|
@@ -808,9 +909,17 @@ export declare class LlEmitter {
|
|
|
808
909
|
readonly chainSlots: Map<string, LlValue>;
|
|
809
910
|
logArgSlots: number;
|
|
810
911
|
readonly stackTraces: boolean;
|
|
912
|
+
/** The options this emitter was built with (chunk emitters reuse them). */
|
|
913
|
+
readonly targetOptions: LlvmTargetOptions;
|
|
914
|
+
/** Records the module-level effects of emitting a range of functions,
|
|
915
|
+
* which the emitter that merges the range replays (emit-journal.ts). Null
|
|
916
|
+
* when this emitter emits the whole module itself. */
|
|
917
|
+
journal: EmitJournal | null;
|
|
918
|
+
/** The emitter's hosts forward to `journal` (journal set, or workers). */
|
|
919
|
+
private readonly journaled;
|
|
811
920
|
/** Stack-trace mode: functions no capture can include (no frame push). */
|
|
812
921
|
readonly unframedFunctions: ReadonlySet<string>;
|
|
813
|
-
constructor(mod: IrModule, options: LlvmTargetOptions);
|
|
922
|
+
constructor(mod: IrModule, options: LlvmTargetOptions, journal?: EmitJournal | null);
|
|
814
923
|
/** The borrowed parameters of a hierarchy's vtable slot (empty: owned). */
|
|
815
924
|
virtualSlotBorrowed(rootName: string, slotIndex: number): ReadonlySet<number>;
|
|
816
925
|
/** Optimized emission: no debug-info (dev) posture. */
|
|
@@ -966,6 +1075,8 @@ export declare class LlEmitter {
|
|
|
966
1075
|
/** Interned NUL-terminated C-string constant (the scr_jb_puts /
|
|
967
1076
|
* stringify-indent currency) — `@`-ref, first-use order. */
|
|
968
1077
|
cstr(text: string): string;
|
|
1078
|
+
/** The method-id slot for a constant method name (methodIdSlots). */
|
|
1079
|
+
methodIdSlot(name: string): string;
|
|
969
1080
|
needBadTag(): void;
|
|
970
1081
|
/** The ScrMapOps descriptor holding these operands (ShapeHost.mapOps). */
|
|
971
1082
|
mapOps(operands: readonly string[]): string;
|
|
@@ -1147,6 +1258,10 @@ export declare class LlEmitter {
|
|
|
1147
1258
|
private truthyOf;
|
|
1148
1259
|
/** A union value's tag (i32): the box's tag word, or the NULL test of a
|
|
1149
1260
|
* nullable union's pointer. */
|
|
1261
|
+
/** A box's tag and payload words are written only where the box is
|
|
1262
|
+
* built (runtime constructors and untagged stack stores), so their loads
|
|
1263
|
+
* carry their own alias tags: element and field stores cannot change
|
|
1264
|
+
* them, and loops keep them hoisted. */
|
|
1150
1265
|
unionTag(uName: string, unionId: string): string;
|
|
1151
1266
|
/** Guard for helpers that build or read a union's `%ScrUnion` box
|
|
1152
1267
|
* directly (library-shaped unions with fixed arms): a nullable union
|
|
@@ -1184,6 +1299,12 @@ export declare class LlEmitter {
|
|
|
1184
1299
|
inline: boolean;
|
|
1185
1300
|
compressed: boolean;
|
|
1186
1301
|
};
|
|
1302
|
+
/** Whether values of `t` are NULL or a compact class instance: `C`,
|
|
1303
|
+
* `C | undefined` or `C | null` for a compact class `C`. `C | null |
|
|
1304
|
+
* undefined` is not: its null is a sentinel outside the region. */
|
|
1305
|
+
compactRefType(t: IrType, isCompact?: (className: string) => boolean): boolean;
|
|
1306
|
+
/** Whether arrays of `elem` hold 32-bit references (SCR_ELEM_CREF). */
|
|
1307
|
+
compactArrayElem(elem: IrType): boolean;
|
|
1187
1308
|
/** Loads the reference a field pointer addresses: a pointer, or the
|
|
1188
1309
|
* decoded 32-bit reference of a compressed field (compressedFieldPtrs).
|
|
1189
1310
|
* `tagged`: the load carries the field's alias tags. */
|
|
@@ -1244,8 +1365,8 @@ export declare class LlEmitter {
|
|
|
1244
1365
|
/** A binding's storage: a module global, a plain local slot, or a boxed
|
|
1245
1366
|
* local (the slot holds the capture BOX; access goes through it). */
|
|
1246
1367
|
matchBytesLoopVersion(s: IrStmt & {
|
|
1247
|
-
kind: "for";
|
|
1248
|
-
}, counted: IntegerCountedForLoop | null): ReturnType<typeof matchBytesLoopVersion>;
|
|
1368
|
+
kind: "for" | "while";
|
|
1369
|
+
}, counted: IntegerCountedForLoop | null, paired?: IntegerPairedForLoop | null): ReturnType<typeof matchBytesLoopVersion>;
|
|
1249
1370
|
/** The alias tag of a whole-slot load of a binding (module globals only). */
|
|
1250
1371
|
slotAlias(id: string): string;
|
|
1251
1372
|
binding(id: string): {
|
|
@@ -1343,6 +1464,26 @@ export declare class LlEmitter {
|
|
|
1343
1464
|
* parameter, at the top of the body. */
|
|
1344
1465
|
doubleCopies(fn: IrFunction): string[];
|
|
1345
1466
|
emitFunction(fn: IrFunction): string;
|
|
1467
|
+
/** What this range emitter (chunkEmitter) hands the merging emitter, as
|
|
1468
|
+
* plain data a worker process can write: its journal and the sets and
|
|
1469
|
+
* flags its functions set. */
|
|
1470
|
+
chunkResult(): ChunkResult;
|
|
1471
|
+
/** Merges a range emitter's result (chunkResult) into this emitter, in
|
|
1472
|
+
* the range's order, and answers the rename of the range's text to this
|
|
1473
|
+
* emitter's numbered helpers. Ranges merge in function order. */
|
|
1474
|
+
mergeChunk(chunk: ChunkResult): (text: string) => string;
|
|
1475
|
+
/** Adds a content-named constant a chunk interned. Its symbol is this
|
|
1476
|
+
* emitter's own: a digest collision retries in first-use order, which a
|
|
1477
|
+
* chunk alone does not know. */
|
|
1478
|
+
private addContentEntry;
|
|
1479
|
+
/** Applies a chunk's table entry (EmitJournal.entry) at its place in the
|
|
1480
|
+
* chunk's order: a key this emitter lacks is added, numbered after its
|
|
1481
|
+
* own entries where the table numbers them, and the chunk's name for it
|
|
1482
|
+
* is renamed to this emitter's. */
|
|
1483
|
+
applyJournalEntry(table: string, key: string, value: unknown, names: Map<string, string>, tags: Map<number, number>): void;
|
|
1484
|
+
/** An emitter for a range of this module's functions: the same facts,
|
|
1485
|
+
* empty module-level tables, and a journal of what the range adds. */
|
|
1486
|
+
chunkEmitter(): LlEmitter;
|
|
1346
1487
|
/** The double-ABI entry of a function with an i32 entry: every caller
|
|
1347
1488
|
* that is not a direct call (closures, dispatch, adapters, the runtime)
|
|
1348
1489
|
* enters here. A pending exception passes through to its caller. */
|
|
@@ -1583,6 +1724,11 @@ export declare class LlEmitter {
|
|
|
1583
1724
|
* "compact": classes.ts COMPACT_PUBLISHED); leaves the builder in the cold
|
|
1584
1725
|
* block and answers the continuation label. */
|
|
1585
1726
|
private emitPublishedTest;
|
|
1727
|
+
/** Branches on "the array `arr` is frozen" (SCR_ARR_FROZEN in its storage
|
|
1728
|
+
* flags, scr_array.h), or published too when `published`; like
|
|
1729
|
+
* emitPublishedTest, leaves the builder in the cold block and answers the
|
|
1730
|
+
* continuation label. */
|
|
1731
|
+
private emitFrozenArrayTest;
|
|
1586
1732
|
private publishedNamesSym;
|
|
1587
1733
|
/** The class-name table the hierarchy field guards index by preorder. */
|
|
1588
1734
|
publishedClassNamesDefs(): string[];
|
|
@@ -1597,7 +1743,7 @@ export declare class LlEmitter {
|
|
|
1597
1743
|
emitPublishedFieldGuard(obj: string, className: string | null, field: string): void;
|
|
1598
1744
|
/** The frozen-array guard (scr_throw_published_array's ops): `index` and
|
|
1599
1745
|
* `count` are doubles (the written index, the argument count). */
|
|
1600
|
-
emitPublishedArrayGuard(arr: string, arrType: IrType, op: number, index?: string, count?: string): void;
|
|
1746
|
+
emitPublishedArrayGuard(arr: string, arrType: IrType, op: number, index?: string, count?: string, third?: string | null): void;
|
|
1601
1747
|
/** The published Map/Set guard: "Cannot modify a published Map/Set". */
|
|
1602
1748
|
emitPublishedCollectionGuard(m: string, t: IrType): void;
|
|
1603
1749
|
emitSerializationExpr(e: ExprOf<"jsonStringify" | "dynCheck">): LlValue;
|
|
@@ -1673,6 +1819,9 @@ export declare class LlEmitter {
|
|
|
1673
1819
|
jsIcSite(): string;
|
|
1674
1820
|
/** A fresh read-site cache for one constant-key dyn read. */
|
|
1675
1821
|
dynReadIcSite(): string;
|
|
1822
|
+
/** A fresh speculative loop site: the global that counts its bailing
|
|
1823
|
+
* entries in a row. */
|
|
1824
|
+
speculativeLoopSite(): string;
|
|
1676
1825
|
dynKind(d: string): string;
|
|
1677
1826
|
raceAdapterFor(from: IrType, to: IrType): string;
|
|
1678
1827
|
genResultThunkFor(genT: IrType & {
|
|
@@ -1712,7 +1861,7 @@ export declare class LlEmitter {
|
|
|
1712
1861
|
streamDataAdapter(cbT: IrType & {
|
|
1713
1862
|
kind: "func";
|
|
1714
1863
|
}): string;
|
|
1715
|
-
streamDoneFnFor(kind: "w" | "f" | "d" | "t" | "l", doneT: IrType & {
|
|
1864
|
+
streamDoneFnFor(kind: "w" | "f" | "d" | "t" | "l" | "c", doneT: IrType & {
|
|
1716
1865
|
kind: "func";
|
|
1717
1866
|
}): string;
|
|
1718
1867
|
fsRenameThunkFor(cbT: IrType & {
|
|
@@ -1727,10 +1876,10 @@ export declare class LlEmitter {
|
|
|
1727
1876
|
zlibBytesThunkFor(cbT: IrType & {
|
|
1728
1877
|
kind: "func";
|
|
1729
1878
|
}): string;
|
|
1730
|
-
streamCbThunkFor(kind: "r" | "w" | "f" | "d" | "t" | "l" | "e", cbT: IrType): string;
|
|
1879
|
+
streamCbThunkFor(kind: "r" | "w" | "f" | "d" | "t" | "l" | "e" | "c" | "v", cbT: IrType): string;
|
|
1731
1880
|
resolveThunkFor(inner: IrType): string;
|
|
1732
1881
|
tagInSet(uName: string, unionId: string, tags: number[]): string;
|
|
1733
|
-
arrPush(arr: string, acc:
|
|
1882
|
+
arrPush(arr: string, acc: ArrayAccess, value: string, element: IrType | null): string;
|
|
1734
1883
|
emitArrayCopyLoop(dst: string, src: string, acc: "f64" | "bool" | "ref"): void;
|
|
1735
1884
|
emitStrIntrinsic(e: IrExpr & {
|
|
1736
1885
|
kind: "strIntrinsic";
|