@tsonic/emitter 0.0.77 → 0.0.78

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.
Files changed (186) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/array.test.js +5 -1
  3. package/dist/array.test.js.map +1 -1
  4. package/dist/core/module-emitter-cases/static-containers.test.js +2 -1
  5. package/dist/core/module-emitter-cases/static-containers.test.js.map +1 -1
  6. package/dist/core/semantic/array-expected-types.js +1 -1
  7. package/dist/core/semantic/array-expected-types.js.map +1 -1
  8. package/dist/core/semantic/assignment-flow.d.ts.map +1 -1
  9. package/dist/core/semantic/assignment-flow.js +2 -1
  10. package/dist/core/semantic/assignment-flow.js.map +1 -1
  11. package/dist/core/semantic/direct-value-surfaces.js +2 -1
  12. package/dist/core/semantic/direct-value-surfaces.js.map +1 -1
  13. package/dist/core/semantic/instanceof-predicate-refinements.js +1 -1
  14. package/dist/core/semantic/instanceof-predicate-refinements.js.map +1 -1
  15. package/dist/core/semantic/mutable-storage-helpers.d.ts.map +1 -1
  16. package/dist/core/semantic/mutable-storage-helpers.js +3 -2
  17. package/dist/core/semantic/mutable-storage-helpers.js.map +1 -1
  18. package/dist/core/semantic/narrowed-expression-types.js +1 -1
  19. package/dist/core/semantic/narrowed-expression-types.js.map +1 -1
  20. package/dist/core/semantic/narrowed-union-resolution.js +1 -1
  21. package/dist/core/semantic/narrowed-union-resolution.js.map +1 -1
  22. package/dist/core/semantic/nullable-typeof-refinements.d.ts.map +1 -1
  23. package/dist/core/semantic/nullable-typeof-refinements.js +8 -31
  24. package/dist/core/semantic/nullable-typeof-refinements.js.map +1 -1
  25. package/dist/core/semantic/runtime-union-frame.d.ts +6 -0
  26. package/dist/core/semantic/runtime-union-frame.d.ts.map +1 -0
  27. package/dist/core/semantic/runtime-union-frame.js +130 -0
  28. package/dist/core/semantic/runtime-union-frame.js.map +1 -0
  29. package/dist/core/semantic/runtime-unions.d.ts +3 -4
  30. package/dist/core/semantic/runtime-unions.d.ts.map +1 -1
  31. package/dist/core/semantic/runtime-unions.js +4 -129
  32. package/dist/core/semantic/runtime-unions.js.map +1 -1
  33. package/dist/core/semantic/semantic-union-members.js +1 -1
  34. package/dist/core/semantic/semantic-union-members.js.map +1 -1
  35. package/dist/core/semantic/storage-types.d.ts +3 -0
  36. package/dist/core/semantic/storage-types.d.ts.map +1 -1
  37. package/dist/core/semantic/storage-types.js +13 -2
  38. package/dist/core/semantic/storage-types.js.map +1 -1
  39. package/dist/core/semantic/surface-member-semantics.d.ts +14 -0
  40. package/dist/core/semantic/surface-member-semantics.d.ts.map +1 -0
  41. package/dist/core/semantic/surface-member-semantics.js +41 -0
  42. package/dist/core/semantic/surface-member-semantics.js.map +1 -0
  43. package/dist/core/semantic/ternary-guards.d.ts +1 -1
  44. package/dist/core/semantic/ternary-guards.d.ts.map +1 -1
  45. package/dist/core/semantic/ternary-guards.js +2 -1
  46. package/dist/core/semantic/ternary-guards.js.map +1 -1
  47. package/dist/core/semantic/typeof-comparison.d.ts +14 -0
  48. package/dist/core/semantic/typeof-comparison.d.ts.map +1 -0
  49. package/dist/core/semantic/typeof-comparison.js +47 -0
  50. package/dist/core/semantic/typeof-comparison.js.map +1 -0
  51. package/dist/core/semantic/union-semantics.js +1 -1
  52. package/dist/core/semantic/union-semantics.js.map +1 -1
  53. package/dist/emitter-types/context.d.ts.map +1 -1
  54. package/dist/emitter-types/context.js +1 -0
  55. package/dist/emitter-types/context.js.map +1 -1
  56. package/dist/expressions/access-binding.d.ts.map +1 -1
  57. package/dist/expressions/access-binding.js +18 -32
  58. package/dist/expressions/access-binding.js.map +1 -1
  59. package/dist/expressions/access-computed.d.ts.map +1 -1
  60. package/dist/expressions/access-computed.js +3 -7
  61. package/dist/expressions/access-computed.js.map +1 -1
  62. package/dist/expressions/access-function-length.d.ts +13 -0
  63. package/dist/expressions/access-function-length.d.ts.map +1 -0
  64. package/dist/expressions/access-function-length.js +115 -0
  65. package/dist/expressions/access-function-length.js.map +1 -0
  66. package/dist/expressions/access-length.d.ts +2 -4
  67. package/dist/expressions/access-length.d.ts.map +1 -1
  68. package/dist/expressions/access-length.js +7 -23
  69. package/dist/expressions/access-length.js.map +1 -1
  70. package/dist/expressions/access-length.test.js +17 -0
  71. package/dist/expressions/access-length.test.js.map +1 -1
  72. package/dist/expressions/access-resolution-receivers.d.ts.map +1 -1
  73. package/dist/expressions/access-resolution-receivers.js +10 -12
  74. package/dist/expressions/access-resolution-receivers.js.map +1 -1
  75. package/dist/expressions/access.d.ts.map +1 -1
  76. package/dist/expressions/access.js +7 -19
  77. package/dist/expressions/access.js.map +1 -1
  78. package/dist/expressions/architecture-invariants.test.js +94 -0
  79. package/dist/expressions/architecture-invariants.test.js.map +1 -1
  80. package/dist/expressions/awaitable-adaptation.d.ts +15 -0
  81. package/dist/expressions/awaitable-adaptation.d.ts.map +1 -0
  82. package/dist/expressions/awaitable-adaptation.js +174 -0
  83. package/dist/expressions/awaitable-adaptation.js.map +1 -0
  84. package/dist/expressions/calls/call-arguments-emit.d.ts.map +1 -1
  85. package/dist/expressions/calls/call-arguments-emit.js +20 -2
  86. package/dist/expressions/calls/call-arguments-emit.js.map +1 -1
  87. package/dist/expressions/calls/call-arguments-helpers.js +2 -2
  88. package/dist/expressions/calls/call-arguments-helpers.js.map +1 -1
  89. package/dist/expressions/calls/call-array-interop.d.ts +1 -1
  90. package/dist/expressions/calls/call-array-interop.d.ts.map +1 -1
  91. package/dist/expressions/calls/call-array-interop.js +1 -1
  92. package/dist/expressions/calls/call-array-interop.js.map +1 -1
  93. package/dist/expressions/calls/call-array-mutation.d.ts +0 -1
  94. package/dist/expressions/calls/call-array-mutation.d.ts.map +1 -1
  95. package/dist/expressions/calls/call-array-mutation.js +5 -7
  96. package/dist/expressions/calls/call-array-mutation.js.map +1 -1
  97. package/dist/expressions/calls/call-array-wrapper.d.ts.map +1 -1
  98. package/dist/expressions/calls/call-array-wrapper.js +3 -8
  99. package/dist/expressions/calls/call-array-wrapper.js.map +1 -1
  100. package/dist/expressions/expected-type-adaptation.d.ts.map +1 -1
  101. package/dist/expressions/expected-type-adaptation.js +15 -1
  102. package/dist/expressions/expected-type-adaptation.js.map +1 -1
  103. package/dist/expressions/identifier-storage/broad-storage-target.d.ts +4 -0
  104. package/dist/expressions/identifier-storage/broad-storage-target.d.ts.map +1 -0
  105. package/dist/expressions/identifier-storage/broad-storage-target.js +26 -0
  106. package/dist/expressions/identifier-storage/broad-storage-target.js.map +1 -0
  107. package/dist/expressions/identifier-storage/implicit-storage.d.ts +14 -0
  108. package/dist/expressions/identifier-storage/implicit-storage.d.ts.map +1 -0
  109. package/dist/expressions/identifier-storage/implicit-storage.js +44 -0
  110. package/dist/expressions/identifier-storage/implicit-storage.js.map +1 -0
  111. package/dist/expressions/identifier-storage/materialized-narrowed.d.ts +7 -0
  112. package/dist/expressions/identifier-storage/materialized-narrowed.d.ts.map +1 -0
  113. package/dist/expressions/identifier-storage/materialized-narrowed.js +92 -0
  114. package/dist/expressions/identifier-storage/materialized-narrowed.js.map +1 -0
  115. package/dist/expressions/identifier-storage/narrowed-storage-compatible.d.ts +14 -0
  116. package/dist/expressions/identifier-storage/narrowed-storage-compatible.d.ts.map +1 -0
  117. package/dist/expressions/identifier-storage/narrowed-storage-compatible.js +168 -0
  118. package/dist/expressions/identifier-storage/narrowed-storage-compatible.js.map +1 -0
  119. package/dist/expressions/identifier-storage/reified-storage.d.ts +7 -0
  120. package/dist/expressions/identifier-storage/reified-storage.d.ts.map +1 -0
  121. package/dist/expressions/identifier-storage/reified-storage.js +25 -0
  122. package/dist/expressions/identifier-storage/reified-storage.js.map +1 -0
  123. package/dist/expressions/identifier-storage/runtime-subset.d.ts +14 -0
  124. package/dist/expressions/identifier-storage/runtime-subset.d.ts.map +1 -0
  125. package/dist/expressions/identifier-storage/runtime-subset.js +100 -0
  126. package/dist/expressions/identifier-storage/runtime-subset.js.map +1 -0
  127. package/dist/expressions/identifier-storage/storage-compatible.d.ts +10 -0
  128. package/dist/expressions/identifier-storage/storage-compatible.d.ts.map +1 -0
  129. package/dist/expressions/identifier-storage/storage-compatible.js +76 -0
  130. package/dist/expressions/identifier-storage/storage-compatible.js.map +1 -0
  131. package/dist/expressions/identifier-storage/storage-surface-match.d.ts +4 -0
  132. package/dist/expressions/identifier-storage/storage-surface-match.d.ts.map +1 -0
  133. package/dist/expressions/identifier-storage/storage-surface-match.js +95 -0
  134. package/dist/expressions/identifier-storage/storage-surface-match.js.map +1 -0
  135. package/dist/expressions/identifier-storage/storage-surface-shared.d.ts +12 -0
  136. package/dist/expressions/identifier-storage/storage-surface-shared.d.ts.map +1 -0
  137. package/dist/expressions/identifier-storage/storage-surface-shared.js +77 -0
  138. package/dist/expressions/identifier-storage/storage-surface-shared.js.map +1 -0
  139. package/dist/expressions/identifier-storage/storage-surface.d.ts +9 -0
  140. package/dist/expressions/identifier-storage/storage-surface.d.ts.map +1 -0
  141. package/dist/expressions/identifier-storage/storage-surface.js +9 -0
  142. package/dist/expressions/identifier-storage/storage-surface.js.map +1 -0
  143. package/dist/expressions/identifier-storage.d.ts +1 -47
  144. package/dist/expressions/identifier-storage.d.ts.map +1 -1
  145. package/dist/expressions/identifier-storage.js +1 -652
  146. package/dist/expressions/identifier-storage.js.map +1 -1
  147. package/dist/expressions/index-cases/array-wrapper-recursion-b.test.js +7 -1
  148. package/dist/expressions/index-cases/array-wrapper-recursion-b.test.js.map +1 -1
  149. package/dist/expressions/index-cases/array-wrapper-recursion-c.test.js +4 -1
  150. package/dist/expressions/index-cases/array-wrapper-recursion-c.test.js.map +1 -1
  151. package/dist/expressions/index-cases/helpers.d.ts +1 -0
  152. package/dist/expressions/index-cases/helpers.d.ts.map +1 -1
  153. package/dist/expressions/index-cases/helpers.js +28 -0
  154. package/dist/expressions/index-cases/helpers.js.map +1 -1
  155. package/dist/expressions/index-cases/string-and-array-fallbacks-a.test.js +18 -9
  156. package/dist/expressions/index-cases/string-and-array-fallbacks-a.test.js.map +1 -1
  157. package/dist/expressions/index-cases/string-and-array-fallbacks-b.test.js +5 -5
  158. package/dist/expressions/index-cases/string-and-array-fallbacks-b.test.js.map +1 -1
  159. package/dist/expressions/lambda-body.js +3 -3
  160. package/dist/expressions/lambda-body.js.map +1 -1
  161. package/dist/expressions/operators/binary-special-ops.d.ts.map +1 -1
  162. package/dist/expressions/operators/binary-special-ops.js +4 -30
  163. package/dist/expressions/operators/binary-special-ops.js.map +1 -1
  164. package/dist/expressions/runtime-union-adaptation-upcast.d.ts +1 -1
  165. package/dist/expressions/runtime-union-adaptation-upcast.d.ts.map +1 -1
  166. package/dist/expressions/runtime-union-adaptation-upcast.js +13 -0
  167. package/dist/expressions/runtime-union-adaptation-upcast.js.map +1 -1
  168. package/dist/integration-cases/may14-downstream-contracts.test.js +372 -0
  169. package/dist/integration-cases/may14-downstream-contracts.test.js.map +1 -1
  170. package/dist/statements/classes/members/properties.d.ts.map +1 -1
  171. package/dist/statements/classes/members/properties.js +2 -3
  172. package/dist/statements/classes/members/properties.js.map +1 -1
  173. package/dist/statements/control/conditionals/branch-context.js +3 -3
  174. package/dist/statements/control/conditionals/branch-context.js.map +1 -1
  175. package/dist/statements/control/conditionals/guard-extraction.d.ts.map +1 -1
  176. package/dist/statements/control/conditionals/guard-extraction.js +7 -32
  177. package/dist/statements/control/conditionals/guard-extraction.js.map +1 -1
  178. package/dist/statements/control/loops.js +2 -2
  179. package/dist/statements/control/loops.js.map +1 -1
  180. package/dist/types/unions.js +2 -1
  181. package/dist/types/unions.js.map +1 -1
  182. package/package.json +2 -2
  183. package/dist/core/semantic/js-array-surface-members.d.ts +0 -4
  184. package/dist/core/semantic/js-array-surface-members.d.ts.map +0 -1
  185. package/dist/core/semantic/js-array-surface-members.js +0 -32
  186. package/dist/core/semantic/js-array-surface-members.js.map +0 -1
@@ -6,6 +6,7 @@ import { resolveTypeAlias, stripNullish, } from "../../../core/semantic/type-res
6
6
  import { isAssignable } from "../../../core/semantic/index.js";
7
7
  import { unwrapTransparentNarrowingTarget } from "../../../core/semantic/transparent-expressions.js";
8
8
  import { getMemberAccessNarrowKey } from "../../../core/semantic/narrowing-keys.js";
9
+ import { tryExtractTypeofComparison } from "../../../core/semantic/typeof-comparison.js";
9
10
  export const isArrayLikeNarrowingCandidate = (type, context) => {
10
11
  const resolved = resolveTypeAlias(stripNullish(type), context);
11
12
  if (resolved.kind === "arrayType" || resolved.kind === "tupleType") {
@@ -110,40 +111,14 @@ export const tryExtractArrayIsArrayGuard = (condition) => {
110
111
  return undefined;
111
112
  };
112
113
  export const tryExtractDirectTypeofGuard = (expr) => {
113
- if (expr.kind !== "binary")
114
- return undefined;
115
- if (expr.operator !== "===" &&
116
- expr.operator !== "==" &&
117
- expr.operator !== "!==" &&
118
- expr.operator !== "!=") {
119
- return undefined;
120
- }
121
- const extract = (left, right) => {
122
- if (left.kind !== "unary" || left.operator !== "typeof")
123
- return undefined;
124
- const target = unwrapTransparentNarrowingTarget(left.expression);
125
- if (!target)
126
- return undefined;
127
- if (right.kind !== "literal" || typeof right.value !== "string") {
128
- return undefined;
129
- }
130
- const bindingKey = target.kind === "identifier"
131
- ? target.name
132
- : getMemberAccessNarrowKey(target);
133
- if (!bindingKey)
134
- return undefined;
135
- return {
136
- bindingKey,
137
- targetExpr: target,
138
- tag: right.value,
139
- };
140
- };
141
- const directGuard = extract(expr.left, expr.right) ?? extract(expr.right, expr.left);
142
- if (!directGuard)
114
+ const comparison = tryExtractTypeofComparison(expr);
115
+ if (!comparison?.narrowable)
143
116
  return undefined;
144
117
  return {
145
- ...directGuard,
146
- matchesInTruthyBranch: expr.operator === "===" || expr.operator === "==",
118
+ bindingKey: comparison.narrowable.bindingKey,
119
+ targetExpr: comparison.narrowable.targetExpr,
120
+ tag: comparison.tag,
121
+ matchesInTruthyBranch: !comparison.negate,
147
122
  };
148
123
  };
149
124
  //# sourceMappingURL=guard-extraction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"guard-extraction.js","sourceRoot":"","sources":["../../../../src/statements/control/conditionals/guard-extraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guard-extraction.js","sourceRoot":"","sources":["../../../../src/statements/control/conditionals/guard-extraction.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ import { allocateLocalName, registerLocalName, } from "../../core/format/local-n
13
13
  import { registerForInKeySymbolTypes, registerForOfElementSymbolTypes, } from "../../core/semantic/symbol-types.js";
14
14
  import { decimalIntegerLiteral } from "../../core/format/backend-ast/builders.js";
15
15
  import { getIterableSourceShape } from "../../expressions/structural-type-shapes.js";
16
- import { normalizeRuntimeStorageType } from "../../core/semantic/storage-types.js";
16
+ import { resolveRuntimeStorageType } from "../../core/semantic/storage-types.js";
17
17
  import { detectCanonicalIntLoop, wrapInBlock, emitExprAstCb, } from "./loop-helpers.js";
18
18
  const buildForOfSourceAst = (exprAst, iterableType, context) => {
19
19
  const iterableShape = getIterableSourceShape(iterableType, context);
@@ -173,7 +173,7 @@ export const emitForStatementAst = (stmt, context) => {
173
173
  export const emitForOfStatementAst = (stmt, context) => {
174
174
  const iterableExpressionType = resolveEffectiveExpressionType(stmt.expression, context) ??
175
175
  stmt.expression.inferredType;
176
- const iterableStorageType = normalizeRuntimeStorageType(iterableExpressionType, context) ??
176
+ const iterableStorageType = resolveRuntimeStorageType(iterableExpressionType, context) ??
177
177
  iterableExpressionType;
178
178
  const [exprAst, exprContext] = emitExpressionAst(stmt.expression, context, iterableStorageType);
179
179
  const outerNameMap = exprContext.localNameMap;
@@ -1 +1 @@
1
- {"version":3,"file":"loops.js","sourceRoot":"","sources":["../../../src/statements/control/loops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loops.js","sourceRoot":"","sources":["../../../src/statements/control/loops.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@ import { emitTypeAst } from "./emitter.js";
6
6
  import { nullableType } from "../core/format/backend-ast/builders.js";
7
7
  import { stableTypeKeyFromAst } from "../core/format/backend-ast/utils.js";
8
8
  import { splitRuntimeNullishUnionMembers } from "../core/semantic/type-resolution.js";
9
- import { buildRuntimeUnionLayout, buildRuntimeUnionTypeAst, getCanonicalRuntimeUnionMembers, } from "../core/semantic/runtime-unions.js";
9
+ import { buildRuntimeUnionLayout, buildRuntimeUnionTypeAst, } from "../core/semantic/runtime-unions.js";
10
+ import { getCanonicalRuntimeUnionMembers } from "../core/semantic/runtime-union-frame.js";
10
11
  import { shouldUseBroadObjectForUnionStorage } from "../core/semantic/storage-types.js";
11
12
  import { resolveStructuralReferenceType } from "../core/semantic/structural-shape-matching.js";
12
13
  import { rebuildUnionTypePreservingCarrierFamily } from "../core/semantic/runtime-union-family-preservation.js";
@@ -1 +1 @@
1
- {"version":3,"file":"unions.js","sourceRoot":"","sources":["../../src/types/unions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unions.js","sourceRoot":"","sources":["../../src/types/unions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAU,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAAE,uCAAuC,EAAE,MAAM,uDAAuD,CAAC;AAEhH,MAAM,cAAc,GAAG,CACrB,KAA+B,EACL,EAAE;IAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IACjD,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACjC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,IAA4C,EAC5C,OAAuB,EACU,EAAE;IACnC,qCAAqC;IACrC,YAAY;IACZ,gDAAgD;IAChD,wDAAwD;IACxD,uCAAuC;IAEvC,+EAA+E;IAC/E,MAAM,mBAAmB,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,mBAAmB,EAAE,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC;IAC1E,MAAM,UAAU,GAAG,mBAAmB,EAAE,iBAAiB,IAAI,KAAK,CAAC;IAEnE,gFAAgF;IAChF,6FAA6F;IAC7F,EAAE;IACF,2EAA2E;IAC3E,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;QACxB,IAAI,IAAI,GAAgD,SAAS,CAAC;QAElE,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa;gBAAE,OAAO,SAAS,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAClB,MAAM,IAAI,GACR,OAAO,CAAC,KAAK,QAAQ;gBACnB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ;oBACrB,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS;wBACtB,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,SAAS,CAAC;YACpB,IAAI,CAAC,IAAI;gBAAE,OAAO,SAAS,CAAC;YAC5B,IAAI,CAAC,IAAI;gBAAE,IAAI,GAAG,IAAI,CAAC;iBAClB,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,SAAS,CAAC;QAC3C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,WAAW,CAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,EAC5C,OAAO,CACR,CAAC;QACF,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,uBAAuB,GAC3B,YAAY,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,+BAA+B,CAC7B,uCAAuC,CAAC,IAAI,EAAE,YAAY,CAAC,EAC3D,OAAO,CACR;QACH,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,uBAAuB,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,eAAe,CAAC,GAAG,uBAAuB,CAAC;QAClD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,GAAG,WAAW,CAClE,eAAe,EACf,OAAO,CACR,CAAC;YACF,OAAO;gBACL,UAAU;oBACR,CAAC,CAAC,YAAY,CAAC,sBAAsB,CAAC;oBACtC,CAAC,CAAC,sBAAsB;gBAC1B,sBAAsB;aACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,qBAAqB,GAAoB,EAAE,CAAC;IAClD,IAAI,cAAc,GAAG,OAAO,CAAC;IAE7B,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,MAAM,aAAa,GACjB,8BAA8B,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC;QACnE,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAC1E,cAAc,GAAG,WAAW,CAAC;QAC7B,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,sBAAsB,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC;IACrE,MAAM,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACtD,iBAAiB,CAAC,MAAM,CAAC,CAC1B,CAAC;IACF,MAAM,sBAAsB,GAAG,mCAAmC,CAChE,IAAI,EACJ,cAAc,CACf,CAAC;IAEF,IAAI,sBAAsB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClD,MAAM,SAAS,GAAkB;YAC/B,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,QAAQ;SAClB,CAAC;QACF,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,iDAAiD;QACjD,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAE/C,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO;gBACL;oBACE,IAAI,EAAE,cAAc;oBACpB,cAAc,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE;iBAC9D;gBACD,OAAO;aACR,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IACtD,CAAC;IAED,8FAA8F;IAC9F,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAAC,GAAG,uBAAuB,CACnE,IAAI,EACJ,OAAO,EACP,WAAW,CACZ,CAAC;IACF,MAAM,eAAe,GAAG,aAAa,EAAE,cAAc,CAAC;IAEtD,IAAI,eAAe,IAAI,sBAAsB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACrE,MAAM,SAAS,GAAkB;YAC/B,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,QAAQ;SAClB,CAAC;QACF,OAAO;YACL,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;YAChD,oBAAoB;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;QACzD,OAAO;YACL,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;YAC9C,oBAAoB;SACrB,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,OAAO;QACL,UAAU;YACR,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;YAC7D,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE;QACjD,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsonic/emitter",
3
- "version": "0.0.77",
3
+ "version": "0.0.78",
4
4
  "description": "C# code generator for Tsonic compiler",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,7 +25,7 @@
25
25
  "update-golden:js": "npx tsx scripts/update-golden-tests.ts js"
26
26
  },
27
27
  "dependencies": {
28
- "@tsonic/frontend": "0.0.77"
28
+ "@tsonic/frontend": "0.0.78"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/chai": "5.2.2",
@@ -1,4 +0,0 @@
1
- export declare const JS_ARRAY_MUTATING_METHODS: Set<string>;
2
- export declare const JS_ARRAY_RETURNING_METHODS: Set<string>;
3
- export declare const jsArrayMethodReturnsMutatedArray: (memberName: string) => boolean;
4
- //# sourceMappingURL=js-array-surface-members.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js-array-surface-members.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/js-array-surface-members.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,aAUpC,CAAC;AAEH,eAAO,MAAM,0BAA0B,aAerC,CAAC;AAEH,eAAO,MAAM,gCAAgC,GAAI,YAAY,MAAM,KAAG,OAIzC,CAAC"}
@@ -1,32 +0,0 @@
1
- export const JS_ARRAY_MUTATING_METHODS = new Set([
2
- "push",
3
- "pop",
4
- "shift",
5
- "unshift",
6
- "splice",
7
- "sort",
8
- "reverse",
9
- "fill",
10
- "copyWithin",
11
- ]);
12
- export const JS_ARRAY_RETURNING_METHODS = new Set([
13
- "concat",
14
- "copyWithin",
15
- "filter",
16
- "flat",
17
- "flatMap",
18
- "map",
19
- "reverse",
20
- "slice",
21
- "sort",
22
- "splice",
23
- "toReversed",
24
- "toSorted",
25
- "toSpliced",
26
- "with",
27
- ]);
28
- export const jsArrayMethodReturnsMutatedArray = (memberName) => memberName === "sort" ||
29
- memberName === "reverse" ||
30
- memberName === "fill" ||
31
- memberName === "copyWithin";
32
- //# sourceMappingURL=js-array-surface-members.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js-array-surface-members.js","sourceRoot":"","sources":["../../../src/core/semantic/js-array-surface-members.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IAC/C,MAAM;IACN,KAAK;IACL,OAAO;IACP,SAAS;IACT,QAAQ;IACR,MAAM;IACN,SAAS;IACT,MAAM;IACN,YAAY;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;IAChD,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,MAAM;IACN,SAAS;IACT,KAAK;IACL,SAAS;IACT,OAAO;IACP,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,WAAW;IACX,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,UAAkB,EAAW,EAAE,CAC9E,UAAU,KAAK,MAAM;IACrB,UAAU,KAAK,SAAS;IACxB,UAAU,KAAK,MAAM;IACrB,UAAU,KAAK,YAAY,CAAC"}