@scriptc/compiler 0.2.9 → 0.3.0
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 +2 -36
- package/ambient/scriptc-overrides.d.ts +1 -25
- package/ambient/scriptc.d.ts +1 -9
- package/dist/backend/cycle-analysis.d.ts +56 -0
- package/dist/backend/cycle-analysis.js +175 -14
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +95 -2
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/cycle-mutability.d.ts +3 -7
- package/dist/backend/cycle-mutability.js +4 -30
- package/dist/backend/cycle-mutability.js.map +1 -1
- package/dist/backend/executable-features.d.ts +1 -1
- package/dist/backend/executable-features.js +3 -8
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/immutability.d.ts +57 -0
- package/dist/backend/immutability.js +178 -0
- package/dist/backend/immutability.js.map +1 -0
- package/dist/backend/immutability.test.js +131 -0
- package/dist/backend/immutability.test.js.map +1 -0
- package/dist/backend/library-pack.js +0 -2
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/linker.js +1 -1
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/llvm/borrowed-inputs.d.ts +9 -2
- package/dist/backend/llvm/borrowed-inputs.js +31 -3
- package/dist/backend/llvm/borrowed-inputs.js.map +1 -1
- package/dist/backend/llvm/checked-narrows.test.js +1 -1
- package/dist/backend/llvm/classes.d.ts +28 -0
- package/dist/backend/llvm/classes.js +48 -14
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +134 -6
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +13 -0
- package/dist/backend/llvm/common.js +13 -0
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.d.ts +1 -1
- package/dist/backend/llvm/constant-callbacks.js +3 -3
- package/dist/backend/llvm/constant-callbacks.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.test.js +1 -1
- package/dist/backend/llvm/dense-array-access.js +5 -4
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.test.js +10 -2
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +2 -1
- package/dist/backend/llvm/dyn.js +3 -76
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +67 -19
- package/dist/backend/llvm/emitter.js +443 -226
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +21 -3
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.test.js +1 -1
- package/dist/backend/llvm/expr-calls.js +14 -6
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js +41 -14
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-control.js +4 -107
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.d.ts +1 -2
- package/dist/backend/llvm/expr-dispatch.js +0 -41
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.d.ts +1 -1
- package/dist/backend/llvm/expr-dynamic.js +13 -27
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +30 -3
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +55 -2
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +4 -4
- 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/lib-dispatch.js +0 -1
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +0 -13
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +0 -8
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +3 -3
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +1 -1
- package/dist/backend/llvm/loop-array-borrows.d.ts +5 -2
- package/dist/backend/llvm/loop-array-borrows.js +27 -8
- package/dist/backend/llvm/loop-array-borrows.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.d.ts +14 -0
- package/dist/backend/llvm/map-number-lookup.js +33 -2
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.d.ts +5 -0
- package/dist/backend/llvm/map-read-lifetimes.js +20 -4
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +25 -3
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/reference-writes.d.ts +124 -0
- package/dist/backend/llvm/reference-writes.js +1090 -0
- package/dist/backend/llvm/reference-writes.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +8 -5
- package/dist/backend/llvm/shapes.js +37 -13
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +3 -3
- package/dist/backend/llvm/stack-unions.test.js +1 -1
- package/dist/backend/llvm/string-construction.test.js +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +40 -11
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-reads.d.ts +3 -0
- package/dist/backend/llvm/string-reads.js +31 -0
- package/dist/backend/llvm/string-reads.js.map +1 -1
- package/dist/backend/llvm/switch-dispatch.d.ts +2 -2
- package/dist/backend/llvm/switch-dispatch.js +35 -22
- package/dist/backend/llvm/switch-dispatch.js.map +1 -1
- package/dist/backend/llvm/switch-dispatch.test.js +29 -11
- package/dist/backend/llvm/switch-dispatch.test.js.map +1 -1
- package/dist/backend/llvm/walk-borrows.d.ts +8 -1
- package/dist/backend/llvm/walk-borrows.js +15 -4
- package/dist/backend/llvm/walk-borrows.js.map +1 -1
- package/dist/backend/may-throw.d.ts +36 -2
- package/dist/backend/may-throw.js +308 -21
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +147 -2
- package/dist/backend/may-throw.test.js.map +1 -1
- package/dist/backend/native/artifact-stamps.js +0 -2
- package/dist/backend/native/artifact-stamps.js.map +1 -1
- package/dist/backend/native/cache-warm.d.ts +1 -1
- package/dist/backend/native/cache-warm.js +2 -3
- package/dist/backend/native/cache-warm.js.map +1 -1
- package/dist/backend/native/compiler-fingerprint.d.ts +1 -1
- package/dist/backend/native/compiler-fingerprint.js +4 -7
- package/dist/backend/native/compiler-fingerprint.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +3 -28
- package/dist/backend/native/driver.js +1 -3
- package/dist/backend/native/driver.js.map +1 -1
- package/dist/backend/native/executable.d.ts +0 -15
- package/dist/backend/native/executable.js +17 -172
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/tool-identity.js +0 -1
- package/dist/backend/native/tool-identity.js.map +1 -1
- package/dist/backend/native/vendor.d.ts +1 -1
- package/dist/backend/native/vendor.js +1 -1
- package/dist/backend/native/vendor.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +0 -2
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +23 -33
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/publication.d.ts +5 -0
- package/dist/backend/publication.js +10 -0
- package/dist/backend/publication.js.map +1 -1
- package/dist/backend/publication.test.js +1 -1
- 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 -2
- package/dist/backend/runtime-pack-core.js +5 -14
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +3 -8
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +22 -19
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/target-diagnostics.d.ts +0 -5
- package/dist/backend/target-diagnostics.js +1 -11
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +1 -1
- package/dist/backend/vendor-archives.d.ts +1 -7
- package/dist/backend/vendor-archives.js +9 -189
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/backend/vendor-inputs.d.ts +0 -1
- package/dist/backend/vendor-inputs.js +0 -1
- package/dist/backend/vendor-inputs.js.map +1 -1
- package/dist/backend/warm-cache.js +3 -5
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/cli/command.js +4 -8
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/host.d.ts +1 -1
- package/dist/cli/usage.d.ts +1 -5
- package/dist/cli/usage.js +4 -9
- package/dist/cli/usage.js.map +1 -1
- package/dist/compat/fetch-profile.d.ts +2 -2
- package/dist/compat/fetch-profile.js +16 -25
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/compile-types.d.ts +2 -17
- package/dist/contracts/check.d.ts +8 -0
- package/dist/contracts/check.js +1573 -0
- package/dist/contracts/check.js.map +1 -0
- package/dist/coverage/report.d.ts +5 -22
- package/dist/coverage/report.js +12 -76
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.d.ts +3 -3
- package/dist/coverage/surface-manifest.js +22 -27
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/coverage/verdict-cache.d.ts +1 -3
- package/dist/coverage/verdict-cache.js +2 -7
- package/dist/coverage/verdict-cache.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +11 -60
- package/dist/diagnostics/diagnostic.js +39 -118
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/envelope.d.ts +3 -4
- package/dist/diagnostics/envelope.js +0 -9
- package/dist/diagnostics/envelope.js.map +1 -1
- package/dist/diagnostics/envelope.test.js +1 -1
- package/dist/diagnostics/envelope.test.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +0 -3
- package/dist/executable/executable-cache.js +2 -4
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +0 -4
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.js +14 -2
- package/dist/executable/prepare.js.map +1 -1
- package/dist/frontend/analysis.js +10 -10
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/cjs-syntax.js +0 -88
- package/dist/frontend/cjs-syntax.js.map +1 -1
- package/dist/frontend/contract-types.d.ts +50 -0
- package/dist/frontend/contract-types.js +232 -0
- package/dist/frontend/contract-types.js.map +1 -0
- package/dist/frontend/dts-paths.d.ts +1 -1
- package/dist/frontend/dts-paths.js +1 -1
- package/dist/frontend/lowering/abstract-equality.js +1 -4
- package/dist/frontend/lowering/abstract-equality.js.map +1 -1
- package/dist/frontend/lowering/array-values.js +4 -11
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/builtins/arguments.js +0 -13
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.d.ts +0 -4
- package/dist/frontend/lowering/builtins/crypto.js +0 -4
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.js +1 -39
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-resolution.d.ts +0 -15
- package/dist/frontend/lowering/builtins/module-resolution.js +5 -44
- package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
- package/dist/frontend/lowering/builtins/numbers.d.ts +0 -6
- package/dist/frontend/lowering/builtins/numbers.js +6 -57
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.js +4 -67
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/workers.js +1 -1
- package/dist/frontend/lowering/builtins/workers.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.d.ts +1 -37
- package/dist/frontend/lowering/call-arguments.js +11 -94
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.d.ts +1 -6
- package/dist/frontend/lowering/call-signatures.js +16 -68
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +19 -4
- package/dist/frontend/lowering/class-dynamic-dispatch.js +168 -98
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +44 -4
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-method-mutations.js +0 -2
- package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.js +1 -1
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/coercions/function-adapters.js +5 -35
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
- package/dist/frontend/lowering/coercions/state.d.ts +0 -1
- package/dist/frontend/lowering/coercions/state.js +0 -1
- package/dist/frontend/lowering/coercions/state.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural-plans.js +2 -4
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +2 -12
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/coercions/unions.d.ts +12 -0
- package/dist/frontend/lowering/coercions/unions.js +63 -1
- package/dist/frontend/lowering/coercions/unions.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.js +9 -28
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.js +2 -3
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +10 -54
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.js +0 -1
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.js +2 -10
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +1 -6
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +0 -2
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.d.ts +0 -6
- package/dist/frontend/lowering/containers/string-and-regexp.js +2 -10
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/expressions/evaluation-safety.js +0 -3
- package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
- package/dist/frontend/lowering/expressions/native-proxy.js +1 -1
- package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +0 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.d.ts +0 -8
- package/dist/frontend/lowering/expressions/object-literals.js +8 -35
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +0 -4
- package/dist/frontend/lowering/expressions/optional-chains.js +7 -67
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/function-context.js +0 -1
- package/dist/frontend/lowering/function-context.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.js +0 -1
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/lib-boundary.js +10 -77
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.js +1 -10
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.test.js +2 -2
- package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +2 -3
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.js +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +2 -27
- package/dist/frontend/lowering/lower-calls.js +56 -465
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.js +11 -49
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.js +2 -3
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.js +5 -8
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.js +3 -4
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-expando.js +3 -5
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +0 -8
- package/dist/frontend/lowering/lower-exprs.js +133 -908
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +2 -5
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +1 -50
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +0 -43
- package/dist/frontend/lowering/lower-modules.js +25 -329
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.test.js +5 -5
- package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
- package/dist/frontend/lowering/lower-server.js +0 -30
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +98 -0
- package/dist/frontend/lowering/{lower-island.js → lower-stdlib.js} +97 -1160
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -0
- package/dist/frontend/lowering/lower-stmts.d.ts +0 -16
- package/dist/frontend/lowering/lower-stmts.js +58 -1016
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.test.js +1 -1
- package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +1 -3
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +26 -151
- package/dist/frontend/lowering/lowerer.js +120 -770
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +4 -51
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/narrowing-stability.d.ts +100 -0
- package/dist/frontend/lowering/narrowing-stability.js +1174 -0
- package/dist/frontend/lowering/narrowing-stability.js.map +1 -0
- package/dist/frontend/lowering/narrowing-stability.test.js +150 -0
- package/dist/frontend/lowering/narrowing-stability.test.js.map +1 -0
- package/dist/frontend/lowering/optional-arguments.js +0 -2
- package/dist/frontend/lowering/optional-arguments.js.map +1 -1
- package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
- package/dist/frontend/lowering/strict-equality.js +1 -1
- package/dist/frontend/lowering/strict-equality.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +6 -45
- package/dist/frontend/lowering/surfaces.js +5 -65
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/module-syntax.d.ts +0 -3
- package/dist/frontend/module-syntax.js.map +1 -1
- package/dist/frontend/npm-node.d.ts +0 -7
- package/dist/frontend/npm-node.js +0 -7
- package/dist/frontend/npm-node.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-syntax.d.ts +1 -1
- package/dist/frontend/npm-static-rewrite-syntax.js +6 -82
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
- package/dist/frontend/npm-static.d.ts +1 -1
- package/dist/frontend/npm-static.js +6 -71
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.d.ts +3 -319
- package/dist/frontend/npm.js +6 -1007
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/npm.test.js +2 -197
- package/dist/frontend/npm.test.js.map +1 -1
- package/dist/frontend/pipeline-native.js +1 -2
- package/dist/frontend/pipeline-native.js.map +1 -1
- package/dist/frontend/pipeline.d.ts +3 -11
- package/dist/frontend/pipeline.js +37 -56
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/pipeline.test.js +12 -6
- package/dist/frontend/pipeline.test.js.map +1 -1
- package/dist/frontend/program.d.ts +0 -34
- package/dist/frontend/program.js +13 -98
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/provenance-core.d.ts +0 -4
- package/dist/frontend/provenance-core.js +4 -37
- package/dist/frontend/provenance-core.js.map +1 -1
- package/dist/frontend/provenance-registry.d.ts +0 -4
- package/dist/frontend/provenance-registry.js +0 -20
- package/dist/frontend/provenance-registry.js.map +1 -1
- package/dist/frontend/resolve.d.ts +0 -12
- package/dist/frontend/resolve.js +0 -34
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/runtime-resolve.js +2 -2
- package/dist/frontend/runtime-resolve.js.map +1 -1
- package/dist/frontend/services-node.js +2 -3
- package/dist/frontend/services-node.js.map +1 -1
- package/dist/frontend/services.d.ts +1 -8
- package/dist/frontend/services.js +2 -22
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/services.test.js +0 -38
- package/dist/frontend/services.test.js.map +1 -1
- package/dist/frontend/tsc-codes.js +0 -11
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +2 -27
- package/dist/frontend/type-mapper.js +85 -153
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +7 -10
- package/dist/index.js.map +1 -1
- package/dist/ir/api.d.ts +1 -1
- package/dist/ir/api.js +1 -1
- package/dist/ir/api.js.map +1 -1
- package/dist/ir/builtin-effects.js +0 -5
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +1 -1
- package/dist/ir/builtin-signatures.js +1 -55
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/constant-globals.test.js +1 -1
- package/dist/ir/constant-tables.test.js +1 -1
- package/dist/ir/final-fields.test.js +1 -1
- package/dist/ir/initializer-bindings.test.js +1 -1
- package/dist/ir/int32-slots.d.ts +29 -3
- package/dist/ir/int32-slots.js +152 -66
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +1 -1
- package/dist/ir/integer-loops.js +3 -0
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +26 -1
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +20 -0
- package/dist/ir/integer-ranges.js +178 -21
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +148 -3
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/ir.d.ts +44 -284
- package/dist/ir/ir.js +10 -259
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +2 -7
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +3 -30
- package/dist/ir/runtime-features.js +5 -41
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/scalar-records.test.js +1 -1
- package/dist/ir/serialize.d.ts +6 -2
- package/dist/ir/serialize.js +11 -3
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/traverse.js +0 -21
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/unshare.d.ts +14 -0
- package/dist/ir/unshare.js +60 -0
- package/dist/ir/unshare.js.map +1 -0
- package/dist/ir/unshare.test.js +115 -0
- package/dist/ir/unshare.test.js.map +1 -0
- package/dist/ir/validate.js +9 -207
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +6 -6
- package/dist/library/fence-eval.test.js +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/library-cache.test.js +5 -5
- package/dist/library/prepare.js +14 -20
- package/dist/library/prepare.js.map +1 -1
- package/dist/native/cli.js +0 -2
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.test.js +2 -4
- package/dist/native/compiler.test.js.map +1 -1
- package/dist/native/prepare.js +2 -4
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/sanitizer.js +2 -16
- package/dist/native/sanitizer.js.map +1 -1
- package/dist/native/sanitizer.test.js +0 -3
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/startup-cache.js +0 -2
- package/dist/startup-cache.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +80 -88
- package/dist/backend/llvm/expr-island.d.ts +0 -15
- package/dist/backend/llvm/expr-island.js +0 -709
- package/dist/backend/llvm/expr-island.js.map +0 -1
- package/dist/frontend/lowering/coercions/island.d.ts +0 -37
- package/dist/frontend/lowering/coercions/island.js +0 -350
- package/dist/frontend/lowering/coercions/island.js.map +0 -1
- package/dist/frontend/lowering/lower-island.d.ts +0 -229
- package/dist/frontend/lowering/lower-island.js.map +0 -1
- package/dist/frontend/lowering/lower-island.test.js +0 -56
- package/dist/frontend/lowering/lower-island.test.js.map +0 -1
- package/dist/frontend/npm-fetch-analysis.d.ts +0 -17
- package/dist/frontend/npm-fetch-analysis.js +0 -109
- package/dist/frontend/npm-fetch-analysis.js.map +0 -1
- package/dist/frontend/npm-fetch-analysis.test.js +0 -130
- package/dist/frontend/npm-fetch-analysis.test.js.map +0 -1
- package/dist/frontend/npm-fetch-node.d.ts +0 -2
- package/dist/frontend/npm-fetch-node.js +0 -12
- package/dist/frontend/npm-fetch-node.js.map +0 -1
- package/dist/frontend/npm-fetch-syntax.d.ts +0 -6
- package/dist/frontend/npm-fetch-syntax.js +0 -202
- package/dist/frontend/npm-fetch-syntax.js.map +0 -1
- package/dist/native/runtime-typescript.d.ts +0 -4
- package/dist/native/runtime-typescript.js +0 -74
- package/dist/native/runtime-typescript.js.map +0 -1
- package/dist/native/runtime-typescript.test.js +0 -41
- package/dist/native/runtime-typescript.test.js.map +0 -1
- /package/dist/{frontend/lowering/lower-island.test.d.ts → backend/immutability.test.d.ts} +0 -0
- /package/dist/frontend/{npm-fetch-analysis.test.d.ts → lowering/narrowing-stability.test.d.ts} +0 -0
- /package/dist/{native/runtime-typescript.test.d.ts → ir/unshare.test.d.ts} +0 -0
|
@@ -2,7 +2,7 @@ import * as ts from "../../ts7/adapter.js";
|
|
|
2
2
|
import { own } from "../lowerer.js";
|
|
3
3
|
import { lowerCheckedPredicateValue } from "../lower-builtin-values.js";
|
|
4
4
|
import { locOf } from "../../program.js";
|
|
5
|
-
import { BOOL, F64
|
|
5
|
+
import { BOOL, F64 } from "../../../ir/ir.js";
|
|
6
6
|
import { lowerBuiltinValuePreservingUndefined, lowerOptionalNumberPredicate } from "./arguments.js";
|
|
7
7
|
import { tryLowerExpression } from "../expressions/try-lower-expression.js";
|
|
8
8
|
import { lowerStaticNumberGlobal } from "../lower-calls.js";
|
|
@@ -39,12 +39,6 @@ const NUMBER_CONSTANTS = {
|
|
|
39
39
|
POSITIVE_INFINITY: Infinity,
|
|
40
40
|
NEGATIVE_INFINITY: -Infinity,
|
|
41
41
|
};
|
|
42
|
-
/** Method calls on THE `Number` global: the predicate statics lower to
|
|
43
|
-
* plain C over f64 arguments; `Number.parseFloat`/`Number.parseInt` ARE
|
|
44
|
-
* the global parsers (the spec aliases them), so they get the same
|
|
45
|
-
* island lowering — engine execution under --dynamic, per-site SC2012
|
|
46
|
-
* without it (parseInt takes an explicit radix, like the global). Null
|
|
47
|
-
* for non-Number receivers. */
|
|
48
42
|
export function lowerNumberStaticCall(lowerer, call, access) {
|
|
49
43
|
if (call.questionDotToken)
|
|
50
44
|
return null;
|
|
@@ -59,31 +53,6 @@ export function lowerNumberStaticCall(lowerer, call, access) {
|
|
|
59
53
|
}
|
|
60
54
|
const argNode = call.arguments[0];
|
|
61
55
|
const arg = lowerBuiltinValuePreservingUndefined(lowerer, argNode);
|
|
62
|
-
// An ISLAND ('any'-typed) argument evaluates the predicate in the
|
|
63
|
-
// engine — the statics never coerce, so the engine's answer over the
|
|
64
|
-
// real value is JS-exact where a static fence would refuse the
|
|
65
|
-
// editorconfig `(value) => Number.isSafeInteger(value)` shape; the
|
|
66
|
-
// boolean exits validated like every island boolean.
|
|
67
|
-
if (arg.type.kind === "jsval") {
|
|
68
|
-
lowerer.requireDynamicApi(`'Number.${member}'`, call);
|
|
69
|
-
const numberGlobal = {
|
|
70
|
-
kind: "jsOp",
|
|
71
|
-
op: "globalGet",
|
|
72
|
-
name: "Number",
|
|
73
|
-
args: [],
|
|
74
|
-
type: JSVAL,
|
|
75
|
-
loc,
|
|
76
|
-
};
|
|
77
|
-
const raw = {
|
|
78
|
-
kind: "jsOp",
|
|
79
|
-
op: "callMethod",
|
|
80
|
-
name: member,
|
|
81
|
-
args: [numberGlobal, arg],
|
|
82
|
-
type: JSVAL,
|
|
83
|
-
loc,
|
|
84
|
-
};
|
|
85
|
-
return { kind: "jsExit", value: raw, type: BOOL, loc };
|
|
86
|
-
}
|
|
87
56
|
const optional = lowerOptionalNumberPredicate(lowerer, arg, fn, loc);
|
|
88
57
|
if (optional)
|
|
89
58
|
return optional;
|
|
@@ -99,37 +68,17 @@ export function lowerNumberStaticCall(lowerer, call, access) {
|
|
|
99
68
|
}
|
|
100
69
|
// Number.parseFloat/Number.parseInt ARE the global parsers: over a
|
|
101
70
|
// string argument they lower to the same static parse (parseInt with
|
|
102
|
-
// its explicit radix); only the coercing argument shapes
|
|
103
|
-
// engine.
|
|
71
|
+
// its explicit radix); only the coercing argument shapes are refused.
|
|
104
72
|
const probed = tryLowerExpression(lowerer, call.arguments[0]);
|
|
105
73
|
if (probed !== null && isStringLike(lowerer, probed.type)) {
|
|
106
74
|
const parsed = lowerStaticNumberGlobal(lowerer, member, call, call.arguments, loc);
|
|
107
75
|
if (parsed !== null)
|
|
108
76
|
return parsed;
|
|
109
77
|
}
|
|
110
|
-
const argText =
|
|
111
|
-
?
|
|
112
|
-
:
|
|
113
|
-
|
|
114
|
-
: lowerer.checker.typeToString(lowerer.checker.getTypeAtLocation(call.arguments[0]));
|
|
115
|
-
lowerer.requireDynamicApi(`'Number.${member}' with a '${argText}' argument (only a string argument compiles statically)`, call, "convert the argument explicitly first (for example String(x), or narrow the union), or build with --dynamic to run the coercing call in the embedded engine (adds ~620KB to the binary)");
|
|
116
|
-
const callee = {
|
|
117
|
-
kind: "jsOp",
|
|
118
|
-
op: "globalGet",
|
|
119
|
-
name: member,
|
|
120
|
-
args: [],
|
|
121
|
-
type: JSVAL,
|
|
122
|
-
loc,
|
|
123
|
-
};
|
|
124
|
-
const args = call.arguments.map((a) => lowerer.jsvalIn(lowerer.lowerExpr(a), a));
|
|
125
|
-
const result = {
|
|
126
|
-
kind: "jsOp",
|
|
127
|
-
op: "callFn",
|
|
128
|
-
args: [callee, ...args],
|
|
129
|
-
type: JSVAL,
|
|
130
|
-
loc,
|
|
131
|
-
};
|
|
132
|
-
return { kind: "jsExit", value: result, type: F64, loc };
|
|
78
|
+
const argText = probed !== null
|
|
79
|
+
? lowerer.fmt(probed.type)
|
|
80
|
+
: lowerer.checker.typeToString(lowerer.checker.getTypeAtLocation(call.arguments[0]));
|
|
81
|
+
lowerer.refuseUnsupportedApi(`'Number.${member}' with a '${argText}' argument`, call, "only a string argument compiles statically: convert the argument explicitly first (for example String(x), or narrow the union)");
|
|
133
82
|
}
|
|
134
83
|
return null; // other Number statics land on the member fence
|
|
135
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numbers.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/builtins/numbers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAgB,GAAG,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,GAAG,EAA6B,
|
|
1
|
+
{"version":3,"file":"numbers.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/builtins/numbers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { checkedPromiseAll } from "../checked-promise-all.js";
|
|
2
2
|
import * as ts from "../../ts7/adapter.js";
|
|
3
|
-
import {
|
|
3
|
+
import {} from "../lowerer.js";
|
|
4
4
|
import { isJsSourceFile, locOf } from "../../program.js";
|
|
5
|
-
import { DYN,
|
|
5
|
+
import { DYN, VOID, arrayOf, isUnitType, typeEquals, typeKey, } from "../../../ir/ir.js";
|
|
6
6
|
/** `Promise.race([...])` on THE Promise global: the entries lower
|
|
7
7
|
* individually (the array never materializes — promise-element arrays
|
|
8
8
|
* have no representation) into a promise.race intrinsic; the result
|
|
@@ -98,43 +98,7 @@ export function lowerPromiseStaticCall(lowerer, call, access) {
|
|
|
98
98
|
};
|
|
99
99
|
return { kind: "intrinsic", name: "promise.all", args: [entriesArr], type: resultT, loc };
|
|
100
100
|
}
|
|
101
|
-
|
|
102
|
-
// withPlugins shape: Promise.all([loadBuiltinPlugins(),
|
|
103
|
-
// loadPlugins(plugins)]) with an 'any'-typed loader): the
|
|
104
|
-
// ENGINE's own Promise.all runs — island entries pass through,
|
|
105
|
-
// STATIC promises cross as real engine thenables (the reverse
|
|
106
|
-
// bridge, payload-domain gated), plain values marshal per the
|
|
107
|
-
// boundary — and the combined result stays an island value
|
|
108
|
-
// (awaiting it rides the island→static promise bridge; element
|
|
109
|
-
// reads are the routed keyed ops). All-static tuples keep the
|
|
110
|
-
// typed fence hint below. --dynamic only by construction: jsval
|
|
111
|
-
// entries exist only there.
|
|
112
|
-
if (lowerer.dynamic && elems.some((e) => e.type.kind === "jsval" || e.type.kind === "dyn")) {
|
|
113
|
-
const diagsBefore = lowerer.diags.length;
|
|
114
|
-
try {
|
|
115
|
-
const marshaled = argNode.elements.map((el, i) => lowerer.jsvalIn(elems[i], el));
|
|
116
|
-
return {
|
|
117
|
-
kind: "jsOp",
|
|
118
|
-
op: "callMethod",
|
|
119
|
-
name: "all",
|
|
120
|
-
args: [
|
|
121
|
-
{ kind: "jsOp", op: "globalGet", name: "Promise", args: [], type: JSVAL, loc },
|
|
122
|
-
{ kind: "jsOp", op: "arrLit", args: marshaled, type: JSVAL, loc },
|
|
123
|
-
],
|
|
124
|
-
type: JSVAL,
|
|
125
|
-
loc,
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
catch (err) {
|
|
129
|
-
// An entry outside every crossing domain: drop the boundary
|
|
130
|
-
// diagnostics and let the shape fence below name the fix.
|
|
131
|
-
if (!(err instanceof PoisonError))
|
|
132
|
-
throw err;
|
|
133
|
-
lowerer.diags.splice(diagsBefore);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
if (!lowerer.dynamic &&
|
|
137
|
-
isJsSourceFile(call.getSourceFile()) &&
|
|
101
|
+
if (isJsSourceFile(call.getSourceFile()) &&
|
|
138
102
|
elems.every((entry) => lowerer.dynConvertible(entry.type))) {
|
|
139
103
|
return checkedPromiseAll(lowerer, {
|
|
140
104
|
kind: "arrayLit",
|
|
@@ -146,38 +110,11 @@ export function lowerPromiseStaticCall(lowerer, call, access) {
|
|
|
146
110
|
lowerer.noLowering("Promise.all over this argument shape", argNode, "the entries must share ONE promise type — Promise.all([p, q]) lowers when p and q are the same Promise<T>");
|
|
147
111
|
}
|
|
148
112
|
const entries = lowerer.lowerExpr(argNode);
|
|
149
|
-
if (
|
|
113
|
+
if (isJsSourceFile(call.getSourceFile()) && entries.type.kind === "dyn")
|
|
150
114
|
return checkedPromiseAll(lowerer, entries, loc);
|
|
151
|
-
// A NON-literal island argument (`Promise.all(plugins.map((p) =>
|
|
152
115
|
// loadPlugin(p)))` — the loadPlugins shape, where the checker
|
|
153
116
|
// spells `any[]`): the ENGINE's own Promise.all runs over the
|
|
154
117
|
// marshaled array (an 'any' value passes through; an `any[]` value
|
|
155
|
-
// lifts per element by reference), the result staying an island
|
|
156
|
-
// value the static side awaits through the island→static bridge.
|
|
157
|
-
if (entries.type.kind === "jsval" ||
|
|
158
|
-
(lowerer.dynamic && entries.type.kind === "dyn") ||
|
|
159
|
-
(entries.type.kind === "array" && entries.type.elem.kind === "jsval")) {
|
|
160
|
-
const diagsBefore = lowerer.diags.length;
|
|
161
|
-
try {
|
|
162
|
-
const arg = lowerer.jsvalIn(entries, argNode);
|
|
163
|
-
return {
|
|
164
|
-
kind: "jsOp",
|
|
165
|
-
op: "callMethod",
|
|
166
|
-
name: "all",
|
|
167
|
-
args: [
|
|
168
|
-
{ kind: "jsOp", op: "globalGet", name: "Promise", args: [], type: JSVAL, loc },
|
|
169
|
-
arg,
|
|
170
|
-
],
|
|
171
|
-
type: JSVAL,
|
|
172
|
-
loc,
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
catch (err) {
|
|
176
|
-
if (!(err instanceof PoisonError))
|
|
177
|
-
throw err;
|
|
178
|
-
lowerer.diags.splice(diagsBefore);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
118
|
if (entries.type.kind !== "array" || entries.type.elem.kind !== "promise") {
|
|
182
119
|
// The heterogeneous-literal case: the checker's tuple overload
|
|
183
120
|
// types the literal as a TUPLE of promises (a tuple-flagged record
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promises.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/builtins/promises.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"promises.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/builtins/promises.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ export function lowerWorkerNew(lowerer, expression) {
|
|
|
36
36
|
if (root === undefined) {
|
|
37
37
|
lowerer.noLowering("this Worker entry point", filename, "the worker entry must resolve to a statically compiled source file");
|
|
38
38
|
}
|
|
39
|
-
if (lowerer.
|
|
39
|
+
if (lowerer.targetPlatform === "wasi") {
|
|
40
40
|
lowerer.noLowering("Worker execution in this target", expression, "use a native static executable");
|
|
41
41
|
}
|
|
42
42
|
if (lowerer.ffiImports.some((entry) => entry.params.some((parameter) => isFfiCallbackParam(parameter) && parameter.callback.invoke === "foreign"))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workers.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/builtins/workers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,IAAI,EACJ,GAAG,EACH,GAAG,EACH,MAAM,EACN,WAAW,EACX,kBAAkB,GAGnB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,GAAW;IAC7D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,cAAc;YACjB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QACnF,KAAK,UAAU;YACb,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC9E,KAAK,YAAY;YACf,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC1E,KAAK,YAAY;YACf,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAChF,KAAK,kBAAkB;YACrB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAC5D;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,UAA4B;IAC3E,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;IAC1C,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IACpE,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;IACxC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,UAAU,CAChB,8BAA8B,EAC9B,UAAU,EACV,oCAAoC,CACrC,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,IAAI,GACR,IAAI,KAAK,IAAI;QACX,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,UAAU,CAChB,yBAAyB,EACzB,QAAQ,EACR,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"workers.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/builtins/workers.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,14 +2,6 @@ import * as ts from "../ts7/adapter.js";
|
|
|
2
2
|
import type { Lowerer } from "./lowerer.js";
|
|
3
3
|
import { type IrExpr, type IrType, type SrcLoc } from "../../ir/ir.js";
|
|
4
4
|
import { type ParamShape } from "./call-signatures.js";
|
|
5
|
-
/** CALL-SITE COMPLETION — the frontend half of the one-signature contract
|
|
6
|
-
* (docs/ir.md): typed calls lower to the callee's full ABI parameter
|
|
7
|
-
* list, so backends and the validator stay count-exact. Dynamic and island
|
|
8
|
-
* calls retain their runtime arity handling. Omitted trailing args for omittable
|
|
9
|
-
* params become the interned undefined arm (which is also what an
|
|
10
|
-
* explicitly-passed `undefined` wraps to — both trigger a default, JS-
|
|
11
|
-
* exact); a rest param packs the surplus args (possibly zero) into one
|
|
12
|
-
* array literal, evaluated in source order at the call site. */
|
|
13
5
|
export declare function completeArgs(lowerer: Lowerer, argNodes: readonly ts.Expression[], shapes: readonly ParamShape[], loc: SrcLoc, blame: ts.Node,
|
|
14
6
|
/** Pre-lowered values virtually PREPENDED to the argument list — the
|
|
15
7
|
* tagged-template strings object, which has no ts.Expression to lower
|
|
@@ -25,11 +17,6 @@ export declare function wrappedUndefined(lowerer: Lowerer, type: IrType, loc: Sr
|
|
|
25
17
|
/** The synthesized argument for an omitted omittable param: the interned
|
|
26
18
|
* undefined arm of the param's `T | undefined` ABI union, or the checked-dynamic tree
|
|
27
19
|
* undefined for a checked-dynamic param (`bar?: any`). */
|
|
28
|
-
/** The "absent argument" value for a param SLOT type, or null when the
|
|
29
|
-
* slot cannot hold one: the interned undefined arm for undefined-armed
|
|
30
|
-
* unions, the dyn undefined for checked-dynamic slots, the engine's own
|
|
31
|
-
* undefined for island slots. Shared by every call-completion loop
|
|
32
|
-
* (direct calls and calls through func-typed values). */
|
|
33
20
|
export declare function omittedArgFor(lowerer: Lowerer, type: IrType, loc: SrcLoc): IrExpr | null;
|
|
34
21
|
/** Complete an indirect static call against its func value ABI. Ordinary
|
|
35
22
|
* fixed-width values retain the historical optional-suffix completion.
|
|
@@ -40,33 +27,10 @@ export declare function completeFuncValueArgs(lowerer: Lowerer, call: ts.CallExp
|
|
|
40
27
|
kind: "func";
|
|
41
28
|
}, loc: SrcLoc): IrExpr[];
|
|
42
29
|
export declare function undefinedArgFor(lowerer: Lowerer, type: IrType, loc: SrcLoc, blame: ts.Node): IrExpr;
|
|
43
|
-
/** The RUNTIME-ARITY spread call — `f(...args)`, the rest-forwarding idiom
|
|
44
|
-
* (`const f = (...args) => from(...args)`): a spread whose length is a
|
|
45
|
-
* runtime fact has no home in the compile-time completion, so the call
|
|
46
|
-
* rides a dynamic boundary instead. Two lanes, picked by the spread
|
|
47
|
-
* source's tier:
|
|
48
|
-
*
|
|
49
|
-
* - CHECKED-DYNAMIC (dyn spread sources — a JS rest binding, a dyn
|
|
50
|
-
* value): box the callee (dynFrom; a dyn callee is already boxed),
|
|
51
|
-
* convert every argument into dyn, and emit the spread-marked dynCall
|
|
52
|
-
* — the emitters build one fresh dyn argument array (spreads flatten
|
|
53
|
-
* left-to-right, non-iterables throw V8's TypeError) and apply through
|
|
54
|
-
* it; the boxed thunk delivers JS arity exactly. Result dyn, checked
|
|
55
|
-
* per use like every any-origin value.
|
|
56
|
-
* - ISLAND (a jsval spread source — the --dynamic rest binding is the
|
|
57
|
-
* engine's own arguments array): marshal the callee in and emit jsOp
|
|
58
|
-
* callSpread — the prelude helper's REAL `f(...pre, ...s)`, so
|
|
59
|
-
* iterator protocols and the not-iterable TypeError are the engine's
|
|
60
|
-
* own. One trailing spread after the fixed arguments is the modeled
|
|
61
|
-
* shape (exactly the forwarding idiom).
|
|
62
|
-
*
|
|
63
|
-
* Answers null when neither lane fits (typed .ts spreads keep
|
|
64
|
-
* completeArgs' rest packing and its fences). JS sources only — the
|
|
65
|
-
* same guard as the over-arity dynCall precedent. */
|
|
66
30
|
export declare function lowerSpreadArgsCall(lowerer: Lowerer, expr: ts.CallExpression, callee: IrExpr, loc: SrcLoc): IrExpr | null;
|
|
67
31
|
/** True when a spread argument lands where the compile-time completion
|
|
68
32
|
* cannot take it — a FIXED parameter position, or a dynamic rest slot
|
|
69
|
-
* (dynRest
|
|
33
|
+
* (dynRest, whose packs are built per-argument): the shapes
|
|
70
34
|
* the runtime-arity lane (lowerSpreadArgsCall) serves. Typed `rest`
|
|
71
35
|
* slots keep completeArgs' same-element spread packing. */
|
|
72
36
|
export declare function spreadNeedsRuntimeArity(lowerer: Lowerer, shapes: readonly ParamShape[], argNodes: readonly ts.Expression[]): boolean;
|
|
@@ -2,7 +2,7 @@ import { dynUndefinedExpr } from "../../ir/build.js";
|
|
|
2
2
|
import { InternalCompilerError } from "../../errors.js";
|
|
3
3
|
import * as ts from "../ts7/adapter.js";
|
|
4
4
|
import { AstNode } from "../ts7/ast-node.js";
|
|
5
|
-
import { DYN, F64,
|
|
5
|
+
import { DYN, F64, STRING, UNDEFINED_T, VOID, arrayOf, canBoxFuncIntoDyn, canConvertToDyn, canDynCheckTo, typeEquals, } from "../../ir/ir.js";
|
|
6
6
|
import { isJsSourceFile, locOf } from "../program.js";
|
|
7
7
|
import { isSafeToDiscard } from "./expressions/evaluation-safety.js";
|
|
8
8
|
import { defaultAfterUndefined, lowerStaticallyUndefinedArgument } from "./optional-arguments.js";
|
|
@@ -23,14 +23,6 @@ function fixedTupleSpreadInfo(lowerer, node) {
|
|
|
23
23
|
fields: [...shape.fields].sort((a, b) => Number(a.name) - Number(b.name)),
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
-
/** CALL-SITE COMPLETION — the frontend half of the one-signature contract
|
|
27
|
-
* (docs/ir.md): typed calls lower to the callee's full ABI parameter
|
|
28
|
-
* list, so backends and the validator stay count-exact. Dynamic and island
|
|
29
|
-
* calls retain their runtime arity handling. Omitted trailing args for omittable
|
|
30
|
-
* params become the interned undefined arm (which is also what an
|
|
31
|
-
* explicitly-passed `undefined` wraps to — both trigger a default, JS-
|
|
32
|
-
* exact); a rest param packs the surplus args (possibly zero) into one
|
|
33
|
-
* array literal, evaluated in source order at the call site. */
|
|
34
26
|
export function completeArgs(lowerer, argNodes, shapes, loc, blame,
|
|
35
27
|
/** Pre-lowered values virtually PREPENDED to the argument list — the
|
|
36
28
|
* tagged-template strings object, which has no ts.Expression to lower
|
|
@@ -206,10 +198,7 @@ leading) {
|
|
|
206
198
|
});
|
|
207
199
|
});
|
|
208
200
|
}
|
|
209
|
-
const restAt = shapes.findIndex((s) => s.mode === "rest" ||
|
|
210
|
-
s.mode === "dynRest" ||
|
|
211
|
-
s.mode === "islandRest" ||
|
|
212
|
-
s.mode === "arguments");
|
|
201
|
+
const restAt = shapes.findIndex((s) => s.mode === "rest" || s.mode === "dynRest" || s.mode === "arguments");
|
|
213
202
|
const positional = restAt >= 0 ? shapes.slice(0, restAt) : [...shapes];
|
|
214
203
|
if (restAt >= 0 && shapes[restAt].mode === "arguments") {
|
|
215
204
|
// JS `arguments` contains every supplied value, including fixed
|
|
@@ -296,21 +285,7 @@ leading) {
|
|
|
296
285
|
return shape.callDefault;
|
|
297
286
|
return lowerer.undefinedArgFor(shape.type, loc, blame);
|
|
298
287
|
});
|
|
299
|
-
if (restAt >= 0 && shapes[restAt].mode === "
|
|
300
|
-
// The ISLAND variadic pack: surplus arguments marshal into one
|
|
301
|
-
// fresh ENGINE array — exactly what the REST host-call adapter
|
|
302
|
-
// hands the closure for indirect calls.
|
|
303
|
-
const elems = sources.slice(restAt).map((a) => {
|
|
304
|
-
if (isIr(a))
|
|
305
|
-
return lowerer.coerceInto(blame, a.ir, JSVAL);
|
|
306
|
-
if (ts.isSpreadElement(a)) {
|
|
307
|
-
lowerer.unsupported("SC1090", a, "spread arguments into an island rest parameter");
|
|
308
|
-
}
|
|
309
|
-
return lowerer.lowerExprExpecting(a, JSVAL);
|
|
310
|
-
});
|
|
311
|
-
out.push({ kind: "jsOp", op: "arrLit", args: elems, type: JSVAL, loc });
|
|
312
|
-
}
|
|
313
|
-
else if (restAt >= 0 && shapes[restAt].mode === "dynRest") {
|
|
288
|
+
if (restAt >= 0 && shapes[restAt].mode === "dynRest") {
|
|
314
289
|
// The VARIADIC dyn pack (a JS `...args` with no static element
|
|
315
290
|
// type, or the synthetic `arguments` slot): surplus arguments
|
|
316
291
|
// convert through the dyn boundary into one fresh dyn array —
|
|
@@ -451,16 +426,9 @@ export function wrappedUndefined(lowerer, type, loc) {
|
|
|
451
426
|
/** The synthesized argument for an omitted omittable param: the interned
|
|
452
427
|
* undefined arm of the param's `T | undefined` ABI union, or the checked-dynamic tree
|
|
453
428
|
* undefined for a checked-dynamic param (`bar?: any`). */
|
|
454
|
-
/** The "absent argument" value for a param SLOT type, or null when the
|
|
455
|
-
* slot cannot hold one: the interned undefined arm for undefined-armed
|
|
456
|
-
* unions, the dyn undefined for checked-dynamic slots, the engine's own
|
|
457
|
-
* undefined for island slots. Shared by every call-completion loop
|
|
458
|
-
* (direct calls and calls through func-typed values). */
|
|
459
429
|
export function omittedArgFor(lowerer, type, loc) {
|
|
460
430
|
if (type.kind === "dyn")
|
|
461
431
|
return dynUndefinedExpr(loc);
|
|
462
|
-
if (type.kind === "jsval")
|
|
463
|
-
return { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc };
|
|
464
432
|
return lowerer.wrappedUndefined(type, loc);
|
|
465
433
|
}
|
|
466
434
|
/** Complete an indirect static call against its func value ABI. Ordinary
|
|
@@ -494,10 +462,6 @@ export function completeFuncValueArgs(lowerer, call, funcType, loc) {
|
|
|
494
462
|
export function undefinedArgFor(lowerer, type, loc, blame) {
|
|
495
463
|
if (type.kind === "dyn")
|
|
496
464
|
return dynUndefinedExpr(loc);
|
|
497
|
-
// An omitted argument for an ISLAND-typed omittable param (`f()` where
|
|
498
|
-
// f's `x = a` default is jsval-shaped): the engine's own undefined.
|
|
499
|
-
if (type.kind === "jsval")
|
|
500
|
-
return { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc };
|
|
501
465
|
const wrapped = lowerer.wrappedUndefined(type, loc);
|
|
502
466
|
if (!wrapped) {
|
|
503
467
|
// Omittable params always carry an undefined-armed union (paramShape
|
|
@@ -506,35 +470,12 @@ export function undefinedArgFor(lowerer, type, loc, blame) {
|
|
|
506
470
|
}
|
|
507
471
|
return wrapped;
|
|
508
472
|
}
|
|
509
|
-
/** The RUNTIME-ARITY spread call — `f(...args)`, the rest-forwarding idiom
|
|
510
|
-
* (`const f = (...args) => from(...args)`): a spread whose length is a
|
|
511
|
-
* runtime fact has no home in the compile-time completion, so the call
|
|
512
|
-
* rides a dynamic boundary instead. Two lanes, picked by the spread
|
|
513
|
-
* source's tier:
|
|
514
|
-
*
|
|
515
|
-
* - CHECKED-DYNAMIC (dyn spread sources — a JS rest binding, a dyn
|
|
516
|
-
* value): box the callee (dynFrom; a dyn callee is already boxed),
|
|
517
|
-
* convert every argument into dyn, and emit the spread-marked dynCall
|
|
518
|
-
* — the emitters build one fresh dyn argument array (spreads flatten
|
|
519
|
-
* left-to-right, non-iterables throw V8's TypeError) and apply through
|
|
520
|
-
* it; the boxed thunk delivers JS arity exactly. Result dyn, checked
|
|
521
|
-
* per use like every any-origin value.
|
|
522
|
-
* - ISLAND (a jsval spread source — the --dynamic rest binding is the
|
|
523
|
-
* engine's own arguments array): marshal the callee in and emit jsOp
|
|
524
|
-
* callSpread — the prelude helper's REAL `f(...pre, ...s)`, so
|
|
525
|
-
* iterator protocols and the not-iterable TypeError are the engine's
|
|
526
|
-
* own. One trailing spread after the fixed arguments is the modeled
|
|
527
|
-
* shape (exactly the forwarding idiom).
|
|
528
|
-
*
|
|
529
|
-
* Answers null when neither lane fits (typed .ts spreads keep
|
|
530
|
-
* completeArgs' rest packing and its fences). JS sources only — the
|
|
531
|
-
* same guard as the over-arity dynCall precedent. */
|
|
532
473
|
export function lowerSpreadArgsCall(lowerer, expr, callee, loc) {
|
|
533
474
|
if (!isJsSourceFile(expr.getSourceFile()))
|
|
534
475
|
return null;
|
|
535
476
|
if (!expr.arguments.some((a) => ts.isSpreadElement(a)))
|
|
536
477
|
return null;
|
|
537
|
-
if (callee.type.kind !== "dyn" && callee.type.kind !== "func"
|
|
478
|
+
if (callee.type.kind !== "dyn" && callee.type.kind !== "func")
|
|
538
479
|
return null;
|
|
539
480
|
const calleeName = ts.isPropertyAccessExpression(expr.expression) || ts.isElementAccessExpression(expr.expression)
|
|
540
481
|
? expr.expression.getText()
|
|
@@ -549,7 +490,7 @@ export function lowerSpreadArgsCall(lowerer, expr, callee, loc) {
|
|
|
549
490
|
const spreadParts = parts.filter((p) => p.spreadOf !== null);
|
|
550
491
|
const getR = (id) => lowerer.shapes.get(id);
|
|
551
492
|
const getU = (id) => lowerer.unions.get(id);
|
|
552
|
-
const anyJsvalSpread = spreadParts.some((
|
|
493
|
+
const anyJsvalSpread = spreadParts.some((_p) => false);
|
|
553
494
|
if (!anyJsvalSpread &&
|
|
554
495
|
(callee.type.kind === "dyn" ||
|
|
555
496
|
(callee.type.kind === "func" && canBoxFuncIntoDyn(callee.type, getR, getU))) &&
|
|
@@ -570,42 +511,19 @@ export function lowerSpreadArgsCall(lowerer, expr, callee, loc) {
|
|
|
570
511
|
const boxed = callee.type.kind === "dyn" ? callee : lowerer.coerceInto(expr.expression, callee, DYN);
|
|
571
512
|
return { kind: "dynCall", callee: boxed, calleeName, args, spreads, type: DYN, loc };
|
|
572
513
|
}
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
(callee.type.kind === "func" && callee.type.restAbi === "jsval")) &&
|
|
576
|
-
(callee.type.kind === "jsval" || callee.type.kind === "func")) {
|
|
577
|
-
if (spreadParts.length !== 1 || parts[parts.length - 1].spreadOf === null) {
|
|
578
|
-
lowerer.unsupported("SC1090", expr, "spread arguments before positional arguments in island calls (one trailing spread after the fixed arguments is the supported form)");
|
|
579
|
-
}
|
|
580
|
-
const f = lowerer.coerceInto(expr.expression, callee, JSVAL);
|
|
581
|
-
const pre = parts.slice(0, -1).map((p) => lowerer.coerceInto(p.node, p.v, JSVAL));
|
|
582
|
-
const preArr = { kind: "jsOp", op: "arrLit", args: pre, type: JSVAL, loc };
|
|
583
|
-
const last = parts[parts.length - 1];
|
|
584
|
-
// The spelling rides in `name` for V8's nullish spread-call
|
|
585
|
-
// TypeError ("v is not iterable (cannot read property ...)").
|
|
586
|
-
return {
|
|
587
|
-
kind: "jsOp",
|
|
588
|
-
op: "callSpread",
|
|
589
|
-
name: last.spreadOf.getText(),
|
|
590
|
-
args: [f, preArr, lowerer.coerceInto(last.spreadOf, last.v, JSVAL)],
|
|
591
|
-
type: JSVAL,
|
|
592
|
-
loc,
|
|
593
|
-
};
|
|
594
|
-
}
|
|
595
|
-
// No lane fits (a spread source outside both tiers, a callee neither
|
|
596
|
-
// boxable nor marshalable, mixed dyn/jsval spreads): fence HERE — the
|
|
597
|
-
// arguments are already lowered, and falling back to the historical
|
|
514
|
+
// No native spread-call form fits. Arguments are already lowered, so
|
|
515
|
+
// falling back to the historical
|
|
598
516
|
// per-site fences would lower them a second time (duplicate lambda
|
|
599
517
|
// lifts, duplicated diagnostics).
|
|
600
518
|
lowerer.unsupported("SC1090", expr, "spread arguments");
|
|
601
519
|
}
|
|
602
520
|
/** True when a spread argument lands where the compile-time completion
|
|
603
521
|
* cannot take it — a FIXED parameter position, or a dynamic rest slot
|
|
604
|
-
* (dynRest
|
|
522
|
+
* (dynRest, whose packs are built per-argument): the shapes
|
|
605
523
|
* the runtime-arity lane (lowerSpreadArgsCall) serves. Typed `rest`
|
|
606
524
|
* slots keep completeArgs' same-element spread packing. */
|
|
607
525
|
export function spreadNeedsRuntimeArity(lowerer, shapes, argNodes) {
|
|
608
|
-
const restAt = shapes.findIndex((s) => s.mode === "rest" || s.mode === "dynRest"
|
|
526
|
+
const restAt = shapes.findIndex((s) => s.mode === "rest" || s.mode === "dynRest");
|
|
609
527
|
let position = 0;
|
|
610
528
|
for (const arg of argNodes) {
|
|
611
529
|
if (ts.isSpreadElement(arg)) {
|
|
@@ -668,7 +586,7 @@ function canReadHolesInto(lowerer, from, to) {
|
|
|
668
586
|
if (from.kind !== "array" || to.kind !== "array" || typeEquals(from, to))
|
|
669
587
|
return false;
|
|
670
588
|
const elem = from.elem;
|
|
671
|
-
if (elem.kind === "dyn"
|
|
589
|
+
if (elem.kind === "dyn")
|
|
672
590
|
return false;
|
|
673
591
|
return typeEquals(arrayValueType(lowerer, elem), to.elem);
|
|
674
592
|
}
|
|
@@ -703,8 +621,7 @@ function sourceArray(element) {
|
|
|
703
621
|
}
|
|
704
622
|
function canCompleteRuntimeSpread(lowerer, shapes) {
|
|
705
623
|
return (shapes.length > 0 &&
|
|
706
|
-
shapes.every((shape) => shape.
|
|
707
|
-
shape.callDefault === undefined &&
|
|
624
|
+
shapes.every((shape) => shape.callDefault === undefined &&
|
|
708
625
|
canDynCheckTo(shape.type, (id) => lowerer.shapes.get(id), (id) => lowerer.unions.get(id))));
|
|
709
626
|
}
|
|
710
627
|
//# sourceMappingURL=call-arguments.js.map
|