@scriptc/compiler 0.2.7 → 0.2.9
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 +3 -0
- package/dist/backend/cycle-analysis.js +50 -17
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +138 -14
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/cycle-mutability.d.ts +31 -6
- package/dist/backend/cycle-mutability.js +120 -18
- package/dist/backend/cycle-mutability.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +16 -3
- package/dist/backend/llvm/alloc.js +78 -23
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/alloc.test.js +5 -5
- package/dist/backend/llvm/alloc.test.js.map +1 -1
- package/dist/backend/llvm/blocks.d.ts +9 -0
- package/dist/backend/llvm/blocks.js +9 -0
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/borrowed-receivers.d.ts +7 -0
- package/dist/backend/llvm/borrowed-receivers.js +39 -0
- package/dist/backend/llvm/borrowed-receivers.js.map +1 -1
- package/dist/backend/llvm/byte-numbers.js +2 -3
- package/dist/backend/llvm/byte-numbers.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.d.ts +4 -1
- package/dist/backend/llvm/call-lifetimes.js +14 -3
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +8 -3
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/checked-narrows.d.ts +24 -0
- package/dist/backend/llvm/checked-narrows.js +108 -0
- package/dist/backend/llvm/checked-narrows.js.map +1 -0
- package/dist/backend/llvm/checked-narrows.test.d.ts +1 -0
- package/dist/backend/llvm/checked-narrows.test.js +208 -0
- package/dist/backend/llvm/checked-narrows.test.js.map +1 -0
- package/dist/backend/llvm/classes.d.ts +13 -1
- package/dist/backend/llvm/classes.js +32 -23
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +32 -3
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +17 -0
- package/dist/backend/llvm/common.js +28 -0
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/debug-info.d.ts +6 -2
- package/dist/backend/llvm/debug-info.js +11 -1
- package/dist/backend/llvm/debug-info.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.js +1 -1
- package/dist/backend/llvm/dense-array-access.test.js +89 -0
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +8 -4
- package/dist/backend/llvm/dyn.js +58 -31
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +227 -12
- package/dist/backend/llvm/emitter.js +1492 -169
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +54 -1
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +4 -4
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +1 -1
- package/dist/backend/llvm/expr-bytes.js +116 -32
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.js +29 -21
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +5 -0
- package/dist/backend/llvm/expr-calls.js +55 -10
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +7 -1
- package/dist/backend/llvm/expr-containers.js +231 -28
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +2 -0
- package/dist/backend/llvm/expr-control.js +70 -14
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +75 -21
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-island.js +3 -8
- package/dist/backend/llvm/expr-island.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +41 -12
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +50 -2
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +28 -14
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.d.ts +3 -0
- package/dist/backend/llvm/expr-stream-bridges.js +114 -42
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.js +6 -3
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/layouts.d.ts +2 -1
- package/dist/backend/llvm/layouts.js +2 -2
- package/dist/backend/llvm/layouts.js.map +1 -1
- package/dist/backend/llvm/lib-abi.js +10 -0
- package/dist/backend/llvm/lib-abi.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +25 -13
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +8 -8
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +2 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.d.ts +17 -6
- package/dist/backend/llvm/local-array-reads.js +223 -51
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +7 -3
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.js +10 -6
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +3 -2
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.d.ts +18 -0
- package/dist/backend/llvm/map-number-lookup.js +62 -0
- package/dist/backend/llvm/map-number-lookup.js.map +1 -0
- package/dist/backend/llvm/map-read-lifetimes.d.ts +6 -0
- package/dist/backend/llvm/map-read-lifetimes.js +24 -3
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +38 -19
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.d.ts +68 -0
- package/dist/backend/llvm/nullable-unions.js +132 -0
- package/dist/backend/llvm/nullable-unions.js.map +1 -0
- package/dist/backend/llvm/publish.d.ts +58 -0
- package/dist/backend/llvm/publish.js +286 -0
- package/dist/backend/llvm/publish.js.map +1 -0
- package/dist/backend/llvm/rebound-parameters.d.ts +12 -0
- package/dist/backend/llvm/rebound-parameters.js +72 -0
- package/dist/backend/llvm/rebound-parameters.js.map +1 -0
- package/dist/backend/llvm/rebound-parameters.test.d.ts +1 -0
- package/dist/backend/llvm/rebound-parameters.test.js +67 -0
- package/dist/backend/llvm/rebound-parameters.test.js.map +1 -0
- package/dist/backend/llvm/reference-effects.d.ts +18 -2
- package/dist/backend/llvm/reference-effects.js +140 -17
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-effects.test.js +52 -1
- package/dist/backend/llvm/reference-effects.test.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +58 -19
- package/dist/backend/llvm/shapes.js +171 -62
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +36 -11
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/stack-unions.test.js +5 -2
- package/dist/backend/llvm/stack-unions.test.js.map +1 -1
- package/dist/backend/llvm/string-construction.d.ts +10 -0
- package/dist/backend/llvm/string-construction.js +42 -0
- package/dist/backend/llvm/string-construction.js.map +1 -1
- package/dist/backend/llvm/string-key-hash.d.ts +9 -2
- package/dist/backend/llvm/string-key-hash.js +20 -3
- package/dist/backend/llvm/string-key-hash.js.map +1 -1
- package/dist/backend/llvm/string-key-hash.test.js +14 -3
- package/dist/backend/llvm/string-key-hash.test.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +24 -11
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-reads.d.ts +7 -0
- package/dist/backend/llvm/string-reads.js +79 -0
- package/dist/backend/llvm/string-reads.js.map +1 -0
- package/dist/backend/llvm/string-slices.js +1 -1
- package/dist/backend/llvm/switch-dispatch.test.js +1 -1
- package/dist/backend/llvm/switch-dispatch.test.js.map +1 -1
- package/dist/backend/llvm/test-boxed-unions.d.ts +5 -0
- package/dist/backend/llvm/test-boxed-unions.js +13 -0
- package/dist/backend/llvm/test-boxed-unions.js.map +1 -0
- package/dist/backend/llvm/trunc.d.ts +8 -0
- package/dist/backend/llvm/trunc.js +28 -0
- package/dist/backend/llvm/trunc.js.map +1 -0
- package/dist/backend/llvm/union-repr.d.ts +15 -0
- package/dist/backend/llvm/union-repr.js +89 -0
- package/dist/backend/llvm/union-repr.js.map +1 -0
- package/dist/backend/llvm/virtual-borrows.d.ts +31 -0
- package/dist/backend/llvm/virtual-borrows.js +82 -0
- package/dist/backend/llvm/virtual-borrows.js.map +1 -0
- package/dist/backend/llvm/walk-borrows.d.ts +43 -0
- package/dist/backend/llvm/walk-borrows.js +150 -0
- package/dist/backend/llvm/walk-borrows.js.map +1 -0
- package/dist/backend/llvm/walk-borrows.test.d.ts +1 -0
- package/dist/backend/llvm/walk-borrows.test.js +119 -0
- package/dist/backend/llvm/walk-borrows.test.js.map +1 -0
- package/dist/backend/llvm/walkers.d.ts +5 -1
- package/dist/backend/llvm/walkers.js +24 -21
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/loop-polls.d.ts +14 -0
- package/dist/backend/loop-polls.js +100 -0
- package/dist/backend/loop-polls.js.map +1 -0
- package/dist/backend/loop-polls.test.d.ts +1 -0
- package/dist/backend/loop-polls.test.js +86 -0
- package/dist/backend/loop-polls.test.js.map +1 -0
- package/dist/backend/may-throw.d.ts +29 -1
- package/dist/backend/may-throw.js +365 -3
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +136 -1
- package/dist/backend/may-throw.test.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 +7 -5
- package/dist/backend/native-codegen-core.js +14 -9
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +2 -0
- package/dist/backend/native-codegen.js +21 -2
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +41 -10
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-tools.d.ts +2 -0
- package/dist/backend/native-tools.js +3 -0
- package/dist/backend/native-tools.js.map +1 -1
- package/dist/backend/publication.d.ts +28 -0
- package/dist/backend/publication.js +155 -0
- package/dist/backend/publication.js.map +1 -0
- package/dist/backend/publication.test.d.ts +1 -0
- package/dist/backend/publication.test.js +72 -0
- package/dist/backend/publication.test.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-abi.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +1 -1
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/cli/command.js +78 -8
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/output-options.d.ts +1 -0
- package/dist/cli/output-options.js +3 -0
- package/dist/cli/output-options.js.map +1 -1
- package/dist/cli/usage.d.ts +8 -1
- package/dist/cli/usage.js +14 -1
- package/dist/cli/usage.js.map +1 -1
- package/dist/compile-types.d.ts +17 -3
- package/dist/coverage/report.d.ts +25 -2
- package/dist/coverage/report.js +161 -33
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/verdict-cache.d.ts +63 -0
- package/dist/coverage/verdict-cache.js +193 -0
- package/dist/coverage/verdict-cache.js.map +1 -0
- package/dist/coverage/verdict-cache.test.d.ts +1 -0
- package/dist/coverage/verdict-cache.test.js +52 -0
- package/dist/coverage/verdict-cache.test.js.map +1 -0
- package/dist/coverage/verdict-semantic.d.ts +2 -0
- package/dist/coverage/verdict-semantic.js +24 -0
- package/dist/coverage/verdict-semantic.js.map +1 -0
- package/dist/coverage/verdict-startup.d.ts +15 -0
- package/dist/coverage/verdict-startup.js +66 -0
- package/dist/coverage/verdict-startup.js.map +1 -0
- package/dist/diagnostics/diagnostic.d.ts +29 -1
- package/dist/diagnostics/diagnostic.js +74 -4
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/envelope.d.ts +130 -0
- package/dist/diagnostics/envelope.js +257 -0
- package/dist/diagnostics/envelope.js.map +1 -0
- package/dist/diagnostics/envelope.test.d.ts +1 -0
- package/dist/diagnostics/envelope.test.js +91 -0
- package/dist/diagnostics/envelope.test.js.map +1 -0
- package/dist/diagnostics/render.d.ts +3 -0
- package/dist/diagnostics/render.js +13 -2
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +2 -0
- package/dist/executable/executable-cache.js +3 -0
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +1 -0
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.d.ts +4 -0
- package/dist/executable/prepare.js +7 -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/lowering/array-values.d.ts +7 -0
- package/dist/frontend/lowering/array-values.js +157 -5
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/builtins/numbers.js +29 -1
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.d.ts +4 -0
- package/dist/frontend/lowering/builtins/process.js +10 -0
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/strings.js +4 -1
- package/dist/frontend/lowering/builtins/strings.js.map +1 -1
- package/dist/frontend/lowering/builtins/workers.js +4 -2
- package/dist/frontend/lowering/builtins/workers.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.js +96 -4
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/class-assertions.d.ts +8 -0
- package/dist/frontend/lowering/class-assertions.js +217 -1
- package/dist/frontend/lowering/class-assertions.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.js +8 -5
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-method-mutations.js +88 -0
- package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
- package/dist/frontend/lowering/coercions/state.d.ts +6 -0
- package/dist/frontend/lowering/coercions/state.js +2 -0
- package/dist/frontend/lowering/coercions/state.js.map +1 -1
- package/dist/frontend/lowering/coercions/unions.d.ts +8 -0
- package/dist/frontend/lowering/coercions/unions.js +67 -2
- package/dist/frontend/lowering/coercions/unions.js.map +1 -1
- package/dist/frontend/lowering/collation-repertoire.d.ts +1 -0
- package/dist/frontend/lowering/collation-repertoire.js +19 -0
- package/dist/frontend/lowering/collation-repertoire.js.map +1 -0
- package/dist/frontend/lowering/construction-escapes.d.ts +38 -0
- package/dist/frontend/lowering/construction-escapes.js +146 -0
- package/dist/frontend/lowering/construction-escapes.js.map +1 -0
- package/dist/frontend/lowering/construction-escapes.test.d.ts +1 -0
- package/dist/frontend/lowering/construction-escapes.test.js +150 -0
- package/dist/frontend/lowering/construction-escapes.test.js.map +1 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +81 -44
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.js +15 -2
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +231 -12
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.js +15 -4
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.js +43 -1
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.js +7 -63
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.d.ts +6 -1
- package/dist/frontend/lowering/cycle-initialization.js +59 -33
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
- package/dist/frontend/lowering/divergences.d.ts +9 -0
- package/dist/frontend/lowering/divergences.js +630 -0
- package/dist/frontend/lowering/divergences.js.map +1 -0
- package/dist/frontend/lowering/expressions/object-literals.js +40 -2
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-fields.d.ts +19 -0
- package/dist/frontend/lowering/expressions/union-fields.js +236 -0
- package/dist/frontend/lowering/expressions/union-fields.js.map +1 -0
- package/dist/frontend/lowering/lower-calls.d.ts +5 -0
- package/dist/frontend/lowering/lower-calls.js +237 -158
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +4 -0
- package/dist/frontend/lowering/lower-classes.js +72 -22
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +19 -0
- package/dist/frontend/lowering/lower-exprs.js +592 -109
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +19 -13
- package/dist/frontend/lowering/lower-generators.js +67 -44
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +3 -2
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +1 -1
- package/dist/frontend/lowering/lower-island.js +10 -7
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +90 -1
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +47 -7
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +83 -2
- package/dist/frontend/lowering/lowerer.js +1158 -79
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/nan-coded-reads.d.ts +161 -0
- package/dist/frontend/lowering/nan-coded-reads.js +1342 -0
- package/dist/frontend/lowering/nan-coded-reads.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-bounds.d.ts +31 -0
- package/dist/frontend/lowering/runtime-optional-bounds.js +360 -0
- package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-bounds.test.d.ts +1 -0
- package/dist/frontend/lowering/runtime-optional-bounds.test.js +94 -0
- package/dist/frontend/lowering/runtime-optional-bounds.test.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-elements.d.ts +117 -0
- package/dist/frontend/lowering/runtime-optional-elements.js +738 -0
- package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-guards.d.ts +36 -0
- package/dist/frontend/lowering/runtime-optional-guards.js +375 -0
- package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-guards.test.d.ts +1 -0
- package/dist/frontend/lowering/runtime-optional-guards.test.js +92 -0
- package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-ownership.d.ts +63 -0
- package/dist/frontend/lowering/runtime-optional-ownership.js +382 -0
- package/dist/frontend/lowering/runtime-optional-ownership.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-provenance.d.ts +2 -1
- package/dist/frontend/lowering/runtime-optional-provenance.js +2 -1
- package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
- package/dist/frontend/lowering/string-index-bounds.d.ts +36 -0
- package/dist/frontend/lowering/string-index-bounds.js +537 -0
- package/dist/frontend/lowering/string-index-bounds.js.map +1 -0
- package/dist/frontend/lowering/string-index-bounds.test.d.ts +1 -0
- package/dist/frontend/lowering/string-index-bounds.test.js +223 -0
- package/dist/frontend/lowering/string-index-bounds.test.js.map +1 -0
- package/dist/frontend/lowering/surfaces.js +8 -0
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/union-narrow.d.ts +2 -0
- package/dist/frontend/lowering/union-narrow.js +10 -6
- package/dist/frontend/lowering/union-narrow.js.map +1 -1
- package/dist/frontend/program-analysis.d.ts +10 -0
- package/dist/frontend/program-analysis.js +7 -0
- package/dist/frontend/program-analysis.js.map +1 -1
- package/dist/frontend/program.d.ts +25 -0
- package/dist/frontend/program.js +613 -17
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +64 -1
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/resolve.d.ts +6 -0
- package/dist/frontend/resolve.js +14 -0
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/threads-import.d.ts +5 -0
- package/dist/frontend/threads-import.js +21 -0
- package/dist/frontend/threads-import.js.map +1 -0
- package/dist/frontend/type-mapper.d.ts +3 -0
- package/dist/frontend/type-mapper.js +72 -6
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/worker-target.d.ts +4 -0
- package/dist/frontend/worker-target.js +8 -1
- package/dist/frontend/worker-target.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.js +67 -17
- package/dist/index.js.map +1 -1
- package/dist/ir/build.d.ts +5 -0
- package/dist/ir/build.js +7 -0
- package/dist/ir/build.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +1 -1
- package/dist/ir/builtin-signatures.js +5 -0
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/constant-globals.d.ts +14 -0
- package/dist/ir/constant-globals.js +81 -0
- package/dist/ir/constant-globals.js.map +1 -0
- package/dist/ir/constant-globals.test.d.ts +1 -0
- package/dist/ir/constant-globals.test.js +97 -0
- package/dist/ir/constant-globals.test.js.map +1 -0
- package/dist/ir/final-fields.d.ts +35 -0
- package/dist/ir/final-fields.js +187 -0
- package/dist/ir/final-fields.js.map +1 -0
- package/dist/ir/final-fields.test.d.ts +1 -0
- package/dist/ir/final-fields.test.js +106 -0
- package/dist/ir/final-fields.test.js.map +1 -0
- package/dist/ir/int32-slots.d.ts +81 -0
- package/dist/ir/int32-slots.js +850 -0
- package/dist/ir/int32-slots.js.map +1 -0
- package/dist/ir/int32-slots.test.d.ts +1 -0
- package/dist/ir/int32-slots.test.js +249 -0
- package/dist/ir/int32-slots.test.js.map +1 -0
- package/dist/ir/integer-loops.d.ts +5 -0
- package/dist/ir/integer-loops.js +20 -4
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +17 -0
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +19 -3
- package/dist/ir/integer-ranges.js +168 -23
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +74 -2
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/ir.d.ts +30 -7
- package/dist/ir/ir.js +4 -0
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/serialize.d.ts +12 -2
- package/dist/ir/serialize.js +190 -39
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.js +65 -1
- package/dist/ir/serialize.test.js.map +1 -1
- package/dist/ir/validate.js +21 -2
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +39 -0
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/native/cache.d.ts +11 -1
- package/dist/native/cache.js +87 -2
- package/dist/native/cache.js.map +1 -1
- package/dist/native/cache.test.js +32 -1
- package/dist/native/cache.test.js.map +1 -1
- package/dist/native/cli.js +1 -1
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.d.ts +5 -0
- package/dist/native/compiler.js +55 -7
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/prepare.d.ts +7 -1
- package/dist/native/prepare.js +65 -29
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/prepare.test.js +23 -1
- package/dist/native/prepare.test.js.map +1 -1
- package/dist/native/text-file.d.ts +10 -0
- package/dist/native/text-file.js +41 -0
- package/dist/native/text-file.js.map +1 -0
- package/dist/startup-cache.d.ts +2 -0
- package/dist/startup-cache.js +2 -0
- package/dist/startup-cache.js.map +1 -1
- package/dist/text-parts.d.ts +5 -0
- package/dist/text-parts.js +36 -0
- package/dist/text-parts.js.map +1 -0
- package/package.json +20 -20
- package/surface-manifest.json +7 -1
- package/dist/frontend/lowering/expressions/union-field-write.d.ts +0 -8
- package/dist/frontend/lowering/expressions/union-field-write.js +0 -108
- package/dist/frontend/lowering/expressions/union-field-write.js.map +0 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type CycleInitFlag } from "./cycle-initialization.js";
|
|
2
2
|
import type { FieldLift } from "./coercions/structural-plans.js";
|
|
3
3
|
import { CoercionState } from "./coercions/state.js";
|
|
4
|
+
import { StringIndexBounds } from "./string-index-bounds.js";
|
|
5
|
+
import { NanCodedReads } from "./nan-coded-reads.js";
|
|
4
6
|
import { RuntimeOptionalLocals } from "./runtime-optional-locals.js";
|
|
5
7
|
import type { WidthLift } from "./width-lift.js";
|
|
6
8
|
import { type FnCtx } from "./function-context.js";
|
|
@@ -77,6 +79,11 @@ export declare function boundIdentifiersOf(name: ts.BindingName): ts.Identifier[
|
|
|
77
79
|
/** Inspect executable children directly, without boxing the statement tree
|
|
78
80
|
* into checked-dynamic storage just to calculate coverage. */
|
|
79
81
|
export declare function stmtUsesIsland(stmts: IrStmt | IrStmt[]): boolean;
|
|
82
|
+
/** Statements a never-lowered body would have contributed to the coverage
|
|
83
|
+
* totals: every element of a statement list (blocks, case clauses), plus
|
|
84
|
+
* the single-statement bodies of control flow, nested functions included —
|
|
85
|
+
* the same accounting lowerStmts applies to bodies that do lower. */
|
|
86
|
+
export declare function countBodyStatements(root: ts.Node): number;
|
|
80
87
|
export interface LowerResult {
|
|
81
88
|
/** Present iff diagnostics is empty. */
|
|
82
89
|
module: IrModule | null;
|
|
@@ -100,7 +107,11 @@ export interface LowerResult {
|
|
|
100
107
|
unreached?: {
|
|
101
108
|
diagnostics: ScrDiagnostic[];
|
|
102
109
|
stats: LowerStats;
|
|
110
|
+
runtimeFences?: ScrDiagnostic[];
|
|
103
111
|
};
|
|
112
|
+
/** Compile-time-detectable behavior differences from Node (SC6xxx
|
|
113
|
+
* divergence warnings) in the program's own modules. Never failures. */
|
|
114
|
+
divergences?: ScrDiagnostic[];
|
|
104
115
|
/** --dynamic only: every Node builtin the embedded npm graph imports,
|
|
105
116
|
* shimmed or not — the coverage report's island honesty. */
|
|
106
117
|
npmBuiltins?: NpmBuiltinUse[];
|
|
@@ -351,6 +362,15 @@ export declare class Lowerer {
|
|
|
351
362
|
/** Per-symbol result of the never-reassigned file scan
|
|
352
363
|
* (bindingNeverReassigned — object-literal generic-method receivers). */
|
|
353
364
|
readonly neverReassignedCache: Map<ts.Symbol, boolean>;
|
|
365
|
+
/** Typed-array element reads whose every consumer treats undefined like
|
|
366
|
+
* NaN, which lower to plain doubles (see nan-coded-reads.ts). Settled by
|
|
367
|
+
* analyzeRuntimeOptionalArrayReads before any body lowers. */
|
|
368
|
+
nanCodedReads: NanCodedReads | null;
|
|
369
|
+
private stringIndexBoundsCache;
|
|
370
|
+
/** Proofs that a string element read names an existing code unit. The
|
|
371
|
+
* indexed-read analysis and expression lowering share one instance, so a
|
|
372
|
+
* read's representation and its callers' signatures always agree. */
|
|
373
|
+
get stringIndexBounds(): StringIndexBounds;
|
|
354
374
|
/** Syntactic writes indexed once per JS scope. Symbol and RHS type
|
|
355
375
|
* checks remain contextual to each binding probe. */
|
|
356
376
|
readonly jsBindingWritesByOwner: Map<import("../ts7/ast-node.js").AstNode, Map<string, ts.BinaryExpression[]>>;
|
|
@@ -472,6 +492,11 @@ export declare class Lowerer {
|
|
|
472
492
|
* prepass. This includes explicit annotations: unchecked TS annotations do
|
|
473
493
|
* not prove that an array property read produced a value. */
|
|
474
494
|
readonly runtimeOptionalBindingTypes: Map<ts.Symbol, IrType>;
|
|
495
|
+
/** Bindings that receive an unchecked indexed read (or a value derived
|
|
496
|
+
* from one) through an initializer or assignment. The checker narrows a
|
|
497
|
+
* declared optional binding to that read's bare type, so presence tests
|
|
498
|
+
* on these bindings consult the stored tag instead. */
|
|
499
|
+
readonly runtimeOptionalAssignedSymbols: Set<ts.Symbol>;
|
|
475
500
|
/** Concise callback/lambda returns promoted by the HOF callback prepass;
|
|
476
501
|
* arrows have no declaration symbol to key in fnSigsBySymbol. */
|
|
477
502
|
readonly runtimeOptionalFunctionReturns: Map<import("../ts7/ast-node.js").AstNode, IrType>;
|
|
@@ -489,6 +514,17 @@ export declare class Lowerer {
|
|
|
489
514
|
* every name destructured from a present source optional. */
|
|
490
515
|
readonly runtimeOptionalPatternTypes: Map<import("../ts7/ast-node.js").AstNode, IrType>;
|
|
491
516
|
readonly runtimeOptionalReduceTypes: Map<ts.CallExpression, IrType>;
|
|
517
|
+
/** Non-null assertions whose value is forwarded into a slot promoted to
|
|
518
|
+
* hold undefined. `x!` has no runtime effect, so these keep the stored
|
|
519
|
+
* undefined state instead of trapping before any dereference. */
|
|
520
|
+
readonly runtimeOptionalAssertions: Set<ts.NonNullExpression>;
|
|
521
|
+
/** Array callback calls whose receiver the optional-read analysis proved
|
|
522
|
+
* never holds an explicit undefined (or a hole, for the find family):
|
|
523
|
+
* their callbacks take the element type itself. */
|
|
524
|
+
readonly presentElementCalls: Set<ts.CallExpression>;
|
|
525
|
+
/** for-of loops over arrays that can hold neither holes nor undefined:
|
|
526
|
+
* each pass reads the element payload directly. */
|
|
527
|
+
readonly presentElementLoops: Set<ts.ForOfStatement>;
|
|
492
528
|
/** Capture entries and their origin share one mutable box. Normalize each
|
|
493
529
|
* entry to the origin so writes and flow proofs stay synchronized. */
|
|
494
530
|
readonly runtimeOptionalRoots: Map<IrLocal, IrLocal>;
|
|
@@ -522,6 +558,12 @@ export declare class Lowerer {
|
|
|
522
558
|
promoteRuntimeOptionalParameter(node: ts.Node, type: IrType): IrType;
|
|
523
559
|
promoteRuntimeOptionalFunctionReturn(node: ts.Node, type: IrType): IrType;
|
|
524
560
|
runtimeOptionalFunctionReturnType(node: ts.Node, fallback: IrType): IrType;
|
|
561
|
+
/** True when `actual` is `declared` with some record fields (directly,
|
|
562
|
+
* in nested records, or in an array's element records) widened to runtime-optional unions:
|
|
563
|
+
* fields filled from unchecked indexed reads the checker calls present.
|
|
564
|
+
* Inferred bindings and destructured parameters keep that layout instead
|
|
565
|
+
* of narrowing it away. */
|
|
566
|
+
isRuntimeOptionalRecordVariant(actual: IrType, declared: IrType): boolean;
|
|
525
567
|
/** Promote one field of a record storage shape to the value's runtime
|
|
526
568
|
* type. Shapes are immutable by identity, so this interns a sibling shape
|
|
527
569
|
* and records the field as runtime-optional for property-read narrowing. */
|
|
@@ -818,6 +860,9 @@ export declare class Lowerer {
|
|
|
818
860
|
* and therefore becomes the cycle's evaluation root. Dynamic imports
|
|
819
861
|
* wait on this shared verdict rather than a build-time-selected member. */
|
|
820
862
|
readonly asyncCyclePromiseOf: Map<ts.SourceFile, string>;
|
|
863
|
+
/** Modules whose evaluation an import() can request again after it threw,
|
|
864
|
+
* computed on first use (lower-modules.ts importRetryModules). */
|
|
865
|
+
importRetryModules: ReadonlySet<ts.SourceFile> | null;
|
|
821
866
|
/** Record-shape interner: canonical (name-sorted) field list → shapeId.
|
|
822
867
|
* Threaded into every mapType call; its `shapes` array becomes
|
|
823
868
|
* IrModule.records. */
|
|
@@ -901,6 +946,16 @@ export declare class Lowerer {
|
|
|
901
946
|
* coverage remainder as alreadyFlushed). */
|
|
902
947
|
readonly flushedSymbols: Set<ts.Symbol>;
|
|
903
948
|
readonly alreadyFlushed: ReadonlySet<ts.Symbol>;
|
|
949
|
+
/** Deferred diagnostics a flush handed to a capture buffer (diagSink)
|
|
950
|
+
* instead of the build, keyed by the copy in that buffer. A buffer can
|
|
951
|
+
* be discarded (a declined probe, a collection that succeeded) or
|
|
952
|
+
* re-deferred under another declaration, so the declaration stays
|
|
953
|
+
* deferred until one of these copies reaches `diags` (pushDiag commits
|
|
954
|
+
* it); until then a later flush reports the diagnostics again. */
|
|
955
|
+
readonly pendingFlushes: Map<ScrDiagnostic, {
|
|
956
|
+
symbol: ts.Symbol;
|
|
957
|
+
source: ScrDiagnostic;
|
|
958
|
+
}>;
|
|
904
959
|
/** The build's target platform ("win32" | "darwin" | "linux" | ...):
|
|
905
960
|
* selects the platform-keyed builtin surfaces (builtinModuleFnsOf /
|
|
906
961
|
* builtinModuleConstOf in surfaces.ts). */
|
|
@@ -957,6 +1012,10 @@ export declare class Lowerer {
|
|
|
957
1012
|
registerBuiltinErrorClasses(): void;
|
|
958
1013
|
private classProtocols;
|
|
959
1014
|
classImplementedProtocol(type: ts.Type): boolean;
|
|
1015
|
+
/** Declared class fields may store a DYN value only when its static type
|
|
1016
|
+
* names checked protocol identity or an owned runtime handle (a Worker
|
|
1017
|
+
* or MessagePort); `unknown` and `any` fields stay refused. */
|
|
1018
|
+
classFieldStoresDyn(type: ts.Type): boolean;
|
|
960
1019
|
/** The nominal identity of a checker module-namespace type. Program
|
|
961
1020
|
* modules use their normalized absolute source name; supported builtins
|
|
962
1021
|
* use the lowering tables' canonical bare name. */
|
|
@@ -1106,7 +1165,15 @@ export declare class Lowerer {
|
|
|
1106
1165
|
* registered ClassInfo — the shape of a JS class whose collection fenced.
|
|
1107
1166
|
* Used by run()'s global pruning; shapes/unions recurse with a seen-set
|
|
1108
1167
|
* (interned ids can nest). */
|
|
1109
|
-
typeNamesUnregisteredClass(t: IrType
|
|
1168
|
+
typeNamesUnregisteredClass(t: IrType): boolean;
|
|
1169
|
+
/** The first class name typeNamesUnregisteredClass finds in `t`. */
|
|
1170
|
+
unregisteredClassOf(t: IrType, seen: Set<string>): string | null;
|
|
1171
|
+
/** A declaration whose signature blocked never lowers its body, so its
|
|
1172
|
+
* statements would otherwise vanish from the coverage totals and the
|
|
1173
|
+
* percentage would overstate how much of the program compiles. Count
|
|
1174
|
+
* every statement the body holds as attempted and failed, in addition to
|
|
1175
|
+
* the skipped-function tally. */
|
|
1176
|
+
private countSkippedBody;
|
|
1110
1177
|
/** Whether run() counts a signature-blocked declaration in
|
|
1111
1178
|
* stats.functionsSkipped: whole-program passes and the coverage
|
|
1112
1179
|
* remainder do; an externally-gated emit pass leaves the counting to the
|
|
@@ -1388,6 +1455,7 @@ export declare class Lowerer {
|
|
|
1388
1455
|
}, toId: string, loc: SrcLoc): string | null;
|
|
1389
1456
|
unionRetagHelper(fromId: string, toId: string, loc: SrcLoc, trappable?: ReadonlySet<number>): string | null;
|
|
1390
1457
|
narrowedArmHelper(fromId: string, target: IrType, loc: SrcLoc): string | null;
|
|
1458
|
+
checkedNarrowCall(helper: string, value: IrExpr, type: IrType, loc: SrcLoc): IrExpr;
|
|
1391
1459
|
deferredReadHelper(fromId: string, target: IrType, loc: SrcLoc): string | null;
|
|
1392
1460
|
jsvalLiftable(t: IrType, visiting?: Set<string>): boolean;
|
|
1393
1461
|
jsvalLiftExpr(e: IrExpr, loc: SrcLoc): IrExpr;
|
|
@@ -1530,6 +1598,14 @@ export declare class Lowerer {
|
|
|
1530
1598
|
* may follow) — reached-but-broken declarations report the same set of
|
|
1531
1599
|
* diagnostics the eager collector historically produced. */
|
|
1532
1600
|
flushDeferred(symbol: ts.Symbol): void;
|
|
1601
|
+
/** flushDeferred without the collection-pass guard: for declarations
|
|
1602
|
+
* whose diagnostics must report eagerly (class statements with
|
|
1603
|
+
* declaration-time code, extended bases — collectClassShapeDeferring). */
|
|
1604
|
+
reportDeferred(symbol: ts.Symbol): void;
|
|
1605
|
+
/** A flushed copy of a deferred diagnostic reached `diags`: that
|
|
1606
|
+
* diagnostic is reported, so it leaves the declaration's deferred list
|
|
1607
|
+
* (the declaration counts as flushed for the coverage remainder). */
|
|
1608
|
+
private commitFlush;
|
|
1533
1609
|
flushDeferredClass(className: string): void;
|
|
1534
1610
|
collectSignature(decl: ts.FunctionDeclaration): void;
|
|
1535
1611
|
collectSignatureInner(decl: ts.FunctionDeclaration): void;
|
|
@@ -1857,6 +1933,11 @@ export declare class Lowerer {
|
|
|
1857
1933
|
classIteratorDrainCall(src: IrExpr, loc: SrcLoc, elemT?: IrType): IrExpr | null;
|
|
1858
1934
|
classIteratorRestDrainCall(cit: ClassIteratorInfo, itVal: IrExpr, loc: SrcLoc): IrExpr;
|
|
1859
1935
|
fieldGetExpr(target: FieldTarget, loc: SrcLoc, blame: ts.Node): IrExpr;
|
|
1936
|
+
/** The undefined-armed slot read behind a checked deferred-init field
|
|
1937
|
+
* read, or null. Consumers that observe undefined itself (equality,
|
|
1938
|
+
* typeof, truthiness, nullish defaults) test the slot instead of the
|
|
1939
|
+
* checked extraction, which throws for an unassigned field. */
|
|
1940
|
+
deferredFieldSlot(value: IrExpr): IrExpr | null;
|
|
1860
1941
|
fieldSetStmt(target: FieldTarget, value: IrExpr, loc: SrcLoc, blame: ts.Node): IrStmt;
|
|
1861
1942
|
lowerFieldCompound(access: ts.PropertyAccessExpression | ts.ElementAccessExpression, op: CompoundOp, rhsNode: ts.Expression | null, loc: SrcLoc): IrStmt;
|
|
1862
1943
|
errorConstructorArgs(args: readonly ts.Expression[], loc: SrcLoc, blame: ts.Node): IrExpr[];
|
|
@@ -2015,7 +2096,7 @@ export declare class Lowerer {
|
|
|
2015
2096
|
lowerPromiseMethodCall(call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
|
|
2016
2097
|
lowerPromiseStaticCall(call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
|
|
2017
2098
|
lowerNumberStaticProperty(expr: ts.PropertyAccessExpression): IrExpr | null;
|
|
2018
|
-
requireDynamicApi(feature: string, node: ts.Node): void;
|
|
2099
|
+
requireDynamicApi(feature: string, node: ts.Node, hint?: string): void;
|
|
2019
2100
|
lowerMathProperty(expr: ts.PropertyAccessExpression): IrExpr | null;
|
|
2020
2101
|
islandGlobalFnOf(ident: ts.Identifier): IslandFnEntry | null;
|
|
2021
2102
|
lowerIslandMethodCall(call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
|