meriyah 4.4.2 → 4.4.4
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 +13 -0
- package/README.md +1 -7
- package/dist/meriyah.amd.js +121 -118
- package/dist/meriyah.amd.min.js +1 -1
- package/dist/meriyah.cjs +121 -118
- package/dist/meriyah.cjs.js +121 -118
- package/dist/meriyah.cjs.min.js +1 -1
- package/dist/meriyah.esm.js +121 -118
- package/dist/meriyah.esm.min.js +1 -1
- package/dist/meriyah.esm.min.mjs +1 -1
- package/dist/meriyah.esm.mjs +121 -118
- package/dist/meriyah.iife.js +121 -118
- package/dist/meriyah.iife.min.js +1 -1
- package/dist/meriyah.min.cjs +1 -1
- package/dist/meriyah.system.js +121 -118
- package/dist/meriyah.system.min.js +1 -1
- package/dist/meriyah.umd.cjs +121 -118
- package/dist/meriyah.umd.es5.js +121 -118
- package/dist/meriyah.umd.es5.min.js +1 -1
- package/dist/meriyah.umd.js +121 -118
- package/dist/meriyah.umd.min.cjs +1 -1
- package/dist/meriyah.umd.min.js +1 -1
- package/dist/src/common.d.ts +3 -5
- package/dist/src/common.d.ts.map +1 -1
- package/dist/src/parser.d.ts +4 -6
- package/dist/src/parser.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/common.ts +4 -7
- package/src/parser.ts +115 -144
package/dist/meriyah.umd.js
CHANGED
|
@@ -1530,7 +1530,7 @@
|
|
|
1530
1530
|
return 122;
|
|
1531
1531
|
}
|
|
1532
1532
|
if ((token & 20480) === 20480) {
|
|
1533
|
-
if (context &
|
|
1533
|
+
if (context & 268435456 && (context & 8192) === 0) {
|
|
1534
1534
|
return token;
|
|
1535
1535
|
}
|
|
1536
1536
|
else {
|
|
@@ -1539,12 +1539,12 @@
|
|
|
1539
1539
|
}
|
|
1540
1540
|
return 143483;
|
|
1541
1541
|
}
|
|
1542
|
-
if (context &
|
|
1542
|
+
if (context & 268435456 &&
|
|
1543
1543
|
(context & 8192) === 0 &&
|
|
1544
1544
|
(token & 20480) === 20480)
|
|
1545
1545
|
return token;
|
|
1546
1546
|
if (token === 241773) {
|
|
1547
|
-
return context &
|
|
1547
|
+
return context & 268435456
|
|
1548
1548
|
? 143483
|
|
1549
1549
|
: context & 2097152
|
|
1550
1550
|
? 121
|
|
@@ -4363,10 +4363,9 @@
|
|
|
4363
4363
|
return parser.token;
|
|
4364
4364
|
}
|
|
4365
4365
|
|
|
4366
|
-
function matchOrInsertSemicolon(parser, context
|
|
4366
|
+
function matchOrInsertSemicolon(parser, context) {
|
|
4367
4367
|
if ((parser.flags & 1) === 0 &&
|
|
4368
|
-
(parser.token & 1048576) !== 1048576
|
|
4369
|
-
!specDeviation) {
|
|
4368
|
+
(parser.token & 1048576) !== 1048576) {
|
|
4370
4369
|
report(parser, 28, KeywordDescTable[parser.token & 255]);
|
|
4371
4370
|
}
|
|
4372
4371
|
if (!consumeOpt(parser, context, 1074790417)) {
|
|
@@ -4758,7 +4757,7 @@
|
|
|
4758
4757
|
if (options.ranges)
|
|
4759
4758
|
context |= 2;
|
|
4760
4759
|
if (options.uniqueKeyInPattern)
|
|
4761
|
-
context |=
|
|
4760
|
+
context |= 536870912;
|
|
4762
4761
|
if (options.lexical)
|
|
4763
4762
|
context |= 64;
|
|
4764
4763
|
if (options.webcompat)
|
|
@@ -4775,10 +4774,6 @@
|
|
|
4775
4774
|
context |= 1024;
|
|
4776
4775
|
if (options.jsx)
|
|
4777
4776
|
context |= 16;
|
|
4778
|
-
if (options.identifierPattern)
|
|
4779
|
-
context |= 268435456;
|
|
4780
|
-
if (options.specDeviation)
|
|
4781
|
-
context |= 536870912;
|
|
4782
4777
|
if (options.source)
|
|
4783
4778
|
sourceFile = options.source;
|
|
4784
4779
|
if (options.onComment != null) {
|
|
@@ -4830,7 +4825,7 @@
|
|
|
4830
4825
|
return node;
|
|
4831
4826
|
}
|
|
4832
4827
|
function parseStatementList(parser, context, scope) {
|
|
4833
|
-
nextToken(parser, context | 32768 |
|
|
4828
|
+
nextToken(parser, context | 32768 | 268435456);
|
|
4834
4829
|
const statements = [];
|
|
4835
4830
|
while (parser.token === 134283267) {
|
|
4836
4831
|
const { index, tokenPos, tokenValue, linePos, colPos, token } = parser;
|
|
@@ -4963,14 +4958,14 @@
|
|
|
4963
4958
|
let expr;
|
|
4964
4959
|
switch (token) {
|
|
4965
4960
|
case 241739:
|
|
4966
|
-
expr = parseIdentifier(parser, context
|
|
4961
|
+
expr = parseIdentifier(parser, context);
|
|
4967
4962
|
if (context & 1024)
|
|
4968
4963
|
report(parser, 83);
|
|
4969
4964
|
if (parser.token === 69271571)
|
|
4970
4965
|
report(parser, 82);
|
|
4971
4966
|
break;
|
|
4972
4967
|
default:
|
|
4973
|
-
expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0,
|
|
4968
|
+
expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);
|
|
4974
4969
|
}
|
|
4975
4970
|
if (token & 143360 && parser.token === 21) {
|
|
4976
4971
|
return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, allowFuncDecl, start, line, column);
|
|
@@ -5032,7 +5027,7 @@
|
|
|
5032
5027
|
}
|
|
5033
5028
|
function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) {
|
|
5034
5029
|
const { token, tokenValue } = parser;
|
|
5035
|
-
let expr = parseIdentifier(parser, context
|
|
5030
|
+
let expr = parseIdentifier(parser, context);
|
|
5036
5031
|
if (parser.token === 21) {
|
|
5037
5032
|
return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, 1, start, line, column);
|
|
5038
5033
|
}
|
|
@@ -5200,7 +5195,7 @@
|
|
|
5200
5195
|
let label = null;
|
|
5201
5196
|
if ((parser.flags & 1) === 0 && parser.token & 143360) {
|
|
5202
5197
|
const { tokenValue } = parser;
|
|
5203
|
-
label = parseIdentifier(parser, context | 32768
|
|
5198
|
+
label = parseIdentifier(parser, context | 32768);
|
|
5204
5199
|
if (!isValidLabel(parser, labels, tokenValue, 1))
|
|
5205
5200
|
report(parser, 135, tokenValue);
|
|
5206
5201
|
}
|
|
@@ -5215,7 +5210,7 @@
|
|
|
5215
5210
|
let label = null;
|
|
5216
5211
|
if ((parser.flags & 1) === 0 && parser.token & 143360) {
|
|
5217
5212
|
const { tokenValue } = parser;
|
|
5218
|
-
label = parseIdentifier(parser, context | 32768
|
|
5213
|
+
label = parseIdentifier(parser, context | 32768);
|
|
5219
5214
|
if (!isValidLabel(parser, labels, tokenValue, 0))
|
|
5220
5215
|
report(parser, 135, tokenValue);
|
|
5221
5216
|
}
|
|
@@ -5326,7 +5321,7 @@
|
|
|
5326
5321
|
}
|
|
5327
5322
|
function parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column) {
|
|
5328
5323
|
const { token, tokenValue } = parser;
|
|
5329
|
-
let expr = parseIdentifier(parser, context
|
|
5324
|
+
let expr = parseIdentifier(parser, context);
|
|
5330
5325
|
if (parser.token & (143360 | 2097152)) {
|
|
5331
5326
|
const declarations = parseVariableDeclarationList(parser, context, scope, 8, 0);
|
|
5332
5327
|
matchOrInsertSemicolon(parser, context | 32768);
|
|
@@ -5396,7 +5391,7 @@
|
|
|
5396
5391
|
const id = parseBindingPattern(parser, context, scope, kind, origin, tokenPos, linePos, colPos);
|
|
5397
5392
|
if (parser.token === 1077936157) {
|
|
5398
5393
|
nextToken(parser, context | 32768);
|
|
5399
|
-
init = parseExpression(parser, context, 1, 0,
|
|
5394
|
+
init = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
|
|
5400
5395
|
if (origin & 32 || (token & 2097152) === 0) {
|
|
5401
5396
|
if (parser.token === 274549 ||
|
|
5402
5397
|
(parser.token === 8738868 &&
|
|
@@ -5431,7 +5426,7 @@
|
|
|
5431
5426
|
const { token, tokenPos, linePos, colPos } = parser;
|
|
5432
5427
|
if (isVarDecl) {
|
|
5433
5428
|
if (token === 241739) {
|
|
5434
|
-
init = parseIdentifier(parser, context
|
|
5429
|
+
init = parseIdentifier(parser, context);
|
|
5435
5430
|
if (parser.token & (143360 | 2097152)) {
|
|
5436
5431
|
if (parser.token === 8738868) {
|
|
5437
5432
|
if (context & 1024)
|
|
@@ -5499,7 +5494,7 @@
|
|
|
5499
5494
|
report(parser, 78, forAwait ? 'await' : 'of');
|
|
5500
5495
|
reinterpretToPattern(parser, init);
|
|
5501
5496
|
nextToken(parser, context | 32768);
|
|
5502
|
-
right = parseExpression(parser, context, 1, 0,
|
|
5497
|
+
right = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
|
|
5503
5498
|
consume(parser, context | 32768, 16);
|
|
5504
5499
|
const body = parseIterationStatementBody(parser, context, scope, labels);
|
|
5505
5500
|
return finishNode(parser, context, start, line, column, {
|
|
@@ -5559,7 +5554,7 @@
|
|
|
5559
5554
|
report(parser, 116);
|
|
5560
5555
|
if (scope)
|
|
5561
5556
|
addBlockName(parser, context, scope, parser.tokenValue, 8, 0);
|
|
5562
|
-
return parseIdentifier(parser, context
|
|
5557
|
+
return parseIdentifier(parser, context);
|
|
5563
5558
|
}
|
|
5564
5559
|
function parseImportDeclaration(parser, context, scope) {
|
|
5565
5560
|
const start = parser.tokenPos;
|
|
@@ -5632,7 +5627,9 @@
|
|
|
5632
5627
|
});
|
|
5633
5628
|
}
|
|
5634
5629
|
function parseModuleSpecifier(parser, context) {
|
|
5635
|
-
consumeOpt(parser, context, 12404)
|
|
5630
|
+
if (!consumeOpt(parser, context, 12404)) {
|
|
5631
|
+
report(parser, 28, KeywordDescTable[parser.token & 255]);
|
|
5632
|
+
}
|
|
5636
5633
|
if (parser.token !== 134283267)
|
|
5637
5634
|
report(parser, 103, 'Import');
|
|
5638
5635
|
return parseLiteral(parser, context);
|
|
@@ -5641,7 +5638,7 @@
|
|
|
5641
5638
|
nextToken(parser, context);
|
|
5642
5639
|
while (parser.token & 143360) {
|
|
5643
5640
|
let { token, tokenValue, tokenPos, linePos, colPos } = parser;
|
|
5644
|
-
const imported = parseIdentifier(parser, context
|
|
5641
|
+
const imported = parseIdentifier(parser, context);
|
|
5645
5642
|
let local;
|
|
5646
5643
|
if (consumeOpt(parser, context, 77934)) {
|
|
5647
5644
|
if ((parser.token & 134217728) === 134217728 || parser.token === 18) {
|
|
@@ -5651,7 +5648,7 @@
|
|
|
5651
5648
|
validateBindingIdentifier(parser, context, 16, parser.token, 0);
|
|
5652
5649
|
}
|
|
5653
5650
|
tokenValue = parser.tokenValue;
|
|
5654
|
-
local = parseIdentifier(parser, context
|
|
5651
|
+
local = parseIdentifier(parser, context);
|
|
5655
5652
|
}
|
|
5656
5653
|
else {
|
|
5657
5654
|
validateBindingIdentifier(parser, context, 16, token, 0);
|
|
@@ -5711,7 +5708,7 @@
|
|
|
5711
5708
|
break;
|
|
5712
5709
|
case 209007:
|
|
5713
5710
|
const { tokenPos, linePos, colPos } = parser;
|
|
5714
|
-
declaration = parseIdentifier(parser, context
|
|
5711
|
+
declaration = parseIdentifier(parser, context);
|
|
5715
5712
|
const { flags } = parser;
|
|
5716
5713
|
if ((flags & 1) === 0) {
|
|
5717
5714
|
if (parser.token === 86106) {
|
|
@@ -5726,14 +5723,14 @@
|
|
|
5726
5723
|
else if (parser.token & 143360) {
|
|
5727
5724
|
if (scope)
|
|
5728
5725
|
scope = createArrowHeadParsingScope(parser, context, parser.tokenValue);
|
|
5729
|
-
declaration = parseIdentifier(parser, context
|
|
5726
|
+
declaration = parseIdentifier(parser, context);
|
|
5730
5727
|
declaration = parseArrowFunctionExpression(parser, context, scope, [declaration], 1, tokenPos, linePos, colPos);
|
|
5731
5728
|
}
|
|
5732
5729
|
}
|
|
5733
5730
|
}
|
|
5734
5731
|
break;
|
|
5735
5732
|
default:
|
|
5736
|
-
declaration = parseExpression(parser, context, 1, 0,
|
|
5733
|
+
declaration = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
|
|
5737
5734
|
matchOrInsertSemicolon(parser, context | 32768);
|
|
5738
5735
|
}
|
|
5739
5736
|
if (scope)
|
|
@@ -5751,7 +5748,7 @@
|
|
|
5751
5748
|
if (isNamedDeclaration) {
|
|
5752
5749
|
if (scope)
|
|
5753
5750
|
declareUnboundVariable(parser, parser.tokenValue);
|
|
5754
|
-
exported = parseIdentifier(parser, context
|
|
5751
|
+
exported = parseIdentifier(parser, context);
|
|
5755
5752
|
}
|
|
5756
5753
|
consume(parser, context, 12404);
|
|
5757
5754
|
if (parser.token !== 134283267)
|
|
@@ -5770,7 +5767,7 @@
|
|
|
5770
5767
|
const tmpExportedBindings = [];
|
|
5771
5768
|
while (parser.token & 143360) {
|
|
5772
5769
|
const { tokenPos, tokenValue, linePos, colPos } = parser;
|
|
5773
|
-
const local = parseIdentifier(parser, context
|
|
5770
|
+
const local = parseIdentifier(parser, context);
|
|
5774
5771
|
let exported;
|
|
5775
5772
|
if (parser.token === 77934) {
|
|
5776
5773
|
nextToken(parser, context);
|
|
@@ -5781,7 +5778,7 @@
|
|
|
5781
5778
|
tmpExportedNames.push(parser.tokenValue);
|
|
5782
5779
|
tmpExportedBindings.push(tokenValue);
|
|
5783
5780
|
}
|
|
5784
|
-
exported = parseIdentifier(parser, context
|
|
5781
|
+
exported = parseIdentifier(parser, context);
|
|
5785
5782
|
}
|
|
5786
5783
|
else {
|
|
5787
5784
|
if (scope) {
|
|
@@ -5855,15 +5852,15 @@
|
|
|
5855
5852
|
source
|
|
5856
5853
|
});
|
|
5857
5854
|
}
|
|
5858
|
-
function parseExpression(parser, context, canAssign,
|
|
5859
|
-
let expr = parsePrimaryExpression(parser, context, 2, 0, canAssign,
|
|
5855
|
+
function parseExpression(parser, context, canAssign, inGroup, start, line, column) {
|
|
5856
|
+
let expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, inGroup, 1, start, line, column);
|
|
5860
5857
|
expr = parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column);
|
|
5861
5858
|
return parseAssignmentExpression(parser, context, inGroup, 0, start, line, column, expr);
|
|
5862
5859
|
}
|
|
5863
5860
|
function parseSequenceExpression(parser, context, inGroup, start, line, column, expr) {
|
|
5864
5861
|
const expressions = [expr];
|
|
5865
5862
|
while (consumeOpt(parser, context | 32768, 18)) {
|
|
5866
|
-
expressions.push(parseExpression(parser, context, 1,
|
|
5863
|
+
expressions.push(parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos));
|
|
5867
5864
|
}
|
|
5868
5865
|
return finishNode(parser, context, start, line, column, {
|
|
5869
5866
|
type: 'SequenceExpression',
|
|
@@ -5871,7 +5868,7 @@
|
|
|
5871
5868
|
});
|
|
5872
5869
|
}
|
|
5873
5870
|
function parseExpressions(parser, context, inGroup, canAssign, start, line, column) {
|
|
5874
|
-
const expr = parseExpression(parser, context, canAssign,
|
|
5871
|
+
const expr = parseExpression(parser, context, canAssign, inGroup, start, line, column);
|
|
5875
5872
|
return parser.token === 18
|
|
5876
5873
|
? parseSequenceExpression(parser, context, inGroup, start, line, column, expr)
|
|
5877
5874
|
: expr;
|
|
@@ -5886,7 +5883,7 @@
|
|
|
5886
5883
|
reinterpretToPattern(parser, left);
|
|
5887
5884
|
}
|
|
5888
5885
|
nextToken(parser, context | 32768);
|
|
5889
|
-
const right = parseExpression(parser, context, 1,
|
|
5886
|
+
const right = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
|
|
5890
5887
|
parser.assignable = 2;
|
|
5891
5888
|
return finishNode(parser, context, start, line, column, isPattern
|
|
5892
5889
|
? {
|
|
@@ -5912,7 +5909,7 @@
|
|
|
5912
5909
|
function parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, start, line, column, left) {
|
|
5913
5910
|
const { token } = parser;
|
|
5914
5911
|
nextToken(parser, context | 32768);
|
|
5915
|
-
const right = parseExpression(parser, context, 1,
|
|
5912
|
+
const right = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
|
|
5916
5913
|
left = finishNode(parser, context, start, line, column, isPattern
|
|
5917
5914
|
? {
|
|
5918
5915
|
type: 'AssignmentPattern',
|
|
@@ -5929,10 +5926,10 @@
|
|
|
5929
5926
|
return left;
|
|
5930
5927
|
}
|
|
5931
5928
|
function parseConditionalExpression(parser, context, test, start, line, column) {
|
|
5932
|
-
const consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0,
|
|
5929
|
+
const consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
|
|
5933
5930
|
consume(parser, context | 32768, 21);
|
|
5934
5931
|
parser.assignable = 1;
|
|
5935
|
-
const alternate = parseExpression(parser, context, 1, 0,
|
|
5932
|
+
const alternate = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
|
|
5936
5933
|
parser.assignable = 2;
|
|
5937
5934
|
return finishNode(parser, context, start, line, column, {
|
|
5938
5935
|
type: 'ConditionalExpression',
|
|
@@ -5990,9 +5987,9 @@
|
|
|
5990
5987
|
prefix: true
|
|
5991
5988
|
});
|
|
5992
5989
|
}
|
|
5993
|
-
function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign,
|
|
5990
|
+
function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, inNew, start, line, column) {
|
|
5994
5991
|
const { token } = parser;
|
|
5995
|
-
const expr = parseIdentifier(parser, context
|
|
5992
|
+
const expr = parseIdentifier(parser, context);
|
|
5996
5993
|
const { flags } = parser;
|
|
5997
5994
|
if ((flags & 1) === 0) {
|
|
5998
5995
|
if (parser.token === 86106) {
|
|
@@ -6032,7 +6029,7 @@
|
|
|
6032
6029
|
if ((parser.flags & 1) === 0) {
|
|
6033
6030
|
delegate = consumeOpt(parser, context | 32768, 8457014);
|
|
6034
6031
|
if (parser.token & (12288 | 65536) || delegate) {
|
|
6035
|
-
argument = parseExpression(parser, context, 1, 0,
|
|
6032
|
+
argument = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
|
|
6036
6033
|
}
|
|
6037
6034
|
}
|
|
6038
6035
|
parser.assignable = 2;
|
|
@@ -6135,8 +6132,9 @@
|
|
|
6135
6132
|
case 67174411: {
|
|
6136
6133
|
if ((context & 524288) === 0)
|
|
6137
6134
|
report(parser, 26);
|
|
6138
|
-
if (context & 16384)
|
|
6135
|
+
if (context & 16384 && !(context & 33554432)) {
|
|
6139
6136
|
report(parser, 27);
|
|
6137
|
+
}
|
|
6140
6138
|
parser.assignable = 2;
|
|
6141
6139
|
break;
|
|
6142
6140
|
}
|
|
@@ -6144,8 +6142,9 @@
|
|
|
6144
6142
|
case 67108877: {
|
|
6145
6143
|
if ((context & 262144) === 0)
|
|
6146
6144
|
report(parser, 27);
|
|
6147
|
-
if (context & 16384)
|
|
6145
|
+
if (context & 16384 && !(context & 33554432)) {
|
|
6148
6146
|
report(parser, 27);
|
|
6147
|
+
}
|
|
6149
6148
|
parser.assignable = 1;
|
|
6150
6149
|
break;
|
|
6151
6150
|
}
|
|
@@ -6155,7 +6154,7 @@
|
|
|
6155
6154
|
return finishNode(parser, context, start, line, column, { type: 'Super' });
|
|
6156
6155
|
}
|
|
6157
6156
|
function parseLeftHandSideExpression(parser, context, canAssign, inGroup, isLHS, start, line, column) {
|
|
6158
|
-
const expression = parsePrimaryExpression(parser, context, 2, 0, canAssign,
|
|
6157
|
+
const expression = parsePrimaryExpression(parser, context, 2, 0, canAssign, inGroup, isLHS, start, line, column);
|
|
6159
6158
|
return parseMemberOrUpdateExpression(parser, context, expression, inGroup, 0, start, line, column);
|
|
6160
6159
|
}
|
|
6161
6160
|
function parseUpdateExpression(parser, context, expr, start, line, column) {
|
|
@@ -6179,7 +6178,10 @@
|
|
|
6179
6178
|
context = (context | 134217728) ^ 134217728;
|
|
6180
6179
|
switch (parser.token) {
|
|
6181
6180
|
case 67108877: {
|
|
6182
|
-
nextToken(parser, (context |
|
|
6181
|
+
nextToken(parser, (context | 268435456 | 8192) ^ 8192);
|
|
6182
|
+
if (context & 16384 && parser.token === 131 && parser.tokenValue === 'super') {
|
|
6183
|
+
report(parser, 27);
|
|
6184
|
+
}
|
|
6183
6185
|
parser.assignable = 1;
|
|
6184
6186
|
const property = parsePropertyOrPrivatePropertyName(parser, context | 65536);
|
|
6185
6187
|
expr = finishNode(parser, context, start, line, column, {
|
|
@@ -6235,7 +6237,7 @@
|
|
|
6235
6237
|
break;
|
|
6236
6238
|
}
|
|
6237
6239
|
case 67108991: {
|
|
6238
|
-
nextToken(parser, (context |
|
|
6240
|
+
nextToken(parser, (context | 268435456 | 8192) ^ 8192);
|
|
6239
6241
|
parser.flags |= 2048;
|
|
6240
6242
|
parser.assignable = 2;
|
|
6241
6243
|
expr = parseOptionalChain(parser, context, expr, start, line, column);
|
|
@@ -6301,7 +6303,7 @@
|
|
|
6301
6303
|
else {
|
|
6302
6304
|
if ((parser.token & (143360 | 4096)) === 0)
|
|
6303
6305
|
report(parser, 155);
|
|
6304
|
-
const property = parseIdentifier(parser, context
|
|
6306
|
+
const property = parseIdentifier(parser, context);
|
|
6305
6307
|
parser.assignable = 2;
|
|
6306
6308
|
node = finishNode(parser, context, start, line, column, {
|
|
6307
6309
|
type: 'MemberExpression',
|
|
@@ -6322,7 +6324,7 @@
|
|
|
6322
6324
|
}
|
|
6323
6325
|
return context & 1 && parser.token === 131
|
|
6324
6326
|
? parsePrivateIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos)
|
|
6325
|
-
: parseIdentifier(parser, context
|
|
6327
|
+
: parseIdentifier(parser, context);
|
|
6326
6328
|
}
|
|
6327
6329
|
function parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column) {
|
|
6328
6330
|
if (inNew)
|
|
@@ -6343,7 +6345,7 @@
|
|
|
6343
6345
|
prefix: true
|
|
6344
6346
|
});
|
|
6345
6347
|
}
|
|
6346
|
-
function parsePrimaryExpression(parser, context, kind, inNew, canAssign,
|
|
6348
|
+
function parsePrimaryExpression(parser, context, kind, inNew, canAssign, inGroup, isLHS, start, line, column) {
|
|
6347
6349
|
if ((parser.token & 143360) === 143360) {
|
|
6348
6350
|
switch (parser.token) {
|
|
6349
6351
|
case 209008:
|
|
@@ -6351,10 +6353,10 @@
|
|
|
6351
6353
|
case 241773:
|
|
6352
6354
|
return parseYieldExpression(parser, context, inGroup, canAssign, start, line, column);
|
|
6353
6355
|
case 209007:
|
|
6354
|
-
return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign,
|
|
6356
|
+
return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, inNew, start, line, column);
|
|
6355
6357
|
}
|
|
6356
6358
|
const { token, tokenValue } = parser;
|
|
6357
|
-
const expr = parseIdentifier(parser, context | 65536
|
|
6359
|
+
const expr = parseIdentifier(parser, context | 65536);
|
|
6358
6360
|
if (parser.token === 10) {
|
|
6359
6361
|
if (!isLHS)
|
|
6360
6362
|
report(parser, 0);
|
|
@@ -6433,7 +6435,7 @@
|
|
|
6433
6435
|
}
|
|
6434
6436
|
}
|
|
6435
6437
|
function parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column) {
|
|
6436
|
-
let expr = parseIdentifier(parser, context
|
|
6438
|
+
let expr = parseIdentifier(parser, context);
|
|
6437
6439
|
if (parser.token === 67108877) {
|
|
6438
6440
|
return parseImportMetaExpression(parser, context, expr, start, line, column);
|
|
6439
6441
|
}
|
|
@@ -6453,14 +6455,14 @@
|
|
|
6453
6455
|
return finishNode(parser, context, start, line, column, {
|
|
6454
6456
|
type: 'MetaProperty',
|
|
6455
6457
|
meta,
|
|
6456
|
-
property: parseIdentifier(parser, context
|
|
6458
|
+
property: parseIdentifier(parser, context)
|
|
6457
6459
|
});
|
|
6458
6460
|
}
|
|
6459
6461
|
function parseImportExpression(parser, context, inGroup, start, line, column) {
|
|
6460
6462
|
consume(parser, context | 32768, 67174411);
|
|
6461
6463
|
if (parser.token === 14)
|
|
6462
6464
|
report(parser, 139);
|
|
6463
|
-
const source = parseExpression(parser, context, 1,
|
|
6465
|
+
const source = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
|
|
6464
6466
|
consume(parser, context, 16);
|
|
6465
6467
|
return finishNode(parser, context, start, line, column, {
|
|
6466
6468
|
type: 'ImportExpression',
|
|
@@ -6549,7 +6551,7 @@
|
|
|
6549
6551
|
function parseSpreadElement(parser, context, start, line, column) {
|
|
6550
6552
|
context = (context | 134217728) ^ 134217728;
|
|
6551
6553
|
consume(parser, context | 32768, 14);
|
|
6552
|
-
const argument = parseExpression(parser, context, 1, 0,
|
|
6554
|
+
const argument = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
|
|
6553
6555
|
parser.assignable = 1;
|
|
6554
6556
|
return finishNode(parser, context, start, line, column, {
|
|
6555
6557
|
type: 'SpreadElement',
|
|
@@ -6568,7 +6570,7 @@
|
|
|
6568
6570
|
args.push(parseSpreadElement(parser, context, parser.tokenPos, parser.linePos, parser.colPos));
|
|
6569
6571
|
}
|
|
6570
6572
|
else {
|
|
6571
|
-
args.push(parseExpression(parser, context, 1,
|
|
6573
|
+
args.push(parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos));
|
|
6572
6574
|
}
|
|
6573
6575
|
if (parser.token !== 18)
|
|
6574
6576
|
break;
|
|
@@ -6579,19 +6581,13 @@
|
|
|
6579
6581
|
consume(parser, context, 16);
|
|
6580
6582
|
return args;
|
|
6581
6583
|
}
|
|
6582
|
-
function parseIdentifier(parser, context
|
|
6584
|
+
function parseIdentifier(parser, context) {
|
|
6583
6585
|
const { tokenValue, tokenPos, linePos, colPos } = parser;
|
|
6584
6586
|
nextToken(parser, context);
|
|
6585
|
-
return finishNode(parser, context, tokenPos, linePos, colPos,
|
|
6586
|
-
|
|
6587
|
-
|
|
6588
|
-
|
|
6589
|
-
pattern: isPattern === 1
|
|
6590
|
-
}
|
|
6591
|
-
: {
|
|
6592
|
-
type: 'Identifier',
|
|
6593
|
-
name: tokenValue
|
|
6594
|
-
});
|
|
6587
|
+
return finishNode(parser, context, tokenPos, linePos, colPos, {
|
|
6588
|
+
type: 'Identifier',
|
|
6589
|
+
name: tokenValue
|
|
6590
|
+
});
|
|
6595
6591
|
}
|
|
6596
6592
|
function parseLiteral(parser, context) {
|
|
6597
6593
|
const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser;
|
|
@@ -6666,7 +6662,7 @@
|
|
|
6666
6662
|
}
|
|
6667
6663
|
firstRestricted = parser.token;
|
|
6668
6664
|
if (parser.token & 143360) {
|
|
6669
|
-
id = parseIdentifier(parser, context
|
|
6665
|
+
id = parseIdentifier(parser, context);
|
|
6670
6666
|
}
|
|
6671
6667
|
else {
|
|
6672
6668
|
report(parser, 28, KeywordDescTable[parser.token & 255]);
|
|
@@ -6676,7 +6672,7 @@
|
|
|
6676
6672
|
((context | 32243712) ^ 32243712) |
|
|
6677
6673
|
67108864 |
|
|
6678
6674
|
((isAsync * 2 + isGenerator) << 21) |
|
|
6679
|
-
(isGenerator ? 0 :
|
|
6675
|
+
(isGenerator ? 0 : 268435456);
|
|
6680
6676
|
if (scope)
|
|
6681
6677
|
functionScope = addChildScope(functionScope, 512);
|
|
6682
6678
|
const params = parseFormalParametersOrFormalList(parser, context | 8388608, functionScope, 0, 1);
|
|
@@ -6703,13 +6699,13 @@
|
|
|
6703
6699
|
if (scope)
|
|
6704
6700
|
scope = addChildScope(scope, 256);
|
|
6705
6701
|
firstRestricted = parser.token;
|
|
6706
|
-
id = parseIdentifier(parser, context
|
|
6702
|
+
id = parseIdentifier(parser, context);
|
|
6707
6703
|
}
|
|
6708
6704
|
context =
|
|
6709
6705
|
((context | 32243712) ^ 32243712) |
|
|
6710
6706
|
67108864 |
|
|
6711
6707
|
generatorAndAsyncFlags |
|
|
6712
|
-
(isGenerator ? 0 :
|
|
6708
|
+
(isGenerator ? 0 : 268435456);
|
|
6713
6709
|
if (scope)
|
|
6714
6710
|
scope = addChildScope(scope, 512);
|
|
6715
6711
|
const params = parseFormalParametersOrFormalList(parser, context | 8388608, scope, inGroup, 1);
|
|
@@ -6747,14 +6743,14 @@
|
|
|
6747
6743
|
let left;
|
|
6748
6744
|
const { token, tokenPos, linePos, colPos, tokenValue } = parser;
|
|
6749
6745
|
if (token & 143360) {
|
|
6750
|
-
left = parsePrimaryExpression(parser, context, kind, 0, 1,
|
|
6746
|
+
left = parsePrimaryExpression(parser, context, kind, 0, 1, inGroup, 1, tokenPos, linePos, colPos);
|
|
6751
6747
|
if (parser.token === 1077936157) {
|
|
6752
6748
|
if (parser.assignable & 2)
|
|
6753
6749
|
report(parser, 24);
|
|
6754
6750
|
nextToken(parser, context | 32768);
|
|
6755
6751
|
if (scope)
|
|
6756
6752
|
addVarOrBlock(parser, context, scope, tokenValue, kind, origin);
|
|
6757
|
-
const right = parseExpression(parser, context, 1,
|
|
6753
|
+
const right = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
|
|
6758
6754
|
left = finishNode(parser, context, tokenPos, linePos, colPos, isPattern
|
|
6759
6755
|
? {
|
|
6760
6756
|
type: 'AssignmentPattern',
|
|
@@ -6893,7 +6889,7 @@
|
|
|
6893
6889
|
if (!isPattern)
|
|
6894
6890
|
reinterpretToPattern(parser, node);
|
|
6895
6891
|
const { tokenPos, linePos, colPos } = parser;
|
|
6896
|
-
const right = parseExpression(parser, context, 1,
|
|
6892
|
+
const right = parseExpression(parser, context, 1, inGroup, tokenPos, linePos, colPos);
|
|
6897
6893
|
parser.destructible =
|
|
6898
6894
|
((destructible | 64 | 8) ^
|
|
6899
6895
|
(8 | 64)) |
|
|
@@ -6919,7 +6915,7 @@
|
|
|
6919
6915
|
let { token, tokenValue, tokenPos, linePos, colPos } = parser;
|
|
6920
6916
|
if (token & (4096 | 143360)) {
|
|
6921
6917
|
parser.assignable = 1;
|
|
6922
|
-
argument = parsePrimaryExpression(parser, context, kind, 0, 1,
|
|
6918
|
+
argument = parsePrimaryExpression(parser, context, kind, 0, 1, inGroup, 1, tokenPos, linePos, colPos);
|
|
6923
6919
|
token = parser.token;
|
|
6924
6920
|
argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos);
|
|
6925
6921
|
if (parser.token !== 18 && parser.token !== closingToken) {
|
|
@@ -7014,7 +7010,7 @@
|
|
|
7014
7010
|
if (destructible & 16)
|
|
7015
7011
|
report(parser, 24);
|
|
7016
7012
|
reinterpretToPattern(parser, argument);
|
|
7017
|
-
const right = parseExpression(parser, context, 1,
|
|
7013
|
+
const right = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
|
|
7018
7014
|
argument = finishNode(parser, context, tokenPos, linePos, colPos, isPattern
|
|
7019
7015
|
? {
|
|
7020
7016
|
type: 'AssignmentPattern',
|
|
@@ -7086,7 +7082,7 @@
|
|
|
7086
7082
|
let value;
|
|
7087
7083
|
const t = parser.token;
|
|
7088
7084
|
if (parser.token & (143360 | 4096) || parser.token === 121) {
|
|
7089
|
-
key = parseIdentifier(parser, context
|
|
7085
|
+
key = parseIdentifier(parser, context);
|
|
7090
7086
|
if (parser.token === 18 || parser.token === 1074790415 || parser.token === 1077936157) {
|
|
7091
7087
|
state |= 4;
|
|
7092
7088
|
if (context & 1024 && (token & 537079808) === 537079808) {
|
|
@@ -7099,7 +7095,7 @@
|
|
|
7099
7095
|
addVarOrBlock(parser, context, scope, tokenValue, kind, origin);
|
|
7100
7096
|
if (consumeOpt(parser, context | 32768, 1077936157)) {
|
|
7101
7097
|
destructible |= 8;
|
|
7102
|
-
const right = parseExpression(parser, context, 1,
|
|
7098
|
+
const right = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
|
|
7103
7099
|
destructible |=
|
|
7104
7100
|
parser.destructible & 256
|
|
7105
7101
|
? 256
|
|
@@ -7108,7 +7104,7 @@
|
|
|
7108
7104
|
: 0;
|
|
7109
7105
|
value = finishNode(parser, context, tokenPos, linePos, colPos, {
|
|
7110
7106
|
type: 'AssignmentPattern',
|
|
7111
|
-
left: context &
|
|
7107
|
+
left: context & 536870912 ? Object.assign({}, key) : key,
|
|
7112
7108
|
right
|
|
7113
7109
|
});
|
|
7114
7110
|
}
|
|
@@ -7116,7 +7112,7 @@
|
|
|
7116
7112
|
destructible |=
|
|
7117
7113
|
(token === 209008 ? 128 : 0) |
|
|
7118
7114
|
(token === 121 ? 16 : 0);
|
|
7119
|
-
value = context &
|
|
7115
|
+
value = context & 536870912 ? Object.assign({}, key) : key;
|
|
7120
7116
|
}
|
|
7121
7117
|
}
|
|
7122
7118
|
else if (consumeOpt(parser, context | 32768, 21)) {
|
|
@@ -7127,7 +7123,7 @@
|
|
|
7127
7123
|
const tokenAfterColon = parser.token;
|
|
7128
7124
|
const valueAfterColon = parser.tokenValue;
|
|
7129
7125
|
destructible |= t === 121 ? 16 : 0;
|
|
7130
|
-
value = parsePrimaryExpression(parser, context, kind, 0, 1,
|
|
7126
|
+
value = parsePrimaryExpression(parser, context, kind, 0, 1, inGroup, 1, tokenPos, linePos, colPos);
|
|
7131
7127
|
const { token } = parser;
|
|
7132
7128
|
value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos);
|
|
7133
7129
|
if (parser.token === 18 || parser.token === 1074790415) {
|
|
@@ -7248,7 +7244,7 @@
|
|
|
7248
7244
|
report(parser, 129);
|
|
7249
7245
|
state |= 16;
|
|
7250
7246
|
}
|
|
7251
|
-
key = parseIdentifier(parser, context
|
|
7247
|
+
key = parseIdentifier(parser, context);
|
|
7252
7248
|
state |=
|
|
7253
7249
|
token === 12402
|
|
7254
7250
|
? 256
|
|
@@ -7277,7 +7273,7 @@
|
|
|
7277
7273
|
state |=
|
|
7278
7274
|
8 | 1 | (token === 209007 ? 16 : 0);
|
|
7279
7275
|
if (parser.token & 143360) {
|
|
7280
|
-
key = parseIdentifier(parser, context
|
|
7276
|
+
key = parseIdentifier(parser, context);
|
|
7281
7277
|
}
|
|
7282
7278
|
else if ((parser.token & 134217728) === 134217728) {
|
|
7283
7279
|
key = parseLiteral(parser, context);
|
|
@@ -7317,7 +7313,7 @@
|
|
|
7317
7313
|
if (tokenValue === '__proto__')
|
|
7318
7314
|
prototypeCount++;
|
|
7319
7315
|
if (parser.token & 143360) {
|
|
7320
|
-
value = parsePrimaryExpression(parser, context, kind, 0, 1,
|
|
7316
|
+
value = parsePrimaryExpression(parser, context, kind, 0, 1, inGroup, 1, tokenPos, linePos, colPos);
|
|
7321
7317
|
const { token, tokenValue: valueAfterColon } = parser;
|
|
7322
7318
|
value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos);
|
|
7323
7319
|
if (parser.token === 18 || parser.token === 1074790415) {
|
|
@@ -7418,7 +7414,7 @@
|
|
|
7418
7414
|
nextToken(parser, context | 32768);
|
|
7419
7415
|
const { tokenPos, linePos, colPos, tokenValue, token: tokenAfterColon } = parser;
|
|
7420
7416
|
if (parser.token & 143360) {
|
|
7421
|
-
value = parsePrimaryExpression(parser, context, kind, 0, 1,
|
|
7417
|
+
value = parsePrimaryExpression(parser, context, kind, 0, 1, inGroup, 1, tokenPos, linePos, colPos);
|
|
7422
7418
|
const { token } = parser;
|
|
7423
7419
|
value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos);
|
|
7424
7420
|
if ((parser.token & 4194304) === 4194304) {
|
|
@@ -7524,7 +7520,7 @@
|
|
|
7524
7520
|
state |= 8;
|
|
7525
7521
|
if (parser.token & 143360) {
|
|
7526
7522
|
const { token, line, index } = parser;
|
|
7527
|
-
key = parseIdentifier(parser, context
|
|
7523
|
+
key = parseIdentifier(parser, context);
|
|
7528
7524
|
state |= 1;
|
|
7529
7525
|
if (parser.token === 67174411) {
|
|
7530
7526
|
destructible |= 16;
|
|
@@ -7638,7 +7634,7 @@
|
|
|
7638
7634
|
if (parser.token === 1077936157) {
|
|
7639
7635
|
nextToken(parser, context | 32768);
|
|
7640
7636
|
isSimpleParameterList = 1;
|
|
7641
|
-
const right = parseExpression(parser, context, 1,
|
|
7637
|
+
const right = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
|
|
7642
7638
|
left = finishNode(parser, context, tokenPos, linePos, colPos, {
|
|
7643
7639
|
type: 'AssignmentPattern',
|
|
7644
7640
|
left: left,
|
|
@@ -7665,14 +7661,14 @@
|
|
|
7665
7661
|
}
|
|
7666
7662
|
function parseComputedPropertyName(parser, context, inGroup) {
|
|
7667
7663
|
nextToken(parser, context | 32768);
|
|
7668
|
-
const key = parseExpression(parser, (context | 134217728) ^ 134217728, 1,
|
|
7664
|
+
const key = parseExpression(parser, (context | 134217728) ^ 134217728, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
|
|
7669
7665
|
consume(parser, context, 20);
|
|
7670
7666
|
return key;
|
|
7671
7667
|
}
|
|
7672
7668
|
function parseParenthesizedExpression(parser, context, canAssign, kind, origin, start, line, column) {
|
|
7673
7669
|
parser.flags = (parser.flags | 128) ^ 128;
|
|
7674
7670
|
const { tokenPos: piStart, linePos: plStart, colPos: pcStart } = parser;
|
|
7675
|
-
nextToken(parser, context | 32768 |
|
|
7671
|
+
nextToken(parser, context | 32768 | 268435456);
|
|
7676
7672
|
const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0;
|
|
7677
7673
|
context = (context | 134217728) ^ 134217728;
|
|
7678
7674
|
if (consumeOpt(parser, context, 16)) {
|
|
@@ -7691,7 +7687,7 @@
|
|
|
7691
7687
|
if (token & (143360 | 4096)) {
|
|
7692
7688
|
if (scope)
|
|
7693
7689
|
addBlockName(parser, context, scope, parser.tokenValue, 1, 0);
|
|
7694
|
-
expr = parsePrimaryExpression(parser, context, kind, 0, 1,
|
|
7690
|
+
expr = parsePrimaryExpression(parser, context, kind, 0, 1, 1, 1, tokenPos, linePos, colPos);
|
|
7695
7691
|
if (parser.token === 16 || parser.token === 18) {
|
|
7696
7692
|
if (parser.assignable & 2) {
|
|
7697
7693
|
destructible |= 16;
|
|
@@ -7718,8 +7714,8 @@
|
|
|
7718
7714
|
else if ((token & 2097152) === 2097152) {
|
|
7719
7715
|
expr =
|
|
7720
7716
|
token === 2162700
|
|
7721
|
-
? parseObjectLiteralOrPattern(parser, context |
|
|
7722
|
-
: parseArrayExpressionOrPattern(parser, context |
|
|
7717
|
+
? parseObjectLiteralOrPattern(parser, context | 268435456, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos)
|
|
7718
|
+
: parseArrayExpressionOrPattern(parser, context | 268435456, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos);
|
|
7723
7719
|
destructible |= parser.destructible;
|
|
7724
7720
|
isSimpleParameterList = 1;
|
|
7725
7721
|
parser.assignable = 2;
|
|
@@ -7746,7 +7742,7 @@
|
|
|
7746
7742
|
}
|
|
7747
7743
|
else {
|
|
7748
7744
|
destructible |= 16;
|
|
7749
|
-
expr = parseExpression(parser, context, 1,
|
|
7745
|
+
expr = parseExpression(parser, context, 1, 1, tokenPos, linePos, colPos);
|
|
7750
7746
|
if (isSequence && (parser.token === 16 || parser.token === 18)) {
|
|
7751
7747
|
expressions.push(expr);
|
|
7752
7748
|
}
|
|
@@ -7758,7 +7754,7 @@
|
|
|
7758
7754
|
}
|
|
7759
7755
|
if (isSequence) {
|
|
7760
7756
|
while (consumeOpt(parser, context | 32768, 18)) {
|
|
7761
|
-
expressions.push(parseExpression(parser, context, 1,
|
|
7757
|
+
expressions.push(parseExpression(parser, context, 1, 1, parser.tokenPos, parser.linePos, parser.colPos));
|
|
7762
7758
|
}
|
|
7763
7759
|
parser.assignable = 2;
|
|
7764
7760
|
expr = finishNode(parser, context, iStart, lStart, cStart, {
|
|
@@ -7825,7 +7821,7 @@
|
|
|
7825
7821
|
}
|
|
7826
7822
|
function parseIdentifierOrArrow(parser, context, start, line, column) {
|
|
7827
7823
|
const { tokenValue } = parser;
|
|
7828
|
-
const expr = parseIdentifier(parser, context
|
|
7824
|
+
const expr = parseIdentifier(parser, context);
|
|
7829
7825
|
parser.assignable = 1;
|
|
7830
7826
|
if (parser.token === 10) {
|
|
7831
7827
|
let scope = void 0;
|
|
@@ -7863,7 +7859,7 @@
|
|
|
7863
7859
|
reportScopeError(scope.scopeError);
|
|
7864
7860
|
}
|
|
7865
7861
|
if (expression) {
|
|
7866
|
-
body = parseExpression(parser, context, 1, 0,
|
|
7862
|
+
body = parseExpression(parser, context & 16384 ? context | 33554432 : context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
|
|
7867
7863
|
}
|
|
7868
7864
|
else {
|
|
7869
7865
|
if (scope)
|
|
@@ -7944,7 +7940,7 @@
|
|
|
7944
7940
|
if (parser.token === 1077936157) {
|
|
7945
7941
|
nextToken(parser, context | 32768);
|
|
7946
7942
|
isSimpleParameterList = 1;
|
|
7947
|
-
const right = parseExpression(parser, context, 1,
|
|
7943
|
+
const right = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
|
|
7948
7944
|
left = finishNode(parser, context, tokenPos, linePos, colPos, {
|
|
7949
7945
|
type: 'AssignmentPattern',
|
|
7950
7946
|
left,
|
|
@@ -7970,7 +7966,7 @@
|
|
|
7970
7966
|
const { token } = parser;
|
|
7971
7967
|
if (token & 67108864) {
|
|
7972
7968
|
if (token === 67108877) {
|
|
7973
|
-
nextToken(parser, context |
|
|
7969
|
+
nextToken(parser, context | 268435456);
|
|
7974
7970
|
parser.assignable = 1;
|
|
7975
7971
|
const property = parsePropertyOrPrivatePropertyName(parser, context);
|
|
7976
7972
|
return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, {
|
|
@@ -8007,7 +8003,7 @@
|
|
|
8007
8003
|
return expr;
|
|
8008
8004
|
}
|
|
8009
8005
|
function parseNewExpression(parser, context, inGroup, start, line, column) {
|
|
8010
|
-
const id = parseIdentifier(parser, context | 32768
|
|
8006
|
+
const id = parseIdentifier(parser, context | 32768);
|
|
8011
8007
|
const { tokenPos, linePos, colPos } = parser;
|
|
8012
8008
|
if (consumeOpt(parser, context, 67108877)) {
|
|
8013
8009
|
if (context & 67108864 && parser.token === 143494) {
|
|
@@ -8020,7 +8016,7 @@
|
|
|
8020
8016
|
if ((parser.token & 16842752) === 16842752) {
|
|
8021
8017
|
report(parser, 63, KeywordDescTable[parser.token & 255]);
|
|
8022
8018
|
}
|
|
8023
|
-
const expr = parsePrimaryExpression(parser, context, 2, 1, 0,
|
|
8019
|
+
const expr = parsePrimaryExpression(parser, context, 2, 1, 0, inGroup, 1, tokenPos, linePos, colPos);
|
|
8024
8020
|
context = (context | 134217728) ^ 134217728;
|
|
8025
8021
|
if (parser.token === 67108991)
|
|
8026
8022
|
report(parser, 163);
|
|
@@ -8033,7 +8029,7 @@
|
|
|
8033
8029
|
});
|
|
8034
8030
|
}
|
|
8035
8031
|
function parseMetaProperty(parser, context, meta, start, line, column) {
|
|
8036
|
-
const property = parseIdentifier(parser, context
|
|
8032
|
+
const property = parseIdentifier(parser, context);
|
|
8037
8033
|
return finishNode(parser, context, start, line, column, {
|
|
8038
8034
|
type: 'MetaProperty',
|
|
8039
8035
|
meta,
|
|
@@ -8049,7 +8045,7 @@
|
|
|
8049
8045
|
if ((parser.token & 537079808) === 537079808) {
|
|
8050
8046
|
parser.flags |= 512;
|
|
8051
8047
|
}
|
|
8052
|
-
return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context
|
|
8048
|
+
return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context), 0, canAssign, 1, start, line, column);
|
|
8053
8049
|
}
|
|
8054
8050
|
function parseAsyncArrowOrCallExpression(parser, context, callee, canAssign, kind, origin, flags, start, line, column) {
|
|
8055
8051
|
nextToken(parser, context | 32768);
|
|
@@ -8079,7 +8075,7 @@
|
|
|
8079
8075
|
if (token & (143360 | 4096)) {
|
|
8080
8076
|
if (scope)
|
|
8081
8077
|
addBlockName(parser, context, scope, parser.tokenValue, kind, 0);
|
|
8082
|
-
expr = parsePrimaryExpression(parser, context, kind, 0, 1,
|
|
8078
|
+
expr = parsePrimaryExpression(parser, context, kind, 0, 1, 1, 1, tokenPos, linePos, colPos);
|
|
8083
8079
|
if (parser.token === 16 || parser.token === 18) {
|
|
8084
8080
|
if (parser.assignable & 2) {
|
|
8085
8081
|
destructible |= 16;
|
|
@@ -8131,11 +8127,11 @@
|
|
|
8131
8127
|
isSimpleParameterList = 1;
|
|
8132
8128
|
}
|
|
8133
8129
|
else {
|
|
8134
|
-
expr = parseExpression(parser, context, 1, 0,
|
|
8130
|
+
expr = parseExpression(parser, context, 1, 0, tokenPos, linePos, colPos);
|
|
8135
8131
|
destructible = parser.assignable;
|
|
8136
8132
|
params.push(expr);
|
|
8137
8133
|
while (consumeOpt(parser, context | 32768, 18)) {
|
|
8138
|
-
params.push(parseExpression(parser, context, 1, 0,
|
|
8134
|
+
params.push(parseExpression(parser, context, 1, 0, tokenPos, linePos, colPos));
|
|
8139
8135
|
}
|
|
8140
8136
|
destructible |= parser.assignable;
|
|
8141
8137
|
consume(parser, context, 16);
|
|
@@ -8230,7 +8226,7 @@
|
|
|
8230
8226
|
}
|
|
8231
8227
|
}
|
|
8232
8228
|
}
|
|
8233
|
-
id = parseIdentifier(parser, context
|
|
8229
|
+
id = parseIdentifier(parser, context);
|
|
8234
8230
|
}
|
|
8235
8231
|
else {
|
|
8236
8232
|
if ((flags & 1) === 0)
|
|
@@ -8277,7 +8273,7 @@
|
|
|
8277
8273
|
if ((parser.token & 537079808) === 537079808) {
|
|
8278
8274
|
report(parser, 116);
|
|
8279
8275
|
}
|
|
8280
|
-
id = parseIdentifier(parser, context
|
|
8276
|
+
id = parseIdentifier(parser, context);
|
|
8281
8277
|
}
|
|
8282
8278
|
let inheritedContext = context;
|
|
8283
8279
|
if (consumeOpt(parser, context | 32768, 20567)) {
|
|
@@ -8315,7 +8311,7 @@
|
|
|
8315
8311
|
}
|
|
8316
8312
|
function parseDecoratorList(parser, context, start, line, column) {
|
|
8317
8313
|
nextToken(parser, context | 32768);
|
|
8318
|
-
let expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0,
|
|
8314
|
+
let expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 1, start, line, column);
|
|
8319
8315
|
expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column);
|
|
8320
8316
|
return finishNode(parser, context, start, line, column, {
|
|
8321
8317
|
type: 'Decorator',
|
|
@@ -8358,7 +8354,7 @@
|
|
|
8358
8354
|
let key = null;
|
|
8359
8355
|
const { token, tokenPos, linePos, colPos } = parser;
|
|
8360
8356
|
if (token & (143360 | 36864)) {
|
|
8361
|
-
key = parseIdentifier(parser, context
|
|
8357
|
+
key = parseIdentifier(parser, context);
|
|
8362
8358
|
switch (token) {
|
|
8363
8359
|
case 36972:
|
|
8364
8360
|
if (!isStatic &&
|
|
@@ -8416,7 +8412,7 @@
|
|
|
8416
8412
|
return parseStaticBlock(parser, context, scope, tokenPos, linePos, colPos);
|
|
8417
8413
|
}
|
|
8418
8414
|
else if (token === 122) {
|
|
8419
|
-
key = parseIdentifier(parser, context
|
|
8415
|
+
key = parseIdentifier(parser, context);
|
|
8420
8416
|
if (parser.token !== 67174411)
|
|
8421
8417
|
report(parser, 28, KeywordDescTable[parser.token & 255]);
|
|
8422
8418
|
}
|
|
@@ -8425,7 +8421,7 @@
|
|
|
8425
8421
|
}
|
|
8426
8422
|
if (kind & (8 | 16 | 768)) {
|
|
8427
8423
|
if (parser.token & 143360) {
|
|
8428
|
-
key = parseIdentifier(parser, context
|
|
8424
|
+
key = parseIdentifier(parser, context);
|
|
8429
8425
|
}
|
|
8430
8426
|
else if ((parser.token & 134217728) === 134217728) {
|
|
8431
8427
|
key = parseLiteral(parser, context);
|
|
@@ -8435,7 +8431,7 @@
|
|
|
8435
8431
|
key = parseComputedPropertyName(parser, context, 0);
|
|
8436
8432
|
}
|
|
8437
8433
|
else if (parser.token === 122) {
|
|
8438
|
-
key = parseIdentifier(parser, context
|
|
8434
|
+
key = parseIdentifier(parser, context);
|
|
8439
8435
|
}
|
|
8440
8436
|
else if (context & 1 && parser.token === 131) {
|
|
8441
8437
|
kind |= 4096;
|
|
@@ -8523,7 +8519,14 @@
|
|
|
8523
8519
|
const { tokenPos, linePos, colPos } = parser;
|
|
8524
8520
|
if (parser.token === 537079928)
|
|
8525
8521
|
report(parser, 116);
|
|
8526
|
-
|
|
8522
|
+
const modifierFlags = (state & 64) === 0
|
|
8523
|
+
? 31981568
|
|
8524
|
+
: 14680064;
|
|
8525
|
+
context =
|
|
8526
|
+
((context | modifierFlags) ^ modifierFlags) |
|
|
8527
|
+
((state & 88) << 18) |
|
|
8528
|
+
100925440;
|
|
8529
|
+
value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 1, tokenPos, linePos, colPos);
|
|
8527
8530
|
if ((parser.token & 1073741824) !== 1073741824 ||
|
|
8528
8531
|
(parser.token & 4194304) === 4194304) {
|
|
8529
8532
|
value = parseMemberOrUpdateExpression(parser, context | 16384, value, 0, 0, tokenPos, linePos, colPos);
|
|
@@ -8731,7 +8734,7 @@
|
|
|
8731
8734
|
function parseJSXSpreadAttribute(parser, context, start, line, column) {
|
|
8732
8735
|
nextToken(parser, context);
|
|
8733
8736
|
consume(parser, context, 14);
|
|
8734
|
-
const expression = parseExpression(parser, context, 1, 0,
|
|
8737
|
+
const expression = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
|
|
8735
8738
|
consume(parser, context, 1074790415);
|
|
8736
8739
|
return finishNode(parser, context, start, line, column, {
|
|
8737
8740
|
type: 'JSXSpreadAttribute',
|
|
@@ -8791,7 +8794,7 @@
|
|
|
8791
8794
|
expression = parseJSXEmptyExpression(parser, context, parser.startPos, parser.startLine, parser.startColumn);
|
|
8792
8795
|
}
|
|
8793
8796
|
else {
|
|
8794
|
-
expression = parseExpression(parser, context, 1, 0,
|
|
8797
|
+
expression = parseExpression(parser, context, 1, 0, tokenPos, linePos, colPos);
|
|
8795
8798
|
}
|
|
8796
8799
|
if (inJSXChild) {
|
|
8797
8800
|
consume(parser, context, 1074790415);
|
|
@@ -8806,7 +8809,7 @@
|
|
|
8806
8809
|
}
|
|
8807
8810
|
function parseJSXSpreadChild(parser, context, start, line, column) {
|
|
8808
8811
|
consume(parser, context, 14);
|
|
8809
|
-
const expression = parseExpression(parser, context, 1, 0,
|
|
8812
|
+
const expression = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
|
|
8810
8813
|
consume(parser, context, 1074790415);
|
|
8811
8814
|
return finishNode(parser, context, start, line, column, {
|
|
8812
8815
|
type: 'JSXSpreadChild',
|
|
@@ -8834,7 +8837,7 @@
|
|
|
8834
8837
|
__proto__: null
|
|
8835
8838
|
});
|
|
8836
8839
|
|
|
8837
|
-
var version$1 = "4.4.
|
|
8840
|
+
var version$1 = "4.4.4";
|
|
8838
8841
|
|
|
8839
8842
|
const version = version$1;
|
|
8840
8843
|
function parseScript(source, options) {
|