@geastack/compiler 1.0.15
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/LICENSE +202 -0
- package/README.md +149 -0
- package/dist/cli-analyze.d.ts +1 -0
- package/dist/cli-analyze.js +61 -0
- package/dist/cli-coverage.d.ts +1 -0
- package/dist/cli-coverage.js +329 -0
- package/dist/cli-emit.d.ts +10 -0
- package/dist/cli-emit.js +398 -0
- package/dist/cli-module-graph.d.ts +18 -0
- package/dist/cli-module-graph.js +123 -0
- package/dist/cli-package-source.d.ts +5 -0
- package/dist/cli-package-source.js +116 -0
- package/dist/cli-project.d.ts +2 -0
- package/dist/cli-project.js +60 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +199 -0
- package/dist/compiler.d.ts +228 -0
- package/dist/compiler.js +1029 -0
- package/dist/conversion/algebra.d.ts +218 -0
- package/dist/conversion/algebra.js +155 -0
- package/dist/conversion/build.d.ts +67 -0
- package/dist/conversion/build.js +1378 -0
- package/dist/conversion/derive.d.ts +37 -0
- package/dist/conversion/derive.js +260 -0
- package/dist/conversion/graph-validation.d.ts +8 -0
- package/dist/conversion/graph-validation.js +97 -0
- package/dist/conversion/native-callable-adapter.d.ts +13 -0
- package/dist/conversion/native-callable-adapter.js +53 -0
- package/dist/conversion/native-class-reference.d.ts +12 -0
- package/dist/conversion/native-class-reference.js +39 -0
- package/dist/conversion/native-payload-transport.d.ts +25 -0
- package/dist/conversion/native-payload-transport.js +33 -0
- package/dist/conversion/native-selection.d.ts +49 -0
- package/dist/conversion/native-selection.js +135 -0
- package/dist/conversion/native-sum.d.ts +42 -0
- package/dist/conversion/native-sum.js +115 -0
- package/dist/conversion/nodes.d.ts +55 -0
- package/dist/conversion/nodes.js +91 -0
- package/dist/conversion/operand-view.d.ts +14 -0
- package/dist/conversion/operand-view.js +20 -0
- package/dist/conversion/record-view.d.ts +157 -0
- package/dist/conversion/record-view.js +273 -0
- package/dist/conversion/registry.d.ts +217 -0
- package/dist/conversion/registry.js +1 -0
- package/dist/diagnostics/model.d.ts +76 -0
- package/dist/diagnostics/model.js +60 -0
- package/dist/diagnostics/sweep.d.ts +31 -0
- package/dist/diagnostics/sweep.js +112 -0
- package/dist/identity/ids.d.ts +179 -0
- package/dist/identity/ids.js +212 -0
- package/dist/ir/absent-class-arm.d.ts +48 -0
- package/dist/ir/absent-class-arm.js +157 -0
- package/dist/ir/borrow-effects.d.ts +23 -0
- package/dist/ir/borrow-effects.js +151 -0
- package/dist/ir/borrowed-call-arguments.d.ts +40 -0
- package/dist/ir/borrowed-call-arguments.js +117 -0
- package/dist/ir/build.d.ts +168 -0
- package/dist/ir/build.js +459 -0
- package/dist/ir/call-dispatch.d.ts +38 -0
- package/dist/ir/call-dispatch.js +502 -0
- package/dist/ir/call-entry.d.ts +142 -0
- package/dist/ir/call-entry.js +386 -0
- package/dist/ir/callable-class-flow.d.ts +27 -0
- package/dist/ir/callable-class-flow.js +1386 -0
- package/dist/ir/callable-field-slots.d.ts +22 -0
- package/dist/ir/callable-field-slots.js +166 -0
- package/dist/ir/callable-identity-demand.d.ts +52 -0
- package/dist/ir/callable-identity-demand.js +460 -0
- package/dist/ir/callable-member-candidates.d.ts +9 -0
- package/dist/ir/callable-member-candidates.js +39 -0
- package/dist/ir/callable-records.d.ts +21 -0
- package/dist/ir/callable-records.js +411 -0
- package/dist/ir/captures.d.ts +26 -0
- package/dist/ir/captures.js +335 -0
- package/dist/ir/certificate.d.ts +45 -0
- package/dist/ir/certificate.js +47 -0
- package/dist/ir/certify/carrier-keys.d.ts +73 -0
- package/dist/ir/certify/carrier-keys.js +221 -0
- package/dist/ir/certify/function-source.d.ts +4 -0
- package/dist/ir/certify/function-source.js +28 -0
- package/dist/ir/certify/has-property-key.d.ts +88 -0
- package/dist/ir/certify/has-property-key.js +116 -0
- package/dist/ir/certify/instanceof-key.d.ts +24 -0
- package/dist/ir/certify/instanceof-key.js +35 -0
- package/dist/ir/certify/property-access-keys.d.ts +172 -0
- package/dist/ir/certify/property-access-keys.js +291 -0
- package/dist/ir/certify/property-access.d.ts +3 -0
- package/dist/ir/certify/property-access.js +597 -0
- package/dist/ir/certify/runtime-helper.d.ts +3 -0
- package/dist/ir/certify/runtime-helper.js +326 -0
- package/dist/ir/certify/typeof-operand.d.ts +14 -0
- package/dist/ir/certify/typeof-operand.js +16 -0
- package/dist/ir/certify.d.ts +123 -0
- package/dist/ir/certify.js +481 -0
- package/dist/ir/class-evaluation.d.ts +26 -0
- package/dist/ir/class-evaluation.js +50 -0
- package/dist/ir/class-static-fields.d.ts +60 -0
- package/dist/ir/class-static-fields.js +108 -0
- package/dist/ir/construct-entry.d.ts +26 -0
- package/dist/ir/construct-entry.js +117 -0
- package/dist/ir/dead-values.d.ts +90 -0
- package/dist/ir/dead-values.js +184 -0
- package/dist/ir/deferral.d.ts +99 -0
- package/dist/ir/deferral.js +409 -0
- package/dist/ir/dense-loops.d.ts +230 -0
- package/dist/ir/dense-loops.js +697 -0
- package/dist/ir/dominance.d.ts +82 -0
- package/dist/ir/dominance.js +268 -0
- package/dist/ir/emission-representations.d.ts +71 -0
- package/dist/ir/emission-representations.js +350 -0
- package/dist/ir/facts.d.ts +218 -0
- package/dist/ir/facts.js +181 -0
- package/dist/ir/fixed-data-definition.d.ts +19 -0
- package/dist/ir/fixed-data-definition.js +49 -0
- package/dist/ir/generator-split.d.ts +38 -0
- package/dist/ir/generator-split.js +329 -0
- package/dist/ir/hoist.d.ts +55 -0
- package/dist/ir/hoist.js +375 -0
- package/dist/ir/instantiation.d.ts +61 -0
- package/dist/ir/instantiation.js +137 -0
- package/dist/ir/integer-storage.d.ts +170 -0
- package/dist/ir/integer-storage.js +822 -0
- package/dist/ir/integers.d.ts +161 -0
- package/dist/ir/integers.js +539 -0
- package/dist/ir/integrity-restrictions.d.ts +50 -0
- package/dist/ir/integrity-restrictions.js +118 -0
- package/dist/ir/local-iterators.d.ts +4 -0
- package/dist/ir/local-iterators.js +27 -0
- package/dist/ir/lower-allocation.d.ts +4 -0
- package/dist/ir/lower-allocation.js +325 -0
- package/dist/ir/lower-completion.d.ts +15 -0
- package/dist/ir/lower-completion.js +25 -0
- package/dist/ir/lower-destructuring.d.ts +5 -0
- package/dist/ir/lower-destructuring.js +693 -0
- package/dist/ir/lower-element.d.ts +29 -0
- package/dist/ir/lower-element.js +111 -0
- package/dist/ir/lower-exceptions.d.ts +47 -0
- package/dist/ir/lower-exceptions.js +92 -0
- package/dist/ir/lower-flow.d.ts +137 -0
- package/dist/ir/lower-flow.js +600 -0
- package/dist/ir/lower-graph.d.ts +218 -0
- package/dist/ir/lower-graph.js +687 -0
- package/dist/ir/lower-invocation.d.ts +4 -0
- package/dist/ir/lower-invocation.js +514 -0
- package/dist/ir/lower-narrow.d.ts +53 -0
- package/dist/ir/lower-narrow.js +320 -0
- package/dist/ir/lower-operands.d.ts +272 -0
- package/dist/ir/lower-operands.js +461 -0
- package/dist/ir/lower-property.d.ts +21 -0
- package/dist/ir/lower-property.js +132 -0
- package/dist/ir/lower-protocol.d.ts +11 -0
- package/dist/ir/lower-protocol.js +118 -0
- package/dist/ir/lower-short-circuit.d.ts +41 -0
- package/dist/ir/lower-short-circuit.js +63 -0
- package/dist/ir/lower.d.ts +82 -0
- package/dist/ir/lower.js +1346 -0
- package/dist/ir/model.d.ts +1474 -0
- package/dist/ir/model.js +6 -0
- package/dist/ir/native-absent-property.d.ts +3 -0
- package/dist/ir/native-absent-property.js +13 -0
- package/dist/ir/native-array-transport.d.ts +7 -0
- package/dist/ir/native-array-transport.js +46 -0
- package/dist/ir/native-callable-bind.d.ts +9 -0
- package/dist/ir/native-callable-bind.js +30 -0
- package/dist/ir/native-carrier-predicate.d.ts +34 -0
- package/dist/ir/native-carrier-predicate.js +49 -0
- package/dist/ir/native-class-accessor.d.ts +18 -0
- package/dist/ir/native-class-accessor.js +52 -0
- package/dist/ir/native-class-construction.d.ts +16 -0
- package/dist/ir/native-class-construction.js +71 -0
- package/dist/ir/native-class-initialization.d.ts +15 -0
- package/dist/ir/native-class-initialization.js +56 -0
- package/dist/ir/native-class-origins.d.ts +13 -0
- package/dist/ir/native-class-origins.js +237 -0
- package/dist/ir/native-dictionary-transport.d.ts +6 -0
- package/dist/ir/native-dictionary-transport.js +37 -0
- package/dist/ir/native-enumeration.d.ts +14 -0
- package/dist/ir/native-enumeration.js +26 -0
- package/dist/ir/native-equality.d.ts +10 -0
- package/dist/ir/native-equality.js +18 -0
- package/dist/ir/native-field-owner.d.ts +37 -0
- package/dist/ir/native-field-owner.js +183 -0
- package/dist/ir/native-fixed-layout.d.ts +41 -0
- package/dist/ir/native-fixed-layout.js +232 -0
- package/dist/ir/native-host-construction.d.ts +53 -0
- package/dist/ir/native-host-construction.js +62 -0
- package/dist/ir/native-key-query.d.ts +4 -0
- package/dist/ir/native-key-query.js +38 -0
- package/dist/ir/native-merge-transport.d.ts +25 -0
- package/dist/ir/native-merge-transport.js +71 -0
- package/dist/ir/native-record-index-transport.d.ts +11 -0
- package/dist/ir/native-record-index-transport.js +34 -0
- package/dist/ir/native-record-index.d.ts +12 -0
- package/dist/ir/native-record-index.js +27 -0
- package/dist/ir/native-reflect-field.d.ts +5 -0
- package/dist/ir/native-reflect-field.js +33 -0
- package/dist/ir/native-sequence-transport.d.ts +7 -0
- package/dist/ir/native-sequence-transport.js +53 -0
- package/dist/ir/numeric-intrinsics.d.ts +13 -0
- package/dist/ir/numeric-intrinsics.js +57 -0
- package/dist/ir/object-value-conversions.d.ts +20 -0
- package/dist/ir/object-value-conversions.js +50 -0
- package/dist/ir/physical-class-reflection.d.ts +9 -0
- package/dist/ir/physical-class-reflection.js +57 -0
- package/dist/ir/presence-proof.d.ts +42 -0
- package/dist/ir/presence-proof.js +490 -0
- package/dist/ir/program-facts.d.ts +106 -0
- package/dist/ir/program-facts.js +319 -0
- package/dist/ir/proven-branches.d.ts +16 -0
- package/dist/ir/proven-branches.js +219 -0
- package/dist/ir/queries.d.ts +41 -0
- package/dist/ir/queries.js +213 -0
- package/dist/ir/reflection-demand.d.ts +64 -0
- package/dist/ir/reflection-demand.js +1394 -0
- package/dist/ir/refusal.d.ts +43 -0
- package/dist/ir/refusal.js +28 -0
- package/dist/ir/shake.d.ts +37 -0
- package/dist/ir/shake.js +1078 -0
- package/dist/ir/static-callables.d.ts +11 -0
- package/dist/ir/static-callables.js +163 -0
- package/dist/ir/string-layout-reuse.d.ts +13 -0
- package/dist/ir/string-layout-reuse.js +39 -0
- package/dist/ir/string-length-reuse.d.ts +8 -0
- package/dist/ir/string-length-reuse.js +47 -0
- package/dist/ir/transfer.d.ts +78 -0
- package/dist/ir/transfer.js +270 -0
- package/dist/ir/type-query-results.d.ts +25 -0
- package/dist/ir/type-query-results.js +96 -0
- package/dist/ir/typed-property-access.d.ts +100 -0
- package/dist/ir/typed-property-access.js +161 -0
- package/dist/ir/verify.d.ts +19 -0
- package/dist/ir/verify.js +355 -0
- package/dist/plugins/apple/constructors.d.ts +112 -0
- package/dist/plugins/apple/constructors.js +217 -0
- package/dist/plugins/apple/host.d.ts +181 -0
- package/dist/plugins/apple/host.js +262 -0
- package/dist/plugins/apple/jsx.d.ts +2 -0
- package/dist/plugins/apple/jsx.js +293 -0
- package/dist/plugins/apple/members.d.ts +16 -0
- package/dist/plugins/apple/members.js +190 -0
- package/dist/plugins/apple/plugin.d.ts +2 -0
- package/dist/plugins/apple/plugin.js +156 -0
- package/dist/plugins/gea/component-classes.d.ts +25 -0
- package/dist/plugins/gea/component-classes.js +162 -0
- package/dist/plugins/gea/component-inline.d.ts +13 -0
- package/dist/plugins/gea/component-inline.js +532 -0
- package/dist/plugins/gea/constructors.d.ts +23 -0
- package/dist/plugins/gea/constructors.js +100 -0
- package/dist/plugins/gea/contract.d.ts +150 -0
- package/dist/plugins/gea/contract.js +195 -0
- package/dist/plugins/gea/element-ref.d.ts +31 -0
- package/dist/plugins/gea/element-ref.js +45 -0
- package/dist/plugins/gea/host.d.ts +520 -0
- package/dist/plugins/gea/host.js +762 -0
- package/dist/plugins/gea/lower.d.ts +6 -0
- package/dist/plugins/gea/lower.js +195 -0
- package/dist/plugins/gea/members.d.ts +22 -0
- package/dist/plugins/gea/members.js +221 -0
- package/dist/plugins/gea/plugin.d.ts +22 -0
- package/dist/plugins/gea/plugin.js +307 -0
- package/dist/plugins/gea/prelude.d.ts +78 -0
- package/dist/plugins/gea/prelude.js +153 -0
- package/dist/plugins/gea/producer.d.ts +5 -0
- package/dist/plugins/gea/producer.js +52 -0
- package/dist/plugins/gea/reactive-slots.d.ts +49 -0
- package/dist/plugins/gea/reactive-slots.js +578 -0
- package/dist/plugins/gea/render-bridge.d.ts +6 -0
- package/dist/plugins/gea/render-bridge.js +281 -0
- package/dist/plugins/gea/slots.d.ts +15 -0
- package/dist/plugins/gea/slots.js +36 -0
- package/dist/plugins/gea/template-analysis.d.ts +151 -0
- package/dist/plugins/gea/template-analysis.js +346 -0
- package/dist/plugins/gea/user-agent-styles.d.ts +9 -0
- package/dist/plugins/gea/user-agent-styles.js +94 -0
- package/dist/plugins/installed.d.ts +19 -0
- package/dist/plugins/installed.js +21 -0
- package/dist/plugins/load.d.ts +7 -0
- package/dist/plugins/load.js +207 -0
- package/dist/plugins/model.d.ts +735 -0
- package/dist/plugins/model.js +47 -0
- package/dist/plugins/webgl/host.d.ts +77 -0
- package/dist/plugins/webgl/host.js +162 -0
- package/dist/plugins/webgl/plugin.d.ts +40 -0
- package/dist/plugins/webgl/plugin.js +99 -0
- package/dist/preflight/obligations.d.ts +206 -0
- package/dist/preflight/obligations.js +36 -0
- package/dist/preflight/report.d.ts +20 -0
- package/dist/preflight/report.js +61 -0
- package/dist/preflight/run.d.ts +39 -0
- package/dist/preflight/run.js +403 -0
- package/dist/project-preparation.d.ts +33 -0
- package/dist/project-preparation.js +314 -0
- package/dist/projection/abi.d.ts +82 -0
- package/dist/projection/abi.js +349 -0
- package/dist/projection/apply-arguments.d.ts +12 -0
- package/dist/projection/apply-arguments.js +20 -0
- package/dist/projection/bindings.d.ts +250 -0
- package/dist/projection/bindings.js +340 -0
- package/dist/projection/callee.d.ts +196 -0
- package/dist/projection/callee.js +444 -0
- package/dist/projection/class-property-presence.d.ts +28 -0
- package/dist/projection/class-property-presence.js +58 -0
- package/dist/projection/class-prototype.d.ts +5 -0
- package/dist/projection/class-prototype.js +23 -0
- package/dist/projection/class-storage.d.ts +26 -0
- package/dist/projection/class-storage.js +236 -0
- package/dist/projection/classes.d.ts +283 -0
- package/dist/projection/classes.js +944 -0
- package/dist/projection/coercions.d.ts +20 -0
- package/dist/projection/coercions.js +33 -0
- package/dist/projection/dispatch.d.ts +167 -0
- package/dist/projection/dispatch.js +379 -0
- package/dist/projection/fields.d.ts +123 -0
- package/dist/projection/fields.js +383 -0
- package/dist/projection/instance-test.d.ts +78 -0
- package/dist/projection/instance-test.js +156 -0
- package/dist/projection/slots.d.ts +146 -0
- package/dist/projection/slots.js +663 -0
- package/dist/projection/synthesized-abi.d.ts +61 -0
- package/dist/projection/synthesized-abi.js +94 -0
- package/dist/representation/array-index.d.ts +14 -0
- package/dist/representation/array-index.js +17 -0
- package/dist/representation/callable-object.d.ts +3 -0
- package/dist/representation/callable-object.js +6 -0
- package/dist/representation/collections.d.ts +84 -0
- package/dist/representation/collections.js +139 -0
- package/dist/representation/derive.d.ts +159 -0
- package/dist/representation/derive.js +2546 -0
- package/dist/representation/difference.d.ts +30 -0
- package/dist/representation/difference.js +240 -0
- package/dist/representation/field-descriptor-policy.d.ts +19 -0
- package/dist/representation/field-descriptor-policy.js +39 -0
- package/dist/representation/function-constructor.d.ts +13 -0
- package/dist/representation/function-constructor.js +9 -0
- package/dist/representation/host-abi.d.ts +32 -0
- package/dist/representation/host-abi.js +97 -0
- package/dist/representation/host-templates.d.ts +67 -0
- package/dist/representation/host-templates.js +94 -0
- package/dist/representation/intersection.d.ts +84 -0
- package/dist/representation/intersection.js +149 -0
- package/dist/representation/literal-destination.d.ts +43 -0
- package/dist/representation/literal-destination.js +133 -0
- package/dist/representation/merge.d.ts +18 -0
- package/dist/representation/merge.js +83 -0
- package/dist/representation/model.d.ts +1160 -0
- package/dist/representation/model.js +1019 -0
- package/dist/representation/numeric-index.d.ts +13 -0
- package/dist/representation/numeric-index.js +29 -0
- package/dist/representation/object-shape.d.ts +109 -0
- package/dist/representation/object-shape.js +123 -0
- package/dist/representation/optional.d.ts +12 -0
- package/dist/representation/optional.js +87 -0
- package/dist/representation/plan.d.ts +60 -0
- package/dist/representation/plan.js +78 -0
- package/dist/representation/policies.d.ts +589 -0
- package/dist/representation/policies.js +107 -0
- package/dist/representation/primitive-domain.d.ts +1 -0
- package/dist/representation/primitive-domain.js +1 -0
- package/dist/representation/primitives.d.ts +44 -0
- package/dist/representation/primitives.js +78 -0
- package/dist/representation/publish.d.ts +49 -0
- package/dist/representation/publish.js +648 -0
- package/dist/representation/record-fields.d.ts +96 -0
- package/dist/representation/record-fields.js +116 -0
- package/dist/representation/template-object.d.ts +11 -0
- package/dist/representation/template-object.js +26 -0
- package/dist/representation/union.d.ts +30 -0
- package/dist/representation/union.js +324 -0
- package/dist/representation/value-records.d.ts +3 -0
- package/dist/representation/value-records.js +307 -0
- package/dist/representation/verify.d.ts +17 -0
- package/dist/representation/verify.js +221 -0
- package/dist/semantics/alias-this-field-declaration-transform.d.ts +4 -0
- package/dist/semantics/alias-this-field-declaration-transform.js +207 -0
- package/dist/semantics/ambient-type-realization-transform.d.ts +62 -0
- package/dist/semantics/ambient-type-realization-transform.js +168 -0
- package/dist/semantics/ambient.d.ts +24 -0
- package/dist/semantics/ambient.js +119 -0
- package/dist/semantics/borrowed-builtin-call-bind-source-transform.d.ts +4 -0
- package/dist/semantics/borrowed-builtin-call-bind-source-transform.js +341 -0
- package/dist/semantics/callable-origins.d.ts +46 -0
- package/dist/semantics/callable-origins.js +354 -0
- package/dist/semantics/class-alias.d.ts +7 -0
- package/dist/semantics/class-alias.js +37 -0
- package/dist/semantics/class-heritage.d.ts +34 -0
- package/dist/semantics/class-heritage.js +104 -0
- package/dist/semantics/commonjs-wrapper.d.ts +69 -0
- package/dist/semantics/commonjs-wrapper.js +231 -0
- package/dist/semantics/constructor-slot-subclasses.d.ts +28 -0
- package/dist/semantics/constructor-slot-subclasses.js +112 -0
- package/dist/semantics/declaration-overlay-transform.d.ts +35 -0
- package/dist/semantics/declaration-overlay-transform.js +2157 -0
- package/dist/semantics/define-property-source-transform.d.ts +4 -0
- package/dist/semantics/define-property-source-transform.js +437 -0
- package/dist/semantics/diagnostic-source-preparation.d.ts +24 -0
- package/dist/semantics/diagnostic-source-preparation.js +82 -0
- package/dist/semantics/documentation-ranges.d.ts +22 -0
- package/dist/semantics/documentation-ranges.js +36 -0
- package/dist/semantics/dynamic-fallback.d.ts +86 -0
- package/dist/semantics/dynamic-fallback.js +249 -0
- package/dist/semantics/frontend-timing.d.ts +6 -0
- package/dist/semantics/frontend-timing.js +35 -0
- package/dist/semantics/frontend.d.ts +504 -0
- package/dist/semantics/frontend.js +1157 -0
- package/dist/semantics/host-declaration-provenance.d.ts +11 -0
- package/dist/semantics/host-declaration-provenance.js +18 -0
- package/dist/semantics/host-methods.d.ts +24 -0
- package/dist/semantics/host-methods.js +74 -0
- package/dist/semantics/host-protocols.d.ts +429 -0
- package/dist/semantics/host-protocols.js +1501 -0
- package/dist/semantics/inherited-accessor.d.ts +7 -0
- package/dist/semantics/inherited-accessor.js +48 -0
- package/dist/semantics/interface-families.d.ts +70 -0
- package/dist/semantics/interface-families.js +180 -0
- package/dist/semantics/interface-implementors.d.ts +53 -0
- package/dist/semantics/interface-implementors.js +87 -0
- package/dist/semantics/jsdoc-namepath-transform.d.ts +4 -0
- package/dist/semantics/jsdoc-namepath-transform.js +85 -0
- package/dist/semantics/model/coverage.d.ts +68 -0
- package/dist/semantics/model/coverage.js +73 -0
- package/dist/semantics/model/edges.d.ts +103 -0
- package/dist/semantics/model/edges.js +20 -0
- package/dist/semantics/model/graph.d.ts +55 -0
- package/dist/semantics/model/graph.js +129 -0
- package/dist/semantics/model/operands.d.ts +159 -0
- package/dist/semantics/model/operands.js +26 -0
- package/dist/semantics/model/operations.d.ts +496 -0
- package/dist/semantics/model/operations.js +2 -0
- package/dist/semantics/model/primitive-domain.d.ts +26 -0
- package/dist/semantics/model/primitive-domain.js +38 -0
- package/dist/semantics/model/selected-signature.d.ts +261 -0
- package/dist/semantics/model/selected-signature.js +55 -0
- package/dist/semantics/model/structural-type-table.d.ts +93 -0
- package/dist/semantics/model/structural-type-table.js +237 -0
- package/dist/semantics/model/structural-types.d.ts +367 -0
- package/dist/semantics/model/structural-types.js +200 -0
- package/dist/semantics/module-resolution.d.ts +23 -0
- package/dist/semantics/module-resolution.js +227 -0
- package/dist/semantics/new-callee-class-tag-source-transform.d.ts +4 -0
- package/dist/semantics/new-callee-class-tag-source-transform.js +64 -0
- package/dist/semantics/node-project.d.ts +13 -0
- package/dist/semantics/node-project.js +107 -0
- package/dist/semantics/node-source-hooks.d.ts +1 -0
- package/dist/semantics/node-source-hooks.js +63 -0
- package/dist/semantics/normalize/absent-globals.d.ts +143 -0
- package/dist/semantics/normalize/absent-globals.js +191 -0
- package/dist/semantics/normalize/arguments-objects.d.ts +43 -0
- package/dist/semantics/normalize/arguments-objects.js +60 -0
- package/dist/semantics/normalize/asserted-arm-absence.d.ts +28 -0
- package/dist/semantics/normalize/asserted-arm-absence.js +61 -0
- package/dist/semantics/normalize/assignment-patterns.d.ts +70 -0
- package/dist/semantics/normalize/assignment-patterns.js +147 -0
- package/dist/semantics/normalize/bag-absence.d.ts +8 -0
- package/dist/semantics/normalize/bag-absence.js +42 -0
- package/dist/semantics/normalize/binding-fixpoint.d.ts +36 -0
- package/dist/semantics/normalize/binding-fixpoint.js +140 -0
- package/dist/semantics/normalize/callback-parameter-contracts.d.ts +16 -0
- package/dist/semantics/normalize/callback-parameter-contracts.js +91 -0
- package/dist/semantics/normalize/cells/agreement.d.ts +46 -0
- package/dist/semantics/normalize/cells/agreement.js +34 -0
- package/dist/semantics/normalize/cells/candidates.d.ts +17 -0
- package/dist/semantics/normalize/cells/candidates.js +35 -0
- package/dist/semantics/normalize/cells/facts.d.ts +19 -0
- package/dist/semantics/normalize/cells/facts.js +90 -0
- package/dist/semantics/normalize/cells/index.d.ts +10 -0
- package/dist/semantics/normalize/cells/index.js +6 -0
- package/dist/semantics/normalize/cells/model.d.ts +98 -0
- package/dist/semantics/normalize/cells/model.js +2 -0
- package/dist/semantics/normalize/cells/policies/bag.d.ts +44 -0
- package/dist/semantics/normalize/cells/policies/bag.js +114 -0
- package/dist/semantics/normalize/cells/policies/collection.d.ts +42 -0
- package/dist/semantics/normalize/cells/policies/collection.js +218 -0
- package/dist/semantics/normalize/cells/policies/field.d.ts +28 -0
- package/dist/semantics/normalize/cells/policies/field.js +40 -0
- package/dist/semantics/normalize/cells/policies/index.d.ts +49 -0
- package/dist/semantics/normalize/cells/policies/index.js +58 -0
- package/dist/semantics/normalize/cells/policies/local.d.ts +18 -0
- package/dist/semantics/normalize/cells/policies/local.js +37 -0
- package/dist/semantics/normalize/cells/policies/parameter.d.ts +28 -0
- package/dist/semantics/normalize/cells/policies/parameter.js +39 -0
- package/dist/semantics/normalize/cells/policies/return.d.ts +26 -0
- package/dist/semantics/normalize/cells/policies/return.js +45 -0
- package/dist/semantics/normalize/cells/policies/shared.d.ts +33 -0
- package/dist/semantics/normalize/cells/policies/shared.js +45 -0
- package/dist/semantics/normalize/cells/policy.d.ts +72 -0
- package/dist/semantics/normalize/cells/policy.js +18 -0
- package/dist/semantics/normalize/cells/registry.d.ts +14 -0
- package/dist/semantics/normalize/cells/registry.js +17 -0
- package/dist/semantics/normalize/census-refusal.d.ts +62 -0
- package/dist/semantics/normalize/census-refusal.js +27 -0
- package/dist/semantics/normalize/census.d.ts +109 -0
- package/dist/semantics/normalize/census.js +667 -0
- package/dist/semantics/normalize/collection-bindings.d.ts +278 -0
- package/dist/semantics/normalize/collection-bindings.js +677 -0
- package/dist/semantics/normalize/commonjs-module-record.d.ts +21 -0
- package/dist/semantics/normalize/commonjs-module-record.js +289 -0
- package/dist/semantics/normalize/commonjs-require.d.ts +13 -0
- package/dist/semantics/normalize/commonjs-require.js +1527 -0
- package/dist/semantics/normalize/contribution.d.ts +63 -0
- package/dist/semantics/normalize/contribution.js +172 -0
- package/dist/semantics/normalize/dead-typeof-guards.d.ts +64 -0
- package/dist/semantics/normalize/dead-typeof-guards.js +152 -0
- package/dist/semantics/normalize/deferred-intrinsic-protocols.d.ts +57 -0
- package/dist/semantics/normalize/deferred-intrinsic-protocols.js +109 -0
- package/dist/semantics/normalize/derived-expression-type.d.ts +1070 -0
- package/dist/semantics/normalize/derived-expression-type.js +3463 -0
- package/dist/semantics/normalize/evaluation-order.d.ts +16 -0
- package/dist/semantics/normalize/evaluation-order.js +37 -0
- package/dist/semantics/normalize/field-bindings.d.ts +167 -0
- package/dist/semantics/normalize/field-bindings.js +1125 -0
- package/dist/semantics/normalize/flow/array-element-continuation.d.ts +27 -0
- package/dist/semantics/normalize/flow/array-element-continuation.js +1452 -0
- package/dist/semantics/normalize/flow/callable-array-origins.d.ts +42 -0
- package/dist/semantics/normalize/flow/callable-array-origins.js +318 -0
- package/dist/semantics/normalize/flow/callable-completions.d.ts +45 -0
- package/dist/semantics/normalize/flow/callable-completions.js +82 -0
- package/dist/semantics/normalize/flow/callable-reach.d.ts +237 -0
- package/dist/semantics/normalize/flow/callable-reach.js +7174 -0
- package/dist/semantics/normalize/flow/class-family-member-read.d.ts +16 -0
- package/dist/semantics/normalize/flow/class-family-member-read.js +992 -0
- package/dist/semantics/normalize/flow/collection-value-continuation.d.ts +21 -0
- package/dist/semantics/normalize/flow/collection-value-continuation.js +192 -0
- package/dist/semantics/normalize/flow/component-solver.d.ts +199 -0
- package/dist/semantics/normalize/flow/component-solver.js +587 -0
- package/dist/semantics/normalize/flow/computed-key-set.d.ts +84 -0
- package/dist/semantics/normalize/flow/computed-key-set.js +660 -0
- package/dist/semantics/normalize/flow/export-importers.d.ts +24 -0
- package/dist/semantics/normalize/flow/export-importers.js +269 -0
- package/dist/semantics/normalize/flow/host-text-sink.d.ts +25 -0
- package/dist/semantics/normalize/flow/host-text-sink.js +87 -0
- package/dist/semantics/normalize/flow/intrinsic-array-callback-frames.d.ts +84 -0
- package/dist/semantics/normalize/flow/intrinsic-array-callback-frames.js +180 -0
- package/dist/semantics/normalize/flow/intrinsic-data-definition.d.ts +35 -0
- package/dist/semantics/normalize/flow/intrinsic-data-definition.js +140 -0
- package/dist/semantics/normalize/flow/invocation-facts.d.ts +98 -0
- package/dist/semantics/normalize/flow/invocation-facts.js +257 -0
- package/dist/semantics/normalize/flow/member-call-forwarding.d.ts +122 -0
- package/dist/semantics/normalize/flow/member-call-forwarding.js +835 -0
- package/dist/semantics/normalize/flow/model.d.ts +357 -0
- package/dist/semantics/normalize/flow/model.js +177 -0
- package/dist/semantics/normalize/flow/native-collection-protocol.d.ts +24 -0
- package/dist/semantics/normalize/flow/native-collection-protocol.js +252 -0
- package/dist/semantics/normalize/flow/node-path-token.d.ts +3 -0
- package/dist/semantics/normalize/flow/node-path-token.js +53 -0
- package/dist/semantics/normalize/flow/object-binding-continuation.d.ts +11 -0
- package/dist/semantics/normalize/flow/object-binding-continuation.js +42 -0
- package/dist/semantics/normalize/flow/origin-authority.d.ts +56 -0
- package/dist/semantics/normalize/flow/origin-authority.js +2 -0
- package/dist/semantics/normalize/flow/owned-class-receivers.d.ts +35 -0
- package/dist/semantics/normalize/flow/owned-class-receivers.js +191 -0
- package/dist/semantics/normalize/flow/parameter-values.d.ts +27 -0
- package/dist/semantics/normalize/flow/parameter-values.js +251 -0
- package/dist/semantics/normalize/flow/proof-hypotheses.d.ts +66 -0
- package/dist/semantics/normalize/flow/proof-hypotheses.js +162 -0
- package/dist/semantics/normalize/flow/record-alias-closure.d.ts +27 -0
- package/dist/semantics/normalize/flow/record-alias-closure.js +298 -0
- package/dist/semantics/normalize/flow/seeded-origins.d.ts +43 -0
- package/dist/semantics/normalize/flow/seeded-origins.js +54 -0
- package/dist/semantics/normalize/flow/source-class-data.d.ts +132 -0
- package/dist/semantics/normalize/flow/source-class-data.js +838 -0
- package/dist/semantics/normalize/flow/source-class-instanceof.d.ts +13 -0
- package/dist/semantics/normalize/flow/source-class-instanceof.js +37 -0
- package/dist/semantics/normalize/flow/source-class-static-data.d.ts +16 -0
- package/dist/semantics/normalize/flow/source-class-static-data.js +47 -0
- package/dist/semantics/normalize/flow/source-construction-frames.d.ts +12 -0
- package/dist/semantics/normalize/flow/source-construction-frames.js +118 -0
- package/dist/semantics/normalize/flow/source-invocation-frame-layout.d.ts +34 -0
- package/dist/semantics/normalize/flow/source-invocation-frame-layout.js +78 -0
- package/dist/semantics/normalize/flow/source-invocation-receiver.d.ts +37 -0
- package/dist/semantics/normalize/flow/source-invocation-receiver.js +95 -0
- package/dist/semantics/normalize/flow/source-prototype-method-identity.d.ts +23 -0
- package/dist/semantics/normalize/flow/source-prototype-method-identity.js +81 -0
- package/dist/semantics/normalize/flow/source-record-data.d.ts +29 -0
- package/dist/semantics/normalize/flow/source-record-data.js +626 -0
- package/dist/semantics/normalize/flow/source-value-session.d.ts +77 -0
- package/dist/semantics/normalize/flow/source-value-session.js +3089 -0
- package/dist/semantics/normalize/flow/targets.d.ts +118 -0
- package/dist/semantics/normalize/flow/targets.js +405 -0
- package/dist/semantics/normalize/flow/value-flow.d.ts +36 -0
- package/dist/semantics/normalize/flow/value-flow.js +823 -0
- package/dist/semantics/normalize/flow/value-provenance.d.ts +31 -0
- package/dist/semantics/normalize/flow/value-provenance.js +112 -0
- package/dist/semantics/normalize/gating.d.ts +51 -0
- package/dist/semantics/normalize/gating.js +560 -0
- package/dist/semantics/normalize/generic-function-choice.d.ts +31 -0
- package/dist/semantics/normalize/generic-function-choice.js +115 -0
- package/dist/semantics/normalize/global-host-mutations.d.ts +51 -0
- package/dist/semantics/normalize/global-host-mutations.js +5989 -0
- package/dist/semantics/normalize/host-effect-contracts.d.ts +77 -0
- package/dist/semantics/normalize/host-effect-contracts.js +143 -0
- package/dist/semantics/normalize/host-mutation-computed-keys.d.ts +38 -0
- package/dist/semantics/normalize/host-mutation-computed-keys.js +26 -0
- package/dist/semantics/normalize/host-mutation-key-reader.d.ts +66 -0
- package/dist/semantics/normalize/host-mutation-key-reader.js +192 -0
- package/dist/semantics/normalize/host-mutation-keys.d.ts +114 -0
- package/dist/semantics/normalize/host-mutation-keys.js +183 -0
- package/dist/semantics/normalize/identities.d.ts +172 -0
- package/dist/semantics/normalize/identities.js +426 -0
- package/dist/semantics/normalize/implicit-arguments-tuple.d.ts +97 -0
- package/dist/semantics/normalize/implicit-arguments-tuple.js +197 -0
- package/dist/semantics/normalize/implicit-arguments.d.ts +11 -0
- package/dist/semantics/normalize/implicit-arguments.js +39 -0
- package/dist/semantics/normalize/instantiation.d.ts +73 -0
- package/dist/semantics/normalize/instantiation.js +399 -0
- package/dist/semantics/normalize/intrinsic-property-call.d.ts +18 -0
- package/dist/semantics/normalize/intrinsic-property-call.js +69 -0
- package/dist/semantics/normalize/intrinsic-prototype.d.ts +41 -0
- package/dist/semantics/normalize/intrinsic-prototype.js +87 -0
- package/dist/semantics/normalize/intrinsic-static-member.d.ts +14 -0
- package/dist/semantics/normalize/intrinsic-static-member.js +23 -0
- package/dist/semantics/normalize/jsdoc-type-names.d.ts +32 -0
- package/dist/semantics/normalize/jsdoc-type-names.js +512 -0
- package/dist/semantics/normalize/keyof.d.ts +32 -0
- package/dist/semantics/normalize/keyof.js +110 -0
- package/dist/semantics/normalize/local-bindings.d.ts +176 -0
- package/dist/semantics/normalize/local-bindings.js +1826 -0
- package/dist/semantics/normalize/logical-result-type.d.ts +16 -0
- package/dist/semantics/normalize/logical-result-type.js +102 -0
- package/dist/semantics/normalize/namespace-paths.d.ts +57 -0
- package/dist/semantics/normalize/namespace-paths.js +108 -0
- package/dist/semantics/normalize/normalize.d.ts +57 -0
- package/dist/semantics/normalize/normalize.js +68 -0
- package/dist/semantics/normalize/object-bag-bindings.d.ts +305 -0
- package/dist/semantics/normalize/object-bag-bindings.js +1290 -0
- package/dist/semantics/normalize/omitted-stated-parameter.d.ts +53 -0
- package/dist/semantics/normalize/omitted-stated-parameter.js +59 -0
- package/dist/semantics/normalize/open-type-form.d.ts +10 -0
- package/dist/semantics/normalize/open-type-form.js +32 -0
- package/dist/semantics/normalize/parameter-bindings.d.ts +361 -0
- package/dist/semantics/normalize/parameter-bindings.js +3339 -0
- package/dist/semantics/normalize/parameter-slot.d.ts +264 -0
- package/dist/semantics/normalize/parameter-slot.js +491 -0
- package/dist/semantics/normalize/physical-overload-result.d.ts +77 -0
- package/dist/semantics/normalize/physical-overload-result.js +99 -0
- package/dist/semantics/normalize/primitive-property-absence.d.ts +12 -0
- package/dist/semantics/normalize/primitive-property-absence.js +60 -0
- package/dist/semantics/normalize/producer-context.d.ts +376 -0
- package/dist/semantics/normalize/producer-context.js +1 -0
- package/dist/semantics/normalize/producers/allocations.d.ts +3 -0
- package/dist/semantics/normalize/producers/allocations.js +863 -0
- package/dist/semantics/normalize/producers/binding-kind.d.ts +37 -0
- package/dist/semantics/normalize/producers/binding-kind.js +36 -0
- package/dist/semantics/normalize/producers/bindings.d.ts +85 -0
- package/dist/semantics/normalize/producers/bindings.js +710 -0
- package/dist/semantics/normalize/producers/boundary.d.ts +34 -0
- package/dist/semantics/normalize/producers/boundary.js +123 -0
- package/dist/semantics/normalize/producers/class-lifecycle.d.ts +3 -0
- package/dist/semantics/normalize/producers/class-lifecycle.js +902 -0
- package/dist/semantics/normalize/producers/computations.d.ts +3 -0
- package/dist/semantics/normalize/producers/computations.js +613 -0
- package/dist/semantics/normalize/producers/control-loops.d.ts +30 -0
- package/dist/semantics/normalize/producers/control-loops.js +91 -0
- package/dist/semantics/normalize/producers/control.d.ts +30 -0
- package/dist/semantics/normalize/producers/control.js +923 -0
- package/dist/semantics/normalize/producers/declaration-lifecycle.d.ts +3 -0
- package/dist/semantics/normalize/producers/declaration-lifecycle.js +390 -0
- package/dist/semantics/normalize/producers/destructuring.d.ts +45 -0
- package/dist/semantics/normalize/producers/destructuring.js +1180 -0
- package/dist/semantics/normalize/producers/dynamic-language.d.ts +3 -0
- package/dist/semantics/normalize/producers/dynamic-language.js +70 -0
- package/dist/semantics/normalize/producers/erasure.d.ts +51 -0
- package/dist/semantics/normalize/producers/erasure.js +90 -0
- package/dist/semantics/normalize/producers/installed.d.ts +3 -0
- package/dist/semantics/normalize/producers/installed.js +55 -0
- package/dist/semantics/normalize/producers/invocations.d.ts +35 -0
- package/dist/semantics/normalize/producers/invocations.js +1796 -0
- package/dist/semantics/normalize/producers/iteration-yield.d.ts +59 -0
- package/dist/semantics/normalize/producers/iteration-yield.js +235 -0
- package/dist/semantics/normalize/producers/jsx.d.ts +3 -0
- package/dist/semantics/normalize/producers/jsx.js +360 -0
- package/dist/semantics/normalize/producers/mint.d.ts +39 -0
- package/dist/semantics/normalize/producers/mint.js +44 -0
- package/dist/semantics/normalize/producers/nullish.d.ts +16 -0
- package/dist/semantics/normalize/producers/nullish.js +27 -0
- package/dist/semantics/normalize/producers/object-assignment.d.ts +8 -0
- package/dist/semantics/normalize/producers/object-assignment.js +204 -0
- package/dist/semantics/normalize/producers/object-tag.d.ts +9 -0
- package/dist/semantics/normalize/producers/object-tag.js +119 -0
- package/dist/semantics/normalize/producers/optional-chain.d.ts +44 -0
- package/dist/semantics/normalize/producers/optional-chain.js +75 -0
- package/dist/semantics/normalize/producers/properties.d.ts +21 -0
- package/dist/semantics/normalize/producers/properties.js +1053 -0
- package/dist/semantics/normalize/producers/protocol.d.ts +67 -0
- package/dist/semantics/normalize/producers/protocol.js +695 -0
- package/dist/semantics/normalize/producers/references.d.ts +53 -0
- package/dist/semantics/normalize/producers/references.js +1027 -0
- package/dist/semantics/normalize/producers/shared.d.ts +561 -0
- package/dist/semantics/normalize/producers/shared.js +1683 -0
- package/dist/semantics/normalize/producers/spread-arguments.d.ts +72 -0
- package/dist/semantics/normalize/producers/spread-arguments.js +375 -0
- package/dist/semantics/normalize/producers/tagged-template.d.ts +5 -0
- package/dist/semantics/normalize/producers/tagged-template.js +307 -0
- package/dist/semantics/normalize/producers/tuple-spread.d.ts +189 -0
- package/dist/semantics/normalize/producers/tuple-spread.js +279 -0
- package/dist/semantics/normalize/property-key-domain.d.ts +36 -0
- package/dist/semantics/normalize/property-key-domain.js +150 -0
- package/dist/semantics/normalize/reachability.d.ts +189 -0
- package/dist/semantics/normalize/reachability.js +1057 -0
- package/dist/semantics/normalize/reassigned-bindings.d.ts +13 -0
- package/dist/semantics/normalize/reassigned-bindings.js +41 -0
- package/dist/semantics/normalize/record-storage-families.d.ts +11 -0
- package/dist/semantics/normalize/record-storage-families.js +109 -0
- package/dist/semantics/normalize/return-bindings.d.ts +260 -0
- package/dist/semantics/normalize/return-bindings.js +1311 -0
- package/dist/semantics/normalize/return-paths.d.ts +2 -0
- package/dist/semantics/normalize/return-paths.js +28 -0
- package/dist/semantics/normalize/script-global-redefinition.d.ts +44 -0
- package/dist/semantics/normalize/script-global-redefinition.js +75 -0
- package/dist/semantics/normalize/specialization.d.ts +201 -0
- package/dist/semantics/normalize/specialization.js +1824 -0
- package/dist/semantics/normalize/structural-array-element.d.ts +176 -0
- package/dist/semantics/normalize/structural-array-element.js +700 -0
- package/dist/semantics/normalize/structural-array-read.d.ts +13 -0
- package/dist/semantics/normalize/structural-array-read.js +124 -0
- package/dist/semantics/normalize/structural-callable.d.ts +12 -0
- package/dist/semantics/normalize/structural-callable.js +82 -0
- package/dist/semantics/normalize/structural-creation-order.d.ts +32 -0
- package/dist/semantics/normalize/structural-creation-order.js +111 -0
- package/dist/semantics/normalize/structural-declarations.d.ts +395 -0
- package/dist/semantics/normalize/structural-declarations.js +968 -0
- package/dist/semantics/normalize/structural-declared-body.d.ts +25 -0
- package/dist/semantics/normalize/structural-declared-body.js +147 -0
- package/dist/semantics/normalize/structural-generics.d.ts +56 -0
- package/dist/semantics/normalize/structural-generics.js +120 -0
- package/dist/semantics/normalize/structural-indexed-access.d.ts +11 -0
- package/dist/semantics/normalize/structural-indexed-access.js +126 -0
- package/dist/semantics/normalize/structural-instantiated-member.d.ts +64 -0
- package/dist/semantics/normalize/structural-instantiated-member.js +407 -0
- package/dist/semantics/normalize/structural-joins.d.ts +44 -0
- package/dist/semantics/normalize/structural-joins.js +143 -0
- package/dist/semantics/normalize/structural-layout-relevance.d.ts +29 -0
- package/dist/semantics/normalize/structural-layout-relevance.js +391 -0
- package/dist/semantics/normalize/structural-layout-type.d.ts +11 -0
- package/dist/semantics/normalize/structural-layout-type.js +1468 -0
- package/dist/semantics/normalize/structural-leaves.d.ts +49 -0
- package/dist/semantics/normalize/structural-leaves.js +125 -0
- package/dist/semantics/normalize/structural-local-union.d.ts +13 -0
- package/dist/semantics/normalize/structural-local-union.js +133 -0
- package/dist/semantics/normalize/structural-members.d.ts +26 -0
- package/dist/semantics/normalize/structural-members.js +84 -0
- package/dist/semantics/normalize/structural-mutable-method.d.ts +15 -0
- package/dist/semantics/normalize/structural-mutable-method.js +109 -0
- package/dist/semantics/normalize/structural-parts.d.ts +131 -0
- package/dist/semantics/normalize/structural-parts.js +737 -0
- package/dist/semantics/normalize/structural-receiver.d.ts +66 -0
- package/dist/semantics/normalize/structural-receiver.js +551 -0
- package/dist/semantics/normalize/structural-rules.d.ts +112 -0
- package/dist/semantics/normalize/structural-rules.js +93 -0
- package/dist/semantics/normalize/structural-self-reference.d.ts +150 -0
- package/dist/semantics/normalize/structural-self-reference.js +494 -0
- package/dist/semantics/normalize/structural.d.ts +202 -0
- package/dist/semantics/normalize/structural.js +4218 -0
- package/dist/semantics/normalize/unreduced-type-form.d.ts +41 -0
- package/dist/semantics/normalize/unreduced-type-form.js +53 -0
- package/dist/semantics/normalize/unresolvable-names.d.ts +56 -0
- package/dist/semantics/normalize/unresolvable-names.js +140 -0
- package/dist/semantics/package-sources.d.ts +16 -0
- package/dist/semantics/package-sources.js +365 -0
- package/dist/semantics/program.d.ts +151 -0
- package/dist/semantics/program.js +667 -0
- package/dist/semantics/prototype-install-source-transform.d.ts +4 -0
- package/dist/semantics/prototype-install-source-transform.js +341 -0
- package/dist/semantics/prototype-object-class-source-transform.d.ts +4 -0
- package/dist/semantics/prototype-object-class-source-transform.js +525 -0
- package/dist/semantics/prototype-reparenting.d.ts +50 -0
- package/dist/semantics/prototype-reparenting.js +317 -0
- package/dist/semantics/stable-checker.d.ts +10 -0
- package/dist/semantics/stable-checker.js +148 -0
- package/dist/semantics/subclass-member-overlay-transform.d.ts +35 -0
- package/dist/semantics/subclass-member-overlay-transform.js +1418 -0
- package/dist/semantics/symbol-keyed-expando-source-transform.d.ts +4 -0
- package/dist/semantics/symbol-keyed-expando-source-transform.js +66 -0
- package/dist/semantics/this-constructor-source-transform.d.ts +4 -0
- package/dist/semantics/this-constructor-source-transform.js +122 -0
- package/dist/semantics/uninstantiable-classes.d.ts +22 -0
- package/dist/semantics/uninstantiable-classes.js +75 -0
- package/dist/targets/cpp/balanced-units.d.ts +3 -0
- package/dist/targets/cpp/balanced-units.js +58 -0
- package/dist/targets/cpp/borrowed-call-entry.d.ts +30 -0
- package/dist/targets/cpp/borrowed-call-entry.js +68 -0
- package/dist/targets/cpp/captures.d.ts +68 -0
- package/dist/targets/cpp/captures.js +269 -0
- package/dist/targets/cpp/class-layout.d.ts +313 -0
- package/dist/targets/cpp/class-layout.js +483 -0
- package/dist/targets/cpp/class-properties/computed-method-value.d.ts +25 -0
- package/dist/targets/cpp/class-properties/computed-method-value.js +22 -0
- package/dist/targets/cpp/class-properties/emit-class-properties.d.ts +216 -0
- package/dist/targets/cpp/class-properties/emit-class-properties.js +917 -0
- package/dist/targets/cpp/class-properties/native-prototype.d.ts +11 -0
- package/dist/targets/cpp/class-properties/native-prototype.js +101 -0
- package/dist/targets/cpp/class-ref-transport.d.ts +12 -0
- package/dist/targets/cpp/class-ref-transport.js +32 -0
- package/dist/targets/cpp/conversions.d.ts +3 -0
- package/dist/targets/cpp/conversions.js +2027 -0
- package/dist/targets/cpp/deferral-safety.d.ts +82 -0
- package/dist/targets/cpp/deferral-safety.js +86 -0
- package/dist/targets/cpp/direct-call-receivers.d.ts +37 -0
- package/dist/targets/cpp/direct-call-receivers.js +79 -0
- package/dist/targets/cpp/document.d.ts +74 -0
- package/dist/targets/cpp/document.js +106 -0
- package/dist/targets/cpp/emit-allocation.d.ts +60 -0
- package/dist/targets/cpp/emit-allocation.js +573 -0
- package/dist/targets/cpp/emit-arrays.d.ts +119 -0
- package/dist/targets/cpp/emit-arrays.js +1047 -0
- package/dist/targets/cpp/emit-binding-reference.d.ts +17 -0
- package/dist/targets/cpp/emit-binding-reference.js +120 -0
- package/dist/targets/cpp/emit-bindings.d.ts +158 -0
- package/dist/targets/cpp/emit-bindings.js +769 -0
- package/dist/targets/cpp/emit-buffers.d.ts +156 -0
- package/dist/targets/cpp/emit-buffers.js +573 -0
- package/dist/targets/cpp/emit-callable.d.ts +230 -0
- package/dist/targets/cpp/emit-callable.js +2154 -0
- package/dist/targets/cpp/emit-carrier-members.d.ts +406 -0
- package/dist/targets/cpp/emit-carrier-members.js +1224 -0
- package/dist/targets/cpp/emit-coercion.d.ts +26 -0
- package/dist/targets/cpp/emit-coercion.js +39 -0
- package/dist/targets/cpp/emit-context.d.ts +1882 -0
- package/dist/targets/cpp/emit-context.js +904 -0
- package/dist/targets/cpp/emit-dynamic-properties.d.ts +174 -0
- package/dist/targets/cpp/emit-dynamic-properties.js +1249 -0
- package/dist/targets/cpp/emit-equality.d.ts +39 -0
- package/dist/targets/cpp/emit-equality.js +472 -0
- package/dist/targets/cpp/emit-exceptions.d.ts +104 -0
- package/dist/targets/cpp/emit-exceptions.js +513 -0
- package/dist/targets/cpp/emit-field-owner.d.ts +4 -0
- package/dist/targets/cpp/emit-field-owner.js +27 -0
- package/dist/targets/cpp/emit-in.d.ts +31 -0
- package/dist/targets/cpp/emit-in.js +426 -0
- package/dist/targets/cpp/emit-instanceof.d.ts +19 -0
- package/dist/targets/cpp/emit-instanceof.js +601 -0
- package/dist/targets/cpp/emit-integers.d.ts +68 -0
- package/dist/targets/cpp/emit-integers.js +184 -0
- package/dist/targets/cpp/emit-iterator.d.ts +100 -0
- package/dist/targets/cpp/emit-iterator.js +1137 -0
- package/dist/targets/cpp/emit-json.d.ts +73 -0
- package/dist/targets/cpp/emit-json.js +823 -0
- package/dist/targets/cpp/emit-jsx.d.ts +74 -0
- package/dist/targets/cpp/emit-jsx.js +806 -0
- package/dist/targets/cpp/emit-mixed-binary.d.ts +51 -0
- package/dist/targets/cpp/emit-mixed-binary.js +60 -0
- package/dist/targets/cpp/emit-namespaces.d.ts +101 -0
- package/dist/targets/cpp/emit-namespaces.js +133 -0
- package/dist/targets/cpp/emit-narrowing.d.ts +738 -0
- package/dist/targets/cpp/emit-narrowing.js +3967 -0
- package/dist/targets/cpp/emit-native-equality.d.ts +3 -0
- package/dist/targets/cpp/emit-native-equality.js +14 -0
- package/dist/targets/cpp/emit-native-selection.d.ts +5 -0
- package/dist/targets/cpp/emit-native-selection.js +37 -0
- package/dist/targets/cpp/emit-object-tag.d.ts +4 -0
- package/dist/targets/cpp/emit-object-tag.js +108 -0
- package/dist/targets/cpp/emit-owned-record.d.ts +2 -0
- package/dist/targets/cpp/emit-owned-record.js +15 -0
- package/dist/targets/cpp/emit-presence.d.ts +78 -0
- package/dist/targets/cpp/emit-presence.js +376 -0
- package/dist/targets/cpp/emit-properties.d.ts +105 -0
- package/dist/targets/cpp/emit-properties.js +1640 -0
- package/dist/targets/cpp/emit-record-view.d.ts +20 -0
- package/dist/targets/cpp/emit-record-view.js +354 -0
- package/dist/targets/cpp/emit-return.d.ts +5 -0
- package/dist/targets/cpp/emit-return.js +237 -0
- package/dist/targets/cpp/emit-sum-widening.d.ts +10 -0
- package/dist/targets/cpp/emit-sum-widening.js +69 -0
- package/dist/targets/cpp/emit-tonumber.d.ts +38 -0
- package/dist/targets/cpp/emit-tonumber.js +177 -0
- package/dist/targets/cpp/emit-tostring.d.ts +92 -0
- package/dist/targets/cpp/emit-tostring.js +556 -0
- package/dist/targets/cpp/emit-typeof.d.ts +49 -0
- package/dist/targets/cpp/emit-typeof.js +317 -0
- package/dist/targets/cpp/emit-union-properties.d.ts +181 -0
- package/dist/targets/cpp/emit-union-properties.js +1281 -0
- package/dist/targets/cpp/emit.d.ts +45 -0
- package/dist/targets/cpp/emit.js +2225 -0
- package/dist/targets/cpp/error-types.d.ts +4 -0
- package/dist/targets/cpp/error-types.js +11 -0
- package/dist/targets/cpp/function-source-reads.d.ts +72 -0
- package/dist/targets/cpp/function-source-reads.js +148 -0
- package/dist/targets/cpp/host/atomics.d.ts +25 -0
- package/dist/targets/cpp/host/atomics.js +63 -0
- package/dist/targets/cpp/host/core-globals.d.ts +108 -0
- package/dist/targets/cpp/host/core-globals.js +158 -0
- package/dist/targets/cpp/host/dynamic-argument-members.d.ts +42 -0
- package/dist/targets/cpp/host/dynamic-argument-members.js +61 -0
- package/dist/targets/cpp/host/emit-host-arity.d.ts +139 -0
- package/dist/targets/cpp/host/emit-host-arity.js +232 -0
- package/dist/targets/cpp/host/emit-host-invoke.d.ts +91 -0
- package/dist/targets/cpp/host/emit-host-invoke.js +1105 -0
- package/dist/targets/cpp/host/emit-host-object.d.ts +55 -0
- package/dist/targets/cpp/host/emit-host-object.js +2206 -0
- package/dist/targets/cpp/host/emit-host-properties.d.ts +69 -0
- package/dist/targets/cpp/host/emit-host-properties.js +533 -0
- package/dist/targets/cpp/host/emit-host-reflect.d.ts +4 -0
- package/dist/targets/cpp/host/emit-host-reflect.js +180 -0
- package/dist/targets/cpp/host/emit-host-value.d.ts +120 -0
- package/dist/targets/cpp/host/emit-host-value.js +392 -0
- package/dist/targets/cpp/host/host-members.d.ts +505 -0
- package/dist/targets/cpp/host/host-members.js +819 -0
- package/dist/targets/cpp/host/host-method-aliases.d.ts +30 -0
- package/dist/targets/cpp/host/host-method-aliases.js +76 -0
- package/dist/targets/cpp/host/native-protocols.d.ts +47 -0
- package/dist/targets/cpp/host/native-protocols.js +183 -0
- package/dist/targets/cpp/host/object-protocol.d.ts +351 -0
- package/dist/targets/cpp/host/object-protocol.js +671 -0
- package/dist/targets/cpp/host-namespace-reads.d.ts +83 -0
- package/dist/targets/cpp/host-namespace-reads.js +113 -0
- package/dist/targets/cpp/manifest/capabilities.d.ts +39 -0
- package/dist/targets/cpp/manifest/capabilities.js +1484 -0
- package/dist/targets/cpp/manifest.d.ts +23 -0
- package/dist/targets/cpp/manifest.js +113 -0
- package/dist/targets/cpp/native-error-base.d.ts +38 -0
- package/dist/targets/cpp/native-error-base.js +74 -0
- package/dist/targets/cpp/native-narrowing-transport.d.ts +12 -0
- package/dist/targets/cpp/native-narrowing-transport.js +151 -0
- package/dist/targets/cpp/native-selection-helpers.d.ts +11 -0
- package/dist/targets/cpp/native-selection-helpers.js +46 -0
- package/dist/targets/cpp/native-symbol-keys.d.ts +8 -0
- package/dist/targets/cpp/native-symbol-keys.js +34 -0
- package/dist/targets/cpp/ownership.d.ts +43 -0
- package/dist/targets/cpp/ownership.js +38 -0
- package/dist/targets/cpp/owning-conversion-input.d.ts +14 -0
- package/dist/targets/cpp/owning-conversion-input.js +12 -0
- package/dist/targets/cpp/property-read-claims.d.ts +62 -0
- package/dist/targets/cpp/property-read-claims.js +23 -0
- package/dist/targets/cpp/property-store-claims.d.ts +62 -0
- package/dist/targets/cpp/property-store-claims.js +26 -0
- package/dist/targets/cpp/prototype/emit-prototype-array.d.ts +111 -0
- package/dist/targets/cpp/prototype/emit-prototype-array.js +602 -0
- package/dist/targets/cpp/prototype/emit-prototype-date.d.ts +133 -0
- package/dist/targets/cpp/prototype/emit-prototype-date.js +515 -0
- package/dist/targets/cpp/prototype/emit-prototype-error.d.ts +13 -0
- package/dist/targets/cpp/prototype/emit-prototype-error.js +54 -0
- package/dist/targets/cpp/prototype/emit-prototype-invoke.d.ts +34 -0
- package/dist/targets/cpp/prototype/emit-prototype-invoke.js +1003 -0
- package/dist/targets/cpp/prototype/emit-prototype-iterator.d.ts +47 -0
- package/dist/targets/cpp/prototype/emit-prototype-iterator.js +250 -0
- package/dist/targets/cpp/prototype/emit-prototype-promise.d.ts +46 -0
- package/dist/targets/cpp/prototype/emit-prototype-promise.js +143 -0
- package/dist/targets/cpp/prototype/emit-prototype-regexp.d.ts +335 -0
- package/dist/targets/cpp/prototype/emit-prototype-regexp.js +853 -0
- package/dist/targets/cpp/prototype/emit-prototype-string.d.ts +42 -0
- package/dist/targets/cpp/prototype/emit-prototype-string.js +252 -0
- package/dist/targets/cpp/prototype/prototype-method-reads.d.ts +25 -0
- package/dist/targets/cpp/prototype/prototype-method-reads.js +182 -0
- package/dist/targets/cpp/reactive-dependencies.d.ts +140 -0
- package/dist/targets/cpp/reactive-dependencies.js +432 -0
- package/dist/targets/cpp/reactive-origins.d.ts +44 -0
- package/dist/targets/cpp/reactive-origins.js +82 -0
- package/dist/targets/cpp/records.d.ts +277 -0
- package/dist/targets/cpp/records.js +2427 -0
- package/dist/targets/cpp/recursive-containers.d.ts +43 -0
- package/dist/targets/cpp/recursive-containers.js +144 -0
- package/dist/targets/cpp/regexp-types.d.ts +56 -0
- package/dist/targets/cpp/regexp-types.js +59 -0
- package/dist/targets/cpp/substrate.d.ts +125 -0
- package/dist/targets/cpp/substrate.js +12 -0
- package/dist/targets/cpp/translation-unit.d.ts +219 -0
- package/dist/targets/cpp/translation-unit.js +2063 -0
- package/dist/targets/cpp/types.d.ts +280 -0
- package/dist/targets/cpp/types.js +1135 -0
- package/dist/targets/cpp/virtual-methods.d.ts +95 -0
- package/dist/targets/cpp/virtual-methods.js +264 -0
- package/package.json +95 -0
- package/src/targets/cpp/runtime/gea_dynamic_proxy.h +824 -0
- package/src/targets/cpp/runtime/gea_eval.h +1376 -0
- package/src/targets/cpp/runtime/gea_native_class_prototype.h +44 -0
- package/src/targets/cpp/runtime/gea_runtime.h +29222 -0
- package/src/targets/cpp/runtime/gea_runtime_builtins.cpp +55 -0
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
import type { DefineOwnPropertyOperation, GetOperation, IrOperand, IrResult, SetOperation } from '../../ir/model.js';
|
|
2
|
+
import type { IrValueId } from '../../identity/ids.js';
|
|
3
|
+
import { type ReactiveRevisionOrigin, type EmitContext, type PrototypeMethodRead } from './emit-context.js';
|
|
4
|
+
import type { Ownership, Representation } from '../../representation/model.js';
|
|
5
|
+
import { type ConversionSite } from './emit-narrowing.js';
|
|
6
|
+
import { type RecordIndexSidecar } from './records.js';
|
|
7
|
+
/**
|
|
8
|
+
* How a member reads on each built-in carrier.
|
|
9
|
+
*
|
|
10
|
+
* These are renderings, not decisions. `emit-properties.ts` remains the one
|
|
11
|
+
* place that *chooses* which of them a given key means -- its own header
|
|
12
|
+
* explains why that choice must not be split, and this file does not split it.
|
|
13
|
+
* What moves here is the mechanical part: given that the receiver is already
|
|
14
|
+
* known to be an Array, a typed array, a string or a scalar, what text does
|
|
15
|
+
* the member read render to. Each answers `null` for a receiver that is not
|
|
16
|
+
* its own, so the caller's dispatch stays a single ordered sequence.
|
|
17
|
+
*/
|
|
18
|
+
export { canonicalIndexLiteral } from '../../representation/array-index.js';
|
|
19
|
+
/**
|
|
20
|
+
* An element already PROVEN present, written in the result's own carrier, or
|
|
21
|
+
* `null` when that carrier is not absence-capable and the element stands as it
|
|
22
|
+
* is.
|
|
23
|
+
*
|
|
24
|
+
* Two readers produce a proven-present element and both need this: the guarded
|
|
25
|
+
* arm of `absentCapableElementText`, whose guard is the proof, and the dense
|
|
26
|
+
* window's fast path, whose flag is (`ir/dense-loops.ts` admits a window only
|
|
27
|
+
* for an array with no hole and an index the loop's own bound covers -- the
|
|
28
|
+
* general form is what runs otherwise). Stating it once is what keeps the two
|
|
29
|
+
* arms of that window's conditional in one C++ type instead of leaving the
|
|
30
|
+
* conditional operator to find one through `Optional<T>`'s converting
|
|
31
|
+
* constructor.
|
|
32
|
+
*/
|
|
33
|
+
export declare const presentElementText: (ctx: ConversionSite, element: Representation, result: IrResult | null, text: string) => string | null;
|
|
34
|
+
/**
|
|
35
|
+
* Whether an Array member read is a deferred `Array.prototype` METHOD read,
|
|
36
|
+
* and what it is.
|
|
37
|
+
*
|
|
38
|
+
* The one statement of that test. `arrayAccessText` below asks it rather than
|
|
39
|
+
* repeating it, and so does the walk that settles
|
|
40
|
+
* `EmitContext.prototypeMethodReads` before a body renders -- one
|
|
41
|
+
* implementation, two callers, which is what keeps a fact to one authority.
|
|
42
|
+
* The exclusions are the branches that claim the key FIRST and are therefore
|
|
43
|
+
* part of the same question: `length`, a field the array's extension declares,
|
|
44
|
+
* and a canonical index.
|
|
45
|
+
*/
|
|
46
|
+
export declare const deferredArrayMethodClaim: (staticKeyTexts: ReadonlyMap<IrValueId, string>, receiver: IrOperand, key: IrOperand) => PrototypeMethodRead | null;
|
|
47
|
+
export declare const arrayAccessText: (ctx: EmitContext, receiver: IrOperand, key: IrOperand, result: IrResult | null) => string | null;
|
|
48
|
+
/**
|
|
49
|
+
* The TypedArray reading of a property access, or `null` when the receiver
|
|
50
|
+
* is not a typed array.
|
|
51
|
+
*
|
|
52
|
+
* Unlike `array-object`, a typed array has no ordinary-property domain at
|
|
53
|
+
* all -- ECMA-262 23.2's integer-indexed exotic object answers every
|
|
54
|
+
* non-canonical-index key through the ordinary `[[Get]]` this carrier keeps
|
|
55
|
+
* no table for, so a constant key other than `length` or a canonical index
|
|
56
|
+
* is refused by name exactly the way `arrayAccessText` refuses one for an
|
|
57
|
+
* Array.
|
|
58
|
+
*/
|
|
59
|
+
/**
|
|
60
|
+
* Whether a typed-array member read is a deferred `%TypedArray%.prototype`
|
|
61
|
+
* method read. Stated once, asked by the renderer below and by the walk that
|
|
62
|
+
* settles `EmitContext.prototypeMethodReads`. The exclusions are the keys
|
|
63
|
+
* claimed first and therefore part of the same question: `length`, a canonical
|
|
64
|
+
* index, and the three block-shaped members `emit-buffers.ts` owns.
|
|
65
|
+
*/
|
|
66
|
+
export declare const deferredTypedArrayMethodClaim: (staticKeyTexts: ReadonlyMap<IrValueId, string>, receiver: IrOperand, key: IrOperand) => PrototypeMethodRead | null;
|
|
67
|
+
export declare const typedArrayAccessText: (ctx: EmitContext, receiver: IrOperand, key: IrOperand, result: IrResult | null) => string | null;
|
|
68
|
+
/**
|
|
69
|
+
* `absentCapableElementText` for the typed-array reader.
|
|
70
|
+
*
|
|
71
|
+
* The same defect and the same cure, one carrier along: under
|
|
72
|
+
* `noUncheckedIndexedAccess` the checker types `view[i]` as `number |
|
|
73
|
+
* undefined`, and `TypedArray::elementAt` cannot answer that `undefined` --
|
|
74
|
+
* it aborts on an index outside the view. Left as the bare reader, this half
|
|
75
|
+
* is WORSE than the Array half was: `Optional<double>` converts implicitly
|
|
76
|
+
* from the `double` the reader returns, so the mismatch compiles, and the
|
|
77
|
+
* program aborts on a read JavaScript answers with a value.
|
|
78
|
+
*
|
|
79
|
+
* The payload is required to be a `scalar` rather than converted, because
|
|
80
|
+
* what `elementAt` produces is not a carrier this backend selected -- the
|
|
81
|
+
* reader's return type is `double` for all eight views, whatever the element
|
|
82
|
+
* domain is. Asking `convertedValueText` would mean inventing a source
|
|
83
|
+
* carrier to ask about; requiring the one payload that reader fits is the
|
|
84
|
+
* same fact stated where it is true.
|
|
85
|
+
*/
|
|
86
|
+
export declare const absentCapableNumericElementText: (receiverText: string, keyText: string, result: IrResult | null) => string | null;
|
|
87
|
+
/**
|
|
88
|
+
* The String reading of a property access, or `null` when the receiver is not
|
|
89
|
+
* a `string`.
|
|
90
|
+
*
|
|
91
|
+
* `length` is the only own data property a JavaScript string has; everything
|
|
92
|
+
* else `String.prototype` exposes is a method, and a method reference is a
|
|
93
|
+
* `[[Get]]` too -- `s.slice(...)`'s callee is its own `property` operation,
|
|
94
|
+
* cited by the call the same way a class method's is. Rendering one as a
|
|
95
|
+
* value needs a receiver-carrying calling convention, and the checker's
|
|
96
|
+
* structural signature for an ambient interface method (as opposed to a class
|
|
97
|
+
* method body) carries no `this` parameter -- `structural.ts`'s
|
|
98
|
+
* `implicitReceiverOf` synthesizes one only for a class's own method, not for
|
|
99
|
+
* a `lib.es5.d.ts` interface member. Rendering the method anyway would emit a
|
|
100
|
+
* call that drops the receiver, exactly the mismatch `emit.ts`'s call
|
|
101
|
+
* emission already refuses by its own fail-closed guard.
|
|
102
|
+
*
|
|
103
|
+
* A key naming one of `stringPrototypeMethods` (see `emit-prototype-string.ts`,
|
|
104
|
+
* the one authority for which those are) is the one exception: instead of rendering the method here, the access
|
|
105
|
+
* defers -- it records which member was reached off which receiver and
|
|
106
|
+
* renders nothing, and the following call fuses receiver, method and
|
|
107
|
+
* arguments into one expression, sidestepping the missing-receiver problem
|
|
108
|
+
* entirely rather than solving it generically. Every other key is still
|
|
109
|
+
* refused by name instead of guessed at: the gap is the missing receiver
|
|
110
|
+
* upstream, not a rendering this file could supply for an unimplemented
|
|
111
|
+
* method.
|
|
112
|
+
*
|
|
113
|
+
* The one key that is neither `length` nor a method is a canonical INDEX --
|
|
114
|
+
* `s[i]`, ECMA-262 10.4.3's String exotic `[[Get]]`, which answers a
|
|
115
|
+
* single-code-unit string. See `stringIndexText`.
|
|
116
|
+
*/
|
|
117
|
+
export declare const isDeclaredStringPrototypeKey: (key: string) => boolean;
|
|
118
|
+
/**
|
|
119
|
+
* A symbol's own `description` -- `Symbol.prototype.description`, ECMA-262
|
|
120
|
+
* 20.4.3.2, an accessor whose value is `undefined` for `Symbol()` and the
|
|
121
|
+
* string given otherwise, which is exactly the `gea::Optional<std::string>`
|
|
122
|
+
* `gea::symbolDescription` answers and the `optional(string)` carrier the
|
|
123
|
+
* checker's `string | undefined` derives to. test262's `propertyHelper.js`
|
|
124
|
+
* reads it for every symbol-keyed `verifyProperty`. The other
|
|
125
|
+
* `Symbol.prototype` members (`toString`, `valueOf`, `[@@toPrimitive]`) are
|
|
126
|
+
* methods and refuse by name until an invocation asks for them.
|
|
127
|
+
*/
|
|
128
|
+
export declare const symbolMemberText: (ctx: EmitContext, receiver: IrOperand, key: IrOperand, result: IrResult | null) => string | null;
|
|
129
|
+
/**
|
|
130
|
+
* Whether a String member read is a deferred `String.prototype` method read.
|
|
131
|
+
* One statement of the test; `stringMemberText` and the prototype-read walk
|
|
132
|
+
* both ask it.
|
|
133
|
+
*/
|
|
134
|
+
export declare const deferredStringMethodClaim: (staticKeyTexts: ReadonlyMap<IrValueId, string>, receiver: IrOperand, key: IrOperand) => PrototypeMethodRead | null;
|
|
135
|
+
export declare const stringMemberText: (ctx: EmitContext, receiver: IrOperand, key: IrOperand, result: IrResult | null) => string | null;
|
|
136
|
+
/**
|
|
137
|
+
* `s[i]` -- ECMA-262 10.4.3's String exotic `[[Get]]`.
|
|
138
|
+
*
|
|
139
|
+
* The result is a one-code-unit string, and the unit is
|
|
140
|
+
* `gea::runtime::string::charAt`'s: this backend stores a string as UTF-8 and
|
|
141
|
+
* the spec indexes it in UTF-16 code units, so `charAt` -- which already owns
|
|
142
|
+
* that projection (`substringUtf16` over `utf16Length`) -- is where the index
|
|
143
|
+
* space is decided, rather than restated here where the two could disagree.
|
|
144
|
+
*
|
|
145
|
+
* ## Out of range, and the carrier
|
|
146
|
+
*
|
|
147
|
+
* The spec's answer for an out-of-range or non-integer index is `undefined`,
|
|
148
|
+
* and `charAt`'s is the empty string. That divergence is not observable
|
|
149
|
+
* through the type the checker gives this read: `lib.es5.d.ts` declares
|
|
150
|
+
* `String`'s index signature `readonly [index: number]: string`, so the result
|
|
151
|
+
* carrier is `string`, there is no `undefined` in it to produce, and a program
|
|
152
|
+
* that compares the result against `undefined` is refused by the checker
|
|
153
|
+
* before this emitter is reached ("types 'string' and 'undefined' have no
|
|
154
|
+
* overlap"). `arrayAccessText`'s `elementAt` answers an out-of-range Array
|
|
155
|
+
* index the same way and for the same reason -- the checker types `a[i]` as
|
|
156
|
+
* `T`, not `T | undefined` -- so this is the backend's existing convention,
|
|
157
|
+
* not a new one taken here.
|
|
158
|
+
*
|
|
159
|
+
* A program compiled with `noUncheckedIndexedAccess` is the case where the
|
|
160
|
+
* difference IS in the type: the checker then says `string | undefined`, the
|
|
161
|
+
* carrier is absence-capable, and a bare `std::string` would be the wrong
|
|
162
|
+
* one. That is refused by name rather than rendered, because producing the
|
|
163
|
+
* absence needs a materialization this function is not the place to decide.
|
|
164
|
+
*
|
|
165
|
+
* The integer guard on the computed path is this access's own rule and not
|
|
166
|
+
* `charAt`'s: `charAt(1.5)` truncates to 1 and answers a real code unit,
|
|
167
|
+
* while `s[1.5]` reads the ordinary property `"1.5"`, which a string does not
|
|
168
|
+
* have. Under a `string` carrier the honest answer for it is the same empty
|
|
169
|
+
* string every other out-of-range index gets. A constant index has already
|
|
170
|
+
* been proved canonical by `canonicalIndexLiteral`, so it needs no guard at
|
|
171
|
+
* all.
|
|
172
|
+
*/
|
|
173
|
+
export declare const stringIndexText: (receiverText: string, indexText: string, result: IrResult | null, staticKey: string | null) => string;
|
|
174
|
+
/**
|
|
175
|
+
* The scalar reading of a property access, or `null` when the receiver is not
|
|
176
|
+
* a `scalar`.
|
|
177
|
+
*
|
|
178
|
+
* A `scalar` (`number`, `boolean`, `bigint`, ...) has no own data property at
|
|
179
|
+
* all: `Number.prototype`/`Boolean.prototype` expose only methods (`toFixed`,
|
|
180
|
+
* `toString`, `valueOf`, ...), never a stored field the way String's `length`
|
|
181
|
+
* is. So this is `stringMemberText`'s non-`length` branch with nothing left
|
|
182
|
+
* over to carve out first -- and it defers on the same terms: a key naming one
|
|
183
|
+
* of `numberPrototypeMethods` records the read and renders nothing, so the
|
|
184
|
+
* call that follows fuses receiver, method and arguments into one expression.
|
|
185
|
+
* Every other key is a method reference refused for the identical reason the
|
|
186
|
+
* String path refuses one: the checker's structural signature for a
|
|
187
|
+
* `lib.es5.d.ts` interface method carries no `this` parameter, so there is no
|
|
188
|
+
* receiver a rendered call could close over.
|
|
189
|
+
*/
|
|
190
|
+
/**
|
|
191
|
+
* A `promise` receiver's members.
|
|
192
|
+
*
|
|
193
|
+
* A promise has no data property at all: `then`/`catch`/`finally` are
|
|
194
|
+
* `Promise.prototype` methods, and the checker's structural signature for one
|
|
195
|
+
* carries no `this` parameter -- the same missing-receiver reason
|
|
196
|
+
* `stringMemberText` and `scalarMemberText` state. So `then` defers and fuses
|
|
197
|
+
* with its call, and every other member is refused by name.
|
|
198
|
+
*
|
|
199
|
+
* `finally` is deliberately not deferred. 27.2.5.3 runs its callback on BOTH
|
|
200
|
+
* settlements and then re-raises the original one -- a fulfilled promise's
|
|
201
|
+
* value passes through and a rejected promise's rejection is re-thrown after
|
|
202
|
+
* the callback -- which is a rendering this backend does not have. `catch`
|
|
203
|
+
* does: `gea::Promise` carries a rejection (an `exception_ptr`, see the
|
|
204
|
+
* carrier's own comment) and `promiseCatchText` renders the handler over it.
|
|
205
|
+
*/
|
|
206
|
+
/** Whether a Promise member read is a deferred `Promise.prototype` method read. Stated once; the renderer and the walk both ask it. */
|
|
207
|
+
export declare const deferredPromiseMethodClaim: (staticKeyTexts: ReadonlyMap<IrValueId, string>, receiver: IrOperand, key: IrOperand) => PrototypeMethodRead | null;
|
|
208
|
+
export declare const promiseMemberText: (ctx: EmitContext, receiver: IrOperand, key: IrOperand, result: IrValueId | null) => string | null;
|
|
209
|
+
/**
|
|
210
|
+
* An `iterator` receiver's members -- a generator value or one of the four
|
|
211
|
+
* fixed-storage cursor sources, all carried as `gea::Iterator<T, TReturn,
|
|
212
|
+
* TNext>` (`representation/model.ts`'s `iterator` kind) -- of which `next`,
|
|
213
|
+
* `return` and `throw` are the ones this backend renders.
|
|
214
|
+
*
|
|
215
|
+
* Deferred and fused with its call exactly as a Promise member is, and for
|
|
216
|
+
* the same reason `stringMemberText` states: the ambient `Generator`
|
|
217
|
+
* interface method has no `this` parameter, so there is no receiver-carrying
|
|
218
|
+
* calling convention a first-class value could be built from. The claimed
|
|
219
|
+
* member set is `iteratorPrototypeMethods`'s (`emit-prototype-iterator.ts`),
|
|
220
|
+
* one authority with the renderer -- and `manifest/capabilities.ts` claims
|
|
221
|
+
* the same members by name (`iterator(next):get:false`, and its `return`/
|
|
222
|
+
* `throw` siblings), so a member that reaches here unclaimed is a preflight
|
|
223
|
+
* defect, reported as one. `iteratorCallText` refines `return`/`throw`
|
|
224
|
+
* further, by the receiver's own `source` tag, to the one carrier
|
|
225
|
+
* (`'generator'`) whose real prototype defines them at all.
|
|
226
|
+
*/
|
|
227
|
+
/** Whether an iterator member read is a deferred `%GeneratorPrototype%` method read. Stated once; the renderer and the walk both ask it. */
|
|
228
|
+
export declare const deferredIteratorMethodClaim: (staticKeyTexts: ReadonlyMap<IrValueId, string>, receiver: IrOperand, key: IrOperand) => PrototypeMethodRead | null;
|
|
229
|
+
export declare const iteratorMemberText: (ctx: EmitContext, receiver: IrOperand, key: IrOperand, result: IrValueId | null) => string | null;
|
|
230
|
+
/** Whether a Map/Set/WeakMap/WeakSet member read is a deferred prototype method read. Stated once; the renderer and the walk both ask it. */
|
|
231
|
+
export declare const deferredKeyedCollectionMethodClaim: (staticKeyTexts: ReadonlyMap<IrValueId, string>, receiver: IrOperand, key: IrOperand) => PrototypeMethodRead | null;
|
|
232
|
+
export declare const keyedCollectionMemberText: (ctx: EmitContext, receiver: IrOperand, key: IrOperand, result: IrValueId | null) => string | null;
|
|
233
|
+
/**
|
|
234
|
+
* `shared-refcount` is a `shared_ptr` and needs `->`; `owned`/`borrowed` are the
|
|
235
|
+
* struct itself (or a reference to it) and use `.`.
|
|
236
|
+
*
|
|
237
|
+
* Lives here rather than in `emit-properties.ts`, where every call site of it
|
|
238
|
+
* is, because `recordIndexSidecarTableOf` below needs it too and this file
|
|
239
|
+
* cannot import back from that one (`emit-properties.ts` already imports the
|
|
240
|
+
* carrier renderers *from* here; the dependency only runs one way). A single
|
|
241
|
+
* mechanical helper crossing that line is cheaper than reversing it.
|
|
242
|
+
*/
|
|
243
|
+
export declare const memberAccessOperator: (ownership: Ownership) => string;
|
|
244
|
+
/**
|
|
245
|
+
* The companion revision cell a reactive origin ticks, spelled.
|
|
246
|
+
*
|
|
247
|
+
* The fact (`ReactiveRevisionOrigin`) names the owning OPERAND and the field;
|
|
248
|
+
* the C++ name of that operand exists only once its defining operation has
|
|
249
|
+
* rendered, which is why the spelling is taken here, at the store that ticks
|
|
250
|
+
* it, and not at the read that recorded the origin.
|
|
251
|
+
*/
|
|
252
|
+
export declare const reactiveRevisionText: (ctx: EmitContext, origin: ReactiveRevisionOrigin) => string;
|
|
253
|
+
/**
|
|
254
|
+
* One key, spelled in the domain the keyed container is actually keyed by --
|
|
255
|
+
* for a struct's index sidecar and for a bare `dictionary` receiver alike.
|
|
256
|
+
*
|
|
257
|
+
* A property key is a string in the source language: `a[0]` and `{ [N]: v }`
|
|
258
|
+
* with `const N = 2` both publish the constant `"0"`/`"2"`, while
|
|
259
|
+
* `gea::NumericDictionary` is keyed by `double`. The two have to be reconciled
|
|
260
|
+
* or the emitted subscript does not compile. This is the identical rule
|
|
261
|
+
* `emit-allocation.ts`'s `emitAllocateDictionary` already applies to the fields
|
|
262
|
+
* an allocation installs, lifted to one function so an allocation, a later
|
|
263
|
+
* store and a read cannot end up with three opinions about how a key is
|
|
264
|
+
* spelled.
|
|
265
|
+
*
|
|
266
|
+
* A key whose own carrier already matches the container's domain passes through
|
|
267
|
+
* untouched -- `strings[i]` with a `double` index is already a `double`. Only a
|
|
268
|
+
* cross-domain key needs the language conversion. A number used against a
|
|
269
|
+
* string-keyed sidecar is ordinary `ToPropertyKey`, so it goes through the
|
|
270
|
+
* backend's exact Number::toString renderer. A string used against a
|
|
271
|
+
* number-keyed sidecar only passes when it is constant and canonicalizable;
|
|
272
|
+
* converting an arbitrary runtime string would make `a["01"]` and `a[1]`
|
|
273
|
+
* name the same slot.
|
|
274
|
+
*/
|
|
275
|
+
/**
|
|
276
|
+
* An `Object.prototype` method reached through a `dictionary` receiver:
|
|
277
|
+
* recorded as a deferred prototype read and rendered at the call, exactly as a
|
|
278
|
+
* String or Date member is.
|
|
279
|
+
*
|
|
280
|
+
* Answering `true` means the access produced no C++ of its own and the caller
|
|
281
|
+
* must return -- the read's value is materialized by
|
|
282
|
+
* `prototypeMethodCallText`, which fuses receiver and call into one
|
|
283
|
+
* expression. `false` means this is not one, and every remaining path is
|
|
284
|
+
* unchanged.
|
|
285
|
+
*
|
|
286
|
+
* Only a CONSTANT key is claimed. `bag[k]` with a runtime `k` really is an
|
|
287
|
+
* index read even when `k` happens to spell `"hasOwnProperty"` at runtime,
|
|
288
|
+
* and the checker types it as the index's own value; claiming it here would
|
|
289
|
+
* be this file disagreeing with the carrier the rest of the program agreed
|
|
290
|
+
* on.
|
|
291
|
+
*/
|
|
292
|
+
/**
|
|
293
|
+
* Whether a dictionary member read is a deferred `Object.prototype` method
|
|
294
|
+
* read. Stated once; the renderer and the walk both ask it. Only a CONSTANT
|
|
295
|
+
* key is claimed -- `bag[k]` with a runtime `k` is an index read even when `k`
|
|
296
|
+
* happens to spell `"hasOwnProperty"`.
|
|
297
|
+
*/
|
|
298
|
+
export declare const deferredDictionaryMethodClaim: (staticKeyTexts: ReadonlyMap<IrValueId, string>, receiver: IrOperand, key: IrOperand) => PrototypeMethodRead | null;
|
|
299
|
+
export declare const dictionaryPrototypeMemberRead: (ctx: EmitContext, operation: GetOperation) => boolean;
|
|
300
|
+
export declare const keyedTableKeyText: (ctx: EmitContext, key: IrOperand, domain: "string" | "number" | "symbol") => string;
|
|
301
|
+
/**
|
|
302
|
+
* The dynamic-property sidecar behind a `record-with-index`/`native-record-ref`
|
|
303
|
+
* receiver, in both spellings a use of it needs -- the identical shape a bare
|
|
304
|
+
* `dictionary` carrier's own table function returns (`emit-properties.ts`'s
|
|
305
|
+
* `dictionaryTableOf`), aimed one member deeper at the struct's `gea_dynamic`
|
|
306
|
+
* field instead of at the receiver itself.
|
|
307
|
+
*
|
|
308
|
+
* `record-with-index` carries its `indexes` inline (model.ts); a
|
|
309
|
+
* `native-record-ref` only names a shape, so its sidecar (if it has one) is
|
|
310
|
+
* resolved through `records.ts`'s `recordIndexesOfShape` -- the identical
|
|
311
|
+
* deriver-backed lookup `emit-properties.ts`'s `declaredFieldRepresentation`
|
|
312
|
+
* already uses for a `native-record-ref`'s named fields, asked for its index
|
|
313
|
+
* instead of its fields. `null` covers three different receivers with one
|
|
314
|
+
* answer -- neither carrier, a `record-with-index` (impossible: every one has
|
|
315
|
+
* an index by construction), and a `native-record-ref` whose named shape has
|
|
316
|
+
* none -- the last of which is exactly what `preflight/property-access.ts`'s
|
|
317
|
+
* `nativeRecordRefHasIndexSidecar` already refuses to certify, so an
|
|
318
|
+
* uncertified program is the only way emission reaches here for one.
|
|
319
|
+
*
|
|
320
|
+
* The sidecar field is always embedded *by value* in the struct
|
|
321
|
+
* (`records.ts`'s `renderStructDefinition`), regardless of the struct's own
|
|
322
|
+
* ownership -- so reaching the struct itself uses the receiver's own
|
|
323
|
+
* accessor (`->` for `shared-refcount`, `.` otherwise), and every operation
|
|
324
|
+
* on the sidecar value it names uses `.`, never a second dispatch on an
|
|
325
|
+
* ownership the sidecar does not have its own copy of.
|
|
326
|
+
*/
|
|
327
|
+
export declare const recordIndexSidecarTableOf: (ctx: EmitContext, receiver: IrOperand, key: IrOperand) => {
|
|
328
|
+
readonly member: string;
|
|
329
|
+
readonly subscript: string;
|
|
330
|
+
readonly key: string;
|
|
331
|
+
readonly value: Representation;
|
|
332
|
+
readonly receiver: string;
|
|
333
|
+
readonly accessor: string;
|
|
334
|
+
readonly propertyKey: string;
|
|
335
|
+
readonly attributes: string;
|
|
336
|
+
readonly disjoint: boolean;
|
|
337
|
+
readonly index: RecordIndexSidecar;
|
|
338
|
+
} | null;
|
|
339
|
+
/**
|
|
340
|
+
* Reading a computed-keyed property out of a `record-with-index`/
|
|
341
|
+
* `native-record-ref` receiver's dynamic-property sidecar.
|
|
342
|
+
*
|
|
343
|
+
* Identical to `emit-properties.ts`'s `dictionaryReadText`, one member
|
|
344
|
+
* deeper: the checker itself routes a computed numeric/string read of an
|
|
345
|
+
* interface that mixes named fields with an index signature
|
|
346
|
+
* (`ArrayLike<number>`) through the index signature rather than through any
|
|
347
|
+
* specific named field, because a runtime key's identity is not known at
|
|
348
|
+
* compile time -- so this is reached exactly when
|
|
349
|
+
* `preflight/property-access.ts` admits it, over the identical
|
|
350
|
+
* `gea::Dictionary`/`gea::NumericDictionary` machinery, never over a struct
|
|
351
|
+
* member the checker could not have meant.
|
|
352
|
+
*/
|
|
353
|
+
export declare const recordIndexSidecarReadText: (ctx: EmitContext, operation: GetOperation) => string | null;
|
|
354
|
+
/**
|
|
355
|
+
* Writing a property that names no declared field -- constant or computed --
|
|
356
|
+
* into a `record-with-index`/`native-record-ref` receiver's index sidecar.
|
|
357
|
+
*
|
|
358
|
+
* The store counterpart of `recordIndexSidecarReadText` directly above, and
|
|
359
|
+
* built the identical way: `recordIndexSidecarTableOf` already declines a
|
|
360
|
+
* CONSTANT key that names one of the receiver's own declared fields (the
|
|
361
|
+
* struct half of the split layout, written by the generic field store at the
|
|
362
|
+
* end of `emitFieldStoreLines` instead), so asking it is enough to tell the
|
|
363
|
+
* two halves apart -- this function does not re-decide that split, only
|
|
364
|
+
* dispatch on its answer. A COMPUTED key can never name a declared field in
|
|
365
|
+
* the first place (`recordIndexSidecarReadText`'s own comment states why:
|
|
366
|
+
* the checker itself routes a computed access of a mixed-shape type through
|
|
367
|
+
* the index signature, never through a named field, because a runtime key's
|
|
368
|
+
* identity is not known at compile time), so `recordIndexSidecarTableOf`
|
|
369
|
+
* answers it unconditionally, the same way `record-with-index:get:true`
|
|
370
|
+
* already claims the read.
|
|
371
|
+
*
|
|
372
|
+
* `{ count: 1, 0: 'zero' }` against
|
|
373
|
+
* `interface Mixed { count: number; [index: number]: string }` is ordinary
|
|
374
|
+
* TypeScript: `count` is the struct half of the split layout and `0` is the
|
|
375
|
+
* open half. Only an index signature admits the second key at all -- without
|
|
376
|
+
* one TypeScript rejects it as an excess property -- so this is reached
|
|
377
|
+
* exactly when the sidecar is the key's only possible home.
|
|
378
|
+
*
|
|
379
|
+
* The read side has resolved both halves since it was written; the store
|
|
380
|
+
* side originally had a counterpart for the constant half only, so a
|
|
381
|
+
* constant key that named no field fell through every branch of
|
|
382
|
+
* `emitFieldStoreLines` to the generic struct-member write at its end and
|
|
383
|
+
* spelled `receiver->gea_slot_0`, a member `records.ts` never laid out
|
|
384
|
+
* because it laid out the sidecar instead -- and a COMPUTED key that named no
|
|
385
|
+
* field fell all the way to `emitNativeSidecarSet`, which reaches this same
|
|
386
|
+
* receiver but through the wrong table: its own `gea::nativeDynamicSet` is
|
|
387
|
+
* the BOXED dynamic-property expando a native type's `(this as any)[k] = v`
|
|
388
|
+
* cast reaches, keyed and valued in `gea::Value`, not the typed table this
|
|
389
|
+
* carrier's own index signature already states a value carrier for -- so an
|
|
390
|
+
* array-typed (or otherwise unboxed) sidecar value had no box tag to go
|
|
391
|
+
* through and refused outright, though the identical value already reads
|
|
392
|
+
* back correctly through `recordIndexSidecarReadText` on the very same
|
|
393
|
+
* carrier. Widening this function to the computed case, ahead of
|
|
394
|
+
* `emitNativeSidecarSet` in `emitFieldStoreLines`'s own dispatch order
|
|
395
|
+
* (unchanged), is what makes the store side total the way the read side
|
|
396
|
+
* already is; `emitNativeSidecarSet` keeps its computed-key claim for every
|
|
397
|
+
* receiver that has no such typed sidecar to route into at all.
|
|
398
|
+
*/
|
|
399
|
+
export declare const recordIndexAttributeKeyText: (index: RecordIndexSidecar, key: Representation, text: string) => string;
|
|
400
|
+
export declare const emitRecordIndexSidecarStore: (ctx: EmitContext, lines: string[], operation: SetOperation | DefineOwnPropertyOperation) => boolean;
|
|
401
|
+
/**
|
|
402
|
+
* Whether a scalar member read is a deferred `Number`/`BigInt.prototype`
|
|
403
|
+
* method read. Stated once; the renderer and the walk both ask it.
|
|
404
|
+
*/
|
|
405
|
+
export declare const deferredScalarMethodClaim: (staticKeyTexts: ReadonlyMap<IrValueId, string>, receiver: IrOperand, key: IrOperand) => PrototypeMethodRead | null;
|
|
406
|
+
export declare const scalarMemberText: (ctx: EmitContext, receiver: IrOperand, key: IrOperand, result: IrValueId | null) => string | null;
|