@tsonic/emitter 0.0.76 → 0.0.77
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/dist/.tsbuildinfo +1 -1
- package/dist/array.test.js +3 -3
- package/dist/array.test.js.map +1 -1
- package/dist/core/format/backend-ast/invariants.test.js +5 -0
- package/dist/core/format/backend-ast/invariants.test.js.map +1 -1
- package/dist/core/format/backend-ast/printer-colon-detection.d.ts.map +1 -1
- package/dist/core/format/backend-ast/printer-colon-detection.js +2 -0
- package/dist/core/format/backend-ast/printer-colon-detection.js.map +1 -1
- package/dist/core/format/backend-ast/printer-expressions.d.ts.map +1 -1
- package/dist/core/format/backend-ast/printer-expressions.js +4 -0
- package/dist/core/format/backend-ast/printer-expressions.js.map +1 -1
- package/dist/core/format/backend-ast/printer-precedence.d.ts.map +1 -1
- package/dist/core/format/backend-ast/printer-precedence.js +1 -0
- package/dist/core/format/backend-ast/printer-precedence.js.map +1 -1
- package/dist/core/format/backend-ast/types/expression-ast.d.ts +5 -1
- package/dist/core/format/backend-ast/types/expression-ast.d.ts.map +1 -1
- package/dist/core/format/backend-ast/utils.d.ts +3 -0
- package/dist/core/format/backend-ast/utils.d.ts.map +1 -1
- package/dist/core/format/backend-ast/utils.js +39 -0
- package/dist/core/format/backend-ast/utils.js.map +1 -1
- package/dist/core/format/backend-ast/utils.test.js +13 -1
- package/dist/core/format/backend-ast/utils.test.js.map +1 -1
- package/dist/core/format/local-names.d.ts.map +1 -1
- package/dist/core/format/local-names.js +3 -2
- package/dist/core/format/local-names.js.map +1 -1
- package/dist/core/format/local-names.test.js +7 -6
- package/dist/core/format/local-names.test.js.map +1 -1
- package/dist/core/format/module-emitter/orchestrator.d.ts.map +1 -1
- package/dist/core/format/module-emitter/orchestrator.js +3 -1
- package/dist/core/format/module-emitter/orchestrator.js.map +1 -1
- package/dist/core/format/module-emitter/static-container.d.ts.map +1 -1
- package/dist/core/format/module-emitter/static-container.js +2 -4
- package/dist/core/format/module-emitter/static-container.js.map +1 -1
- package/dist/core/module-emitter-cases/class-and-recursion.test.js +4 -1
- package/dist/core/module-emitter-cases/class-and-recursion.test.js.map +1 -1
- package/dist/core/module-emitter-cases/static-containers.test.js +111 -1
- package/dist/core/module-emitter-cases/static-containers.test.js.map +1 -1
- package/dist/core/semantic/adapt-result.d.ts +20 -0
- package/dist/core/semantic/adapt-result.d.ts.map +1 -0
- package/dist/core/semantic/adapt-result.js +30 -0
- package/dist/core/semantic/adapt-result.js.map +1 -0
- package/dist/core/semantic/array-expected-types.d.ts.map +1 -1
- package/dist/core/semantic/array-expected-types.js.map +1 -1
- package/dist/core/semantic/assignment-flow.d.ts.map +1 -1
- package/dist/core/semantic/assignment-flow.js +26 -3
- package/dist/core/semantic/assignment-flow.js.map +1 -1
- package/dist/core/semantic/async-wrapper-types.d.ts +1 -0
- package/dist/core/semantic/async-wrapper-types.d.ts.map +1 -1
- package/dist/core/semantic/async-wrapper-types.js +19 -1
- package/dist/core/semantic/async-wrapper-types.js.map +1 -1
- package/dist/core/semantic/boolean-condition-main.d.ts.map +1 -1
- package/dist/core/semantic/boolean-condition-main.js +6 -2
- package/dist/core/semantic/boolean-condition-main.js.map +1 -1
- package/dist/core/semantic/boolean-context.test.js +2 -1
- package/dist/core/semantic/boolean-context.test.js.map +1 -1
- package/dist/core/semantic/broad-array-storage.d.ts.map +1 -1
- package/dist/core/semantic/broad-array-storage.js +2 -5
- package/dist/core/semantic/broad-array-storage.js.map +1 -1
- package/dist/core/semantic/broad-object-types.d.ts +1 -0
- package/dist/core/semantic/broad-object-types.d.ts.map +1 -1
- package/dist/core/semantic/broad-object-types.js +39 -0
- package/dist/core/semantic/broad-object-types.js.map +1 -1
- package/dist/core/semantic/clr-type-identity.d.ts +1 -2
- package/dist/core/semantic/clr-type-identity.d.ts.map +1 -1
- package/dist/core/semantic/clr-type-identity.js +3 -65
- package/dist/core/semantic/clr-type-identity.js.map +1 -1
- package/dist/core/semantic/comparable-types.d.ts.map +1 -1
- package/dist/core/semantic/comparable-types.js +61 -27
- package/dist/core/semantic/comparable-types.js.map +1 -1
- package/dist/core/semantic/comparable-types.test.js.map +1 -1
- package/dist/core/semantic/deterministic-type-keys.d.ts.map +1 -1
- package/dist/core/semantic/deterministic-type-keys.js +90 -37
- package/dist/core/semantic/deterministic-type-keys.js.map +1 -1
- package/dist/core/semantic/deterministic-type-keys.test.d.ts +2 -0
- package/dist/core/semantic/deterministic-type-keys.test.d.ts.map +1 -0
- package/dist/core/semantic/deterministic-type-keys.test.js +38 -0
- package/dist/core/semantic/deterministic-type-keys.test.js.map +1 -0
- package/dist/core/semantic/direct-storage-ir-types.d.ts +1 -1
- package/dist/core/semantic/direct-storage-ir-types.d.ts.map +1 -1
- package/dist/core/semantic/direct-storage-ir-types.js +12 -3
- package/dist/core/semantic/direct-storage-ir-types.js.map +1 -1
- package/dist/core/semantic/direct-value-surfaces.d.ts.map +1 -1
- package/dist/core/semantic/direct-value-surfaces.js +165 -6
- package/dist/core/semantic/direct-value-surfaces.js.map +1 -1
- package/dist/core/semantic/direct-value-surfaces.test.js +69 -6
- package/dist/core/semantic/direct-value-surfaces.test.js.map +1 -1
- package/dist/core/semantic/expected-type-matching.d.ts.map +1 -1
- package/dist/core/semantic/expected-type-matching.js +4 -5
- package/dist/core/semantic/expected-type-matching.js.map +1 -1
- package/dist/core/semantic/implicit-interfaces.d.ts.map +1 -1
- package/dist/core/semantic/implicit-interfaces.js.map +1 -1
- package/dist/core/semantic/imports-cases/basic-and-local.test.js +8 -8
- package/dist/core/semantic/imports-cases/basic-and-local.test.js.map +1 -1
- package/dist/core/semantic/imports.js +3 -2
- package/dist/core/semantic/imports.js.map +1 -1
- package/dist/core/semantic/index.d.ts +1 -1
- package/dist/core/semantic/index.d.ts.map +1 -1
- package/dist/core/semantic/index.js +1 -1
- package/dist/core/semantic/index.js.map +1 -1
- package/dist/core/semantic/instanceof-predicate-refinements.d.ts.map +1 -1
- package/dist/core/semantic/instanceof-predicate-refinements.js +1 -9
- package/dist/core/semantic/instanceof-predicate-refinements.js.map +1 -1
- package/dist/core/semantic/js-array-surface-members.d.ts +4 -0
- package/dist/core/semantic/js-array-surface-members.d.ts.map +1 -0
- package/dist/core/semantic/js-array-surface-members.js +32 -0
- package/dist/core/semantic/js-array-surface-members.js.map +1 -0
- package/dist/core/semantic/materialized-narrowing.d.ts +1 -0
- package/dist/core/semantic/materialized-narrowing.d.ts.map +1 -1
- package/dist/core/semantic/materialized-narrowing.js +170 -34
- package/dist/core/semantic/materialized-narrowing.js.map +1 -1
- package/dist/core/semantic/materialized-narrowing.test.js +24 -6
- package/dist/core/semantic/materialized-narrowing.test.js.map +1 -1
- package/dist/core/semantic/module-map.d.ts.map +1 -1
- package/dist/core/semantic/module-map.js +4 -6
- package/dist/core/semantic/module-map.js.map +1 -1
- package/dist/core/semantic/module-type-collisions.d.ts +7 -0
- package/dist/core/semantic/module-type-collisions.d.ts.map +1 -0
- package/dist/core/semantic/module-type-collisions.js +24 -0
- package/dist/core/semantic/module-type-collisions.js.map +1 -0
- package/dist/core/semantic/mutable-storage-helpers.d.ts +1 -1
- package/dist/core/semantic/mutable-storage-helpers.d.ts.map +1 -1
- package/dist/core/semantic/mutable-storage-helpers.js +4 -12
- package/dist/core/semantic/mutable-storage-helpers.js.map +1 -1
- package/dist/core/semantic/naming-collisions.d.ts.map +1 -1
- package/dist/core/semantic/naming-collisions.js +13 -3
- package/dist/core/semantic/naming-collisions.js.map +1 -1
- package/dist/core/semantic/narrowed-expression-types.d.ts +3 -1
- package/dist/core/semantic/narrowed-expression-types.d.ts.map +1 -1
- package/dist/core/semantic/narrowed-expression-types.js +138 -16
- package/dist/core/semantic/narrowed-expression-types.js.map +1 -1
- package/dist/core/semantic/narrowed-union-resolution.d.ts.map +1 -1
- package/dist/core/semantic/narrowed-union-resolution.js +13 -2
- package/dist/core/semantic/narrowed-union-resolution.js.map +1 -1
- package/dist/core/semantic/narrowing-builder-core.d.ts +3 -2
- package/dist/core/semantic/narrowing-builder-core.d.ts.map +1 -1
- package/dist/core/semantic/narrowing-builder-core.js +85 -126
- package/dist/core/semantic/narrowing-builder-core.js.map +1 -1
- package/dist/core/semantic/narrowing-builder-core.test.js +3 -2
- package/dist/core/semantic/narrowing-builder-core.test.js.map +1 -1
- package/dist/core/semantic/narrowing-builder-unions.d.ts.map +1 -1
- package/dist/core/semantic/narrowing-builder-unions.js +43 -7
- package/dist/core/semantic/narrowing-builder-unions.js.map +1 -1
- package/dist/core/semantic/narrowing-builders.d.ts +1 -1
- package/dist/core/semantic/narrowing-builders.d.ts.map +1 -1
- package/dist/core/semantic/narrowing-builders.js +1 -1
- package/dist/core/semantic/narrowing-builders.js.map +1 -1
- package/dist/core/semantic/narrowing-refinements.d.ts +1 -1
- package/dist/core/semantic/narrowing-refinements.d.ts.map +1 -1
- package/dist/core/semantic/narrowing-refinements.js +1 -1
- package/dist/core/semantic/narrowing-refinements.js.map +1 -1
- package/dist/core/semantic/nullable-typeof-refinements.d.ts +1 -5
- package/dist/core/semantic/nullable-typeof-refinements.d.ts.map +1 -1
- package/dist/core/semantic/nullable-typeof-refinements.js +128 -57
- package/dist/core/semantic/nullable-typeof-refinements.js.map +1 -1
- package/dist/core/semantic/nullish-value-helpers.d.ts +1 -1
- package/dist/core/semantic/nullish-value-helpers.d.ts.map +1 -1
- package/dist/core/semantic/nullish-value-helpers.js +18 -9
- package/dist/core/semantic/nullish-value-helpers.js.map +1 -1
- package/dist/core/semantic/runtime-materialization-targets.js +1 -1
- package/dist/core/semantic/runtime-materialization-targets.js.map +1 -1
- package/dist/core/semantic/runtime-reification.d.ts +1 -0
- package/dist/core/semantic/runtime-reification.d.ts.map +1 -1
- package/dist/core/semantic/runtime-reification.js +141 -35
- package/dist/core/semantic/runtime-reification.js.map +1 -1
- package/dist/core/semantic/runtime-union-family-preservation.js +1 -1
- package/dist/core/semantic/runtime-union-family-preservation.js.map +1 -1
- package/dist/core/semantic/runtime-union-matching.d.ts.map +1 -1
- package/dist/core/semantic/runtime-union-matching.js +13 -0
- package/dist/core/semantic/runtime-union-matching.js.map +1 -1
- package/dist/core/semantic/runtime-union-member-mapping.test.js +1 -1
- package/dist/core/semantic/runtime-union-member-mapping.test.js.map +1 -1
- package/dist/core/semantic/runtime-union-ordering.d.ts.map +1 -1
- package/dist/core/semantic/runtime-union-ordering.js +10 -22
- package/dist/core/semantic/runtime-union-ordering.js.map +1 -1
- package/dist/core/semantic/runtime-union-projection.d.ts.map +1 -1
- package/dist/core/semantic/runtime-union-projection.js +23 -7
- package/dist/core/semantic/runtime-union-projection.js.map +1 -1
- package/dist/core/semantic/runtime-union-projection.test.js +19 -1
- package/dist/core/semantic/runtime-union-projection.test.js.map +1 -1
- package/dist/core/semantic/runtime-union-registry.js +13 -13
- package/dist/core/semantic/runtime-union-registry.js.map +1 -1
- package/dist/core/semantic/runtime-unions.d.ts.map +1 -1
- package/dist/core/semantic/runtime-unions.js +47 -21
- package/dist/core/semantic/runtime-unions.js.map +1 -1
- package/dist/core/semantic/runtime-unions.test.js +12 -7
- package/dist/core/semantic/runtime-unions.test.js.map +1 -1
- package/dist/core/semantic/semantic-union-members.d.ts.map +1 -1
- package/dist/core/semantic/semantic-union-members.js.map +1 -1
- package/dist/core/semantic/storage-erased-adaptation.d.ts.map +1 -1
- package/dist/core/semantic/storage-erased-adaptation.js +8 -11
- package/dist/core/semantic/storage-erased-adaptation.js.map +1 -1
- package/dist/core/semantic/storage-erased-adaptation.test.js +4 -1
- package/dist/core/semantic/storage-erased-adaptation.test.js.map +1 -1
- package/dist/core/semantic/storage-types.d.ts.map +1 -1
- package/dist/core/semantic/storage-types.js +4 -2
- package/dist/core/semantic/storage-types.js.map +1 -1
- package/dist/core/semantic/structural-shape-matching.d.ts +5 -1
- package/dist/core/semantic/structural-shape-matching.d.ts.map +1 -1
- package/dist/core/semantic/structural-shape-matching.js +29 -4
- package/dist/core/semantic/structural-shape-matching.js.map +1 -1
- package/dist/core/semantic/symbol-types.d.ts +2 -9
- package/dist/core/semantic/symbol-types.d.ts.map +1 -1
- package/dist/core/semantic/symbol-types.js +7 -11
- package/dist/core/semantic/symbol-types.js.map +1 -1
- package/dist/core/semantic/truthiness-evaluation.d.ts.map +1 -1
- package/dist/core/semantic/truthiness-evaluation.js +3 -3
- package/dist/core/semantic/truthiness-evaluation.js.map +1 -1
- package/dist/core/semantic/type-compatibility.d.ts +4 -2
- package/dist/core/semantic/type-compatibility.d.ts.map +1 -1
- package/dist/core/semantic/type-compatibility.js +62 -2
- package/dist/core/semantic/type-compatibility.js.map +1 -1
- package/dist/core/semantic/type-domains.d.ts +17 -0
- package/dist/core/semantic/type-domains.d.ts.map +1 -0
- package/dist/core/semantic/type-domains.js +7 -0
- package/dist/core/semantic/type-domains.js.map +1 -0
- package/dist/core/semantic/type-equivalence.d.ts.map +1 -1
- package/dist/core/semantic/type-equivalence.js +12 -7
- package/dist/core/semantic/type-equivalence.js.map +1 -1
- package/dist/core/semantic/type-equivalence.test.js +34 -0
- package/dist/core/semantic/type-equivalence.test.js.map +1 -1
- package/dist/core/semantic/type-resolution-cases/array-like-element.test.js +13 -4
- package/dist/core/semantic/type-resolution-cases/array-like-element.test.js.map +1 -1
- package/dist/core/semantic/type-resolution-cases/helpers.d.ts +2 -2
- package/dist/core/semantic/type-resolution-cases/helpers.d.ts.map +1 -1
- package/dist/core/semantic/type-resolution-cases/helpers.js +2 -2
- package/dist/core/semantic/type-resolution-cases/helpers.js.map +1 -1
- package/dist/core/semantic/type-resolution-cases/typeof-narrowing.test.d.ts +2 -0
- package/dist/core/semantic/type-resolution-cases/typeof-narrowing.test.d.ts.map +1 -0
- package/dist/core/semantic/type-resolution-cases/typeof-narrowing.test.js +36 -0
- package/dist/core/semantic/type-resolution-cases/typeof-narrowing.test.js.map +1 -0
- package/dist/core/semantic/type-resolution.test.d.ts +1 -1
- package/dist/core/semantic/type-resolution.test.d.ts.map +1 -1
- package/dist/core/semantic/type-resolution.test.js +1 -1
- package/dist/core/semantic/type-resolution.test.js.map +1 -1
- package/dist/core/semantic/type-substitution.d.ts.map +1 -1
- package/dist/core/semantic/type-substitution.js +2 -1
- package/dist/core/semantic/type-substitution.js.map +1 -1
- package/dist/core/semantic/union-predicate-matching.d.ts.map +1 -1
- package/dist/core/semantic/union-predicate-matching.js +1 -1
- package/dist/core/semantic/union-predicate-matching.js.map +1 -1
- package/dist/core/semantic/union-typeof-matching.d.ts.map +1 -1
- package/dist/core/semantic/union-typeof-matching.js +72 -22
- package/dist/core/semantic/union-typeof-matching.js.map +1 -1
- package/dist/core/semantic/variable-type-resolution.d.ts +1 -0
- package/dist/core/semantic/variable-type-resolution.d.ts.map +1 -1
- package/dist/core/semantic/variable-type-resolution.js +62 -6
- package/dist/core/semantic/variable-type-resolution.js.map +1 -1
- package/dist/duplicate-type-suppression.d.ts.map +1 -1
- package/dist/duplicate-type-suppression.js.map +1 -1
- package/dist/emitter-types/context.d.ts +1 -0
- package/dist/emitter-types/context.d.ts.map +1 -1
- package/dist/emitter-types/context.js +12 -1
- package/dist/emitter-types/context.js.map +1 -1
- package/dist/emitter-types/core.d.ts +10 -9
- package/dist/emitter-types/core.d.ts.map +1 -1
- package/dist/emitter-types/fqn.d.ts +0 -1
- package/dist/emitter-types/fqn.d.ts.map +1 -1
- package/dist/emitter-types/fqn.js +0 -1
- package/dist/emitter-types/fqn.js.map +1 -1
- package/dist/emitter-types/index.d.ts +1 -1
- package/dist/emitter-types/index.d.ts.map +1 -1
- package/dist/emitter-types/index.js +1 -1
- package/dist/emitter-types/index.js.map +1 -1
- package/dist/emitter.d.ts +3 -3
- package/dist/emitter.d.ts.map +1 -1
- package/dist/emitter.js +1 -7
- package/dist/emitter.js.map +1 -1
- package/dist/expression-emitter.d.ts.map +1 -1
- package/dist/expression-emitter.js +7 -2
- package/dist/expression-emitter.js.map +1 -1
- package/dist/expressions/access-binding.d.ts.map +1 -1
- package/dist/expressions/access-binding.js +32 -46
- package/dist/expressions/access-binding.js.map +1 -1
- package/dist/expressions/access-computed.d.ts.map +1 -1
- package/dist/expressions/access-computed.js +7 -8
- package/dist/expressions/access-computed.js.map +1 -1
- package/dist/expressions/access-length.d.ts +5 -9
- package/dist/expressions/access-length.d.ts.map +1 -1
- package/dist/expressions/access-length.js +17 -225
- package/dist/expressions/access-length.js.map +1 -1
- package/dist/expressions/access-property.d.ts +1 -2
- package/dist/expressions/access-property.d.ts.map +1 -1
- package/dist/expressions/access-property.js +20 -94
- package/dist/expressions/access-property.js.map +1 -1
- package/dist/expressions/access-resolution-receivers.d.ts.map +1 -1
- package/dist/expressions/access-resolution-receivers.js +14 -5
- package/dist/expressions/access-resolution-receivers.js.map +1 -1
- package/dist/expressions/access-resolution-types.d.ts.map +1 -1
- package/dist/expressions/access-resolution-types.js +7 -0
- package/dist/expressions/access-resolution-types.js.map +1 -1
- package/dist/expressions/access.d.ts +2 -2
- package/dist/expressions/access.d.ts.map +1 -1
- package/dist/expressions/access.js +6 -5
- package/dist/expressions/access.js.map +1 -1
- package/dist/expressions/architecture-invariants.test.js +18 -0
- package/dist/expressions/architecture-invariants.test.js.map +1 -1
- package/dist/expressions/await-normalization.d.ts.map +1 -1
- package/dist/expressions/await-normalization.js +53 -13
- package/dist/expressions/await-normalization.js.map +1 -1
- package/dist/expressions/calls/call-analysis.d.ts +0 -1
- package/dist/expressions/calls/call-analysis.d.ts.map +1 -1
- package/dist/expressions/calls/call-analysis.js +0 -7
- package/dist/expressions/calls/call-analysis.js.map +1 -1
- package/dist/expressions/calls/call-arguments-emit.d.ts.map +1 -1
- package/dist/expressions/calls/call-arguments-emit.js +219 -36
- package/dist/expressions/calls/call-arguments-emit.js.map +1 -1
- package/dist/expressions/calls/call-arguments-helpers.d.ts.map +1 -1
- package/dist/expressions/calls/call-arguments-helpers.js.map +1 -1
- package/dist/expressions/calls/call-array-mutation.d.ts.map +1 -1
- package/dist/expressions/calls/call-array-mutation.js +8 -33
- package/dist/expressions/calls/call-array-mutation.js.map +1 -1
- package/dist/expressions/calls/call-array-wrapper.d.ts.map +1 -1
- package/dist/expressions/calls/call-array-wrapper.js +6 -4
- package/dist/expressions/calls/call-array-wrapper.js.map +1 -1
- package/dist/expressions/calls/call-emitter.d.ts +1 -1
- package/dist/expressions/calls/call-emitter.d.ts.map +1 -1
- package/dist/expressions/calls/call-emitter.js +85 -7
- package/dist/expressions/calls/call-emitter.js.map +1 -1
- package/dist/expressions/calls/call-json.d.ts +1 -1
- package/dist/expressions/calls/call-json.d.ts.map +1 -1
- package/dist/expressions/calls/call-json.js +50 -84
- package/dist/expressions/calls/call-json.js.map +1 -1
- package/dist/expressions/calls/call-promise-ir-types.d.ts.map +1 -1
- package/dist/expressions/calls/call-promise-ir-types.js.map +1 -1
- package/dist/expressions/calls/call-runtime-union-guards.d.ts.map +1 -1
- package/dist/expressions/calls/call-runtime-union-guards.js +10 -1
- package/dist/expressions/calls/call-runtime-union-guards.js.map +1 -1
- package/dist/expressions/calls/new-emitter-collections.d.ts +7 -4
- package/dist/expressions/calls/new-emitter-collections.d.ts.map +1 -1
- package/dist/expressions/calls/new-emitter-collections.js +64 -25
- package/dist/expressions/calls/new-emitter-collections.js.map +1 -1
- package/dist/expressions/calls/new-emitter.d.ts.map +1 -1
- package/dist/expressions/calls/new-emitter.js +4 -5
- package/dist/expressions/calls/new-emitter.js.map +1 -1
- package/dist/expressions/direct-storage-types.d.ts.map +1 -1
- package/dist/expressions/direct-storage-types.js +76 -15
- package/dist/expressions/direct-storage-types.js.map +1 -1
- package/dist/expressions/exact-comparison.d.ts.map +1 -1
- package/dist/expressions/exact-comparison.js +3 -1
- package/dist/expressions/exact-comparison.js.map +1 -1
- package/dist/expressions/expected-type-adaptation.d.ts +1 -1
- package/dist/expressions/expected-type-adaptation.d.ts.map +1 -1
- package/dist/expressions/expected-type-adaptation.js +149 -29
- package/dist/expressions/expected-type-adaptation.js.map +1 -1
- package/dist/expressions/expected-type-adaptation.test.js +81 -26
- package/dist/expressions/expected-type-adaptation.test.js.map +1 -1
- package/dist/expressions/identifier-storage.d.ts +5 -0
- package/dist/expressions/identifier-storage.d.ts.map +1 -1
- package/dist/expressions/identifier-storage.js +200 -25
- package/dist/expressions/identifier-storage.js.map +1 -1
- package/dist/expressions/identifiers.d.ts.map +1 -1
- package/dist/expressions/identifiers.js +7 -16
- package/dist/expressions/identifiers.js.map +1 -1
- package/dist/expressions/index-cases/array-wrapper-recursion-b.test.js +3 -3
- package/dist/expressions/index-cases/array-wrapper-recursion-b.test.js.map +1 -1
- package/dist/expressions/index-cases/basic-literals-and-calls.test.js +3 -3
- package/dist/expressions/index-cases/basic-literals-and-calls.test.js.map +1 -1
- package/dist/expressions/index-cases/defaults-and-char-context.test.js +8 -2
- package/dist/expressions/index-cases/defaults-and-char-context.test.js.map +1 -1
- package/dist/expressions/index-cases/dictionary-and-object-initializers-a.test.js +17 -20
- package/dist/expressions/index-cases/dictionary-and-object-initializers-a.test.js.map +1 -1
- package/dist/expressions/index-cases/dictionary-and-object-initializers-b.test.js +7 -8
- package/dist/expressions/index-cases/dictionary-and-object-initializers-b.test.js.map +1 -1
- package/dist/expressions/index-cases/helpers.d.ts +5 -4
- package/dist/expressions/index-cases/helpers.d.ts.map +1 -1
- package/dist/expressions/index-cases/helpers.js +3 -2
- package/dist/expressions/index-cases/helpers.js.map +1 -1
- package/dist/expressions/index-cases/nullable-and-comparisons.test.js +9 -9
- package/dist/expressions/index-cases/nullable-and-comparisons.test.js.map +1 -1
- package/dist/expressions/index-cases/runtime-subset-and-assertions.test.js +3 -3
- package/dist/expressions/index-cases/runtime-subset-and-assertions.test.js.map +1 -1
- package/dist/expressions/index-cases/runtime-union-reification-b.test.js +19 -13
- package/dist/expressions/index-cases/runtime-union-reification-b.test.js.map +1 -1
- package/dist/expressions/index-cases/string-and-array-fallbacks-a.test.js +4 -4
- package/dist/expressions/index-cases/string-and-array-fallbacks-a.test.js.map +1 -1
- package/dist/expressions/lambda-parameters.d.ts.map +1 -1
- package/dist/expressions/lambda-parameters.js +97 -12
- package/dist/expressions/lambda-parameters.js.map +1 -1
- package/dist/expressions/object-literal.d.ts.map +1 -1
- package/dist/expressions/object-literal.js +48 -18
- package/dist/expressions/object-literal.js.map +1 -1
- package/dist/expressions/operators/binary-dispatch.d.ts +1 -1
- package/dist/expressions/operators/binary-dispatch.d.ts.map +1 -1
- package/dist/expressions/operators/binary-dispatch.js +52 -12
- package/dist/expressions/operators/binary-dispatch.js.map +1 -1
- package/dist/expressions/operators/binary-helpers.d.ts.map +1 -1
- package/dist/expressions/operators/binary-helpers.js +11 -1
- package/dist/expressions/operators/binary-helpers.js.map +1 -1
- package/dist/expressions/operators/binary-special-ops.d.ts +1 -11
- package/dist/expressions/operators/binary-special-ops.d.ts.map +1 -1
- package/dist/expressions/operators/binary-special-ops.js +217 -195
- package/dist/expressions/operators/binary-special-ops.js.map +1 -1
- package/dist/expressions/operators/conditional-emitter.d.ts.map +1 -1
- package/dist/expressions/operators/conditional-emitter.js +89 -19
- package/dist/expressions/operators/conditional-emitter.js.map +1 -1
- package/dist/expressions/operators/logical-emitter.js +1 -1
- package/dist/expressions/operators/logical-emitter.js.map +1 -1
- package/dist/expressions/operators/unary-emitter.d.ts.map +1 -1
- package/dist/expressions/operators/unary-emitter.js +7 -50
- package/dist/expressions/operators/unary-emitter.js.map +1 -1
- package/dist/expressions/other.d.ts +2 -6
- package/dist/expressions/other.d.ts.map +1 -1
- package/dist/expressions/other.js +6 -13
- package/dist/expressions/other.js.map +1 -1
- package/dist/expressions/post-emission-adaptation.d.ts +1 -1
- package/dist/expressions/post-emission-adaptation.d.ts.map +1 -1
- package/dist/expressions/post-emission-adaptation.js +55 -150
- package/dist/expressions/post-emission-adaptation.js.map +1 -1
- package/dist/expressions/precedence.test.js +5 -46
- package/dist/expressions/precedence.test.js.map +1 -1
- package/dist/expressions/runtime-union-adaptation-projection.d.ts.map +1 -1
- package/dist/expressions/runtime-union-adaptation-projection.js +25 -4
- package/dist/expressions/runtime-union-adaptation-projection.js.map +1 -1
- package/dist/expressions/runtime-union-adaptation-upcast.d.ts.map +1 -1
- package/dist/expressions/runtime-union-adaptation-upcast.js +268 -31
- package/dist/expressions/runtime-union-adaptation-upcast.js.map +1 -1
- package/dist/expressions/structural-anonymous-targets.d.ts.map +1 -1
- package/dist/expressions/structural-anonymous-targets.js +5 -0
- package/dist/expressions/structural-anonymous-targets.js.map +1 -1
- package/dist/expressions/structural-collection-adaptation.d.ts.map +1 -1
- package/dist/expressions/structural-collection-adaptation.js +4 -2
- package/dist/expressions/structural-collection-adaptation.js.map +1 -1
- package/dist/expressions/structural-object-adaptation.d.ts.map +1 -1
- package/dist/expressions/structural-object-adaptation.js +58 -3
- package/dist/expressions/structural-object-adaptation.js.map +1 -1
- package/dist/expressions/structural-property-model.d.ts.map +1 -1
- package/dist/expressions/structural-property-model.js +7 -3
- package/dist/expressions/structural-property-model.js.map +1 -1
- package/dist/expressions/structural-type-shapes.d.ts.map +1 -1
- package/dist/expressions/structural-type-shapes.js +1 -1
- package/dist/expressions/structural-type-shapes.js.map +1 -1
- package/dist/expressions/structural-type-shapes.test.js +2 -1
- package/dist/expressions/structural-type-shapes.test.js.map +1 -1
- package/dist/expressions/type-assertion-emitters.d.ts.map +1 -1
- package/dist/expressions/type-assertion-emitters.js +231 -15
- package/dist/expressions/type-assertion-emitters.js.map +1 -1
- package/dist/fixture-regression-mirrors.test.js +43 -112
- package/dist/fixture-regression-mirrors.test.js.map +1 -1
- package/dist/generated-files.d.ts +0 -1
- package/dist/generated-files.d.ts.map +1 -1
- package/dist/generated-files.js +0 -229
- package/dist/generated-files.js.map +1 -1
- package/dist/generated-files.test.js +53 -1
- package/dist/generated-files.test.js.map +1 -1
- package/dist/golden-tests/runner.d.ts.map +1 -1
- package/dist/golden-tests/runner.js +1 -0
- package/dist/golden-tests/runner.js.map +1 -1
- package/dist/integration-cases/arrow-and-generics-a.test.js +52 -32
- package/dist/integration-cases/arrow-and-generics-a.test.js.map +1 -1
- package/dist/integration-cases/arrow-and-generics-b.test.js +17 -23
- package/dist/integration-cases/arrow-and-generics-b.test.js.map +1 -1
- package/dist/integration-cases/await-and-intrinsics.test.js +12 -10
- package/dist/integration-cases/await-and-intrinsics.test.js.map +1 -1
- package/dist/integration-cases/clr-iterable-overloads.test.js +58 -27
- package/dist/integration-cases/clr-iterable-overloads.test.js.map +1 -1
- package/dist/integration-cases/full-module-and-promises.test.js +21 -19
- package/dist/integration-cases/full-module-and-promises.test.js.map +1 -1
- package/dist/integration-cases/helpers.d.ts.map +1 -1
- package/dist/integration-cases/helpers.js +12 -33
- package/dist/integration-cases/helpers.js.map +1 -1
- package/dist/integration-cases/may14-downstream-contracts.test.d.ts +2 -0
- package/dist/integration-cases/may14-downstream-contracts.test.d.ts.map +1 -0
- package/dist/integration-cases/may14-downstream-contracts.test.js +522 -0
- package/dist/integration-cases/may14-downstream-contracts.test.js.map +1 -0
- package/dist/integration-cases/object-literals-and-channels.test.js +10 -4
- package/dist/integration-cases/object-literals-and-channels.test.js.map +1 -1
- package/dist/integration-cases/regression-coverage-a.test.js +36 -30
- package/dist/integration-cases/regression-coverage-a.test.js.map +1 -1
- package/dist/integration-cases/regression-coverage-b.test.js +95 -111
- package/dist/integration-cases/regression-coverage-b.test.js.map +1 -1
- package/dist/integration-cases/regression-coverage-c.test.js +499 -197
- package/dist/integration-cases/regression-coverage-c.test.js.map +1 -1
- package/dist/integration.test.d.ts +1 -0
- package/dist/integration.test.d.ts.map +1 -1
- package/dist/integration.test.js +1 -0
- package/dist/integration.test.js.map +1 -1
- package/dist/json-aot-generic.test.js +48 -200
- package/dist/json-aot-generic.test.js.map +1 -1
- package/dist/statements/block-emitters/block-and-return.d.ts +1 -1
- package/dist/statements/block-emitters/block-and-return.d.ts.map +1 -1
- package/dist/statements/block-emitters/block-and-return.js +9 -3
- package/dist/statements/block-emitters/block-and-return.js.map +1 -1
- package/dist/statements/classes/properties.d.ts.map +1 -1
- package/dist/statements/classes/properties.js.map +1 -1
- package/dist/statements/control/conditionals/architecture-invariants.test.d.ts +2 -0
- package/dist/statements/control/conditionals/architecture-invariants.test.d.ts.map +1 -0
- package/dist/statements/control/conditionals/architecture-invariants.test.js +19 -0
- package/dist/statements/control/conditionals/architecture-invariants.test.js.map +1 -0
- package/dist/statements/control/conditionals/branch-context.d.ts +4 -6
- package/dist/statements/control/conditionals/branch-context.d.ts.map +1 -1
- package/dist/statements/control/conditionals/branch-context.js +104 -31
- package/dist/statements/control/conditionals/branch-context.js.map +1 -1
- package/dist/statements/control/conditionals/guard-analysis.d.ts +2 -2
- package/dist/statements/control/conditionals/guard-analysis.d.ts.map +1 -1
- package/dist/statements/control/conditionals/guard-analysis.js +1 -1
- package/dist/statements/control/conditionals/guard-analysis.js.map +1 -1
- package/dist/statements/control/conditionals/guard-detectors-discriminant.d.ts +2 -1
- package/dist/statements/control/conditionals/guard-detectors-discriminant.d.ts.map +1 -1
- package/dist/statements/control/conditionals/guard-detectors-discriminant.js +83 -1
- package/dist/statements/control/conditionals/guard-detectors-discriminant.js.map +1 -1
- package/dist/statements/control/conditionals/guard-detectors-structural.d.ts +2 -7
- package/dist/statements/control/conditionals/guard-detectors-structural.d.ts.map +1 -1
- package/dist/statements/control/conditionals/guard-detectors-structural.js +47 -82
- package/dist/statements/control/conditionals/guard-detectors-structural.js.map +1 -1
- package/dist/statements/control/conditionals/guard-detectors.d.ts +2 -2
- package/dist/statements/control/conditionals/guard-detectors.d.ts.map +1 -1
- package/dist/statements/control/conditionals/guard-detectors.js +2 -2
- package/dist/statements/control/conditionals/guard-detectors.js.map +1 -1
- package/dist/statements/control/conditionals/guard-extraction.d.ts +5 -7
- package/dist/statements/control/conditionals/guard-extraction.d.ts.map +1 -1
- package/dist/statements/control/conditionals/guard-extraction.js +3 -158
- package/dist/statements/control/conditionals/guard-extraction.js.map +1 -1
- package/dist/statements/control/conditionals/guard-types.d.ts +16 -26
- package/dist/statements/control/conditionals/guard-types.d.ts.map +1 -1
- package/dist/statements/control/conditionals/guard-types.js +23 -1
- package/dist/statements/control/conditionals/guard-types.js.map +1 -1
- package/dist/statements/control/conditionals/if-emit-instanceof-guards.d.ts.map +1 -1
- package/dist/statements/control/conditionals/if-emit-instanceof-guards.js +5 -8
- package/dist/statements/control/conditionals/if-emit-instanceof-guards.js.map +1 -1
- package/dist/statements/control/conditionals/if-emit-predicate-guards.d.ts +2 -8
- package/dist/statements/control/conditionals/if-emit-predicate-guards.d.ts.map +1 -1
- package/dist/statements/control/conditionals/if-emit-predicate-guards.js +4 -84
- package/dist/statements/control/conditionals/if-emit-predicate-guards.js.map +1 -1
- package/dist/statements/control/conditionals/if-emit-property-discriminant-guards.d.ts +2 -0
- package/dist/statements/control/conditionals/if-emit-property-discriminant-guards.d.ts.map +1 -1
- package/dist/statements/control/conditionals/if-emit-property-discriminant-guards.js +87 -3
- package/dist/statements/control/conditionals/if-emit-property-discriminant-guards.js.map +1 -1
- package/dist/statements/control/conditionals/if-emit-typeof-array-guards.d.ts.map +1 -1
- package/dist/statements/control/conditionals/if-emit-typeof-array-guards.js +254 -20
- package/dist/statements/control/conditionals/if-emit-typeof-array-guards.js.map +1 -1
- package/dist/statements/control/conditionals/if-emit-union-guards.d.ts +2 -2
- package/dist/statements/control/conditionals/if-emit-union-guards.d.ts.map +1 -1
- package/dist/statements/control/conditionals/if-emit-union-guards.js +2 -2
- package/dist/statements/control/conditionals/if-emit-union-guards.js.map +1 -1
- package/dist/statements/control/conditionals/if-emitter.d.ts.map +1 -1
- package/dist/statements/control/conditionals/if-emitter.js +36 -43
- package/dist/statements/control/conditionals/if-emitter.js.map +1 -1
- package/dist/statements/control/conditionals/ir-branch-narrowings.d.ts +5 -0
- package/dist/statements/control/conditionals/ir-branch-narrowings.d.ts.map +1 -0
- package/dist/statements/control/conditionals/ir-branch-narrowings.js +16 -0
- package/dist/statements/control/conditionals/ir-branch-narrowings.js.map +1 -0
- package/dist/statements/control/loops.d.ts +2 -9
- package/dist/statements/control/loops.d.ts.map +1 -1
- package/dist/statements/control/loops.js +56 -48
- package/dist/statements/control/loops.js.map +1 -1
- package/dist/statements/declarations/classes.d.ts.map +1 -1
- package/dist/statements/declarations/classes.js.map +1 -1
- package/dist/statements/declarations/interfaces.d.ts.map +1 -1
- package/dist/statements/declarations/interfaces.js.map +1 -1
- package/dist/statements/declarations/structs.test.js +5 -4
- package/dist/statements/declarations/structs.test.js.map +1 -1
- package/dist/statements/declarations/type-aliases.js.map +1 -1
- package/dist/statements/declarations/variables.d.ts.map +1 -1
- package/dist/statements/declarations/variables.js +7 -4
- package/dist/statements/declarations/variables.js.map +1 -1
- package/dist/statements/statement-cases/flow-and-void.test.js +3 -3
- package/dist/statements/statement-cases/flow-and-void.test.js.map +1 -1
- package/dist/statements/statement-cases/helpers.d.ts +3 -2
- package/dist/statements/statement-cases/helpers.d.ts.map +1 -1
- package/dist/statements/statement-cases/helpers.js +1 -1
- package/dist/statements/statement-cases/helpers.js.map +1 -1
- package/dist/statements/statement-cases/if-and-instanceof-guards.test.js +21 -21
- package/dist/statements/statement-cases/if-and-instanceof-guards.test.js.map +1 -1
- package/dist/statements/statement-cases/union-guards-basic.test.js +3 -80
- package/dist/statements/statement-cases/union-guards-basic.test.js.map +1 -1
- package/dist/statements/statement-cases/union-guards-nullish-and-object.test.js +0 -196
- package/dist/statements/statement-cases/union-guards-nullish-and-object.test.js.map +1 -1
- package/dist/statements/statement-cases/union-guards-predicate-and-truthy.test.js +15 -15
- package/dist/statements/statement-cases/union-guards-predicate-and-truthy.test.js.map +1 -1
- package/dist/statements/statement-cases/union-guards-remapped-a.test.js +7 -189
- package/dist/statements/statement-cases/union-guards-remapped-a.test.js.map +1 -1
- package/dist/statements/statement-cases/union-guards-remapped-b.test.js +7 -193
- package/dist/statements/statement-cases/union-guards-remapped-b.test.js.map +1 -1
- package/dist/test-ir-strict.d.ts +7 -0
- package/dist/test-ir-strict.d.ts.map +1 -0
- package/dist/test-ir-strict.js +9 -0
- package/dist/test-ir-strict.js.map +1 -0
- package/dist/type-assertion.test.js +5 -4
- package/dist/type-assertion.test.js.map +1 -1
- package/dist/types/emitter.d.ts.map +1 -1
- package/dist/types/emitter.js +7 -1
- package/dist/types/emitter.js.map +1 -1
- package/dist/types/intersections.d.ts +2 -2
- package/dist/types/intersections.d.ts.map +1 -1
- package/dist/types/intersections.js +26 -6
- package/dist/types/intersections.js.map +1 -1
- package/dist/types/parameters.d.ts.map +1 -1
- package/dist/types/parameters.js +30 -5
- package/dist/types/parameters.js.map +1 -1
- package/dist/types/reference-structural-signatures.d.ts.map +1 -1
- package/dist/types/reference-structural-signatures.js +3 -6
- package/dist/types/reference-structural-signatures.js.map +1 -1
- package/dist/types/references-cases/array-and-cross-module.test.js +2 -4
- package/dist/types/references-cases/array-and-cross-module.test.js.map +1 -1
- package/dist/types/references-cases/bindings-and-local.test.js +2 -4
- package/dist/types/references-cases/bindings-and-local.test.js.map +1 -1
- package/dist/types/references-cases/helpers.d.ts +3 -2
- package/dist/types/references-cases/helpers.d.ts.map +1 -1
- package/dist/types/references-cases/helpers.js +2 -1
- package/dist/types/references-cases/helpers.js.map +1 -1
- package/dist/types/references.d.ts.map +1 -1
- package/dist/types/references.js +21 -2
- package/dist/types/references.js.map +1 -1
- package/dist/types/unions-cases/basic-and-ordering.test.js +51 -0
- package/dist/types/unions-cases/basic-and-ordering.test.js.map +1 -1
- package/dist/types/unions.d.ts.map +1 -1
- package/dist/types/unions.js +17 -1
- package/dist/types/unions.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
- package/dist/core/semantic/js-value-types.d.ts +0 -5
- package/dist/core/semantic/js-value-types.d.ts.map +0 -1
- package/dist/core/semantic/js-value-types.js +0 -42
- package/dist/core/semantic/js-value-types.js.map +0 -1
- package/dist/core/semantic/type-resolution-cases/narrow-typeof.test.d.ts +0 -2
- package/dist/core/semantic/type-resolution-cases/narrow-typeof.test.d.ts.map +0 -1
- package/dist/core/semantic/type-resolution-cases/narrow-typeof.test.js +0 -98
- package/dist/core/semantic/type-resolution-cases/narrow-typeof.test.js.map +0 -1
- package/dist/expressions/calls/call-dynamic-import.d.ts +0 -11
- package/dist/expressions/calls/call-dynamic-import.d.ts.map +0 -1
- package/dist/expressions/calls/call-dynamic-import.js +0 -148
- package/dist/expressions/calls/call-dynamic-import.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/integration-cases/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/integration-cases/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"may14-downstream-contracts.test.d.ts","sourceRoot":"","sources":["../../src/integration-cases/may14-downstream-contracts.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
import { describe, it } from "mocha";
|
|
2
|
+
import { expect } from "chai";
|
|
3
|
+
import { compileProjectToCSharp, compileToCSharp } from "./helpers.js";
|
|
4
|
+
describe("May 14 downstream contract coverage", () => {
|
|
5
|
+
it("passes declared locals to out parameters without discard lowering", () => {
|
|
6
|
+
const csharp = compileToCSharp(`
|
|
7
|
+
import type { int, out } from "@tsonic/core/types.js";
|
|
8
|
+
|
|
9
|
+
declare class Parser {
|
|
10
|
+
static TryParse(text: string, result: out<int>): boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function parse(text: string): int {
|
|
14
|
+
let parsed: int = 0;
|
|
15
|
+
if (Parser.TryParse(text, parsed as out<int>)) {
|
|
16
|
+
return parsed;
|
|
17
|
+
}
|
|
18
|
+
return -1;
|
|
19
|
+
}
|
|
20
|
+
`);
|
|
21
|
+
expect(csharp).to.include("Parser.TryParse(text, out parsed)");
|
|
22
|
+
expect(csharp).to.not.include("__tsonic_out_discard");
|
|
23
|
+
});
|
|
24
|
+
it("preserves CLR overload out parameter modes for Int32.TryParse", () => {
|
|
25
|
+
const csharp = compileToCSharp(`
|
|
26
|
+
import { Int32 } from "@tsonic/dotnet/System.js";
|
|
27
|
+
import type { int, out } from "@tsonic/core/types.js";
|
|
28
|
+
|
|
29
|
+
export function parseId(text: string): int {
|
|
30
|
+
let parsed: int = 0;
|
|
31
|
+
if (Int32.TryParse(text, parsed as out<int>)) {
|
|
32
|
+
return parsed;
|
|
33
|
+
}
|
|
34
|
+
return -1;
|
|
35
|
+
}
|
|
36
|
+
`);
|
|
37
|
+
expect(csharp).to.include("Int32.TryParse(text, out parsed)");
|
|
38
|
+
expect(csharp).to.not.include("Int32.TryParse(text, parsed)");
|
|
39
|
+
});
|
|
40
|
+
it("supports Record<string,T> reads, writes, and for-in key enumeration", () => {
|
|
41
|
+
const csharp = compileToCSharp(`
|
|
42
|
+
import type { int } from "@tsonic/core/types.js";
|
|
43
|
+
|
|
44
|
+
export function tally(metrics: Record<string, int>): int {
|
|
45
|
+
metrics["started"] = 1;
|
|
46
|
+
let total: int = 0;
|
|
47
|
+
for (const key in metrics) {
|
|
48
|
+
total = total + metrics[key];
|
|
49
|
+
}
|
|
50
|
+
return total;
|
|
51
|
+
}
|
|
52
|
+
`);
|
|
53
|
+
expect(csharp).to.include('metrics["started"] = 1');
|
|
54
|
+
expect(csharp).to.include("foreach (var key in metrics.Keys)");
|
|
55
|
+
expect(csharp).to.include("total = total + metrics[key]");
|
|
56
|
+
});
|
|
57
|
+
it("narrows closed structural unions with property-existence checks", () => {
|
|
58
|
+
const csharp = compileToCSharp(`
|
|
59
|
+
type AuthOk = { property_id: string };
|
|
60
|
+
type AuthError = { error: Promise<void> };
|
|
61
|
+
|
|
62
|
+
export function readPropertyId(auth: AuthOk | AuthError): string {
|
|
63
|
+
if ("error" in auth) {
|
|
64
|
+
return "denied";
|
|
65
|
+
}
|
|
66
|
+
return auth.property_id;
|
|
67
|
+
}
|
|
68
|
+
`);
|
|
69
|
+
expect(csharp).to.match(/auth\.Is\d+\(\)/);
|
|
70
|
+
expect(csharp).to.include(".property_id");
|
|
71
|
+
});
|
|
72
|
+
it("preserves string typeof narrowing through member access", () => {
|
|
73
|
+
const csharp = compileToCSharp(`
|
|
74
|
+
export function hasText(value: string | number | undefined): boolean {
|
|
75
|
+
if (typeof value === "string") {
|
|
76
|
+
return value.length > 0;
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
`, "/test/test.ts", { surface: "@tsonic/js" });
|
|
81
|
+
expect(csharp).to.include(".Length > 0");
|
|
82
|
+
expect(csharp).to.not.include("((string)value).Length");
|
|
83
|
+
});
|
|
84
|
+
it("lowers Number(...) over CLR numeric values through explicit numeric conversion", () => {
|
|
85
|
+
const csharp = compileToCSharp(`
|
|
86
|
+
import type { long } from "@tsonic/core/types.js";
|
|
87
|
+
|
|
88
|
+
declare class FileInfo {
|
|
89
|
+
Length: long;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export function size(info: FileInfo): number {
|
|
93
|
+
return Number(info.Length);
|
|
94
|
+
}
|
|
95
|
+
`, "/test/test.ts", { surface: "@tsonic/js" });
|
|
96
|
+
expect(csharp).to.include("(double)info.Length");
|
|
97
|
+
expect(csharp).to.not.include("Number(info.Length)");
|
|
98
|
+
});
|
|
99
|
+
it("infers generic constructor type arguments from constructor arguments", () => {
|
|
100
|
+
const csharp = compileToCSharp(`
|
|
101
|
+
class IntervalAsyncIterator<T> {
|
|
102
|
+
value: T;
|
|
103
|
+
constructor(value: T) {
|
|
104
|
+
this.value = value;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export function create(value: string): IntervalAsyncIterator<string> {
|
|
109
|
+
return new IntervalAsyncIterator(value);
|
|
110
|
+
}
|
|
111
|
+
`);
|
|
112
|
+
expect(csharp).to.include("new IntervalAsyncIterator<string>(value)");
|
|
113
|
+
});
|
|
114
|
+
it("emits readonly constructor-assigned fields as immutable C# members", () => {
|
|
115
|
+
const csharp = compileToCSharp(`
|
|
116
|
+
export class Segment {
|
|
117
|
+
readonly text: string;
|
|
118
|
+
|
|
119
|
+
constructor(text: string) {
|
|
120
|
+
this.text = text;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
`);
|
|
124
|
+
expect(csharp).to.match(/readonly\s+string\s+text|private readonly string _text|public string text \{ get; init; \}/);
|
|
125
|
+
});
|
|
126
|
+
it("emits private static helpers and preserves private call sites", () => {
|
|
127
|
+
const csharp = compileToCSharp(`
|
|
128
|
+
export class Glob {
|
|
129
|
+
private static match(text: string): boolean {
|
|
130
|
+
return text.length > 0;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
static test(text: string): boolean {
|
|
134
|
+
return Glob.match(text);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
`, "/test/test.ts", { surface: "@tsonic/js" });
|
|
138
|
+
expect(csharp).to.include("private static bool match(string text)");
|
|
139
|
+
expect(csharp).to.include("return Glob.match(text);");
|
|
140
|
+
});
|
|
141
|
+
it("lowers dynamic JSON.parse to the JsValue runtime carrier", () => {
|
|
142
|
+
const csharp = compileToCSharp(`
|
|
143
|
+
import type { int, JsValue } from "@tsonic/core/types.js";
|
|
144
|
+
|
|
145
|
+
const isObject = (value: JsValue): value is Record<string, JsValue> => {
|
|
146
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export function countMenuItems(text: string): int {
|
|
150
|
+
const root = JSON.parse(text);
|
|
151
|
+
if (!isObject(root)) return -1;
|
|
152
|
+
|
|
153
|
+
const entries = Object.entries(root);
|
|
154
|
+
for (let i = 0; i < entries.length; i++) {
|
|
155
|
+
const [key, value] = entries[i]!;
|
|
156
|
+
if (key === "menu" && Array.isArray(value)) {
|
|
157
|
+
const items = value as JsValue[];
|
|
158
|
+
return items.length;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return 0;
|
|
163
|
+
}
|
|
164
|
+
`, "/test/test.ts", { surface: "@tsonic/js" });
|
|
165
|
+
expect(csharp).to.include("global::Tsonic.Runtime.JSON.parse<object>(text)");
|
|
166
|
+
expect(csharp).to.include("value is global::System.Array");
|
|
167
|
+
expect(csharp).to.not.include("JsonSerializer.Deserialize<object>");
|
|
168
|
+
});
|
|
169
|
+
it("lowers typed Array length construction to native CLR arrays", () => {
|
|
170
|
+
const csharp = compileToCSharp(`
|
|
171
|
+
import type { char, int } from "@tsonic/core/types.js";
|
|
172
|
+
|
|
173
|
+
export function toChars(source: string): char[] {
|
|
174
|
+
const chars = new Array<char>(source.length);
|
|
175
|
+
for (let i: int = 0; i < source.length; i++) {
|
|
176
|
+
chars[i] = source[i]!;
|
|
177
|
+
}
|
|
178
|
+
return chars;
|
|
179
|
+
}
|
|
180
|
+
`, "/test/test.ts", { surface: "@tsonic/js" });
|
|
181
|
+
expect(csharp).to.include("var chars = new char[source.Length];");
|
|
182
|
+
expect(csharp).to.include("chars[i] = source[i];");
|
|
183
|
+
expect(csharp).to.not.include("new global::js.Array<char>");
|
|
184
|
+
});
|
|
185
|
+
it("lowers typed empty Array construction to native CLR arrays", () => {
|
|
186
|
+
const csharp = compileToCSharp(`
|
|
187
|
+
export function countLarge(): number {
|
|
188
|
+
const values = new Array<number>();
|
|
189
|
+
values.push(1, 2, 3, 4);
|
|
190
|
+
return values.filter((value) => value > 2).length;
|
|
191
|
+
}
|
|
192
|
+
`, "/test/test.ts", { surface: "@tsonic/js" });
|
|
193
|
+
expect(csharp).to.include("var values = new double[0];");
|
|
194
|
+
expect(csharp).to.include("global::Tsonic.Internal.ArrayInterop.WrapArray(values)");
|
|
195
|
+
expect(csharp).to.not.include("new global::js.Array<double>");
|
|
196
|
+
});
|
|
197
|
+
it("passes source-backed structural aliases through null guards without anonymous rematerialization", () => {
|
|
198
|
+
const csharp = compileToCSharp(`
|
|
199
|
+
type KeyRecord = { property_id: string; kind: string };
|
|
200
|
+
|
|
201
|
+
declare function lookupKey(token: string): Promise<KeyRecord | undefined>;
|
|
202
|
+
declare function handleIngestBody(key: KeyRecord): Promise<void>;
|
|
203
|
+
|
|
204
|
+
export async function handleIngest(token: string): Promise<void> {
|
|
205
|
+
const key = await lookupKey(token);
|
|
206
|
+
if (!key || key.kind !== "write") {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
await handleIngestBody(key);
|
|
211
|
+
}
|
|
212
|
+
`);
|
|
213
|
+
expect(csharp).to.include("await handleIngestBody(key)");
|
|
214
|
+
expect(csharp).to.not.include("__Anon_");
|
|
215
|
+
expect(csharp).to.not.include("(__Anon_");
|
|
216
|
+
});
|
|
217
|
+
it("preserves awaited source-backed structural aliases from imported modules", () => {
|
|
218
|
+
const csharp = compileProjectToCSharp({
|
|
219
|
+
"package.json": JSON.stringify({
|
|
220
|
+
name: "emitter-test-project",
|
|
221
|
+
version: "1.0.0",
|
|
222
|
+
type: "module",
|
|
223
|
+
}),
|
|
224
|
+
"src/db/clickmeter-db.ts": `
|
|
225
|
+
export type ApiKeyKind = "write" | "read";
|
|
226
|
+
export type KeyRecord = {
|
|
227
|
+
readonly property_id: string;
|
|
228
|
+
readonly kind: ApiKeyKind;
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
export class ClickmeterDb {
|
|
232
|
+
async lookupKey(_token: string): Promise<KeyRecord | undefined> {
|
|
233
|
+
return { property_id: "property", kind: "write" };
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
`,
|
|
237
|
+
"src/server/handlers/handle-ingest.ts": `
|
|
238
|
+
import type { KeyRecord } from "../../db/clickmeter-db.ts";
|
|
239
|
+
import { ClickmeterDb } from "../../db/clickmeter-db.ts";
|
|
240
|
+
|
|
241
|
+
const handleIngestBody = async (key: KeyRecord): Promise<void> => {
|
|
242
|
+
if (key.kind !== "write") return;
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
export const handleIngest = async (db: ClickmeterDb, token: string): Promise<void> => {
|
|
246
|
+
const key = await db.lookupKey(token);
|
|
247
|
+
if (!key || key.kind !== "write") {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
await handleIngestBody(key);
|
|
252
|
+
};
|
|
253
|
+
`,
|
|
254
|
+
}, "src/server/handlers/handle-ingest.ts", {}, { sourceRootRelativePath: "src", rootNamespace: "Clickmeter.Server" });
|
|
255
|
+
expect(csharp).to.include("await handleIngestBody(key);");
|
|
256
|
+
expect(csharp).to.not.include("await handleIngestBody(((global::System.Func");
|
|
257
|
+
expect(csharp).to.not.include("var __struct = (global::Clickmeter.Server.__Anon_");
|
|
258
|
+
});
|
|
259
|
+
it("keeps JS source-package coercion helpers isolated from downstream type names", () => {
|
|
260
|
+
const csharp = compileToCSharp(`
|
|
261
|
+
export class StringValue {}
|
|
262
|
+
|
|
263
|
+
export function logText(text: string): void {
|
|
264
|
+
console.log(text);
|
|
265
|
+
}
|
|
266
|
+
`, "/test/test.ts", { surface: "@tsonic/js" });
|
|
267
|
+
expect(csharp).to.include("global::js.Globals.String(values[i])");
|
|
268
|
+
expect(csharp).to.not.include("(global::Test.StringValue)values[i]");
|
|
269
|
+
});
|
|
270
|
+
it("projects optional value-type parameters after terminating nullish guards", () => {
|
|
271
|
+
const csharp = compileToCSharp(`
|
|
272
|
+
import type { int } from "@tsonic/core/types.js";
|
|
273
|
+
|
|
274
|
+
declare function consume(value: int): int;
|
|
275
|
+
|
|
276
|
+
export function read(value?: int): int {
|
|
277
|
+
if (value === undefined) {
|
|
278
|
+
return -1;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
return consume(value);
|
|
282
|
+
}
|
|
283
|
+
`);
|
|
284
|
+
expect(csharp).to.include("return consume(value.Value);");
|
|
285
|
+
expect(csharp).to.not.include("return consume(value);");
|
|
286
|
+
});
|
|
287
|
+
it("projects optional value-type parameters inside narrowed ternary branches", () => {
|
|
288
|
+
const csharp = compileToCSharp(`
|
|
289
|
+
import type { int } from "@tsonic/core/types.js";
|
|
290
|
+
|
|
291
|
+
declare function consume(value: int): int;
|
|
292
|
+
|
|
293
|
+
export function read(value?: int): int {
|
|
294
|
+
return value === undefined ? -1 : consume(value);
|
|
295
|
+
}
|
|
296
|
+
`);
|
|
297
|
+
expect(csharp).to.include("consume(value.Value)");
|
|
298
|
+
expect(csharp).to.not.include("consume(value)");
|
|
299
|
+
});
|
|
300
|
+
it("materializes concrete reference returns into declared runtime unions", () => {
|
|
301
|
+
const csharp = compileToCSharp(`
|
|
302
|
+
export class Bytes {}
|
|
303
|
+
|
|
304
|
+
export function encode(bytes: Bytes, encoding?: string): string | Bytes {
|
|
305
|
+
if (encoding === undefined) {
|
|
306
|
+
return bytes;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
return encoding;
|
|
310
|
+
}
|
|
311
|
+
`);
|
|
312
|
+
expect(csharp).to.match(/return global::Tsonic\.Internal\.(?:Union|Union2_[A-F0-9]+)<string, global::Test\.Bytes>\.From2\((?:\(global::Test\.Bytes\))?bytes\);/);
|
|
313
|
+
expect(csharp).to.not.include("return bytes;");
|
|
314
|
+
});
|
|
315
|
+
it("materializes first-arm concrete reference returns into declared runtime unions", () => {
|
|
316
|
+
const csharp = compileToCSharp(`
|
|
317
|
+
export function encode(bytes: Uint8Array, encoding?: string): Uint8Array | string {
|
|
318
|
+
if (encoding === undefined) {
|
|
319
|
+
return bytes;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
return encoding;
|
|
323
|
+
}
|
|
324
|
+
`, "/test/test.ts", { surface: "@tsonic/js" });
|
|
325
|
+
expect(csharp).to.match(/return global::Tsonic\.Internal\.(?:Union|Union2_[A-F0-9]+)<global::js\.Uint8Array, string>\.From1\(bytes\);/);
|
|
326
|
+
expect(csharp).to.not.include("return bytes;");
|
|
327
|
+
});
|
|
328
|
+
it("uses broad storage typeof checks for recursive rest callback values", () => {
|
|
329
|
+
const csharp = compileToCSharp(`
|
|
330
|
+
type RuntimeObject = object;
|
|
331
|
+
type RuntimeArray = RuntimeValue[];
|
|
332
|
+
type RuntimeValue = string | number | boolean | RuntimeArray | RuntimeObject | null | undefined;
|
|
333
|
+
type EventListener = (...args: RuntimeValue[]) => void;
|
|
334
|
+
|
|
335
|
+
declare class EventEmitter {
|
|
336
|
+
prependOnceListener(eventName: string, listener: EventListener): EventEmitter;
|
|
337
|
+
emit(eventName: string, ...args: RuntimeValue[]): boolean;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
export function run(emitter: EventEmitter): number {
|
|
341
|
+
let received = 0;
|
|
342
|
+
emitter.prependOnceListener("test", (value: RuntimeValue) => {
|
|
343
|
+
if (typeof value === "number") {
|
|
344
|
+
received = value;
|
|
345
|
+
}
|
|
346
|
+
});
|
|
347
|
+
emitter.emit("test", 42);
|
|
348
|
+
return received;
|
|
349
|
+
}
|
|
350
|
+
`);
|
|
351
|
+
expect(csharp).to.include("object? value = __unused_args[0];");
|
|
352
|
+
expect(csharp).to.include("if ((value is double || value is int))");
|
|
353
|
+
expect(csharp).to.include("received = (int)(value switch");
|
|
354
|
+
expect(csharp).to.not.match(/\bvalue\.Is\d+\(\)/);
|
|
355
|
+
});
|
|
356
|
+
it("allows broad runtime-value Array.isArray checks when returned as booleans", () => {
|
|
357
|
+
const csharp = compileToCSharp(`
|
|
358
|
+
type RuntimeObject = object;
|
|
359
|
+
type RuntimeArray = RuntimeValue[];
|
|
360
|
+
type RuntimeValue = string | number | boolean | RuntimeArray | RuntimeObject | null | undefined;
|
|
361
|
+
|
|
362
|
+
export function isArrayValue(value: RuntimeValue): boolean {
|
|
363
|
+
return Array.isArray(value);
|
|
364
|
+
}
|
|
365
|
+
`, "/test/test.ts", { surface: "@tsonic/js" });
|
|
366
|
+
expect(csharp).to.include("return value is global::System.Array;");
|
|
367
|
+
});
|
|
368
|
+
it("omits invalid object constraints for broad runtime-value generic bounds", () => {
|
|
369
|
+
const csharp = compileToCSharp(`
|
|
370
|
+
type RuntimeObject = object;
|
|
371
|
+
type RuntimeArray = RuntimeValue[];
|
|
372
|
+
type RuntimeValue = string | number | boolean | RuntimeArray | RuntimeObject | null | undefined;
|
|
373
|
+
|
|
374
|
+
export class TimersPromises {
|
|
375
|
+
async setImmediate<T extends RuntimeValue>(value?: T): Promise<T | undefined> {
|
|
376
|
+
return value;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
`);
|
|
380
|
+
expect(csharp).to.match(/setImmediate<T>\(T\? value = default\)/);
|
|
381
|
+
expect(csharp).to.not.match(/where\s+T\s*:\s*object\b/);
|
|
382
|
+
expect(csharp).to.not.match(/where\s+T\s*:\s*global::System\.Object\b/);
|
|
383
|
+
});
|
|
384
|
+
it("materializes union array arms into broad recursive runtime-value arrays", () => {
|
|
385
|
+
const csharp = compileToCSharp(`
|
|
386
|
+
import type { int } from "@tsonic/core/types.js";
|
|
387
|
+
|
|
388
|
+
type RuntimeObject = object;
|
|
389
|
+
type RuntimeArray = RuntimeValue[];
|
|
390
|
+
type RuntimeValue = string | number | boolean | RuntimeArray | RuntimeObject | null | undefined;
|
|
391
|
+
|
|
392
|
+
class RecordWithTtl {
|
|
393
|
+
address: string = "";
|
|
394
|
+
ttl: int = 0;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
export function count(result: Array<RecordWithTtl> | Array<string>): number {
|
|
398
|
+
const values = result as Array<RuntimeValue>;
|
|
399
|
+
return values.length;
|
|
400
|
+
}
|
|
401
|
+
`, "/test/test.ts", { surface: "@tsonic/js" });
|
|
402
|
+
expect(csharp).to.include("result.Match<object?[]>");
|
|
403
|
+
expect(csharp).to.include("global::System.Linq.Enumerable.Select");
|
|
404
|
+
expect(csharp).to.not.include("Cannot materialize runtime union arrayType to arrayType");
|
|
405
|
+
});
|
|
406
|
+
it("applies all conjunctive instanceof narrowings in branch bodies", () => {
|
|
407
|
+
const csharp = compileToCSharp(`
|
|
408
|
+
type RuntimeArray = RuntimeValue[];
|
|
409
|
+
type RuntimeValue = string | number | boolean | RuntimeArray | object | null | undefined;
|
|
410
|
+
|
|
411
|
+
const areUint8ArraysEqual = (left: Uint8Array, right: Uint8Array): boolean => {
|
|
412
|
+
return left.length === right.length;
|
|
413
|
+
};
|
|
414
|
+
|
|
415
|
+
export const areDeepEqual = (left: RuntimeValue, right: RuntimeValue): boolean => {
|
|
416
|
+
if (typeof left !== "object" || typeof right !== "object") {
|
|
417
|
+
return false;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
if (left instanceof Uint8Array && right instanceof Uint8Array) {
|
|
421
|
+
return areUint8ArraysEqual(left, right);
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
return false;
|
|
425
|
+
};
|
|
426
|
+
`, "/test/test.ts", { surface: "@tsonic/nodejs" });
|
|
427
|
+
expect(csharp).to.match(/areUint8ArraysEqual\((?:\(global::js\.Uint8Array\))?left, \(global::js\.Uint8Array\)right\)/);
|
|
428
|
+
expect(csharp).to.not.include("areUint8ArraysEqual(left, right)");
|
|
429
|
+
});
|
|
430
|
+
it("preserves explicit subclass casts in conditional expressions", () => {
|
|
431
|
+
const csharp = compileToCSharp(`
|
|
432
|
+
export class JsonValue {
|
|
433
|
+
kind: string;
|
|
434
|
+
|
|
435
|
+
constructor(kind: string) {
|
|
436
|
+
this.kind = kind;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
export class JsonArray extends JsonValue {
|
|
441
|
+
items: JsonValue[];
|
|
442
|
+
|
|
443
|
+
constructor(items: JsonValue[]) {
|
|
444
|
+
super("array");
|
|
445
|
+
this.items = items;
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
export class JsonObject extends JsonValue {
|
|
450
|
+
items: JsonValue[];
|
|
451
|
+
|
|
452
|
+
constructor(items: JsonValue[]) {
|
|
453
|
+
super("object");
|
|
454
|
+
this.items = items;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
export const jsonArray = (value: JsonValue | undefined): JsonArray | undefined =>
|
|
459
|
+
value instanceof JsonArray ? (value as JsonArray) : undefined;
|
|
460
|
+
|
|
461
|
+
export const jsonObject = (value: JsonValue | undefined): JsonObject | undefined =>
|
|
462
|
+
value instanceof JsonObject ? (value as JsonObject) : undefined;
|
|
463
|
+
`, "/test/test.ts", { surface: "@tsonic/nodejs" });
|
|
464
|
+
expect(csharp).to.include("return value is JsonArray ? (JsonArray)value : default(JsonArray);");
|
|
465
|
+
expect(csharp).to.not.include("return value is JsonArray ? value : default(JsonArray);");
|
|
466
|
+
expect(csharp).to.include("return value is JsonObject ? (JsonObject)value : default(JsonObject);");
|
|
467
|
+
expect(csharp).to.not.include("return value is JsonObject ? value : default(JsonObject);");
|
|
468
|
+
});
|
|
469
|
+
it("widens mutable integer-initialized locals to JS numbers outside canonical loops", () => {
|
|
470
|
+
const csharp = compileToCSharp(`
|
|
471
|
+
export function pickLength(totalLength?: number): number {
|
|
472
|
+
let len = 0;
|
|
473
|
+
if (totalLength !== undefined) {
|
|
474
|
+
len = totalLength;
|
|
475
|
+
}
|
|
476
|
+
return len;
|
|
477
|
+
}
|
|
478
|
+
`, "/test/test.ts", { surface: "@tsonic/js" });
|
|
479
|
+
expect(csharp).to.include("double len = 0;");
|
|
480
|
+
expect(csharp).to.include("len = totalLength.Value;");
|
|
481
|
+
expect(csharp).to.not.include("var len = 0;");
|
|
482
|
+
});
|
|
483
|
+
it("keeps nullish-assigned nullable member checks on the nullable storage slot", () => {
|
|
484
|
+
const csharp = compileToCSharp(`
|
|
485
|
+
import type { int } from "@tsonic/core/types.js";
|
|
486
|
+
|
|
487
|
+
export class ProcessModule {
|
|
488
|
+
get exitCode(): int | undefined {
|
|
489
|
+
return undefined;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
set exitCode(value: int | undefined) {}
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
export const process = new ProcessModule();
|
|
496
|
+
|
|
497
|
+
export function resetAndCheck(): boolean {
|
|
498
|
+
process.exitCode = undefined;
|
|
499
|
+
return process.exitCode === undefined;
|
|
500
|
+
}
|
|
501
|
+
`, "/test/test.ts", { surface: "@tsonic/nodejs" });
|
|
502
|
+
expect(csharp).to.include("process.exitCode = default(int?);");
|
|
503
|
+
expect(csharp).to.include("return process.exitCode == null;");
|
|
504
|
+
expect(csharp).to.not.include("process.exitCode.Value == null");
|
|
505
|
+
});
|
|
506
|
+
it("keeps canonical for-loop counters integral after mutable numeric widening", () => {
|
|
507
|
+
const csharp = compileToCSharp(`
|
|
508
|
+
export function sum(values: number[]): number {
|
|
509
|
+
for (let i = 0; i < values.length; i++) {
|
|
510
|
+
if (values[i]! > 10) {
|
|
511
|
+
return i;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
return -1;
|
|
515
|
+
}
|
|
516
|
+
`, "/test/test.ts", { surface: "@tsonic/js" });
|
|
517
|
+
expect(csharp).to.include("for (int i = 0;");
|
|
518
|
+
expect(csharp).to.include("return i;");
|
|
519
|
+
expect(csharp).to.not.include("for (double i = 0;");
|
|
520
|
+
});
|
|
521
|
+
});
|
|
522
|
+
//# sourceMappingURL=may14-downstream-contracts.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"may14-downstream-contracts.test.js","sourceRoot":"","sources":["../../src/integration-cases/may14-downstream-contracts.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { expect } from "chai";
|
|
|
3
3
|
import { compileToCSharp } from "./helpers.js";
|
|
4
4
|
describe("End-to-End Integration", () => {
|
|
5
5
|
describe("Object Literal Methods", () => {
|
|
6
|
-
it("
|
|
6
|
+
it("lowers arguments.length in object literal methods from declared parameters", () => {
|
|
7
7
|
const source = `
|
|
8
8
|
interface Ops {
|
|
9
9
|
add: (x: number, y: number) => number;
|
|
@@ -18,11 +18,14 @@ describe("End-to-End Integration", () => {
|
|
|
18
18
|
return ops.add(1, 2);
|
|
19
19
|
}
|
|
20
20
|
`;
|
|
21
|
-
const csharp = compileToCSharp(source
|
|
21
|
+
const csharp = compileToCSharp(source, "/test/test.ts", {
|
|
22
|
+
surface: "@tsonic/js",
|
|
23
|
+
});
|
|
24
|
+
expect(csharp).to.include("add = (double x, double y) =>");
|
|
22
25
|
expect(csharp).to.include("return 2 + x + y;");
|
|
23
26
|
expect(csharp).not.to.include("arguments");
|
|
24
27
|
});
|
|
25
|
-
it("
|
|
28
|
+
it("lowers arguments index access in object literal methods from declared parameters", () => {
|
|
26
29
|
const source = `
|
|
27
30
|
interface Ops {
|
|
28
31
|
add: (x: number, y: number) => number;
|
|
@@ -37,7 +40,10 @@ describe("End-to-End Integration", () => {
|
|
|
37
40
|
return ops.add(1, 2);
|
|
38
41
|
}
|
|
39
42
|
`;
|
|
40
|
-
const csharp = compileToCSharp(source
|
|
43
|
+
const csharp = compileToCSharp(source, "/test/test.ts", {
|
|
44
|
+
surface: "@tsonic/js",
|
|
45
|
+
});
|
|
46
|
+
expect(csharp).to.include("add = (double x, double y) =>");
|
|
41
47
|
expect(csharp).to.include("var __tsonic_object_method_argument_0 = x;");
|
|
42
48
|
expect(csharp).to.include("return __tsonic_object_method_argument_0 + y;");
|
|
43
49
|
expect(csharp).not.to.include("arguments");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-literals-and-channels.test.js","sourceRoot":"","sources":["../../src/integration-cases/object-literals-and-channels.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"object-literals-and-channels.test.js","sourceRoot":"","sources":["../../src/integration-cases/object-literals-and-channels.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;YACpF,MAAM,MAAM,GAAG;;;;;;;;;;;;;OAad,CAAC;YAEF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE;gBACtD,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;YAC1F,MAAM,MAAM,GAAG;;;;;;;;;;;;;OAad,CAAC;YAEF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE;gBACtD,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;YACxE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CACvB,+CAA+C,CAChD,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;YACjF,MAAM,MAAM,GAAG;;;;;;;;;;;;;;OAcd,CAAC;YAEF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YACvC,iEAAiE;YACjE,yEAAyE;YACzE,mDAAmD;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|