@scriptc/compiler 0.2.6 → 0.2.7
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 +5 -18
- package/dist/backend/cycle-analysis.d.ts +21 -9
- package/dist/backend/cycle-analysis.js +139 -67
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +283 -3
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/cycle-mutability.d.ts +39 -0
- package/dist/backend/cycle-mutability.js +205 -0
- package/dist/backend/cycle-mutability.js.map +1 -0
- package/dist/backend/link-plan-core.d.ts +2 -1
- package/dist/backend/link-plan-core.js +15 -3
- package/dist/backend/link-plan-core.js.map +1 -1
- package/dist/backend/link-plan.d.ts +2 -1
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +40 -0
- package/dist/backend/llvm/alloc.js +205 -0
- package/dist/backend/llvm/alloc.js.map +1 -0
- package/dist/backend/llvm/alloc.test.d.ts +1 -0
- package/dist/backend/llvm/alloc.test.js +102 -0
- package/dist/backend/llvm/alloc.test.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.d.ts +15 -3
- package/dist/backend/llvm/call-lifetimes.js +42 -18
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +170 -0
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +4 -1
- package/dist/backend/llvm/classes.js +35 -32
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +36 -3
- 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 +30 -0
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.d.ts +19 -3
- package/dist/backend/llvm/constant-callbacks.js +289 -52
- package/dist/backend/llvm/constant-callbacks.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.test.js +140 -3
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.d.ts +29 -0
- package/dist/backend/llvm/dense-array-access.js +335 -0
- package/dist/backend/llvm/dense-array-access.js.map +1 -0
- package/dist/backend/llvm/dense-array-access.test.d.ts +1 -0
- package/dist/backend/llvm/dense-array-access.test.js +149 -0
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +34 -0
- package/dist/backend/llvm/dyn.js +189 -1
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +124 -4
- package/dist/backend/llvm/emitter.js +623 -105
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +68 -6
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +58 -4
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-async.test.d.ts +1 -0
- package/dist/backend/llvm/expr-async.test.js +62 -0
- package/dist/backend/llvm/expr-async.test.js.map +1 -0
- package/dist/backend/llvm/expr-calls.js +64 -6
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js +16 -5
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-control.js +92 -2
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.js +2 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +174 -25
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +1 -1
- package/dist/backend/llvm/expr-primitives.js +52 -24
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +1 -1
- package/dist/backend/llvm/expr-records.js +3 -3
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +59 -2
- 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/integer-remainder.d.ts +11 -0
- package/dist/backend/llvm/integer-remainder.js +91 -0
- package/dist/backend/llvm/integer-remainder.js.map +1 -1
- package/dist/backend/llvm/layouts.d.ts +2 -1
- package/dist/backend/llvm/layouts.js +3 -2
- package/dist/backend/llvm/layouts.js.map +1 -1
- package/dist/backend/llvm/lazy-captures.d.ts +16 -0
- package/dist/backend/llvm/lazy-captures.js +96 -0
- package/dist/backend/llvm/lazy-captures.js.map +1 -0
- package/dist/backend/llvm/lazy-captures.test.d.ts +1 -0
- package/dist/backend/llvm/lazy-captures.test.js +78 -0
- package/dist/backend/llvm/lazy-captures.test.js.map +1 -0
- package/dist/backend/llvm/lib-filesystem.js +3 -4
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.d.ts +5 -1
- package/dist/backend/llvm/local-array-reads.js +78 -17
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +78 -1
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.d.ts +5 -1
- package/dist/backend/llvm/local-union-storage.js +48 -6
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +91 -4
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +1 -1
- package/dist/backend/llvm/nullable-fields.d.ts +28 -0
- package/dist/backend/llvm/nullable-fields.js +45 -0
- package/dist/backend/llvm/nullable-fields.js.map +1 -0
- package/dist/backend/llvm/nullable-fields.test.d.ts +1 -0
- package/dist/backend/llvm/nullable-fields.test.js +48 -0
- package/dist/backend/llvm/nullable-fields.test.js.map +1 -0
- package/dist/backend/llvm/serialized-ir-emission.test.d.ts +1 -0
- package/dist/backend/llvm/serialized-ir-emission.test.js +52 -0
- package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +69 -2
- package/dist/backend/llvm/shapes.js +259 -27
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +114 -5
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/stack-callbacks.js +2 -3
- package/dist/backend/llvm/stack-callbacks.js.map +1 -1
- package/dist/backend/llvm/stack-captures.d.ts +3 -1
- package/dist/backend/llvm/stack-captures.js +5 -3
- package/dist/backend/llvm/stack-captures.js.map +1 -1
- package/dist/backend/llvm/stack-unions.test.js +38 -1
- package/dist/backend/llvm/stack-unions.test.js.map +1 -1
- package/dist/backend/llvm/string-construction.test.js +1 -1
- package/dist/backend/llvm/string-key-hash.d.ts +8 -0
- package/dist/backend/llvm/string-key-hash.js +59 -0
- package/dist/backend/llvm/string-key-hash.js.map +1 -0
- package/dist/backend/llvm/string-key-hash.test.d.ts +1 -0
- package/dist/backend/llvm/string-key-hash.test.js +34 -0
- package/dist/backend/llvm/string-key-hash.test.js.map +1 -0
- package/dist/backend/llvm/string-lifetimes.test.js +41 -4
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/switch-dispatch.js +1 -1
- package/dist/backend/llvm/switch-dispatch.js.map +1 -1
- package/dist/backend/llvm/switch-dispatch.test.js +2 -2
- package/dist/backend/llvm/switch-dispatch.test.js.map +1 -1
- package/dist/backend/may-throw.js +3 -0
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +1 -1
- package/dist/backend/native/cache-warm.d.ts +2 -1
- package/dist/backend/native/cache-warm.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +3 -2
- package/dist/backend/native/contracts.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +1 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native-codegen-core.d.ts +2 -1
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +5 -0
- package/dist/backend/native-codegen.js +4 -0
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +23 -0
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +3 -2
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/native-link-info.d.ts +2 -1
- package/dist/backend/native-link-info.js.map +1 -1
- package/dist/backend/native-link-info.test.js +2 -2
- package/dist/backend/native-link-info.test.js.map +1 -1
- package/dist/backend/native-tools.d.ts +3 -1
- package/dist/backend/native-tools.js +0 -1
- package/dist/backend/native-tools.js.map +1 -1
- package/dist/backend/optimization.d.ts +25 -0
- package/dist/backend/optimization.js +21 -0
- package/dist/backend/optimization.js.map +1 -0
- package/dist/backend/optimization.test.d.ts +1 -0
- package/dist/backend/optimization.test.js +24 -0
- package/dist/backend/optimization.test.js.map +1 -0
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-core.d.ts +15 -4
- package/dist/backend/runtime-pack-core.js +23 -12
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-native.d.ts +7 -3
- package/dist/backend/runtime-pack-native.js +0 -3
- package/dist/backend/runtime-pack-native.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.d.ts +20 -2
- package/dist/backend/runtime-pack.js +23 -0
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +115 -2
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +1 -1
- package/dist/backend/targets.d.ts +2 -1
- package/dist/backend/targets.js +1 -1
- package/dist/backend/targets.js.map +1 -1
- package/dist/cli/command.js +5 -4
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/host.d.ts +2 -1
- package/dist/cli/usage.d.ts +1 -1
- package/dist/cli/usage.js +5 -2
- package/dist/cli/usage.js.map +1 -1
- package/dist/compile-types.d.ts +5 -2
- package/dist/diagnostics/diagnostic.js +10 -8
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +2 -2
- package/dist/executable/executable-cache.js +7 -4
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +20 -0
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/frontend/lowering/abstract-equality.js +5 -49
- package/dist/frontend/lowering/abstract-equality.js.map +1 -1
- package/dist/frontend/lowering/array-values.d.ts +23 -0
- package/dist/frontend/lowering/array-values.js +129 -0
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.js +17 -2
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.d.ts +6 -17
- package/dist/frontend/lowering/builtins/process.js +56 -29
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/caught-value-dispatch.d.ts +11 -0
- package/dist/frontend/lowering/caught-value-dispatch.js +87 -0
- package/dist/frontend/lowering/caught-value-dispatch.js.map +1 -0
- package/dist/frontend/lowering/class-assertions.d.ts +4 -0
- package/dist/frontend/lowering/class-assertions.js +12 -4
- package/dist/frontend/lowering/class-assertions.js.map +1 -1
- package/dist/frontend/lowering/class-callbacks.d.ts +3 -3
- package/dist/frontend/lowering/class-callbacks.js +18 -5
- package/dist/frontend/lowering/class-callbacks.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +4 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-method-mutations.d.ts +5 -0
- package/dist/frontend/lowering/class-method-mutations.js +472 -0
- package/dist/frontend/lowering/class-method-mutations.js.map +1 -0
- package/dist/frontend/lowering/class-method-values.js +25 -5
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.js +8 -2
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-unions.d.ts +16 -0
- package/dist/frontend/lowering/class-unions.js +127 -0
- package/dist/frontend/lowering/class-unions.js.map +1 -0
- package/dist/frontend/lowering/coercions/builders.js +8 -1
- package/dist/frontend/lowering/coercions/builders.js.map +1 -1
- package/dist/frontend/lowering/coercions/function-adapters.js +2 -0
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
- package/dist/frontend/lowering/coercions/identity.d.ts +7 -0
- package/dist/frontend/lowering/coercions/identity.js +26 -0
- package/dist/frontend/lowering/coercions/identity.js.map +1 -0
- package/dist/frontend/lowering/coercions/structural.js +9 -6
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/collection-narrowing.d.ts +6 -0
- package/dist/frontend/lowering/collection-narrowing.js +31 -0
- package/dist/frontend/lowering/collection-narrowing.js.map +1 -0
- package/dist/frontend/lowering/containers/array-callback-call.d.ts +7 -0
- package/dist/frontend/lowering/containers/array-callback-call.js +52 -0
- package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -0
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.js +363 -49
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-concat.d.ts +7 -0
- package/dist/frontend/lowering/containers/array-concat.js +130 -0
- package/dist/frontend/lowering/containers/array-concat.js.map +1 -0
- package/dist/frontend/lowering/containers/array-construction.d.ts +2 -0
- package/dist/frontend/lowering/containers/array-construction.js +95 -3
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.d.ts +1 -11
- package/dist/frontend/lowering/containers/array-methods.js +43 -132
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +10 -1
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +56 -70
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.d.ts +41 -0
- package/dist/frontend/lowering/cycle-initialization.js +277 -0
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -0
- package/dist/frontend/lowering/expressions/evaluation-safety.js +4 -0
- package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +138 -32
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-field-write.d.ts +4 -4
- package/dist/frontend/lowering/expressions/union-field-write.js +54 -44
- package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -1
- package/dist/frontend/lowering/iterator-adapters.d.ts +20 -0
- package/dist/frontend/lowering/iterator-adapters.js +605 -0
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -0
- package/dist/frontend/lowering/lower-array-sort.d.ts +1 -1
- package/dist/frontend/lowering/lower-array-sort.js +44 -5
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.test.d.ts +1 -0
- package/dist/frontend/lowering/lower-array-sort.test.js +31 -0
- package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -0
- package/dist/frontend/lowering/lower-assert.js +7 -0
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.js +1 -0
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +3 -3
- package/dist/frontend/lowering/lower-calls.js +162 -121
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +2 -0
- package/dist/frontend/lowering/lower-classes.js +45 -43
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +9 -2
- package/dist/frontend/lowering/lower-exprs.js +390 -157
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +32 -19
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +26 -2
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +10 -2
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +46 -58
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +37 -0
- package/dist/frontend/lowering/lowerer.js +283 -18
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.js +3 -1
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-provenance.d.ts +15 -0
- package/dist/frontend/lowering/runtime-optional-provenance.js +40 -0
- package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -0
- package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
- package/dist/frontend/lowering/strict-equality.d.ts +9 -0
- package/dist/frontend/lowering/strict-equality.js +116 -0
- package/dist/frontend/lowering/strict-equality.js.map +1 -0
- package/dist/frontend/lowering/surfaces.js +3 -0
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/union-comparison.d.ts +5 -0
- package/dist/frontend/lowering/union-comparison.js +47 -0
- package/dist/frontend/lowering/union-comparison.js.map +1 -0
- package/dist/frontend/program.d.ts +38 -2
- package/dist/frontend/program.js +440 -59
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +59 -6
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +1 -1
- package/dist/frontend/type-mapper.js +89 -14
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +15 -3
- package/dist/frontend/type-mapper.test.js.map +1 -1
- package/dist/index.js +25 -9
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +3 -1
- package/dist/ir/analysis.js +4 -0
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/builtin-signatures.js +2 -3
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/constant-tables.test.js +1 -1
- package/dist/ir/initializer-bindings.test.js +1 -1
- package/dist/ir/ir.d.ts +78 -15
- package/dist/ir/ir.js +20 -6
- package/dist/ir/ir.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 +8 -0
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +118 -20
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +269 -8
- package/dist/ir/validate.test.js.map +1 -1
- 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/library-profile.d.ts +2 -1
- package/dist/library/library-profile.js +4 -3
- package/dist/library/library-profile.js.map +1 -1
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/compiler.test.js +2 -2
- package/dist/native/library.d.ts +2 -1
- package/dist/native/library.js.map +1 -1
- package/dist/native/prepare.js +27 -3
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/sanitizer.d.ts +3 -2
- package/dist/native/sanitizer.js +3 -13
- package/dist/native/sanitizer.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +8 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lower-builtin-values.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-builtin-values.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lower-builtin-values.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-builtin-values.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,9 +50,9 @@ export declare function lowerPromiseMethodCall(lowerer: Lowerer, call: ts.CallEx
|
|
|
50
50
|
export declare function lowerFilterNarrowCall(lowerer: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
|
|
51
51
|
/** The interned keys-array helper over a FIXED record shape: a call of a
|
|
52
52
|
* lifted helper whose body pushes each declared field name in first-seen
|
|
53
|
-
* DECLARATION order, skipping fields
|
|
54
|
-
*
|
|
55
|
-
*
|
|
53
|
+
* DECLARATION order, skipping optional fields that are currently absent
|
|
54
|
+
* (omitted or deleted — Node's missing key; a field explicitly holding
|
|
55
|
+
* undefined is present and listed). ONE
|
|
56
56
|
* construction, interned per shape, shared by Object.keys and for-in —
|
|
57
57
|
* for-in iterates exactly the keys Object.keys answers. */
|
|
58
58
|
export declare function recordKeysArrayCall(lowerer: Lowerer, receiver: IrExpr, argIr: IrType & {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { lowerUnionEquality, tagEqualityMayMissAlias } from "./strict-equality.js";
|
|
2
|
+
import { lowerArrayCallbackCall } from "./containers/array-callback-call.js";
|
|
1
3
|
/** Dispatch source calls, builtin members and receiver-specific operations.
|
|
2
4
|
* Signature collection, argument completion and function bodies have their
|
|
3
5
|
* own owners; this module selects the applicable call path. */
|
|
@@ -24,6 +26,7 @@ import { lowerGroupByStaticCall } from "./containers/collection-grouping.js";
|
|
|
24
26
|
import { lowerIteratorHelperCall } from "./containers/iterator-helpers.js";
|
|
25
27
|
import { lowerObjectAssignIndexShape, lowerObjectConstructor, lowerObjectFromEntriesCall, lowerObjectIterOverIndexShape, } from "./containers/indexed-objects.js";
|
|
26
28
|
import { lowerTupleReadMethodCall } from "./containers/array-methods.js";
|
|
29
|
+
import { tryFuseIndexRead } from "./array-values.js";
|
|
27
30
|
import { lowerBytesStaticCall } from "./containers/bytes.js";
|
|
28
31
|
import { lowerRegexMethodCall, lowerStringIndexCall, lowerStringMethodCall, lowerStringPaddingCall, lowerStringSplitCall, } from "./containers/string-and-regexp.js";
|
|
29
32
|
import { createRequireSpecOf } from "./builtins/module-bindings.js";
|
|
@@ -1143,6 +1146,23 @@ export function lowerCall(lowerer, expr) {
|
|
|
1143
1146
|
if (sig && !(jsSpreadArgs && spreadNeedsRuntimeArity(lowerer, sig.params, expr.arguments))) {
|
|
1144
1147
|
lowerer.noteEdge(sig.name);
|
|
1145
1148
|
const args = lowerer.completeArgs(expr.arguments, sig.params, loc, expr);
|
|
1149
|
+
const symbol = lowerer.resolveValueSymbol(expr.expression);
|
|
1150
|
+
const declaration = symbol ? lowerer.checker.valueDeclarationOf(symbol) : undefined;
|
|
1151
|
+
// A bare call supplies undefined as this, even inside a callback
|
|
1152
|
+
// currently carrying a receiver. The value-call ABI saves and
|
|
1153
|
+
// restores that ambient receiver around the function invocation.
|
|
1154
|
+
if (declaration &&
|
|
1155
|
+
ts.isFunctionDeclaration(declaration) &&
|
|
1156
|
+
declaration.parameters.some(isThisParameter)) {
|
|
1157
|
+
const callee = lowerer.lowerExpr(expr.expression);
|
|
1158
|
+
return reconcileOverloadReturn(lowerer, expr, {
|
|
1159
|
+
kind: "callValue",
|
|
1160
|
+
callee,
|
|
1161
|
+
args,
|
|
1162
|
+
type: sig.returnType,
|
|
1163
|
+
loc,
|
|
1164
|
+
});
|
|
1165
|
+
}
|
|
1146
1166
|
return reconcileOverloadReturn(lowerer, expr, {
|
|
1147
1167
|
kind: "call",
|
|
1148
1168
|
callee: sig.name,
|
|
@@ -1573,6 +1593,11 @@ export function lowerCall(lowerer, expr) {
|
|
|
1573
1593
|
!symbolFieldInfo(lowerer, expr.expression)) {
|
|
1574
1594
|
const access = expr.expression;
|
|
1575
1595
|
const value = tryLowerExpression(lowerer, access.expression);
|
|
1596
|
+
if (value?.type.kind === "array" && !isJsSourceFile(expr.getSourceFile())) {
|
|
1597
|
+
const callback = lowerArrayCallbackCall(lowerer, expr, access, value);
|
|
1598
|
+
if (callback)
|
|
1599
|
+
return callback;
|
|
1600
|
+
}
|
|
1576
1601
|
if (value?.type.kind === "dyn" ||
|
|
1577
1602
|
value?.type.kind === "generator" ||
|
|
1578
1603
|
(value &&
|
|
@@ -1996,6 +2021,23 @@ function lowerNumberConstructorValue(lowerer, argNode, loc) {
|
|
|
1996
2021
|
return { kind: "libCall", fn: "num.fromString", args: [arg], type: F64, loc };
|
|
1997
2022
|
if (arg.type.kind === "dyn")
|
|
1998
2023
|
return { kind: "libCall", fn: "dyn.numberConstructor", args: [arg], type: F64, loc };
|
|
2024
|
+
// Number(strings[i]) without boxing `string | undefined`: a missing slot
|
|
2025
|
+
// converts like undefined, to NaN.
|
|
2026
|
+
const indexedString = arg.type.kind === "union" &&
|
|
2027
|
+
arg.kind === "call" &&
|
|
2028
|
+
arg.args[0]?.type.kind === "array" &&
|
|
2029
|
+
arg.args[0].type.elem.kind === "string"
|
|
2030
|
+
? tryFuseIndexRead(lowerer, arg, F64, (read) => ({ kind: "libCall", fn: "num.fromString", args: [read], type: F64, loc }), {
|
|
2031
|
+
kind: "bin",
|
|
2032
|
+
op: "/",
|
|
2033
|
+
left: { kind: "numLit", value: 0, type: F64, loc },
|
|
2034
|
+
right: { kind: "numLit", value: 0, type: F64, loc },
|
|
2035
|
+
type: F64,
|
|
2036
|
+
loc,
|
|
2037
|
+
})
|
|
2038
|
+
: null;
|
|
2039
|
+
if (indexedString)
|
|
2040
|
+
return indexedString;
|
|
1999
2041
|
if (arg.type.kind === "union" && lowerer.dynConvertible(arg.type))
|
|
2000
2042
|
return {
|
|
2001
2043
|
kind: "libCall",
|
|
@@ -4199,13 +4241,13 @@ function implicitReceiverOverloadReturn(lowerer, expr) {
|
|
|
4199
4241
|
function reconcileOverloadReturn(lowerer, expr, call) {
|
|
4200
4242
|
const rsig = lowerer.checker.getResolvedSignature(expr);
|
|
4201
4243
|
const rdecl = rsig ? lowerer.checker.signatureDeclaration(rsig) : undefined;
|
|
4202
|
-
//
|
|
4203
|
-
//
|
|
4244
|
+
// Nominal covariant overrides share the base's return ABI, but retain
|
|
4245
|
+
// their declared subclass result at the call site. Unannotated fluent
|
|
4246
|
+
// JS overrides use the same bridge for their proven receiver result.
|
|
4204
4247
|
if (call.type.kind === "object" &&
|
|
4205
4248
|
rdecl &&
|
|
4206
4249
|
ts.isMethodDeclaration(rdecl) &&
|
|
4207
|
-
isJsSourceFile(rdecl.getSourceFile())
|
|
4208
|
-
returnsOnlyThis(rdecl)) {
|
|
4250
|
+
(!isJsSourceFile(rdecl.getSourceFile()) || returnsOnlyThis(rdecl))) {
|
|
4209
4251
|
call = lowerer.maybeNarrow(call, expr);
|
|
4210
4252
|
}
|
|
4211
4253
|
const resolvedOverload = rsig &&
|
|
@@ -5703,11 +5745,10 @@ function filterNarrowHelper(lowerer, test, elem, outElem, tag, loc) {
|
|
|
5703
5745
|
* no runtime walk. ORDER is the shape's first-seen DECLARATION order
|
|
5704
5746
|
* (threaded through the shape registry), which matches Node whenever
|
|
5705
5747
|
* objects are constructed in declaration order — the divergence for
|
|
5706
|
-
* reordered construction is SEMANTICS.md 36.
|
|
5707
|
-
*
|
|
5708
|
-
*
|
|
5709
|
-
*
|
|
5710
|
-
* it — same rule as jsonStringify, same SEMANTICS entry. Values wrap
|
|
5748
|
+
* reordered construction is SEMANTICS.md 36. Optional fields that are
|
|
5749
|
+
* absent (omitted or deleted) are SKIPPED at runtime, Node's missing key,
|
|
5750
|
+
* while an explicit `{ a: undefined }` is listed with its undefined
|
|
5751
|
+
* value. Values wrap
|
|
5711
5752
|
* into the checker's result-element type per field; a multi-arm field
|
|
5712
5753
|
* union that differs from the result union would need a re-tag — fenced.
|
|
5713
5754
|
* Null when this isn't an Object static over a fixed record (index
|
|
@@ -5826,9 +5867,9 @@ function lowerSymbolMethodCall(lowerer, call, access) {
|
|
|
5826
5867
|
}
|
|
5827
5868
|
/** The interned keys-array helper over a FIXED record shape: a call of a
|
|
5828
5869
|
* lifted helper whose body pushes each declared field name in first-seen
|
|
5829
|
-
* DECLARATION order, skipping fields
|
|
5830
|
-
*
|
|
5831
|
-
*
|
|
5870
|
+
* DECLARATION order, skipping optional fields that are currently absent
|
|
5871
|
+
* (omitted or deleted — Node's missing key; a field explicitly holding
|
|
5872
|
+
* undefined is present and listed). ONE
|
|
5832
5873
|
* construction, interned per shape, shared by Object.keys and for-in —
|
|
5833
5874
|
* for-in iterates exactly the keys Object.keys answers. */
|
|
5834
5875
|
export function recordKeysArrayCall(lowerer, receiver, argIr, shape, loc) {
|
|
@@ -5877,32 +5918,11 @@ export function recordKeysArrayCall(lowerer, receiver, argIr, shape, loc) {
|
|
|
5877
5918
|
},
|
|
5878
5919
|
loc,
|
|
5879
5920
|
};
|
|
5880
|
-
//
|
|
5921
|
+
// Fields that can be absent push behind their presence test (the
|
|
5881
5922
|
// key exists exactly when Object.keys would list it).
|
|
5882
|
-
const
|
|
5883
|
-
body.push(
|
|
5884
|
-
? {
|
|
5885
|
-
kind: "if",
|
|
5886
|
-
cond: {
|
|
5887
|
-
kind: "unionIsTag",
|
|
5888
|
-
unionId: f.type.unionId,
|
|
5889
|
-
tag: utag,
|
|
5890
|
-
negated: true,
|
|
5891
|
-
value: {
|
|
5892
|
-
kind: "recordGet",
|
|
5893
|
-
obj: ref,
|
|
5894
|
-
shapeId: argIr.shapeId,
|
|
5895
|
-
field: f.name,
|
|
5896
|
-
type: f.type,
|
|
5897
|
-
loc,
|
|
5898
|
-
},
|
|
5899
|
-
type: BOOL,
|
|
5900
|
-
loc,
|
|
5901
|
-
},
|
|
5902
|
-
then: [pushStmt],
|
|
5903
|
-
else_: null,
|
|
5904
|
-
loc,
|
|
5905
|
-
}
|
|
5923
|
+
const present = lowerer.recordFieldPresent(ref, argIr.shapeId, f.name, loc);
|
|
5924
|
+
body.push(present.kind === "recordHas"
|
|
5925
|
+
? { kind: "if", cond: present, then: [pushStmt], else_: null, loc }
|
|
5906
5926
|
: pushStmt);
|
|
5907
5927
|
}
|
|
5908
5928
|
body.push({ kind: "return", value: outRef, loc });
|
|
@@ -5916,9 +5936,9 @@ export function recordKeysArrayCall(lowerer, receiver, argIr, shape, loc) {
|
|
|
5916
5936
|
}
|
|
5917
5937
|
/** Interned `%obj.hasOwn.<n>(r, k)` — Object.hasOwn's membership walk
|
|
5918
5938
|
* over a record shape: the key compares against each
|
|
5919
|
-
* declared field name,
|
|
5939
|
+
* declared field name, optional fields answering by their presence
|
|
5920
5940
|
* (a key is own exactly when Object.keys would list it — the two share
|
|
5921
|
-
* the
|
|
5941
|
+
* the test), everything else true. Unmatched keys probe the overflow
|
|
5922
5942
|
* map when present, so explicit undefined values remain own keys. */
|
|
5923
5943
|
function recordHasOwnHelper(lowerer, shapeId, loc) {
|
|
5924
5944
|
const key = `obj.hasOwn:${shapeId}`;
|
|
@@ -5933,18 +5953,7 @@ function recordHasOwnHelper(lowerer, shapeId, loc) {
|
|
|
5933
5953
|
const kRef = { kind: "varRef", localId: "k.0", type: STRING, loc };
|
|
5934
5954
|
const body = [];
|
|
5935
5955
|
for (const f of shape.fields) {
|
|
5936
|
-
const
|
|
5937
|
-
const answer = utag >= 0 && f.type.kind === "union"
|
|
5938
|
-
? {
|
|
5939
|
-
kind: "unionIsTag",
|
|
5940
|
-
unionId: f.type.unionId,
|
|
5941
|
-
tag: utag,
|
|
5942
|
-
negated: true,
|
|
5943
|
-
value: { kind: "recordGet", obj: rRef, shapeId, field: f.name, type: f.type, loc },
|
|
5944
|
-
type: BOOL,
|
|
5945
|
-
loc,
|
|
5946
|
-
}
|
|
5947
|
-
: { kind: "boolLit", value: true, type: BOOL, loc };
|
|
5956
|
+
const answer = lowerer.recordFieldPresent(rRef, shapeId, f.name, loc);
|
|
5948
5957
|
body.push({
|
|
5949
5958
|
kind: "if",
|
|
5950
5959
|
cond: {
|
|
@@ -5982,8 +5991,9 @@ function recordHasOwnHelper(lowerer, shapeId, loc) {
|
|
|
5982
5991
|
}
|
|
5983
5992
|
/** Interned `%obj.assign.<n>(t, s)` — Object.assign's per-field copy
|
|
5984
5993
|
* over signature-free records (every source field lands on a same-named,
|
|
5985
|
-
* same-typed target field — the caller's gate):
|
|
5986
|
-
*
|
|
5994
|
+
* same-typed target field — the caller's gate): optional source fields
|
|
5995
|
+
* copy only when present (an explicit undefined copies), everything else
|
|
5996
|
+
* straight,
|
|
5987
5997
|
* and the TARGET returns (JS's aliasing). */
|
|
5988
5998
|
function recordAssignHelper(lowerer, targetShapeId, srcShapeId, loc) {
|
|
5989
5999
|
const key = `obj.assign:${targetShapeId}:${srcShapeId}`;
|
|
@@ -6015,23 +6025,9 @@ function recordAssignHelper(lowerer, targetShapeId, srcShapeId, loc) {
|
|
|
6015
6025
|
value: get,
|
|
6016
6026
|
loc,
|
|
6017
6027
|
};
|
|
6018
|
-
const
|
|
6019
|
-
body.push(
|
|
6020
|
-
? {
|
|
6021
|
-
kind: "if",
|
|
6022
|
-
cond: {
|
|
6023
|
-
kind: "unionIsTag",
|
|
6024
|
-
unionId: f.type.unionId,
|
|
6025
|
-
tag: utag,
|
|
6026
|
-
negated: true,
|
|
6027
|
-
value: get,
|
|
6028
|
-
type: BOOL,
|
|
6029
|
-
loc,
|
|
6030
|
-
},
|
|
6031
|
-
then: [set],
|
|
6032
|
-
else_: null,
|
|
6033
|
-
loc,
|
|
6034
|
-
}
|
|
6028
|
+
const present = lowerer.recordFieldPresent(sRef, srcShapeId, f.name, loc);
|
|
6029
|
+
body.push(present.kind === "recordHas"
|
|
6030
|
+
? { kind: "if", cond: present, then: [set], else_: null, loc }
|
|
6035
6031
|
: set);
|
|
6036
6032
|
}
|
|
6037
6033
|
body.push({ kind: "return", value: tRef, loc });
|
|
@@ -6309,6 +6305,9 @@ function lowerObjectStaticCall(lowerer, call, access) {
|
|
|
6309
6305
|
};
|
|
6310
6306
|
}
|
|
6311
6307
|
if (left.type.kind === "union" || right.type.kind === "union") {
|
|
6308
|
+
const compared = lowerUnionEquality(lowerer, left, right, false, true, loc);
|
|
6309
|
+
if (compared)
|
|
6310
|
+
return compared;
|
|
6312
6311
|
const ut = left.type.kind === "union" ? left.type : right.type;
|
|
6313
6312
|
const bothUnion = left.type.kind === "union" && right.type.kind === "union";
|
|
6314
6313
|
const sameUnion = bothUnion && typeEquals(left.type, right.type);
|
|
@@ -6316,9 +6315,16 @@ function lowerObjectStaticCall(lowerer, call, access) {
|
|
|
6316
6315
|
const plain = left.type.kind === "union" ? right : left;
|
|
6317
6316
|
const arms = lowerer.unions.get(ut.unionId)?.arms ?? [];
|
|
6318
6317
|
// The plain side wraps into the union exactly like === when the
|
|
6319
|
-
// union holds its type
|
|
6320
|
-
//
|
|
6321
|
-
|
|
6318
|
+
// union holds its type, or when a plain class instance upcasts
|
|
6319
|
+
// into exactly one class arm (the same pointer under a base tag);
|
|
6320
|
+
// a plain PRIMITIVE the union has no arm for is the disjoint
|
|
6321
|
+
// constant false (coercing it would strand).
|
|
6322
|
+
const plainType = plain.type;
|
|
6323
|
+
const upcastArm = plainType.kind === "object" &&
|
|
6324
|
+
arms.filter((a) => a.kind === "object" && lowerer.isSubclassOf(plainType.className, a.className)).length === 1;
|
|
6325
|
+
if (bothUnion || upcastArm || arms.some((a) => typeEquals(a, plain.type))) {
|
|
6326
|
+
if (tagEqualityMayMissAlias(lowerer, ut))
|
|
6327
|
+
lowerer.noLowering("Object.is over related class values beside structural union members", call, NARROW_FIRST);
|
|
6322
6328
|
const sameValue = arms.some((a) => a.kind === "f64");
|
|
6323
6329
|
return {
|
|
6324
6330
|
kind: "unionEq",
|
|
@@ -6530,12 +6536,10 @@ function lowerObjectStaticCall(lowerer, call, access) {
|
|
|
6530
6536
|
// (the mockable-clock restore: `Object.assign(mocked,
|
|
6531
6537
|
// implementations)` over one shape): the per-field copy helper,
|
|
6532
6538
|
// returning the TARGET — JS's aliasing, the target mutates in
|
|
6533
|
-
// place.
|
|
6534
|
-
// not
|
|
6535
|
-
//
|
|
6536
|
-
//
|
|
6537
|
-
// the explicit-undefined-is-absent stance). Everything else keeps
|
|
6538
|
-
// the spread hint.
|
|
6539
|
+
// place. Optional source fields copy only when present (an omitted
|
|
6540
|
+
// optional field must not erase the target's value — Node copies own
|
|
6541
|
+
// keys only — while an explicit `k: undefined` does). Everything
|
|
6542
|
+
// else keeps the spread hint.
|
|
6539
6543
|
if (call.arguments.length === 2 && !call.arguments.some((a) => ts.isSpreadElement(a))) {
|
|
6540
6544
|
const tProbe = tryLowerExpression(lowerer, call.arguments[0]);
|
|
6541
6545
|
const sProbe = tryLowerExpression(lowerer, call.arguments[1]);
|
|
@@ -6912,11 +6916,9 @@ function lowerObjectStaticCall(lowerer, call, access) {
|
|
|
6912
6916
|
}
|
|
6913
6917
|
// `Object.hasOwn(r, k)` over a RECORD receiver: a record's own-key set
|
|
6914
6918
|
// is its declared field list, so membership is a compare chain against
|
|
6915
|
-
// the field names (interned per shape).
|
|
6916
|
-
//
|
|
6917
|
-
//
|
|
6918
|
-
// as NOT own, exactly Node's absent key (an EXPLICIT `k: undefined`
|
|
6919
|
-
// diverges — documented next to the child-env/JSON rule). Tuple
|
|
6919
|
+
// the field names (interned per shape). Optional fields answer by
|
|
6920
|
+
// their runtime presence: an omitted or deleted optional field is NOT
|
|
6921
|
+
// own, while an explicit `k: undefined` is, exactly Node's keys. Tuple
|
|
6920
6922
|
// and accessor-carrying shapes keep the SC2020 fence. Index-signature
|
|
6921
6923
|
// records additionally probe the overflow map; non-record receivers
|
|
6922
6924
|
// do too.
|
|
@@ -7195,8 +7197,8 @@ function lowerObjectStaticCall(lowerer, call, access) {
|
|
|
7195
7197
|
}
|
|
7196
7198
|
return null;
|
|
7197
7199
|
};
|
|
7198
|
-
// Undefined-armed fields: the push is guarded by
|
|
7199
|
-
//
|
|
7200
|
+
// Undefined-armed fields: the push is guarded by the field's
|
|
7201
|
+
// presence; a narrowed push re-tags the non-undefined arm.
|
|
7200
7202
|
let guardUndefTag = null;
|
|
7201
7203
|
let value = raw;
|
|
7202
7204
|
let vt = f.type;
|
|
@@ -7247,46 +7249,83 @@ function lowerObjectStaticCall(lowerer, call, access) {
|
|
|
7247
7249
|
lowerer.unsupported("SC1090", call, `Object.${member} over '${lowerer.fmt(argIr)}' (field '${f.name}' of type '${lowerer.fmt(f.type)}' ` +
|
|
7248
7250
|
`cannot flow into the '${lowerer.fmt(valueT)}' result element — read the fields directly)`);
|
|
7249
7251
|
}
|
|
7250
|
-
const
|
|
7251
|
-
? coerced
|
|
7252
|
-
: {
|
|
7253
|
-
kind: "recordLit",
|
|
7254
|
-
fields: [
|
|
7255
|
-
{ name: "0", value: { kind: "strLit", value: f.name, type: STRING, loc } },
|
|
7256
|
-
{ name: "1", value: coerced },
|
|
7257
|
-
],
|
|
7258
|
-
type: tupleT,
|
|
7259
|
-
loc,
|
|
7260
|
-
};
|
|
7261
|
-
const pushStmt = {
|
|
7252
|
+
const pushOf = (element) => ({
|
|
7262
7253
|
kind: "exprStmt",
|
|
7263
7254
|
expr: {
|
|
7264
7255
|
kind: "arrIntrinsic",
|
|
7265
7256
|
method: "push",
|
|
7266
7257
|
receiver: outRef,
|
|
7267
|
-
args: [
|
|
7258
|
+
args: [
|
|
7259
|
+
member === "values"
|
|
7260
|
+
? element
|
|
7261
|
+
: {
|
|
7262
|
+
kind: "recordLit",
|
|
7263
|
+
fields: [
|
|
7264
|
+
{ name: "0", value: { kind: "strLit", value: f.name, type: STRING, loc } },
|
|
7265
|
+
{ name: "1", value: element },
|
|
7266
|
+
],
|
|
7267
|
+
type: tupleT,
|
|
7268
|
+
loc,
|
|
7269
|
+
},
|
|
7270
|
+
],
|
|
7268
7271
|
type: F64,
|
|
7269
7272
|
loc,
|
|
7270
7273
|
},
|
|
7271
7274
|
loc,
|
|
7272
|
-
};
|
|
7273
|
-
|
|
7274
|
-
|
|
7275
|
-
|
|
7276
|
-
|
|
7277
|
-
|
|
7278
|
-
|
|
7279
|
-
|
|
7280
|
-
|
|
7281
|
-
|
|
7282
|
-
|
|
7275
|
+
});
|
|
7276
|
+
let stmt = pushOf(coerced);
|
|
7277
|
+
if (guardUndefTag !== null && f.type.kind === "union") {
|
|
7278
|
+
if (value !== raw) {
|
|
7279
|
+
// A narrowed push: a present field holding undefined pushes
|
|
7280
|
+
// the result element's own undefined when it has one; a values
|
|
7281
|
+
// array without one stores a present undefined element (a
|
|
7282
|
+
// runtime-optional field the checker typed as required). An
|
|
7283
|
+
// entries tuple slot has no spelling for it.
|
|
7284
|
+
const undefinedElement = valueT ? lowerer.wrappedUndefined(valueT, loc) : null;
|
|
7285
|
+
const undefinedPush = undefinedElement
|
|
7286
|
+
? pushOf(undefinedElement)
|
|
7287
|
+
: member === "values"
|
|
7288
|
+
? {
|
|
7289
|
+
kind: "arraySetUndefined",
|
|
7290
|
+
arr: outRef,
|
|
7291
|
+
index: {
|
|
7292
|
+
kind: "arrIntrinsic",
|
|
7293
|
+
method: "length",
|
|
7294
|
+
receiver: outRef,
|
|
7295
|
+
args: [],
|
|
7296
|
+
type: F64,
|
|
7297
|
+
loc,
|
|
7298
|
+
},
|
|
7299
|
+
loc,
|
|
7300
|
+
}
|
|
7301
|
+
: null;
|
|
7302
|
+
stmt = {
|
|
7303
|
+
kind: "if",
|
|
7304
|
+
cond: {
|
|
7305
|
+
kind: "unionIsTag",
|
|
7306
|
+
unionId: f.type.unionId,
|
|
7307
|
+
tag: guardUndefTag,
|
|
7308
|
+
negated: true,
|
|
7309
|
+
value: raw,
|
|
7310
|
+
type: BOOL,
|
|
7311
|
+
loc,
|
|
7312
|
+
},
|
|
7313
|
+
then: [stmt],
|
|
7314
|
+
else_: undefinedPush ? [undefinedPush] : null,
|
|
7283
7315
|
loc,
|
|
7284
|
-
}
|
|
7285
|
-
|
|
7316
|
+
};
|
|
7317
|
+
}
|
|
7318
|
+
// Absent fields contribute nothing; present ones push their
|
|
7319
|
+
// value, undefined included.
|
|
7320
|
+
stmt = {
|
|
7321
|
+
kind: "if",
|
|
7322
|
+
cond: lowerer.recordFieldPresent(ref, argIr.shapeId, f.name, loc),
|
|
7323
|
+
then: [stmt],
|
|
7286
7324
|
else_: null,
|
|
7287
7325
|
loc,
|
|
7288
|
-
}
|
|
7289
|
-
|
|
7326
|
+
};
|
|
7327
|
+
}
|
|
7328
|
+
body.push(stmt);
|
|
7290
7329
|
}
|
|
7291
7330
|
body.push({ kind: "return", value: outRef, loc });
|
|
7292
7331
|
fn.body = body;
|
|
@@ -7355,7 +7394,7 @@ function lowerObjectAssignHybrid(lowerer, call) {
|
|
|
7355
7394
|
for (const f of shape.fields) {
|
|
7356
7395
|
const v = values.get(f.name);
|
|
7357
7396
|
if (!v) {
|
|
7358
|
-
const absent = lowerer.
|
|
7397
|
+
const absent = lowerer.absentFieldValue(f.type, loc);
|
|
7359
7398
|
if (!absent) {
|
|
7360
7399
|
lowerer.unsupported("SC1090", call, `Object.assign leaving the required field '${f.name}' of '${lowerer.fmt(mapped)}' unfilled`);
|
|
7361
7400
|
}
|
|
@@ -7955,7 +7994,9 @@ export function lowerObjectMethodCall(lowerer, call, access) {
|
|
|
7955
7994
|
const receiverLocal = lowerer.declareHiddenLocal("%callReceiver", target.obj.type);
|
|
7956
7995
|
const init = { kind: "varDecl", localId: receiverLocal.id, init: target.obj, loc };
|
|
7957
7996
|
target.obj = { kind: "varRef", localId: receiverLocal.id, type: receiverLocal.type, loc };
|
|
7958
|
-
const receiver =
|
|
7997
|
+
const receiver = {};
|
|
7998
|
+
if (!lowerer.receiverFreeCallbackFields.has(access.name.text))
|
|
7999
|
+
receiver.receiver = lowerer.coerceToExpected(target.obj, DYN);
|
|
7959
8000
|
const finish = (result) => ({
|
|
7960
8001
|
kind: "seqExpr",
|
|
7961
8002
|
stmts: [init],
|
|
@@ -7984,12 +8025,12 @@ export function lowerObjectMethodCall(lowerer, call, access) {
|
|
|
7984
8025
|
const boxed = { kind: "dynFrom", value: callee, type: DYN, loc };
|
|
7985
8026
|
const spread = lowerSpreadArgsCall(lowerer, call, boxed, loc);
|
|
7986
8027
|
if (spread?.kind === "dynCall")
|
|
7987
|
-
return finish({ ...spread, receiver });
|
|
8028
|
+
return finish({ ...spread, ...receiver });
|
|
7988
8029
|
const args = call.arguments.map((arg) => lowerer.lowerExprExpecting(arg, DYN));
|
|
7989
8030
|
return finish({
|
|
7990
8031
|
kind: "dynCall",
|
|
7991
8032
|
callee: boxed,
|
|
7992
|
-
receiver,
|
|
8033
|
+
...receiver,
|
|
7993
8034
|
calleeName: access.getText(),
|
|
7994
8035
|
args,
|
|
7995
8036
|
type: DYN,
|
|
@@ -7997,7 +8038,7 @@ export function lowerObjectMethodCall(lowerer, call, access) {
|
|
|
7997
8038
|
});
|
|
7998
8039
|
}
|
|
7999
8040
|
const args = completeFuncValueArgs(lowerer, call, callee.type, locOf(call));
|
|
8000
|
-
return finish({ kind: "callValue", callee, receiver, args, type: callee.type.ret, loc });
|
|
8041
|
+
return finish({ kind: "callValue", callee, ...receiver, args, type: callee.type.ret, loc });
|
|
8001
8042
|
}
|
|
8002
8043
|
if (callee?.type.kind === "dyn") {
|
|
8003
8044
|
if (call.arguments.some((a) => ts.isSpreadElement(a))) {
|
|
@@ -8007,7 +8048,7 @@ export function lowerObjectMethodCall(lowerer, call, access) {
|
|
|
8007
8048
|
return finish({
|
|
8008
8049
|
kind: "dynCall",
|
|
8009
8050
|
callee,
|
|
8010
|
-
receiver,
|
|
8051
|
+
...receiver,
|
|
8011
8052
|
calleeName: access.getText(),
|
|
8012
8053
|
args,
|
|
8013
8054
|
type: DYN,
|
|
@@ -8089,7 +8130,7 @@ export function lowerObjectMethodCall(lowerer, call, access) {
|
|
|
8089
8130
|
type: found.sig.ret,
|
|
8090
8131
|
loc,
|
|
8091
8132
|
};
|
|
8092
|
-
const result = classCallbackCall(lowerer, value, method, call.arguments
|
|
8133
|
+
const result = classCallbackCall(lowerer, value, method, call.arguments, fallback, loc, access.getText());
|
|
8093
8134
|
return {
|
|
8094
8135
|
kind: "seqExpr",
|
|
8095
8136
|
stmts: [{ kind: "varDecl", localId: local.id, init: receiver, loc }],
|