meriyah 6.1.0 → 6.1.2
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/CHANGELOG.md +27 -0
- package/README.md +2 -2
- package/dist/meriyah.cjs +1022 -978
- package/dist/meriyah.min.mjs +1 -1
- package/dist/meriyah.mjs +1022 -978
- package/dist/meriyah.umd.js +1022 -978
- package/dist/meriyah.umd.min.js +1 -1
- package/dist/types/common.d.ts +32 -65
- package/dist/types/errors.d.ts +6 -5
- package/dist/types/estree.d.ts +5 -7
- package/dist/types/lexer/comments.d.ts +8 -6
- package/dist/types/lexer/common.d.ts +5 -5
- package/dist/types/lexer/identifier.d.ts +8 -7
- package/dist/types/lexer/jsx.d.ts +6 -5
- package/dist/types/lexer/numeric.d.ts +4 -3
- package/dist/types/lexer/regexp.d.ts +3 -2
- package/dist/types/lexer/scan.d.ts +4 -3
- package/dist/types/lexer/string.d.ts +5 -4
- package/dist/types/lexer/template.d.ts +4 -3
- package/dist/types/parser/parser.d.ts +51 -0
- package/dist/types/parser.d.ts +99 -99
- package/package.json +9 -9
package/dist/meriyah.umd.js
CHANGED
|
@@ -184,31 +184,36 @@
|
|
|
184
184
|
[177]: 'cannot use "await" in static blocks',
|
|
185
185
|
};
|
|
186
186
|
class ParseError extends SyntaxError {
|
|
187
|
-
|
|
187
|
+
start;
|
|
188
|
+
end;
|
|
189
|
+
range;
|
|
190
|
+
loc;
|
|
191
|
+
description;
|
|
192
|
+
constructor(start, end, type, ...params) {
|
|
188
193
|
const description = errorMessages[type].replace(/%(\d+)/g, (_, i) => params[i]);
|
|
189
|
-
const message = '[' +
|
|
194
|
+
const message = '[' + start.line + ':' + start.column + '-' + end.line + ':' + end.column + ']: ' + description;
|
|
190
195
|
super(message);
|
|
191
|
-
this.start = start;
|
|
192
|
-
this.end = end;
|
|
193
|
-
this.range = [start, end];
|
|
196
|
+
this.start = start.index;
|
|
197
|
+
this.end = end.index;
|
|
198
|
+
this.range = [start.index, end.index];
|
|
194
199
|
this.loc = {
|
|
195
|
-
start: { line:
|
|
196
|
-
end: { line:
|
|
200
|
+
start: { line: start.line, column: start.column },
|
|
201
|
+
end: { line: end.line, column: end.column },
|
|
197
202
|
};
|
|
198
203
|
this.description = description;
|
|
199
204
|
}
|
|
200
205
|
}
|
|
201
206
|
function report(parser, type, ...params) {
|
|
202
|
-
throw new ParseError(parser.
|
|
207
|
+
throw new ParseError(parser.tokenStart, parser.currentLocation, type, ...params);
|
|
203
208
|
}
|
|
204
209
|
function reportScopeError(scope) {
|
|
205
|
-
throw new ParseError(scope.
|
|
210
|
+
throw new ParseError(scope.start, scope.end, scope.type, ...scope.params);
|
|
206
211
|
}
|
|
207
|
-
function reportMessageAt(
|
|
208
|
-
throw new ParseError(
|
|
212
|
+
function reportMessageAt(start, end, type, ...params) {
|
|
213
|
+
throw new ParseError(start, end, type, ...params);
|
|
209
214
|
}
|
|
210
|
-
function reportScannerError(
|
|
211
|
-
throw new ParseError(
|
|
215
|
+
function reportScannerError(start, end, type) {
|
|
216
|
+
throw new ParseError(start, end, type);
|
|
212
217
|
}
|
|
213
218
|
|
|
214
219
|
const unicodeLookup = ((compressed, lookup) => {
|
|
@@ -706,7 +711,13 @@
|
|
|
706
711
|
: isIDContinue(code) || (code === 8204 || code === 8205);
|
|
707
712
|
}
|
|
708
713
|
|
|
709
|
-
const CommentTypes = [
|
|
714
|
+
const CommentTypes = [
|
|
715
|
+
'SingleLine',
|
|
716
|
+
'MultiLine',
|
|
717
|
+
'HTMLOpen',
|
|
718
|
+
'HTMLClose',
|
|
719
|
+
'HashbangComment',
|
|
720
|
+
];
|
|
710
721
|
function skipHashBang(parser) {
|
|
711
722
|
const { source } = parser;
|
|
712
723
|
if (parser.currentChar === 35 && source.charCodeAt(parser.index + 1) === 33) {
|
|
@@ -742,7 +753,7 @@
|
|
|
742
753
|
parser.tokenLine = parser.line;
|
|
743
754
|
parser.tokenColumn = parser.column;
|
|
744
755
|
}
|
|
745
|
-
if (parser.onComment) {
|
|
756
|
+
if (parser.options.onComment) {
|
|
746
757
|
const loc = {
|
|
747
758
|
start: {
|
|
748
759
|
line,
|
|
@@ -753,7 +764,7 @@
|
|
|
753
764
|
column: parser.tokenColumn,
|
|
754
765
|
},
|
|
755
766
|
};
|
|
756
|
-
parser.onComment(CommentTypes[type & 0xff], source.slice(index, parser.tokenIndex), start, parser.tokenIndex, loc);
|
|
767
|
+
parser.options.onComment(CommentTypes[type & 0xff], source.slice(index, parser.tokenIndex), start, parser.tokenIndex, loc);
|
|
757
768
|
}
|
|
758
769
|
return state | 1;
|
|
759
770
|
}
|
|
@@ -769,7 +780,7 @@
|
|
|
769
780
|
}
|
|
770
781
|
if (advanceChar(parser) === 47) {
|
|
771
782
|
advanceChar(parser);
|
|
772
|
-
if (parser.onComment) {
|
|
783
|
+
if (parser.options.onComment) {
|
|
773
784
|
const loc = {
|
|
774
785
|
start: {
|
|
775
786
|
line: parser.tokenLine,
|
|
@@ -780,7 +791,7 @@
|
|
|
780
791
|
column: parser.column,
|
|
781
792
|
},
|
|
782
793
|
};
|
|
783
|
-
parser.onComment(CommentTypes[1 & 0xff], source.slice(index, parser.index - 2), index - 2, parser.index, loc);
|
|
794
|
+
parser.options.onComment(CommentTypes[1 & 0xff], source.slice(index, parser.index - 2), index - 2, parser.index, loc);
|
|
784
795
|
}
|
|
785
796
|
parser.tokenIndex = parser.index;
|
|
786
797
|
parser.tokenLine = parser.line;
|
|
@@ -1339,7 +1350,7 @@
|
|
|
1339
1350
|
if (char === 95) {
|
|
1340
1351
|
char = advanceChar(parser);
|
|
1341
1352
|
if (char === 95 || kind & 32) {
|
|
1342
|
-
reportScannerError(parser.
|
|
1353
|
+
reportScannerError(parser.currentLocation, { index: parser.index + 1, line: parser.line, column: parser.column }, 152);
|
|
1343
1354
|
}
|
|
1344
1355
|
allowSeparator = 1;
|
|
1345
1356
|
continue;
|
|
@@ -1350,7 +1361,7 @@
|
|
|
1350
1361
|
--digit;
|
|
1351
1362
|
}
|
|
1352
1363
|
if (allowSeparator) {
|
|
1353
|
-
reportScannerError(parser.
|
|
1364
|
+
reportScannerError(parser.currentLocation, { index: parser.index + 1, line: parser.line, column: parser.column }, 153);
|
|
1354
1365
|
}
|
|
1355
1366
|
if (digit >= 0 && !isIdentifierStart(char) && char !== 46) {
|
|
1356
1367
|
parser.tokenValue = value;
|
|
@@ -1415,7 +1426,7 @@
|
|
|
1415
1426
|
const { index } = parser;
|
|
1416
1427
|
char = advanceChar(parser);
|
|
1417
1428
|
if (char === 95) {
|
|
1418
|
-
reportScannerError(parser.
|
|
1429
|
+
reportScannerError(parser.currentLocation, { index: parser.index + 1, line: parser.line, column: parser.column }, 152);
|
|
1419
1430
|
}
|
|
1420
1431
|
allowSeparator = 1;
|
|
1421
1432
|
ret += parser.source.substring(start, index);
|
|
@@ -1426,7 +1437,7 @@
|
|
|
1426
1437
|
char = advanceChar(parser);
|
|
1427
1438
|
}
|
|
1428
1439
|
if (allowSeparator) {
|
|
1429
|
-
reportScannerError(parser.
|
|
1440
|
+
reportScannerError(parser.currentLocation, { index: parser.index + 1, line: parser.line, column: parser.column }, 153);
|
|
1430
1441
|
}
|
|
1431
1442
|
return ret + parser.source.substring(start, parser.index);
|
|
1432
1443
|
}
|
|
@@ -1628,6 +1639,7 @@
|
|
|
1628
1639
|
report(parser, 5);
|
|
1629
1640
|
}
|
|
1630
1641
|
parser.currentChar = parser.source.charCodeAt((parser.index += 2));
|
|
1642
|
+
parser.column += 2;
|
|
1631
1643
|
return scanUnicodeEscape(parser);
|
|
1632
1644
|
}
|
|
1633
1645
|
function scanUnicodeEscape(parser) {
|
|
@@ -1638,10 +1650,10 @@
|
|
|
1638
1650
|
while (CharTypes[advanceChar(parser)] & 64) {
|
|
1639
1651
|
codePoint = (codePoint << 4) | toHex(parser.currentChar);
|
|
1640
1652
|
if (codePoint > 1114111)
|
|
1641
|
-
reportScannerError(begin, parser.line,
|
|
1653
|
+
reportScannerError({ index: begin, line: parser.line, column: parser.column }, parser.currentLocation, 104);
|
|
1642
1654
|
}
|
|
1643
1655
|
if (parser.currentChar !== 125) {
|
|
1644
|
-
reportScannerError(begin, parser.line,
|
|
1656
|
+
reportScannerError({ index: begin, line: parser.line, column: parser.column }, parser.currentLocation, 7);
|
|
1645
1657
|
}
|
|
1646
1658
|
advanceChar(parser);
|
|
1647
1659
|
return codePoint;
|
|
@@ -1659,6 +1671,7 @@
|
|
|
1659
1671
|
report(parser, 7);
|
|
1660
1672
|
codePoint = (toHex(char) << 12) | (toHex(char2) << 8) | (toHex(char3) << 4) | toHex(char4);
|
|
1661
1673
|
parser.currentChar = parser.source.charCodeAt((parser.index += 4));
|
|
1674
|
+
parser.column += 4;
|
|
1662
1675
|
return codePoint;
|
|
1663
1676
|
}
|
|
1664
1677
|
|
|
@@ -4386,7 +4399,7 @@
|
|
|
4386
4399
|
report(parser, 30, KeywordDescTable[parser.getToken() & 255]);
|
|
4387
4400
|
}
|
|
4388
4401
|
if (!consumeOpt(parser, context, 1074790417)) {
|
|
4389
|
-
parser.onInsertedSemicolon?.(parser.startIndex);
|
|
4402
|
+
parser.options.onInsertedSemicolon?.(parser.startIndex);
|
|
4390
4403
|
}
|
|
4391
4404
|
}
|
|
4392
4405
|
function isValidStrictMode(parser, index, tokenIndex, tokenValue) {
|
|
@@ -4533,29 +4546,6 @@
|
|
|
4533
4546
|
}
|
|
4534
4547
|
labels['$' + name] = 1;
|
|
4535
4548
|
}
|
|
4536
|
-
function finishNode(parser, context, start, line, column, node) {
|
|
4537
|
-
if (context & 2) {
|
|
4538
|
-
node.start = start;
|
|
4539
|
-
node.end = parser.startIndex;
|
|
4540
|
-
node.range = [start, parser.startIndex];
|
|
4541
|
-
}
|
|
4542
|
-
if (context & 4) {
|
|
4543
|
-
node.loc = {
|
|
4544
|
-
start: {
|
|
4545
|
-
line,
|
|
4546
|
-
column,
|
|
4547
|
-
},
|
|
4548
|
-
end: {
|
|
4549
|
-
line: parser.startLine,
|
|
4550
|
-
column: parser.startColumn,
|
|
4551
|
-
},
|
|
4552
|
-
};
|
|
4553
|
-
if (parser.sourceFile) {
|
|
4554
|
-
node.loc.source = parser.sourceFile;
|
|
4555
|
-
}
|
|
4556
|
-
}
|
|
4557
|
-
return node;
|
|
4558
|
-
}
|
|
4559
4549
|
function isEqualTagName(elementName) {
|
|
4560
4550
|
switch (elementName.type) {
|
|
4561
4551
|
case 'JSXIdentifier':
|
|
@@ -4572,16 +4562,11 @@
|
|
|
4572
4562
|
return scope;
|
|
4573
4563
|
}
|
|
4574
4564
|
function recordScopeError(parser, type, ...params) {
|
|
4575
|
-
const { index, line, column, tokenIndex, tokenLine, tokenColumn } = parser;
|
|
4576
4565
|
return {
|
|
4577
4566
|
type,
|
|
4578
4567
|
params,
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
column,
|
|
4582
|
-
tokenIndex,
|
|
4583
|
-
tokenLine,
|
|
4584
|
-
tokenColumn,
|
|
4568
|
+
start: parser.tokenStart,
|
|
4569
|
+
end: parser.currentLocation,
|
|
4585
4570
|
};
|
|
4586
4571
|
}
|
|
4587
4572
|
function createScope() {
|
|
@@ -4701,7 +4686,7 @@
|
|
|
4701
4686
|
for (const name in scope.refs) {
|
|
4702
4687
|
if (!isPrivateIdentifierDefined(name, scope)) {
|
|
4703
4688
|
const { index, line, column } = scope.refs[name][0];
|
|
4704
|
-
throw new ParseError(index, line, column, index + name.length, line, column + name.length, 4, name);
|
|
4689
|
+
throw new ParseError({ index, line, column }, { index: index + name.length, line, column: column + name.length }, 4, name);
|
|
4705
4690
|
}
|
|
4706
4691
|
}
|
|
4707
4692
|
}
|
|
@@ -4718,39 +4703,6 @@
|
|
|
4718
4703
|
parser.exportedBindings['#' + name] = 1;
|
|
4719
4704
|
}
|
|
4720
4705
|
}
|
|
4721
|
-
function pushComment(context, array) {
|
|
4722
|
-
return function (type, value, start, end, loc) {
|
|
4723
|
-
const comment = {
|
|
4724
|
-
type,
|
|
4725
|
-
value,
|
|
4726
|
-
};
|
|
4727
|
-
if (context & 2) {
|
|
4728
|
-
comment.start = start;
|
|
4729
|
-
comment.end = end;
|
|
4730
|
-
comment.range = [start, end];
|
|
4731
|
-
}
|
|
4732
|
-
if (context & 4) {
|
|
4733
|
-
comment.loc = loc;
|
|
4734
|
-
}
|
|
4735
|
-
array.push(comment);
|
|
4736
|
-
};
|
|
4737
|
-
}
|
|
4738
|
-
function pushToken(context, array) {
|
|
4739
|
-
return function (token, start, end, loc) {
|
|
4740
|
-
const tokens = {
|
|
4741
|
-
token,
|
|
4742
|
-
};
|
|
4743
|
-
if (context & 2) {
|
|
4744
|
-
tokens.start = start;
|
|
4745
|
-
tokens.end = end;
|
|
4746
|
-
tokens.range = [start, end];
|
|
4747
|
-
}
|
|
4748
|
-
if (context & 4) {
|
|
4749
|
-
tokens.loc = loc;
|
|
4750
|
-
}
|
|
4751
|
-
array.push(tokens);
|
|
4752
|
-
};
|
|
4753
|
-
}
|
|
4754
4706
|
function isValidIdentifier(context, t) {
|
|
4755
4707
|
if (context & (256 | 262144)) {
|
|
4756
4708
|
if (context & 512 && t === 209006)
|
|
@@ -4771,72 +4723,136 @@
|
|
|
4771
4723
|
report(parser, 0);
|
|
4772
4724
|
}
|
|
4773
4725
|
|
|
4774
|
-
|
|
4775
|
-
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
|
|
4780
|
-
|
|
4781
|
-
|
|
4782
|
-
|
|
4783
|
-
|
|
4784
|
-
|
|
4785
|
-
|
|
4786
|
-
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
|
|
4796
|
-
|
|
4797
|
-
|
|
4798
|
-
|
|
4799
|
-
|
|
4800
|
-
|
|
4801
|
-
|
|
4802
|
-
|
|
4803
|
-
|
|
4804
|
-
|
|
4805
|
-
|
|
4806
|
-
|
|
4807
|
-
|
|
4808
|
-
|
|
4809
|
-
|
|
4810
|
-
|
|
4811
|
-
|
|
4726
|
+
class Parser {
|
|
4727
|
+
source;
|
|
4728
|
+
options;
|
|
4729
|
+
lastOnToken = null;
|
|
4730
|
+
token = 1048576;
|
|
4731
|
+
flags = 0;
|
|
4732
|
+
index = 0;
|
|
4733
|
+
line = 1;
|
|
4734
|
+
column = 0;
|
|
4735
|
+
startIndex = 0;
|
|
4736
|
+
end = 0;
|
|
4737
|
+
tokenIndex = 0;
|
|
4738
|
+
startColumn = 0;
|
|
4739
|
+
tokenColumn = 0;
|
|
4740
|
+
tokenLine = 1;
|
|
4741
|
+
startLine = 1;
|
|
4742
|
+
tokenValue = '';
|
|
4743
|
+
tokenRaw = '';
|
|
4744
|
+
tokenRegExp = void 0;
|
|
4745
|
+
currentChar = 0;
|
|
4746
|
+
exportedNames = {};
|
|
4747
|
+
exportedBindings = {};
|
|
4748
|
+
assignable = 1;
|
|
4749
|
+
destructible = 0;
|
|
4750
|
+
leadingDecorators = { decorators: [] };
|
|
4751
|
+
constructor(source, options = {}) {
|
|
4752
|
+
this.source = source;
|
|
4753
|
+
this.options = options;
|
|
4754
|
+
this.end = source.length;
|
|
4755
|
+
this.currentChar = source.charCodeAt(0);
|
|
4756
|
+
}
|
|
4757
|
+
getToken() {
|
|
4758
|
+
return this.token;
|
|
4759
|
+
}
|
|
4760
|
+
setToken(value, replaceLast = false) {
|
|
4761
|
+
this.token = value;
|
|
4762
|
+
const { onToken } = this.options;
|
|
4763
|
+
if (onToken) {
|
|
4764
|
+
if (value !== 1048576) {
|
|
4765
|
+
const loc = {
|
|
4766
|
+
start: {
|
|
4767
|
+
line: this.tokenLine,
|
|
4768
|
+
column: this.tokenColumn,
|
|
4769
|
+
},
|
|
4770
|
+
end: {
|
|
4771
|
+
line: this.line,
|
|
4772
|
+
column: this.column,
|
|
4773
|
+
},
|
|
4774
|
+
};
|
|
4775
|
+
if (!replaceLast && this.lastOnToken) {
|
|
4776
|
+
onToken(...this.lastOnToken);
|
|
4812
4777
|
}
|
|
4813
|
-
|
|
4814
|
-
|
|
4815
|
-
|
|
4816
|
-
|
|
4817
|
-
|
|
4778
|
+
this.lastOnToken = [convertTokenType(value), this.tokenIndex, this.index, loc];
|
|
4779
|
+
}
|
|
4780
|
+
else {
|
|
4781
|
+
if (this.lastOnToken) {
|
|
4782
|
+
onToken(...this.lastOnToken);
|
|
4783
|
+
this.lastOnToken = null;
|
|
4818
4784
|
}
|
|
4819
4785
|
}
|
|
4820
|
-
|
|
4821
|
-
|
|
4822
|
-
|
|
4823
|
-
|
|
4824
|
-
|
|
4825
|
-
|
|
4826
|
-
|
|
4827
|
-
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
|
|
4786
|
+
}
|
|
4787
|
+
return value;
|
|
4788
|
+
}
|
|
4789
|
+
get tokenStart() {
|
|
4790
|
+
return {
|
|
4791
|
+
index: this.tokenIndex,
|
|
4792
|
+
line: this.tokenLine,
|
|
4793
|
+
column: this.tokenColumn,
|
|
4794
|
+
};
|
|
4795
|
+
}
|
|
4796
|
+
get currentLocation() {
|
|
4797
|
+
return { index: this.index, line: this.line, column: this.column };
|
|
4798
|
+
}
|
|
4799
|
+
finishNode(node, start, end) {
|
|
4800
|
+
if (this.options.shouldAddRanges) {
|
|
4801
|
+
node.start = start.index;
|
|
4802
|
+
const endIndex = end ? end.index : this.startIndex;
|
|
4803
|
+
node.end = endIndex;
|
|
4804
|
+
node.range = [start.index, endIndex];
|
|
4805
|
+
}
|
|
4806
|
+
if (this.options.shouldAddLoc) {
|
|
4807
|
+
node.loc = {
|
|
4808
|
+
start: {
|
|
4809
|
+
line: start.line,
|
|
4810
|
+
column: start.column,
|
|
4811
|
+
},
|
|
4812
|
+
end: end ? { line: end.line, column: end.column } : { line: this.startLine, column: this.startColumn },
|
|
4813
|
+
};
|
|
4814
|
+
if (this.options.sourceFile) {
|
|
4815
|
+
node.loc.source = this.options.sourceFile;
|
|
4816
|
+
}
|
|
4817
|
+
}
|
|
4818
|
+
return node;
|
|
4819
|
+
}
|
|
4820
|
+
}
|
|
4821
|
+
function pushComment(comments, options) {
|
|
4822
|
+
return function (type, value, start, end, loc) {
|
|
4823
|
+
const comment = {
|
|
4824
|
+
type,
|
|
4825
|
+
value,
|
|
4826
|
+
};
|
|
4827
|
+
if (options.shouldAddRanges) {
|
|
4828
|
+
comment.start = start;
|
|
4829
|
+
comment.end = end;
|
|
4830
|
+
comment.range = [start, end];
|
|
4831
|
+
}
|
|
4832
|
+
if (options.shouldAddLoc) {
|
|
4833
|
+
comment.loc = loc;
|
|
4834
|
+
}
|
|
4835
|
+
comments.push(comment);
|
|
4833
4836
|
};
|
|
4834
4837
|
}
|
|
4838
|
+
function pushToken(tokens, options) {
|
|
4839
|
+
return function (type, start, end, loc) {
|
|
4840
|
+
const token = {
|
|
4841
|
+
token: type,
|
|
4842
|
+
};
|
|
4843
|
+
if (options.shouldAddRanges) {
|
|
4844
|
+
token.start = start;
|
|
4845
|
+
token.end = end;
|
|
4846
|
+
token.range = [start, end];
|
|
4847
|
+
}
|
|
4848
|
+
if (options.shouldAddLoc) {
|
|
4849
|
+
token.loc = loc;
|
|
4850
|
+
}
|
|
4851
|
+
tokens.push(token);
|
|
4852
|
+
};
|
|
4853
|
+
}
|
|
4854
|
+
|
|
4835
4855
|
function parseSource(source, options, context) {
|
|
4836
|
-
let sourceFile = '';
|
|
4837
|
-
let onComment;
|
|
4838
|
-
let onInsertedSemicolon;
|
|
4839
|
-
let onToken;
|
|
4840
4856
|
if (options != null) {
|
|
4841
4857
|
if (options.module)
|
|
4842
4858
|
context |= 512 | 256;
|
|
@@ -4862,18 +4878,28 @@
|
|
|
4862
4878
|
context |= 256;
|
|
4863
4879
|
if (options.jsx)
|
|
4864
4880
|
context |= 8;
|
|
4881
|
+
}
|
|
4882
|
+
const parserOptions = {
|
|
4883
|
+
shouldAddLoc: Boolean(context & 4),
|
|
4884
|
+
shouldAddRanges: Boolean(context & 2),
|
|
4885
|
+
};
|
|
4886
|
+
if (options != null) {
|
|
4865
4887
|
if (options.source)
|
|
4866
|
-
sourceFile = options.source;
|
|
4888
|
+
parserOptions.sourceFile = options.source;
|
|
4867
4889
|
if (options.onComment != null) {
|
|
4868
|
-
onComment = Array.isArray(options.onComment)
|
|
4890
|
+
parserOptions.onComment = Array.isArray(options.onComment)
|
|
4891
|
+
? pushComment(options.onComment, parserOptions)
|
|
4892
|
+
: options.onComment;
|
|
4869
4893
|
}
|
|
4870
4894
|
if (options.onInsertedSemicolon != null)
|
|
4871
|
-
onInsertedSemicolon = options.onInsertedSemicolon;
|
|
4895
|
+
parserOptions.onInsertedSemicolon = options.onInsertedSemicolon;
|
|
4872
4896
|
if (options.onToken != null) {
|
|
4873
|
-
onToken = Array.isArray(options.onToken)
|
|
4897
|
+
parserOptions.onToken = Array.isArray(options.onToken)
|
|
4898
|
+
? pushToken(options.onToken, parserOptions)
|
|
4899
|
+
: options.onToken;
|
|
4874
4900
|
}
|
|
4875
4901
|
}
|
|
4876
|
-
const parser =
|
|
4902
|
+
const parser = new Parser(source, parserOptions);
|
|
4877
4903
|
skipHashBang(parser);
|
|
4878
4904
|
const scope = context & 16 ? createScope() : void 0;
|
|
4879
4905
|
let body = [];
|
|
@@ -4891,43 +4917,29 @@
|
|
|
4891
4917
|
else {
|
|
4892
4918
|
body = parseStatementList(parser, context | 2048, scope);
|
|
4893
4919
|
}
|
|
4894
|
-
|
|
4920
|
+
return parser.finishNode({
|
|
4895
4921
|
type: 'Program',
|
|
4896
4922
|
sourceType,
|
|
4897
4923
|
body,
|
|
4898
|
-
};
|
|
4899
|
-
if (context & 2) {
|
|
4900
|
-
node.start = 0;
|
|
4901
|
-
node.end = source.length;
|
|
4902
|
-
node.range = [0, source.length];
|
|
4903
|
-
}
|
|
4904
|
-
if (context & 4) {
|
|
4905
|
-
node.loc = {
|
|
4906
|
-
start: { line: 1, column: 0 },
|
|
4907
|
-
end: { line: parser.line, column: parser.column },
|
|
4908
|
-
};
|
|
4909
|
-
if (parser.sourceFile)
|
|
4910
|
-
node.loc.source = sourceFile;
|
|
4911
|
-
}
|
|
4912
|
-
return node;
|
|
4924
|
+
}, { index: 0, line: 1, column: 0 }, parser.currentLocation);
|
|
4913
4925
|
}
|
|
4914
4926
|
function parseStatementList(parser, context, scope) {
|
|
4915
4927
|
nextToken(parser, context | 8192 | 67108864);
|
|
4916
4928
|
const statements = [];
|
|
4917
4929
|
while (parser.getToken() === 134283267) {
|
|
4918
|
-
const { index,
|
|
4930
|
+
const { index, tokenValue, tokenStart, tokenIndex } = parser;
|
|
4919
4931
|
const token = parser.getToken();
|
|
4920
4932
|
const expr = parseLiteral(parser, context);
|
|
4921
4933
|
if (isValidStrictMode(parser, index, tokenIndex, tokenValue)) {
|
|
4922
4934
|
context |= 256;
|
|
4923
4935
|
if (parser.flags & 64) {
|
|
4924
|
-
reportMessageAt(parser.
|
|
4936
|
+
reportMessageAt(parser.tokenStart, parser.currentLocation, 9);
|
|
4925
4937
|
}
|
|
4926
4938
|
if (parser.flags & 4096) {
|
|
4927
|
-
reportMessageAt(parser.
|
|
4939
|
+
reportMessageAt(parser.tokenStart, parser.currentLocation, 15);
|
|
4928
4940
|
}
|
|
4929
4941
|
}
|
|
4930
|
-
statements.push(parseDirective(parser, context, expr, token,
|
|
4942
|
+
statements.push(parseDirective(parser, context, expr, token, tokenStart));
|
|
4931
4943
|
}
|
|
4932
4944
|
while (parser.getToken() !== 1048576) {
|
|
4933
4945
|
statements.push(parseStatementListItem(parser, context, scope, undefined, 4, {}));
|
|
@@ -4938,9 +4950,9 @@
|
|
|
4938
4950
|
nextToken(parser, context | 8192);
|
|
4939
4951
|
const statements = [];
|
|
4940
4952
|
while (parser.getToken() === 134283267) {
|
|
4941
|
-
const {
|
|
4953
|
+
const { tokenStart } = parser;
|
|
4942
4954
|
const token = parser.getToken();
|
|
4943
|
-
statements.push(parseDirective(parser, context, parseLiteral(parser, context), token,
|
|
4955
|
+
statements.push(parseDirective(parser, context, parseLiteral(parser, context), token, tokenStart));
|
|
4944
4956
|
}
|
|
4945
4957
|
while (parser.getToken() !== 1048576) {
|
|
4946
4958
|
statements.push(parseModuleItem(parser, context, scope));
|
|
@@ -4948,7 +4960,12 @@
|
|
|
4948
4960
|
return statements;
|
|
4949
4961
|
}
|
|
4950
4962
|
function parseModuleItem(parser, context, scope) {
|
|
4951
|
-
parser.
|
|
4963
|
+
if (parser.getToken() === 132) {
|
|
4964
|
+
Object.assign(parser.leadingDecorators, {
|
|
4965
|
+
start: parser.tokenStart,
|
|
4966
|
+
decorators: parseDecorators(parser, context, undefined),
|
|
4967
|
+
});
|
|
4968
|
+
}
|
|
4952
4969
|
let moduleItem;
|
|
4953
4970
|
switch (parser.getToken()) {
|
|
4954
4971
|
case 20564:
|
|
@@ -4960,77 +4977,75 @@
|
|
|
4960
4977
|
default:
|
|
4961
4978
|
moduleItem = parseStatementListItem(parser, context, scope, undefined, 4, {});
|
|
4962
4979
|
}
|
|
4963
|
-
if (parser.leadingDecorators.length) {
|
|
4980
|
+
if (parser.leadingDecorators?.decorators.length) {
|
|
4964
4981
|
report(parser, 170);
|
|
4965
4982
|
}
|
|
4966
4983
|
return moduleItem;
|
|
4967
4984
|
}
|
|
4968
4985
|
function parseStatementListItem(parser, context, scope, privateScope, origin, labels) {
|
|
4969
|
-
const start = parser.
|
|
4970
|
-
const line = parser.tokenLine;
|
|
4971
|
-
const column = parser.tokenColumn;
|
|
4986
|
+
const start = parser.tokenStart;
|
|
4972
4987
|
switch (parser.getToken()) {
|
|
4973
4988
|
case 86104:
|
|
4974
|
-
return parseFunctionDeclaration(parser, context, scope, privateScope, origin, 1, 0, 0, start
|
|
4989
|
+
return parseFunctionDeclaration(parser, context, scope, privateScope, origin, 1, 0, 0, start);
|
|
4975
4990
|
case 132:
|
|
4976
4991
|
case 86094:
|
|
4977
|
-
return parseClassDeclaration(parser, context, scope, privateScope, 0
|
|
4992
|
+
return parseClassDeclaration(parser, context, scope, privateScope, 0);
|
|
4978
4993
|
case 86090:
|
|
4979
|
-
return parseLexicalDeclaration(parser, context, scope, privateScope, 16, 0
|
|
4994
|
+
return parseLexicalDeclaration(parser, context, scope, privateScope, 16, 0);
|
|
4980
4995
|
case 241737:
|
|
4981
|
-
return parseLetIdentOrVarDeclarationStatement(parser, context, scope, privateScope, origin
|
|
4996
|
+
return parseLetIdentOrVarDeclarationStatement(parser, context, scope, privateScope, origin);
|
|
4982
4997
|
case 20564:
|
|
4983
4998
|
report(parser, 103, 'export');
|
|
4984
4999
|
case 86106:
|
|
4985
5000
|
nextToken(parser, context);
|
|
4986
5001
|
switch (parser.getToken()) {
|
|
4987
5002
|
case 67174411:
|
|
4988
|
-
return parseImportCallDeclaration(parser, context, privateScope, start
|
|
5003
|
+
return parseImportCallDeclaration(parser, context, privateScope, start);
|
|
4989
5004
|
case 67108877:
|
|
4990
|
-
return parseImportMetaDeclaration(parser, context, start
|
|
5005
|
+
return parseImportMetaDeclaration(parser, context, start);
|
|
4991
5006
|
default:
|
|
4992
5007
|
report(parser, 103, 'import');
|
|
4993
5008
|
}
|
|
4994
5009
|
case 209005:
|
|
4995
|
-
return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, privateScope, origin, labels, 1
|
|
5010
|
+
return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, privateScope, origin, labels, 1);
|
|
4996
5011
|
default:
|
|
4997
|
-
return parseStatement(parser, context, scope, privateScope, origin, labels, 1
|
|
5012
|
+
return parseStatement(parser, context, scope, privateScope, origin, labels, 1);
|
|
4998
5013
|
}
|
|
4999
5014
|
}
|
|
5000
|
-
function parseStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl
|
|
5015
|
+
function parseStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl) {
|
|
5001
5016
|
switch (parser.getToken()) {
|
|
5002
5017
|
case 86088:
|
|
5003
|
-
return parseVariableStatement(parser, context, scope, privateScope, 0
|
|
5018
|
+
return parseVariableStatement(parser, context, scope, privateScope, 0);
|
|
5004
5019
|
case 20572:
|
|
5005
|
-
return parseReturnStatement(parser, context, privateScope
|
|
5020
|
+
return parseReturnStatement(parser, context, privateScope);
|
|
5006
5021
|
case 20569:
|
|
5007
|
-
return parseIfStatement(parser, context, scope, privateScope, labels
|
|
5022
|
+
return parseIfStatement(parser, context, scope, privateScope, labels);
|
|
5008
5023
|
case 20567:
|
|
5009
|
-
return parseForStatement(parser, context, scope, privateScope, labels
|
|
5024
|
+
return parseForStatement(parser, context, scope, privateScope, labels);
|
|
5010
5025
|
case 20562:
|
|
5011
|
-
return parseDoWhileStatement(parser, context, scope, privateScope, labels
|
|
5026
|
+
return parseDoWhileStatement(parser, context, scope, privateScope, labels);
|
|
5012
5027
|
case 20578:
|
|
5013
|
-
return parseWhileStatement(parser, context, scope, privateScope, labels
|
|
5028
|
+
return parseWhileStatement(parser, context, scope, privateScope, labels);
|
|
5014
5029
|
case 86110:
|
|
5015
|
-
return parseSwitchStatement(parser, context, scope, privateScope, labels
|
|
5030
|
+
return parseSwitchStatement(parser, context, scope, privateScope, labels);
|
|
5016
5031
|
case 1074790417:
|
|
5017
|
-
return parseEmptyStatement(parser, context
|
|
5032
|
+
return parseEmptyStatement(parser, context);
|
|
5018
5033
|
case 2162700:
|
|
5019
|
-
return parseBlock(parser, context, scope ? addChildScope(scope, 2) : scope, privateScope, labels,
|
|
5034
|
+
return parseBlock(parser, context, scope ? addChildScope(scope, 2) : scope, privateScope, labels, parser.tokenStart);
|
|
5020
5035
|
case 86112:
|
|
5021
|
-
return parseThrowStatement(parser, context, privateScope
|
|
5036
|
+
return parseThrowStatement(parser, context, privateScope);
|
|
5022
5037
|
case 20555:
|
|
5023
|
-
return parseBreakStatement(parser, context, labels
|
|
5038
|
+
return parseBreakStatement(parser, context, labels);
|
|
5024
5039
|
case 20559:
|
|
5025
|
-
return parseContinueStatement(parser, context, labels
|
|
5040
|
+
return parseContinueStatement(parser, context, labels);
|
|
5026
5041
|
case 20577:
|
|
5027
|
-
return parseTryStatement(parser, context, scope, privateScope, labels
|
|
5042
|
+
return parseTryStatement(parser, context, scope, privateScope, labels);
|
|
5028
5043
|
case 20579:
|
|
5029
|
-
return parseWithStatement(parser, context, scope, privateScope, labels
|
|
5044
|
+
return parseWithStatement(parser, context, scope, privateScope, labels);
|
|
5030
5045
|
case 20560:
|
|
5031
|
-
return parseDebuggerStatement(parser, context
|
|
5046
|
+
return parseDebuggerStatement(parser, context);
|
|
5032
5047
|
case 209005:
|
|
5033
|
-
return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, privateScope, origin, labels, 0
|
|
5048
|
+
return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, privateScope, origin, labels, 0);
|
|
5034
5049
|
case 20557:
|
|
5035
5050
|
report(parser, 162);
|
|
5036
5051
|
case 20566:
|
|
@@ -5044,11 +5059,11 @@
|
|
|
5044
5059
|
case 86094:
|
|
5045
5060
|
report(parser, 79);
|
|
5046
5061
|
default:
|
|
5047
|
-
return parseExpressionOrLabelledStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl
|
|
5062
|
+
return parseExpressionOrLabelledStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl);
|
|
5048
5063
|
}
|
|
5049
5064
|
}
|
|
5050
|
-
function parseExpressionOrLabelledStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl
|
|
5051
|
-
const { tokenValue } = parser;
|
|
5065
|
+
function parseExpressionOrLabelledStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl) {
|
|
5066
|
+
const { tokenValue, tokenStart } = parser;
|
|
5052
5067
|
const token = parser.getToken();
|
|
5053
5068
|
let expr;
|
|
5054
5069
|
switch (token) {
|
|
@@ -5060,51 +5075,52 @@
|
|
|
5060
5075
|
report(parser, 84);
|
|
5061
5076
|
break;
|
|
5062
5077
|
default:
|
|
5063
|
-
expr = parsePrimaryExpression(parser, context, privateScope, 2, 0, 1, 0, 1, parser.
|
|
5078
|
+
expr = parsePrimaryExpression(parser, context, privateScope, 2, 0, 1, 0, 1, parser.tokenStart);
|
|
5064
5079
|
}
|
|
5065
5080
|
if (token & 143360 && parser.getToken() === 21) {
|
|
5066
|
-
return parseLabelledStatement(parser, context, scope, privateScope, origin, labels, tokenValue, expr, token, allowFuncDecl,
|
|
5081
|
+
return parseLabelledStatement(parser, context, scope, privateScope, origin, labels, tokenValue, expr, token, allowFuncDecl, tokenStart);
|
|
5067
5082
|
}
|
|
5068
|
-
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0,
|
|
5069
|
-
expr = parseAssignmentExpression(parser, context, privateScope, 0, 0,
|
|
5083
|
+
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, tokenStart);
|
|
5084
|
+
expr = parseAssignmentExpression(parser, context, privateScope, 0, 0, tokenStart, expr);
|
|
5070
5085
|
if (parser.getToken() === 18) {
|
|
5071
|
-
expr = parseSequenceExpression(parser, context, privateScope, 0,
|
|
5086
|
+
expr = parseSequenceExpression(parser, context, privateScope, 0, tokenStart, expr);
|
|
5072
5087
|
}
|
|
5073
|
-
return parseExpressionStatement(parser, context, expr,
|
|
5088
|
+
return parseExpressionStatement(parser, context, expr, tokenStart);
|
|
5074
5089
|
}
|
|
5075
|
-
function parseBlock(parser, context, scope, privateScope, labels, start,
|
|
5090
|
+
function parseBlock(parser, context, scope, privateScope, labels, start, type = 'BlockStatement') {
|
|
5076
5091
|
const body = [];
|
|
5077
5092
|
consume(parser, context | 8192, 2162700);
|
|
5078
5093
|
while (parser.getToken() !== 1074790415) {
|
|
5079
5094
|
body.push(parseStatementListItem(parser, context, scope, privateScope, 2, { $: labels }));
|
|
5080
5095
|
}
|
|
5081
5096
|
consume(parser, context | 8192, 1074790415);
|
|
5082
|
-
return finishNode(
|
|
5097
|
+
return parser.finishNode({
|
|
5083
5098
|
type,
|
|
5084
5099
|
body,
|
|
5085
|
-
});
|
|
5100
|
+
}, start);
|
|
5086
5101
|
}
|
|
5087
|
-
function parseReturnStatement(parser, context, privateScope
|
|
5102
|
+
function parseReturnStatement(parser, context, privateScope) {
|
|
5088
5103
|
if ((context & 1048576) === 0)
|
|
5089
5104
|
report(parser, 92);
|
|
5105
|
+
const start = parser.tokenStart;
|
|
5090
5106
|
nextToken(parser, context | 8192);
|
|
5091
5107
|
const argument = parser.flags & 1 || parser.getToken() & 1048576
|
|
5092
5108
|
? null
|
|
5093
|
-
: parseExpressions(parser, context, privateScope, 0, 1, parser.
|
|
5109
|
+
: parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart);
|
|
5094
5110
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5095
|
-
return finishNode(
|
|
5111
|
+
return parser.finishNode({
|
|
5096
5112
|
type: 'ReturnStatement',
|
|
5097
5113
|
argument,
|
|
5098
|
-
});
|
|
5114
|
+
}, start);
|
|
5099
5115
|
}
|
|
5100
|
-
function parseExpressionStatement(parser, context, expression, start
|
|
5116
|
+
function parseExpressionStatement(parser, context, expression, start) {
|
|
5101
5117
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5102
|
-
return finishNode(
|
|
5118
|
+
return parser.finishNode({
|
|
5103
5119
|
type: 'ExpressionStatement',
|
|
5104
5120
|
expression,
|
|
5105
|
-
});
|
|
5121
|
+
}, start);
|
|
5106
5122
|
}
|
|
5107
|
-
function parseLabelledStatement(parser, context, scope, privateScope, origin, labels, value, expr, token, allowFuncDecl, start
|
|
5123
|
+
function parseLabelledStatement(parser, context, scope, privateScope, origin, labels, value, expr, token, allowFuncDecl, start) {
|
|
5108
5124
|
validateBindingIdentifier(parser, context, 0, token, 1);
|
|
5109
5125
|
validateAndDeclareLabel(parser, labels, value);
|
|
5110
5126
|
nextToken(parser, context | 8192);
|
|
@@ -5112,37 +5128,37 @@
|
|
|
5112
5128
|
(context & 256) === 0 &&
|
|
5113
5129
|
context & 64 &&
|
|
5114
5130
|
parser.getToken() === 86104
|
|
5115
|
-
? parseFunctionDeclaration(parser, context, addChildScope(scope, 2), privateScope, origin, 0, 0, 0, parser.
|
|
5116
|
-
: parseStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl
|
|
5117
|
-
return finishNode(
|
|
5131
|
+
? parseFunctionDeclaration(parser, context, addChildScope(scope, 2), privateScope, origin, 0, 0, 0, parser.tokenStart)
|
|
5132
|
+
: parseStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl);
|
|
5133
|
+
return parser.finishNode({
|
|
5118
5134
|
type: 'LabeledStatement',
|
|
5119
5135
|
label: expr,
|
|
5120
5136
|
body,
|
|
5121
|
-
});
|
|
5137
|
+
}, start);
|
|
5122
5138
|
}
|
|
5123
|
-
function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, privateScope, origin, labels, allowFuncDecl
|
|
5124
|
-
const { tokenValue } = parser;
|
|
5139
|
+
function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, privateScope, origin, labels, allowFuncDecl) {
|
|
5140
|
+
const { tokenValue, tokenStart: start } = parser;
|
|
5125
5141
|
const token = parser.getToken();
|
|
5126
5142
|
let expr = parseIdentifier(parser, context);
|
|
5127
5143
|
if (parser.getToken() === 21) {
|
|
5128
|
-
return parseLabelledStatement(parser, context, scope, privateScope, origin, labels, tokenValue, expr, token, 1, start
|
|
5144
|
+
return parseLabelledStatement(parser, context, scope, privateScope, origin, labels, tokenValue, expr, token, 1, start);
|
|
5129
5145
|
}
|
|
5130
5146
|
const asyncNewLine = parser.flags & 1;
|
|
5131
5147
|
if (!asyncNewLine) {
|
|
5132
5148
|
if (parser.getToken() === 86104) {
|
|
5133
5149
|
if (!allowFuncDecl)
|
|
5134
5150
|
report(parser, 123);
|
|
5135
|
-
return parseFunctionDeclaration(parser, context, scope, privateScope, origin, 1, 0, 1, start
|
|
5151
|
+
return parseFunctionDeclaration(parser, context, scope, privateScope, origin, 1, 0, 1, start);
|
|
5136
5152
|
}
|
|
5137
5153
|
if (isValidIdentifier(context, parser.getToken())) {
|
|
5138
|
-
expr = parseAsyncArrowAfterIdent(parser, context, privateScope, 1, start
|
|
5154
|
+
expr = parseAsyncArrowAfterIdent(parser, context, privateScope, 1, start);
|
|
5139
5155
|
if (parser.getToken() === 18)
|
|
5140
|
-
expr = parseSequenceExpression(parser, context, privateScope, 0, start,
|
|
5141
|
-
return parseExpressionStatement(parser, context, expr, start
|
|
5156
|
+
expr = parseSequenceExpression(parser, context, privateScope, 0, start, expr);
|
|
5157
|
+
return parseExpressionStatement(parser, context, expr, start);
|
|
5142
5158
|
}
|
|
5143
5159
|
}
|
|
5144
5160
|
if (parser.getToken() === 67174411) {
|
|
5145
|
-
expr = parseAsyncArrowOrCallExpression(parser, context, privateScope, expr, 1, 1, 0, asyncNewLine, start
|
|
5161
|
+
expr = parseAsyncArrowOrCallExpression(parser, context, privateScope, expr, 1, 1, 0, asyncNewLine, start);
|
|
5146
5162
|
}
|
|
5147
5163
|
else {
|
|
5148
5164
|
if (parser.getToken() === 10) {
|
|
@@ -5150,89 +5166,92 @@
|
|
|
5150
5166
|
if ((token & 36864) === 36864) {
|
|
5151
5167
|
parser.flags |= 256;
|
|
5152
5168
|
}
|
|
5153
|
-
expr = parseArrowFromIdentifier(parser, context | 524288, privateScope, parser.tokenValue, expr, 0, 1, 0, start
|
|
5169
|
+
expr = parseArrowFromIdentifier(parser, context | 524288, privateScope, parser.tokenValue, expr, 0, 1, 0, start);
|
|
5154
5170
|
}
|
|
5155
5171
|
parser.assignable = 1;
|
|
5156
5172
|
}
|
|
5157
|
-
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, start
|
|
5158
|
-
expr = parseAssignmentExpression(parser, context, privateScope, 0, 0, start,
|
|
5173
|
+
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, start);
|
|
5174
|
+
expr = parseAssignmentExpression(parser, context, privateScope, 0, 0, start, expr);
|
|
5159
5175
|
parser.assignable = 1;
|
|
5160
5176
|
if (parser.getToken() === 18) {
|
|
5161
|
-
expr = parseSequenceExpression(parser, context, privateScope, 0, start,
|
|
5177
|
+
expr = parseSequenceExpression(parser, context, privateScope, 0, start, expr);
|
|
5162
5178
|
}
|
|
5163
|
-
return parseExpressionStatement(parser, context, expr, start
|
|
5179
|
+
return parseExpressionStatement(parser, context, expr, start);
|
|
5164
5180
|
}
|
|
5165
|
-
function parseDirective(parser, context, expression, token, start
|
|
5181
|
+
function parseDirective(parser, context, expression, token, start) {
|
|
5166
5182
|
const endIndex = parser.startIndex;
|
|
5167
5183
|
if (token !== 1074790417) {
|
|
5168
5184
|
parser.assignable = 2;
|
|
5169
|
-
expression = parseMemberOrUpdateExpression(parser, context, undefined, expression, 0, 0, start
|
|
5185
|
+
expression = parseMemberOrUpdateExpression(parser, context, undefined, expression, 0, 0, start);
|
|
5170
5186
|
if (parser.getToken() !== 1074790417) {
|
|
5171
|
-
expression = parseAssignmentExpression(parser, context, undefined, 0, 0, start,
|
|
5187
|
+
expression = parseAssignmentExpression(parser, context, undefined, 0, 0, start, expression);
|
|
5172
5188
|
if (parser.getToken() === 18) {
|
|
5173
|
-
expression = parseSequenceExpression(parser, context, undefined, 0, start,
|
|
5189
|
+
expression = parseSequenceExpression(parser, context, undefined, 0, start, expression);
|
|
5174
5190
|
}
|
|
5175
5191
|
}
|
|
5176
5192
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5177
5193
|
}
|
|
5178
|
-
|
|
5179
|
-
|
|
5180
|
-
|
|
5181
|
-
|
|
5182
|
-
|
|
5183
|
-
|
|
5184
|
-
|
|
5185
|
-
|
|
5186
|
-
expression,
|
|
5187
|
-
});
|
|
5194
|
+
const node = {
|
|
5195
|
+
type: 'ExpressionStatement',
|
|
5196
|
+
expression,
|
|
5197
|
+
};
|
|
5198
|
+
if (expression.type === 'Literal' && typeof expression.value === 'string') {
|
|
5199
|
+
node.directive = parser.source.slice(start.index + 1, endIndex - 1);
|
|
5200
|
+
}
|
|
5201
|
+
return parser.finishNode(node, start);
|
|
5188
5202
|
}
|
|
5189
|
-
function parseEmptyStatement(parser, context
|
|
5203
|
+
function parseEmptyStatement(parser, context) {
|
|
5204
|
+
const start = parser.tokenStart;
|
|
5190
5205
|
nextToken(parser, context | 8192);
|
|
5191
|
-
return finishNode(
|
|
5206
|
+
return parser.finishNode({
|
|
5192
5207
|
type: 'EmptyStatement',
|
|
5193
|
-
});
|
|
5208
|
+
}, start);
|
|
5194
5209
|
}
|
|
5195
|
-
function parseThrowStatement(parser, context, privateScope
|
|
5210
|
+
function parseThrowStatement(parser, context, privateScope) {
|
|
5211
|
+
const start = parser.tokenStart;
|
|
5196
5212
|
nextToken(parser, context | 8192);
|
|
5197
5213
|
if (parser.flags & 1)
|
|
5198
5214
|
report(parser, 90);
|
|
5199
|
-
const argument = parseExpressions(parser, context, privateScope, 0, 1, parser.
|
|
5215
|
+
const argument = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart);
|
|
5200
5216
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5201
|
-
return finishNode(
|
|
5217
|
+
return parser.finishNode({
|
|
5202
5218
|
type: 'ThrowStatement',
|
|
5203
5219
|
argument,
|
|
5204
|
-
});
|
|
5220
|
+
}, start);
|
|
5205
5221
|
}
|
|
5206
|
-
function parseIfStatement(parser, context, scope, privateScope, labels
|
|
5222
|
+
function parseIfStatement(parser, context, scope, privateScope, labels) {
|
|
5223
|
+
const start = parser.tokenStart;
|
|
5207
5224
|
nextToken(parser, context);
|
|
5208
5225
|
consume(parser, context | 8192, 67174411);
|
|
5209
5226
|
parser.assignable = 1;
|
|
5210
|
-
const test = parseExpressions(parser, context, privateScope, 0, 1, parser.
|
|
5227
|
+
const test = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart);
|
|
5211
5228
|
consume(parser, context | 8192, 16);
|
|
5212
|
-
const consequent = parseConsequentOrAlternative(parser, context, scope, privateScope, labels
|
|
5229
|
+
const consequent = parseConsequentOrAlternative(parser, context, scope, privateScope, labels);
|
|
5213
5230
|
let alternate = null;
|
|
5214
5231
|
if (parser.getToken() === 20563) {
|
|
5215
5232
|
nextToken(parser, context | 8192);
|
|
5216
|
-
alternate = parseConsequentOrAlternative(parser, context, scope, privateScope, labels
|
|
5233
|
+
alternate = parseConsequentOrAlternative(parser, context, scope, privateScope, labels);
|
|
5217
5234
|
}
|
|
5218
|
-
return finishNode(
|
|
5235
|
+
return parser.finishNode({
|
|
5219
5236
|
type: 'IfStatement',
|
|
5220
5237
|
test,
|
|
5221
5238
|
consequent,
|
|
5222
5239
|
alternate,
|
|
5223
|
-
});
|
|
5240
|
+
}, start);
|
|
5224
5241
|
}
|
|
5225
|
-
function parseConsequentOrAlternative(parser, context, scope, privateScope, labels
|
|
5242
|
+
function parseConsequentOrAlternative(parser, context, scope, privateScope, labels) {
|
|
5243
|
+
const { tokenStart } = parser;
|
|
5226
5244
|
return context & 256 ||
|
|
5227
5245
|
(context & 64) === 0 ||
|
|
5228
5246
|
parser.getToken() !== 86104
|
|
5229
|
-
? parseStatement(parser, context, scope, privateScope, 0, { $: labels }, 0
|
|
5230
|
-
: parseFunctionDeclaration(parser, context, addChildScope(scope, 2), privateScope, 0, 0, 0, 0,
|
|
5247
|
+
? parseStatement(parser, context, scope, privateScope, 0, { $: labels }, 0)
|
|
5248
|
+
: parseFunctionDeclaration(parser, context, addChildScope(scope, 2), privateScope, 0, 0, 0, 0, tokenStart);
|
|
5231
5249
|
}
|
|
5232
|
-
function parseSwitchStatement(parser, context, scope, privateScope, labels
|
|
5250
|
+
function parseSwitchStatement(parser, context, scope, privateScope, labels) {
|
|
5251
|
+
const start = parser.tokenStart;
|
|
5233
5252
|
nextToken(parser, context);
|
|
5234
5253
|
consume(parser, context | 8192, 67174411);
|
|
5235
|
-
const discriminant = parseExpressions(parser, context, privateScope, 0, 1, parser.
|
|
5254
|
+
const discriminant = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart);
|
|
5236
5255
|
consume(parser, context, 16);
|
|
5237
5256
|
consume(parser, context, 2162700);
|
|
5238
5257
|
const cases = [];
|
|
@@ -5240,11 +5259,11 @@
|
|
|
5240
5259
|
if (scope)
|
|
5241
5260
|
scope = addChildScope(scope, 8);
|
|
5242
5261
|
while (parser.getToken() !== 1074790415) {
|
|
5243
|
-
const {
|
|
5262
|
+
const { tokenStart } = parser;
|
|
5244
5263
|
let test = null;
|
|
5245
5264
|
const consequent = [];
|
|
5246
5265
|
if (consumeOpt(parser, context | 8192, 20556)) {
|
|
5247
|
-
test = parseExpressions(parser, context, privateScope, 0, 1, parser.
|
|
5266
|
+
test = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart);
|
|
5248
5267
|
}
|
|
5249
5268
|
else {
|
|
5250
5269
|
consume(parser, context | 8192, 20561);
|
|
@@ -5260,37 +5279,39 @@
|
|
|
5260
5279
|
$: labels,
|
|
5261
5280
|
}));
|
|
5262
5281
|
}
|
|
5263
|
-
cases.push(finishNode(
|
|
5282
|
+
cases.push(parser.finishNode({
|
|
5264
5283
|
type: 'SwitchCase',
|
|
5265
5284
|
test,
|
|
5266
5285
|
consequent,
|
|
5267
|
-
}));
|
|
5286
|
+
}, tokenStart));
|
|
5268
5287
|
}
|
|
5269
5288
|
consume(parser, context | 8192, 1074790415);
|
|
5270
|
-
return finishNode(
|
|
5289
|
+
return parser.finishNode({
|
|
5271
5290
|
type: 'SwitchStatement',
|
|
5272
5291
|
discriminant,
|
|
5273
5292
|
cases,
|
|
5274
|
-
});
|
|
5293
|
+
}, start);
|
|
5275
5294
|
}
|
|
5276
|
-
function parseWhileStatement(parser, context, scope, privateScope, labels
|
|
5295
|
+
function parseWhileStatement(parser, context, scope, privateScope, labels) {
|
|
5296
|
+
const start = parser.tokenStart;
|
|
5277
5297
|
nextToken(parser, context);
|
|
5278
5298
|
consume(parser, context | 8192, 67174411);
|
|
5279
|
-
const test = parseExpressions(parser, context, privateScope, 0, 1, parser.
|
|
5299
|
+
const test = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart);
|
|
5280
5300
|
consume(parser, context | 8192, 16);
|
|
5281
5301
|
const body = parseIterationStatementBody(parser, context, scope, privateScope, labels);
|
|
5282
|
-
return finishNode(
|
|
5302
|
+
return parser.finishNode({
|
|
5283
5303
|
type: 'WhileStatement',
|
|
5284
5304
|
test,
|
|
5285
5305
|
body,
|
|
5286
|
-
});
|
|
5306
|
+
}, start);
|
|
5287
5307
|
}
|
|
5288
5308
|
function parseIterationStatementBody(parser, context, scope, privateScope, labels) {
|
|
5289
|
-
return parseStatement(parser, ((context | 33554432) ^ 33554432) | 32768, scope, privateScope, 0, { loop: 1, $: labels }, 0
|
|
5309
|
+
return parseStatement(parser, ((context | 33554432) ^ 33554432) | 32768, scope, privateScope, 0, { loop: 1, $: labels }, 0);
|
|
5290
5310
|
}
|
|
5291
|
-
function parseContinueStatement(parser, context, labels
|
|
5311
|
+
function parseContinueStatement(parser, context, labels) {
|
|
5292
5312
|
if ((context & 32768) === 0)
|
|
5293
5313
|
report(parser, 68);
|
|
5314
|
+
const start = parser.tokenStart;
|
|
5294
5315
|
nextToken(parser, context);
|
|
5295
5316
|
let label = null;
|
|
5296
5317
|
if ((parser.flags & 1) === 0 && parser.getToken() & 143360) {
|
|
@@ -5300,12 +5321,13 @@
|
|
|
5300
5321
|
report(parser, 138, tokenValue);
|
|
5301
5322
|
}
|
|
5302
5323
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5303
|
-
return finishNode(
|
|
5324
|
+
return parser.finishNode({
|
|
5304
5325
|
type: 'ContinueStatement',
|
|
5305
5326
|
label,
|
|
5306
|
-
});
|
|
5327
|
+
}, start);
|
|
5307
5328
|
}
|
|
5308
|
-
function parseBreakStatement(parser, context, labels
|
|
5329
|
+
function parseBreakStatement(parser, context, labels) {
|
|
5330
|
+
const start = parser.tokenStart;
|
|
5309
5331
|
nextToken(parser, context | 8192);
|
|
5310
5332
|
let label = null;
|
|
5311
5333
|
if ((parser.flags & 1) === 0 && parser.getToken() & 143360) {
|
|
@@ -5318,58 +5340,61 @@
|
|
|
5318
5340
|
report(parser, 69);
|
|
5319
5341
|
}
|
|
5320
5342
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5321
|
-
return finishNode(
|
|
5343
|
+
return parser.finishNode({
|
|
5322
5344
|
type: 'BreakStatement',
|
|
5323
5345
|
label,
|
|
5324
|
-
});
|
|
5346
|
+
}, start);
|
|
5325
5347
|
}
|
|
5326
|
-
function parseWithStatement(parser, context, scope, privateScope, labels
|
|
5348
|
+
function parseWithStatement(parser, context, scope, privateScope, labels) {
|
|
5349
|
+
const start = parser.tokenStart;
|
|
5327
5350
|
nextToken(parser, context);
|
|
5328
5351
|
if (context & 256)
|
|
5329
5352
|
report(parser, 91);
|
|
5330
5353
|
consume(parser, context | 8192, 67174411);
|
|
5331
|
-
const object = parseExpressions(parser, context, privateScope, 0, 1, parser.
|
|
5354
|
+
const object = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart);
|
|
5332
5355
|
consume(parser, context | 8192, 16);
|
|
5333
|
-
const body = parseStatement(parser, context, scope, privateScope, 2, labels, 0
|
|
5334
|
-
return finishNode(
|
|
5356
|
+
const body = parseStatement(parser, context, scope, privateScope, 2, labels, 0);
|
|
5357
|
+
return parser.finishNode({
|
|
5335
5358
|
type: 'WithStatement',
|
|
5336
5359
|
object,
|
|
5337
5360
|
body,
|
|
5338
|
-
});
|
|
5361
|
+
}, start);
|
|
5339
5362
|
}
|
|
5340
|
-
function parseDebuggerStatement(parser, context
|
|
5363
|
+
function parseDebuggerStatement(parser, context) {
|
|
5364
|
+
const start = parser.tokenStart;
|
|
5341
5365
|
nextToken(parser, context | 8192);
|
|
5342
5366
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5343
|
-
return finishNode(
|
|
5367
|
+
return parser.finishNode({
|
|
5344
5368
|
type: 'DebuggerStatement',
|
|
5345
|
-
});
|
|
5369
|
+
}, start);
|
|
5346
5370
|
}
|
|
5347
|
-
function parseTryStatement(parser, context, scope, privateScope, labels
|
|
5371
|
+
function parseTryStatement(parser, context, scope, privateScope, labels) {
|
|
5372
|
+
const start = parser.tokenStart;
|
|
5348
5373
|
nextToken(parser, context | 8192);
|
|
5349
5374
|
const firstScope = scope ? addChildScope(scope, 32) : void 0;
|
|
5350
|
-
const block = parseBlock(parser, context, firstScope, privateScope, { $: labels }, parser.
|
|
5351
|
-
const {
|
|
5375
|
+
const block = parseBlock(parser, context, firstScope, privateScope, { $: labels }, parser.tokenStart);
|
|
5376
|
+
const { tokenStart } = parser;
|
|
5352
5377
|
const handler = consumeOpt(parser, context | 8192, 20557)
|
|
5353
|
-
? parseCatchBlock(parser, context, scope, privateScope, labels,
|
|
5378
|
+
? parseCatchBlock(parser, context, scope, privateScope, labels, tokenStart)
|
|
5354
5379
|
: null;
|
|
5355
5380
|
let finalizer = null;
|
|
5356
5381
|
if (parser.getToken() === 20566) {
|
|
5357
5382
|
nextToken(parser, context | 8192);
|
|
5358
5383
|
const finalizerScope = firstScope ? addChildScope(scope, 4) : void 0;
|
|
5359
|
-
const block = parseBlock(parser, context, finalizerScope, privateScope, { $: labels }, parser.
|
|
5384
|
+
const block = parseBlock(parser, context, finalizerScope, privateScope, { $: labels }, parser.tokenStart);
|
|
5360
5385
|
finalizer = block;
|
|
5361
5386
|
}
|
|
5362
5387
|
if (!handler && !finalizer) {
|
|
5363
5388
|
report(parser, 88);
|
|
5364
5389
|
}
|
|
5365
|
-
return finishNode(
|
|
5390
|
+
return parser.finishNode({
|
|
5366
5391
|
type: 'TryStatement',
|
|
5367
5392
|
block,
|
|
5368
5393
|
handler,
|
|
5369
5394
|
finalizer,
|
|
5370
|
-
});
|
|
5395
|
+
}, start);
|
|
5371
5396
|
}
|
|
5372
|
-
function parseCatchBlock(parser, context, scope, privateScope, labels, start
|
|
5397
|
+
function parseCatchBlock(parser, context, scope, privateScope, labels, start) {
|
|
5373
5398
|
let param = null;
|
|
5374
5399
|
let additionalScope = scope;
|
|
5375
5400
|
if (consumeOpt(parser, context, 67174411)) {
|
|
@@ -5377,7 +5402,7 @@
|
|
|
5377
5402
|
scope = addChildScope(scope, 4);
|
|
5378
5403
|
param = parseBindingPattern(parser, context, scope, privateScope, (parser.getToken() & 2097152) === 2097152
|
|
5379
5404
|
? 256
|
|
5380
|
-
: 512, 0
|
|
5405
|
+
: 512, 0);
|
|
5381
5406
|
if (parser.getToken() === 18) {
|
|
5382
5407
|
report(parser, 86);
|
|
5383
5408
|
}
|
|
@@ -5388,14 +5413,14 @@
|
|
|
5388
5413
|
}
|
|
5389
5414
|
if (scope)
|
|
5390
5415
|
additionalScope = addChildScope(scope, 64);
|
|
5391
|
-
const body = parseBlock(parser, context, additionalScope, privateScope, { $: labels }, parser.
|
|
5392
|
-
return finishNode(
|
|
5416
|
+
const body = parseBlock(parser, context, additionalScope, privateScope, { $: labels }, parser.tokenStart);
|
|
5417
|
+
return parser.finishNode({
|
|
5393
5418
|
type: 'CatchClause',
|
|
5394
5419
|
param,
|
|
5395
5420
|
body,
|
|
5396
|
-
});
|
|
5421
|
+
}, start);
|
|
5397
5422
|
}
|
|
5398
|
-
function parseStaticBlock(parser, context, scope, privateScope, start
|
|
5423
|
+
function parseStaticBlock(parser, context, scope, privateScope, start) {
|
|
5399
5424
|
if (scope)
|
|
5400
5425
|
scope = addChildScope(scope, 2);
|
|
5401
5426
|
const ctorContext = 131072 | 1048576 | 262144 | 1024 | 32768;
|
|
@@ -5405,76 +5430,79 @@
|
|
|
5405
5430
|
524288 |
|
|
5406
5431
|
268435456 |
|
|
5407
5432
|
16777216;
|
|
5408
|
-
return parseBlock(parser, context, scope, privateScope, {}, start,
|
|
5433
|
+
return parseBlock(parser, context, scope, privateScope, {}, start, 'StaticBlock');
|
|
5409
5434
|
}
|
|
5410
|
-
function parseDoWhileStatement(parser, context, scope, privateScope, labels
|
|
5435
|
+
function parseDoWhileStatement(parser, context, scope, privateScope, labels) {
|
|
5436
|
+
const start = parser.tokenStart;
|
|
5411
5437
|
nextToken(parser, context | 8192);
|
|
5412
5438
|
const body = parseIterationStatementBody(parser, context, scope, privateScope, labels);
|
|
5413
5439
|
consume(parser, context, 20578);
|
|
5414
5440
|
consume(parser, context | 8192, 67174411);
|
|
5415
|
-
const test = parseExpressions(parser, context, privateScope, 0, 1, parser.
|
|
5441
|
+
const test = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart);
|
|
5416
5442
|
consume(parser, context | 8192, 16);
|
|
5417
5443
|
consumeOpt(parser, context | 8192, 1074790417);
|
|
5418
|
-
return finishNode(
|
|
5444
|
+
return parser.finishNode({
|
|
5419
5445
|
type: 'DoWhileStatement',
|
|
5420
5446
|
body,
|
|
5421
5447
|
test,
|
|
5422
|
-
});
|
|
5448
|
+
}, start);
|
|
5423
5449
|
}
|
|
5424
|
-
function parseLetIdentOrVarDeclarationStatement(parser, context, scope, privateScope, origin
|
|
5425
|
-
const { tokenValue } = parser;
|
|
5450
|
+
function parseLetIdentOrVarDeclarationStatement(parser, context, scope, privateScope, origin) {
|
|
5451
|
+
const { tokenValue, tokenStart } = parser;
|
|
5426
5452
|
const token = parser.getToken();
|
|
5427
5453
|
let expr = parseIdentifier(parser, context);
|
|
5428
5454
|
if (parser.getToken() & (143360 | 2097152)) {
|
|
5429
5455
|
const declarations = parseVariableDeclarationList(parser, context, scope, privateScope, 8, 0);
|
|
5430
5456
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5431
|
-
return finishNode(
|
|
5457
|
+
return parser.finishNode({
|
|
5432
5458
|
type: 'VariableDeclaration',
|
|
5433
5459
|
kind: 'let',
|
|
5434
5460
|
declarations,
|
|
5435
|
-
});
|
|
5461
|
+
}, tokenStart);
|
|
5436
5462
|
}
|
|
5437
5463
|
parser.assignable = 1;
|
|
5438
5464
|
if (context & 256)
|
|
5439
5465
|
report(parser, 85);
|
|
5440
5466
|
if (parser.getToken() === 21) {
|
|
5441
|
-
return parseLabelledStatement(parser, context, scope, privateScope, origin, {}, tokenValue, expr, token, 0,
|
|
5467
|
+
return parseLabelledStatement(parser, context, scope, privateScope, origin, {}, tokenValue, expr, token, 0, tokenStart);
|
|
5442
5468
|
}
|
|
5443
5469
|
if (parser.getToken() === 10) {
|
|
5444
5470
|
let scope = void 0;
|
|
5445
5471
|
if (context & 16)
|
|
5446
5472
|
scope = createArrowHeadParsingScope(parser, context, tokenValue);
|
|
5447
5473
|
parser.flags = (parser.flags | 128) ^ 128;
|
|
5448
|
-
expr = parseArrowFunctionExpression(parser, context, scope, privateScope, [expr], 0,
|
|
5474
|
+
expr = parseArrowFunctionExpression(parser, context, scope, privateScope, [expr], 0, tokenStart);
|
|
5449
5475
|
}
|
|
5450
5476
|
else {
|
|
5451
|
-
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0,
|
|
5452
|
-
expr = parseAssignmentExpression(parser, context, privateScope, 0, 0,
|
|
5477
|
+
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, tokenStart);
|
|
5478
|
+
expr = parseAssignmentExpression(parser, context, privateScope, 0, 0, tokenStart, expr);
|
|
5453
5479
|
}
|
|
5454
5480
|
if (parser.getToken() === 18) {
|
|
5455
|
-
expr = parseSequenceExpression(parser, context, privateScope, 0,
|
|
5481
|
+
expr = parseSequenceExpression(parser, context, privateScope, 0, tokenStart, expr);
|
|
5456
5482
|
}
|
|
5457
|
-
return parseExpressionStatement(parser, context, expr,
|
|
5483
|
+
return parseExpressionStatement(parser, context, expr, tokenStart);
|
|
5458
5484
|
}
|
|
5459
|
-
function parseLexicalDeclaration(parser, context, scope, privateScope, kind, origin
|
|
5485
|
+
function parseLexicalDeclaration(parser, context, scope, privateScope, kind, origin) {
|
|
5486
|
+
const start = parser.tokenStart;
|
|
5460
5487
|
nextToken(parser, context);
|
|
5461
5488
|
const declarations = parseVariableDeclarationList(parser, context, scope, privateScope, kind, origin);
|
|
5462
5489
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5463
|
-
return finishNode(
|
|
5490
|
+
return parser.finishNode({
|
|
5464
5491
|
type: 'VariableDeclaration',
|
|
5465
5492
|
kind: kind & 8 ? 'let' : 'const',
|
|
5466
5493
|
declarations,
|
|
5467
|
-
});
|
|
5494
|
+
}, start);
|
|
5468
5495
|
}
|
|
5469
|
-
function parseVariableStatement(parser, context, scope, privateScope, origin
|
|
5496
|
+
function parseVariableStatement(parser, context, scope, privateScope, origin) {
|
|
5497
|
+
const start = parser.tokenStart;
|
|
5470
5498
|
nextToken(parser, context);
|
|
5471
5499
|
const declarations = parseVariableDeclarationList(parser, context, scope, privateScope, 4, origin);
|
|
5472
5500
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5473
|
-
return finishNode(
|
|
5501
|
+
return parser.finishNode({
|
|
5474
5502
|
type: 'VariableDeclaration',
|
|
5475
5503
|
kind: 'var',
|
|
5476
5504
|
declarations,
|
|
5477
|
-
});
|
|
5505
|
+
}, start);
|
|
5478
5506
|
}
|
|
5479
5507
|
function parseVariableDeclarationList(parser, context, scope, privateScope, kind, origin) {
|
|
5480
5508
|
let bindingCount = 1;
|
|
@@ -5491,18 +5519,18 @@
|
|
|
5491
5519
|
return list;
|
|
5492
5520
|
}
|
|
5493
5521
|
function parseVariableDeclaration(parser, context, scope, privateScope, kind, origin) {
|
|
5494
|
-
const {
|
|
5522
|
+
const { tokenStart } = parser;
|
|
5495
5523
|
const token = parser.getToken();
|
|
5496
5524
|
let init = null;
|
|
5497
|
-
const id = parseBindingPattern(parser, context, scope, privateScope, kind, origin
|
|
5525
|
+
const id = parseBindingPattern(parser, context, scope, privateScope, kind, origin);
|
|
5498
5526
|
if (parser.getToken() === 1077936155) {
|
|
5499
5527
|
nextToken(parser, context | 8192);
|
|
5500
|
-
init = parseExpression(parser, context, privateScope, 1, 0, parser.
|
|
5528
|
+
init = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart);
|
|
5501
5529
|
if (origin & 32 || (token & 2097152) === 0) {
|
|
5502
5530
|
if (parser.getToken() === 471156 ||
|
|
5503
5531
|
(parser.getToken() === 8673330 &&
|
|
5504
5532
|
(token & 2097152 || (kind & 4) === 0 || context & 256))) {
|
|
5505
|
-
reportMessageAt(
|
|
5533
|
+
reportMessageAt(tokenStart, parser.currentLocation, 60, parser.getToken() === 471156 ? 'of' : 'in');
|
|
5506
5534
|
}
|
|
5507
5535
|
}
|
|
5508
5536
|
}
|
|
@@ -5510,13 +5538,14 @@
|
|
|
5510
5538
|
(parser.getToken() & 262144) !== 262144) {
|
|
5511
5539
|
report(parser, 59, kind & 16 ? 'const' : 'destructuring');
|
|
5512
5540
|
}
|
|
5513
|
-
return finishNode(
|
|
5541
|
+
return parser.finishNode({
|
|
5514
5542
|
type: 'VariableDeclarator',
|
|
5515
5543
|
id,
|
|
5516
5544
|
init,
|
|
5517
|
-
});
|
|
5545
|
+
}, tokenStart);
|
|
5518
5546
|
}
|
|
5519
|
-
function parseForStatement(parser, context, scope, privateScope, labels
|
|
5547
|
+
function parseForStatement(parser, context, scope, privateScope, labels) {
|
|
5548
|
+
const start = parser.tokenStart;
|
|
5520
5549
|
nextToken(parser, context);
|
|
5521
5550
|
const forAwait = ((context & 524288) > 0 || ((context & 512) > 0 && (context & 2048) > 0)) &&
|
|
5522
5551
|
consumeOpt(parser, context, 209006);
|
|
@@ -5531,7 +5560,7 @@
|
|
|
5531
5560
|
parser.getToken() === 241737 ||
|
|
5532
5561
|
parser.getToken() === 86090;
|
|
5533
5562
|
let right;
|
|
5534
|
-
const {
|
|
5563
|
+
const { tokenStart } = parser;
|
|
5535
5564
|
const token = parser.getToken();
|
|
5536
5565
|
if (isVarDecl) {
|
|
5537
5566
|
if (token === 241737) {
|
|
@@ -5542,11 +5571,11 @@
|
|
|
5542
5571
|
report(parser, 67);
|
|
5543
5572
|
}
|
|
5544
5573
|
else {
|
|
5545
|
-
init = finishNode(
|
|
5574
|
+
init = parser.finishNode({
|
|
5546
5575
|
type: 'VariableDeclaration',
|
|
5547
5576
|
kind: 'let',
|
|
5548
5577
|
declarations: parseVariableDeclarationList(parser, context | 33554432, scope, privateScope, 8, 32),
|
|
5549
|
-
});
|
|
5578
|
+
}, tokenStart);
|
|
5550
5579
|
}
|
|
5551
5580
|
parser.assignable = 1;
|
|
5552
5581
|
}
|
|
@@ -5556,14 +5585,14 @@
|
|
|
5556
5585
|
else {
|
|
5557
5586
|
isVarDecl = false;
|
|
5558
5587
|
parser.assignable = 1;
|
|
5559
|
-
init = parseMemberOrUpdateExpression(parser, context, privateScope, init, 0, 0,
|
|
5588
|
+
init = parseMemberOrUpdateExpression(parser, context, privateScope, init, 0, 0, tokenStart);
|
|
5560
5589
|
if (parser.getToken() === 471156)
|
|
5561
5590
|
report(parser, 115);
|
|
5562
5591
|
}
|
|
5563
5592
|
}
|
|
5564
5593
|
else {
|
|
5565
5594
|
nextToken(parser, context);
|
|
5566
|
-
init = finishNode(
|
|
5595
|
+
init = parser.finishNode(token === 86088
|
|
5567
5596
|
? {
|
|
5568
5597
|
type: 'VariableDeclaration',
|
|
5569
5598
|
kind: 'var',
|
|
@@ -5573,7 +5602,7 @@
|
|
|
5573
5602
|
type: 'VariableDeclaration',
|
|
5574
5603
|
kind: 'const',
|
|
5575
5604
|
declarations: parseVariableDeclarationList(parser, context | 33554432, scope, privateScope, 16, 32),
|
|
5576
|
-
});
|
|
5605
|
+
}, tokenStart);
|
|
5577
5606
|
parser.assignable = 1;
|
|
5578
5607
|
}
|
|
5579
5608
|
}
|
|
@@ -5582,20 +5611,21 @@
|
|
|
5582
5611
|
report(parser, 82);
|
|
5583
5612
|
}
|
|
5584
5613
|
else if ((token & 2097152) === 2097152) {
|
|
5614
|
+
const patternStart = parser.tokenStart;
|
|
5585
5615
|
init =
|
|
5586
5616
|
token === 2162700
|
|
5587
|
-
? parseObjectLiteralOrPattern(parser, context, void 0, privateScope, 1, 0, 0, 2, 32
|
|
5588
|
-
: parseArrayExpressionOrPattern(parser, context, void 0, privateScope, 1, 0, 0, 2, 32
|
|
5617
|
+
? parseObjectLiteralOrPattern(parser, context, void 0, privateScope, 1, 0, 0, 2, 32)
|
|
5618
|
+
: parseArrayExpressionOrPattern(parser, context, void 0, privateScope, 1, 0, 0, 2, 32);
|
|
5589
5619
|
destructible = parser.destructible;
|
|
5590
5620
|
if (destructible & 64) {
|
|
5591
5621
|
report(parser, 63);
|
|
5592
5622
|
}
|
|
5593
5623
|
parser.assignable =
|
|
5594
5624
|
destructible & 16 ? 2 : 1;
|
|
5595
|
-
init = parseMemberOrUpdateExpression(parser, context | 33554432, privateScope, init, 0, 0,
|
|
5625
|
+
init = parseMemberOrUpdateExpression(parser, context | 33554432, privateScope, init, 0, 0, patternStart);
|
|
5596
5626
|
}
|
|
5597
5627
|
else {
|
|
5598
|
-
init = parseLeftHandSideExpression(parser, context | 33554432, privateScope, 1, 0, 1
|
|
5628
|
+
init = parseLeftHandSideExpression(parser, context | 33554432, privateScope, 1, 0, 1);
|
|
5599
5629
|
}
|
|
5600
5630
|
if ((parser.getToken() & 262144) === 262144) {
|
|
5601
5631
|
if (parser.getToken() === 471156) {
|
|
@@ -5603,16 +5633,16 @@
|
|
|
5603
5633
|
report(parser, 80, forAwait ? 'await' : 'of');
|
|
5604
5634
|
reinterpretToPattern(parser, init);
|
|
5605
5635
|
nextToken(parser, context | 8192);
|
|
5606
|
-
right = parseExpression(parser, context, privateScope, 1, 0, parser.
|
|
5636
|
+
right = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart);
|
|
5607
5637
|
consume(parser, context | 8192, 16);
|
|
5608
5638
|
const body = parseIterationStatementBody(parser, context, scope, privateScope, labels);
|
|
5609
|
-
return finishNode(
|
|
5639
|
+
return parser.finishNode({
|
|
5610
5640
|
type: 'ForOfStatement',
|
|
5611
5641
|
left: init,
|
|
5612
5642
|
right,
|
|
5613
5643
|
body,
|
|
5614
5644
|
await: forAwait,
|
|
5615
|
-
});
|
|
5645
|
+
}, start);
|
|
5616
5646
|
}
|
|
5617
5647
|
if (parser.assignable & 2)
|
|
5618
5648
|
report(parser, 80, 'in');
|
|
@@ -5620,15 +5650,15 @@
|
|
|
5620
5650
|
nextToken(parser, context | 8192);
|
|
5621
5651
|
if (forAwait)
|
|
5622
5652
|
report(parser, 82);
|
|
5623
|
-
right = parseExpressions(parser, context, privateScope, 0, 1, parser.
|
|
5653
|
+
right = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart);
|
|
5624
5654
|
consume(parser, context | 8192, 16);
|
|
5625
5655
|
const body = parseIterationStatementBody(parser, context, scope, privateScope, labels);
|
|
5626
|
-
return finishNode(
|
|
5656
|
+
return parser.finishNode({
|
|
5627
5657
|
type: 'ForInStatement',
|
|
5628
5658
|
body,
|
|
5629
5659
|
left: init,
|
|
5630
5660
|
right,
|
|
5631
|
-
});
|
|
5661
|
+
}, start);
|
|
5632
5662
|
}
|
|
5633
5663
|
if (forAwait)
|
|
5634
5664
|
report(parser, 82);
|
|
@@ -5636,25 +5666,25 @@
|
|
|
5636
5666
|
if (destructible & 8 && parser.getToken() !== 1077936155) {
|
|
5637
5667
|
report(parser, 80, 'loop');
|
|
5638
5668
|
}
|
|
5639
|
-
init = parseAssignmentExpression(parser, context | 33554432, privateScope, 0, 0,
|
|
5669
|
+
init = parseAssignmentExpression(parser, context | 33554432, privateScope, 0, 0, tokenStart, init);
|
|
5640
5670
|
}
|
|
5641
5671
|
if (parser.getToken() === 18)
|
|
5642
|
-
init = parseSequenceExpression(parser, context, privateScope, 0, parser.
|
|
5672
|
+
init = parseSequenceExpression(parser, context, privateScope, 0, parser.tokenStart, init);
|
|
5643
5673
|
consume(parser, context | 8192, 1074790417);
|
|
5644
5674
|
if (parser.getToken() !== 1074790417)
|
|
5645
|
-
test = parseExpressions(parser, context, privateScope, 0, 1, parser.
|
|
5675
|
+
test = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart);
|
|
5646
5676
|
consume(parser, context | 8192, 1074790417);
|
|
5647
5677
|
if (parser.getToken() !== 16)
|
|
5648
|
-
update = parseExpressions(parser, context, privateScope, 0, 1, parser.
|
|
5678
|
+
update = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart);
|
|
5649
5679
|
consume(parser, context | 8192, 16);
|
|
5650
5680
|
const body = parseIterationStatementBody(parser, context, scope, privateScope, labels);
|
|
5651
|
-
return finishNode(
|
|
5681
|
+
return parser.finishNode({
|
|
5652
5682
|
type: 'ForStatement',
|
|
5653
5683
|
init,
|
|
5654
5684
|
test,
|
|
5655
5685
|
update,
|
|
5656
5686
|
body,
|
|
5657
|
-
});
|
|
5687
|
+
}, start);
|
|
5658
5688
|
}
|
|
5659
5689
|
function parseRestrictedIdentifier(parser, context, scope) {
|
|
5660
5690
|
if (!isValidIdentifier(context, parser.getToken()))
|
|
@@ -5666,12 +5696,10 @@
|
|
|
5666
5696
|
return parseIdentifier(parser, context);
|
|
5667
5697
|
}
|
|
5668
5698
|
function parseImportDeclaration(parser, context, scope) {
|
|
5669
|
-
const start = parser.
|
|
5670
|
-
const line = parser.tokenLine;
|
|
5671
|
-
const column = parser.tokenColumn;
|
|
5699
|
+
const start = parser.tokenStart;
|
|
5672
5700
|
nextToken(parser, context);
|
|
5673
5701
|
let source = null;
|
|
5674
|
-
const {
|
|
5702
|
+
const { tokenStart } = parser;
|
|
5675
5703
|
let specifiers = [];
|
|
5676
5704
|
if (parser.getToken() === 134283267) {
|
|
5677
5705
|
source = parseLiteral(parser, context);
|
|
@@ -5680,10 +5708,10 @@
|
|
|
5680
5708
|
if (parser.getToken() & 143360) {
|
|
5681
5709
|
const local = parseRestrictedIdentifier(parser, context, scope);
|
|
5682
5710
|
specifiers = [
|
|
5683
|
-
finishNode(
|
|
5711
|
+
parser.finishNode({
|
|
5684
5712
|
type: 'ImportDefaultSpecifier',
|
|
5685
5713
|
local,
|
|
5686
|
-
}),
|
|
5714
|
+
}, tokenStart),
|
|
5687
5715
|
];
|
|
5688
5716
|
if (consumeOpt(parser, context, 18)) {
|
|
5689
5717
|
switch (parser.getToken()) {
|
|
@@ -5707,9 +5735,9 @@
|
|
|
5707
5735
|
parseImportSpecifierOrNamedImports(parser, context, scope, specifiers);
|
|
5708
5736
|
break;
|
|
5709
5737
|
case 67174411:
|
|
5710
|
-
return parseImportCallDeclaration(parser, context, undefined, start
|
|
5738
|
+
return parseImportCallDeclaration(parser, context, undefined, start);
|
|
5711
5739
|
case 67108877:
|
|
5712
|
-
return parseImportMetaDeclaration(parser, context, start
|
|
5740
|
+
return parseImportMetaDeclaration(parser, context, start);
|
|
5713
5741
|
default:
|
|
5714
5742
|
report(parser, 30, KeywordDescTable[parser.getToken() & 255]);
|
|
5715
5743
|
}
|
|
@@ -5724,19 +5752,19 @@
|
|
|
5724
5752
|
attributes,
|
|
5725
5753
|
};
|
|
5726
5754
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5727
|
-
return finishNode(
|
|
5755
|
+
return parser.finishNode(node, start);
|
|
5728
5756
|
}
|
|
5729
5757
|
function parseImportNamespaceSpecifier(parser, context, scope) {
|
|
5730
|
-
const {
|
|
5758
|
+
const { tokenStart } = parser;
|
|
5731
5759
|
nextToken(parser, context);
|
|
5732
5760
|
consume(parser, context, 77932);
|
|
5733
5761
|
if ((parser.getToken() & 134217728) === 134217728) {
|
|
5734
|
-
reportMessageAt(
|
|
5762
|
+
reportMessageAt(tokenStart, parser.currentLocation, 30, KeywordDescTable[parser.getToken() & 255]);
|
|
5735
5763
|
}
|
|
5736
|
-
return finishNode(
|
|
5764
|
+
return parser.finishNode({
|
|
5737
5765
|
type: 'ImportNamespaceSpecifier',
|
|
5738
5766
|
local: parseRestrictedIdentifier(parser, context, scope),
|
|
5739
|
-
});
|
|
5767
|
+
}, tokenStart);
|
|
5740
5768
|
}
|
|
5741
5769
|
function parseModuleSpecifier(parser, context) {
|
|
5742
5770
|
consume(parser, context, 209011);
|
|
@@ -5747,7 +5775,7 @@
|
|
|
5747
5775
|
function parseImportSpecifierOrNamedImports(parser, context, scope, specifiers) {
|
|
5748
5776
|
nextToken(parser, context);
|
|
5749
5777
|
while (parser.getToken() & 143360 || parser.getToken() === 134283267) {
|
|
5750
|
-
let { tokenValue,
|
|
5778
|
+
let { tokenValue, tokenStart } = parser;
|
|
5751
5779
|
const token = parser.getToken();
|
|
5752
5780
|
const imported = parseModuleExportName(parser, context);
|
|
5753
5781
|
let local;
|
|
@@ -5771,41 +5799,39 @@
|
|
|
5771
5799
|
}
|
|
5772
5800
|
if (scope)
|
|
5773
5801
|
addBlockName(parser, context, scope, tokenValue, 8, 0);
|
|
5774
|
-
specifiers.push(finishNode(
|
|
5802
|
+
specifiers.push(parser.finishNode({
|
|
5775
5803
|
type: 'ImportSpecifier',
|
|
5776
5804
|
local,
|
|
5777
5805
|
imported,
|
|
5778
|
-
}));
|
|
5806
|
+
}, tokenStart));
|
|
5779
5807
|
if (parser.getToken() !== 1074790415)
|
|
5780
5808
|
consume(parser, context, 18);
|
|
5781
5809
|
}
|
|
5782
5810
|
consume(parser, context, 1074790415);
|
|
5783
5811
|
return specifiers;
|
|
5784
5812
|
}
|
|
5785
|
-
function parseImportMetaDeclaration(parser, context, start
|
|
5786
|
-
let expr = parseImportMetaExpression(parser, context, finishNode(
|
|
5813
|
+
function parseImportMetaDeclaration(parser, context, start) {
|
|
5814
|
+
let expr = parseImportMetaExpression(parser, context, parser.finishNode({
|
|
5787
5815
|
type: 'Identifier',
|
|
5788
5816
|
name: 'import',
|
|
5789
|
-
}
|
|
5790
|
-
expr = parseMemberOrUpdateExpression(parser, context, undefined, expr, 0, 0, start
|
|
5791
|
-
expr = parseAssignmentExpression(parser, context, undefined, 0, 0, start,
|
|
5817
|
+
}, start), start);
|
|
5818
|
+
expr = parseMemberOrUpdateExpression(parser, context, undefined, expr, 0, 0, start);
|
|
5819
|
+
expr = parseAssignmentExpression(parser, context, undefined, 0, 0, start, expr);
|
|
5792
5820
|
if (parser.getToken() === 18) {
|
|
5793
|
-
expr = parseSequenceExpression(parser, context, undefined, 0, start,
|
|
5821
|
+
expr = parseSequenceExpression(parser, context, undefined, 0, start, expr);
|
|
5794
5822
|
}
|
|
5795
|
-
return parseExpressionStatement(parser, context, expr, start
|
|
5823
|
+
return parseExpressionStatement(parser, context, expr, start);
|
|
5796
5824
|
}
|
|
5797
|
-
function parseImportCallDeclaration(parser, context, privateScope, start
|
|
5798
|
-
let expr = parseImportExpression(parser, context, privateScope, 0, start
|
|
5799
|
-
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, start
|
|
5825
|
+
function parseImportCallDeclaration(parser, context, privateScope, start) {
|
|
5826
|
+
let expr = parseImportExpression(parser, context, privateScope, 0, start);
|
|
5827
|
+
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, start);
|
|
5800
5828
|
if (parser.getToken() === 18) {
|
|
5801
|
-
expr = parseSequenceExpression(parser, context, privateScope, 0, start,
|
|
5829
|
+
expr = parseSequenceExpression(parser, context, privateScope, 0, start, expr);
|
|
5802
5830
|
}
|
|
5803
|
-
return parseExpressionStatement(parser, context, expr, start
|
|
5831
|
+
return parseExpressionStatement(parser, context, expr, start);
|
|
5804
5832
|
}
|
|
5805
5833
|
function parseExportDeclaration(parser, context, scope) {
|
|
5806
|
-
const start = parser.
|
|
5807
|
-
const line = parser.tokenLine;
|
|
5808
|
-
const column = parser.tokenColumn;
|
|
5834
|
+
const start = parser.leadingDecorators.decorators.length ? parser.leadingDecorators.start : parser.tokenStart;
|
|
5809
5835
|
nextToken(parser, context | 8192);
|
|
5810
5836
|
const specifiers = [];
|
|
5811
5837
|
let declaration = null;
|
|
@@ -5814,47 +5840,47 @@
|
|
|
5814
5840
|
if (consumeOpt(parser, context | 8192, 20561)) {
|
|
5815
5841
|
switch (parser.getToken()) {
|
|
5816
5842
|
case 86104: {
|
|
5817
|
-
declaration = parseFunctionDeclaration(parser, context, scope, undefined, 4, 1, 1, 0, parser.
|
|
5843
|
+
declaration = parseFunctionDeclaration(parser, context, scope, undefined, 4, 1, 1, 0, parser.tokenStart);
|
|
5818
5844
|
break;
|
|
5819
5845
|
}
|
|
5820
5846
|
case 132:
|
|
5821
5847
|
case 86094:
|
|
5822
|
-
declaration = parseClassDeclaration(parser, context, scope, undefined, 1
|
|
5848
|
+
declaration = parseClassDeclaration(parser, context, scope, undefined, 1);
|
|
5823
5849
|
break;
|
|
5824
5850
|
case 209005: {
|
|
5825
|
-
const {
|
|
5851
|
+
const { tokenStart } = parser;
|
|
5826
5852
|
declaration = parseIdentifier(parser, context);
|
|
5827
5853
|
const { flags } = parser;
|
|
5828
5854
|
if ((flags & 1) === 0) {
|
|
5829
5855
|
if (parser.getToken() === 86104) {
|
|
5830
|
-
declaration = parseFunctionDeclaration(parser, context, scope, undefined, 4, 1, 1, 1,
|
|
5856
|
+
declaration = parseFunctionDeclaration(parser, context, scope, undefined, 4, 1, 1, 1, tokenStart);
|
|
5831
5857
|
}
|
|
5832
5858
|
else {
|
|
5833
5859
|
if (parser.getToken() === 67174411) {
|
|
5834
|
-
declaration = parseAsyncArrowOrCallExpression(parser, context, undefined, declaration, 1, 1, 0, flags,
|
|
5835
|
-
declaration = parseMemberOrUpdateExpression(parser, context, undefined, declaration, 0, 0,
|
|
5836
|
-
declaration = parseAssignmentExpression(parser, context, undefined, 0, 0,
|
|
5860
|
+
declaration = parseAsyncArrowOrCallExpression(parser, context, undefined, declaration, 1, 1, 0, flags, tokenStart);
|
|
5861
|
+
declaration = parseMemberOrUpdateExpression(parser, context, undefined, declaration, 0, 0, tokenStart);
|
|
5862
|
+
declaration = parseAssignmentExpression(parser, context, undefined, 0, 0, tokenStart, declaration);
|
|
5837
5863
|
}
|
|
5838
5864
|
else if (parser.getToken() & 143360) {
|
|
5839
5865
|
if (scope)
|
|
5840
5866
|
scope = createArrowHeadParsingScope(parser, context, parser.tokenValue);
|
|
5841
5867
|
declaration = parseIdentifier(parser, context);
|
|
5842
|
-
declaration = parseArrowFunctionExpression(parser, context, scope, undefined, [declaration], 1,
|
|
5868
|
+
declaration = parseArrowFunctionExpression(parser, context, scope, undefined, [declaration], 1, tokenStart);
|
|
5843
5869
|
}
|
|
5844
5870
|
}
|
|
5845
5871
|
}
|
|
5846
5872
|
break;
|
|
5847
5873
|
}
|
|
5848
5874
|
default:
|
|
5849
|
-
declaration = parseExpression(parser, context, undefined, 1, 0, parser.
|
|
5875
|
+
declaration = parseExpression(parser, context, undefined, 1, 0, parser.tokenStart);
|
|
5850
5876
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5851
5877
|
}
|
|
5852
5878
|
if (scope)
|
|
5853
5879
|
declareUnboundVariable(parser, 'default');
|
|
5854
|
-
return finishNode(
|
|
5880
|
+
return parser.finishNode({
|
|
5855
5881
|
type: 'ExportDefaultDeclaration',
|
|
5856
5882
|
declaration,
|
|
5857
|
-
});
|
|
5883
|
+
}, start);
|
|
5858
5884
|
}
|
|
5859
5885
|
switch (parser.getToken()) {
|
|
5860
5886
|
case 8391476: {
|
|
@@ -5878,7 +5904,7 @@
|
|
|
5878
5904
|
attributes,
|
|
5879
5905
|
};
|
|
5880
5906
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5881
|
-
return finishNode(
|
|
5907
|
+
return parser.finishNode(node, start);
|
|
5882
5908
|
}
|
|
5883
5909
|
case 2162700: {
|
|
5884
5910
|
nextToken(parser, context);
|
|
@@ -5886,7 +5912,7 @@
|
|
|
5886
5912
|
const tmpExportedBindings = [];
|
|
5887
5913
|
let hasLiteralLocal = 0;
|
|
5888
5914
|
while (parser.getToken() & 143360 || parser.getToken() === 134283267) {
|
|
5889
|
-
const {
|
|
5915
|
+
const { tokenStart, tokenValue } = parser;
|
|
5890
5916
|
const local = parseModuleExportName(parser, context);
|
|
5891
5917
|
if (local.type === 'Literal') {
|
|
5892
5918
|
hasLiteralLocal = 1;
|
|
@@ -5910,11 +5936,11 @@
|
|
|
5910
5936
|
}
|
|
5911
5937
|
exported = local;
|
|
5912
5938
|
}
|
|
5913
|
-
specifiers.push(finishNode(
|
|
5939
|
+
specifiers.push(parser.finishNode({
|
|
5914
5940
|
type: 'ExportSpecifier',
|
|
5915
5941
|
local,
|
|
5916
5942
|
exported,
|
|
5917
|
-
}));
|
|
5943
|
+
}, tokenStart));
|
|
5918
5944
|
if (parser.getToken() !== 1074790415)
|
|
5919
5945
|
consume(parser, context, 18);
|
|
5920
5946
|
}
|
|
@@ -5940,26 +5966,27 @@
|
|
|
5940
5966
|
matchOrInsertSemicolon(parser, context | 8192);
|
|
5941
5967
|
break;
|
|
5942
5968
|
}
|
|
5969
|
+
case 132:
|
|
5943
5970
|
case 86094:
|
|
5944
|
-
declaration = parseClassDeclaration(parser, context, scope, undefined, 2
|
|
5971
|
+
declaration = parseClassDeclaration(parser, context, scope, undefined, 2);
|
|
5945
5972
|
break;
|
|
5946
5973
|
case 86104:
|
|
5947
|
-
declaration = parseFunctionDeclaration(parser, context, scope, undefined, 4, 1, 2, 0, parser.
|
|
5974
|
+
declaration = parseFunctionDeclaration(parser, context, scope, undefined, 4, 1, 2, 0, parser.tokenStart);
|
|
5948
5975
|
break;
|
|
5949
5976
|
case 241737:
|
|
5950
|
-
declaration = parseLexicalDeclaration(parser, context, scope, undefined, 8, 64
|
|
5977
|
+
declaration = parseLexicalDeclaration(parser, context, scope, undefined, 8, 64);
|
|
5951
5978
|
break;
|
|
5952
5979
|
case 86090:
|
|
5953
|
-
declaration = parseLexicalDeclaration(parser, context, scope, undefined, 16, 64
|
|
5980
|
+
declaration = parseLexicalDeclaration(parser, context, scope, undefined, 16, 64);
|
|
5954
5981
|
break;
|
|
5955
5982
|
case 86088:
|
|
5956
|
-
declaration = parseVariableStatement(parser, context, scope, undefined, 64
|
|
5983
|
+
declaration = parseVariableStatement(parser, context, scope, undefined, 64);
|
|
5957
5984
|
break;
|
|
5958
5985
|
case 209005: {
|
|
5959
|
-
const {
|
|
5986
|
+
const { tokenStart } = parser;
|
|
5960
5987
|
nextToken(parser, context);
|
|
5961
5988
|
if ((parser.flags & 1) === 0 && parser.getToken() === 86104) {
|
|
5962
|
-
declaration = parseFunctionDeclaration(parser, context, scope, undefined, 4, 1, 2, 1,
|
|
5989
|
+
declaration = parseFunctionDeclaration(parser, context, scope, undefined, 4, 1, 2, 1, tokenStart);
|
|
5963
5990
|
break;
|
|
5964
5991
|
}
|
|
5965
5992
|
}
|
|
@@ -5973,30 +6000,30 @@
|
|
|
5973
6000
|
source,
|
|
5974
6001
|
attributes: attributes,
|
|
5975
6002
|
};
|
|
5976
|
-
return finishNode(
|
|
6003
|
+
return parser.finishNode(node, start);
|
|
5977
6004
|
}
|
|
5978
|
-
function parseExpression(parser, context, privateScope, canAssign, inGroup, start
|
|
5979
|
-
let expr = parsePrimaryExpression(parser, context, privateScope, 2, 0, canAssign, inGroup, 1, start
|
|
5980
|
-
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, inGroup, 0, start
|
|
5981
|
-
return parseAssignmentExpression(parser, context, privateScope, inGroup, 0, start,
|
|
6005
|
+
function parseExpression(parser, context, privateScope, canAssign, inGroup, start) {
|
|
6006
|
+
let expr = parsePrimaryExpression(parser, context, privateScope, 2, 0, canAssign, inGroup, 1, start);
|
|
6007
|
+
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, inGroup, 0, start);
|
|
6008
|
+
return parseAssignmentExpression(parser, context, privateScope, inGroup, 0, start, expr);
|
|
5982
6009
|
}
|
|
5983
|
-
function parseSequenceExpression(parser, context, privateScope, inGroup, start,
|
|
6010
|
+
function parseSequenceExpression(parser, context, privateScope, inGroup, start, expr) {
|
|
5984
6011
|
const expressions = [expr];
|
|
5985
6012
|
while (consumeOpt(parser, context | 8192, 18)) {
|
|
5986
|
-
expressions.push(parseExpression(parser, context, privateScope, 1, inGroup, parser.
|
|
6013
|
+
expressions.push(parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart));
|
|
5987
6014
|
}
|
|
5988
|
-
return finishNode(
|
|
6015
|
+
return parser.finishNode({
|
|
5989
6016
|
type: 'SequenceExpression',
|
|
5990
6017
|
expressions,
|
|
5991
|
-
});
|
|
6018
|
+
}, start);
|
|
5992
6019
|
}
|
|
5993
|
-
function parseExpressions(parser, context, privateScope, inGroup, canAssign, start
|
|
5994
|
-
const expr = parseExpression(parser, context, privateScope, canAssign, inGroup, start
|
|
6020
|
+
function parseExpressions(parser, context, privateScope, inGroup, canAssign, start) {
|
|
6021
|
+
const expr = parseExpression(parser, context, privateScope, canAssign, inGroup, start);
|
|
5995
6022
|
return parser.getToken() === 18
|
|
5996
|
-
? parseSequenceExpression(parser, context, privateScope, inGroup, start,
|
|
6023
|
+
? parseSequenceExpression(parser, context, privateScope, inGroup, start, expr)
|
|
5997
6024
|
: expr;
|
|
5998
6025
|
}
|
|
5999
|
-
function parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, start,
|
|
6026
|
+
function parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, start, left) {
|
|
6000
6027
|
const token = parser.getToken();
|
|
6001
6028
|
if ((token & 4194304) === 4194304) {
|
|
6002
6029
|
if (parser.assignable & 2)
|
|
@@ -6006,9 +6033,9 @@
|
|
|
6006
6033
|
reinterpretToPattern(parser, left);
|
|
6007
6034
|
}
|
|
6008
6035
|
nextToken(parser, context | 8192);
|
|
6009
|
-
const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.
|
|
6036
|
+
const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart);
|
|
6010
6037
|
parser.assignable = 2;
|
|
6011
|
-
return finishNode(
|
|
6038
|
+
return parser.finishNode(isPattern
|
|
6012
6039
|
? {
|
|
6013
6040
|
type: 'AssignmentPattern',
|
|
6014
6041
|
left,
|
|
@@ -6019,21 +6046,21 @@
|
|
|
6019
6046
|
left,
|
|
6020
6047
|
operator: KeywordDescTable[token & 255],
|
|
6021
6048
|
right,
|
|
6022
|
-
});
|
|
6049
|
+
}, start);
|
|
6023
6050
|
}
|
|
6024
6051
|
if ((token & 8388608) === 8388608) {
|
|
6025
|
-
left = parseBinaryExpression(parser, context, privateScope, inGroup, start,
|
|
6052
|
+
left = parseBinaryExpression(parser, context, privateScope, inGroup, start, 4, token, left);
|
|
6026
6053
|
}
|
|
6027
6054
|
if (consumeOpt(parser, context | 8192, 22)) {
|
|
6028
|
-
left = parseConditionalExpression(parser, context, privateScope, left, start
|
|
6055
|
+
left = parseConditionalExpression(parser, context, privateScope, left, start);
|
|
6029
6056
|
}
|
|
6030
6057
|
return left;
|
|
6031
6058
|
}
|
|
6032
|
-
function parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern, start,
|
|
6059
|
+
function parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern, start, left) {
|
|
6033
6060
|
const token = parser.getToken();
|
|
6034
6061
|
nextToken(parser, context | 8192);
|
|
6035
|
-
const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.
|
|
6036
|
-
left = finishNode(
|
|
6062
|
+
const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart);
|
|
6063
|
+
left = parser.finishNode(isPattern
|
|
6037
6064
|
? {
|
|
6038
6065
|
type: 'AssignmentPattern',
|
|
6039
6066
|
left,
|
|
@@ -6044,24 +6071,24 @@
|
|
|
6044
6071
|
left,
|
|
6045
6072
|
operator: KeywordDescTable[token & 255],
|
|
6046
6073
|
right,
|
|
6047
|
-
});
|
|
6074
|
+
}, start);
|
|
6048
6075
|
parser.assignable = 2;
|
|
6049
6076
|
return left;
|
|
6050
6077
|
}
|
|
6051
|
-
function parseConditionalExpression(parser, context, privateScope, test, start
|
|
6052
|
-
const consequent = parseExpression(parser, (context | 33554432) ^ 33554432, privateScope, 1, 0, parser.
|
|
6078
|
+
function parseConditionalExpression(parser, context, privateScope, test, start) {
|
|
6079
|
+
const consequent = parseExpression(parser, (context | 33554432) ^ 33554432, privateScope, 1, 0, parser.tokenStart);
|
|
6053
6080
|
consume(parser, context | 8192, 21);
|
|
6054
6081
|
parser.assignable = 1;
|
|
6055
|
-
const alternate = parseExpression(parser, context, privateScope, 1, 0, parser.
|
|
6082
|
+
const alternate = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart);
|
|
6056
6083
|
parser.assignable = 2;
|
|
6057
|
-
return finishNode(
|
|
6084
|
+
return parser.finishNode({
|
|
6058
6085
|
type: 'ConditionalExpression',
|
|
6059
6086
|
test,
|
|
6060
6087
|
consequent,
|
|
6061
6088
|
alternate,
|
|
6062
|
-
});
|
|
6089
|
+
}, start);
|
|
6063
6090
|
}
|
|
6064
|
-
function parseBinaryExpression(parser, context, privateScope, inGroup, start,
|
|
6091
|
+
function parseBinaryExpression(parser, context, privateScope, inGroup, start, minPrecedence, operator, left) {
|
|
6065
6092
|
const bit = -((context & 33554432) > 0) & 8673330;
|
|
6066
6093
|
let t;
|
|
6067
6094
|
let precedence;
|
|
@@ -6075,23 +6102,24 @@
|
|
|
6075
6102
|
if (precedence + ((t === 8391735) << 8) - ((bit === t) << 12) <= minPrecedence)
|
|
6076
6103
|
break;
|
|
6077
6104
|
nextToken(parser, context | 8192);
|
|
6078
|
-
left = finishNode(
|
|
6105
|
+
left = parser.finishNode({
|
|
6079
6106
|
type: t & 524288 || t & 268435456 ? 'LogicalExpression' : 'BinaryExpression',
|
|
6080
6107
|
left,
|
|
6081
|
-
right: parseBinaryExpression(parser, context, privateScope, inGroup, parser.
|
|
6108
|
+
right: parseBinaryExpression(parser, context, privateScope, inGroup, parser.tokenStart, precedence, t, parseLeftHandSideExpression(parser, context, privateScope, 0, inGroup, 1)),
|
|
6082
6109
|
operator: KeywordDescTable[t & 255],
|
|
6083
|
-
});
|
|
6110
|
+
}, start);
|
|
6084
6111
|
}
|
|
6085
6112
|
if (parser.getToken() === 1077936155)
|
|
6086
6113
|
report(parser, 26);
|
|
6087
6114
|
return left;
|
|
6088
6115
|
}
|
|
6089
|
-
function parseUnaryExpression(parser, context, privateScope, isLHS,
|
|
6116
|
+
function parseUnaryExpression(parser, context, privateScope, isLHS, inGroup) {
|
|
6090
6117
|
if (!isLHS)
|
|
6091
6118
|
report(parser, 0);
|
|
6119
|
+
const { tokenStart } = parser;
|
|
6092
6120
|
const unaryOperator = parser.getToken();
|
|
6093
6121
|
nextToken(parser, context | 8192);
|
|
6094
|
-
const arg = parseLeftHandSideExpression(parser, context, privateScope, 0, inGroup, 1
|
|
6122
|
+
const arg = parseLeftHandSideExpression(parser, context, privateScope, 0, inGroup, 1);
|
|
6095
6123
|
if (parser.getToken() === 8391735)
|
|
6096
6124
|
report(parser, 33);
|
|
6097
6125
|
if (context & 256 && unaryOperator === 16863276) {
|
|
@@ -6103,20 +6131,20 @@
|
|
|
6103
6131
|
}
|
|
6104
6132
|
}
|
|
6105
6133
|
parser.assignable = 2;
|
|
6106
|
-
return finishNode(
|
|
6134
|
+
return parser.finishNode({
|
|
6107
6135
|
type: 'UnaryExpression',
|
|
6108
6136
|
operator: KeywordDescTable[unaryOperator & 255],
|
|
6109
6137
|
argument: arg,
|
|
6110
6138
|
prefix: true,
|
|
6111
|
-
});
|
|
6139
|
+
}, tokenStart);
|
|
6112
6140
|
}
|
|
6113
|
-
function parseAsyncExpression(parser, context, privateScope, inGroup, isLHS, canAssign, inNew, start
|
|
6141
|
+
function parseAsyncExpression(parser, context, privateScope, inGroup, isLHS, canAssign, inNew, start) {
|
|
6114
6142
|
const token = parser.getToken();
|
|
6115
6143
|
const expr = parseIdentifier(parser, context);
|
|
6116
6144
|
const { flags } = parser;
|
|
6117
6145
|
if ((flags & 1) === 0) {
|
|
6118
6146
|
if (parser.getToken() === 86104) {
|
|
6119
|
-
return parseFunctionExpression(parser, context, privateScope, 1, inGroup, start
|
|
6147
|
+
return parseFunctionExpression(parser, context, privateScope, 1, inGroup, start);
|
|
6120
6148
|
}
|
|
6121
6149
|
if (isValidIdentifier(context, parser.getToken())) {
|
|
6122
6150
|
if (!isLHS)
|
|
@@ -6124,11 +6152,11 @@
|
|
|
6124
6152
|
if ((parser.getToken() & 36864) === 36864) {
|
|
6125
6153
|
parser.flags |= 256;
|
|
6126
6154
|
}
|
|
6127
|
-
return parseAsyncArrowAfterIdent(parser, context, privateScope, canAssign, start
|
|
6155
|
+
return parseAsyncArrowAfterIdent(parser, context, privateScope, canAssign, start);
|
|
6128
6156
|
}
|
|
6129
6157
|
}
|
|
6130
6158
|
if (!inNew && parser.getToken() === 67174411) {
|
|
6131
|
-
return parseAsyncArrowOrCallExpression(parser, context, privateScope, expr, canAssign, 1, 0, flags, start
|
|
6159
|
+
return parseAsyncArrowOrCallExpression(parser, context, privateScope, expr, canAssign, 1, 0, flags, start);
|
|
6132
6160
|
}
|
|
6133
6161
|
if (parser.getToken() === 10) {
|
|
6134
6162
|
classifyIdentifier(parser, context, token);
|
|
@@ -6137,12 +6165,12 @@
|
|
|
6137
6165
|
if ((token & 36864) === 36864) {
|
|
6138
6166
|
parser.flags |= 256;
|
|
6139
6167
|
}
|
|
6140
|
-
return parseArrowFromIdentifier(parser, context, privateScope, parser.tokenValue, expr, inNew, canAssign, 0, start
|
|
6168
|
+
return parseArrowFromIdentifier(parser, context, privateScope, parser.tokenValue, expr, inNew, canAssign, 0, start);
|
|
6141
6169
|
}
|
|
6142
6170
|
parser.assignable = 1;
|
|
6143
6171
|
return expr;
|
|
6144
6172
|
}
|
|
6145
|
-
function parseYieldExpressionOrIdentifier(parser, context, privateScope, inGroup, canAssign, start
|
|
6173
|
+
function parseYieldExpressionOrIdentifier(parser, context, privateScope, inGroup, canAssign, start) {
|
|
6146
6174
|
if (inGroup)
|
|
6147
6175
|
parser.destructible |= 256;
|
|
6148
6176
|
if (context & 262144) {
|
|
@@ -6158,83 +6186,83 @@
|
|
|
6158
6186
|
if ((parser.flags & 1) === 0) {
|
|
6159
6187
|
delegate = consumeOpt(parser, context | 8192, 8391476);
|
|
6160
6188
|
if (parser.getToken() & (12288 | 65536) || delegate) {
|
|
6161
|
-
argument = parseExpression(parser, context, privateScope, 1, 0, parser.
|
|
6189
|
+
argument = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart);
|
|
6162
6190
|
}
|
|
6163
6191
|
}
|
|
6164
6192
|
else if (parser.getToken() === 8391476) {
|
|
6165
6193
|
report(parser, 30, KeywordDescTable[parser.getToken() & 255]);
|
|
6166
6194
|
}
|
|
6167
6195
|
parser.assignable = 2;
|
|
6168
|
-
return finishNode(
|
|
6196
|
+
return parser.finishNode({
|
|
6169
6197
|
type: 'YieldExpression',
|
|
6170
6198
|
argument,
|
|
6171
6199
|
delegate,
|
|
6172
|
-
});
|
|
6200
|
+
}, start);
|
|
6173
6201
|
}
|
|
6174
6202
|
if (context & 256)
|
|
6175
6203
|
report(parser, 97, 'yield');
|
|
6176
|
-
return parseIdentifierOrArrow(parser, context, privateScope
|
|
6204
|
+
return parseIdentifierOrArrow(parser, context, privateScope);
|
|
6177
6205
|
}
|
|
6178
|
-
function parseAwaitExpressionOrIdentifier(parser, context, privateScope, inNew, inGroup, start
|
|
6206
|
+
function parseAwaitExpressionOrIdentifier(parser, context, privateScope, inNew, inGroup, start) {
|
|
6179
6207
|
if (inGroup)
|
|
6180
6208
|
parser.destructible |= 128;
|
|
6181
6209
|
if (context & 268435456)
|
|
6182
6210
|
report(parser, 177);
|
|
6183
|
-
const possibleIdentifierOrArrowFunc = parseIdentifierOrArrow(parser, context, privateScope
|
|
6211
|
+
const possibleIdentifierOrArrowFunc = parseIdentifierOrArrow(parser, context, privateScope);
|
|
6184
6212
|
const isIdentifier = possibleIdentifierOrArrowFunc.type === 'ArrowFunctionExpression' ||
|
|
6185
6213
|
(parser.getToken() & 65536) === 0;
|
|
6186
6214
|
if (isIdentifier) {
|
|
6187
6215
|
if (context & 524288)
|
|
6188
|
-
reportMessageAt(start,
|
|
6216
|
+
reportMessageAt(start, { index: parser.startIndex, line: parser.startLine, column: parser.startColumn }, 176);
|
|
6189
6217
|
if (context & 512)
|
|
6190
|
-
reportMessageAt(start,
|
|
6218
|
+
reportMessageAt(start, { index: parser.startIndex, line: parser.startLine, column: parser.startColumn }, 110);
|
|
6191
6219
|
if (context & 2097152 && context & 524288)
|
|
6192
|
-
reportMessageAt(start,
|
|
6220
|
+
reportMessageAt(start, { index: parser.startIndex, line: parser.startLine, column: parser.startColumn }, 110);
|
|
6193
6221
|
return possibleIdentifierOrArrowFunc;
|
|
6194
6222
|
}
|
|
6195
6223
|
if (context & 2097152) {
|
|
6196
|
-
reportMessageAt(start,
|
|
6224
|
+
reportMessageAt(start, { index: parser.startIndex, line: parser.startLine, column: parser.startColumn }, 31);
|
|
6197
6225
|
}
|
|
6198
6226
|
if (context & 524288 || (context & 512 && context & 2048)) {
|
|
6199
6227
|
if (inNew)
|
|
6200
|
-
reportMessageAt(start,
|
|
6201
|
-
const argument = parseLeftHandSideExpression(parser, context, privateScope, 0, 0, 1
|
|
6228
|
+
reportMessageAt(start, { index: parser.startIndex, line: parser.startLine, column: parser.startColumn }, 0);
|
|
6229
|
+
const argument = parseLeftHandSideExpression(parser, context, privateScope, 0, 0, 1);
|
|
6202
6230
|
if (parser.getToken() === 8391735)
|
|
6203
6231
|
report(parser, 33);
|
|
6204
6232
|
parser.assignable = 2;
|
|
6205
|
-
return finishNode(
|
|
6233
|
+
return parser.finishNode({
|
|
6206
6234
|
type: 'AwaitExpression',
|
|
6207
6235
|
argument,
|
|
6208
|
-
});
|
|
6236
|
+
}, start);
|
|
6209
6237
|
}
|
|
6210
6238
|
if (context & 512)
|
|
6211
|
-
reportMessageAt(start,
|
|
6239
|
+
reportMessageAt(start, { index: parser.startIndex, line: parser.startLine, column: parser.startColumn }, 98);
|
|
6212
6240
|
return possibleIdentifierOrArrowFunc;
|
|
6213
6241
|
}
|
|
6214
6242
|
function parseFunctionBody(parser, context, scope, privateScope, origin, funcNameToken, scopeError) {
|
|
6215
|
-
const {
|
|
6243
|
+
const { tokenStart } = parser;
|
|
6216
6244
|
consume(parser, context | 8192, 2162700);
|
|
6217
6245
|
const body = [];
|
|
6218
6246
|
if (parser.getToken() !== 1074790415) {
|
|
6219
6247
|
while (parser.getToken() === 134283267) {
|
|
6220
|
-
const { index, tokenIndex, tokenValue } = parser;
|
|
6248
|
+
const { index, tokenStart, tokenIndex, tokenValue } = parser;
|
|
6221
6249
|
const token = parser.getToken();
|
|
6222
6250
|
const expr = parseLiteral(parser, context);
|
|
6223
6251
|
if (isValidStrictMode(parser, index, tokenIndex, tokenValue)) {
|
|
6224
6252
|
context |= 256;
|
|
6225
6253
|
if (parser.flags & 128) {
|
|
6226
|
-
reportMessageAt(
|
|
6254
|
+
reportMessageAt(tokenStart, parser.currentLocation, 66);
|
|
6227
6255
|
}
|
|
6228
6256
|
if (parser.flags & 64) {
|
|
6229
|
-
reportMessageAt(
|
|
6257
|
+
reportMessageAt(tokenStart, parser.currentLocation, 9);
|
|
6230
6258
|
}
|
|
6231
6259
|
if (parser.flags & 4096) {
|
|
6232
|
-
reportMessageAt(
|
|
6260
|
+
reportMessageAt(tokenStart, parser.currentLocation, 15);
|
|
6233
6261
|
}
|
|
6234
6262
|
if (scopeError)
|
|
6235
6263
|
reportScopeError(scopeError);
|
|
6236
6264
|
}
|
|
6237
|
-
body.push(parseDirective(parser, context, expr, token,
|
|
6265
|
+
body.push(parseDirective(parser, context, expr, token, tokenStart));
|
|
6238
6266
|
}
|
|
6239
6267
|
if (context & 256) {
|
|
6240
6268
|
if (funcNameToken) {
|
|
@@ -6262,12 +6290,13 @@
|
|
|
6262
6290
|
parser.flags &= -4289;
|
|
6263
6291
|
if (parser.getToken() === 1077936155)
|
|
6264
6292
|
report(parser, 26);
|
|
6265
|
-
return finishNode(
|
|
6293
|
+
return parser.finishNode({
|
|
6266
6294
|
type: 'BlockStatement',
|
|
6267
6295
|
body,
|
|
6268
|
-
});
|
|
6296
|
+
}, tokenStart);
|
|
6269
6297
|
}
|
|
6270
|
-
function parseSuperExpression(parser, context
|
|
6298
|
+
function parseSuperExpression(parser, context) {
|
|
6299
|
+
const { tokenStart } = parser;
|
|
6271
6300
|
nextToken(parser, context);
|
|
6272
6301
|
switch (parser.getToken()) {
|
|
6273
6302
|
case 67108990:
|
|
@@ -6288,28 +6317,29 @@
|
|
|
6288
6317
|
default:
|
|
6289
6318
|
report(parser, 30, 'super');
|
|
6290
6319
|
}
|
|
6291
|
-
return finishNode(
|
|
6320
|
+
return parser.finishNode({ type: 'Super' }, tokenStart);
|
|
6292
6321
|
}
|
|
6293
|
-
function parseLeftHandSideExpression(parser, context, privateScope, canAssign, inGroup, isLHS
|
|
6294
|
-
const
|
|
6295
|
-
|
|
6322
|
+
function parseLeftHandSideExpression(parser, context, privateScope, canAssign, inGroup, isLHS) {
|
|
6323
|
+
const start = parser.tokenStart;
|
|
6324
|
+
const expression = parsePrimaryExpression(parser, context, privateScope, 2, 0, canAssign, inGroup, isLHS, start);
|
|
6325
|
+
return parseMemberOrUpdateExpression(parser, context, privateScope, expression, inGroup, 0, start);
|
|
6296
6326
|
}
|
|
6297
|
-
function parseUpdateExpression(parser, context, expr, start
|
|
6327
|
+
function parseUpdateExpression(parser, context, expr, start) {
|
|
6298
6328
|
if (parser.assignable & 2)
|
|
6299
6329
|
report(parser, 55);
|
|
6300
6330
|
const token = parser.getToken();
|
|
6301
6331
|
nextToken(parser, context);
|
|
6302
6332
|
parser.assignable = 2;
|
|
6303
|
-
return finishNode(
|
|
6333
|
+
return parser.finishNode({
|
|
6304
6334
|
type: 'UpdateExpression',
|
|
6305
6335
|
argument: expr,
|
|
6306
6336
|
operator: KeywordDescTable[token & 255],
|
|
6307
6337
|
prefix: false,
|
|
6308
|
-
});
|
|
6338
|
+
}, start);
|
|
6309
6339
|
}
|
|
6310
|
-
function parseMemberOrUpdateExpression(parser, context, privateScope, expr, inGroup, inChain, start
|
|
6340
|
+
function parseMemberOrUpdateExpression(parser, context, privateScope, expr, inGroup, inChain, start) {
|
|
6311
6341
|
if ((parser.getToken() & 33619968) === 33619968 && (parser.flags & 1) === 0) {
|
|
6312
|
-
expr = parseUpdateExpression(parser, context, expr, start
|
|
6342
|
+
expr = parseUpdateExpression(parser, context, expr, start);
|
|
6313
6343
|
}
|
|
6314
6344
|
else if ((parser.getToken() & 67108864) === 67108864) {
|
|
6315
6345
|
context = (context | 33554432) ^ 33554432;
|
|
@@ -6321,12 +6351,13 @@
|
|
|
6321
6351
|
}
|
|
6322
6352
|
parser.assignable = 1;
|
|
6323
6353
|
const property = parsePropertyOrPrivatePropertyName(parser, context | 16384, privateScope);
|
|
6324
|
-
expr = finishNode(
|
|
6354
|
+
expr = parser.finishNode({
|
|
6325
6355
|
type: 'MemberExpression',
|
|
6326
6356
|
object: expr,
|
|
6327
6357
|
computed: false,
|
|
6328
6358
|
property,
|
|
6329
|
-
|
|
6359
|
+
optional: false,
|
|
6360
|
+
}, start);
|
|
6330
6361
|
break;
|
|
6331
6362
|
}
|
|
6332
6363
|
case 69271571: {
|
|
@@ -6336,16 +6367,17 @@
|
|
|
6336
6367
|
parser.flags = (parser.flags | 2048) ^ 2048;
|
|
6337
6368
|
}
|
|
6338
6369
|
nextToken(parser, context | 8192);
|
|
6339
|
-
const {
|
|
6340
|
-
const property = parseExpressions(parser, context, privateScope, inGroup, 1,
|
|
6370
|
+
const { tokenStart } = parser;
|
|
6371
|
+
const property = parseExpressions(parser, context, privateScope, inGroup, 1, tokenStart);
|
|
6341
6372
|
consume(parser, context, 20);
|
|
6342
6373
|
parser.assignable = 1;
|
|
6343
|
-
expr = finishNode(
|
|
6374
|
+
expr = parser.finishNode({
|
|
6344
6375
|
type: 'MemberExpression',
|
|
6345
6376
|
object: expr,
|
|
6346
6377
|
computed: true,
|
|
6347
6378
|
property,
|
|
6348
|
-
|
|
6379
|
+
optional: false,
|
|
6380
|
+
}, start);
|
|
6349
6381
|
if (restoreHasOptionalChaining) {
|
|
6350
6382
|
parser.flags |= 2048;
|
|
6351
6383
|
}
|
|
@@ -6363,11 +6395,12 @@
|
|
|
6363
6395
|
}
|
|
6364
6396
|
const args = parseArguments(parser, context, privateScope, inGroup);
|
|
6365
6397
|
parser.assignable = 2;
|
|
6366
|
-
expr = finishNode(
|
|
6398
|
+
expr = parser.finishNode({
|
|
6367
6399
|
type: 'CallExpression',
|
|
6368
6400
|
callee: expr,
|
|
6369
6401
|
arguments: args,
|
|
6370
|
-
|
|
6402
|
+
optional: false,
|
|
6403
|
+
}, start);
|
|
6371
6404
|
if (restoreHasOptionalChaining) {
|
|
6372
6405
|
parser.flags |= 2048;
|
|
6373
6406
|
}
|
|
@@ -6377,7 +6410,7 @@
|
|
|
6377
6410
|
nextToken(parser, (context | 67108864 | 2048) ^ 2048);
|
|
6378
6411
|
parser.flags |= 2048;
|
|
6379
6412
|
parser.assignable = 2;
|
|
6380
|
-
expr = parseOptionalChain(parser, context, privateScope, expr, start
|
|
6413
|
+
expr = parseOptionalChain(parser, context, privateScope, expr, start);
|
|
6381
6414
|
break;
|
|
6382
6415
|
}
|
|
6383
6416
|
default:
|
|
@@ -6385,26 +6418,26 @@
|
|
|
6385
6418
|
report(parser, 166);
|
|
6386
6419
|
}
|
|
6387
6420
|
parser.assignable = 2;
|
|
6388
|
-
expr = finishNode(
|
|
6421
|
+
expr = parser.finishNode({
|
|
6389
6422
|
type: 'TaggedTemplateExpression',
|
|
6390
6423
|
tag: expr,
|
|
6391
6424
|
quasi: parser.getToken() === 67174408
|
|
6392
6425
|
? parseTemplate(parser, context | 16384, privateScope)
|
|
6393
|
-
: parseTemplateLiteral(parser, context, parser.
|
|
6394
|
-
});
|
|
6426
|
+
: parseTemplateLiteral(parser, context, parser.tokenStart),
|
|
6427
|
+
}, start);
|
|
6395
6428
|
}
|
|
6396
|
-
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 1, start
|
|
6429
|
+
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 1, start);
|
|
6397
6430
|
}
|
|
6398
6431
|
if (inChain === 0 && (parser.flags & 2048) === 2048) {
|
|
6399
6432
|
parser.flags = (parser.flags | 2048) ^ 2048;
|
|
6400
|
-
expr = finishNode(
|
|
6433
|
+
expr = parser.finishNode({
|
|
6401
6434
|
type: 'ChainExpression',
|
|
6402
6435
|
expression: expr,
|
|
6403
|
-
});
|
|
6436
|
+
}, start);
|
|
6404
6437
|
}
|
|
6405
6438
|
return expr;
|
|
6406
6439
|
}
|
|
6407
|
-
function parseOptionalChain(parser, context, privateScope, expr, start
|
|
6440
|
+
function parseOptionalChain(parser, context, privateScope, expr, start) {
|
|
6408
6441
|
let restoreHasOptionalChaining = false;
|
|
6409
6442
|
let node;
|
|
6410
6443
|
if (parser.getToken() === 69271571 || parser.getToken() === 67174411) {
|
|
@@ -6415,38 +6448,38 @@
|
|
|
6415
6448
|
}
|
|
6416
6449
|
if (parser.getToken() === 69271571) {
|
|
6417
6450
|
nextToken(parser, context | 8192);
|
|
6418
|
-
const {
|
|
6419
|
-
const property = parseExpressions(parser, context, privateScope, 0, 1,
|
|
6451
|
+
const { tokenStart } = parser;
|
|
6452
|
+
const property = parseExpressions(parser, context, privateScope, 0, 1, tokenStart);
|
|
6420
6453
|
consume(parser, context, 20);
|
|
6421
6454
|
parser.assignable = 2;
|
|
6422
|
-
node = finishNode(
|
|
6455
|
+
node = parser.finishNode({
|
|
6423
6456
|
type: 'MemberExpression',
|
|
6424
6457
|
object: expr,
|
|
6425
6458
|
computed: true,
|
|
6426
6459
|
optional: true,
|
|
6427
6460
|
property,
|
|
6428
|
-
});
|
|
6461
|
+
}, start);
|
|
6429
6462
|
}
|
|
6430
6463
|
else if (parser.getToken() === 67174411) {
|
|
6431
6464
|
const args = parseArguments(parser, context, privateScope, 0);
|
|
6432
6465
|
parser.assignable = 2;
|
|
6433
|
-
node = finishNode(
|
|
6466
|
+
node = parser.finishNode({
|
|
6434
6467
|
type: 'CallExpression',
|
|
6435
6468
|
callee: expr,
|
|
6436
6469
|
arguments: args,
|
|
6437
6470
|
optional: true,
|
|
6438
|
-
});
|
|
6471
|
+
}, start);
|
|
6439
6472
|
}
|
|
6440
6473
|
else {
|
|
6441
6474
|
const property = parsePropertyOrPrivatePropertyName(parser, context, privateScope);
|
|
6442
6475
|
parser.assignable = 2;
|
|
6443
|
-
node = finishNode(
|
|
6476
|
+
node = parser.finishNode({
|
|
6444
6477
|
type: 'MemberExpression',
|
|
6445
6478
|
object: expr,
|
|
6446
6479
|
computed: false,
|
|
6447
6480
|
optional: true,
|
|
6448
6481
|
property,
|
|
6449
|
-
});
|
|
6482
|
+
}, start);
|
|
6450
6483
|
}
|
|
6451
6484
|
if (restoreHasOptionalChaining) {
|
|
6452
6485
|
parser.flags |= 2048;
|
|
@@ -6461,37 +6494,37 @@
|
|
|
6461
6494
|
report(parser, 160);
|
|
6462
6495
|
}
|
|
6463
6496
|
return parser.getToken() === 130
|
|
6464
|
-
? parsePrivateIdentifier(parser, context, privateScope, 0
|
|
6497
|
+
? parsePrivateIdentifier(parser, context, privateScope, 0)
|
|
6465
6498
|
: parseIdentifier(parser, context);
|
|
6466
6499
|
}
|
|
6467
|
-
function parseUpdateExpressionPrefixed(parser, context, privateScope, inNew, isLHS, start
|
|
6500
|
+
function parseUpdateExpressionPrefixed(parser, context, privateScope, inNew, isLHS, start) {
|
|
6468
6501
|
if (inNew)
|
|
6469
6502
|
report(parser, 56);
|
|
6470
6503
|
if (!isLHS)
|
|
6471
6504
|
report(parser, 0);
|
|
6472
6505
|
const token = parser.getToken();
|
|
6473
6506
|
nextToken(parser, context | 8192);
|
|
6474
|
-
const arg = parseLeftHandSideExpression(parser, context, privateScope, 0, 0, 1
|
|
6507
|
+
const arg = parseLeftHandSideExpression(parser, context, privateScope, 0, 0, 1);
|
|
6475
6508
|
if (parser.assignable & 2) {
|
|
6476
6509
|
report(parser, 55);
|
|
6477
6510
|
}
|
|
6478
6511
|
parser.assignable = 2;
|
|
6479
|
-
return finishNode(
|
|
6512
|
+
return parser.finishNode({
|
|
6480
6513
|
type: 'UpdateExpression',
|
|
6481
6514
|
argument: arg,
|
|
6482
6515
|
operator: KeywordDescTable[token & 255],
|
|
6483
6516
|
prefix: true,
|
|
6484
|
-
});
|
|
6517
|
+
}, start);
|
|
6485
6518
|
}
|
|
6486
|
-
function parsePrimaryExpression(parser, context, privateScope, kind, inNew, canAssign, inGroup, isLHS, start
|
|
6519
|
+
function parsePrimaryExpression(parser, context, privateScope, kind, inNew, canAssign, inGroup, isLHS, start) {
|
|
6487
6520
|
if ((parser.getToken() & 143360) === 143360) {
|
|
6488
6521
|
switch (parser.getToken()) {
|
|
6489
6522
|
case 209006:
|
|
6490
|
-
return parseAwaitExpressionOrIdentifier(parser, context, privateScope, inNew, inGroup, start
|
|
6523
|
+
return parseAwaitExpressionOrIdentifier(parser, context, privateScope, inNew, inGroup, start);
|
|
6491
6524
|
case 241771:
|
|
6492
|
-
return parseYieldExpressionOrIdentifier(parser, context, privateScope, inGroup, canAssign, start
|
|
6525
|
+
return parseYieldExpressionOrIdentifier(parser, context, privateScope, inGroup, canAssign, start);
|
|
6493
6526
|
case 209005:
|
|
6494
|
-
return parseAsyncExpression(parser, context, privateScope, inGroup, isLHS, canAssign, inNew, start
|
|
6527
|
+
return parseAsyncExpression(parser, context, privateScope, inGroup, isLHS, canAssign, inNew, start);
|
|
6495
6528
|
}
|
|
6496
6529
|
const { tokenValue } = parser;
|
|
6497
6530
|
const token = parser.getToken();
|
|
@@ -6503,7 +6536,7 @@
|
|
|
6503
6536
|
if ((token & 36864) === 36864) {
|
|
6504
6537
|
parser.flags |= 256;
|
|
6505
6538
|
}
|
|
6506
|
-
return parseArrowFromIdentifier(parser, context, privateScope, tokenValue, expr, inNew, canAssign, 0, start
|
|
6539
|
+
return parseArrowFromIdentifier(parser, context, privateScope, tokenValue, expr, inNew, canAssign, 0, start);
|
|
6507
6540
|
}
|
|
6508
6541
|
if (context & 4096 &&
|
|
6509
6542
|
!(context & 8388608) &&
|
|
@@ -6528,7 +6561,7 @@
|
|
|
6528
6561
|
switch (parser.getToken()) {
|
|
6529
6562
|
case 33619993:
|
|
6530
6563
|
case 33619994:
|
|
6531
|
-
return parseUpdateExpressionPrefixed(parser, context, privateScope, inNew, isLHS, start
|
|
6564
|
+
return parseUpdateExpressionPrefixed(parser, context, privateScope, inNew, isLHS, start);
|
|
6532
6565
|
case 16863276:
|
|
6533
6566
|
case 16842798:
|
|
6534
6567
|
case 16842799:
|
|
@@ -6536,61 +6569,61 @@
|
|
|
6536
6569
|
case 25233969:
|
|
6537
6570
|
case 16863275:
|
|
6538
6571
|
case 16863277:
|
|
6539
|
-
return parseUnaryExpression(parser, context, privateScope, isLHS,
|
|
6572
|
+
return parseUnaryExpression(parser, context, privateScope, isLHS, inGroup);
|
|
6540
6573
|
case 86104:
|
|
6541
|
-
return parseFunctionExpression(parser, context, privateScope, 0, inGroup, start
|
|
6574
|
+
return parseFunctionExpression(parser, context, privateScope, 0, inGroup, start);
|
|
6542
6575
|
case 2162700:
|
|
6543
|
-
return parseObjectLiteral(parser, context, privateScope, canAssign ? 0 : 1, inGroup
|
|
6576
|
+
return parseObjectLiteral(parser, context, privateScope, canAssign ? 0 : 1, inGroup);
|
|
6544
6577
|
case 69271571:
|
|
6545
|
-
return parseArrayLiteral(parser, context, privateScope, canAssign ? 0 : 1, inGroup
|
|
6578
|
+
return parseArrayLiteral(parser, context, privateScope, canAssign ? 0 : 1, inGroup);
|
|
6546
6579
|
case 67174411:
|
|
6547
|
-
return parseParenthesizedExpression(parser, context | 16384, privateScope, canAssign, 1, 0, start
|
|
6580
|
+
return parseParenthesizedExpression(parser, context | 16384, privateScope, canAssign, 1, 0, start);
|
|
6548
6581
|
case 86021:
|
|
6549
6582
|
case 86022:
|
|
6550
6583
|
case 86023:
|
|
6551
|
-
return parseNullOrTrueOrFalseLiteral(parser, context
|
|
6584
|
+
return parseNullOrTrueOrFalseLiteral(parser, context);
|
|
6552
6585
|
case 86111:
|
|
6553
6586
|
return parseThisExpression(parser, context);
|
|
6554
6587
|
case 65540:
|
|
6555
|
-
return parseRegExpLiteral(parser, context
|
|
6588
|
+
return parseRegExpLiteral(parser, context);
|
|
6556
6589
|
case 132:
|
|
6557
6590
|
case 86094:
|
|
6558
|
-
return parseClassExpression(parser, context, privateScope, inGroup, start
|
|
6591
|
+
return parseClassExpression(parser, context, privateScope, inGroup, start);
|
|
6559
6592
|
case 86109:
|
|
6560
|
-
return parseSuperExpression(parser, context
|
|
6593
|
+
return parseSuperExpression(parser, context);
|
|
6561
6594
|
case 67174409:
|
|
6562
|
-
return parseTemplateLiteral(parser, context, start
|
|
6595
|
+
return parseTemplateLiteral(parser, context, start);
|
|
6563
6596
|
case 67174408:
|
|
6564
6597
|
return parseTemplate(parser, context, privateScope);
|
|
6565
6598
|
case 86107:
|
|
6566
|
-
return parseNewExpression(parser, context, privateScope, inGroup
|
|
6599
|
+
return parseNewExpression(parser, context, privateScope, inGroup);
|
|
6567
6600
|
case 134283388:
|
|
6568
|
-
return parseBigIntLiteral(parser, context
|
|
6601
|
+
return parseBigIntLiteral(parser, context);
|
|
6569
6602
|
case 130:
|
|
6570
|
-
return parsePrivateIdentifier(parser, context, privateScope, 0
|
|
6603
|
+
return parsePrivateIdentifier(parser, context, privateScope, 0);
|
|
6571
6604
|
case 86106:
|
|
6572
|
-
return parseImportCallOrMetaExpression(parser, context, privateScope, inNew, inGroup, start
|
|
6605
|
+
return parseImportCallOrMetaExpression(parser, context, privateScope, inNew, inGroup, start);
|
|
6573
6606
|
case 8456256:
|
|
6574
6607
|
if (context & 8)
|
|
6575
|
-
return parseJSXRootElementOrFragment(parser, context, privateScope, 0,
|
|
6608
|
+
return parseJSXRootElementOrFragment(parser, context, privateScope, 0, parser.tokenStart);
|
|
6576
6609
|
default:
|
|
6577
6610
|
if (isValidIdentifier(context, parser.getToken()))
|
|
6578
|
-
return parseIdentifierOrArrow(parser, context, privateScope
|
|
6611
|
+
return parseIdentifierOrArrow(parser, context, privateScope);
|
|
6579
6612
|
report(parser, 30, KeywordDescTable[parser.getToken() & 255]);
|
|
6580
6613
|
}
|
|
6581
6614
|
}
|
|
6582
|
-
function parseImportCallOrMetaExpression(parser, context, privateScope, inNew, inGroup, start
|
|
6615
|
+
function parseImportCallOrMetaExpression(parser, context, privateScope, inNew, inGroup, start) {
|
|
6583
6616
|
let expr = parseIdentifier(parser, context);
|
|
6584
6617
|
if (parser.getToken() === 67108877) {
|
|
6585
|
-
return parseImportMetaExpression(parser, context, expr, start
|
|
6618
|
+
return parseImportMetaExpression(parser, context, expr, start);
|
|
6586
6619
|
}
|
|
6587
6620
|
if (inNew)
|
|
6588
6621
|
report(parser, 142);
|
|
6589
|
-
expr = parseImportExpression(parser, context, privateScope, inGroup, start
|
|
6622
|
+
expr = parseImportExpression(parser, context, privateScope, inGroup, start);
|
|
6590
6623
|
parser.assignable = 2;
|
|
6591
|
-
return parseMemberOrUpdateExpression(parser, context, privateScope, expr, inGroup, 0, start
|
|
6624
|
+
return parseMemberOrUpdateExpression(parser, context, privateScope, expr, inGroup, 0, start);
|
|
6592
6625
|
}
|
|
6593
|
-
function parseImportMetaExpression(parser, context, meta, start
|
|
6626
|
+
function parseImportMetaExpression(parser, context, meta, start) {
|
|
6594
6627
|
if ((context & 512) === 0)
|
|
6595
6628
|
report(parser, 169);
|
|
6596
6629
|
nextToken(parser, context);
|
|
@@ -6602,23 +6635,23 @@
|
|
|
6602
6635
|
report(parser, 175);
|
|
6603
6636
|
}
|
|
6604
6637
|
parser.assignable = 2;
|
|
6605
|
-
return finishNode(
|
|
6638
|
+
return parser.finishNode({
|
|
6606
6639
|
type: 'MetaProperty',
|
|
6607
6640
|
meta,
|
|
6608
6641
|
property: parseIdentifier(parser, context),
|
|
6609
|
-
});
|
|
6642
|
+
}, start);
|
|
6610
6643
|
}
|
|
6611
|
-
function parseImportExpression(parser, context, privateScope, inGroup, start
|
|
6644
|
+
function parseImportExpression(parser, context, privateScope, inGroup, start) {
|
|
6612
6645
|
consume(parser, context | 8192, 67174411);
|
|
6613
6646
|
if (parser.getToken() === 14)
|
|
6614
6647
|
report(parser, 143);
|
|
6615
|
-
const source = parseExpression(parser, context, privateScope, 1, inGroup, parser.
|
|
6648
|
+
const source = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart);
|
|
6616
6649
|
let options = null;
|
|
6617
6650
|
if (parser.getToken() === 18) {
|
|
6618
6651
|
consume(parser, context, 18);
|
|
6619
6652
|
if (parser.getToken() !== 16) {
|
|
6620
6653
|
const expContext = (context | 33554432) ^ 33554432;
|
|
6621
|
-
options = parseExpression(parser, expContext, privateScope, 1, inGroup, parser.
|
|
6654
|
+
options = parseExpression(parser, expContext, privateScope, 1, inGroup, parser.tokenStart);
|
|
6622
6655
|
}
|
|
6623
6656
|
consumeOpt(parser, context, 18);
|
|
6624
6657
|
}
|
|
@@ -6628,7 +6661,7 @@
|
|
|
6628
6661
|
options,
|
|
6629
6662
|
};
|
|
6630
6663
|
consume(parser, context, 16);
|
|
6631
|
-
return finishNode(
|
|
6664
|
+
return parser.finishNode(node, start);
|
|
6632
6665
|
}
|
|
6633
6666
|
function parseImportAttributes(parser, context, specifiers = null) {
|
|
6634
6667
|
if (!consumeOpt(parser, context, 20579))
|
|
@@ -6637,9 +6670,7 @@
|
|
|
6637
6670
|
const attributes = [];
|
|
6638
6671
|
const keysContent = new Set();
|
|
6639
6672
|
while (parser.getToken() !== 1074790415) {
|
|
6640
|
-
const start = parser.
|
|
6641
|
-
const line = parser.tokenLine;
|
|
6642
|
-
const column = parser.tokenColumn;
|
|
6673
|
+
const start = parser.tokenStart;
|
|
6643
6674
|
const key = parseIdentifierOrStringLiteral(parser, context);
|
|
6644
6675
|
consume(parser, context, 21);
|
|
6645
6676
|
const value = parseStringLiteral(parser, context);
|
|
@@ -6663,11 +6694,11 @@
|
|
|
6663
6694
|
report(parser, 145, `${keyContent}`);
|
|
6664
6695
|
}
|
|
6665
6696
|
keysContent.add(keyContent);
|
|
6666
|
-
attributes.push(finishNode(
|
|
6697
|
+
attributes.push(parser.finishNode({
|
|
6667
6698
|
type: 'ImportAttribute',
|
|
6668
6699
|
key,
|
|
6669
6700
|
value,
|
|
6670
|
-
}));
|
|
6701
|
+
}, start));
|
|
6671
6702
|
if (parser.getToken() !== 1074790415) {
|
|
6672
6703
|
consume(parser, context, 18);
|
|
6673
6704
|
}
|
|
@@ -6717,8 +6748,8 @@
|
|
|
6717
6748
|
report(parser, 30, KeywordDescTable[parser.getToken() & 255]);
|
|
6718
6749
|
}
|
|
6719
6750
|
}
|
|
6720
|
-
function parseBigIntLiteral(parser, context
|
|
6721
|
-
const { tokenRaw, tokenValue } = parser;
|
|
6751
|
+
function parseBigIntLiteral(parser, context) {
|
|
6752
|
+
const { tokenRaw, tokenValue, tokenStart } = parser;
|
|
6722
6753
|
nextToken(parser, context);
|
|
6723
6754
|
parser.assignable = 2;
|
|
6724
6755
|
const node = {
|
|
@@ -6729,61 +6760,57 @@
|
|
|
6729
6760
|
if (context & 128) {
|
|
6730
6761
|
node.raw = tokenRaw;
|
|
6731
6762
|
}
|
|
6732
|
-
return finishNode(
|
|
6763
|
+
return parser.finishNode(node, tokenStart);
|
|
6733
6764
|
}
|
|
6734
|
-
function parseTemplateLiteral(parser, context, start
|
|
6765
|
+
function parseTemplateLiteral(parser, context, start) {
|
|
6735
6766
|
parser.assignable = 2;
|
|
6736
|
-
const { tokenValue, tokenRaw,
|
|
6767
|
+
const { tokenValue, tokenRaw, tokenStart } = parser;
|
|
6737
6768
|
consume(parser, context, 67174409);
|
|
6738
|
-
const quasis = [
|
|
6739
|
-
|
|
6740
|
-
];
|
|
6741
|
-
return finishNode(parser, context, start, line, column, {
|
|
6769
|
+
const quasis = [parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenStart, true)];
|
|
6770
|
+
return parser.finishNode({
|
|
6742
6771
|
type: 'TemplateLiteral',
|
|
6743
6772
|
expressions: [],
|
|
6744
6773
|
quasis,
|
|
6745
|
-
});
|
|
6774
|
+
}, start);
|
|
6746
6775
|
}
|
|
6747
6776
|
function parseTemplate(parser, context, privateScope) {
|
|
6748
6777
|
context = (context | 33554432) ^ 33554432;
|
|
6749
|
-
const { tokenValue, tokenRaw,
|
|
6778
|
+
const { tokenValue, tokenRaw, tokenStart } = parser;
|
|
6750
6779
|
consume(parser, (context & -16385) | 8192, 67174408);
|
|
6751
|
-
const quasis = [
|
|
6752
|
-
parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenIndex, tokenLine, tokenColumn, false),
|
|
6753
|
-
];
|
|
6780
|
+
const quasis = [parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenStart, false)];
|
|
6754
6781
|
const expressions = [
|
|
6755
|
-
parseExpressions(parser, context & -16385, privateScope, 0, 1, parser.
|
|
6782
|
+
parseExpressions(parser, context & -16385, privateScope, 0, 1, parser.tokenStart),
|
|
6756
6783
|
];
|
|
6757
6784
|
if (parser.getToken() !== 1074790415)
|
|
6758
6785
|
report(parser, 83);
|
|
6759
6786
|
while (parser.setToken(scanTemplateTail(parser, context), true) !== 67174409) {
|
|
6760
|
-
const { tokenValue, tokenRaw,
|
|
6787
|
+
const { tokenValue, tokenRaw, tokenStart } = parser;
|
|
6761
6788
|
consume(parser, (context & -16385) | 8192, 67174408);
|
|
6762
|
-
quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw,
|
|
6763
|
-
expressions.push(parseExpressions(parser, context, privateScope, 0, 1, parser.
|
|
6789
|
+
quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenStart, false));
|
|
6790
|
+
expressions.push(parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart));
|
|
6764
6791
|
if (parser.getToken() !== 1074790415)
|
|
6765
6792
|
report(parser, 83);
|
|
6766
6793
|
}
|
|
6767
6794
|
{
|
|
6768
|
-
const { tokenValue, tokenRaw,
|
|
6795
|
+
const { tokenValue, tokenRaw, tokenStart } = parser;
|
|
6769
6796
|
consume(parser, context, 67174409);
|
|
6770
|
-
quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw,
|
|
6797
|
+
quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenStart, true));
|
|
6771
6798
|
}
|
|
6772
|
-
return finishNode(
|
|
6799
|
+
return parser.finishNode({
|
|
6773
6800
|
type: 'TemplateLiteral',
|
|
6774
6801
|
expressions,
|
|
6775
6802
|
quasis,
|
|
6776
|
-
});
|
|
6803
|
+
}, tokenStart);
|
|
6777
6804
|
}
|
|
6778
|
-
function parseTemplateElement(parser, context, cooked, raw, start,
|
|
6779
|
-
const node = finishNode(
|
|
6805
|
+
function parseTemplateElement(parser, context, cooked, raw, start, tail) {
|
|
6806
|
+
const node = parser.finishNode({
|
|
6780
6807
|
type: 'TemplateElement',
|
|
6781
6808
|
value: {
|
|
6782
6809
|
cooked,
|
|
6783
6810
|
raw,
|
|
6784
6811
|
},
|
|
6785
6812
|
tail,
|
|
6786
|
-
});
|
|
6813
|
+
}, start);
|
|
6787
6814
|
const tailSize = tail ? 1 : 2;
|
|
6788
6815
|
if (context & 2) {
|
|
6789
6816
|
node.start += 1;
|
|
@@ -6797,15 +6824,16 @@
|
|
|
6797
6824
|
}
|
|
6798
6825
|
return node;
|
|
6799
6826
|
}
|
|
6800
|
-
function parseSpreadElement(parser, context, privateScope
|
|
6827
|
+
function parseSpreadElement(parser, context, privateScope) {
|
|
6828
|
+
const start = parser.tokenStart;
|
|
6801
6829
|
context = (context | 33554432) ^ 33554432;
|
|
6802
6830
|
consume(parser, context | 8192, 14);
|
|
6803
|
-
const argument = parseExpression(parser, context, privateScope, 1, 0, parser.
|
|
6831
|
+
const argument = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart);
|
|
6804
6832
|
parser.assignable = 1;
|
|
6805
|
-
return finishNode(
|
|
6833
|
+
return parser.finishNode({
|
|
6806
6834
|
type: 'SpreadElement',
|
|
6807
6835
|
argument,
|
|
6808
|
-
});
|
|
6836
|
+
}, start);
|
|
6809
6837
|
}
|
|
6810
6838
|
function parseArguments(parser, context, privateScope, inGroup) {
|
|
6811
6839
|
nextToken(parser, context | 8192);
|
|
@@ -6816,10 +6844,10 @@
|
|
|
6816
6844
|
}
|
|
6817
6845
|
while (parser.getToken() !== 16) {
|
|
6818
6846
|
if (parser.getToken() === 14) {
|
|
6819
|
-
args.push(parseSpreadElement(parser, context, privateScope
|
|
6847
|
+
args.push(parseSpreadElement(parser, context, privateScope));
|
|
6820
6848
|
}
|
|
6821
6849
|
else {
|
|
6822
|
-
args.push(parseExpression(parser, context, privateScope, 1, inGroup, parser.
|
|
6850
|
+
args.push(parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart));
|
|
6823
6851
|
}
|
|
6824
6852
|
if (parser.getToken() !== 18)
|
|
6825
6853
|
break;
|
|
@@ -6831,22 +6859,22 @@
|
|
|
6831
6859
|
return args;
|
|
6832
6860
|
}
|
|
6833
6861
|
function parseIdentifier(parser, context) {
|
|
6834
|
-
const { tokenValue,
|
|
6862
|
+
const { tokenValue, tokenStart } = parser;
|
|
6835
6863
|
const allowRegex = tokenValue === 'await' && (parser.getToken() & -2147483648) === 0;
|
|
6836
6864
|
nextToken(parser, context | (allowRegex ? 8192 : 0));
|
|
6837
|
-
return finishNode(
|
|
6865
|
+
return parser.finishNode({
|
|
6838
6866
|
type: 'Identifier',
|
|
6839
6867
|
name: tokenValue,
|
|
6840
|
-
});
|
|
6868
|
+
}, tokenStart);
|
|
6841
6869
|
}
|
|
6842
6870
|
function parseLiteral(parser, context) {
|
|
6843
|
-
const { tokenValue, tokenRaw,
|
|
6871
|
+
const { tokenValue, tokenRaw, tokenStart } = parser;
|
|
6844
6872
|
if (parser.getToken() === 134283388) {
|
|
6845
|
-
return parseBigIntLiteral(parser, context
|
|
6873
|
+
return parseBigIntLiteral(parser, context);
|
|
6846
6874
|
}
|
|
6847
6875
|
nextToken(parser, context);
|
|
6848
6876
|
parser.assignable = 2;
|
|
6849
|
-
return finishNode(
|
|
6877
|
+
return parser.finishNode(context & 128
|
|
6850
6878
|
? {
|
|
6851
6879
|
type: 'Literal',
|
|
6852
6880
|
value: tokenValue,
|
|
@@ -6855,14 +6883,15 @@
|
|
|
6855
6883
|
: {
|
|
6856
6884
|
type: 'Literal',
|
|
6857
6885
|
value: tokenValue,
|
|
6858
|
-
});
|
|
6886
|
+
}, tokenStart);
|
|
6859
6887
|
}
|
|
6860
|
-
function parseNullOrTrueOrFalseLiteral(parser, context
|
|
6888
|
+
function parseNullOrTrueOrFalseLiteral(parser, context) {
|
|
6889
|
+
const start = parser.tokenStart;
|
|
6861
6890
|
const raw = KeywordDescTable[parser.getToken() & 255];
|
|
6862
6891
|
const value = parser.getToken() === 86023 ? null : raw === 'true';
|
|
6863
6892
|
nextToken(parser, context);
|
|
6864
6893
|
parser.assignable = 2;
|
|
6865
|
-
return finishNode(
|
|
6894
|
+
return parser.finishNode(context & 128
|
|
6866
6895
|
? {
|
|
6867
6896
|
type: 'Literal',
|
|
6868
6897
|
value,
|
|
@@ -6871,17 +6900,17 @@
|
|
|
6871
6900
|
: {
|
|
6872
6901
|
type: 'Literal',
|
|
6873
6902
|
value,
|
|
6874
|
-
});
|
|
6903
|
+
}, start);
|
|
6875
6904
|
}
|
|
6876
6905
|
function parseThisExpression(parser, context) {
|
|
6877
|
-
const {
|
|
6906
|
+
const { tokenStart } = parser;
|
|
6878
6907
|
nextToken(parser, context);
|
|
6879
6908
|
parser.assignable = 2;
|
|
6880
|
-
return finishNode(
|
|
6909
|
+
return parser.finishNode({
|
|
6881
6910
|
type: 'ThisExpression',
|
|
6882
|
-
});
|
|
6911
|
+
}, tokenStart);
|
|
6883
6912
|
}
|
|
6884
|
-
function parseFunctionDeclaration(parser, context, scope, privateScope, origin, allowGen, flags, isAsync, start
|
|
6913
|
+
function parseFunctionDeclaration(parser, context, scope, privateScope, origin, allowGen, flags, isAsync, start) {
|
|
6885
6914
|
nextToken(parser, context | 8192);
|
|
6886
6915
|
const isGenerator = allowGen ? optionalBit(parser, context, 8391476) : 0;
|
|
6887
6916
|
let id = null;
|
|
@@ -6937,16 +6966,16 @@
|
|
|
6937
6966
|
const params = parseFormalParametersOrFormalList(parser, (context | 2097152) & -268435457, functionScope, privateScope, 0, 1);
|
|
6938
6967
|
const modifierFlags = 2048 | 1024 | 32768 | 268435456;
|
|
6939
6968
|
const body = parseFunctionBody(parser, ((context | modifierFlags) ^ modifierFlags) | 8388608 | 1048576, scope ? addChildScope(functionScope, 128) : functionScope, privateScope, 8, funcNameToken, functionScope?.scopeError);
|
|
6940
|
-
return finishNode(
|
|
6969
|
+
return parser.finishNode({
|
|
6941
6970
|
type: 'FunctionDeclaration',
|
|
6942
6971
|
id,
|
|
6943
6972
|
params,
|
|
6944
6973
|
body,
|
|
6945
6974
|
async: isAsync === 1,
|
|
6946
6975
|
generator: isGenerator === 1,
|
|
6947
|
-
});
|
|
6976
|
+
}, start);
|
|
6948
6977
|
}
|
|
6949
|
-
function parseFunctionExpression(parser, context, privateScope, isAsync, inGroup, start
|
|
6978
|
+
function parseFunctionExpression(parser, context, privateScope, isAsync, inGroup, start) {
|
|
6950
6979
|
nextToken(parser, context | 8192);
|
|
6951
6980
|
const isGenerator = optionalBit(parser, context, 8391476);
|
|
6952
6981
|
const generatorAndAsyncFlags = (isAsync ? 524288 : 0) | (isGenerator ? 262144 : 0);
|
|
@@ -6979,17 +7008,17 @@
|
|
|
6979
7008
|
8388608 |
|
|
6980
7009
|
1048576, scope ? addChildScope(scope, 128) : scope, privateScope, 0, funcNameToken, scope?.scopeError);
|
|
6981
7010
|
parser.assignable = 2;
|
|
6982
|
-
return finishNode(
|
|
7011
|
+
return parser.finishNode({
|
|
6983
7012
|
type: 'FunctionExpression',
|
|
6984
7013
|
id,
|
|
6985
7014
|
params,
|
|
6986
7015
|
body,
|
|
6987
7016
|
async: isAsync === 1,
|
|
6988
7017
|
generator: isGenerator === 1,
|
|
6989
|
-
});
|
|
7018
|
+
}, start);
|
|
6990
7019
|
}
|
|
6991
|
-
function parseArrayLiteral(parser, context, privateScope, skipInitializer, inGroup
|
|
6992
|
-
const expr = parseArrayExpressionOrPattern(parser, context, void 0, privateScope, skipInitializer, inGroup, 0, 2, 0
|
|
7020
|
+
function parseArrayLiteral(parser, context, privateScope, skipInitializer, inGroup) {
|
|
7021
|
+
const expr = parseArrayExpressionOrPattern(parser, context, void 0, privateScope, skipInitializer, inGroup, 0, 2, 0);
|
|
6993
7022
|
if (parser.destructible & 64) {
|
|
6994
7023
|
report(parser, 63);
|
|
6995
7024
|
}
|
|
@@ -6998,7 +7027,8 @@
|
|
|
6998
7027
|
}
|
|
6999
7028
|
return expr;
|
|
7000
7029
|
}
|
|
7001
|
-
function parseArrayExpressionOrPattern(parser, context, scope, privateScope, skipInitializer, inGroup, isPattern, kind, origin
|
|
7030
|
+
function parseArrayExpressionOrPattern(parser, context, scope, privateScope, skipInitializer, inGroup, isPattern, kind, origin) {
|
|
7031
|
+
const { tokenStart: start } = parser;
|
|
7002
7032
|
nextToken(parser, context | 8192);
|
|
7003
7033
|
const elements = [];
|
|
7004
7034
|
let destructible = 0;
|
|
@@ -7009,18 +7039,18 @@
|
|
|
7009
7039
|
}
|
|
7010
7040
|
else {
|
|
7011
7041
|
let left;
|
|
7012
|
-
const {
|
|
7042
|
+
const { tokenStart, tokenValue } = parser;
|
|
7013
7043
|
const token = parser.getToken();
|
|
7014
7044
|
if (token & 143360) {
|
|
7015
|
-
left = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1,
|
|
7045
|
+
left = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1, tokenStart);
|
|
7016
7046
|
if (parser.getToken() === 1077936155) {
|
|
7017
7047
|
if (parser.assignable & 2)
|
|
7018
7048
|
report(parser, 26);
|
|
7019
7049
|
nextToken(parser, context | 8192);
|
|
7020
7050
|
if (scope)
|
|
7021
7051
|
addVarOrBlock(parser, context, scope, tokenValue, kind, origin);
|
|
7022
|
-
const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.
|
|
7023
|
-
left = finishNode(
|
|
7052
|
+
const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart);
|
|
7053
|
+
left = parser.finishNode(isPattern
|
|
7024
7054
|
? {
|
|
7025
7055
|
type: 'AssignmentPattern',
|
|
7026
7056
|
left,
|
|
@@ -7031,7 +7061,7 @@
|
|
|
7031
7061
|
operator: '=',
|
|
7032
7062
|
left,
|
|
7033
7063
|
right,
|
|
7034
|
-
});
|
|
7064
|
+
}, tokenStart);
|
|
7035
7065
|
destructible |=
|
|
7036
7066
|
parser.destructible & 256
|
|
7037
7067
|
? 256
|
|
@@ -7060,11 +7090,11 @@
|
|
|
7060
7090
|
: (kind & 2) === 0
|
|
7061
7091
|
? 16
|
|
7062
7092
|
: 0;
|
|
7063
|
-
left = parseMemberOrUpdateExpression(parser, context, privateScope, left, inGroup, 0,
|
|
7093
|
+
left = parseMemberOrUpdateExpression(parser, context, privateScope, left, inGroup, 0, tokenStart);
|
|
7064
7094
|
if (parser.getToken() !== 18 && parser.getToken() !== 20) {
|
|
7065
7095
|
if (parser.getToken() !== 1077936155)
|
|
7066
7096
|
destructible |= 16;
|
|
7067
|
-
left = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7097
|
+
left = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, left);
|
|
7068
7098
|
}
|
|
7069
7099
|
else if (parser.getToken() !== 1077936155) {
|
|
7070
7100
|
destructible |=
|
|
@@ -7077,8 +7107,8 @@
|
|
|
7077
7107
|
else if (token & 2097152) {
|
|
7078
7108
|
left =
|
|
7079
7109
|
parser.getToken() === 2162700
|
|
7080
|
-
? parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin
|
|
7081
|
-
: parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin
|
|
7110
|
+
? parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin)
|
|
7111
|
+
: parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin);
|
|
7082
7112
|
destructible |= parser.destructible;
|
|
7083
7113
|
parser.assignable =
|
|
7084
7114
|
parser.destructible & 16
|
|
@@ -7093,10 +7123,10 @@
|
|
|
7093
7123
|
report(parser, 71);
|
|
7094
7124
|
}
|
|
7095
7125
|
else {
|
|
7096
|
-
left = parseMemberOrUpdateExpression(parser, context, privateScope, left, inGroup, 0,
|
|
7126
|
+
left = parseMemberOrUpdateExpression(parser, context, privateScope, left, inGroup, 0, tokenStart);
|
|
7097
7127
|
destructible = parser.assignable & 2 ? 16 : 0;
|
|
7098
7128
|
if (parser.getToken() !== 18 && parser.getToken() !== 20) {
|
|
7099
|
-
left = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7129
|
+
left = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, left);
|
|
7100
7130
|
}
|
|
7101
7131
|
else if (parser.getToken() !== 1077936155) {
|
|
7102
7132
|
destructible |=
|
|
@@ -7107,15 +7137,15 @@
|
|
|
7107
7137
|
}
|
|
7108
7138
|
}
|
|
7109
7139
|
else if (token === 14) {
|
|
7110
|
-
left = parseSpreadOrRestElement(parser, context, scope, privateScope, 20, kind, origin, 0, inGroup, isPattern
|
|
7140
|
+
left = parseSpreadOrRestElement(parser, context, scope, privateScope, 20, kind, origin, 0, inGroup, isPattern);
|
|
7111
7141
|
destructible |= parser.destructible;
|
|
7112
7142
|
if (parser.getToken() !== 18 && parser.getToken() !== 20)
|
|
7113
7143
|
report(parser, 30, KeywordDescTable[parser.getToken() & 255]);
|
|
7114
7144
|
}
|
|
7115
7145
|
else {
|
|
7116
|
-
left = parseLeftHandSideExpression(parser, context, privateScope, 1, 0, 1
|
|
7146
|
+
left = parseLeftHandSideExpression(parser, context, privateScope, 1, 0, 1);
|
|
7117
7147
|
if (parser.getToken() !== 18 && parser.getToken() !== 20) {
|
|
7118
|
-
left = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7148
|
+
left = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, left);
|
|
7119
7149
|
if ((kind & (2 | 1)) === 0 && token === 67174411)
|
|
7120
7150
|
destructible |= 16;
|
|
7121
7151
|
}
|
|
@@ -7139,17 +7169,17 @@
|
|
|
7139
7169
|
}
|
|
7140
7170
|
}
|
|
7141
7171
|
consume(parser, context, 20);
|
|
7142
|
-
const node = finishNode(
|
|
7172
|
+
const node = parser.finishNode({
|
|
7143
7173
|
type: isPattern ? 'ArrayPattern' : 'ArrayExpression',
|
|
7144
7174
|
elements,
|
|
7145
|
-
});
|
|
7175
|
+
}, start);
|
|
7146
7176
|
if (!skipInitializer && parser.getToken() & 4194304) {
|
|
7147
|
-
return parseArrayOrObjectAssignmentPattern(parser, context, privateScope, destructible, inGroup, isPattern, start,
|
|
7177
|
+
return parseArrayOrObjectAssignmentPattern(parser, context, privateScope, destructible, inGroup, isPattern, start, node);
|
|
7148
7178
|
}
|
|
7149
7179
|
parser.destructible = destructible;
|
|
7150
7180
|
return node;
|
|
7151
7181
|
}
|
|
7152
|
-
function parseArrayOrObjectAssignmentPattern(parser, context, privateScope, destructible, inGroup, isPattern, start,
|
|
7182
|
+
function parseArrayOrObjectAssignmentPattern(parser, context, privateScope, destructible, inGroup, isPattern, start, node) {
|
|
7153
7183
|
if (parser.getToken() !== 1077936155)
|
|
7154
7184
|
report(parser, 26);
|
|
7155
7185
|
nextToken(parser, context | 8192);
|
|
@@ -7157,14 +7187,14 @@
|
|
|
7157
7187
|
report(parser, 26);
|
|
7158
7188
|
if (!isPattern)
|
|
7159
7189
|
reinterpretToPattern(parser, node);
|
|
7160
|
-
const {
|
|
7161
|
-
const right = parseExpression(parser, context, privateScope, 1, inGroup,
|
|
7190
|
+
const { tokenStart } = parser;
|
|
7191
|
+
const right = parseExpression(parser, context, privateScope, 1, inGroup, tokenStart);
|
|
7162
7192
|
parser.destructible =
|
|
7163
7193
|
((destructible | 64 | 8) ^
|
|
7164
7194
|
(8 | 64)) |
|
|
7165
7195
|
(parser.destructible & 128 ? 128 : 0) |
|
|
7166
7196
|
(parser.destructible & 256 ? 256 : 0);
|
|
7167
|
-
return finishNode(
|
|
7197
|
+
return parser.finishNode(isPattern
|
|
7168
7198
|
? {
|
|
7169
7199
|
type: 'AssignmentPattern',
|
|
7170
7200
|
left: node,
|
|
@@ -7175,24 +7205,25 @@
|
|
|
7175
7205
|
left: node,
|
|
7176
7206
|
operator: '=',
|
|
7177
7207
|
right,
|
|
7178
|
-
});
|
|
7208
|
+
}, start);
|
|
7179
7209
|
}
|
|
7180
|
-
function parseSpreadOrRestElement(parser, context, scope, privateScope, closingToken, kind, origin, isAsync, inGroup, isPattern
|
|
7210
|
+
function parseSpreadOrRestElement(parser, context, scope, privateScope, closingToken, kind, origin, isAsync, inGroup, isPattern) {
|
|
7211
|
+
const { tokenStart: start } = parser;
|
|
7181
7212
|
nextToken(parser, context | 8192);
|
|
7182
7213
|
let argument = null;
|
|
7183
7214
|
let destructible = 0;
|
|
7184
|
-
const { tokenValue,
|
|
7215
|
+
const { tokenValue, tokenStart } = parser;
|
|
7185
7216
|
let token = parser.getToken();
|
|
7186
7217
|
if (token & 143360) {
|
|
7187
7218
|
parser.assignable = 1;
|
|
7188
|
-
argument = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1,
|
|
7219
|
+
argument = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1, tokenStart);
|
|
7189
7220
|
token = parser.getToken();
|
|
7190
|
-
argument = parseMemberOrUpdateExpression(parser, context, privateScope, argument, inGroup, 0,
|
|
7221
|
+
argument = parseMemberOrUpdateExpression(parser, context, privateScope, argument, inGroup, 0, tokenStart);
|
|
7191
7222
|
if (parser.getToken() !== 18 && parser.getToken() !== closingToken) {
|
|
7192
7223
|
if (parser.assignable & 2 && parser.getToken() === 1077936155)
|
|
7193
7224
|
report(parser, 71);
|
|
7194
7225
|
destructible |= 16;
|
|
7195
|
-
argument = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7226
|
+
argument = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, argument);
|
|
7196
7227
|
}
|
|
7197
7228
|
if (parser.assignable & 2) {
|
|
7198
7229
|
destructible |= 16;
|
|
@@ -7212,25 +7243,25 @@
|
|
|
7212
7243
|
else if (token & 2097152) {
|
|
7213
7244
|
argument =
|
|
7214
7245
|
parser.getToken() === 2162700
|
|
7215
|
-
? parseObjectLiteralOrPattern(parser, context, scope, privateScope, 1, inGroup, isPattern, kind, origin
|
|
7216
|
-
: parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, inGroup, isPattern, kind, origin
|
|
7246
|
+
? parseObjectLiteralOrPattern(parser, context, scope, privateScope, 1, inGroup, isPattern, kind, origin)
|
|
7247
|
+
: parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, inGroup, isPattern, kind, origin);
|
|
7217
7248
|
token = parser.getToken();
|
|
7218
7249
|
if (token !== 1077936155 && token !== closingToken && token !== 18) {
|
|
7219
7250
|
if (parser.destructible & 8)
|
|
7220
7251
|
report(parser, 71);
|
|
7221
|
-
argument = parseMemberOrUpdateExpression(parser, context, privateScope, argument, inGroup, 0,
|
|
7252
|
+
argument = parseMemberOrUpdateExpression(parser, context, privateScope, argument, inGroup, 0, tokenStart);
|
|
7222
7253
|
destructible |= parser.assignable & 2 ? 16 : 0;
|
|
7223
7254
|
if ((parser.getToken() & 4194304) === 4194304) {
|
|
7224
7255
|
if (parser.getToken() !== 1077936155)
|
|
7225
7256
|
destructible |= 16;
|
|
7226
|
-
argument = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7257
|
+
argument = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, argument);
|
|
7227
7258
|
}
|
|
7228
7259
|
else {
|
|
7229
7260
|
if ((parser.getToken() & 8388608) === 8388608) {
|
|
7230
|
-
argument = parseBinaryExpression(parser, context, privateScope, 1,
|
|
7261
|
+
argument = parseBinaryExpression(parser, context, privateScope, 1, tokenStart, 4, token, argument);
|
|
7231
7262
|
}
|
|
7232
7263
|
if (consumeOpt(parser, context | 8192, 22)) {
|
|
7233
|
-
argument = parseConditionalExpression(parser, context, privateScope, argument,
|
|
7264
|
+
argument = parseConditionalExpression(parser, context, privateScope, argument, tokenStart);
|
|
7234
7265
|
}
|
|
7235
7266
|
destructible |=
|
|
7236
7267
|
parser.assignable & 2
|
|
@@ -7247,13 +7278,13 @@
|
|
|
7247
7278
|
}
|
|
7248
7279
|
else {
|
|
7249
7280
|
destructible |= 32;
|
|
7250
|
-
argument = parseLeftHandSideExpression(parser, context, privateScope, 1, inGroup, 1
|
|
7251
|
-
const {
|
|
7281
|
+
argument = parseLeftHandSideExpression(parser, context, privateScope, 1, inGroup, 1);
|
|
7282
|
+
const { tokenStart } = parser;
|
|
7252
7283
|
const token = parser.getToken();
|
|
7253
7284
|
if (token === 1077936155) {
|
|
7254
7285
|
if (parser.assignable & 2)
|
|
7255
7286
|
report(parser, 26);
|
|
7256
|
-
argument = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7287
|
+
argument = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, argument);
|
|
7257
7288
|
destructible |= 16;
|
|
7258
7289
|
}
|
|
7259
7290
|
else {
|
|
@@ -7261,7 +7292,7 @@
|
|
|
7261
7292
|
destructible |= 16;
|
|
7262
7293
|
}
|
|
7263
7294
|
else if (token !== closingToken) {
|
|
7264
|
-
argument = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7295
|
+
argument = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, argument);
|
|
7265
7296
|
}
|
|
7266
7297
|
destructible |=
|
|
7267
7298
|
parser.assignable & 1 ? 32 : 16;
|
|
@@ -7269,10 +7300,10 @@
|
|
|
7269
7300
|
parser.destructible = destructible;
|
|
7270
7301
|
if (parser.getToken() !== closingToken && parser.getToken() !== 18)
|
|
7271
7302
|
report(parser, 161);
|
|
7272
|
-
return finishNode(
|
|
7303
|
+
return parser.finishNode({
|
|
7273
7304
|
type: isPattern ? 'RestElement' : 'SpreadElement',
|
|
7274
7305
|
argument: argument,
|
|
7275
|
-
});
|
|
7306
|
+
}, start);
|
|
7276
7307
|
}
|
|
7277
7308
|
if (parser.getToken() !== closingToken) {
|
|
7278
7309
|
if (kind & 1)
|
|
@@ -7281,8 +7312,8 @@
|
|
|
7281
7312
|
if (destructible & 16)
|
|
7282
7313
|
report(parser, 26);
|
|
7283
7314
|
reinterpretToPattern(parser, argument);
|
|
7284
|
-
const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.
|
|
7285
|
-
argument = finishNode(
|
|
7315
|
+
const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart);
|
|
7316
|
+
argument = parser.finishNode(isPattern
|
|
7286
7317
|
? {
|
|
7287
7318
|
type: 'AssignmentPattern',
|
|
7288
7319
|
left: argument,
|
|
@@ -7293,7 +7324,7 @@
|
|
|
7293
7324
|
left: argument,
|
|
7294
7325
|
operator: '=',
|
|
7295
7326
|
right,
|
|
7296
|
-
});
|
|
7327
|
+
}, tokenStart);
|
|
7297
7328
|
destructible = 16;
|
|
7298
7329
|
}
|
|
7299
7330
|
else {
|
|
@@ -7301,12 +7332,12 @@
|
|
|
7301
7332
|
}
|
|
7302
7333
|
}
|
|
7303
7334
|
parser.destructible = destructible;
|
|
7304
|
-
return finishNode(
|
|
7335
|
+
return parser.finishNode({
|
|
7305
7336
|
type: isPattern ? 'RestElement' : 'SpreadElement',
|
|
7306
7337
|
argument: argument,
|
|
7307
|
-
});
|
|
7338
|
+
}, start);
|
|
7308
7339
|
}
|
|
7309
|
-
function parseMethodDefinition(parser, context, privateScope, kind, inGroup, start
|
|
7340
|
+
function parseMethodDefinition(parser, context, privateScope, kind, inGroup, start) {
|
|
7310
7341
|
const modifierFlags = 262144 |
|
|
7311
7342
|
524288 |
|
|
7312
7343
|
2097152 |
|
|
@@ -7326,17 +7357,17 @@
|
|
|
7326
7357
|
const body = parseFunctionBody(parser, (context & -301992961) |
|
|
7327
7358
|
8388608 |
|
|
7328
7359
|
1048576, scope, privateScope, 0, void 0, scope?.parent?.scopeError);
|
|
7329
|
-
return finishNode(
|
|
7360
|
+
return parser.finishNode({
|
|
7330
7361
|
type: 'FunctionExpression',
|
|
7331
7362
|
params,
|
|
7332
7363
|
body,
|
|
7333
7364
|
async: (kind & 16) > 0,
|
|
7334
7365
|
generator: (kind & 8) > 0,
|
|
7335
7366
|
id: null,
|
|
7336
|
-
});
|
|
7367
|
+
}, start);
|
|
7337
7368
|
}
|
|
7338
|
-
function parseObjectLiteral(parser, context, privateScope, skipInitializer, inGroup
|
|
7339
|
-
const expr = parseObjectLiteralOrPattern(parser, context, void 0, privateScope, skipInitializer, inGroup, 0, 2, 0
|
|
7369
|
+
function parseObjectLiteral(parser, context, privateScope, skipInitializer, inGroup) {
|
|
7370
|
+
const expr = parseObjectLiteralOrPattern(parser, context, void 0, privateScope, skipInitializer, inGroup, 0, 2, 0);
|
|
7340
7371
|
if (parser.destructible & 64) {
|
|
7341
7372
|
report(parser, 63);
|
|
7342
7373
|
}
|
|
@@ -7345,17 +7376,18 @@
|
|
|
7345
7376
|
}
|
|
7346
7377
|
return expr;
|
|
7347
7378
|
}
|
|
7348
|
-
function parseObjectLiteralOrPattern(parser, context, scope, privateScope, skipInitializer, inGroup, isPattern, kind, origin
|
|
7379
|
+
function parseObjectLiteralOrPattern(parser, context, scope, privateScope, skipInitializer, inGroup, isPattern, kind, origin) {
|
|
7380
|
+
const { tokenStart: start } = parser;
|
|
7349
7381
|
nextToken(parser, context);
|
|
7350
7382
|
const properties = [];
|
|
7351
7383
|
let destructible = 0;
|
|
7352
7384
|
let prototypeCount = 0;
|
|
7353
7385
|
context = (context | 33554432) ^ 33554432;
|
|
7354
7386
|
while (parser.getToken() !== 1074790415) {
|
|
7355
|
-
const { tokenValue,
|
|
7387
|
+
const { tokenValue, tokenStart } = parser;
|
|
7356
7388
|
const token = parser.getToken();
|
|
7357
7389
|
if (token === 14) {
|
|
7358
|
-
properties.push(parseSpreadOrRestElement(parser, context, scope, privateScope, 1074790415, kind, origin, 0, inGroup, isPattern
|
|
7390
|
+
properties.push(parseSpreadOrRestElement(parser, context, scope, privateScope, 1074790415, kind, origin, 0, inGroup, isPattern));
|
|
7359
7391
|
}
|
|
7360
7392
|
else {
|
|
7361
7393
|
let state = 0;
|
|
@@ -7381,18 +7413,18 @@
|
|
|
7381
7413
|
addVarOrBlock(parser, context, scope, tokenValue, kind, origin);
|
|
7382
7414
|
if (consumeOpt(parser, context | 8192, 1077936155)) {
|
|
7383
7415
|
destructible |= 8;
|
|
7384
|
-
const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.
|
|
7416
|
+
const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart);
|
|
7385
7417
|
destructible |=
|
|
7386
7418
|
parser.destructible & 256
|
|
7387
7419
|
? 256
|
|
7388
7420
|
: 0 | (parser.destructible & 128)
|
|
7389
7421
|
? 128
|
|
7390
7422
|
: 0;
|
|
7391
|
-
value = finishNode(
|
|
7423
|
+
value = parser.finishNode({
|
|
7392
7424
|
type: 'AssignmentPattern',
|
|
7393
7425
|
left: context & 134217728 ? Object.assign({}, key) : key,
|
|
7394
7426
|
right,
|
|
7395
|
-
});
|
|
7427
|
+
}, tokenStart);
|
|
7396
7428
|
}
|
|
7397
7429
|
else {
|
|
7398
7430
|
destructible |=
|
|
@@ -7402,15 +7434,15 @@
|
|
|
7402
7434
|
}
|
|
7403
7435
|
}
|
|
7404
7436
|
else if (consumeOpt(parser, context | 8192, 21)) {
|
|
7405
|
-
const {
|
|
7437
|
+
const { tokenStart } = parser;
|
|
7406
7438
|
if (tokenValue === '__proto__')
|
|
7407
7439
|
prototypeCount++;
|
|
7408
7440
|
if (parser.getToken() & 143360) {
|
|
7409
7441
|
const tokenAfterColon = parser.getToken();
|
|
7410
7442
|
const valueAfterColon = parser.tokenValue;
|
|
7411
|
-
value = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1,
|
|
7443
|
+
value = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1, tokenStart);
|
|
7412
7444
|
const token = parser.getToken();
|
|
7413
|
-
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0,
|
|
7445
|
+
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart);
|
|
7414
7446
|
if (parser.getToken() === 18 || parser.getToken() === 1074790415) {
|
|
7415
7447
|
if (token === 1077936155 || token === 1074790415 || token === 18) {
|
|
7416
7448
|
destructible |= parser.destructible & 128 ? 128 : 0;
|
|
@@ -7438,23 +7470,23 @@
|
|
|
7438
7470
|
else if (scope) {
|
|
7439
7471
|
addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin);
|
|
7440
7472
|
}
|
|
7441
|
-
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7473
|
+
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, value);
|
|
7442
7474
|
}
|
|
7443
7475
|
else {
|
|
7444
7476
|
destructible |= 16;
|
|
7445
7477
|
if ((parser.getToken() & 8388608) === 8388608) {
|
|
7446
|
-
value = parseBinaryExpression(parser, context, privateScope, 1,
|
|
7478
|
+
value = parseBinaryExpression(parser, context, privateScope, 1, tokenStart, 4, token, value);
|
|
7447
7479
|
}
|
|
7448
7480
|
if (consumeOpt(parser, context | 8192, 22)) {
|
|
7449
|
-
value = parseConditionalExpression(parser, context, privateScope, value,
|
|
7481
|
+
value = parseConditionalExpression(parser, context, privateScope, value, tokenStart);
|
|
7450
7482
|
}
|
|
7451
7483
|
}
|
|
7452
7484
|
}
|
|
7453
7485
|
else if ((parser.getToken() & 2097152) === 2097152) {
|
|
7454
7486
|
value =
|
|
7455
7487
|
parser.getToken() === 69271571
|
|
7456
|
-
? parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin
|
|
7457
|
-
: parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin
|
|
7488
|
+
? parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin)
|
|
7489
|
+
: parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin);
|
|
7458
7490
|
destructible = parser.destructible;
|
|
7459
7491
|
parser.assignable =
|
|
7460
7492
|
destructible & 16 ? 2 : 1;
|
|
@@ -7466,17 +7498,17 @@
|
|
|
7466
7498
|
report(parser, 71);
|
|
7467
7499
|
}
|
|
7468
7500
|
else {
|
|
7469
|
-
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0,
|
|
7501
|
+
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart);
|
|
7470
7502
|
destructible = parser.assignable & 2 ? 16 : 0;
|
|
7471
7503
|
if ((parser.getToken() & 4194304) === 4194304) {
|
|
7472
|
-
value = parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern,
|
|
7504
|
+
value = parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern, tokenStart, value);
|
|
7473
7505
|
}
|
|
7474
7506
|
else {
|
|
7475
7507
|
if ((parser.getToken() & 8388608) === 8388608) {
|
|
7476
|
-
value = parseBinaryExpression(parser, context, privateScope, 1,
|
|
7508
|
+
value = parseBinaryExpression(parser, context, privateScope, 1, tokenStart, 4, token, value);
|
|
7477
7509
|
}
|
|
7478
7510
|
if (consumeOpt(parser, context | 8192, 22)) {
|
|
7479
|
-
value = parseConditionalExpression(parser, context, privateScope, value,
|
|
7511
|
+
value = parseConditionalExpression(parser, context, privateScope, value, tokenStart);
|
|
7480
7512
|
}
|
|
7481
7513
|
destructible |=
|
|
7482
7514
|
parser.assignable & 2
|
|
@@ -7486,7 +7518,7 @@
|
|
|
7486
7518
|
}
|
|
7487
7519
|
}
|
|
7488
7520
|
else {
|
|
7489
|
-
value = parseLeftHandSideExpression(parser, context, privateScope, 1, inGroup, 1
|
|
7521
|
+
value = parseLeftHandSideExpression(parser, context, privateScope, 1, inGroup, 1);
|
|
7490
7522
|
destructible |=
|
|
7491
7523
|
parser.assignable & 1
|
|
7492
7524
|
? 32
|
|
@@ -7496,12 +7528,12 @@
|
|
|
7496
7528
|
destructible |= 16;
|
|
7497
7529
|
}
|
|
7498
7530
|
else {
|
|
7499
|
-
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0,
|
|
7531
|
+
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart);
|
|
7500
7532
|
destructible = parser.assignable & 2 ? 16 : 0;
|
|
7501
7533
|
if (parser.getToken() !== 18 && token !== 1074790415) {
|
|
7502
7534
|
if (parser.getToken() !== 1077936155)
|
|
7503
7535
|
destructible |= 16;
|
|
7504
|
-
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7536
|
+
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, value);
|
|
7505
7537
|
}
|
|
7506
7538
|
}
|
|
7507
7539
|
}
|
|
@@ -7518,7 +7550,7 @@
|
|
|
7518
7550
|
: 1) | 2;
|
|
7519
7551
|
key = parseComputedPropertyName(parser, context, privateScope, inGroup);
|
|
7520
7552
|
destructible |= parser.assignable;
|
|
7521
|
-
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.
|
|
7553
|
+
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart);
|
|
7522
7554
|
}
|
|
7523
7555
|
else if (parser.getToken() & 143360) {
|
|
7524
7556
|
destructible |= 16;
|
|
@@ -7539,12 +7571,12 @@
|
|
|
7539
7571
|
report(parser, 0);
|
|
7540
7572
|
}
|
|
7541
7573
|
key = parseIdentifier(parser, context);
|
|
7542
|
-
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.
|
|
7574
|
+
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart);
|
|
7543
7575
|
}
|
|
7544
7576
|
else if (parser.getToken() === 67174411) {
|
|
7545
7577
|
destructible |= 16;
|
|
7546
7578
|
state |= 1;
|
|
7547
|
-
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.
|
|
7579
|
+
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart);
|
|
7548
7580
|
}
|
|
7549
7581
|
else if (parser.getToken() === 8391476) {
|
|
7550
7582
|
destructible |= 16;
|
|
@@ -7574,7 +7606,7 @@
|
|
|
7574
7606
|
else {
|
|
7575
7607
|
report(parser, 30, KeywordDescTable[parser.getToken() & 255]);
|
|
7576
7608
|
}
|
|
7577
|
-
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.
|
|
7609
|
+
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart);
|
|
7578
7610
|
}
|
|
7579
7611
|
else if ((parser.getToken() & 134217728) === 134217728) {
|
|
7580
7612
|
if (token === 209005)
|
|
@@ -7587,7 +7619,7 @@
|
|
|
7587
7619
|
: 1;
|
|
7588
7620
|
destructible |= 16;
|
|
7589
7621
|
key = parseLiteral(parser, context);
|
|
7590
|
-
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.
|
|
7622
|
+
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart);
|
|
7591
7623
|
}
|
|
7592
7624
|
else {
|
|
7593
7625
|
report(parser, 133);
|
|
@@ -7597,14 +7629,14 @@
|
|
|
7597
7629
|
key = parseLiteral(parser, context);
|
|
7598
7630
|
if (parser.getToken() === 21) {
|
|
7599
7631
|
consume(parser, context | 8192, 21);
|
|
7600
|
-
const {
|
|
7632
|
+
const { tokenStart } = parser;
|
|
7601
7633
|
if (tokenValue === '__proto__')
|
|
7602
7634
|
prototypeCount++;
|
|
7603
7635
|
if (parser.getToken() & 143360) {
|
|
7604
|
-
value = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1,
|
|
7636
|
+
value = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1, tokenStart);
|
|
7605
7637
|
const { tokenValue: valueAfterColon } = parser;
|
|
7606
7638
|
const token = parser.getToken();
|
|
7607
|
-
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0,
|
|
7639
|
+
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart);
|
|
7608
7640
|
if (parser.getToken() === 18 || parser.getToken() === 1074790415) {
|
|
7609
7641
|
if (token === 1077936155 || token === 1074790415 || token === 18) {
|
|
7610
7642
|
if (parser.assignable & 2) {
|
|
@@ -7624,18 +7656,18 @@
|
|
|
7624
7656
|
else if (parser.getToken() === 1077936155) {
|
|
7625
7657
|
if (parser.assignable & 2)
|
|
7626
7658
|
destructible |= 16;
|
|
7627
|
-
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7659
|
+
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, value);
|
|
7628
7660
|
}
|
|
7629
7661
|
else {
|
|
7630
7662
|
destructible |= 16;
|
|
7631
|
-
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7663
|
+
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, value);
|
|
7632
7664
|
}
|
|
7633
7665
|
}
|
|
7634
7666
|
else if ((parser.getToken() & 2097152) === 2097152) {
|
|
7635
7667
|
value =
|
|
7636
7668
|
parser.getToken() === 69271571
|
|
7637
|
-
? parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin
|
|
7638
|
-
: parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin
|
|
7669
|
+
? parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin)
|
|
7670
|
+
: parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin);
|
|
7639
7671
|
destructible = parser.destructible;
|
|
7640
7672
|
parser.assignable =
|
|
7641
7673
|
destructible & 16 ? 2 : 1;
|
|
@@ -7645,17 +7677,17 @@
|
|
|
7645
7677
|
}
|
|
7646
7678
|
}
|
|
7647
7679
|
else if ((parser.destructible & 8) !== 8) {
|
|
7648
|
-
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0,
|
|
7680
|
+
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart);
|
|
7649
7681
|
destructible = parser.assignable & 2 ? 16 : 0;
|
|
7650
7682
|
if ((parser.getToken() & 4194304) === 4194304) {
|
|
7651
|
-
value = parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern,
|
|
7683
|
+
value = parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern, tokenStart, value);
|
|
7652
7684
|
}
|
|
7653
7685
|
else {
|
|
7654
7686
|
if ((parser.getToken() & 8388608) === 8388608) {
|
|
7655
|
-
value = parseBinaryExpression(parser, context, privateScope, 1,
|
|
7687
|
+
value = parseBinaryExpression(parser, context, privateScope, 1, tokenStart, 4, token, value);
|
|
7656
7688
|
}
|
|
7657
7689
|
if (consumeOpt(parser, context | 8192, 22)) {
|
|
7658
|
-
value = parseConditionalExpression(parser, context, privateScope, value,
|
|
7690
|
+
value = parseConditionalExpression(parser, context, privateScope, value, tokenStart);
|
|
7659
7691
|
}
|
|
7660
7692
|
destructible |=
|
|
7661
7693
|
parser.assignable & 2
|
|
@@ -7665,7 +7697,7 @@
|
|
|
7665
7697
|
}
|
|
7666
7698
|
}
|
|
7667
7699
|
else {
|
|
7668
|
-
value = parseLeftHandSideExpression(parser, context, privateScope, 1, 0, 1
|
|
7700
|
+
value = parseLeftHandSideExpression(parser, context, privateScope, 1, 0, 1);
|
|
7669
7701
|
destructible |=
|
|
7670
7702
|
parser.assignable & 1
|
|
7671
7703
|
? 32
|
|
@@ -7676,19 +7708,19 @@
|
|
|
7676
7708
|
}
|
|
7677
7709
|
}
|
|
7678
7710
|
else {
|
|
7679
|
-
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0,
|
|
7711
|
+
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart);
|
|
7680
7712
|
destructible = parser.assignable & 1 ? 0 : 16;
|
|
7681
7713
|
if (parser.getToken() !== 18 && parser.getToken() !== 1074790415) {
|
|
7682
7714
|
if (parser.getToken() !== 1077936155)
|
|
7683
7715
|
destructible |= 16;
|
|
7684
|
-
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7716
|
+
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, value);
|
|
7685
7717
|
}
|
|
7686
7718
|
}
|
|
7687
7719
|
}
|
|
7688
7720
|
}
|
|
7689
7721
|
else if (parser.getToken() === 67174411) {
|
|
7690
7722
|
state |= 1;
|
|
7691
|
-
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.
|
|
7723
|
+
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart);
|
|
7692
7724
|
destructible = parser.assignable | 16;
|
|
7693
7725
|
}
|
|
7694
7726
|
else {
|
|
@@ -7701,12 +7733,12 @@
|
|
|
7701
7733
|
state |= 2;
|
|
7702
7734
|
if (parser.getToken() === 21) {
|
|
7703
7735
|
nextToken(parser, context | 8192);
|
|
7704
|
-
const {
|
|
7736
|
+
const { tokenStart, tokenValue } = parser;
|
|
7705
7737
|
const tokenAfterColon = parser.getToken();
|
|
7706
7738
|
if (parser.getToken() & 143360) {
|
|
7707
|
-
value = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1,
|
|
7739
|
+
value = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1, tokenStart);
|
|
7708
7740
|
const token = parser.getToken();
|
|
7709
|
-
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0,
|
|
7741
|
+
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart);
|
|
7710
7742
|
if ((parser.getToken() & 4194304) === 4194304) {
|
|
7711
7743
|
destructible |=
|
|
7712
7744
|
parser.assignable & 2
|
|
@@ -7714,7 +7746,7 @@
|
|
|
7714
7746
|
: token === 1077936155
|
|
7715
7747
|
? 0
|
|
7716
7748
|
: 32;
|
|
7717
|
-
value = parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern,
|
|
7749
|
+
value = parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern, tokenStart, value);
|
|
7718
7750
|
}
|
|
7719
7751
|
else if (parser.getToken() === 18 || parser.getToken() === 1074790415) {
|
|
7720
7752
|
if (token === 1077936155 || token === 1074790415 || token === 18) {
|
|
@@ -7734,14 +7766,14 @@
|
|
|
7734
7766
|
}
|
|
7735
7767
|
else {
|
|
7736
7768
|
destructible |= 16;
|
|
7737
|
-
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7769
|
+
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, value);
|
|
7738
7770
|
}
|
|
7739
7771
|
}
|
|
7740
7772
|
else if ((parser.getToken() & 2097152) === 2097152) {
|
|
7741
7773
|
value =
|
|
7742
7774
|
parser.getToken() === 69271571
|
|
7743
|
-
? parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin
|
|
7744
|
-
: parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin
|
|
7775
|
+
? parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin)
|
|
7776
|
+
: parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin);
|
|
7745
7777
|
destructible = parser.destructible;
|
|
7746
7778
|
parser.assignable =
|
|
7747
7779
|
destructible & 16 ? 2 : 1;
|
|
@@ -7753,20 +7785,20 @@
|
|
|
7753
7785
|
report(parser, 62);
|
|
7754
7786
|
}
|
|
7755
7787
|
else {
|
|
7756
|
-
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0,
|
|
7788
|
+
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart);
|
|
7757
7789
|
destructible =
|
|
7758
7790
|
parser.assignable & 2 ? destructible | 16 : 0;
|
|
7759
7791
|
if ((parser.getToken() & 4194304) === 4194304) {
|
|
7760
7792
|
if (parser.getToken() !== 1077936155)
|
|
7761
7793
|
destructible |= 16;
|
|
7762
|
-
value = parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern,
|
|
7794
|
+
value = parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern, tokenStart, value);
|
|
7763
7795
|
}
|
|
7764
7796
|
else {
|
|
7765
7797
|
if ((parser.getToken() & 8388608) === 8388608) {
|
|
7766
|
-
value = parseBinaryExpression(parser, context, privateScope, 1,
|
|
7798
|
+
value = parseBinaryExpression(parser, context, privateScope, 1, tokenStart, 4, token, value);
|
|
7767
7799
|
}
|
|
7768
7800
|
if (consumeOpt(parser, context | 8192, 22)) {
|
|
7769
|
-
value = parseConditionalExpression(parser, context, privateScope, value,
|
|
7801
|
+
value = parseConditionalExpression(parser, context, privateScope, value, tokenStart);
|
|
7770
7802
|
}
|
|
7771
7803
|
destructible |=
|
|
7772
7804
|
parser.assignable & 2
|
|
@@ -7776,7 +7808,7 @@
|
|
|
7776
7808
|
}
|
|
7777
7809
|
}
|
|
7778
7810
|
else {
|
|
7779
|
-
value = parseLeftHandSideExpression(parser, context, privateScope, 1, 0, 1
|
|
7811
|
+
value = parseLeftHandSideExpression(parser, context, privateScope, 1, 0, 1);
|
|
7780
7812
|
destructible |=
|
|
7781
7813
|
parser.assignable & 1
|
|
7782
7814
|
? 32
|
|
@@ -7786,19 +7818,19 @@
|
|
|
7786
7818
|
destructible |= 16;
|
|
7787
7819
|
}
|
|
7788
7820
|
else {
|
|
7789
|
-
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0,
|
|
7821
|
+
value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart);
|
|
7790
7822
|
destructible = parser.assignable & 1 ? 0 : 16;
|
|
7791
7823
|
if (parser.getToken() !== 18 && parser.getToken() !== 1074790415) {
|
|
7792
7824
|
if (parser.getToken() !== 1077936155)
|
|
7793
7825
|
destructible |= 16;
|
|
7794
|
-
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern,
|
|
7826
|
+
value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, value);
|
|
7795
7827
|
}
|
|
7796
7828
|
}
|
|
7797
7829
|
}
|
|
7798
7830
|
}
|
|
7799
7831
|
else if (parser.getToken() === 67174411) {
|
|
7800
7832
|
state |= 1;
|
|
7801
|
-
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.
|
|
7833
|
+
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart);
|
|
7802
7834
|
destructible = 16;
|
|
7803
7835
|
}
|
|
7804
7836
|
else {
|
|
@@ -7814,10 +7846,10 @@
|
|
|
7814
7846
|
state |= 1;
|
|
7815
7847
|
if (parser.getToken() === 67174411) {
|
|
7816
7848
|
destructible |= 16;
|
|
7817
|
-
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.
|
|
7849
|
+
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart);
|
|
7818
7850
|
}
|
|
7819
7851
|
else {
|
|
7820
|
-
reportMessageAt(parser.
|
|
7852
|
+
reportMessageAt(parser.tokenStart, parser.currentLocation, token === 209005
|
|
7821
7853
|
? 46
|
|
7822
7854
|
: token === 209008 || parser.getToken() === 209009
|
|
7823
7855
|
? 45
|
|
@@ -7828,13 +7860,13 @@
|
|
|
7828
7860
|
destructible |= 16;
|
|
7829
7861
|
key = parseLiteral(parser, context);
|
|
7830
7862
|
state |= 1;
|
|
7831
|
-
value = parseMethodDefinition(parser, context, privateScope, state, inGroup,
|
|
7863
|
+
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, tokenStart);
|
|
7832
7864
|
}
|
|
7833
7865
|
else if (parser.getToken() === 69271571) {
|
|
7834
7866
|
destructible |= 16;
|
|
7835
7867
|
state |= 2 | 1;
|
|
7836
7868
|
key = parseComputedPropertyName(parser, context, privateScope, inGroup);
|
|
7837
|
-
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.
|
|
7869
|
+
value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart);
|
|
7838
7870
|
}
|
|
7839
7871
|
else {
|
|
7840
7872
|
report(parser, 126);
|
|
@@ -7845,7 +7877,7 @@
|
|
|
7845
7877
|
}
|
|
7846
7878
|
destructible |= parser.destructible & 128 ? 128 : 0;
|
|
7847
7879
|
parser.destructible = destructible;
|
|
7848
|
-
properties.push(finishNode(
|
|
7880
|
+
properties.push(parser.finishNode({
|
|
7849
7881
|
type: 'Property',
|
|
7850
7882
|
key: key,
|
|
7851
7883
|
value,
|
|
@@ -7853,7 +7885,7 @@
|
|
|
7853
7885
|
computed: (state & 2) > 0,
|
|
7854
7886
|
method: (state & 1) > 0,
|
|
7855
7887
|
shorthand: (state & 4) > 0,
|
|
7856
|
-
}));
|
|
7888
|
+
}, tokenStart));
|
|
7857
7889
|
}
|
|
7858
7890
|
destructible |= parser.destructible;
|
|
7859
7891
|
if (parser.getToken() !== 18)
|
|
@@ -7863,12 +7895,12 @@
|
|
|
7863
7895
|
consume(parser, context, 1074790415);
|
|
7864
7896
|
if (prototypeCount > 1)
|
|
7865
7897
|
destructible |= 64;
|
|
7866
|
-
const node = finishNode(
|
|
7898
|
+
const node = parser.finishNode({
|
|
7867
7899
|
type: isPattern ? 'ObjectPattern' : 'ObjectExpression',
|
|
7868
7900
|
properties,
|
|
7869
|
-
});
|
|
7901
|
+
}, start);
|
|
7870
7902
|
if (!skipInitializer && parser.getToken() & 4194304) {
|
|
7871
|
-
return parseArrayOrObjectAssignmentPattern(parser, context, privateScope, destructible, inGroup, isPattern, start,
|
|
7903
|
+
return parseArrayOrObjectAssignmentPattern(parser, context, privateScope, destructible, inGroup, isPattern, start, node);
|
|
7872
7904
|
}
|
|
7873
7905
|
parser.destructible = destructible;
|
|
7874
7906
|
return node;
|
|
@@ -7895,7 +7927,7 @@
|
|
|
7895
7927
|
let isNonSimpleParameterList = 0;
|
|
7896
7928
|
while (parser.getToken() !== 18) {
|
|
7897
7929
|
let left = null;
|
|
7898
|
-
const {
|
|
7930
|
+
const { tokenStart } = parser;
|
|
7899
7931
|
if (parser.getToken() & 143360) {
|
|
7900
7932
|
if ((context & 256) === 0) {
|
|
7901
7933
|
if ((parser.getToken() & 36864) === 36864) {
|
|
@@ -7905,17 +7937,17 @@
|
|
|
7905
7937
|
parser.flags |= 512;
|
|
7906
7938
|
}
|
|
7907
7939
|
}
|
|
7908
|
-
left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0
|
|
7940
|
+
left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0);
|
|
7909
7941
|
}
|
|
7910
7942
|
else {
|
|
7911
7943
|
if (parser.getToken() === 2162700) {
|
|
7912
|
-
left = parseObjectLiteralOrPattern(parser, context, scope, privateScope, 1, inGroup, 1, type, 0
|
|
7944
|
+
left = parseObjectLiteralOrPattern(parser, context, scope, privateScope, 1, inGroup, 1, type, 0);
|
|
7913
7945
|
}
|
|
7914
7946
|
else if (parser.getToken() === 69271571) {
|
|
7915
|
-
left = parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, inGroup, 1, type, 0
|
|
7947
|
+
left = parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, inGroup, 1, type, 0);
|
|
7916
7948
|
}
|
|
7917
7949
|
else if (parser.getToken() === 14) {
|
|
7918
|
-
left = parseSpreadOrRestElement(parser, context, scope, privateScope, 16, type, 0, 0, inGroup, 1
|
|
7950
|
+
left = parseSpreadOrRestElement(parser, context, scope, privateScope, 16, type, 0, 0, inGroup, 1);
|
|
7919
7951
|
}
|
|
7920
7952
|
isNonSimpleParameterList = 1;
|
|
7921
7953
|
if (parser.destructible & (32 | 16))
|
|
@@ -7924,12 +7956,12 @@
|
|
|
7924
7956
|
if (parser.getToken() === 1077936155) {
|
|
7925
7957
|
nextToken(parser, context | 8192);
|
|
7926
7958
|
isNonSimpleParameterList = 1;
|
|
7927
|
-
const right = parseExpression(parser, context, privateScope, 1, 0, parser.
|
|
7928
|
-
left = finishNode(
|
|
7959
|
+
const right = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart);
|
|
7960
|
+
left = parser.finishNode({
|
|
7929
7961
|
type: 'AssignmentPattern',
|
|
7930
7962
|
left: left,
|
|
7931
7963
|
right,
|
|
7932
|
-
});
|
|
7964
|
+
}, tokenStart);
|
|
7933
7965
|
}
|
|
7934
7966
|
setterArgs++;
|
|
7935
7967
|
params.push(left);
|
|
@@ -7951,18 +7983,18 @@
|
|
|
7951
7983
|
}
|
|
7952
7984
|
function parseComputedPropertyName(parser, context, privateScope, inGroup) {
|
|
7953
7985
|
nextToken(parser, context | 8192);
|
|
7954
|
-
const key = parseExpression(parser, (context | 33554432) ^ 33554432, privateScope, 1, inGroup, parser.
|
|
7986
|
+
const key = parseExpression(parser, (context | 33554432) ^ 33554432, privateScope, 1, inGroup, parser.tokenStart);
|
|
7955
7987
|
consume(parser, context, 20);
|
|
7956
7988
|
return key;
|
|
7957
7989
|
}
|
|
7958
|
-
function parseParenthesizedExpression(parser, context, privateScope, canAssign, kind, origin, start
|
|
7990
|
+
function parseParenthesizedExpression(parser, context, privateScope, canAssign, kind, origin, start) {
|
|
7959
7991
|
parser.flags = (parser.flags | 128) ^ 128;
|
|
7960
|
-
const
|
|
7992
|
+
const parenthesesStart = parser.tokenStart;
|
|
7961
7993
|
nextToken(parser, context | 8192 | 67108864);
|
|
7962
7994
|
const scope = context & 16 ? addChildScope(createScope(), 1024) : void 0;
|
|
7963
7995
|
context = (context | 33554432) ^ 33554432;
|
|
7964
7996
|
if (consumeOpt(parser, context, 16)) {
|
|
7965
|
-
return parseParenthesizedArrow(parser, context, scope, privateScope, [], canAssign, 0, start
|
|
7997
|
+
return parseParenthesizedArrow(parser, context, scope, privateScope, [], canAssign, 0, start);
|
|
7966
7998
|
}
|
|
7967
7999
|
let destructible = 0;
|
|
7968
8000
|
parser.destructible &= -385;
|
|
@@ -7971,10 +8003,10 @@
|
|
|
7971
8003
|
let isSequence = 0;
|
|
7972
8004
|
let isNonSimpleParameterList = 0;
|
|
7973
8005
|
let hasStrictReserved = 0;
|
|
7974
|
-
const
|
|
8006
|
+
const tokenAfterParenthesesStart = parser.tokenStart;
|
|
7975
8007
|
parser.assignable = 1;
|
|
7976
8008
|
while (parser.getToken() !== 16) {
|
|
7977
|
-
const {
|
|
8009
|
+
const { tokenStart } = parser;
|
|
7978
8010
|
const token = parser.getToken();
|
|
7979
8011
|
if (token & 143360) {
|
|
7980
8012
|
if (scope)
|
|
@@ -7985,7 +8017,7 @@
|
|
|
7985
8017
|
else if ((token & 36864) === 36864) {
|
|
7986
8018
|
hasStrictReserved = 1;
|
|
7987
8019
|
}
|
|
7988
|
-
expr = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, 1, 1,
|
|
8020
|
+
expr = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, 1, 1, tokenStart);
|
|
7989
8021
|
if (parser.getToken() === 16 || parser.getToken() === 18) {
|
|
7990
8022
|
if (parser.assignable & 2) {
|
|
7991
8023
|
destructible |= 16;
|
|
@@ -7999,32 +8031,32 @@
|
|
|
7999
8031
|
else {
|
|
8000
8032
|
destructible |= 16;
|
|
8001
8033
|
}
|
|
8002
|
-
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 1, 0,
|
|
8034
|
+
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 1, 0, tokenStart);
|
|
8003
8035
|
if (parser.getToken() !== 16 && parser.getToken() !== 18) {
|
|
8004
|
-
expr = parseAssignmentExpression(parser, context, privateScope, 1, 0,
|
|
8036
|
+
expr = parseAssignmentExpression(parser, context, privateScope, 1, 0, tokenStart, expr);
|
|
8005
8037
|
}
|
|
8006
8038
|
}
|
|
8007
8039
|
}
|
|
8008
8040
|
else if ((token & 2097152) === 2097152) {
|
|
8009
8041
|
expr =
|
|
8010
8042
|
token === 2162700
|
|
8011
|
-
? parseObjectLiteralOrPattern(parser, context | 67108864, scope, privateScope, 0, 1, 0, kind, origin
|
|
8012
|
-
: parseArrayExpressionOrPattern(parser, context | 67108864, scope, privateScope, 0, 1, 0, kind, origin
|
|
8043
|
+
? parseObjectLiteralOrPattern(parser, context | 67108864, scope, privateScope, 0, 1, 0, kind, origin)
|
|
8044
|
+
: parseArrayExpressionOrPattern(parser, context | 67108864, scope, privateScope, 0, 1, 0, kind, origin);
|
|
8013
8045
|
destructible |= parser.destructible;
|
|
8014
8046
|
isNonSimpleParameterList = 1;
|
|
8015
8047
|
parser.assignable = 2;
|
|
8016
8048
|
if (parser.getToken() !== 16 && parser.getToken() !== 18) {
|
|
8017
8049
|
if (destructible & 8)
|
|
8018
8050
|
report(parser, 122);
|
|
8019
|
-
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0,
|
|
8051
|
+
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, tokenStart);
|
|
8020
8052
|
destructible |= 16;
|
|
8021
8053
|
if (parser.getToken() !== 16 && parser.getToken() !== 18) {
|
|
8022
|
-
expr = parseAssignmentExpression(parser, context, privateScope, 0, 0,
|
|
8054
|
+
expr = parseAssignmentExpression(parser, context, privateScope, 0, 0, tokenStart, expr);
|
|
8023
8055
|
}
|
|
8024
8056
|
}
|
|
8025
8057
|
}
|
|
8026
8058
|
else if (token === 14) {
|
|
8027
|
-
expr = parseSpreadOrRestElement(parser, context, scope, privateScope, 16, kind, origin, 0, 1, 0
|
|
8059
|
+
expr = parseSpreadOrRestElement(parser, context, scope, privateScope, 16, kind, origin, 0, 1, 0);
|
|
8028
8060
|
if (parser.destructible & 16)
|
|
8029
8061
|
report(parser, 74);
|
|
8030
8062
|
isNonSimpleParameterList = 1;
|
|
@@ -8036,7 +8068,7 @@
|
|
|
8036
8068
|
}
|
|
8037
8069
|
else {
|
|
8038
8070
|
destructible |= 16;
|
|
8039
|
-
expr = parseExpression(parser, context, privateScope, 1, 1,
|
|
8071
|
+
expr = parseExpression(parser, context, privateScope, 1, 1, tokenStart);
|
|
8040
8072
|
if (isSequence && (parser.getToken() === 16 || parser.getToken() === 18)) {
|
|
8041
8073
|
expressions.push(expr);
|
|
8042
8074
|
}
|
|
@@ -8048,21 +8080,21 @@
|
|
|
8048
8080
|
}
|
|
8049
8081
|
if (isSequence) {
|
|
8050
8082
|
while (consumeOpt(parser, context | 8192, 18)) {
|
|
8051
|
-
expressions.push(parseExpression(parser, context, privateScope, 1, 1, parser.
|
|
8083
|
+
expressions.push(parseExpression(parser, context, privateScope, 1, 1, parser.tokenStart));
|
|
8052
8084
|
}
|
|
8053
8085
|
parser.assignable = 2;
|
|
8054
|
-
expr = finishNode(
|
|
8086
|
+
expr = parser.finishNode({
|
|
8055
8087
|
type: 'SequenceExpression',
|
|
8056
8088
|
expressions,
|
|
8057
|
-
});
|
|
8089
|
+
}, tokenAfterParenthesesStart);
|
|
8058
8090
|
}
|
|
8059
8091
|
consume(parser, context, 16);
|
|
8060
8092
|
parser.destructible = destructible;
|
|
8061
8093
|
return context & 32
|
|
8062
|
-
? finishNode(
|
|
8094
|
+
? parser.finishNode({
|
|
8063
8095
|
type: 'ParenthesizedExpression',
|
|
8064
8096
|
expression: expr,
|
|
8065
|
-
})
|
|
8097
|
+
}, parenthesesStart)
|
|
8066
8098
|
: expr;
|
|
8067
8099
|
}
|
|
8068
8100
|
if (isSequence && (parser.getToken() === 16 || parser.getToken() === 18)) {
|
|
@@ -8081,10 +8113,10 @@
|
|
|
8081
8113
|
}
|
|
8082
8114
|
if (isSequence) {
|
|
8083
8115
|
parser.assignable = 2;
|
|
8084
|
-
expr = finishNode(
|
|
8116
|
+
expr = parser.finishNode({
|
|
8085
8117
|
type: 'SequenceExpression',
|
|
8086
8118
|
expressions,
|
|
8087
|
-
});
|
|
8119
|
+
}, tokenAfterParenthesesStart);
|
|
8088
8120
|
}
|
|
8089
8121
|
consume(parser, context, 16);
|
|
8090
8122
|
if (destructible & 16 && destructible & 8)
|
|
@@ -8107,7 +8139,7 @@
|
|
|
8107
8139
|
parser.flags |= 128;
|
|
8108
8140
|
if (hasStrictReserved)
|
|
8109
8141
|
parser.flags |= 256;
|
|
8110
|
-
return parseParenthesizedArrow(parser, context, scope, privateScope, isSequence ? expressions : [expr], canAssign, 0, start
|
|
8142
|
+
return parseParenthesizedArrow(parser, context, scope, privateScope, isSequence ? expressions : [expr], canAssign, 0, start);
|
|
8111
8143
|
}
|
|
8112
8144
|
if (destructible & 64) {
|
|
8113
8145
|
report(parser, 63);
|
|
@@ -8117,13 +8149,14 @@
|
|
|
8117
8149
|
}
|
|
8118
8150
|
parser.destructible = ((parser.destructible | 256) ^ 256) | destructible;
|
|
8119
8151
|
return context & 32
|
|
8120
|
-
? finishNode(
|
|
8152
|
+
? parser.finishNode({
|
|
8121
8153
|
type: 'ParenthesizedExpression',
|
|
8122
8154
|
expression: expr,
|
|
8123
|
-
})
|
|
8155
|
+
}, parenthesesStart)
|
|
8124
8156
|
: expr;
|
|
8125
8157
|
}
|
|
8126
|
-
function parseIdentifierOrArrow(parser, context, privateScope
|
|
8158
|
+
function parseIdentifierOrArrow(parser, context, privateScope) {
|
|
8159
|
+
const { tokenStart: start } = parser;
|
|
8127
8160
|
const { tokenValue } = parser;
|
|
8128
8161
|
let isNonSimpleParameterList = 0;
|
|
8129
8162
|
let hasStrictReserved = 0;
|
|
@@ -8143,27 +8176,27 @@
|
|
|
8143
8176
|
parser.flags |= 128;
|
|
8144
8177
|
if (hasStrictReserved)
|
|
8145
8178
|
parser.flags |= 256;
|
|
8146
|
-
return parseArrowFunctionExpression(parser, context, scope, privateScope, [expr], 0, start
|
|
8179
|
+
return parseArrowFunctionExpression(parser, context, scope, privateScope, [expr], 0, start);
|
|
8147
8180
|
}
|
|
8148
8181
|
return expr;
|
|
8149
8182
|
}
|
|
8150
|
-
function parseArrowFromIdentifier(parser, context, privateScope, value, expr, inNew, canAssign, isAsync, start
|
|
8183
|
+
function parseArrowFromIdentifier(parser, context, privateScope, value, expr, inNew, canAssign, isAsync, start) {
|
|
8151
8184
|
if (!canAssign)
|
|
8152
8185
|
report(parser, 57);
|
|
8153
8186
|
if (inNew)
|
|
8154
8187
|
report(parser, 51);
|
|
8155
8188
|
parser.flags &= -129;
|
|
8156
8189
|
const scope = context & 16 ? createArrowHeadParsingScope(parser, context, value) : void 0;
|
|
8157
|
-
return parseArrowFunctionExpression(parser, context, scope, privateScope, [expr], isAsync, start
|
|
8190
|
+
return parseArrowFunctionExpression(parser, context, scope, privateScope, [expr], isAsync, start);
|
|
8158
8191
|
}
|
|
8159
|
-
function parseParenthesizedArrow(parser, context, scope, privateScope, params, canAssign, isAsync, start
|
|
8192
|
+
function parseParenthesizedArrow(parser, context, scope, privateScope, params, canAssign, isAsync, start) {
|
|
8160
8193
|
if (!canAssign)
|
|
8161
8194
|
report(parser, 57);
|
|
8162
8195
|
for (let i = 0; i < params.length; ++i)
|
|
8163
8196
|
reinterpretToPattern(parser, params[i]);
|
|
8164
|
-
return parseArrowFunctionExpression(parser, context, scope, privateScope, params, isAsync, start
|
|
8197
|
+
return parseArrowFunctionExpression(parser, context, scope, privateScope, params, isAsync, start);
|
|
8165
8198
|
}
|
|
8166
|
-
function parseArrowFunctionExpression(parser, context, scope, privateScope, params, isAsync, start
|
|
8199
|
+
function parseArrowFunctionExpression(parser, context, scope, privateScope, params, isAsync, start) {
|
|
8167
8200
|
if (parser.flags & 1)
|
|
8168
8201
|
report(parser, 48);
|
|
8169
8202
|
consume(parser, context | 8192, 10);
|
|
@@ -8177,7 +8210,7 @@
|
|
|
8177
8210
|
parser.flags =
|
|
8178
8211
|
(parser.flags | 512 | 256 | 64 | 4096) ^
|
|
8179
8212
|
(512 | 256 | 64 | 4096);
|
|
8180
|
-
body = parseExpression(parser, context, privateScope, 1, 0, parser.
|
|
8213
|
+
body = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart);
|
|
8181
8214
|
}
|
|
8182
8215
|
else {
|
|
8183
8216
|
if (scope)
|
|
@@ -8207,14 +8240,14 @@
|
|
|
8207
8240
|
report(parser, 125);
|
|
8208
8241
|
}
|
|
8209
8242
|
parser.assignable = 2;
|
|
8210
|
-
return finishNode(
|
|
8243
|
+
return parser.finishNode({
|
|
8211
8244
|
type: 'ArrowFunctionExpression',
|
|
8212
8245
|
params,
|
|
8213
8246
|
body,
|
|
8214
8247
|
async: isAsync === 1,
|
|
8215
8248
|
expression,
|
|
8216
8249
|
generator: false,
|
|
8217
|
-
});
|
|
8250
|
+
}, start);
|
|
8218
8251
|
}
|
|
8219
8252
|
function parseFormalParametersOrFormalList(parser, context, scope, privateScope, inGroup, kind) {
|
|
8220
8253
|
consume(parser, context, 67174411);
|
|
@@ -8226,7 +8259,7 @@
|
|
|
8226
8259
|
let isNonSimpleParameterList = 0;
|
|
8227
8260
|
while (parser.getToken() !== 18) {
|
|
8228
8261
|
let left;
|
|
8229
|
-
const {
|
|
8262
|
+
const { tokenStart } = parser;
|
|
8230
8263
|
const token = parser.getToken();
|
|
8231
8264
|
if (token & 143360) {
|
|
8232
8265
|
if ((context & 256) === 0) {
|
|
@@ -8237,17 +8270,17 @@
|
|
|
8237
8270
|
parser.flags |= 512;
|
|
8238
8271
|
}
|
|
8239
8272
|
}
|
|
8240
|
-
left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0
|
|
8273
|
+
left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0);
|
|
8241
8274
|
}
|
|
8242
8275
|
else {
|
|
8243
8276
|
if (token === 2162700) {
|
|
8244
|
-
left = parseObjectLiteralOrPattern(parser, context, scope, privateScope, 1, inGroup, 1, kind, 0
|
|
8277
|
+
left = parseObjectLiteralOrPattern(parser, context, scope, privateScope, 1, inGroup, 1, kind, 0);
|
|
8245
8278
|
}
|
|
8246
8279
|
else if (token === 69271571) {
|
|
8247
|
-
left = parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, inGroup, 1, kind, 0
|
|
8280
|
+
left = parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, inGroup, 1, kind, 0);
|
|
8248
8281
|
}
|
|
8249
8282
|
else if (token === 14) {
|
|
8250
|
-
left = parseSpreadOrRestElement(parser, context, scope, privateScope, 16, kind, 0, 0, inGroup, 1
|
|
8283
|
+
left = parseSpreadOrRestElement(parser, context, scope, privateScope, 16, kind, 0, 0, inGroup, 1);
|
|
8251
8284
|
}
|
|
8252
8285
|
else {
|
|
8253
8286
|
report(parser, 30, KeywordDescTable[token & 255]);
|
|
@@ -8260,12 +8293,12 @@
|
|
|
8260
8293
|
if (parser.getToken() === 1077936155) {
|
|
8261
8294
|
nextToken(parser, context | 8192);
|
|
8262
8295
|
isNonSimpleParameterList = 1;
|
|
8263
|
-
const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.
|
|
8264
|
-
left = finishNode(
|
|
8296
|
+
const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart);
|
|
8297
|
+
left = parser.finishNode({
|
|
8265
8298
|
type: 'AssignmentPattern',
|
|
8266
8299
|
left,
|
|
8267
8300
|
right,
|
|
8268
|
-
});
|
|
8301
|
+
}, tokenStart);
|
|
8269
8302
|
}
|
|
8270
8303
|
params.push(left);
|
|
8271
8304
|
if (!consumeOpt(parser, context, 18))
|
|
@@ -8282,53 +8315,56 @@
|
|
|
8282
8315
|
consume(parser, context, 16);
|
|
8283
8316
|
return params;
|
|
8284
8317
|
}
|
|
8285
|
-
function parseMemberExpressionNoCall(parser, context, privateScope, expr, inGroup, start
|
|
8318
|
+
function parseMemberExpressionNoCall(parser, context, privateScope, expr, inGroup, start) {
|
|
8286
8319
|
const token = parser.getToken();
|
|
8287
8320
|
if (token & 67108864) {
|
|
8288
8321
|
if (token === 67108877) {
|
|
8289
8322
|
nextToken(parser, context | 67108864);
|
|
8290
8323
|
parser.assignable = 1;
|
|
8291
8324
|
const property = parsePropertyOrPrivatePropertyName(parser, context, privateScope);
|
|
8292
|
-
return parseMemberExpressionNoCall(parser, context, privateScope, finishNode(
|
|
8325
|
+
return parseMemberExpressionNoCall(parser, context, privateScope, parser.finishNode({
|
|
8293
8326
|
type: 'MemberExpression',
|
|
8294
8327
|
object: expr,
|
|
8295
8328
|
computed: false,
|
|
8296
8329
|
property,
|
|
8297
|
-
|
|
8330
|
+
optional: false,
|
|
8331
|
+
}, start), 0, start);
|
|
8298
8332
|
}
|
|
8299
8333
|
else if (token === 69271571) {
|
|
8300
8334
|
nextToken(parser, context | 8192);
|
|
8301
|
-
const {
|
|
8302
|
-
const property = parseExpressions(parser, context, privateScope, inGroup, 1,
|
|
8335
|
+
const { tokenStart } = parser;
|
|
8336
|
+
const property = parseExpressions(parser, context, privateScope, inGroup, 1, tokenStart);
|
|
8303
8337
|
consume(parser, context, 20);
|
|
8304
8338
|
parser.assignable = 1;
|
|
8305
|
-
return parseMemberExpressionNoCall(parser, context, privateScope, finishNode(
|
|
8339
|
+
return parseMemberExpressionNoCall(parser, context, privateScope, parser.finishNode({
|
|
8306
8340
|
type: 'MemberExpression',
|
|
8307
8341
|
object: expr,
|
|
8308
8342
|
computed: true,
|
|
8309
8343
|
property,
|
|
8310
|
-
|
|
8344
|
+
optional: false,
|
|
8345
|
+
}, start), 0, start);
|
|
8311
8346
|
}
|
|
8312
8347
|
else if (token === 67174408 || token === 67174409) {
|
|
8313
8348
|
parser.assignable = 2;
|
|
8314
|
-
return parseMemberExpressionNoCall(parser, context, privateScope, finishNode(
|
|
8349
|
+
return parseMemberExpressionNoCall(parser, context, privateScope, parser.finishNode({
|
|
8315
8350
|
type: 'TaggedTemplateExpression',
|
|
8316
8351
|
tag: expr,
|
|
8317
8352
|
quasi: parser.getToken() === 67174408
|
|
8318
8353
|
? parseTemplate(parser, context | 16384, privateScope)
|
|
8319
|
-
: parseTemplateLiteral(parser, context | 16384, parser.
|
|
8320
|
-
}), 0, start
|
|
8354
|
+
: parseTemplateLiteral(parser, context | 16384, parser.tokenStart),
|
|
8355
|
+
}, start), 0, start);
|
|
8321
8356
|
}
|
|
8322
8357
|
}
|
|
8323
8358
|
return expr;
|
|
8324
8359
|
}
|
|
8325
|
-
function parseNewExpression(parser, context, privateScope, inGroup
|
|
8360
|
+
function parseNewExpression(parser, context, privateScope, inGroup) {
|
|
8361
|
+
const { tokenStart: start } = parser;
|
|
8326
8362
|
const id = parseIdentifier(parser, context | 8192);
|
|
8327
|
-
const {
|
|
8363
|
+
const { tokenStart } = parser;
|
|
8328
8364
|
if (consumeOpt(parser, context, 67108877)) {
|
|
8329
8365
|
if (context & 16777216 && parser.getToken() === 209029) {
|
|
8330
8366
|
parser.assignable = 2;
|
|
8331
|
-
return parseMetaProperty(parser, context, id, start
|
|
8367
|
+
return parseMetaProperty(parser, context, id, start);
|
|
8332
8368
|
}
|
|
8333
8369
|
report(parser, 94);
|
|
8334
8370
|
}
|
|
@@ -8336,27 +8372,27 @@
|
|
|
8336
8372
|
if ((parser.getToken() & 16842752) === 16842752) {
|
|
8337
8373
|
report(parser, 65, KeywordDescTable[parser.getToken() & 255]);
|
|
8338
8374
|
}
|
|
8339
|
-
const expr = parsePrimaryExpression(parser, context, privateScope, 2, 1, 0, inGroup, 1,
|
|
8375
|
+
const expr = parsePrimaryExpression(parser, context, privateScope, 2, 1, 0, inGroup, 1, tokenStart);
|
|
8340
8376
|
context = (context | 33554432) ^ 33554432;
|
|
8341
8377
|
if (parser.getToken() === 67108990)
|
|
8342
8378
|
report(parser, 168);
|
|
8343
|
-
const callee = parseMemberExpressionNoCall(parser, context, privateScope, expr, inGroup,
|
|
8379
|
+
const callee = parseMemberExpressionNoCall(parser, context, privateScope, expr, inGroup, tokenStart);
|
|
8344
8380
|
parser.assignable = 2;
|
|
8345
|
-
return finishNode(
|
|
8381
|
+
return parser.finishNode({
|
|
8346
8382
|
type: 'NewExpression',
|
|
8347
8383
|
callee,
|
|
8348
8384
|
arguments: parser.getToken() === 67174411 ? parseArguments(parser, context, privateScope, inGroup) : [],
|
|
8349
|
-
});
|
|
8385
|
+
}, start);
|
|
8350
8386
|
}
|
|
8351
|
-
function parseMetaProperty(parser, context, meta, start
|
|
8387
|
+
function parseMetaProperty(parser, context, meta, start) {
|
|
8352
8388
|
const property = parseIdentifier(parser, context);
|
|
8353
|
-
return finishNode(
|
|
8389
|
+
return parser.finishNode({
|
|
8354
8390
|
type: 'MetaProperty',
|
|
8355
8391
|
meta,
|
|
8356
8392
|
property,
|
|
8357
|
-
});
|
|
8393
|
+
}, start);
|
|
8358
8394
|
}
|
|
8359
|
-
function parseAsyncArrowAfterIdent(parser, context, privateScope, canAssign, start
|
|
8395
|
+
function parseAsyncArrowAfterIdent(parser, context, privateScope, canAssign, start) {
|
|
8360
8396
|
if (parser.getToken() === 209006)
|
|
8361
8397
|
report(parser, 31);
|
|
8362
8398
|
if (context & (256 | 262144) && parser.getToken() === 241771) {
|
|
@@ -8366,9 +8402,9 @@
|
|
|
8366
8402
|
if ((parser.getToken() & 36864) === 36864) {
|
|
8367
8403
|
parser.flags |= 256;
|
|
8368
8404
|
}
|
|
8369
|
-
return parseArrowFromIdentifier(parser, (context & -268435457) | 524288, privateScope, parser.tokenValue, parseIdentifier(parser, context), 0, canAssign, 1, start
|
|
8405
|
+
return parseArrowFromIdentifier(parser, (context & -268435457) | 524288, privateScope, parser.tokenValue, parseIdentifier(parser, context), 0, canAssign, 1, start);
|
|
8370
8406
|
}
|
|
8371
|
-
function parseAsyncArrowOrCallExpression(parser, context, privateScope, callee, canAssign, kind, origin, flags, start
|
|
8407
|
+
function parseAsyncArrowOrCallExpression(parser, context, privateScope, callee, canAssign, kind, origin, flags, start) {
|
|
8372
8408
|
nextToken(parser, context | 8192);
|
|
8373
8409
|
const scope = context & 16 ? addChildScope(createScope(), 1024) : void 0;
|
|
8374
8410
|
context = (context | 33554432) ^ 33554432;
|
|
@@ -8376,13 +8412,14 @@
|
|
|
8376
8412
|
if (parser.getToken() === 10) {
|
|
8377
8413
|
if (flags & 1)
|
|
8378
8414
|
report(parser, 48);
|
|
8379
|
-
return parseParenthesizedArrow(parser, context, scope, privateScope, [], canAssign, 1, start
|
|
8415
|
+
return parseParenthesizedArrow(parser, context, scope, privateScope, [], canAssign, 1, start);
|
|
8380
8416
|
}
|
|
8381
|
-
return finishNode(
|
|
8417
|
+
return parser.finishNode({
|
|
8382
8418
|
type: 'CallExpression',
|
|
8383
8419
|
callee,
|
|
8384
8420
|
arguments: [],
|
|
8385
|
-
|
|
8421
|
+
optional: false,
|
|
8422
|
+
}, start);
|
|
8386
8423
|
}
|
|
8387
8424
|
let destructible = 0;
|
|
8388
8425
|
let expr = null;
|
|
@@ -8392,7 +8429,7 @@
|
|
|
8392
8429
|
(256 | 128);
|
|
8393
8430
|
const params = [];
|
|
8394
8431
|
while (parser.getToken() !== 16) {
|
|
8395
|
-
const {
|
|
8432
|
+
const { tokenStart } = parser;
|
|
8396
8433
|
const token = parser.getToken();
|
|
8397
8434
|
if (token & 143360) {
|
|
8398
8435
|
if (scope)
|
|
@@ -8403,7 +8440,7 @@
|
|
|
8403
8440
|
else if ((token & 36864) === 36864) {
|
|
8404
8441
|
parser.flags |= 256;
|
|
8405
8442
|
}
|
|
8406
|
-
expr = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, 1, 1,
|
|
8443
|
+
expr = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, 1, 1, tokenStart);
|
|
8407
8444
|
if (parser.getToken() === 16 || parser.getToken() === 18) {
|
|
8408
8445
|
if (parser.assignable & 2) {
|
|
8409
8446
|
destructible |= 16;
|
|
@@ -8417,54 +8454,55 @@
|
|
|
8417
8454
|
else {
|
|
8418
8455
|
destructible |= 16;
|
|
8419
8456
|
}
|
|
8420
|
-
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 1, 0,
|
|
8457
|
+
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 1, 0, tokenStart);
|
|
8421
8458
|
if (parser.getToken() !== 16 && parser.getToken() !== 18) {
|
|
8422
|
-
expr = parseAssignmentExpression(parser, context, privateScope, 1, 0,
|
|
8459
|
+
expr = parseAssignmentExpression(parser, context, privateScope, 1, 0, tokenStart, expr);
|
|
8423
8460
|
}
|
|
8424
8461
|
}
|
|
8425
8462
|
}
|
|
8426
8463
|
else if (token & 2097152) {
|
|
8427
8464
|
expr =
|
|
8428
8465
|
token === 2162700
|
|
8429
|
-
? parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, 1, 0, kind, origin
|
|
8430
|
-
: parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, 1, 0, kind, origin
|
|
8466
|
+
? parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, 1, 0, kind, origin)
|
|
8467
|
+
: parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, 1, 0, kind, origin);
|
|
8431
8468
|
destructible |= parser.destructible;
|
|
8432
8469
|
isNonSimpleParameterList = 1;
|
|
8433
8470
|
if (parser.getToken() !== 16 && parser.getToken() !== 18) {
|
|
8434
8471
|
if (destructible & 8)
|
|
8435
8472
|
report(parser, 122);
|
|
8436
|
-
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0,
|
|
8473
|
+
expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, tokenStart);
|
|
8437
8474
|
destructible |= 16;
|
|
8438
8475
|
if ((parser.getToken() & 8388608) === 8388608) {
|
|
8439
|
-
expr = parseBinaryExpression(parser, context, privateScope, 1, start,
|
|
8476
|
+
expr = parseBinaryExpression(parser, context, privateScope, 1, start, 4, token, expr);
|
|
8440
8477
|
}
|
|
8441
8478
|
if (consumeOpt(parser, context | 8192, 22)) {
|
|
8442
|
-
expr = parseConditionalExpression(parser, context, privateScope, expr, start
|
|
8479
|
+
expr = parseConditionalExpression(parser, context, privateScope, expr, start);
|
|
8443
8480
|
}
|
|
8444
8481
|
}
|
|
8445
8482
|
}
|
|
8446
8483
|
else if (token === 14) {
|
|
8447
|
-
expr = parseSpreadOrRestElement(parser, context, scope, privateScope, 16, kind, origin, 1, 1, 0
|
|
8484
|
+
expr = parseSpreadOrRestElement(parser, context, scope, privateScope, 16, kind, origin, 1, 1, 0);
|
|
8448
8485
|
destructible |=
|
|
8449
8486
|
(parser.getToken() === 16 ? 0 : 16) | parser.destructible;
|
|
8450
8487
|
isNonSimpleParameterList = 1;
|
|
8451
8488
|
}
|
|
8452
8489
|
else {
|
|
8453
|
-
expr = parseExpression(parser, context, privateScope, 1, 0,
|
|
8490
|
+
expr = parseExpression(parser, context, privateScope, 1, 0, tokenStart);
|
|
8454
8491
|
destructible = parser.assignable;
|
|
8455
8492
|
params.push(expr);
|
|
8456
8493
|
while (consumeOpt(parser, context | 8192, 18)) {
|
|
8457
|
-
params.push(parseExpression(parser, context, privateScope, 1, 0,
|
|
8494
|
+
params.push(parseExpression(parser, context, privateScope, 1, 0, tokenStart));
|
|
8458
8495
|
}
|
|
8459
8496
|
destructible |= parser.assignable;
|
|
8460
8497
|
consume(parser, context, 16);
|
|
8461
8498
|
parser.destructible = destructible | 16;
|
|
8462
8499
|
parser.assignable = 2;
|
|
8463
|
-
return finishNode(
|
|
8500
|
+
return parser.finishNode({
|
|
8464
8501
|
type: 'CallExpression',
|
|
8465
8502
|
callee,
|
|
8466
8503
|
arguments: params,
|
|
8467
|
-
|
|
8504
|
+
optional: false,
|
|
8505
|
+
}, start);
|
|
8468
8506
|
}
|
|
8469
8507
|
params.push(expr);
|
|
8470
8508
|
if (!consumeOpt(parser, context | 8192, 18))
|
|
@@ -8488,7 +8526,7 @@
|
|
|
8488
8526
|
report(parser, 32);
|
|
8489
8527
|
if (isNonSimpleParameterList)
|
|
8490
8528
|
parser.flags |= 128;
|
|
8491
|
-
return parseParenthesizedArrow(parser, context | 524288, scope, privateScope, params, canAssign, 1, start
|
|
8529
|
+
return parseParenthesizedArrow(parser, context | 524288, scope, privateScope, params, canAssign, 1, start);
|
|
8492
8530
|
}
|
|
8493
8531
|
if (destructible & 64) {
|
|
8494
8532
|
report(parser, 63);
|
|
@@ -8497,40 +8535,41 @@
|
|
|
8497
8535
|
report(parser, 62);
|
|
8498
8536
|
}
|
|
8499
8537
|
parser.assignable = 2;
|
|
8500
|
-
return finishNode(
|
|
8538
|
+
return parser.finishNode({
|
|
8501
8539
|
type: 'CallExpression',
|
|
8502
8540
|
callee,
|
|
8503
8541
|
arguments: params,
|
|
8504
|
-
|
|
8542
|
+
optional: false,
|
|
8543
|
+
}, start);
|
|
8505
8544
|
}
|
|
8506
|
-
function parseRegExpLiteral(parser, context
|
|
8507
|
-
const { tokenRaw, tokenRegExp, tokenValue } = parser;
|
|
8545
|
+
function parseRegExpLiteral(parser, context) {
|
|
8546
|
+
const { tokenRaw, tokenRegExp, tokenValue, tokenStart } = parser;
|
|
8508
8547
|
nextToken(parser, context);
|
|
8509
8548
|
parser.assignable = 2;
|
|
8510
|
-
|
|
8511
|
-
|
|
8512
|
-
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
|
|
8516
|
-
|
|
8517
|
-
|
|
8518
|
-
|
|
8519
|
-
value: tokenValue,
|
|
8520
|
-
regex: tokenRegExp,
|
|
8521
|
-
});
|
|
8549
|
+
const node = {
|
|
8550
|
+
type: 'Literal',
|
|
8551
|
+
value: tokenValue,
|
|
8552
|
+
regex: tokenRegExp,
|
|
8553
|
+
};
|
|
8554
|
+
if (context & 128) {
|
|
8555
|
+
node.raw = tokenRaw;
|
|
8556
|
+
}
|
|
8557
|
+
return parser.finishNode(node, tokenStart);
|
|
8522
8558
|
}
|
|
8523
|
-
function parseClassDeclaration(parser, context, scope, privateScope, flags
|
|
8524
|
-
let
|
|
8525
|
-
|
|
8526
|
-
|
|
8527
|
-
|
|
8528
|
-
|
|
8559
|
+
function parseClassDeclaration(parser, context, scope, privateScope, flags) {
|
|
8560
|
+
let start;
|
|
8561
|
+
let decorators;
|
|
8562
|
+
if (parser.leadingDecorators.decorators.length) {
|
|
8563
|
+
if (parser.getToken() === 132) {
|
|
8564
|
+
report(parser, 30, '@');
|
|
8565
|
+
}
|
|
8566
|
+
start = parser.leadingDecorators.start;
|
|
8567
|
+
decorators = [...parser.leadingDecorators.decorators];
|
|
8568
|
+
parser.leadingDecorators.decorators.length = 0;
|
|
8529
8569
|
}
|
|
8530
|
-
|
|
8531
|
-
parser.
|
|
8532
|
-
decorators = parser
|
|
8533
|
-
parser.leadingDecorators = [];
|
|
8570
|
+
else {
|
|
8571
|
+
start = parser.tokenStart;
|
|
8572
|
+
decorators = parseDecorators(parser, context, privateScope);
|
|
8534
8573
|
}
|
|
8535
8574
|
context = (context | 4194304 | 256) ^ 4194304;
|
|
8536
8575
|
nextToken(parser, context);
|
|
@@ -8560,30 +8599,25 @@
|
|
|
8560
8599
|
}
|
|
8561
8600
|
let inheritedContext = context;
|
|
8562
8601
|
if (consumeOpt(parser, context | 8192, 20565)) {
|
|
8563
|
-
superClass = parseLeftHandSideExpression(parser, context, privateScope, 0, 0, 0
|
|
8602
|
+
superClass = parseLeftHandSideExpression(parser, context, privateScope, 0, 0, 0);
|
|
8564
8603
|
inheritedContext |= 131072;
|
|
8565
8604
|
}
|
|
8566
8605
|
else {
|
|
8567
8606
|
inheritedContext = (inheritedContext | 131072) ^ 131072;
|
|
8568
8607
|
}
|
|
8569
8608
|
const body = parseClassBody(parser, inheritedContext, context, scope, privateScope, 2, 8, 0);
|
|
8570
|
-
return finishNode(
|
|
8609
|
+
return parser.finishNode({
|
|
8571
8610
|
type: 'ClassDeclaration',
|
|
8572
8611
|
id,
|
|
8573
8612
|
superClass,
|
|
8574
8613
|
body,
|
|
8575
8614
|
...(context & 1 ? { decorators } : null),
|
|
8576
|
-
});
|
|
8615
|
+
}, start);
|
|
8577
8616
|
}
|
|
8578
|
-
function parseClassExpression(parser, context, privateScope, inGroup, start
|
|
8617
|
+
function parseClassExpression(parser, context, privateScope, inGroup, start) {
|
|
8579
8618
|
let id = null;
|
|
8580
8619
|
let superClass = null;
|
|
8581
8620
|
const decorators = parseDecorators(parser, context, privateScope);
|
|
8582
|
-
if (decorators.length) {
|
|
8583
|
-
start = parser.tokenIndex;
|
|
8584
|
-
line = parser.tokenLine;
|
|
8585
|
-
column = parser.tokenColumn;
|
|
8586
|
-
}
|
|
8587
8621
|
context = (context | 256 | 4194304) ^ 4194304;
|
|
8588
8622
|
nextToken(parser, context);
|
|
8589
8623
|
if (parser.getToken() & 4096 && parser.getToken() !== 20565) {
|
|
@@ -8596,7 +8630,7 @@
|
|
|
8596
8630
|
}
|
|
8597
8631
|
let inheritedContext = context;
|
|
8598
8632
|
if (consumeOpt(parser, context | 8192, 20565)) {
|
|
8599
|
-
superClass = parseLeftHandSideExpression(parser, context, privateScope, 0, inGroup, 0
|
|
8633
|
+
superClass = parseLeftHandSideExpression(parser, context, privateScope, 0, inGroup, 0);
|
|
8600
8634
|
inheritedContext |= 131072;
|
|
8601
8635
|
}
|
|
8602
8636
|
else {
|
|
@@ -8604,34 +8638,34 @@
|
|
|
8604
8638
|
}
|
|
8605
8639
|
const body = parseClassBody(parser, inheritedContext, context, void 0, privateScope, 2, 0, inGroup);
|
|
8606
8640
|
parser.assignable = 2;
|
|
8607
|
-
return finishNode(
|
|
8641
|
+
return parser.finishNode({
|
|
8608
8642
|
type: 'ClassExpression',
|
|
8609
8643
|
id,
|
|
8610
8644
|
superClass,
|
|
8611
8645
|
body,
|
|
8612
8646
|
...(context & 1 ? { decorators } : null),
|
|
8613
|
-
});
|
|
8647
|
+
}, start);
|
|
8614
8648
|
}
|
|
8615
8649
|
function parseDecorators(parser, context, privateScope) {
|
|
8616
8650
|
const list = [];
|
|
8617
8651
|
if (context & 1) {
|
|
8618
8652
|
while (parser.getToken() === 132) {
|
|
8619
|
-
list.push(parseDecoratorList(parser, context, privateScope, parser.
|
|
8653
|
+
list.push(parseDecoratorList(parser, context, privateScope, parser.tokenStart));
|
|
8620
8654
|
}
|
|
8621
8655
|
}
|
|
8622
8656
|
return list;
|
|
8623
8657
|
}
|
|
8624
|
-
function parseDecoratorList(parser, context, privateScope, start
|
|
8658
|
+
function parseDecoratorList(parser, context, privateScope, start) {
|
|
8625
8659
|
nextToken(parser, context | 8192);
|
|
8626
|
-
let expression = parsePrimaryExpression(parser, context, privateScope, 2, 0, 1, 0, 1, start
|
|
8627
|
-
expression = parseMemberOrUpdateExpression(parser, context, privateScope, expression, 0, 0,
|
|
8628
|
-
return finishNode(
|
|
8660
|
+
let expression = parsePrimaryExpression(parser, context, privateScope, 2, 0, 1, 0, 1, start);
|
|
8661
|
+
expression = parseMemberOrUpdateExpression(parser, context, privateScope, expression, 0, 0, parser.tokenStart);
|
|
8662
|
+
return parser.finishNode({
|
|
8629
8663
|
type: 'Decorator',
|
|
8630
8664
|
expression,
|
|
8631
|
-
});
|
|
8665
|
+
}, start);
|
|
8632
8666
|
}
|
|
8633
8667
|
function parseClassBody(parser, context, inheritedContext, scope, parentScope, kind, origin, inGroup) {
|
|
8634
|
-
const {
|
|
8668
|
+
const { tokenStart } = parser;
|
|
8635
8669
|
const privateScope = context & 16 ? addChildPrivateScope(parentScope) : undefined;
|
|
8636
8670
|
consume(parser, context | 8192, 2162700);
|
|
8637
8671
|
const modifierFlags = 33554432 | 268435456;
|
|
@@ -8640,6 +8674,7 @@
|
|
|
8640
8674
|
parser.flags = (parser.flags | 32) ^ 32;
|
|
8641
8675
|
const body = [];
|
|
8642
8676
|
let decorators;
|
|
8677
|
+
const decoratorStart = parser.tokenStart;
|
|
8643
8678
|
while (parser.getToken() !== 1074790415) {
|
|
8644
8679
|
let length = 0;
|
|
8645
8680
|
decorators = parseDecorators(parser, context, privateScope);
|
|
@@ -8654,21 +8689,21 @@
|
|
|
8654
8689
|
report(parser, 120);
|
|
8655
8690
|
continue;
|
|
8656
8691
|
}
|
|
8657
|
-
body.push(parseClassElementList(parser, context, scope, privateScope, inheritedContext, kind, decorators, 0, inGroup,
|
|
8692
|
+
body.push(parseClassElementList(parser, context, scope, privateScope, inheritedContext, kind, decorators, 0, inGroup, length > 0 ? decoratorStart : parser.tokenStart));
|
|
8658
8693
|
}
|
|
8659
8694
|
consume(parser, origin & 8 ? context | 8192 : context, 1074790415);
|
|
8660
8695
|
if (privateScope)
|
|
8661
8696
|
validatePrivateIdentifierRefs(privateScope);
|
|
8662
8697
|
parser.flags = (parser.flags & -33) | hasConstr;
|
|
8663
|
-
return finishNode(
|
|
8698
|
+
return parser.finishNode({
|
|
8664
8699
|
type: 'ClassBody',
|
|
8665
8700
|
body,
|
|
8666
|
-
});
|
|
8701
|
+
}, tokenStart);
|
|
8667
8702
|
}
|
|
8668
|
-
function parseClassElementList(parser, context, scope, privateScope, inheritedContext, type, decorators, isStatic, inGroup, start
|
|
8703
|
+
function parseClassElementList(parser, context, scope, privateScope, inheritedContext, type, decorators, isStatic, inGroup, start) {
|
|
8669
8704
|
let kind = isStatic ? 32 : 0;
|
|
8670
8705
|
let key = null;
|
|
8671
|
-
const {
|
|
8706
|
+
const { tokenStart } = parser;
|
|
8672
8707
|
const token = parser.getToken();
|
|
8673
8708
|
if (token & (143360 | 36864) || token === -2147483528) {
|
|
8674
8709
|
key = parseIdentifier(parser, context);
|
|
@@ -8678,13 +8713,13 @@
|
|
|
8678
8713
|
parser.getToken() !== 67174411 &&
|
|
8679
8714
|
(parser.getToken() & 1048576) !== 1048576 &&
|
|
8680
8715
|
parser.getToken() !== 1077936155) {
|
|
8681
|
-
return parseClassElementList(parser, context, scope, privateScope, inheritedContext, type, decorators, 1, inGroup, start
|
|
8716
|
+
return parseClassElementList(parser, context, scope, privateScope, inheritedContext, type, decorators, 1, inGroup, start);
|
|
8682
8717
|
}
|
|
8683
8718
|
break;
|
|
8684
8719
|
case 209005:
|
|
8685
8720
|
if (parser.getToken() !== 67174411 && (parser.flags & 1) === 0) {
|
|
8686
8721
|
if ((parser.getToken() & 1073741824) === 1073741824) {
|
|
8687
|
-
return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators,
|
|
8722
|
+
return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, tokenStart);
|
|
8688
8723
|
}
|
|
8689
8724
|
kind |= 16 | (optionalBit(parser, context, 8391476) ? 8 : 0);
|
|
8690
8725
|
}
|
|
@@ -8692,7 +8727,7 @@
|
|
|
8692
8727
|
case 209008:
|
|
8693
8728
|
if (parser.getToken() !== 67174411) {
|
|
8694
8729
|
if ((parser.getToken() & 1073741824) === 1073741824) {
|
|
8695
|
-
return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators,
|
|
8730
|
+
return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, tokenStart);
|
|
8696
8731
|
}
|
|
8697
8732
|
kind |= 256;
|
|
8698
8733
|
}
|
|
@@ -8700,7 +8735,7 @@
|
|
|
8700
8735
|
case 209009:
|
|
8701
8736
|
if (parser.getToken() !== 67174411) {
|
|
8702
8737
|
if ((parser.getToken() & 1073741824) === 1073741824) {
|
|
8703
|
-
return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators,
|
|
8738
|
+
return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, tokenStart);
|
|
8704
8739
|
}
|
|
8705
8740
|
kind |= 512;
|
|
8706
8741
|
}
|
|
@@ -8708,7 +8743,7 @@
|
|
|
8708
8743
|
case 12402:
|
|
8709
8744
|
if (parser.getToken() !== 67174411 && (parser.flags & 1) === 0) {
|
|
8710
8745
|
if ((parser.getToken() & 1073741824) === 1073741824) {
|
|
8711
|
-
return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators,
|
|
8746
|
+
return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, tokenStart);
|
|
8712
8747
|
}
|
|
8713
8748
|
if (context & 1)
|
|
8714
8749
|
kind |= 1024;
|
|
@@ -8729,13 +8764,13 @@
|
|
|
8729
8764
|
}
|
|
8730
8765
|
else if (parser.getToken() === 130) {
|
|
8731
8766
|
kind |= 8192;
|
|
8732
|
-
key = parsePrivateIdentifier(parser, context | 4096, privateScope, 768
|
|
8767
|
+
key = parsePrivateIdentifier(parser, context | 4096, privateScope, 768);
|
|
8733
8768
|
}
|
|
8734
8769
|
else if ((parser.getToken() & 1073741824) === 1073741824) {
|
|
8735
8770
|
kind |= 128;
|
|
8736
8771
|
}
|
|
8737
8772
|
else if (isStatic && token === 2162700) {
|
|
8738
|
-
return parseStaticBlock(parser, context | 4096, scope, privateScope, start
|
|
8773
|
+
return parseStaticBlock(parser, context | 4096, scope, privateScope, start);
|
|
8739
8774
|
}
|
|
8740
8775
|
else if (token === -2147483527) {
|
|
8741
8776
|
key = parseIdentifier(parser, context);
|
|
@@ -8760,7 +8795,7 @@
|
|
|
8760
8795
|
}
|
|
8761
8796
|
else if (parser.getToken() === 130) {
|
|
8762
8797
|
kind |= 8192;
|
|
8763
|
-
key = parsePrivateIdentifier(parser, context, privateScope, kind
|
|
8798
|
+
key = parsePrivateIdentifier(parser, context, privateScope, kind);
|
|
8764
8799
|
}
|
|
8765
8800
|
else
|
|
8766
8801
|
report(parser, 135);
|
|
@@ -8790,10 +8825,10 @@
|
|
|
8790
8825
|
}
|
|
8791
8826
|
}
|
|
8792
8827
|
if (kind & 1024 || (parser.getToken() !== 67174411 && (kind & 768) === 0)) {
|
|
8793
|
-
return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators,
|
|
8828
|
+
return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, start);
|
|
8794
8829
|
}
|
|
8795
|
-
const value = parseMethodDefinition(parser, context | 4096, privateScope, kind, inGroup, parser.
|
|
8796
|
-
return finishNode(
|
|
8830
|
+
const value = parseMethodDefinition(parser, context | 4096, privateScope, kind, inGroup, parser.tokenStart);
|
|
8831
|
+
return parser.finishNode({
|
|
8797
8832
|
type: 'MethodDefinition',
|
|
8798
8833
|
kind: (kind & 32) === 0 && kind & 64
|
|
8799
8834
|
? 'constructor'
|
|
@@ -8807,9 +8842,10 @@
|
|
|
8807
8842
|
key,
|
|
8808
8843
|
value,
|
|
8809
8844
|
...(context & 1 ? { decorators } : null),
|
|
8810
|
-
});
|
|
8845
|
+
}, start);
|
|
8811
8846
|
}
|
|
8812
|
-
function parsePrivateIdentifier(parser, context, privateScope, kind
|
|
8847
|
+
function parsePrivateIdentifier(parser, context, privateScope, kind) {
|
|
8848
|
+
const { tokenStart } = parser;
|
|
8813
8849
|
nextToken(parser, context);
|
|
8814
8850
|
const { tokenValue } = parser;
|
|
8815
8851
|
if (tokenValue === 'constructor')
|
|
@@ -8825,18 +8861,18 @@
|
|
|
8825
8861
|
}
|
|
8826
8862
|
}
|
|
8827
8863
|
nextToken(parser, context);
|
|
8828
|
-
return finishNode(
|
|
8864
|
+
return parser.finishNode({
|
|
8829
8865
|
type: 'PrivateIdentifier',
|
|
8830
8866
|
name: tokenValue,
|
|
8831
|
-
});
|
|
8867
|
+
}, tokenStart);
|
|
8832
8868
|
}
|
|
8833
|
-
function parsePropertyDefinition(parser, context, privateScope, key, state, decorators, start
|
|
8869
|
+
function parsePropertyDefinition(parser, context, privateScope, key, state, decorators, start) {
|
|
8834
8870
|
let value = null;
|
|
8835
8871
|
if (state & 8)
|
|
8836
8872
|
report(parser, 0);
|
|
8837
8873
|
if (parser.getToken() === 1077936155) {
|
|
8838
8874
|
nextToken(parser, context | 8192);
|
|
8839
|
-
const {
|
|
8875
|
+
const { tokenStart } = parser;
|
|
8840
8876
|
if (parser.getToken() === 537079927)
|
|
8841
8877
|
report(parser, 119);
|
|
8842
8878
|
const modifierFlags = 262144 |
|
|
@@ -8850,40 +8886,39 @@
|
|
|
8850
8886
|
(state & 64 ? 4194304 : 0) |
|
|
8851
8887
|
65536 |
|
|
8852
8888
|
16777216;
|
|
8853
|
-
value = parsePrimaryExpression(parser, context | 4096, privateScope, 2, 0, 1, 0, 1,
|
|
8889
|
+
value = parsePrimaryExpression(parser, context | 4096, privateScope, 2, 0, 1, 0, 1, tokenStart);
|
|
8854
8890
|
if ((parser.getToken() & 1073741824) !== 1073741824 ||
|
|
8855
8891
|
(parser.getToken() & 4194304) === 4194304) {
|
|
8856
|
-
value = parseMemberOrUpdateExpression(parser, context | 4096, privateScope, value, 0, 0,
|
|
8857
|
-
value = parseAssignmentExpression(parser, context | 4096, privateScope, 0, 0,
|
|
8892
|
+
value = parseMemberOrUpdateExpression(parser, context | 4096, privateScope, value, 0, 0, tokenStart);
|
|
8893
|
+
value = parseAssignmentExpression(parser, context | 4096, privateScope, 0, 0, tokenStart, value);
|
|
8858
8894
|
}
|
|
8859
8895
|
}
|
|
8860
8896
|
matchOrInsertSemicolon(parser, context);
|
|
8861
|
-
return finishNode(
|
|
8897
|
+
return parser.finishNode({
|
|
8862
8898
|
type: state & 1024 ? 'AccessorProperty' : 'PropertyDefinition',
|
|
8863
8899
|
key,
|
|
8864
8900
|
value,
|
|
8865
8901
|
static: (state & 32) > 0,
|
|
8866
8902
|
computed: (state & 2) > 0,
|
|
8867
8903
|
...(context & 1 ? { decorators } : null),
|
|
8868
|
-
});
|
|
8904
|
+
}, start);
|
|
8869
8905
|
}
|
|
8870
|
-
function parseBindingPattern(parser, context, scope, privateScope, type, origin
|
|
8906
|
+
function parseBindingPattern(parser, context, scope, privateScope, type, origin) {
|
|
8871
8907
|
if (parser.getToken() & 143360 ||
|
|
8872
8908
|
((context & 256) === 0 && parser.getToken() === -2147483527))
|
|
8873
|
-
return parseAndClassifyIdentifier(parser, context, scope, type, origin
|
|
8909
|
+
return parseAndClassifyIdentifier(parser, context, scope, type, origin);
|
|
8874
8910
|
if ((parser.getToken() & 2097152) !== 2097152)
|
|
8875
8911
|
report(parser, 30, KeywordDescTable[parser.getToken() & 255]);
|
|
8876
8912
|
const left = parser.getToken() === 69271571
|
|
8877
|
-
? parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, 0, 1, type, origin
|
|
8878
|
-
: parseObjectLiteralOrPattern(parser, context, scope, privateScope, 1, 0, 1, type, origin
|
|
8913
|
+
? parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, 0, 1, type, origin)
|
|
8914
|
+
: parseObjectLiteralOrPattern(parser, context, scope, privateScope, 1, 0, 1, type, origin);
|
|
8879
8915
|
if (parser.destructible & 16)
|
|
8880
8916
|
report(parser, 50);
|
|
8881
8917
|
if (parser.destructible & 32)
|
|
8882
8918
|
report(parser, 50);
|
|
8883
8919
|
return left;
|
|
8884
8920
|
}
|
|
8885
|
-
function parseAndClassifyIdentifier(parser, context, scope, kind, origin
|
|
8886
|
-
const { tokenValue } = parser;
|
|
8921
|
+
function parseAndClassifyIdentifier(parser, context, scope, kind, origin) {
|
|
8887
8922
|
const token = parser.getToken();
|
|
8888
8923
|
if (context & 256) {
|
|
8889
8924
|
if ((token & 537079808) === 537079808) {
|
|
@@ -8912,54 +8947,55 @@
|
|
|
8912
8947
|
if (context & 512)
|
|
8913
8948
|
report(parser, 110);
|
|
8914
8949
|
}
|
|
8950
|
+
const { tokenValue, tokenStart: start } = parser;
|
|
8915
8951
|
nextToken(parser, context);
|
|
8916
8952
|
if (scope)
|
|
8917
8953
|
addVarOrBlock(parser, context, scope, tokenValue, kind, origin);
|
|
8918
|
-
return finishNode(
|
|
8954
|
+
return parser.finishNode({
|
|
8919
8955
|
type: 'Identifier',
|
|
8920
8956
|
name: tokenValue,
|
|
8921
|
-
});
|
|
8957
|
+
}, start);
|
|
8922
8958
|
}
|
|
8923
|
-
function parseJSXRootElementOrFragment(parser, context, privateScope, inJSXChild, start
|
|
8959
|
+
function parseJSXRootElementOrFragment(parser, context, privateScope, inJSXChild, start) {
|
|
8924
8960
|
if (!inJSXChild)
|
|
8925
8961
|
consume(parser, context, 8456256);
|
|
8926
8962
|
if (parser.getToken() === 8390721) {
|
|
8927
|
-
const openingFragment =
|
|
8963
|
+
const openingFragment = parseJSXOpeningFragment(parser, context, start);
|
|
8928
8964
|
const [children, closingFragment] = parseJSXChildrenAndClosingFragment(parser, context, privateScope, inJSXChild);
|
|
8929
|
-
return finishNode(
|
|
8965
|
+
return parser.finishNode({
|
|
8930
8966
|
type: 'JSXFragment',
|
|
8931
8967
|
openingFragment,
|
|
8932
8968
|
children,
|
|
8933
8969
|
closingFragment,
|
|
8934
|
-
});
|
|
8970
|
+
}, start);
|
|
8935
8971
|
}
|
|
8936
8972
|
if (parser.getToken() === 8457014)
|
|
8937
8973
|
report(parser, 30, KeywordDescTable[parser.getToken() & 255]);
|
|
8938
8974
|
let closingElement = null;
|
|
8939
8975
|
let children = [];
|
|
8940
|
-
const openingElement = parseJSXOpeningElementOrSelfCloseElement(parser, context, privateScope, inJSXChild, start
|
|
8976
|
+
const openingElement = parseJSXOpeningElementOrSelfCloseElement(parser, context, privateScope, inJSXChild, start);
|
|
8941
8977
|
if (!openingElement.selfClosing) {
|
|
8942
8978
|
[children, closingElement] = parseJSXChildrenAndClosingElement(parser, context, privateScope, inJSXChild);
|
|
8943
8979
|
const close = isEqualTagName(closingElement.name);
|
|
8944
8980
|
if (isEqualTagName(openingElement.name) !== close)
|
|
8945
8981
|
report(parser, 155, close);
|
|
8946
8982
|
}
|
|
8947
|
-
return finishNode(
|
|
8983
|
+
return parser.finishNode({
|
|
8948
8984
|
type: 'JSXElement',
|
|
8949
8985
|
children,
|
|
8950
8986
|
openingElement,
|
|
8951
8987
|
closingElement,
|
|
8952
|
-
});
|
|
8988
|
+
}, start);
|
|
8953
8989
|
}
|
|
8954
|
-
function
|
|
8990
|
+
function parseJSXOpeningFragment(parser, context, start) {
|
|
8955
8991
|
nextJSXToken(parser, context);
|
|
8956
|
-
return finishNode(
|
|
8992
|
+
return parser.finishNode({
|
|
8957
8993
|
type: 'JSXOpeningFragment',
|
|
8958
|
-
});
|
|
8994
|
+
}, start);
|
|
8959
8995
|
}
|
|
8960
|
-
function parseJSXClosingElement(parser, context, inJSXChild, start
|
|
8996
|
+
function parseJSXClosingElement(parser, context, inJSXChild, start) {
|
|
8961
8997
|
consume(parser, context, 8457014);
|
|
8962
|
-
const name = parseJSXElementName(parser, context
|
|
8998
|
+
const name = parseJSXElementName(parser, context);
|
|
8963
8999
|
if (parser.getToken() !== 8390721) {
|
|
8964
9000
|
report(parser, 25, KeywordDescTable[8390721 & 255]);
|
|
8965
9001
|
}
|
|
@@ -8969,12 +9005,12 @@
|
|
|
8969
9005
|
else {
|
|
8970
9006
|
nextToken(parser, context);
|
|
8971
9007
|
}
|
|
8972
|
-
return finishNode(
|
|
9008
|
+
return parser.finishNode({
|
|
8973
9009
|
type: 'JSXClosingElement',
|
|
8974
9010
|
name,
|
|
8975
|
-
});
|
|
9011
|
+
}, start);
|
|
8976
9012
|
}
|
|
8977
|
-
function parseJSXClosingFragment(parser, context, inJSXChild, start
|
|
9013
|
+
function parseJSXClosingFragment(parser, context, inJSXChild, start) {
|
|
8978
9014
|
consume(parser, context, 8457014);
|
|
8979
9015
|
if (parser.getToken() !== 8390721) {
|
|
8980
9016
|
report(parser, 25, KeywordDescTable[8390721 & 255]);
|
|
@@ -8985,14 +9021,14 @@
|
|
|
8985
9021
|
else {
|
|
8986
9022
|
nextToken(parser, context);
|
|
8987
9023
|
}
|
|
8988
|
-
return finishNode(
|
|
9024
|
+
return parser.finishNode({
|
|
8989
9025
|
type: 'JSXClosingFragment',
|
|
8990
|
-
});
|
|
9026
|
+
}, start);
|
|
8991
9027
|
}
|
|
8992
9028
|
function parseJSXChildrenAndClosingElement(parser, context, privateScope, inJSXChild) {
|
|
8993
9029
|
const children = [];
|
|
8994
9030
|
while (true) {
|
|
8995
|
-
const child = parseJSXChildOrClosingElement(parser, context, privateScope, inJSXChild
|
|
9031
|
+
const child = parseJSXChildOrClosingElement(parser, context, privateScope, inJSXChild);
|
|
8996
9032
|
if (child.type === 'JSXClosingElement') {
|
|
8997
9033
|
return [children, child];
|
|
8998
9034
|
}
|
|
@@ -9002,40 +9038,43 @@
|
|
|
9002
9038
|
function parseJSXChildrenAndClosingFragment(parser, context, privateScope, inJSXChild) {
|
|
9003
9039
|
const children = [];
|
|
9004
9040
|
while (true) {
|
|
9005
|
-
const child = parseJSXChildOrClosingFragment(parser, context, privateScope, inJSXChild
|
|
9041
|
+
const child = parseJSXChildOrClosingFragment(parser, context, privateScope, inJSXChild);
|
|
9006
9042
|
if (child.type === 'JSXClosingFragment') {
|
|
9007
9043
|
return [children, child];
|
|
9008
9044
|
}
|
|
9009
9045
|
children.push(child);
|
|
9010
9046
|
}
|
|
9011
9047
|
}
|
|
9012
|
-
function parseJSXChildOrClosingElement(parser, context, privateScope, inJSXChild
|
|
9048
|
+
function parseJSXChildOrClosingElement(parser, context, privateScope, inJSXChild) {
|
|
9013
9049
|
if (parser.getToken() === 137)
|
|
9014
|
-
return parseJSXText(parser, context
|
|
9050
|
+
return parseJSXText(parser, context);
|
|
9015
9051
|
if (parser.getToken() === 2162700)
|
|
9016
|
-
return parseJSXExpressionContainer(parser, context, privateScope, 1, 0
|
|
9052
|
+
return parseJSXExpressionContainer(parser, context, privateScope, 1, 0);
|
|
9017
9053
|
if (parser.getToken() === 8456256) {
|
|
9054
|
+
const { tokenStart } = parser;
|
|
9018
9055
|
nextToken(parser, context);
|
|
9019
9056
|
if (parser.getToken() === 8457014)
|
|
9020
|
-
return parseJSXClosingElement(parser, context, inJSXChild,
|
|
9021
|
-
return parseJSXRootElementOrFragment(parser, context, privateScope, 1,
|
|
9057
|
+
return parseJSXClosingElement(parser, context, inJSXChild, tokenStart);
|
|
9058
|
+
return parseJSXRootElementOrFragment(parser, context, privateScope, 1, tokenStart);
|
|
9022
9059
|
}
|
|
9023
9060
|
report(parser, 0);
|
|
9024
9061
|
}
|
|
9025
|
-
function parseJSXChildOrClosingFragment(parser, context, privateScope, inJSXChild
|
|
9062
|
+
function parseJSXChildOrClosingFragment(parser, context, privateScope, inJSXChild) {
|
|
9026
9063
|
if (parser.getToken() === 137)
|
|
9027
|
-
return parseJSXText(parser, context
|
|
9064
|
+
return parseJSXText(parser, context);
|
|
9028
9065
|
if (parser.getToken() === 2162700)
|
|
9029
|
-
return parseJSXExpressionContainer(parser, context, privateScope, 1, 0
|
|
9066
|
+
return parseJSXExpressionContainer(parser, context, privateScope, 1, 0);
|
|
9030
9067
|
if (parser.getToken() === 8456256) {
|
|
9068
|
+
const { tokenStart } = parser;
|
|
9031
9069
|
nextToken(parser, context);
|
|
9032
9070
|
if (parser.getToken() === 8457014)
|
|
9033
|
-
return parseJSXClosingFragment(parser, context, inJSXChild,
|
|
9034
|
-
return parseJSXRootElementOrFragment(parser, context, privateScope, 1,
|
|
9071
|
+
return parseJSXClosingFragment(parser, context, inJSXChild, tokenStart);
|
|
9072
|
+
return parseJSXRootElementOrFragment(parser, context, privateScope, 1, tokenStart);
|
|
9035
9073
|
}
|
|
9036
9074
|
report(parser, 0);
|
|
9037
9075
|
}
|
|
9038
|
-
function parseJSXText(parser, context
|
|
9076
|
+
function parseJSXText(parser, context) {
|
|
9077
|
+
const start = parser.tokenStart;
|
|
9039
9078
|
nextToken(parser, context);
|
|
9040
9079
|
const node = {
|
|
9041
9080
|
type: 'JSXText',
|
|
@@ -9044,13 +9083,13 @@
|
|
|
9044
9083
|
if (context & 128) {
|
|
9045
9084
|
node.raw = parser.tokenRaw;
|
|
9046
9085
|
}
|
|
9047
|
-
return finishNode(
|
|
9086
|
+
return parser.finishNode(node, start);
|
|
9048
9087
|
}
|
|
9049
|
-
function parseJSXOpeningElementOrSelfCloseElement(parser, context, privateScope, inJSXChild, start
|
|
9088
|
+
function parseJSXOpeningElementOrSelfCloseElement(parser, context, privateScope, inJSXChild, start) {
|
|
9050
9089
|
if ((parser.getToken() & 143360) !== 143360 &&
|
|
9051
9090
|
(parser.getToken() & 4096) !== 4096)
|
|
9052
9091
|
report(parser, 0);
|
|
9053
|
-
const tagName = parseJSXElementName(parser, context
|
|
9092
|
+
const tagName = parseJSXElementName(parser, context);
|
|
9054
9093
|
const attributes = parseJSXAttributes(parser, context, privateScope);
|
|
9055
9094
|
const selfClosing = parser.getToken() === 8457014;
|
|
9056
9095
|
if (selfClosing)
|
|
@@ -9064,105 +9103,112 @@
|
|
|
9064
9103
|
else {
|
|
9065
9104
|
nextToken(parser, context);
|
|
9066
9105
|
}
|
|
9067
|
-
return finishNode(
|
|
9106
|
+
return parser.finishNode({
|
|
9068
9107
|
type: 'JSXOpeningElement',
|
|
9069
9108
|
name: tagName,
|
|
9070
9109
|
attributes,
|
|
9071
9110
|
selfClosing,
|
|
9072
|
-
});
|
|
9111
|
+
}, start);
|
|
9073
9112
|
}
|
|
9074
|
-
function parseJSXElementName(parser, context
|
|
9113
|
+
function parseJSXElementName(parser, context) {
|
|
9114
|
+
const { tokenStart } = parser;
|
|
9075
9115
|
rescanJSXIdentifier(parser);
|
|
9076
|
-
let key = parseJSXIdentifier(parser, context
|
|
9116
|
+
let key = parseJSXIdentifier(parser, context);
|
|
9077
9117
|
if (parser.getToken() === 21)
|
|
9078
|
-
return parseJSXNamespacedName(parser, context, key,
|
|
9118
|
+
return parseJSXNamespacedName(parser, context, key, tokenStart);
|
|
9079
9119
|
while (consumeOpt(parser, context, 67108877)) {
|
|
9080
9120
|
rescanJSXIdentifier(parser);
|
|
9081
|
-
key = parseJSXMemberExpression(parser, context, key,
|
|
9121
|
+
key = parseJSXMemberExpression(parser, context, key, tokenStart);
|
|
9082
9122
|
}
|
|
9083
9123
|
return key;
|
|
9084
9124
|
}
|
|
9085
|
-
function parseJSXMemberExpression(parser, context, object, start
|
|
9086
|
-
const property = parseJSXIdentifier(parser, context
|
|
9087
|
-
return finishNode(
|
|
9125
|
+
function parseJSXMemberExpression(parser, context, object, start) {
|
|
9126
|
+
const property = parseJSXIdentifier(parser, context);
|
|
9127
|
+
return parser.finishNode({
|
|
9088
9128
|
type: 'JSXMemberExpression',
|
|
9089
9129
|
object,
|
|
9090
9130
|
property,
|
|
9091
|
-
});
|
|
9131
|
+
}, start);
|
|
9092
9132
|
}
|
|
9093
9133
|
function parseJSXAttributes(parser, context, privateScope) {
|
|
9094
9134
|
const attributes = [];
|
|
9095
9135
|
while (parser.getToken() !== 8457014 &&
|
|
9096
9136
|
parser.getToken() !== 8390721 &&
|
|
9097
9137
|
parser.getToken() !== 1048576) {
|
|
9098
|
-
attributes.push(parseJsxAttribute(parser, context, privateScope
|
|
9138
|
+
attributes.push(parseJsxAttribute(parser, context, privateScope));
|
|
9099
9139
|
}
|
|
9100
9140
|
return attributes;
|
|
9101
9141
|
}
|
|
9102
|
-
function parseJSXSpreadAttribute(parser, context, privateScope
|
|
9142
|
+
function parseJSXSpreadAttribute(parser, context, privateScope) {
|
|
9143
|
+
const start = parser.tokenStart;
|
|
9103
9144
|
nextToken(parser, context);
|
|
9104
9145
|
consume(parser, context, 14);
|
|
9105
|
-
const expression = parseExpression(parser, context, privateScope, 1, 0, parser.
|
|
9146
|
+
const expression = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart);
|
|
9106
9147
|
consume(parser, context, 1074790415);
|
|
9107
|
-
return finishNode(
|
|
9148
|
+
return parser.finishNode({
|
|
9108
9149
|
type: 'JSXSpreadAttribute',
|
|
9109
9150
|
argument: expression,
|
|
9110
|
-
});
|
|
9151
|
+
}, start);
|
|
9111
9152
|
}
|
|
9112
|
-
function parseJsxAttribute(parser, context, privateScope
|
|
9153
|
+
function parseJsxAttribute(parser, context, privateScope) {
|
|
9154
|
+
const { tokenStart } = parser;
|
|
9113
9155
|
if (parser.getToken() === 2162700)
|
|
9114
|
-
return parseJSXSpreadAttribute(parser, context, privateScope
|
|
9156
|
+
return parseJSXSpreadAttribute(parser, context, privateScope);
|
|
9115
9157
|
rescanJSXIdentifier(parser);
|
|
9116
9158
|
let value = null;
|
|
9117
|
-
let name = parseJSXIdentifier(parser, context
|
|
9159
|
+
let name = parseJSXIdentifier(parser, context);
|
|
9118
9160
|
if (parser.getToken() === 21) {
|
|
9119
|
-
name = parseJSXNamespacedName(parser, context, name,
|
|
9161
|
+
name = parseJSXNamespacedName(parser, context, name, tokenStart);
|
|
9120
9162
|
}
|
|
9121
9163
|
if (parser.getToken() === 1077936155) {
|
|
9122
9164
|
const token = scanJSXAttributeValue(parser, context);
|
|
9123
|
-
const { tokenIndex, tokenLine, tokenColumn } = parser;
|
|
9124
9165
|
switch (token) {
|
|
9125
9166
|
case 134283267:
|
|
9126
9167
|
value = parseLiteral(parser, context);
|
|
9127
9168
|
break;
|
|
9128
9169
|
case 8456256:
|
|
9129
|
-
value = parseJSXRootElementOrFragment(parser, context, privateScope, 0,
|
|
9170
|
+
value = parseJSXRootElementOrFragment(parser, context, privateScope, 0, parser.tokenStart);
|
|
9130
9171
|
break;
|
|
9131
9172
|
case 2162700:
|
|
9132
|
-
value = parseJSXExpressionContainer(parser, context, privateScope, 0, 1
|
|
9173
|
+
value = parseJSXExpressionContainer(parser, context, privateScope, 0, 1);
|
|
9133
9174
|
break;
|
|
9134
9175
|
default:
|
|
9135
9176
|
report(parser, 154);
|
|
9136
9177
|
}
|
|
9137
9178
|
}
|
|
9138
|
-
return finishNode(
|
|
9179
|
+
return parser.finishNode({
|
|
9139
9180
|
type: 'JSXAttribute',
|
|
9140
9181
|
value,
|
|
9141
9182
|
name,
|
|
9142
|
-
});
|
|
9183
|
+
}, tokenStart);
|
|
9143
9184
|
}
|
|
9144
|
-
function parseJSXNamespacedName(parser, context, namespace, start
|
|
9185
|
+
function parseJSXNamespacedName(parser, context, namespace, start) {
|
|
9145
9186
|
consume(parser, context, 21);
|
|
9146
|
-
const name = parseJSXIdentifier(parser, context
|
|
9147
|
-
return finishNode(
|
|
9187
|
+
const name = parseJSXIdentifier(parser, context);
|
|
9188
|
+
return parser.finishNode({
|
|
9148
9189
|
type: 'JSXNamespacedName',
|
|
9149
9190
|
namespace,
|
|
9150
9191
|
name,
|
|
9151
|
-
});
|
|
9192
|
+
}, start);
|
|
9152
9193
|
}
|
|
9153
|
-
function parseJSXExpressionContainer(parser, context, privateScope, inJSXChild, isAttr
|
|
9194
|
+
function parseJSXExpressionContainer(parser, context, privateScope, inJSXChild, isAttr) {
|
|
9195
|
+
const { tokenStart: start } = parser;
|
|
9154
9196
|
nextToken(parser, context | 8192);
|
|
9155
|
-
const {
|
|
9197
|
+
const { tokenStart } = parser;
|
|
9156
9198
|
if (parser.getToken() === 14)
|
|
9157
|
-
return parseJSXSpreadChild(parser, context, privateScope, start
|
|
9199
|
+
return parseJSXSpreadChild(parser, context, privateScope, start);
|
|
9158
9200
|
let expression = null;
|
|
9159
9201
|
if (parser.getToken() === 1074790415) {
|
|
9160
9202
|
if (isAttr)
|
|
9161
9203
|
report(parser, 157);
|
|
9162
|
-
expression = parseJSXEmptyExpression(parser,
|
|
9204
|
+
expression = parseJSXEmptyExpression(parser, {
|
|
9205
|
+
index: parser.startIndex,
|
|
9206
|
+
line: parser.startLine,
|
|
9207
|
+
column: parser.startColumn,
|
|
9208
|
+
});
|
|
9163
9209
|
}
|
|
9164
9210
|
else {
|
|
9165
|
-
expression = parseExpression(parser, context, privateScope, 1, 0,
|
|
9211
|
+
expression = parseExpression(parser, context, privateScope, 1, 0, tokenStart);
|
|
9166
9212
|
}
|
|
9167
9213
|
if (parser.getToken() !== 1074790415) {
|
|
9168
9214
|
report(parser, 25, KeywordDescTable[1074790415 & 255]);
|
|
@@ -9173,41 +9219,39 @@
|
|
|
9173
9219
|
else {
|
|
9174
9220
|
nextToken(parser, context);
|
|
9175
9221
|
}
|
|
9176
|
-
return finishNode(
|
|
9222
|
+
return parser.finishNode({
|
|
9177
9223
|
type: 'JSXExpressionContainer',
|
|
9178
9224
|
expression,
|
|
9179
|
-
});
|
|
9225
|
+
}, start);
|
|
9180
9226
|
}
|
|
9181
|
-
function parseJSXSpreadChild(parser, context, privateScope, start
|
|
9227
|
+
function parseJSXSpreadChild(parser, context, privateScope, start) {
|
|
9182
9228
|
consume(parser, context, 14);
|
|
9183
|
-
const expression = parseExpression(parser, context, privateScope, 1, 0, parser.
|
|
9229
|
+
const expression = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart);
|
|
9184
9230
|
consume(parser, context, 1074790415);
|
|
9185
|
-
return finishNode(
|
|
9231
|
+
return parser.finishNode({
|
|
9186
9232
|
type: 'JSXSpreadChild',
|
|
9187
9233
|
expression,
|
|
9188
|
-
});
|
|
9234
|
+
}, start);
|
|
9189
9235
|
}
|
|
9190
|
-
function parseJSXEmptyExpression(parser,
|
|
9191
|
-
|
|
9192
|
-
parser.startLine = parser.tokenLine;
|
|
9193
|
-
parser.startColumn = parser.tokenColumn;
|
|
9194
|
-
return finishNode(parser, context, start, line, column, {
|
|
9236
|
+
function parseJSXEmptyExpression(parser, start) {
|
|
9237
|
+
return parser.finishNode({
|
|
9195
9238
|
type: 'JSXEmptyExpression',
|
|
9196
|
-
});
|
|
9239
|
+
}, start, parser.tokenStart);
|
|
9197
9240
|
}
|
|
9198
|
-
function parseJSXIdentifier(parser, context
|
|
9241
|
+
function parseJSXIdentifier(parser, context) {
|
|
9242
|
+
const start = parser.tokenStart;
|
|
9199
9243
|
if (!(parser.getToken() & 143360)) {
|
|
9200
9244
|
report(parser, 30, KeywordDescTable[parser.getToken() & 255]);
|
|
9201
9245
|
}
|
|
9202
9246
|
const { tokenValue } = parser;
|
|
9203
9247
|
nextToken(parser, context);
|
|
9204
|
-
return finishNode(
|
|
9248
|
+
return parser.finishNode({
|
|
9205
9249
|
type: 'JSXIdentifier',
|
|
9206
9250
|
name: tokenValue,
|
|
9207
|
-
});
|
|
9251
|
+
}, start);
|
|
9208
9252
|
}
|
|
9209
9253
|
|
|
9210
|
-
var version$1 = "6.1.
|
|
9254
|
+
var version$1 = "6.1.2";
|
|
9211
9255
|
|
|
9212
9256
|
const version = version$1;
|
|
9213
9257
|
function parseScript(source, options) {
|