brighterscript 1.0.0-alpha.15 → 1.0.0-alpha.16

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 (47) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/DependencyGraph.js +5 -4
  3. package/dist/DependencyGraph.js.map +1 -1
  4. package/dist/Program.js +2 -0
  5. package/dist/Program.js.map +1 -1
  6. package/dist/Scope.js +4 -1
  7. package/dist/Scope.js.map +1 -1
  8. package/dist/astUtils/creators.d.ts +8 -4
  9. package/dist/astUtils/creators.js +87 -6
  10. package/dist/astUtils/creators.js.map +1 -1
  11. package/dist/astUtils/reflection.d.ts +2 -0
  12. package/dist/astUtils/reflection.js +6 -2
  13. package/dist/astUtils/reflection.js.map +1 -1
  14. package/dist/astUtils/reflection.spec.js +5 -4
  15. package/dist/astUtils/reflection.spec.js.map +1 -1
  16. package/dist/diagnosticUtils.js +3 -3
  17. package/dist/diagnosticUtils.js.map +1 -1
  18. package/dist/files/BrsFile.js +10 -4
  19. package/dist/files/BrsFile.js.map +1 -1
  20. package/dist/files/XmlFile.js +3 -3
  21. package/dist/files/XmlFile.js.map +1 -1
  22. package/dist/parser/Expression.d.ts +17 -15
  23. package/dist/parser/Expression.js +47 -38
  24. package/dist/parser/Expression.js.map +1 -1
  25. package/dist/parser/Parser.js +25 -17
  26. package/dist/parser/Parser.js.map +1 -1
  27. package/dist/parser/Statement.d.ts +28 -20
  28. package/dist/parser/Statement.js +105 -93
  29. package/dist/parser/Statement.js.map +1 -1
  30. package/dist/parser/tests/statement/For.spec.d.ts +1 -0
  31. package/dist/parser/tests/statement/For.spec.js +46 -0
  32. package/dist/parser/tests/statement/For.spec.js.map +1 -0
  33. package/dist/parser/tests/statement/ForEach.spec.d.ts +1 -0
  34. package/dist/parser/tests/statement/ForEach.spec.js +37 -0
  35. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -0
  36. package/dist/types/FunctionType.d.ts +2 -1
  37. package/dist/types/FunctionType.js +11 -8
  38. package/dist/types/FunctionType.js.map +1 -1
  39. package/dist/types/FunctionType.spec.js +6 -0
  40. package/dist/types/FunctionType.spec.js.map +1 -1
  41. package/dist/types/UniversalFunctionType.d.ts +9 -0
  42. package/dist/types/UniversalFunctionType.js +25 -0
  43. package/dist/types/UniversalFunctionType.js.map +1 -0
  44. package/dist/util.d.ts +2 -2
  45. package/dist/util.js +15 -11
  46. package/dist/util.js.map +1 -1
  47. package/package.json +2 -3
@@ -1 +1 @@
1
- {"version":3,"file":"XmlFile.js","sourceRoot":"","sources":["../../src/files/XmlFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XmlFile.js","sourceRoot":"","sources":["../../src/files/XmlFile.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,12 @@ export declare class FunctionExpression extends Expression implements TypedefPro
71
71
  * If this function is enclosed within another function, this will reference that parent function
72
72
  */
73
73
  parentFunction?: FunctionExpression, namespaceName?: NamespacedVariableNameExpression, parentSymbolTable?: SymbolTable);
74
+ get range(): Range;
75
+ /**
76
+ * The range of the function
77
+ */
78
+ cacheRange(): Range;
79
+ private _range;
74
80
  readonly symbolTable: SymbolTable;
75
81
  labelStatements: LabelStatement[];
76
82
  /**
@@ -90,11 +96,6 @@ export declare class FunctionExpression extends Expression implements TypedefPro
90
96
  * A list of all child functions declared directly within this function
91
97
  */
92
98
  childFunctionExpressions: FunctionExpression[];
93
- /**
94
- * The range of the function, starting at the 'f' in function or 's' in sub (or the open paren if the keyword is missing),
95
- * and ending with the last n' in 'end function' or 'b' in 'end sub'
96
- */
97
- get range(): Range;
98
99
  transpile(state: BrsTranspileState, name?: Identifier, includeBody?: boolean): any[];
99
100
  getTypedef(state: BrsTranspileState, name?: Identifier): any[];
100
101
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -109,7 +110,7 @@ export declare class FunctionParameterExpression extends Expression {
109
110
  typeToken?: Token;
110
111
  readonly namespaceName?: NamespacedVariableNameExpression;
111
112
  constructor(name: Identifier, type: BscType, equalsToken?: Token, defaultValue?: Expression, asToken?: Token, typeToken?: Token, namespaceName?: NamespacedVariableNameExpression);
112
- get range(): Range;
113
+ readonly range: Range;
113
114
  transpile(state: BrsTranspileState): any[];
114
115
  walk(visitor: WalkVisitor, options: WalkOptions): void;
115
116
  get isOptional(): boolean;
@@ -117,7 +118,7 @@ export declare class FunctionParameterExpression extends Expression {
117
118
  export declare class NamespacedVariableNameExpression extends Expression {
118
119
  readonly expression: DottedGetExpression | VariableExpression;
119
120
  constructor(expression: DottedGetExpression | VariableExpression);
120
- range: Range;
121
+ readonly range: Range;
121
122
  transpile(state: BrsTranspileState): import("source-map").SourceNode[];
122
123
  getNameParts(): string[];
123
124
  getName(parseMode?: ParseMode): string;
@@ -168,7 +169,7 @@ export declare class GroupingExpression extends Expression {
168
169
  export declare class LiteralExpression extends Expression {
169
170
  token: Token;
170
171
  constructor(token: Token);
171
- get range(): Range;
172
+ readonly range: Range;
172
173
  /**
173
174
  * The (data) type of this expression
174
175
  */
@@ -210,7 +211,7 @@ export declare class AAMemberExpression extends Expression {
210
211
  constructor(keyToken: Token, colonToken: Token,
211
212
  /** The expression evaluated to determine the member's initial value. */
212
213
  value: Expression, type: BscType);
213
- range: Range;
214
+ readonly range: Range;
214
215
  commaToken?: Token;
215
216
  transpile(state: BrsTranspileState): any[];
216
217
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -221,9 +222,9 @@ export declare class AALiteralExpression extends Expression implements SymbolCon
221
222
  readonly close: Token;
222
223
  readonly functionExpression: FunctionExpression;
223
224
  constructor(elements: Array<AAMemberExpression | CommentStatement>, open: Token, close: Token, functionExpression: FunctionExpression);
225
+ readonly range: Range;
224
226
  readonly symbolTable: SymbolTable;
225
227
  readonly memberTable: SymbolTable;
226
- readonly range: Range;
227
228
  buildSymbolTable(): void;
228
229
  transpile(state: BrsTranspileState): any[];
229
230
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -241,7 +242,6 @@ export declare class VariableExpression extends Expression {
241
242
  namespaceName: NamespacedVariableNameExpression;
242
243
  constructor(name: Identifier, namespaceName: NamespacedVariableNameExpression);
243
244
  readonly range: Range;
244
- isCalled: boolean;
245
245
  getName(parseMode: ParseMode): string;
246
246
  transpile(state: BrsTranspileState): any[];
247
247
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -263,12 +263,12 @@ export declare class NewExpression extends Expression {
263
263
  readonly newKeyword: Token;
264
264
  readonly call: CallExpression;
265
265
  constructor(newKeyword: Token, call: CallExpression);
266
+ readonly range: Range;
266
267
  /**
267
268
  * The name of the class to initialize (with optional namespace prefixed)
268
269
  */
269
270
  get className(): NamespacedVariableNameExpression;
270
271
  get namespaceName(): NamespacedVariableNameExpression;
271
- readonly range: Range;
272
272
  transpile(state: BrsTranspileState): any[];
273
273
  walk(visitor: WalkVisitor, options: WalkOptions): void;
274
274
  }
@@ -320,8 +320,10 @@ export declare class AnnotationExpression extends Expression {
320
320
  readonly atToken: Token;
321
321
  readonly nameToken: Token;
322
322
  constructor(atToken: Token, nameToken: Token);
323
+ get range(): Range;
324
+ cacheRange(): Range;
325
+ private _range;
323
326
  name: string;
324
- range: Range;
325
327
  call: CallExpression;
326
328
  /**
327
329
  * Convert annotation arguments to JavaScript types
@@ -339,7 +341,7 @@ export declare class TernaryExpression extends Expression {
339
341
  readonly colonToken?: Token;
340
342
  readonly alternate?: Expression;
341
343
  constructor(test: Expression, questionMarkToken: Token, consequent?: Expression, colonToken?: Token, alternate?: Expression);
342
- range: Range;
344
+ readonly range: Range;
343
345
  transpile(state: BrsTranspileState): any[];
344
346
  walk(visitor: WalkVisitor, options: WalkOptions): void;
345
347
  }
@@ -359,7 +361,7 @@ export declare class RegexLiteralExpression extends Expression {
359
361
  constructor(tokens: {
360
362
  regexLiteral: Token;
361
363
  });
362
- get range(): Range;
364
+ readonly range: Range;
363
365
  transpile(state: BrsTranspileState): TranspileResult;
364
366
  walk(visitor: WalkVisitor, options: WalkOptions): void;
365
367
  }
@@ -28,7 +28,7 @@ class BinaryExpression extends Expression {
28
28
  this.left = left;
29
29
  this.operator = operator;
30
30
  this.right = right;
31
- this.range = util_1.default.createRangeFromPositions(this.left.range.start, this.right.range.end);
31
+ this.range = util_1.default.createBoundingRange(this.left, this.right);
32
32
  }
33
33
  transpile(state) {
34
34
  return [
@@ -59,7 +59,7 @@ class CallExpression extends Expression {
59
59
  this.closingParen = closingParen;
60
60
  this.args = args;
61
61
  this.namespaceName = namespaceName;
62
- this.range = util_1.default.createRangeFromPositions(this.callee.range.start, this.closingParen.range.end);
62
+ this.range = util_1.default.createBoundingRange(this.callee, this.closingParen);
63
63
  }
64
64
  transpile(state, nameOverride) {
65
65
  let result = [];
@@ -135,13 +135,18 @@ class FunctionExpression extends Expression {
135
135
  this.symbolTable.addSymbol(param.name.text, param.name.range, param.type);
136
136
  }
137
137
  }
138
+ get range() {
139
+ return this.cacheRange();
140
+ }
138
141
  /**
139
- * The range of the function, starting at the 'f' in function or 's' in sub (or the open paren if the keyword is missing),
140
- * and ending with the last n' in 'end function' or 'b' in 'end sub'
142
+ * The range of the function
141
143
  */
142
- get range() {
143
- var _a, _b, _c, _d, _e;
144
- return util_1.default.createRangeFromPositions(((_a = this.functionType) !== null && _a !== void 0 ? _a : this.leftParen).range.start, ((_e = (_d = (_c = (_b = this.end) !== null && _b !== void 0 ? _b : this.body) !== null && _c !== void 0 ? _c : this.returnTypeToken) !== null && _d !== void 0 ? _d : this.asToken) !== null && _e !== void 0 ? _e : this.rightParen).range.end);
144
+ cacheRange() {
145
+ var _a;
146
+ if (!this._range) {
147
+ this._range = util_1.default.createBoundingRange(this.functionType, this.leftParen, ...((_a = this.parameters) !== null && _a !== void 0 ? _a : []), this.rightParen, this.asToken, this.returnTypeToken, this.body, this.end);
148
+ }
149
+ return this._range;
145
150
  }
146
151
  transpile(state, name, includeBody = true) {
147
152
  let results = [];
@@ -218,12 +223,7 @@ class FunctionParameterExpression extends Expression {
218
223
  this.asToken = asToken;
219
224
  this.typeToken = typeToken;
220
225
  this.namespaceName = namespaceName;
221
- }
222
- get range() {
223
- return {
224
- start: this.name.range.start,
225
- end: this.typeToken ? this.typeToken.range.end : this.name.range.end
226
- };
226
+ this.range = util_1.default.createBoundingRange(this.name, this.equalsToken, this.defaultValue, this.asToken, this.typeToken);
227
227
  }
228
228
  transpile(state) {
229
229
  let result = [
@@ -304,7 +304,7 @@ class DottedGetExpression extends Expression {
304
304
  this.obj = obj;
305
305
  this.name = name;
306
306
  this.dot = dot;
307
- this.range = util_1.default.createRangeFromPositions(this.obj.range.start, this.name.range.end);
307
+ this.range = util_1.default.createBoundingRange(this.obj, this.dot, this.name);
308
308
  }
309
309
  transpile(state) {
310
310
  //if the callee starts with a namespace name, transpile the name
@@ -332,7 +332,7 @@ class XmlAttributeGetExpression extends Expression {
332
332
  this.obj = obj;
333
333
  this.name = name;
334
334
  this.at = at;
335
- this.range = util_1.default.createRangeFromPositions(this.obj.range.start, this.name.range.end);
335
+ this.range = util_1.default.createBoundingRange(this.obj, this.at, this.name);
336
336
  }
337
337
  transpile(state) {
338
338
  return [
@@ -355,7 +355,7 @@ class IndexedGetExpression extends Expression {
355
355
  this.index = index;
356
356
  this.openingSquare = openingSquare;
357
357
  this.closingSquare = closingSquare;
358
- this.range = util_1.default.createRangeFromPositions(this.obj.range.start, this.closingSquare.range.end);
358
+ this.range = util_1.default.createBoundingRange(this.obj, this.openingSquare, this.index, this.closingSquare);
359
359
  }
360
360
  transpile(state) {
361
361
  return [
@@ -378,7 +378,7 @@ class GroupingExpression extends Expression {
378
378
  super();
379
379
  this.tokens = tokens;
380
380
  this.expression = expression;
381
- this.range = util_1.default.createRangeFromPositions(this.tokens.left.range.start, this.tokens.right.range.end);
381
+ this.range = util_1.default.createBoundingRange(this.tokens.left, this.expression, this.tokens.right);
382
382
  }
383
383
  transpile(state) {
384
384
  return [
@@ -398,11 +398,9 @@ class LiteralExpression extends Expression {
398
398
  constructor(token) {
399
399
  super();
400
400
  this.token = token;
401
+ this.range = this.token.range;
401
402
  this.type = util_1.default.tokenToBscType(token);
402
403
  }
403
- get range() {
404
- return this.token.range;
405
- }
406
404
  transpile(state) {
407
405
  let text;
408
406
  if (this.token.kind === TokenKind_1.TokenKind.TemplateStringQuasi) {
@@ -450,12 +448,13 @@ class EscapedCharCodeLiteralExpression extends Expression {
450
448
  exports.EscapedCharCodeLiteralExpression = EscapedCharCodeLiteralExpression;
451
449
  class ArrayLiteralExpression extends Expression {
452
450
  constructor(elements, open, close, hasSpread = false) {
451
+ var _a;
453
452
  super();
454
453
  this.elements = elements;
455
454
  this.open = open;
456
455
  this.close = close;
457
456
  this.hasSpread = hasSpread;
458
- this.range = util_1.default.createRangeFromPositions(this.open.range.start, this.close.range.end);
457
+ this.range = util_1.default.createBoundingRange(this.open, ...((_a = this.elements) !== null && _a !== void 0 ? _a : []), this.close);
459
458
  }
460
459
  transpile(state) {
461
460
  let result = [];
@@ -518,7 +517,7 @@ class AAMemberExpression extends Expression {
518
517
  this.colonToken = colonToken;
519
518
  this.value = value;
520
519
  this.type = type;
521
- this.range = util_1.default.createRangeFromPositions(keyToken.range.start, this.value.range.end);
520
+ this.range = util_1.default.createBoundingRange(this.keyToken, this.colonToken, this.value);
522
521
  }
523
522
  transpile(state) {
524
523
  //TODO move the logic from AALiteralExpression loop into this function
@@ -531,6 +530,7 @@ class AAMemberExpression extends Expression {
531
530
  exports.AAMemberExpression = AAMemberExpression;
532
531
  class AALiteralExpression extends Expression {
533
532
  constructor(elements, open, close, functionExpression) {
533
+ var _a;
534
534
  super();
535
535
  this.elements = elements;
536
536
  this.open = open;
@@ -538,7 +538,7 @@ class AALiteralExpression extends Expression {
538
538
  this.functionExpression = functionExpression;
539
539
  this.symbolTable = new SymbolTable_1.SymbolTable();
540
540
  this.memberTable = new SymbolTable_1.SymbolTable();
541
- this.range = util_1.default.createRangeFromPositions(this.open.range.start, this.close.range.end);
541
+ this.range = util_1.default.createBoundingRange(this.open, ...((_a = this.elements) !== null && _a !== void 0 ? _a : []), this.close);
542
542
  this.buildSymbolTable();
543
543
  }
544
544
  buildSymbolTable() {
@@ -633,7 +633,7 @@ class UnaryExpression extends Expression {
633
633
  super();
634
634
  this.operator = operator;
635
635
  this.right = right;
636
- this.range = util_1.default.createRangeFromPositions(this.operator.range.start, this.right.range.end);
636
+ this.range = util_1.default.createBoundingRange(this.operator, this.right);
637
637
  }
638
638
  transpile(state) {
639
639
  return [
@@ -750,7 +750,7 @@ class NewExpression extends Expression {
750
750
  super();
751
751
  this.newKeyword = newKeyword;
752
752
  this.call = call;
753
- this.range = util_1.default.createRangeFromPositions(this.newKeyword.range.start, this.call.range.end);
753
+ this.range = util_1.default.createBoundingRange(this.newKeyword, this.call);
754
754
  }
755
755
  /**
756
756
  * The name of the class to initialize (with optional namespace prefixed)
@@ -779,7 +779,7 @@ class NewExpression extends Expression {
779
779
  exports.NewExpression = NewExpression;
780
780
  class CallfuncExpression extends Expression {
781
781
  constructor(callee, operator, methodName, openingParen, args, closingParen) {
782
- var _a, _b, _c;
782
+ var _a;
783
783
  super();
784
784
  this.callee = callee;
785
785
  this.operator = operator;
@@ -787,7 +787,7 @@ class CallfuncExpression extends Expression {
787
787
  this.openingParen = openingParen;
788
788
  this.args = args;
789
789
  this.closingParen = closingParen;
790
- this.range = util_1.default.createRangeFromPositions(callee.range.start, ((_c = (_b = (_a = closingParen !== null && closingParen !== void 0 ? closingParen : args[args.length - 1]) !== null && _a !== void 0 ? _a : openingParen) !== null && _b !== void 0 ? _b : methodName) !== null && _c !== void 0 ? _c : operator).range.end);
790
+ this.range = util_1.default.createBoundingRange(this.callee, this.operator, this.methodName, this.openingParen, ...((_a = this.args) !== null && _a !== void 0 ? _a : []), this.closingParen);
791
791
  }
792
792
  transpile(state) {
793
793
  let result = [];
@@ -828,9 +828,10 @@ exports.CallfuncExpression = CallfuncExpression;
828
828
  */
829
829
  class TemplateStringQuasiExpression extends Expression {
830
830
  constructor(expressions) {
831
+ var _a;
831
832
  super();
832
833
  this.expressions = expressions;
833
- this.range = util_1.default.createRangeFromPositions(this.expressions[0].range.start, this.expressions[this.expressions.length - 1].range.end);
834
+ this.range = util_1.default.createBoundingRange(...((_a = this.expressions) !== null && _a !== void 0 ? _a : []));
834
835
  }
835
836
  transpile(state, skipEmptyStrings = true) {
836
837
  let result = [];
@@ -857,12 +858,14 @@ class TemplateStringQuasiExpression extends Expression {
857
858
  exports.TemplateStringQuasiExpression = TemplateStringQuasiExpression;
858
859
  class TemplateStringExpression extends Expression {
859
860
  constructor(openingBacktick, quasis, expressions, closingBacktick) {
861
+ var _a;
860
862
  super();
861
863
  this.openingBacktick = openingBacktick;
862
864
  this.quasis = quasis;
863
865
  this.expressions = expressions;
864
866
  this.closingBacktick = closingBacktick;
865
- this.range = util_1.default.createRangeFromPositions(quasis[0].range.start, quasis[quasis.length - 1].range.end);
867
+ //the expression always starts and ends with a quasi, so we don't need to consider the expression locations
868
+ this.range = util_1.default.createBoundingRange(this.openingBacktick, ...((_a = this.quasis) !== null && _a !== void 0 ? _a : []), this.closingBacktick);
866
869
  }
867
870
  transpile(state) {
868
871
  if (this.quasis.length === 1 && this.expressions.length === 0) {
@@ -914,13 +917,15 @@ class TemplateStringExpression extends Expression {
914
917
  exports.TemplateStringExpression = TemplateStringExpression;
915
918
  class TaggedTemplateStringExpression extends Expression {
916
919
  constructor(tagName, openingBacktick, quasis, expressions, closingBacktick) {
920
+ var _a;
917
921
  super();
918
922
  this.tagName = tagName;
919
923
  this.openingBacktick = openingBacktick;
920
924
  this.quasis = quasis;
921
925
  this.expressions = expressions;
922
926
  this.closingBacktick = closingBacktick;
923
- this.range = util_1.default.createRangeFromPositions(quasis[0].range.start, quasis[quasis.length - 1].range.end);
927
+ //the expression always starts and ends with a quasi, so we don't need to consider the expression locations
928
+ this.range = util_1.default.createBoundingRange(this.tagName, this.openingBacktick, ...((_a = this.quasis) !== null && _a !== void 0 ? _a : []), this.closingBacktick);
924
929
  }
925
930
  transpile(state) {
926
931
  let result = [];
@@ -966,7 +971,15 @@ class AnnotationExpression extends Expression {
966
971
  this.atToken = atToken;
967
972
  this.nameToken = nameToken;
968
973
  this.name = nameToken.text;
969
- this.range = util_1.default.createRangeFromPositions(atToken.range.start, nameToken.range.end);
974
+ }
975
+ get range() {
976
+ return this.cacheRange();
977
+ }
978
+ cacheRange() {
979
+ if (!this._range) {
980
+ this._range = util_1.default.createBoundingRange(this.atToken, this.nameToken, this.call);
981
+ }
982
+ return this._range;
970
983
  }
971
984
  /**
972
985
  * Convert annotation arguments to JavaScript types
@@ -996,14 +1009,13 @@ class AnnotationExpression extends Expression {
996
1009
  exports.AnnotationExpression = AnnotationExpression;
997
1010
  class TernaryExpression extends Expression {
998
1011
  constructor(test, questionMarkToken, consequent, colonToken, alternate) {
999
- var _a, _b, _c;
1000
1012
  super();
1001
1013
  this.test = test;
1002
1014
  this.questionMarkToken = questionMarkToken;
1003
1015
  this.consequent = consequent;
1004
1016
  this.colonToken = colonToken;
1005
1017
  this.alternate = alternate;
1006
- this.range = util_1.default.createRangeFromPositions(test.range.start, ((_c = (_b = (_a = alternate !== null && alternate !== void 0 ? alternate : colonToken) !== null && _a !== void 0 ? _a : consequent) !== null && _b !== void 0 ? _b : questionMarkToken) !== null && _c !== void 0 ? _c : test).range.end);
1018
+ this.range = util_1.default.createBoundingRange(this.test, this.questionMarkToken, this.consequent, this.colonToken, this.alternate);
1007
1019
  }
1008
1020
  transpile(state) {
1009
1021
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
@@ -1041,12 +1053,11 @@ class TernaryExpression extends Expression {
1041
1053
  exports.TernaryExpression = TernaryExpression;
1042
1054
  class NullCoalescingExpression extends Expression {
1043
1055
  constructor(consequent, questionQuestionToken, alternate) {
1044
- var _a;
1045
1056
  super();
1046
1057
  this.consequent = consequent;
1047
1058
  this.questionQuestionToken = questionQuestionToken;
1048
1059
  this.alternate = alternate;
1049
- this.range = util_1.default.createRangeFromPositions(consequent.range.start, ((_a = alternate !== null && alternate !== void 0 ? alternate : questionQuestionToken) !== null && _a !== void 0 ? _a : consequent).range.end);
1060
+ this.range = util_1.default.createBoundingRange(this.consequent, this.questionQuestionToken, this.alternate);
1050
1061
  }
1051
1062
  transpile(state) {
1052
1063
  let result = [];
@@ -1086,9 +1097,7 @@ class RegexLiteralExpression extends Expression {
1086
1097
  constructor(tokens) {
1087
1098
  super();
1088
1099
  this.tokens = tokens;
1089
- }
1090
- get range() {
1091
- return this.tokens.regexLiteral.range;
1100
+ this.range = this.tokens.regexLiteral.range;
1092
1101
  }
1093
1102
  transpile(state) {
1094
1103
  var _a, _b;