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.
@@ -1530,7 +1530,7 @@
1530
1530
  return 122;
1531
1531
  }
1532
1532
  if ((token & 20480) === 20480) {
1533
- if (context & 1073741824 && (context & 8192) === 0) {
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 & 1073741824 &&
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 & 1073741824
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, specDeviation) {
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 |= -2147483648;
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 | 1073741824);
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, 0);
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, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);
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, 0);
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, 0);
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, 0);
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, 0);
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, 0, parser.tokenPos, parser.linePos, parser.colPos);
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, 0);
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, 0, parser.tokenPos, parser.linePos, parser.colPos);
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, 0);
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, 0);
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, 0);
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, 0);
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, 0);
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, 0, parser.tokenPos, parser.linePos, parser.colPos);
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, 0);
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, 0);
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, 0);
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, isPattern, inGroup, start, line, column) {
5859
- let expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, isPattern, inGroup, 1, start, line, column);
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, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos));
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, 0, inGroup, start, line, column);
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, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
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, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
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, 0, parser.tokenPos, parser.linePos, parser.colPos);
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, 0, parser.tokenPos, parser.linePos, parser.colPos);
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, isPattern, inNew, start, line, column) {
5990
+ function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, inNew, start, line, column) {
5994
5991
  const { token } = parser;
5995
- const expr = parseIdentifier(parser, context, isPattern);
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, 0, parser.tokenPos, parser.linePos, parser.colPos);
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, 0, inGroup, isLHS, start, line, column);
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 | 1073741824 | 8192) ^ 8192);
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 | 1073741824 | 8192) ^ 8192);
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, 0);
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, 0);
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, isPattern, inGroup, isLHS, start, line, column) {
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, isPattern, inNew, start, line, column);
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, isPattern);
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, 0);
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, 0)
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, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
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, 0, parser.tokenPos, parser.linePos, parser.colPos);
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, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos));
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, isPattern) {
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, context & 268435456
6586
- ? {
6587
- type: 'Identifier',
6588
- name: tokenValue,
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, 0);
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 : 1073741824);
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, 0);
6702
+ id = parseIdentifier(parser, context);
6707
6703
  }
6708
6704
  context =
6709
6705
  ((context | 32243712) ^ 32243712) |
6710
6706
  67108864 |
6711
6707
  generatorAndAsyncFlags |
6712
- (isGenerator ? 0 : 1073741824);
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, 0, inGroup, 1, tokenPos, linePos, colPos);
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, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
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, 1, inGroup, tokenPos, linePos, colPos);
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, 0, inGroup, 1, tokenPos, linePos, colPos);
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, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
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, 0);
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, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
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 & -2147483648 ? Object.assign({}, key) : key,
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 & -2147483648 ? Object.assign({}, key) : key;
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, 0, inGroup, 1, tokenPos, linePos, colPos);
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, 0);
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, 0);
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, 0, inGroup, 1, tokenPos, linePos, colPos);
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, 0, inGroup, 1, tokenPos, linePos, colPos);
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, 0);
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, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);
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, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
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 | 1073741824);
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, 0, 1, 1, tokenPos, linePos, colPos);
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 | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos)
7722
- : parseArrayExpressionOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos);
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, 0, 1, tokenPos, linePos, colPos);
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, 0, 1, parser.tokenPos, parser.linePos, parser.colPos));
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, 0);
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, 0, parser.tokenPos, parser.linePos, parser.colPos);
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, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);
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 | 1073741824);
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, 0);
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, 0, inGroup, 1, tokenPos, linePos, colPos);
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, 0);
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, 0), 0, canAssign, 1, start, line, column);
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, 0, 1, 1, tokenPos, linePos, colPos);
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, 0, tokenPos, linePos, colPos);
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, 0, tokenPos, linePos, colPos));
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, 0);
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, 0);
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, 0, 1, start, line, column);
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, 0);
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, 0);
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, 0);
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, 0);
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
- value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 0, 1, tokenPos, linePos, colPos);
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, 0, parser.tokenPos, parser.linePos, parser.colPos);
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, 0, tokenPos, linePos, colPos);
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, 0, parser.tokenPos, parser.linePos, parser.colPos);
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.2";
8840
+ var version$1 = "4.4.4";
8838
8841
 
8839
8842
  const version = version$1;
8840
8843
  function parseScript(source, options) {