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.
@@ -1588,7 +1588,7 @@
1588
1588
  return 122;
1589
1589
  }
1590
1590
  if ((token & 20480) === 20480) {
1591
- if (context & 1073741824 && (context & 8192) === 0) {
1591
+ if (context & 268435456 && (context & 8192) === 0) {
1592
1592
  return token;
1593
1593
  }
1594
1594
  else {
@@ -1597,12 +1597,12 @@
1597
1597
  }
1598
1598
  return 143483;
1599
1599
  }
1600
- if (context & 1073741824 &&
1600
+ if (context & 268435456 &&
1601
1601
  (context & 8192) === 0 &&
1602
1602
  (token & 20480) === 20480)
1603
1603
  return token;
1604
1604
  if (token === 241773) {
1605
- return context & 1073741824
1605
+ return context & 268435456
1606
1606
  ? 143483
1607
1607
  : context & 2097152
1608
1608
  ? 121
@@ -4421,11 +4421,10 @@
4421
4421
  return parser.token;
4422
4422
  }
4423
4423
 
4424
- function matchOrInsertSemicolon(parser, context, specDeviation) {
4424
+ function matchOrInsertSemicolon(parser, context) {
4425
4425
  var _a;
4426
4426
  if ((parser.flags & 1) === 0 &&
4427
- (parser.token & 1048576) !== 1048576 &&
4428
- !specDeviation) {
4427
+ (parser.token & 1048576) !== 1048576) {
4429
4428
  report(parser, 28, KeywordDescTable[parser.token & 255]);
4430
4429
  }
4431
4430
  if (!consumeOpt(parser, context, 1074790417)) {
@@ -4821,7 +4820,7 @@
4821
4820
  if (options.ranges)
4822
4821
  context |= 2;
4823
4822
  if (options.uniqueKeyInPattern)
4824
- context |= -2147483648;
4823
+ context |= 536870912;
4825
4824
  if (options.lexical)
4826
4825
  context |= 64;
4827
4826
  if (options.webcompat)
@@ -4838,10 +4837,6 @@
4838
4837
  context |= 1024;
4839
4838
  if (options.jsx)
4840
4839
  context |= 16;
4841
- if (options.identifierPattern)
4842
- context |= 268435456;
4843
- if (options.specDeviation)
4844
- context |= 536870912;
4845
4840
  if (options.source)
4846
4841
  sourceFile = options.source;
4847
4842
  if (options.onComment != null) {
@@ -4893,7 +4888,7 @@
4893
4888
  return node;
4894
4889
  }
4895
4890
  function parseStatementList(parser, context, scope) {
4896
- nextToken(parser, context | 32768 | 1073741824);
4891
+ nextToken(parser, context | 32768 | 268435456);
4897
4892
  var statements = [];
4898
4893
  while (parser.token === 134283267) {
4899
4894
  var index = parser.index, tokenPos = parser.tokenPos, tokenValue = parser.tokenValue, linePos = parser.linePos, colPos = parser.colPos, token = parser.token;
@@ -5026,14 +5021,14 @@
5026
5021
  var expr;
5027
5022
  switch (token) {
5028
5023
  case 241739:
5029
- expr = parseIdentifier(parser, context, 0);
5024
+ expr = parseIdentifier(parser, context);
5030
5025
  if (context & 1024)
5031
5026
  report(parser, 83);
5032
5027
  if (parser.token === 69271571)
5033
5028
  report(parser, 82);
5034
5029
  break;
5035
5030
  default:
5036
- expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);
5031
+ expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);
5037
5032
  }
5038
5033
  if (token & 143360 && parser.token === 21) {
5039
5034
  return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, allowFuncDecl, start, line, column);
@@ -5095,7 +5090,7 @@
5095
5090
  }
5096
5091
  function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) {
5097
5092
  var token = parser.token, tokenValue = parser.tokenValue;
5098
- var expr = parseIdentifier(parser, context, 0);
5093
+ var expr = parseIdentifier(parser, context);
5099
5094
  if (parser.token === 21) {
5100
5095
  return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, 1, start, line, column);
5101
5096
  }
@@ -5263,7 +5258,7 @@
5263
5258
  var label = null;
5264
5259
  if ((parser.flags & 1) === 0 && parser.token & 143360) {
5265
5260
  var tokenValue = parser.tokenValue;
5266
- label = parseIdentifier(parser, context | 32768, 0);
5261
+ label = parseIdentifier(parser, context | 32768);
5267
5262
  if (!isValidLabel(parser, labels, tokenValue, 1))
5268
5263
  report(parser, 135, tokenValue);
5269
5264
  }
@@ -5278,7 +5273,7 @@
5278
5273
  var label = null;
5279
5274
  if ((parser.flags & 1) === 0 && parser.token & 143360) {
5280
5275
  var tokenValue = parser.tokenValue;
5281
- label = parseIdentifier(parser, context | 32768, 0);
5276
+ label = parseIdentifier(parser, context | 32768);
5282
5277
  if (!isValidLabel(parser, labels, tokenValue, 0))
5283
5278
  report(parser, 135, tokenValue);
5284
5279
  }
@@ -5389,7 +5384,7 @@
5389
5384
  }
5390
5385
  function parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column) {
5391
5386
  var token = parser.token, tokenValue = parser.tokenValue;
5392
- var expr = parseIdentifier(parser, context, 0);
5387
+ var expr = parseIdentifier(parser, context);
5393
5388
  if (parser.token & (143360 | 2097152)) {
5394
5389
  var declarations = parseVariableDeclarationList(parser, context, scope, 8, 0);
5395
5390
  matchOrInsertSemicolon(parser, context | 32768);
@@ -5459,7 +5454,7 @@
5459
5454
  var id = parseBindingPattern(parser, context, scope, kind, origin, tokenPos, linePos, colPos);
5460
5455
  if (parser.token === 1077936157) {
5461
5456
  nextToken(parser, context | 32768);
5462
- init = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);
5457
+ init = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
5463
5458
  if (origin & 32 || (token & 2097152) === 0) {
5464
5459
  if (parser.token === 274549 ||
5465
5460
  (parser.token === 8738868 &&
@@ -5494,7 +5489,7 @@
5494
5489
  var token = parser.token, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos;
5495
5490
  if (isVarDecl) {
5496
5491
  if (token === 241739) {
5497
- init = parseIdentifier(parser, context, 0);
5492
+ init = parseIdentifier(parser, context);
5498
5493
  if (parser.token & (143360 | 2097152)) {
5499
5494
  if (parser.token === 8738868) {
5500
5495
  if (context & 1024)
@@ -5562,7 +5557,7 @@
5562
5557
  report(parser, 78, forAwait ? 'await' : 'of');
5563
5558
  reinterpretToPattern(parser, init);
5564
5559
  nextToken(parser, context | 32768);
5565
- right = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);
5560
+ right = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
5566
5561
  consume(parser, context | 32768, 16);
5567
5562
  var body_1 = parseIterationStatementBody(parser, context, scope, labels);
5568
5563
  return finishNode(parser, context, start, line, column, {
@@ -5622,7 +5617,7 @@
5622
5617
  report(parser, 116);
5623
5618
  if (scope)
5624
5619
  addBlockName(parser, context, scope, parser.tokenValue, 8, 0);
5625
- return parseIdentifier(parser, context, 0);
5620
+ return parseIdentifier(parser, context);
5626
5621
  }
5627
5622
  function parseImportDeclaration(parser, context, scope) {
5628
5623
  var start = parser.tokenPos;
@@ -5695,7 +5690,9 @@
5695
5690
  });
5696
5691
  }
5697
5692
  function parseModuleSpecifier(parser, context) {
5698
- consumeOpt(parser, context, 12404);
5693
+ if (!consumeOpt(parser, context, 12404)) {
5694
+ report(parser, 28, KeywordDescTable[parser.token & 255]);
5695
+ }
5699
5696
  if (parser.token !== 134283267)
5700
5697
  report(parser, 103, 'Import');
5701
5698
  return parseLiteral(parser, context);
@@ -5704,7 +5701,7 @@
5704
5701
  nextToken(parser, context);
5705
5702
  while (parser.token & 143360) {
5706
5703
  var token = parser.token, tokenValue = parser.tokenValue, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos;
5707
- var imported = parseIdentifier(parser, context, 0);
5704
+ var imported = parseIdentifier(parser, context);
5708
5705
  var local = void 0;
5709
5706
  if (consumeOpt(parser, context, 77934)) {
5710
5707
  if ((parser.token & 134217728) === 134217728 || parser.token === 18) {
@@ -5714,7 +5711,7 @@
5714
5711
  validateBindingIdentifier(parser, context, 16, parser.token, 0);
5715
5712
  }
5716
5713
  tokenValue = parser.tokenValue;
5717
- local = parseIdentifier(parser, context, 0);
5714
+ local = parseIdentifier(parser, context);
5718
5715
  }
5719
5716
  else {
5720
5717
  validateBindingIdentifier(parser, context, 16, token, 0);
@@ -5774,7 +5771,7 @@
5774
5771
  break;
5775
5772
  case 209007:
5776
5773
  var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos;
5777
- declaration = parseIdentifier(parser, context, 0);
5774
+ declaration = parseIdentifier(parser, context);
5778
5775
  var flags = parser.flags;
5779
5776
  if ((flags & 1) === 0) {
5780
5777
  if (parser.token === 86106) {
@@ -5789,14 +5786,14 @@
5789
5786
  else if (parser.token & 143360) {
5790
5787
  if (scope)
5791
5788
  scope = createArrowHeadParsingScope(parser, context, parser.tokenValue);
5792
- declaration = parseIdentifier(parser, context, 0);
5789
+ declaration = parseIdentifier(parser, context);
5793
5790
  declaration = parseArrowFunctionExpression(parser, context, scope, [declaration], 1, tokenPos, linePos, colPos);
5794
5791
  }
5795
5792
  }
5796
5793
  }
5797
5794
  break;
5798
5795
  default:
5799
- declaration = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);
5796
+ declaration = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
5800
5797
  matchOrInsertSemicolon(parser, context | 32768);
5801
5798
  }
5802
5799
  if (scope)
@@ -5814,7 +5811,7 @@
5814
5811
  if (isNamedDeclaration) {
5815
5812
  if (scope)
5816
5813
  declareUnboundVariable(parser, parser.tokenValue);
5817
- exported = parseIdentifier(parser, context, 0);
5814
+ exported = parseIdentifier(parser, context);
5818
5815
  }
5819
5816
  consume(parser, context, 12404);
5820
5817
  if (parser.token !== 134283267)
@@ -5833,7 +5830,7 @@
5833
5830
  var tmpExportedBindings = [];
5834
5831
  while (parser.token & 143360) {
5835
5832
  var tokenPos_1 = parser.tokenPos, tokenValue = parser.tokenValue, linePos_1 = parser.linePos, colPos_1 = parser.colPos;
5836
- var local = parseIdentifier(parser, context, 0);
5833
+ var local = parseIdentifier(parser, context);
5837
5834
  var exported = void 0;
5838
5835
  if (parser.token === 77934) {
5839
5836
  nextToken(parser, context);
@@ -5844,7 +5841,7 @@
5844
5841
  tmpExportedNames.push(parser.tokenValue);
5845
5842
  tmpExportedBindings.push(tokenValue);
5846
5843
  }
5847
- exported = parseIdentifier(parser, context, 0);
5844
+ exported = parseIdentifier(parser, context);
5848
5845
  }
5849
5846
  else {
5850
5847
  if (scope) {
@@ -5918,15 +5915,15 @@
5918
5915
  source: source
5919
5916
  });
5920
5917
  }
5921
- function parseExpression(parser, context, canAssign, isPattern, inGroup, start, line, column) {
5922
- var expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, isPattern, inGroup, 1, start, line, column);
5918
+ function parseExpression(parser, context, canAssign, inGroup, start, line, column) {
5919
+ var expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, inGroup, 1, start, line, column);
5923
5920
  expr = parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column);
5924
5921
  return parseAssignmentExpression(parser, context, inGroup, 0, start, line, column, expr);
5925
5922
  }
5926
5923
  function parseSequenceExpression(parser, context, inGroup, start, line, column, expr) {
5927
5924
  var expressions = [expr];
5928
5925
  while (consumeOpt(parser, context | 32768, 18)) {
5929
- expressions.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos));
5926
+ expressions.push(parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos));
5930
5927
  }
5931
5928
  return finishNode(parser, context, start, line, column, {
5932
5929
  type: 'SequenceExpression',
@@ -5934,7 +5931,7 @@
5934
5931
  });
5935
5932
  }
5936
5933
  function parseExpressions(parser, context, inGroup, canAssign, start, line, column) {
5937
- var expr = parseExpression(parser, context, canAssign, 0, inGroup, start, line, column);
5934
+ var expr = parseExpression(parser, context, canAssign, inGroup, start, line, column);
5938
5935
  return parser.token === 18
5939
5936
  ? parseSequenceExpression(parser, context, inGroup, start, line, column, expr)
5940
5937
  : expr;
@@ -5949,7 +5946,7 @@
5949
5946
  reinterpretToPattern(parser, left);
5950
5947
  }
5951
5948
  nextToken(parser, context | 32768);
5952
- var right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
5949
+ var right = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
5953
5950
  parser.assignable = 2;
5954
5951
  return finishNode(parser, context, start, line, column, isPattern
5955
5952
  ? {
@@ -5975,7 +5972,7 @@
5975
5972
  function parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, start, line, column, left) {
5976
5973
  var token = parser.token;
5977
5974
  nextToken(parser, context | 32768);
5978
- var right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
5975
+ var right = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
5979
5976
  left = finishNode(parser, context, start, line, column, isPattern
5980
5977
  ? {
5981
5978
  type: 'AssignmentPattern',
@@ -5992,10 +5989,10 @@
5992
5989
  return left;
5993
5990
  }
5994
5991
  function parseConditionalExpression(parser, context, test, start, line, column) {
5995
- var consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);
5992
+ var consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
5996
5993
  consume(parser, context | 32768, 21);
5997
5994
  parser.assignable = 1;
5998
- var alternate = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);
5995
+ var alternate = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
5999
5996
  parser.assignable = 2;
6000
5997
  return finishNode(parser, context, start, line, column, {
6001
5998
  type: 'ConditionalExpression',
@@ -6053,9 +6050,9 @@
6053
6050
  prefix: true
6054
6051
  });
6055
6052
  }
6056
- function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column) {
6053
+ function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, inNew, start, line, column) {
6057
6054
  var token = parser.token;
6058
- var expr = parseIdentifier(parser, context, isPattern);
6055
+ var expr = parseIdentifier(parser, context);
6059
6056
  var flags = parser.flags;
6060
6057
  if ((flags & 1) === 0) {
6061
6058
  if (parser.token === 86106) {
@@ -6095,7 +6092,7 @@
6095
6092
  if ((parser.flags & 1) === 0) {
6096
6093
  delegate = consumeOpt(parser, context | 32768, 8457014);
6097
6094
  if (parser.token & (12288 | 65536) || delegate) {
6098
- argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);
6095
+ argument = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
6099
6096
  }
6100
6097
  }
6101
6098
  parser.assignable = 2;
@@ -6198,8 +6195,9 @@
6198
6195
  case 67174411: {
6199
6196
  if ((context & 524288) === 0)
6200
6197
  report(parser, 26);
6201
- if (context & 16384)
6198
+ if (context & 16384 && !(context & 33554432)) {
6202
6199
  report(parser, 27);
6200
+ }
6203
6201
  parser.assignable = 2;
6204
6202
  break;
6205
6203
  }
@@ -6207,8 +6205,9 @@
6207
6205
  case 67108877: {
6208
6206
  if ((context & 262144) === 0)
6209
6207
  report(parser, 27);
6210
- if (context & 16384)
6208
+ if (context & 16384 && !(context & 33554432)) {
6211
6209
  report(parser, 27);
6210
+ }
6212
6211
  parser.assignable = 1;
6213
6212
  break;
6214
6213
  }
@@ -6218,7 +6217,7 @@
6218
6217
  return finishNode(parser, context, start, line, column, { type: 'Super' });
6219
6218
  }
6220
6219
  function parseLeftHandSideExpression(parser, context, canAssign, inGroup, isLHS, start, line, column) {
6221
- var expression = parsePrimaryExpression(parser, context, 2, 0, canAssign, 0, inGroup, isLHS, start, line, column);
6220
+ var expression = parsePrimaryExpression(parser, context, 2, 0, canAssign, inGroup, isLHS, start, line, column);
6222
6221
  return parseMemberOrUpdateExpression(parser, context, expression, inGroup, 0, start, line, column);
6223
6222
  }
6224
6223
  function parseUpdateExpression(parser, context, expr, start, line, column) {
@@ -6242,7 +6241,10 @@
6242
6241
  context = (context | 134217728) ^ 134217728;
6243
6242
  switch (parser.token) {
6244
6243
  case 67108877: {
6245
- nextToken(parser, (context | 1073741824 | 8192) ^ 8192);
6244
+ nextToken(parser, (context | 268435456 | 8192) ^ 8192);
6245
+ if (context & 16384 && parser.token === 131 && parser.tokenValue === 'super') {
6246
+ report(parser, 27);
6247
+ }
6246
6248
  parser.assignable = 1;
6247
6249
  var property = parsePropertyOrPrivatePropertyName(parser, context | 65536);
6248
6250
  expr = finishNode(parser, context, start, line, column, {
@@ -6298,7 +6300,7 @@
6298
6300
  break;
6299
6301
  }
6300
6302
  case 67108991: {
6301
- nextToken(parser, (context | 1073741824 | 8192) ^ 8192);
6303
+ nextToken(parser, (context | 268435456 | 8192) ^ 8192);
6302
6304
  parser.flags |= 2048;
6303
6305
  parser.assignable = 2;
6304
6306
  expr = parseOptionalChain(parser, context, expr, start, line, column);
@@ -6364,7 +6366,7 @@
6364
6366
  else {
6365
6367
  if ((parser.token & (143360 | 4096)) === 0)
6366
6368
  report(parser, 155);
6367
- var property = parseIdentifier(parser, context, 0);
6369
+ var property = parseIdentifier(parser, context);
6368
6370
  parser.assignable = 2;
6369
6371
  node = finishNode(parser, context, start, line, column, {
6370
6372
  type: 'MemberExpression',
@@ -6385,7 +6387,7 @@
6385
6387
  }
6386
6388
  return context & 1 && parser.token === 131
6387
6389
  ? parsePrivateIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos)
6388
- : parseIdentifier(parser, context, 0);
6390
+ : parseIdentifier(parser, context);
6389
6391
  }
6390
6392
  function parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column) {
6391
6393
  if (inNew)
@@ -6406,7 +6408,7 @@
6406
6408
  prefix: true
6407
6409
  });
6408
6410
  }
6409
- function parsePrimaryExpression(parser, context, kind, inNew, canAssign, isPattern, inGroup, isLHS, start, line, column) {
6411
+ function parsePrimaryExpression(parser, context, kind, inNew, canAssign, inGroup, isLHS, start, line, column) {
6410
6412
  if ((parser.token & 143360) === 143360) {
6411
6413
  switch (parser.token) {
6412
6414
  case 209008:
@@ -6414,10 +6416,10 @@
6414
6416
  case 241773:
6415
6417
  return parseYieldExpression(parser, context, inGroup, canAssign, start, line, column);
6416
6418
  case 209007:
6417
- return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column);
6419
+ return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, inNew, start, line, column);
6418
6420
  }
6419
6421
  var token = parser.token, tokenValue = parser.tokenValue;
6420
- var expr = parseIdentifier(parser, context | 65536, isPattern);
6422
+ var expr = parseIdentifier(parser, context | 65536);
6421
6423
  if (parser.token === 10) {
6422
6424
  if (!isLHS)
6423
6425
  report(parser, 0);
@@ -6496,7 +6498,7 @@
6496
6498
  }
6497
6499
  }
6498
6500
  function parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column) {
6499
- var expr = parseIdentifier(parser, context, 0);
6501
+ var expr = parseIdentifier(parser, context);
6500
6502
  if (parser.token === 67108877) {
6501
6503
  return parseImportMetaExpression(parser, context, expr, start, line, column);
6502
6504
  }
@@ -6516,14 +6518,14 @@
6516
6518
  return finishNode(parser, context, start, line, column, {
6517
6519
  type: 'MetaProperty',
6518
6520
  meta: meta,
6519
- property: parseIdentifier(parser, context, 0)
6521
+ property: parseIdentifier(parser, context)
6520
6522
  });
6521
6523
  }
6522
6524
  function parseImportExpression(parser, context, inGroup, start, line, column) {
6523
6525
  consume(parser, context | 32768, 67174411);
6524
6526
  if (parser.token === 14)
6525
6527
  report(parser, 139);
6526
- var source = parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
6528
+ var source = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
6527
6529
  consume(parser, context, 16);
6528
6530
  return finishNode(parser, context, start, line, column, {
6529
6531
  type: 'ImportExpression',
@@ -6612,7 +6614,7 @@
6612
6614
  function parseSpreadElement(parser, context, start, line, column) {
6613
6615
  context = (context | 134217728) ^ 134217728;
6614
6616
  consume(parser, context | 32768, 14);
6615
- var argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);
6617
+ var argument = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
6616
6618
  parser.assignable = 1;
6617
6619
  return finishNode(parser, context, start, line, column, {
6618
6620
  type: 'SpreadElement',
@@ -6631,7 +6633,7 @@
6631
6633
  args.push(parseSpreadElement(parser, context, parser.tokenPos, parser.linePos, parser.colPos));
6632
6634
  }
6633
6635
  else {
6634
- args.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos));
6636
+ args.push(parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos));
6635
6637
  }
6636
6638
  if (parser.token !== 18)
6637
6639
  break;
@@ -6642,19 +6644,13 @@
6642
6644
  consume(parser, context, 16);
6643
6645
  return args;
6644
6646
  }
6645
- function parseIdentifier(parser, context, isPattern) {
6647
+ function parseIdentifier(parser, context) {
6646
6648
  var tokenValue = parser.tokenValue, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos;
6647
6649
  nextToken(parser, context);
6648
- return finishNode(parser, context, tokenPos, linePos, colPos, context & 268435456
6649
- ? {
6650
- type: 'Identifier',
6651
- name: tokenValue,
6652
- pattern: isPattern === 1
6653
- }
6654
- : {
6655
- type: 'Identifier',
6656
- name: tokenValue
6657
- });
6650
+ return finishNode(parser, context, tokenPos, linePos, colPos, {
6651
+ type: 'Identifier',
6652
+ name: tokenValue
6653
+ });
6658
6654
  }
6659
6655
  function parseLiteral(parser, context) {
6660
6656
  var tokenValue = parser.tokenValue, tokenRaw = parser.tokenRaw, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos;
@@ -6729,7 +6725,7 @@
6729
6725
  }
6730
6726
  firstRestricted = parser.token;
6731
6727
  if (parser.token & 143360) {
6732
- id = parseIdentifier(parser, context, 0);
6728
+ id = parseIdentifier(parser, context);
6733
6729
  }
6734
6730
  else {
6735
6731
  report(parser, 28, KeywordDescTable[parser.token & 255]);
@@ -6739,7 +6735,7 @@
6739
6735
  ((context | 32243712) ^ 32243712) |
6740
6736
  67108864 |
6741
6737
  ((isAsync * 2 + isGenerator) << 21) |
6742
- (isGenerator ? 0 : 1073741824);
6738
+ (isGenerator ? 0 : 268435456);
6743
6739
  if (scope)
6744
6740
  functionScope = addChildScope(functionScope, 512);
6745
6741
  var params = parseFormalParametersOrFormalList(parser, context | 8388608, functionScope, 0, 1);
@@ -6766,13 +6762,13 @@
6766
6762
  if (scope)
6767
6763
  scope = addChildScope(scope, 256);
6768
6764
  firstRestricted = parser.token;
6769
- id = parseIdentifier(parser, context, 0);
6765
+ id = parseIdentifier(parser, context);
6770
6766
  }
6771
6767
  context =
6772
6768
  ((context | 32243712) ^ 32243712) |
6773
6769
  67108864 |
6774
6770
  generatorAndAsyncFlags |
6775
- (isGenerator ? 0 : 1073741824);
6771
+ (isGenerator ? 0 : 268435456);
6776
6772
  if (scope)
6777
6773
  scope = addChildScope(scope, 512);
6778
6774
  var params = parseFormalParametersOrFormalList(parser, context | 8388608, scope, inGroup, 1);
@@ -6810,14 +6806,14 @@
6810
6806
  var left = void 0;
6811
6807
  var token = parser.token, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos, tokenValue = parser.tokenValue;
6812
6808
  if (token & 143360) {
6813
- left = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos);
6809
+ left = parsePrimaryExpression(parser, context, kind, 0, 1, inGroup, 1, tokenPos, linePos, colPos);
6814
6810
  if (parser.token === 1077936157) {
6815
6811
  if (parser.assignable & 2)
6816
6812
  report(parser, 24);
6817
6813
  nextToken(parser, context | 32768);
6818
6814
  if (scope)
6819
6815
  addVarOrBlock(parser, context, scope, tokenValue, kind, origin);
6820
- var right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
6816
+ var right = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
6821
6817
  left = finishNode(parser, context, tokenPos, linePos, colPos, isPattern
6822
6818
  ? {
6823
6819
  type: 'AssignmentPattern',
@@ -6956,7 +6952,7 @@
6956
6952
  if (!isPattern)
6957
6953
  reinterpretToPattern(parser, node);
6958
6954
  var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos;
6959
- var right = parseExpression(parser, context, 1, 1, inGroup, tokenPos, linePos, colPos);
6955
+ var right = parseExpression(parser, context, 1, inGroup, tokenPos, linePos, colPos);
6960
6956
  parser.destructible =
6961
6957
  ((destructible | 64 | 8) ^
6962
6958
  (8 | 64)) |
@@ -6982,7 +6978,7 @@
6982
6978
  var token = parser.token, tokenValue = parser.tokenValue, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos;
6983
6979
  if (token & (4096 | 143360)) {
6984
6980
  parser.assignable = 1;
6985
- argument = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos);
6981
+ argument = parsePrimaryExpression(parser, context, kind, 0, 1, inGroup, 1, tokenPos, linePos, colPos);
6986
6982
  token = parser.token;
6987
6983
  argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos);
6988
6984
  if (parser.token !== 18 && parser.token !== closingToken) {
@@ -7077,7 +7073,7 @@
7077
7073
  if (destructible & 16)
7078
7074
  report(parser, 24);
7079
7075
  reinterpretToPattern(parser, argument);
7080
- var right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
7076
+ var right = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
7081
7077
  argument = finishNode(parser, context, tokenPos, linePos, colPos, isPattern
7082
7078
  ? {
7083
7079
  type: 'AssignmentPattern',
@@ -7149,7 +7145,7 @@
7149
7145
  var value = void 0;
7150
7146
  var t = parser.token;
7151
7147
  if (parser.token & (143360 | 4096) || parser.token === 121) {
7152
- key = parseIdentifier(parser, context, 0);
7148
+ key = parseIdentifier(parser, context);
7153
7149
  if (parser.token === 18 || parser.token === 1074790415 || parser.token === 1077936157) {
7154
7150
  state |= 4;
7155
7151
  if (context & 1024 && (token & 537079808) === 537079808) {
@@ -7162,7 +7158,7 @@
7162
7158
  addVarOrBlock(parser, context, scope, tokenValue, kind, origin);
7163
7159
  if (consumeOpt(parser, context | 32768, 1077936157)) {
7164
7160
  destructible |= 8;
7165
- var right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
7161
+ var right = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
7166
7162
  destructible |=
7167
7163
  parser.destructible & 256
7168
7164
  ? 256
@@ -7171,7 +7167,7 @@
7171
7167
  : 0;
7172
7168
  value = finishNode(parser, context, tokenPos, linePos, colPos, {
7173
7169
  type: 'AssignmentPattern',
7174
- left: context & -2147483648 ? Object.assign({}, key) : key,
7170
+ left: context & 536870912 ? Object.assign({}, key) : key,
7175
7171
  right: right
7176
7172
  });
7177
7173
  }
@@ -7179,7 +7175,7 @@
7179
7175
  destructible |=
7180
7176
  (token === 209008 ? 128 : 0) |
7181
7177
  (token === 121 ? 16 : 0);
7182
- value = context & -2147483648 ? Object.assign({}, key) : key;
7178
+ value = context & 536870912 ? Object.assign({}, key) : key;
7183
7179
  }
7184
7180
  }
7185
7181
  else if (consumeOpt(parser, context | 32768, 21)) {
@@ -7190,7 +7186,7 @@
7190
7186
  var tokenAfterColon = parser.token;
7191
7187
  var valueAfterColon = parser.tokenValue;
7192
7188
  destructible |= t === 121 ? 16 : 0;
7193
- value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos_6, linePos_5, colPos_5);
7189
+ value = parsePrimaryExpression(parser, context, kind, 0, 1, inGroup, 1, tokenPos_6, linePos_5, colPos_5);
7194
7190
  var token_2 = parser.token;
7195
7191
  value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos_6, linePos_5, colPos_5);
7196
7192
  if (parser.token === 18 || parser.token === 1074790415) {
@@ -7311,7 +7307,7 @@
7311
7307
  report(parser, 129);
7312
7308
  state |= 16;
7313
7309
  }
7314
- key = parseIdentifier(parser, context, 0);
7310
+ key = parseIdentifier(parser, context);
7315
7311
  state |=
7316
7312
  token === 12402
7317
7313
  ? 256
@@ -7340,7 +7336,7 @@
7340
7336
  state |=
7341
7337
  8 | 1 | (token === 209007 ? 16 : 0);
7342
7338
  if (parser.token & 143360) {
7343
- key = parseIdentifier(parser, context, 0);
7339
+ key = parseIdentifier(parser, context);
7344
7340
  }
7345
7341
  else if ((parser.token & 134217728) === 134217728) {
7346
7342
  key = parseLiteral(parser, context);
@@ -7380,7 +7376,7 @@
7380
7376
  if (tokenValue === '__proto__')
7381
7377
  prototypeCount++;
7382
7378
  if (parser.token & 143360) {
7383
- value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos_7, linePos_6, colPos_6);
7379
+ value = parsePrimaryExpression(parser, context, kind, 0, 1, inGroup, 1, tokenPos_7, linePos_6, colPos_6);
7384
7380
  var token_3 = parser.token, valueAfterColon = parser.tokenValue;
7385
7381
  value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos_7, linePos_6, colPos_6);
7386
7382
  if (parser.token === 18 || parser.token === 1074790415) {
@@ -7481,7 +7477,7 @@
7481
7477
  nextToken(parser, context | 32768);
7482
7478
  var tokenPos_8 = parser.tokenPos, linePos_7 = parser.linePos, colPos_7 = parser.colPos, tokenValue_3 = parser.tokenValue, tokenAfterColon = parser.token;
7483
7479
  if (parser.token & 143360) {
7484
- value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos_8, linePos_7, colPos_7);
7480
+ value = parsePrimaryExpression(parser, context, kind, 0, 1, inGroup, 1, tokenPos_8, linePos_7, colPos_7);
7485
7481
  var token_4 = parser.token;
7486
7482
  value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos_8, linePos_7, colPos_7);
7487
7483
  if ((parser.token & 4194304) === 4194304) {
@@ -7587,7 +7583,7 @@
7587
7583
  state |= 8;
7588
7584
  if (parser.token & 143360) {
7589
7585
  var token_5 = parser.token, line_1 = parser.line, index = parser.index;
7590
- key = parseIdentifier(parser, context, 0);
7586
+ key = parseIdentifier(parser, context);
7591
7587
  state |= 1;
7592
7588
  if (parser.token === 67174411) {
7593
7589
  destructible |= 16;
@@ -7701,7 +7697,7 @@
7701
7697
  if (parser.token === 1077936157) {
7702
7698
  nextToken(parser, context | 32768);
7703
7699
  isSimpleParameterList = 1;
7704
- var right = parseExpression(parser, context, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
7700
+ var right = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
7705
7701
  left = finishNode(parser, context, tokenPos, linePos, colPos, {
7706
7702
  type: 'AssignmentPattern',
7707
7703
  left: left,
@@ -7728,14 +7724,14 @@
7728
7724
  }
7729
7725
  function parseComputedPropertyName(parser, context, inGroup) {
7730
7726
  nextToken(parser, context | 32768);
7731
- var key = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
7727
+ var key = parseExpression(parser, (context | 134217728) ^ 134217728, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
7732
7728
  consume(parser, context, 20);
7733
7729
  return key;
7734
7730
  }
7735
7731
  function parseParenthesizedExpression(parser, context, canAssign, kind, origin, start, line, column) {
7736
7732
  parser.flags = (parser.flags | 128) ^ 128;
7737
7733
  var piStart = parser.tokenPos, plStart = parser.linePos, pcStart = parser.colPos;
7738
- nextToken(parser, context | 32768 | 1073741824);
7734
+ nextToken(parser, context | 32768 | 268435456);
7739
7735
  var scope = context & 64 ? addChildScope(createScope(), 1024) : void 0;
7740
7736
  context = (context | 134217728) ^ 134217728;
7741
7737
  if (consumeOpt(parser, context, 16)) {
@@ -7754,7 +7750,7 @@
7754
7750
  if (token & (143360 | 4096)) {
7755
7751
  if (scope)
7756
7752
  addBlockName(parser, context, scope, parser.tokenValue, 1, 0);
7757
- expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos);
7753
+ expr = parsePrimaryExpression(parser, context, kind, 0, 1, 1, 1, tokenPos, linePos, colPos);
7758
7754
  if (parser.token === 16 || parser.token === 18) {
7759
7755
  if (parser.assignable & 2) {
7760
7756
  destructible |= 16;
@@ -7781,8 +7777,8 @@
7781
7777
  else if ((token & 2097152) === 2097152) {
7782
7778
  expr =
7783
7779
  token === 2162700
7784
- ? parseObjectLiteralOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos)
7785
- : parseArrayExpressionOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos);
7780
+ ? parseObjectLiteralOrPattern(parser, context | 268435456, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos)
7781
+ : parseArrayExpressionOrPattern(parser, context | 268435456, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos);
7786
7782
  destructible |= parser.destructible;
7787
7783
  isSimpleParameterList = 1;
7788
7784
  parser.assignable = 2;
@@ -7809,7 +7805,7 @@
7809
7805
  }
7810
7806
  else {
7811
7807
  destructible |= 16;
7812
- expr = parseExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos);
7808
+ expr = parseExpression(parser, context, 1, 1, tokenPos, linePos, colPos);
7813
7809
  if (isSequence && (parser.token === 16 || parser.token === 18)) {
7814
7810
  expressions.push(expr);
7815
7811
  }
@@ -7821,7 +7817,7 @@
7821
7817
  }
7822
7818
  if (isSequence) {
7823
7819
  while (consumeOpt(parser, context | 32768, 18)) {
7824
- expressions.push(parseExpression(parser, context, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos));
7820
+ expressions.push(parseExpression(parser, context, 1, 1, parser.tokenPos, parser.linePos, parser.colPos));
7825
7821
  }
7826
7822
  parser.assignable = 2;
7827
7823
  expr = finishNode(parser, context, iStart, lStart, cStart, {
@@ -7888,7 +7884,7 @@
7888
7884
  }
7889
7885
  function parseIdentifierOrArrow(parser, context, start, line, column) {
7890
7886
  var tokenValue = parser.tokenValue;
7891
- var expr = parseIdentifier(parser, context, 0);
7887
+ var expr = parseIdentifier(parser, context);
7892
7888
  parser.assignable = 1;
7893
7889
  if (parser.token === 10) {
7894
7890
  var scope = void 0;
@@ -7926,7 +7922,7 @@
7926
7922
  reportScopeError(scope.scopeError);
7927
7923
  }
7928
7924
  if (expression) {
7929
- body = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);
7925
+ body = parseExpression(parser, context & 16384 ? context | 33554432 : context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
7930
7926
  }
7931
7927
  else {
7932
7928
  if (scope)
@@ -8007,7 +8003,7 @@
8007
8003
  if (parser.token === 1077936157) {
8008
8004
  nextToken(parser, context | 32768);
8009
8005
  isSimpleParameterList = 1;
8010
- var right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
8006
+ var right = parseExpression(parser, context, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
8011
8007
  left = finishNode(parser, context, tokenPos, linePos, colPos, {
8012
8008
  type: 'AssignmentPattern',
8013
8009
  left: left,
@@ -8033,7 +8029,7 @@
8033
8029
  var token = parser.token;
8034
8030
  if (token & 67108864) {
8035
8031
  if (token === 67108877) {
8036
- nextToken(parser, context | 1073741824);
8032
+ nextToken(parser, context | 268435456);
8037
8033
  parser.assignable = 1;
8038
8034
  var property = parsePropertyOrPrivatePropertyName(parser, context);
8039
8035
  return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, {
@@ -8070,7 +8066,7 @@
8070
8066
  return expr;
8071
8067
  }
8072
8068
  function parseNewExpression(parser, context, inGroup, start, line, column) {
8073
- var id = parseIdentifier(parser, context | 32768, 0);
8069
+ var id = parseIdentifier(parser, context | 32768);
8074
8070
  var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos;
8075
8071
  if (consumeOpt(parser, context, 67108877)) {
8076
8072
  if (context & 67108864 && parser.token === 143494) {
@@ -8083,7 +8079,7 @@
8083
8079
  if ((parser.token & 16842752) === 16842752) {
8084
8080
  report(parser, 63, KeywordDescTable[parser.token & 255]);
8085
8081
  }
8086
- var expr = parsePrimaryExpression(parser, context, 2, 1, 0, 0, inGroup, 1, tokenPos, linePos, colPos);
8082
+ var expr = parsePrimaryExpression(parser, context, 2, 1, 0, inGroup, 1, tokenPos, linePos, colPos);
8087
8083
  context = (context | 134217728) ^ 134217728;
8088
8084
  if (parser.token === 67108991)
8089
8085
  report(parser, 163);
@@ -8096,7 +8092,7 @@
8096
8092
  });
8097
8093
  }
8098
8094
  function parseMetaProperty(parser, context, meta, start, line, column) {
8099
- var property = parseIdentifier(parser, context, 0);
8095
+ var property = parseIdentifier(parser, context);
8100
8096
  return finishNode(parser, context, start, line, column, {
8101
8097
  type: 'MetaProperty',
8102
8098
  meta: meta,
@@ -8112,7 +8108,7 @@
8112
8108
  if ((parser.token & 537079808) === 537079808) {
8113
8109
  parser.flags |= 512;
8114
8110
  }
8115
- return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context, 0), 0, canAssign, 1, start, line, column);
8111
+ return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context), 0, canAssign, 1, start, line, column);
8116
8112
  }
8117
8113
  function parseAsyncArrowOrCallExpression(parser, context, callee, canAssign, kind, origin, flags, start, line, column) {
8118
8114
  nextToken(parser, context | 32768);
@@ -8142,7 +8138,7 @@
8142
8138
  if (token & (143360 | 4096)) {
8143
8139
  if (scope)
8144
8140
  addBlockName(parser, context, scope, parser.tokenValue, kind, 0);
8145
- expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos);
8141
+ expr = parsePrimaryExpression(parser, context, kind, 0, 1, 1, 1, tokenPos, linePos, colPos);
8146
8142
  if (parser.token === 16 || parser.token === 18) {
8147
8143
  if (parser.assignable & 2) {
8148
8144
  destructible |= 16;
@@ -8194,11 +8190,11 @@
8194
8190
  isSimpleParameterList = 1;
8195
8191
  }
8196
8192
  else {
8197
- expr = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos);
8193
+ expr = parseExpression(parser, context, 1, 0, tokenPos, linePos, colPos);
8198
8194
  destructible = parser.assignable;
8199
8195
  params.push(expr);
8200
8196
  while (consumeOpt(parser, context | 32768, 18)) {
8201
- params.push(parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos));
8197
+ params.push(parseExpression(parser, context, 1, 0, tokenPos, linePos, colPos));
8202
8198
  }
8203
8199
  destructible |= parser.assignable;
8204
8200
  consume(parser, context, 16);
@@ -8294,7 +8290,7 @@
8294
8290
  }
8295
8291
  }
8296
8292
  }
8297
- id = parseIdentifier(parser, context, 0);
8293
+ id = parseIdentifier(parser, context);
8298
8294
  }
8299
8295
  else {
8300
8296
  if ((flags & 1) === 0)
@@ -8341,7 +8337,7 @@
8341
8337
  if ((parser.token & 537079808) === 537079808) {
8342
8338
  report(parser, 116);
8343
8339
  }
8344
- id = parseIdentifier(parser, context, 0);
8340
+ id = parseIdentifier(parser, context);
8345
8341
  }
8346
8342
  var inheritedContext = context;
8347
8343
  if (consumeOpt(parser, context | 32768, 20567)) {
@@ -8379,7 +8375,7 @@
8379
8375
  }
8380
8376
  function parseDecoratorList(parser, context, start, line, column) {
8381
8377
  nextToken(parser, context | 32768);
8382
- var expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, start, line, column);
8378
+ var expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 1, start, line, column);
8383
8379
  expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column);
8384
8380
  return finishNode(parser, context, start, line, column, {
8385
8381
  type: 'Decorator',
@@ -8422,7 +8418,7 @@
8422
8418
  var key = null;
8423
8419
  var token = parser.token, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos;
8424
8420
  if (token & (143360 | 36864)) {
8425
- key = parseIdentifier(parser, context, 0);
8421
+ key = parseIdentifier(parser, context);
8426
8422
  switch (token) {
8427
8423
  case 36972:
8428
8424
  if (!isStatic &&
@@ -8480,7 +8476,7 @@
8480
8476
  return parseStaticBlock(parser, context, scope, tokenPos, linePos, colPos);
8481
8477
  }
8482
8478
  else if (token === 122) {
8483
- key = parseIdentifier(parser, context, 0);
8479
+ key = parseIdentifier(parser, context);
8484
8480
  if (parser.token !== 67174411)
8485
8481
  report(parser, 28, KeywordDescTable[parser.token & 255]);
8486
8482
  }
@@ -8489,7 +8485,7 @@
8489
8485
  }
8490
8486
  if (kind & (8 | 16 | 768)) {
8491
8487
  if (parser.token & 143360) {
8492
- key = parseIdentifier(parser, context, 0);
8488
+ key = parseIdentifier(parser, context);
8493
8489
  }
8494
8490
  else if ((parser.token & 134217728) === 134217728) {
8495
8491
  key = parseLiteral(parser, context);
@@ -8499,7 +8495,7 @@
8499
8495
  key = parseComputedPropertyName(parser, context, 0);
8500
8496
  }
8501
8497
  else if (parser.token === 122) {
8502
- key = parseIdentifier(parser, context, 0);
8498
+ key = parseIdentifier(parser, context);
8503
8499
  }
8504
8500
  else if (context & 1 && parser.token === 131) {
8505
8501
  kind |= 4096;
@@ -8587,7 +8583,14 @@
8587
8583
  var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos;
8588
8584
  if (parser.token === 537079928)
8589
8585
  report(parser, 116);
8590
- value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 0, 1, tokenPos, linePos, colPos);
8586
+ var modifierFlags = (state & 64) === 0
8587
+ ? 31981568
8588
+ : 14680064;
8589
+ context =
8590
+ ((context | modifierFlags) ^ modifierFlags) |
8591
+ ((state & 88) << 18) |
8592
+ 100925440;
8593
+ value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 1, tokenPos, linePos, colPos);
8591
8594
  if ((parser.token & 1073741824) !== 1073741824 ||
8592
8595
  (parser.token & 4194304) === 4194304) {
8593
8596
  value = parseMemberOrUpdateExpression(parser, context | 16384, value, 0, 0, tokenPos, linePos, colPos);
@@ -8795,7 +8798,7 @@
8795
8798
  function parseJSXSpreadAttribute(parser, context, start, line, column) {
8796
8799
  nextToken(parser, context);
8797
8800
  consume(parser, context, 14);
8798
- var expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);
8801
+ var expression = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
8799
8802
  consume(parser, context, 1074790415);
8800
8803
  return finishNode(parser, context, start, line, column, {
8801
8804
  type: 'JSXSpreadAttribute',
@@ -8855,7 +8858,7 @@
8855
8858
  expression = parseJSXEmptyExpression(parser, context, parser.startPos, parser.startLine, parser.startColumn);
8856
8859
  }
8857
8860
  else {
8858
- expression = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos);
8861
+ expression = parseExpression(parser, context, 1, 0, tokenPos, linePos, colPos);
8859
8862
  }
8860
8863
  if (inJSXChild) {
8861
8864
  consume(parser, context, 1074790415);
@@ -8870,7 +8873,7 @@
8870
8873
  }
8871
8874
  function parseJSXSpreadChild(parser, context, start, line, column) {
8872
8875
  consume(parser, context, 14);
8873
- var expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);
8876
+ var expression = parseExpression(parser, context, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
8874
8877
  consume(parser, context, 1074790415);
8875
8878
  return finishNode(parser, context, start, line, column, {
8876
8879
  type: 'JSXSpreadChild',
@@ -8898,7 +8901,7 @@
8898
8901
  __proto__: null
8899
8902
  });
8900
8903
 
8901
- var version$1 = "4.4.2";
8904
+ var version$1 = "4.4.4";
8902
8905
 
8903
8906
  var version = version$1;
8904
8907
  function parseScript(source, options) {