@scriptc/compiler 0.2.10 → 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.test.js +1 -1
- package/dist/backend/cycle-mutability.d.ts +1 -1
- package/dist/backend/cycle-mutability.js +1 -18
- 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 +1 -1
- package/dist/backend/immutability.js +1 -1
- package/dist/backend/immutability.test.js +1 -1
- 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/checked-narrows.test.js +1 -1
- package/dist/backend/llvm/classes.js +3 -9
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +7 -7
- 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.test.js +1 -1
- package/dist/backend/llvm/dyn.d.ts +0 -1
- package/dist/backend/llvm/dyn.js +0 -73
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +3 -17
- package/dist/backend/llvm/emitter.js +53 -181
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +3 -3
- package/dist/backend/llvm/expr-async.test.js +1 -1
- package/dist/backend/llvm/expr-containers.js +12 -8
- 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.test.js +2 -2
- 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.test.js +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +1 -1
- package/dist/backend/llvm/map-number-lookup.d.ts +7 -0
- package/dist/backend/llvm/map-number-lookup.js +16 -2
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.js +7 -1
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +24 -7
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/shapes.js +1 -2
- 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 +1 -1
- package/dist/backend/llvm/switch-dispatch.test.js +1 -1
- package/dist/backend/may-throw.js +0 -9
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +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.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.js +2 -6
- package/dist/contracts/check.js.map +1 -1
- 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 +5 -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/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.js +0 -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 +3 -66
- 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 +47 -463
- 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 +50 -907
- 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 +17 -151
- package/dist/frontend/lowering/lowerer.js +73 -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.js +1 -1
- package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
- 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 +12 -97
- 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 +42 -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 +3 -3
- package/dist/ir/int32-slots.js +5 -19
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +1 -1
- package/dist/ir/ir.d.ts +12 -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 +1 -1
- package/dist/ir/serialize.js +3 -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.test.js +1 -1
- 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 +5 -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.d.ts +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.d.ts +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.d.ts +0 -1
- package/dist/native/runtime-typescript.test.js +0 -41
- package/dist/native/runtime-typescript.test.js.map +0 -1
|
@@ -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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-arguments.js","sourceRoot":"","sources":["../../../src/frontend/lowering/call-arguments.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"call-arguments.js","sourceRoot":"","sources":["../../../src/frontend/lowering/call-arguments.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { type IrExpr, type IrFunction, type IrType } from "../../ir/ir.js";
|
|
|
9
9
|
* `rest` (always last) receives the surplus arguments packed into one array
|
|
10
10
|
* literal at each call site. `arguments` is a hidden slot containing every
|
|
11
11
|
* actual argument, including those bound to named parameters. */
|
|
12
|
-
export type ParamMode = "required" | "omittable" | "rest" | "dynRest" | "
|
|
12
|
+
export type ParamMode = "required" | "omittable" | "rest" | "dynRest" | "arguments";
|
|
13
13
|
/** One parameter of a signature, as call sites and callee prologues see it.
|
|
14
14
|
* `type` is the ABI type — what the emitted LLVM parameter carries: the
|
|
15
15
|
* checker's `T | undefined` union for `x?: T`, a synthesized `T | undefined`
|
|
@@ -43,11 +43,6 @@ export interface FnSig {
|
|
|
43
43
|
};
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
|
-
/** The one func-type projection of completed parameter shapes. Typed rest
|
|
47
|
-
* parameters keep their packed array as the trailing native ABI slot and
|
|
48
|
-
* mark the value variadic so indirect call sites run completeArgs before
|
|
49
|
-
* callValue. Dynamic rest remains the historical hidden ScrDyn slot, while
|
|
50
|
-
* island rest spells its engine-array slot directly. */
|
|
51
46
|
export declare function funcTypeFromParamShapes(shapes: readonly ParamShape[], ret: IrType): IrType & {
|
|
52
47
|
kind: "func";
|
|
53
48
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { InternalCompilerError } from "../../errors.js";
|
|
2
2
|
import * as ts from "../ts7/adapter.js";
|
|
3
3
|
import { bodyReadsArguments } from "../arguments-usage.js";
|
|
4
|
-
import { DYN,
|
|
4
|
+
import { DYN, UNDEFINED_T, VOID, isUnitType, typeEquals, } from "../../ir/ir.js";
|
|
5
5
|
import { isJsSourceFile, isNodeEsmFile } from "../program.js";
|
|
6
6
|
import { genResultRecord, jsOpenObjectType } from "../type-mapper.js";
|
|
7
7
|
import { dynFallbackType } from "./lowerer.js";
|
|
@@ -12,27 +12,19 @@ import { nsPathPrefix } from "./lower-namespaces.js";
|
|
|
12
12
|
import { declSymbolOf } from "./lower-modules.js";
|
|
13
13
|
import { npmStaticPackageOfPath } from "../npm-static.js";
|
|
14
14
|
import { implicitMonoFile, implicitAnyParamSymbolsOf } from "./generic-functions.js";
|
|
15
|
-
/** The one func-type projection of completed parameter shapes. Typed rest
|
|
16
|
-
* parameters keep their packed array as the trailing native ABI slot and
|
|
17
|
-
* mark the value variadic so indirect call sites run completeArgs before
|
|
18
|
-
* callValue. Dynamic rest remains the historical hidden ScrDyn slot, while
|
|
19
|
-
* island rest spells its engine-array slot directly. */
|
|
20
15
|
export function funcTypeFromParamShapes(shapes, ret) {
|
|
21
16
|
const typedRest = shapes.some((shape) => shape.mode === "rest");
|
|
22
17
|
const dynRest = shapes.some((shape) => shape.mode === "dynRest");
|
|
23
18
|
const argumentsAll = shapes.some((shape) => shape.mode === "arguments");
|
|
24
|
-
const islandRest = shapes.some((shape) => shape.mode === "islandRest");
|
|
25
19
|
return {
|
|
26
20
|
kind: "func",
|
|
27
21
|
params: shapes
|
|
28
22
|
.filter((shape) => shape.mode !== "dynRest" && shape.mode !== "arguments")
|
|
29
23
|
.map((shape) => shape.type),
|
|
30
24
|
ret,
|
|
31
|
-
...(typedRest || dynRest ||
|
|
25
|
+
...(typedRest || dynRest || argumentsAll ? { rest: true } : {}),
|
|
32
26
|
...(argumentsAll ? { argumentsAll: true } : {}),
|
|
33
|
-
...(typedRest
|
|
34
|
-
? { restAbi: typedRest ? "typed" : "jsval" }
|
|
35
|
-
: {}),
|
|
27
|
+
...(typedRest ? { restAbi: "typed" } : {}),
|
|
36
28
|
};
|
|
37
29
|
}
|
|
38
30
|
/** Registers `const alias = overloadedDeclaration` as a compile-time
|
|
@@ -148,12 +140,6 @@ export function paramShape(lowerer, param) {
|
|
|
148
140
|
if (moduleNs !== undefined) {
|
|
149
141
|
return { type: moduleNs, mode: param.questionToken ? "omittable" : "required" };
|
|
150
142
|
}
|
|
151
|
-
// Island-handle params (a then-handler receiving a dynamic import's
|
|
152
|
-
// namespace handle — markJsvalHandlerParams): jsval, whatever the
|
|
153
|
-
// contextual type spelled.
|
|
154
|
-
if (ts.isIdentifier(param.name) && lowerer.jsvalParamOverrides.has(param)) {
|
|
155
|
-
return { type: JSVAL, mode: param.questionToken ? "omittable" : "required" };
|
|
156
|
-
}
|
|
157
143
|
if (!ts.isIdentifier(param.name)) {
|
|
158
144
|
// A destructuring pattern parameter — `([label, value]) => ...`,
|
|
159
145
|
// `({ x }) => ...`. The ABI slot carries the SOURCE value (the
|
|
@@ -200,15 +186,7 @@ export function paramShape(lowerer, param) {
|
|
|
200
186
|
// `rest`, and the value only ever calls through the boxed thunk).
|
|
201
187
|
if (isJsSourceFile(param.getSourceFile())) {
|
|
202
188
|
const restMapped = lowerer.mapTypeOf(lowerer.typeOf(param.name));
|
|
203
|
-
//
|
|
204
|
-
// is inference residue, not element information; the binding is
|
|
205
|
-
// the ENGINE's own arguments array (an island handle) and the
|
|
206
|
-
// value crosses as a REST host function (the withPlugins
|
|
207
|
-
// `async (...args) =>` shape). Static builds keep the variadic
|
|
208
|
-
// dyn form for every unmappable JS rest.
|
|
209
|
-
if (restMapped?.kind === "array" && restMapped.elem.kind === "jsval" && lowerer.dynamic) {
|
|
210
|
-
return { type: JSVAL, mode: "islandRest" };
|
|
211
|
-
}
|
|
189
|
+
// Unmapped JS rest parameters use the native variadic checked-value ABI.
|
|
212
190
|
if (restMapped?.kind !== "array") {
|
|
213
191
|
return { type: DYN, mode: "dynRest" };
|
|
214
192
|
}
|
|
@@ -236,10 +214,7 @@ export function paramShape(lowerer, param) {
|
|
|
236
214
|
}
|
|
237
215
|
let type = lowerer.runtimeOptionalBindingType(param.name, lowerer.irTypeOf(param.name));
|
|
238
216
|
const body = param.parent?.body;
|
|
239
|
-
if (isJsSourceFile(param.getSourceFile()) &&
|
|
240
|
-
body &&
|
|
241
|
-
type.kind !== "dyn" &&
|
|
242
|
-
type.kind !== "jsval") {
|
|
217
|
+
if (isJsSourceFile(param.getSourceFile()) && body && type.kind !== "dyn") {
|
|
243
218
|
const symbol = lowerer.checker.getSymbolAtLocation(param.name);
|
|
244
219
|
let acceptsUndefined = false;
|
|
245
220
|
ts.walkPreorder(body, (node) => {
|
|
@@ -267,17 +242,9 @@ export function paramShape(lowerer, param) {
|
|
|
267
242
|
if (type.kind === "void") {
|
|
268
243
|
return { type: DYN, mode: param.questionToken ? "omittable" : "required" };
|
|
269
244
|
}
|
|
270
|
-
if (param.questionToken &&
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
type.kind !== "jsval") {
|
|
274
|
-
// `x?: unknown` where unknown came from an annotation: undefined is
|
|
275
|
-
// absorbed into the hole type, so no undefined ARM exists — but a
|
|
276
|
-
// checked-dynamic slot holds the dyn undefined directly (`bar?: any`
|
|
277
|
-
// — an omitted call passes it, undefinedArgFor), and an island slot
|
|
278
|
-
// the engine's own undefined likewise (`options?: [string?]` — an
|
|
279
|
-
// optional-tuple param, jsval-mapped), so dyn and jsval params stay
|
|
280
|
-
// omittable.
|
|
245
|
+
if (param.questionToken && !lowerer.bareUndefinedArmedUnion(type) && type.kind !== "dyn") {
|
|
246
|
+
// An omitted argument requires an undefined union arm or a native
|
|
247
|
+
// checked-value slot that can hold undefined directly.
|
|
281
248
|
lowerer.unsupported("SC1090", param, `optional parameters of type '${lowerer.fmt(type)}'`);
|
|
282
249
|
}
|
|
283
250
|
return { type, mode: param.questionToken ? "omittable" : "required" };
|
|
@@ -322,7 +289,7 @@ export function paramShapes(lowerer, params, signature, blameOf) {
|
|
|
322
289
|
* so checking only a mapped undefinedT silently erased a valid value.
|
|
323
290
|
* Shared by declared and instantiated signatures, including destructuring. */
|
|
324
291
|
function defaultParameterShape(lowerer, param, raw) {
|
|
325
|
-
if (raw.kind === "dyn"
|
|
292
|
+
if (raw.kind === "dyn") {
|
|
326
293
|
return { type: raw, mode: "omittable", bodyType: raw };
|
|
327
294
|
}
|
|
328
295
|
if (lowerer.bareUndefinedArmedUnion(raw) && param.initializer) {
|
|
@@ -353,7 +320,6 @@ export function checkDefaultParamBodyType(lowerer, param, bodyType) {
|
|
|
353
320
|
bodyType.kind === "regex" ||
|
|
354
321
|
bodyType.kind === "date" ||
|
|
355
322
|
bodyType.kind === "dyn" ||
|
|
356
|
-
bodyType.kind === "jsval" ||
|
|
357
323
|
isUnitType(bodyType)) {
|
|
358
324
|
lowerer.unsupported("SC1090", param, `parameter default values on '${lowerer.fmt(bodyType)}'-typed parameters`);
|
|
359
325
|
}
|
|
@@ -367,16 +333,14 @@ export function checkDefaultParamBodyType(lowerer, param, bodyType) {
|
|
|
367
333
|
export function requireExactArityValue(lowerer, blame, contextual, shapes, funcType) {
|
|
368
334
|
// dynRest params ride the boxed thunk (JS arity — no completed-ABI
|
|
369
335
|
// spelling exists or is needed); they don't gate the value form.
|
|
370
|
-
//
|
|
371
|
-
// slots) don't either: their ABI slot IS the declared param type (no
|
|
336
|
+
// Omittable checked-value slots also keep their declared param type (no
|
|
372
337
|
// synthesized union), so every func-type spelling of the signature
|
|
373
338
|
// already matches and short calls through the value complete with the
|
|
374
|
-
//
|
|
339
|
+
// native undefined value (omittedArgFor).
|
|
375
340
|
if (shapes.every((s) => s.mode === "required" ||
|
|
376
341
|
s.mode === "dynRest" ||
|
|
377
342
|
s.mode === "arguments" ||
|
|
378
|
-
s.mode === "
|
|
379
|
-
(s.mode === "omittable" && (s.type.kind === "dyn" || s.type.kind === "jsval")))) {
|
|
343
|
+
(s.mode === "omittable" && s.type.kind === "dyn"))) {
|
|
380
344
|
return;
|
|
381
345
|
}
|
|
382
346
|
// The type the value FLOWS under must spell the completed ABI: the
|
|
@@ -440,23 +404,11 @@ export function requireExactArityValue(lowerer, blame, contextual, shapes, funcT
|
|
|
440
404
|
npmStaticPackageOfPath(contextual.getSourceFile().fileName) !== null) {
|
|
441
405
|
return;
|
|
442
406
|
}
|
|
443
|
-
// An 'any'-typed slot is the ISLAND boundary: the host-function
|
|
444
|
-
// trampoline already implements JS call semantics over the completed
|
|
445
|
-
// signature — a missing engine argument arrives as undefined and takes
|
|
446
|
-
// the omittable param's undefined arm (which is what triggers the
|
|
447
|
-
// default), surplus arguments drop. So a function with optional/
|
|
448
|
-
// defaulted params may flow into a package API whenever the completed
|
|
449
|
-
// signature can cross at all (jsvalIn re-checks and speaks otherwise) —
|
|
450
|
-
// commander's `.option(flags, desc, collector, [])` pattern.
|
|
451
|
-
if (mapped?.kind === "jsval" &&
|
|
452
|
-
canMarshalTypedFuncIntoIsland(funcType, (id) => lowerer.shapes.get(id), (id) => lowerer.unions.get(id))) {
|
|
453
|
-
return;
|
|
454
|
-
}
|
|
455
407
|
lowerer.unsupported("SC1090", blame, "functions with optional or defaulted parameters as values, except where the " +
|
|
456
408
|
"target type spells the completed signature with required parameters " +
|
|
457
409
|
"(a '(x?: T) => R' function flows into a '(x: T | undefined) => R' slot, " +
|
|
458
|
-
"and a package/'any' slot takes any
|
|
459
|
-
"
|
|
410
|
+
"and a package/'any' slot takes any natively representable signature; " +
|
|
411
|
+
"otherwise call the function directly)");
|
|
460
412
|
}
|
|
461
413
|
export function collectSignature(lowerer, decl) {
|
|
462
414
|
lowerer.collectDeferring(() => declSymbolOf(lowerer, decl), () => lowerer.collectSignatureInner(decl));
|
|
@@ -557,7 +509,7 @@ export function collectSignatureInner(lowerer, decl) {
|
|
|
557
509
|
* Class methods are strict; other parameterized forms require ES modules
|
|
558
510
|
* because sloppy-mode arguments alias named parameters. */
|
|
559
511
|
function appendArgumentsParameter(lowerer, node, shapes, mode) {
|
|
560
|
-
if (shapes.some((s) => s.mode === "rest" || s.mode === "dynRest"
|
|
512
|
+
if (shapes.some((s) => s.mode === "rest" || s.mode === "dynRest") ||
|
|
561
513
|
!(ts.isFunctionExpression(node) ||
|
|
562
514
|
ts.isFunctionDeclaration(node) ||
|
|
563
515
|
ts.isMethodDeclaration(node)) ||
|
|
@@ -660,8 +612,6 @@ export function lambdaSignature(lowerer, node) {
|
|
|
660
612
|
// ASYNC lambdas adopt through the promise: an inferred Promise<record>
|
|
661
613
|
// against a Promise<union> slot returns the union promise (the fiber's
|
|
662
614
|
// returns coerce; the spawn-wrapper ABI still returns a promise).
|
|
663
|
-
// jsval-returning bodies stay out (adoption would force validated
|
|
664
|
-
// exits the writer never asked for).
|
|
665
615
|
// Array and record returns also need the destination during literal
|
|
666
616
|
// construction: a callback building IrStmt[] must wrap each element at
|
|
667
617
|
// that recursive layout instead of first inferring narrower arrays.
|
|
@@ -670,10 +620,8 @@ export function lambdaSignature(lowerer, node) {
|
|
|
670
620
|
const innerRet = isAsyncLike && ret.kind === "promise" ? ret.inner : ret;
|
|
671
621
|
// Union-inferred returns adopt too (a mixed-return body inferring a
|
|
672
622
|
// SUB-union of the slot's union — adopting is a no-op when the two
|
|
673
|
-
// already agree); only jsval stays out.
|
|
674
623
|
if ((ts.isArrowFunction(node) || ts.isFunctionExpression(node)) &&
|
|
675
|
-
(!isAsyncLike || ret.kind === "promise")
|
|
676
|
-
innerRet.kind !== "jsval") {
|
|
624
|
+
(!isAsyncLike || ret.kind === "promise")) {
|
|
677
625
|
// The slot's signature: the contextual type stripped of its nullish
|
|
678
626
|
// parts (an OPTIONAL callback field's context is the whole
|
|
679
627
|
// `(...) | undefined` union) with exactly one call signature — and
|