brighterscript 0.67.6 → 0.67.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/astUtils/reflection.d.ts +5 -2
  3. package/dist/astUtils/reflection.js +17 -2
  4. package/dist/astUtils/reflection.js.map +1 -1
  5. package/dist/astUtils/visitors.js +1 -1
  6. package/dist/astUtils/visitors.js.map +1 -1
  7. package/dist/parser/AstNode.d.ts +12 -1
  8. package/dist/parser/AstNode.js +20 -0
  9. package/dist/parser/AstNode.js.map +1 -1
  10. package/dist/parser/AstNode.spec.js +1266 -0
  11. package/dist/parser/AstNode.spec.js.map +1 -1
  12. package/dist/parser/Expression.d.ts +27 -0
  13. package/dist/parser/Expression.js +131 -11
  14. package/dist/parser/Expression.js.map +1 -1
  15. package/dist/parser/Statement.d.ts +40 -1
  16. package/dist/parser/Statement.js +227 -6
  17. package/dist/parser/Statement.js.map +1 -1
  18. package/dist/parser/Statement.spec.js.map +1 -1
  19. package/dist/types/ArrayType.d.ts +1 -0
  20. package/dist/types/ArrayType.js +4 -0
  21. package/dist/types/ArrayType.js.map +1 -1
  22. package/dist/types/BooleanType.d.ts +1 -0
  23. package/dist/types/BooleanType.js +3 -0
  24. package/dist/types/BooleanType.js.map +1 -1
  25. package/dist/types/BscType.d.ts +1 -0
  26. package/dist/types/CustomType.d.ts +1 -0
  27. package/dist/types/CustomType.js +3 -0
  28. package/dist/types/CustomType.js.map +1 -1
  29. package/dist/types/DoubleType.d.ts +1 -0
  30. package/dist/types/DoubleType.js +3 -0
  31. package/dist/types/DoubleType.js.map +1 -1
  32. package/dist/types/DynamicType.d.ts +1 -0
  33. package/dist/types/DynamicType.js +3 -0
  34. package/dist/types/DynamicType.js.map +1 -1
  35. package/dist/types/FloatType.d.ts +1 -0
  36. package/dist/types/FloatType.js +3 -0
  37. package/dist/types/FloatType.js.map +1 -1
  38. package/dist/types/FunctionType.d.ts +1 -0
  39. package/dist/types/FunctionType.js +10 -0
  40. package/dist/types/FunctionType.js.map +1 -1
  41. package/dist/types/IntegerType.d.ts +1 -0
  42. package/dist/types/IntegerType.js +3 -0
  43. package/dist/types/IntegerType.js.map +1 -1
  44. package/dist/types/InterfaceType.d.ts +1 -0
  45. package/dist/types/InterfaceType.js +9 -0
  46. package/dist/types/InterfaceType.js.map +1 -1
  47. package/dist/types/InvalidType.d.ts +1 -0
  48. package/dist/types/InvalidType.js +3 -0
  49. package/dist/types/InvalidType.js.map +1 -1
  50. package/dist/types/LongIntegerType.d.ts +1 -0
  51. package/dist/types/LongIntegerType.js +3 -0
  52. package/dist/types/LongIntegerType.js.map +1 -1
  53. package/dist/types/ObjectType.d.ts +1 -0
  54. package/dist/types/ObjectType.js +3 -0
  55. package/dist/types/ObjectType.js.map +1 -1
  56. package/dist/types/StringType.d.ts +1 -0
  57. package/dist/types/StringType.js +3 -0
  58. package/dist/types/StringType.js.map +1 -1
  59. package/dist/types/UninitializedType.d.ts +1 -0
  60. package/dist/types/UninitializedType.js +3 -0
  61. package/dist/types/UninitializedType.js.map +1 -1
  62. package/dist/types/VoidType.d.ts +1 -0
  63. package/dist/types/VoidType.js +3 -0
  64. package/dist/types/VoidType.js.map +1 -1
  65. package/dist/util.d.ts +8 -0
  66. package/dist/util.js +33 -0
  67. package/dist/util.js.map +1 -1
  68. package/package.json +2 -2
@@ -37,6 +37,10 @@ class BinaryExpression extends AstNode_1.Expression {
37
37
  (0, visitors_2.walk)(this, 'right', visitor, options);
38
38
  }
39
39
  }
40
+ clone() {
41
+ var _a, _b;
42
+ return this.finalizeClone(new BinaryExpression((_a = this.left) === null || _a === void 0 ? void 0 : _a.clone(), util_1.default.cloneToken(this.operator), (_b = this.right) === null || _b === void 0 ? void 0 : _b.clone()), ['left', 'right']);
43
+ }
40
44
  }
41
45
  exports.BinaryExpression = BinaryExpression;
42
46
  class CallExpression extends AstNode_1.Expression {
@@ -50,7 +54,7 @@ class CallExpression extends AstNode_1.Expression {
50
54
  this.openingParen = openingParen;
51
55
  this.closingParen = closingParen;
52
56
  this.args = args;
53
- this.range = util_1.default.createBoundingRange(this.callee, this.openingParen, ...args, this.closingParen);
57
+ this.range = util_1.default.createBoundingRange(this.callee, this.openingParen, ...args !== null && args !== void 0 ? args : [], this.closingParen);
54
58
  }
55
59
  /**
56
60
  * Get the name of the wrapping namespace (if it exists)
@@ -89,6 +93,10 @@ class CallExpression extends AstNode_1.Expression {
89
93
  (0, visitors_2.walkArray)(this.args, visitor, options, this);
90
94
  }
91
95
  }
96
+ clone() {
97
+ var _a, _b;
98
+ return this.finalizeClone(new CallExpression((_a = this.callee) === null || _a === void 0 ? void 0 : _a.clone(), util_1.default.cloneToken(this.openingParen), util_1.default.cloneToken(this.closingParen), (_b = this.args) === null || _b === void 0 ? void 0 : _b.map(e => e === null || e === void 0 ? void 0 : e.clone())), ['callee', 'args']);
99
+ }
92
100
  }
93
101
  exports.CallExpression = CallExpression;
94
102
  /**
@@ -165,7 +173,8 @@ class FunctionExpression extends AstNode_1.Expression {
165
173
  * and ending with the last n' in 'end function' or 'b' in 'end sub'
166
174
  */
167
175
  get range() {
168
- return util_1.default.createBoundingRange(this.functionType, this.leftParen, ...this.parameters, this.rightParen, this.asToken, this.returnTypeToken, this.end);
176
+ var _a;
177
+ return util_1.default.createBoundingRange(this.functionType, this.leftParen, ...(_a = this.parameters) !== null && _a !== void 0 ? _a : [], this.rightParen, this.asToken, this.returnTypeToken, this.end);
169
178
  }
170
179
  transpile(state, name, includeBody = true) {
171
180
  let results = [];
@@ -257,6 +266,17 @@ class FunctionExpression extends AstNode_1.Expression {
257
266
  }
258
267
  return functionType;
259
268
  }
269
+ clone() {
270
+ var _a, _b, _c, _d;
271
+ const clone = this.finalizeClone(new FunctionExpression((_a = this.parameters) === null || _a === void 0 ? void 0 : _a.map(e => e === null || e === void 0 ? void 0 : e.clone()), (_b = this.body) === null || _b === void 0 ? void 0 : _b.clone(), util_1.default.cloneToken(this.functionType), util_1.default.cloneToken(this.end), util_1.default.cloneToken(this.leftParen), util_1.default.cloneToken(this.rightParen), util_1.default.cloneToken(this.asToken), util_1.default.cloneToken(this.returnTypeToken)), ['body']);
272
+ //rebuild the .callExpressions list in the clone
273
+ (_d = (_c = clone.body) === null || _c === void 0 ? void 0 : _c.walk) === null || _d === void 0 ? void 0 : _d.call(_c, (node) => {
274
+ if ((0, reflection_1.isCallExpression)(node) && !(0, reflection_1.isNewExpression)(node.parent)) {
275
+ clone.callExpressions.push(node);
276
+ }
277
+ }, { walkMode: visitors_1.WalkMode.visitExpressions });
278
+ return clone;
279
+ }
260
280
  }
261
281
  exports.FunctionExpression = FunctionExpression;
262
282
  class FunctionParameterExpression extends AstNode_1.Expression {
@@ -316,6 +336,10 @@ class FunctionParameterExpression extends AstNode_1.Expression {
316
336
  (0, visitors_2.walk)(this, 'defaultValue', visitor, options);
317
337
  }
318
338
  }
339
+ clone() {
340
+ var _a;
341
+ return this.finalizeClone(new FunctionParameterExpression(util_1.default.cloneToken(this.name), util_1.default.cloneToken(this.typeToken), (_a = this.defaultValue) === null || _a === void 0 ? void 0 : _a.clone(), util_1.default.cloneToken(this.asToken)), ['defaultValue']);
342
+ }
319
343
  }
320
344
  exports.FunctionParameterExpression = FunctionParameterExpression;
321
345
  class NamespacedVariableNameExpression extends AstNode_1.Expression {
@@ -324,7 +348,7 @@ class NamespacedVariableNameExpression extends AstNode_1.Expression {
324
348
  expression) {
325
349
  super();
326
350
  this.expression = expression;
327
- this.range = expression.range;
351
+ this.range = expression === null || expression === void 0 ? void 0 : expression.range;
328
352
  }
329
353
  transpile(state) {
330
354
  return [
@@ -361,6 +385,10 @@ class NamespacedVariableNameExpression extends AstNode_1.Expression {
361
385
  (0, visitors_2.walk)(this, 'expression', visitor, options);
362
386
  }
363
387
  }
388
+ clone() {
389
+ var _a;
390
+ return this.finalizeClone(new NamespacedVariableNameExpression((_a = this.expression) === null || _a === void 0 ? void 0 : _a.clone()));
391
+ }
364
392
  }
365
393
  exports.NamespacedVariableNameExpression = NamespacedVariableNameExpression;
366
394
  class DottedGetExpression extends AstNode_1.Expression {
@@ -393,6 +421,10 @@ class DottedGetExpression extends AstNode_1.Expression {
393
421
  (0, visitors_2.walk)(this, 'obj', visitor, options);
394
422
  }
395
423
  }
424
+ clone() {
425
+ var _a;
426
+ return this.finalizeClone(new DottedGetExpression((_a = this.obj) === null || _a === void 0 ? void 0 : _a.clone(), util_1.default.cloneToken(this.name), util_1.default.cloneToken(this.dot)), ['obj']);
427
+ }
396
428
  }
397
429
  exports.DottedGetExpression = DottedGetExpression;
398
430
  class XmlAttributeGetExpression extends AstNode_1.Expression {
@@ -419,6 +451,10 @@ class XmlAttributeGetExpression extends AstNode_1.Expression {
419
451
  (0, visitors_2.walk)(this, 'obj', visitor, options);
420
452
  }
421
453
  }
454
+ clone() {
455
+ var _a;
456
+ return this.finalizeClone(new XmlAttributeGetExpression((_a = this.obj) === null || _a === void 0 ? void 0 : _a.clone(), util_1.default.cloneToken(this.name), util_1.default.cloneToken(this.at)), ['obj']);
457
+ }
422
458
  }
423
459
  exports.XmlAttributeGetExpression = XmlAttributeGetExpression;
424
460
  class IndexedGetExpression extends AstNode_1.Expression {
@@ -465,6 +501,10 @@ class IndexedGetExpression extends AstNode_1.Expression {
465
501
  (0, visitors_2.walkArray)(this.additionalIndexes, visitor, options, this);
466
502
  }
467
503
  }
504
+ clone() {
505
+ var _a, _b, _c;
506
+ return this.finalizeClone(new IndexedGetExpression((_a = this.obj) === null || _a === void 0 ? void 0 : _a.clone(), (_b = this.index) === null || _b === void 0 ? void 0 : _b.clone(), util_1.default.cloneToken(this.openingSquare), util_1.default.cloneToken(this.closingSquare), util_1.default.cloneToken(this.questionDotToken), (_c = this.additionalIndexes) === null || _c === void 0 ? void 0 : _c.map(e => e === null || e === void 0 ? void 0 : e.clone())), ['obj', 'index', 'additionalIndexes']);
507
+ }
468
508
  }
469
509
  exports.IndexedGetExpression = IndexedGetExpression;
470
510
  class GroupingExpression extends AstNode_1.Expression {
@@ -489,6 +529,13 @@ class GroupingExpression extends AstNode_1.Expression {
489
529
  (0, visitors_2.walk)(this, 'expression', visitor, options);
490
530
  }
491
531
  }
532
+ clone() {
533
+ var _a;
534
+ return this.finalizeClone(new GroupingExpression({
535
+ left: util_1.default.cloneToken(this.tokens.left),
536
+ right: util_1.default.cloneToken(this.tokens.right)
537
+ }, (_a = this.expression) === null || _a === void 0 ? void 0 : _a.clone()), ['expression']);
538
+ }
492
539
  }
493
540
  exports.GroupingExpression = GroupingExpression;
494
541
  class LiteralExpression extends AstNode_1.Expression {
@@ -523,6 +570,9 @@ class LiteralExpression extends AstNode_1.Expression {
523
570
  walk(visitor, options) {
524
571
  //nothing to walk
525
572
  }
573
+ clone() {
574
+ return this.finalizeClone(new LiteralExpression(util_1.default.cloneToken(this.token)));
575
+ }
526
576
  }
527
577
  exports.LiteralExpression = LiteralExpression;
528
578
  /**
@@ -543,16 +593,20 @@ class EscapedCharCodeLiteralExpression extends AstNode_1.Expression {
543
593
  walk(visitor, options) {
544
594
  //nothing to walk
545
595
  }
596
+ clone() {
597
+ return this.finalizeClone(new EscapedCharCodeLiteralExpression(util_1.default.cloneToken(this.token)));
598
+ }
546
599
  }
547
600
  exports.EscapedCharCodeLiteralExpression = EscapedCharCodeLiteralExpression;
548
601
  class ArrayLiteralExpression extends AstNode_1.Expression {
549
602
  constructor(elements, open, close, hasSpread = false) {
603
+ var _a;
550
604
  super();
551
605
  this.elements = elements;
552
606
  this.open = open;
553
607
  this.close = close;
554
608
  this.hasSpread = hasSpread;
555
- this.range = util_1.default.createBoundingRange(this.open, ...this.elements, this.close);
609
+ this.range = util_1.default.createBoundingRange(this.open, ...(_a = this.elements) !== null && _a !== void 0 ? _a : [], this.close);
556
610
  }
557
611
  transpile(state) {
558
612
  let result = [];
@@ -595,6 +649,10 @@ class ArrayLiteralExpression extends AstNode_1.Expression {
595
649
  (0, visitors_2.walkArray)(this.elements, visitor, options, this);
596
650
  }
597
651
  }
652
+ clone() {
653
+ var _a;
654
+ return this.finalizeClone(new ArrayLiteralExpression((_a = this.elements) === null || _a === void 0 ? void 0 : _a.map(e => e === null || e === void 0 ? void 0 : e.clone()), util_1.default.cloneToken(this.open), util_1.default.cloneToken(this.close), this.hasSpread), ['elements']);
655
+ }
598
656
  }
599
657
  exports.ArrayLiteralExpression = ArrayLiteralExpression;
600
658
  class AAMemberExpression extends AstNode_1.Expression {
@@ -614,15 +672,20 @@ class AAMemberExpression extends AstNode_1.Expression {
614
672
  walk(visitor, options) {
615
673
  (0, visitors_2.walk)(this, 'value', visitor, options);
616
674
  }
675
+ clone() {
676
+ var _a;
677
+ return this.finalizeClone(new AAMemberExpression(util_1.default.cloneToken(this.keyToken), util_1.default.cloneToken(this.colonToken), (_a = this.value) === null || _a === void 0 ? void 0 : _a.clone()), ['value']);
678
+ }
617
679
  }
618
680
  exports.AAMemberExpression = AAMemberExpression;
619
681
  class AALiteralExpression extends AstNode_1.Expression {
620
682
  constructor(elements, open, close) {
683
+ var _a;
621
684
  super();
622
685
  this.elements = elements;
623
686
  this.open = open;
624
687
  this.close = close;
625
- this.range = util_1.default.createBoundingRange(this.open, ...this.elements, this.close);
688
+ this.range = util_1.default.createBoundingRange(this.open, ...(_a = this.elements) !== null && _a !== void 0 ? _a : [], this.close);
626
689
  }
627
690
  transpile(state) {
628
691
  var _a, _b;
@@ -684,6 +747,10 @@ class AALiteralExpression extends AstNode_1.Expression {
684
747
  (0, visitors_2.walkArray)(this.elements, visitor, options, this);
685
748
  }
686
749
  }
750
+ clone() {
751
+ var _a;
752
+ return this.finalizeClone(new AALiteralExpression((_a = this.elements) === null || _a === void 0 ? void 0 : _a.map(e => e === null || e === void 0 ? void 0 : e.clone()), util_1.default.cloneToken(this.open), util_1.default.cloneToken(this.close)), ['elements']);
753
+ }
687
754
  }
688
755
  exports.AALiteralExpression = AALiteralExpression;
689
756
  class UnaryExpression extends AstNode_1.Expression {
@@ -712,6 +779,10 @@ class UnaryExpression extends AstNode_1.Expression {
712
779
  (0, visitors_2.walk)(this, 'right', visitor, options);
713
780
  }
714
781
  }
782
+ clone() {
783
+ var _a;
784
+ return this.finalizeClone(new UnaryExpression(util_1.default.cloneToken(this.operator), (_a = this.right) === null || _a === void 0 ? void 0 : _a.clone()), ['right']);
785
+ }
715
786
  }
716
787
  exports.UnaryExpression = UnaryExpression;
717
788
  class VariableExpression extends AstNode_1.Expression {
@@ -744,6 +815,9 @@ class VariableExpression extends AstNode_1.Expression {
744
815
  walk(visitor, options) {
745
816
  //nothing to walk
746
817
  }
818
+ clone() {
819
+ return this.finalizeClone(new VariableExpression(util_1.default.cloneToken(this.name)));
820
+ }
747
821
  }
748
822
  exports.VariableExpression = VariableExpression;
749
823
  class SourceLiteralExpression extends AstNode_1.Expression {
@@ -824,6 +898,9 @@ class SourceLiteralExpression extends AstNode_1.Expression {
824
898
  walk(visitor, options) {
825
899
  //nothing to walk
826
900
  }
901
+ clone() {
902
+ return this.finalizeClone(new SourceLiteralExpression(util_1.default.cloneToken(this.token)));
903
+ }
827
904
  }
828
905
  exports.SourceLiteralExpression = SourceLiteralExpression;
829
906
  /**
@@ -859,6 +936,10 @@ class NewExpression extends AstNode_1.Expression {
859
936
  (0, visitors_2.walk)(this, 'call', visitor, options);
860
937
  }
861
938
  }
939
+ clone() {
940
+ var _a;
941
+ return this.finalizeClone(new NewExpression(util_1.default.cloneToken(this.newKeyword), (_a = this.call) === null || _a === void 0 ? void 0 : _a.clone()), ['call']);
942
+ }
862
943
  }
863
944
  exports.NewExpression = NewExpression;
864
945
  class CallfuncExpression extends AstNode_1.Expression {
@@ -870,7 +951,7 @@ class CallfuncExpression extends AstNode_1.Expression {
870
951
  this.openingParen = openingParen;
871
952
  this.args = args;
872
953
  this.closingParen = closingParen;
873
- this.range = util_1.default.createBoundingRange(callee, operator, methodName, openingParen, ...args, closingParen);
954
+ this.range = util_1.default.createBoundingRange(callee, operator, methodName, openingParen, ...args !== null && args !== void 0 ? args : [], closingParen);
874
955
  }
875
956
  /**
876
957
  * Get the name of the wrapping namespace (if it exists)
@@ -909,6 +990,10 @@ class CallfuncExpression extends AstNode_1.Expression {
909
990
  (0, visitors_2.walkArray)(this.args, visitor, options, this);
910
991
  }
911
992
  }
993
+ clone() {
994
+ var _a, _b;
995
+ return this.finalizeClone(new CallfuncExpression((_a = this.callee) === null || _a === void 0 ? void 0 : _a.clone(), util_1.default.cloneToken(this.operator), util_1.default.cloneToken(this.methodName), util_1.default.cloneToken(this.openingParen), (_b = this.args) === null || _b === void 0 ? void 0 : _b.map(e => e === null || e === void 0 ? void 0 : e.clone()), util_1.default.cloneToken(this.closingParen)), ['callee', 'args']);
996
+ }
912
997
  }
913
998
  exports.CallfuncExpression = CallfuncExpression;
914
999
  /**
@@ -919,7 +1004,7 @@ class TemplateStringQuasiExpression extends AstNode_1.Expression {
919
1004
  constructor(expressions) {
920
1005
  super();
921
1006
  this.expressions = expressions;
922
- this.range = util_1.default.createBoundingRange(...expressions);
1007
+ this.range = util_1.default.createBoundingRange(...expressions !== null && expressions !== void 0 ? expressions : []);
923
1008
  }
924
1009
  transpile(state, skipEmptyStrings = true) {
925
1010
  let result = [];
@@ -940,6 +1025,10 @@ class TemplateStringQuasiExpression extends AstNode_1.Expression {
940
1025
  (0, visitors_2.walkArray)(this.expressions, visitor, options, this);
941
1026
  }
942
1027
  }
1028
+ clone() {
1029
+ var _a;
1030
+ return this.finalizeClone(new TemplateStringQuasiExpression((_a = this.expressions) === null || _a === void 0 ? void 0 : _a.map(e => e === null || e === void 0 ? void 0 : e.clone())), ['expressions']);
1031
+ }
943
1032
  }
944
1033
  exports.TemplateStringQuasiExpression = TemplateStringQuasiExpression;
945
1034
  class TemplateStringExpression extends AstNode_1.Expression {
@@ -949,7 +1038,7 @@ class TemplateStringExpression extends AstNode_1.Expression {
949
1038
  this.quasis = quasis;
950
1039
  this.expressions = expressions;
951
1040
  this.closingBacktick = closingBacktick;
952
- this.range = util_1.default.createBoundingRange(openingBacktick, quasis[0], quasis[quasis.length - 1], closingBacktick);
1041
+ this.range = util_1.default.createBoundingRange(openingBacktick, quasis === null || quasis === void 0 ? void 0 : quasis[0], quasis === null || quasis === void 0 ? void 0 : quasis[(quasis === null || quasis === void 0 ? void 0 : quasis.length) - 1], closingBacktick);
953
1042
  }
954
1043
  transpile(state) {
955
1044
  if (this.quasis.length === 1 && this.expressions.length === 0) {
@@ -988,9 +1077,10 @@ class TemplateStringExpression extends AstNode_1.Expression {
988
1077
  return result;
989
1078
  }
990
1079
  walk(visitor, options) {
1080
+ var _a;
991
1081
  if (options.walkMode & visitors_2.InternalWalkMode.walkExpressions) {
992
1082
  //walk the quasis and expressions in left-to-right order
993
- for (let i = 0; i < this.quasis.length; i++) {
1083
+ for (let i = 0; i < ((_a = this.quasis) === null || _a === void 0 ? void 0 : _a.length); i++) {
994
1084
  (0, visitors_2.walk)(this.quasis, i, visitor, options, this);
995
1085
  //this skips the final loop iteration since we'll always have one more quasi than expression
996
1086
  if (this.expressions[i]) {
@@ -999,6 +1089,10 @@ class TemplateStringExpression extends AstNode_1.Expression {
999
1089
  }
1000
1090
  }
1001
1091
  }
1092
+ clone() {
1093
+ var _a, _b;
1094
+ return this.finalizeClone(new TemplateStringExpression(util_1.default.cloneToken(this.openingBacktick), (_a = this.quasis) === null || _a === void 0 ? void 0 : _a.map(e => e === null || e === void 0 ? void 0 : e.clone()), (_b = this.expressions) === null || _b === void 0 ? void 0 : _b.map(e => e === null || e === void 0 ? void 0 : e.clone()), util_1.default.cloneToken(this.closingBacktick)), ['quasis', 'expressions']);
1095
+ }
1002
1096
  }
1003
1097
  exports.TemplateStringExpression = TemplateStringExpression;
1004
1098
  class TaggedTemplateStringExpression extends AstNode_1.Expression {
@@ -1009,7 +1103,7 @@ class TaggedTemplateStringExpression extends AstNode_1.Expression {
1009
1103
  this.quasis = quasis;
1010
1104
  this.expressions = expressions;
1011
1105
  this.closingBacktick = closingBacktick;
1012
- this.range = util_1.default.createBoundingRange(tagName, openingBacktick, quasis[0], quasis[quasis.length - 1], closingBacktick);
1106
+ this.range = util_1.default.createBoundingRange(tagName, openingBacktick, quasis === null || quasis === void 0 ? void 0 : quasis[0], quasis === null || quasis === void 0 ? void 0 : quasis[(quasis === null || quasis === void 0 ? void 0 : quasis.length) - 1], closingBacktick);
1013
1107
  }
1014
1108
  transpile(state) {
1015
1109
  let result = [];
@@ -1036,9 +1130,10 @@ class TaggedTemplateStringExpression extends AstNode_1.Expression {
1036
1130
  return result;
1037
1131
  }
1038
1132
  walk(visitor, options) {
1133
+ var _a;
1039
1134
  if (options.walkMode & visitors_2.InternalWalkMode.walkExpressions) {
1040
1135
  //walk the quasis and expressions in left-to-right order
1041
- for (let i = 0; i < this.quasis.length; i++) {
1136
+ for (let i = 0; i < ((_a = this.quasis) === null || _a === void 0 ? void 0 : _a.length); i++) {
1042
1137
  (0, visitors_2.walk)(this.quasis, i, visitor, options, this);
1043
1138
  //this skips the final loop iteration since we'll always have one more quasi than expression
1044
1139
  if (this.expressions[i]) {
@@ -1047,6 +1142,10 @@ class TaggedTemplateStringExpression extends AstNode_1.Expression {
1047
1142
  }
1048
1143
  }
1049
1144
  }
1145
+ clone() {
1146
+ var _a, _b;
1147
+ return this.finalizeClone(new TaggedTemplateStringExpression(util_1.default.cloneToken(this.tagName), util_1.default.cloneToken(this.openingBacktick), (_a = this.quasis) === null || _a === void 0 ? void 0 : _a.map(e => e === null || e === void 0 ? void 0 : e.clone()), (_b = this.expressions) === null || _b === void 0 ? void 0 : _b.map(e => e === null || e === void 0 ? void 0 : e.clone()), util_1.default.cloneToken(this.closingBacktick)), ['quasis', 'expressions']);
1148
+ }
1050
1149
  }
1051
1150
  exports.TaggedTemplateStringExpression = TaggedTemplateStringExpression;
1052
1151
  class AnnotationExpression extends AstNode_1.Expression {
@@ -1083,6 +1182,10 @@ class AnnotationExpression extends AstNode_1.Expression {
1083
1182
  ...((_b = (_a = this.call) === null || _a === void 0 ? void 0 : _a.transpile(state)) !== null && _b !== void 0 ? _b : [])
1084
1183
  ];
1085
1184
  }
1185
+ clone() {
1186
+ const clone = this.finalizeClone(new AnnotationExpression(util_1.default.cloneToken(this.atToken), util_1.default.cloneToken(this.nameToken)));
1187
+ return clone;
1188
+ }
1086
1189
  }
1087
1190
  exports.AnnotationExpression = AnnotationExpression;
1088
1191
  class TernaryExpression extends AstNode_1.Expression {
@@ -1128,6 +1231,10 @@ class TernaryExpression extends AstNode_1.Expression {
1128
1231
  (0, visitors_2.walk)(this, 'alternate', visitor, options);
1129
1232
  }
1130
1233
  }
1234
+ clone() {
1235
+ var _a, _b, _c;
1236
+ return this.finalizeClone(new TernaryExpression((_a = this.test) === null || _a === void 0 ? void 0 : _a.clone(), util_1.default.cloneToken(this.questionMarkToken), (_b = this.consequent) === null || _b === void 0 ? void 0 : _b.clone(), util_1.default.cloneToken(this.colonToken), (_c = this.alternate) === null || _c === void 0 ? void 0 : _c.clone()), ['test', 'consequent', 'alternate']);
1237
+ }
1131
1238
  }
1132
1239
  exports.TernaryExpression = TernaryExpression;
1133
1240
  class NullCoalescingExpression extends AstNode_1.Expression {
@@ -1170,6 +1277,10 @@ class NullCoalescingExpression extends AstNode_1.Expression {
1170
1277
  (0, visitors_2.walk)(this, 'alternate', visitor, options);
1171
1278
  }
1172
1279
  }
1280
+ clone() {
1281
+ var _a, _b;
1282
+ return this.finalizeClone(new NullCoalescingExpression((_a = this.consequent) === null || _a === void 0 ? void 0 : _a.clone(), util_1.default.cloneToken(this.questionQuestionToken), (_b = this.alternate) === null || _b === void 0 ? void 0 : _b.clone()), ['consequent', 'alternate']);
1283
+ }
1173
1284
  }
1174
1285
  exports.NullCoalescingExpression = NullCoalescingExpression;
1175
1286
  class RegexLiteralExpression extends AstNode_1.Expression {
@@ -1208,6 +1319,11 @@ class RegexLiteralExpression extends AstNode_1.Expression {
1208
1319
  walk(visitor, options) {
1209
1320
  //nothing to walk
1210
1321
  }
1322
+ clone() {
1323
+ return this.finalizeClone(new RegexLiteralExpression({
1324
+ regexLiteral: util_1.default.cloneToken(this.tokens.regexLiteral)
1325
+ }));
1326
+ }
1211
1327
  }
1212
1328
  exports.RegexLiteralExpression = RegexLiteralExpression;
1213
1329
  class TypeCastExpression extends AstNode_1.Expression {
@@ -1226,6 +1342,10 @@ class TypeCastExpression extends AstNode_1.Expression {
1226
1342
  (0, visitors_2.walk)(this, 'obj', visitor, options);
1227
1343
  }
1228
1344
  }
1345
+ clone() {
1346
+ var _a;
1347
+ return this.finalizeClone(new TypeCastExpression((_a = this.obj) === null || _a === void 0 ? void 0 : _a.clone(), util_1.default.cloneToken(this.asToken), util_1.default.cloneToken(this.typeToken)), ['obj']);
1348
+ }
1229
1349
  }
1230
1350
  exports.TypeCastExpression = TypeCastExpression;
1231
1351
  function expressionToValue(expr, strict) {
@@ -1 +1 @@
1
- {"version":3,"file":"Expression.js","sourceRoot":"","sources":["../../src/parser/Expression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Expression.js","sourceRoot":"","sources":["../../src/parser/Expression.ts"],"names":[],"mappings":"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"}