meriyah 7.1.1 → 7.2.0

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.
@@ -4,7 +4,9 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.meriyah = {}));
5
5
  })(this, (function (exports) { 'use strict';
6
6
 
7
- var version$1 = "7.1.1";
7
+ var version$1 = "7.2.0";
8
+ var packageJson = {
9
+ version: version$1};
8
10
 
9
11
  const unicodeLookup = ((compressed, lookup) => {
10
12
  const result = new Uint32Array(69632);
@@ -490,7 +492,7 @@
490
492
  return 'RegularExpression';
491
493
  case 67174408:
492
494
  case 67174409:
493
- case 131:
495
+ case 132:
494
496
  return 'TemplateLiteral';
495
497
  default:
496
498
  if ((t & 143360) === 143360)
@@ -798,7 +800,7 @@
798
800
  loc;
799
801
  description;
800
802
  constructor(start, end, type, ...params) {
801
- const description = errorMessages[type].replace(/%(\d+)/g, (_, i) => params[i]);
803
+ const description = errorMessages[type].replaceAll(/%(\d+)/g, (_, i) => params[i]);
802
804
  const message = '[' + start.line + ':' + start.column + '-' + end.line + ':' + end.column + ']: ' + description;
803
805
  super(message);
804
806
  this.start = start.index;
@@ -833,7 +835,7 @@
833
835
  'extends', 'finally', 'for', 'function', 'if', 'import', 'new', 'return', 'super', 'switch',
834
836
  'this', 'throw', 'try', 'while', 'with',
835
837
  'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield',
836
- 'as', 'async', 'await', 'constructor', 'get', 'set', 'accessor', 'from', 'of',
838
+ 'as', 'async', 'await', 'constructor', 'get', 'set', 'accessor', 'from', 'of', 'using',
837
839
  'enum', 'eval', 'arguments', 'escaped keyword', 'escaped future reserved keyword', 'reserved if strict', '#',
838
840
  'BigIntLiteral', '??', '?.', 'WhiteSpace', 'Illegal', 'LineTerminator', 'PrivateField',
839
841
  'Template', '@', 'target', 'meta', 'LineFeed', 'Escaped', 'JSXText'
@@ -880,6 +882,7 @@
880
882
  let: 241737,
881
883
  null: 86023,
882
884
  of: 471156,
885
+ using: 209013,
883
886
  package: 36966,
884
887
  private: 36967,
885
888
  protected: 36968,
@@ -890,12 +893,12 @@
890
893
  true: 86022,
891
894
  with: 20579,
892
895
  yield: 241771,
893
- enum: 86133,
894
- eval: 537079926,
896
+ enum: 86134,
897
+ eval: 537079927,
895
898
  as: 77932,
896
- arguments: 537079927,
897
- target: 209029,
898
- meta: 209030,
899
+ arguments: 537079928,
900
+ target: 209030,
901
+ meta: 209031,
899
902
  accessor: 12402,
900
903
  };
901
904
 
@@ -957,24 +960,24 @@
957
960
  if ((context & (2 | 2048)) === 0) {
958
961
  return token | -2147483648;
959
962
  }
960
- return -2147483528;
963
+ return -2147483527;
961
964
  }
962
965
  if (context & 1) {
963
966
  if (token === 36970) {
964
- return -2147483527;
967
+ return -2147483526;
965
968
  }
966
969
  if ((token & 36864) === 36864) {
967
- return -2147483527;
970
+ return -2147483526;
968
971
  }
969
972
  if ((token & 20480) === 20480) {
970
973
  if (context & 262144 && (context & 8) === 0) {
971
974
  return token | -2147483648;
972
975
  }
973
976
  else {
974
- return -2147483528;
977
+ return -2147483527;
975
978
  }
976
979
  }
977
- return 209018 | -2147483648;
980
+ return 209019 | -2147483648;
978
981
  }
979
982
  if (context & 262144 &&
980
983
  (context & 8) === 0 &&
@@ -983,31 +986,31 @@
983
986
  }
984
987
  if (token === 241771) {
985
988
  return context & 262144
986
- ? 209018 | -2147483648
989
+ ? 209019 | -2147483648
987
990
  : context & 1024
988
- ? -2147483528
991
+ ? -2147483527
989
992
  : token | -2147483648;
990
993
  }
991
994
  if (token === 209005) {
992
- return 209018 | -2147483648;
995
+ return 209019 | -2147483648;
993
996
  }
994
997
  if ((token & 36864) === 36864) {
995
998
  return token | 12288 | -2147483648;
996
999
  }
997
- return -2147483528;
1000
+ return -2147483527;
998
1001
  }
999
1002
  return 208897 | (hasEscape ? -2147483648 : 0);
1000
1003
  }
1001
1004
  function scanPrivateIdentifier(parser) {
1002
1005
  let char = advanceChar(parser);
1003
1006
  if (char === 92)
1004
- return 130;
1007
+ return 131;
1005
1008
  const merged = consumePossibleSurrogatePair(parser);
1006
1009
  if (merged)
1007
1010
  char = merged;
1008
1011
  if (!isIdentifierStart(char))
1009
1012
  parser.report(96);
1010
- return 130;
1013
+ return 131;
1011
1014
  }
1012
1015
  function scanIdentifierUnicodeEscape(parser) {
1013
1016
  if (parser.source.charCodeAt(parser.index + 1) !== 117) {
@@ -1213,7 +1216,7 @@
1213
1216
  if (isBigInt) {
1214
1217
  parser.tokenRaw = parser.source.slice(parser.tokenIndex, parser.index);
1215
1218
  parser.tokenValue = BigInt(parser.tokenRaw.slice(0, -1).replaceAll('_', ''));
1216
- return 134283388;
1219
+ return 134283389;
1217
1220
  }
1218
1221
  parser.tokenValue =
1219
1222
  kind & (1 | 2 | 8 | 4)
@@ -1524,12 +1527,14 @@
1524
1527
  const ch = advanceChar(parser);
1525
1528
  if (parser.currentChar === 123) {
1526
1529
  let code = 0;
1530
+ let digits = 0;
1527
1531
  while ((CharTypes[advanceChar(parser)] & 64) !== 0) {
1528
1532
  code = (code << 4) | toHex(parser.currentChar);
1529
1533
  if (code > 1114111)
1530
1534
  return -5;
1535
+ digits++;
1531
1536
  }
1532
- if (parser.currentChar < 1 || parser.currentChar !== 125) {
1537
+ if (digits === 0 || parser.currentChar < 1 || parser.currentChar !== 125) {
1533
1538
  return -4;
1534
1539
  }
1535
1540
  return code;
@@ -1580,6 +1585,7 @@
1580
1585
  const { index: start } = parser;
1581
1586
  let token = 67174409;
1582
1587
  let ret = '';
1588
+ let hasCarriageReturn = false;
1583
1589
  let char = advanceChar(parser);
1584
1590
  while (char !== 96) {
1585
1591
  if (char === 36 && parser.source.charCodeAt(parser.index + 1) === 123) {
@@ -1589,6 +1595,8 @@
1589
1595
  }
1590
1596
  else if (char === 92) {
1591
1597
  char = advanceChar(parser);
1598
+ if (char === 13)
1599
+ hasCarriageReturn = true;
1592
1600
  if (char > 0x7e) {
1593
1601
  ret += String.fromCodePoint(char);
1594
1602
  }
@@ -1603,7 +1611,9 @@
1603
1611
  parser.line = line;
1604
1612
  parser.column = column;
1605
1613
  ret = null;
1606
- char = scanBadTemplate(parser, char);
1614
+ char = scanBadTemplate(parser, char, () => {
1615
+ hasCarriageReturn = true;
1616
+ });
1607
1617
  if (char < 0)
1608
1618
  token = 67174408;
1609
1619
  break;
@@ -1614,10 +1624,13 @@
1614
1624
  }
1615
1625
  }
1616
1626
  else if (parser.index < parser.end) {
1617
- if (char === 13 && parser.source.charCodeAt(parser.index) === 10) {
1618
- ret += String.fromCodePoint(char);
1627
+ if (char === 13)
1628
+ hasCarriageReturn = true;
1629
+ if (char === 13 && parser.source.charCodeAt(parser.index + 1) === 10) {
1619
1630
  parser.currentChar = parser.source.charCodeAt(++parser.index);
1620
1631
  }
1632
+ if (char === 13)
1633
+ char = 10;
1621
1634
  if (((char & 83) < 3 && char === 10) || (char ^ 8232) <= 1) {
1622
1635
  parser.column = -1;
1623
1636
  parser.line++;
@@ -1630,12 +1643,16 @@
1630
1643
  }
1631
1644
  advanceChar(parser);
1632
1645
  parser.tokenValue = ret;
1633
- parser.tokenRaw = parser.source.slice(start + 1, parser.index - (token === 67174409 ? 1 : 2));
1646
+ const tokenRaw = parser.source.slice(start + 1, parser.index - (token === 67174409 ? 1 : 2));
1647
+ parser.tokenRaw = hasCarriageReturn ? tokenRaw.replaceAll(/\r\n?/g, '\n') : tokenRaw;
1634
1648
  return token;
1635
1649
  }
1636
- function scanBadTemplate(parser, ch) {
1650
+ function scanBadTemplate(parser, ch, onCarriageReturn) {
1637
1651
  while (ch !== 96) {
1638
1652
  switch (ch) {
1653
+ case 13:
1654
+ onCarriageReturn();
1655
+ break;
1639
1656
  case 36: {
1640
1657
  const index = parser.index + 1;
1641
1658
  if (index < parser.end && parser.source.charCodeAt(index) === 123) {
@@ -1666,42 +1683,42 @@
1666
1683
  }
1667
1684
 
1668
1685
  const TokenLookup = [
1669
- 128,
1670
- 128,
1671
- 128,
1672
- 128,
1673
- 128,
1674
- 128,
1675
- 128,
1676
- 128,
1677
- 128,
1678
- 127,
1679
- 135,
1680
- 127,
1681
- 127,
1686
+ 129,
1687
+ 129,
1688
+ 129,
1689
+ 129,
1690
+ 129,
1691
+ 129,
1692
+ 129,
1693
+ 129,
1682
1694
  129,
1683
1695
  128,
1696
+ 136,
1684
1697
  128,
1685
1698
  128,
1699
+ 130,
1700
+ 129,
1701
+ 129,
1702
+ 129,
1703
+ 129,
1704
+ 129,
1705
+ 129,
1706
+ 129,
1707
+ 129,
1708
+ 129,
1709
+ 129,
1710
+ 129,
1711
+ 129,
1712
+ 129,
1713
+ 129,
1714
+ 129,
1715
+ 129,
1716
+ 129,
1717
+ 129,
1686
1718
  128,
1687
- 128,
1688
- 128,
1689
- 128,
1690
- 128,
1691
- 128,
1692
- 128,
1693
- 128,
1694
- 128,
1695
- 128,
1696
- 128,
1697
- 128,
1698
- 128,
1699
- 128,
1700
- 128,
1701
- 127,
1702
1719
  16842798,
1703
1720
  134283267,
1704
- 130,
1721
+ 131,
1705
1722
  208897,
1706
1723
  8391477,
1707
1724
  8390213,
@@ -1730,7 +1747,7 @@
1730
1747
  1077936155,
1731
1748
  8390721,
1732
1749
  22,
1733
- 132,
1750
+ 133,
1734
1751
  208897,
1735
1752
  208897,
1736
1753
  208897,
@@ -1758,11 +1775,11 @@
1758
1775
  208897,
1759
1776
  208897,
1760
1777
  69271571,
1761
- 136,
1778
+ 137,
1762
1779
  20,
1763
1780
  8389959,
1764
1781
  208897,
1765
- 131,
1782
+ 132,
1766
1783
  4096,
1767
1784
  4096,
1768
1785
  4096,
@@ -1793,7 +1810,7 @@
1793
1810
  8389702,
1794
1811
  1074790415,
1795
1812
  16842799,
1796
- 128,
1813
+ 129,
1797
1814
  ];
1798
1815
  function nextToken(parser, context) {
1799
1816
  parser.flags = (parser.flags | 1) ^ 1;
@@ -1823,8 +1840,8 @@
1823
1840
  case 1074790417:
1824
1841
  case 18:
1825
1842
  case 16842799:
1826
- case 132:
1827
- case 128:
1843
+ case 133:
1844
+ case 129:
1828
1845
  advanceChar(parser);
1829
1846
  return token;
1830
1847
  case 208897:
@@ -1835,20 +1852,20 @@
1835
1852
  return scanNumber(parser, context, 16 | 128);
1836
1853
  case 134283267:
1837
1854
  return scanString(parser, context, char);
1838
- case 131:
1855
+ case 132:
1839
1856
  return scanTemplate(parser, context);
1840
- case 136:
1857
+ case 137:
1841
1858
  return scanUnicodeIdentifier(parser, context);
1842
- case 130:
1859
+ case 131:
1843
1860
  return scanPrivateIdentifier(parser);
1844
- case 127:
1861
+ case 128:
1845
1862
  advanceChar(parser);
1846
1863
  break;
1847
- case 129:
1864
+ case 130:
1848
1865
  state |= 1 | 4;
1849
1866
  scanNewLine(parser);
1850
1867
  break;
1851
- case 135:
1868
+ case 136:
1852
1869
  consumeLineFeed(parser, state);
1853
1870
  state = (state & -5) | 1;
1854
1871
  break;
@@ -2071,7 +2088,7 @@
2071
2088
  advanceChar(parser);
2072
2089
  return 4718634;
2073
2090
  }
2074
- return 276824445;
2091
+ return 276824446;
2075
2092
  }
2076
2093
  if (ch === 46) {
2077
2094
  const index = parser.index + 1;
@@ -2079,7 +2096,7 @@
2079
2096
  ch = source.charCodeAt(index);
2080
2097
  if (!(ch >= 48 && ch <= 57)) {
2081
2098
  advanceChar(parser);
2082
- return 67108990;
2099
+ return 67108991;
2083
2100
  }
2084
2101
  }
2085
2102
  }
@@ -2187,7 +2204,7 @@
2187
2204
  parser.report(119);
2188
2205
  }
2189
2206
  }
2190
- if ((t & 20480) === 20480 || t === -2147483528) {
2207
+ if ((t & 20480) === 20480 || t === -2147483527) {
2191
2208
  parser.report(102);
2192
2209
  }
2193
2210
  if (kind & (8 | 16) && (t & 255) === (241737 & 255)) {
@@ -2208,10 +2225,10 @@
2208
2225
  if ((t & 537079808) === 537079808) {
2209
2226
  parser.report(119);
2210
2227
  }
2211
- if (t === -2147483527) {
2228
+ if (t === -2147483526) {
2212
2229
  parser.report(95);
2213
2230
  }
2214
- if (t === -2147483528) {
2231
+ if (t === -2147483527) {
2215
2232
  parser.report(95);
2216
2233
  }
2217
2234
  }
@@ -2235,7 +2252,7 @@
2235
2252
  parser.report(97, 'yield');
2236
2253
  return ((t & 20480) === 20480 ||
2237
2254
  (t & 36864) === 36864 ||
2238
- t == -2147483527);
2255
+ t == -2147483526);
2239
2256
  }
2240
2257
  function isPropertyWithPrivateFieldKey(expr) {
2241
2258
  return !expr.property ? false : expr.property.type === 'PrivateIdentifier';
@@ -4450,7 +4467,7 @@
4450
4467
  '159': 376,
4451
4468
  };
4452
4469
  function decodeHTMLStrict(text) {
4453
- return text.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, (key) => {
4470
+ return text.replaceAll(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, (key) => {
4454
4471
  if (key.charAt(1) === '#') {
4455
4472
  const secondChar = key.charAt(2);
4456
4473
  const codePoint = secondChar === 'X' || secondChar === 'x' ? parseInt(key.slice(3), 16) : parseInt(key.slice(2), 10);
@@ -4533,7 +4550,7 @@
4533
4550
  if (parser.options.raw)
4534
4551
  parser.tokenRaw = raw;
4535
4552
  parser.tokenValue = decodeHTMLStrict(raw);
4536
- parser.setToken(137);
4553
+ parser.setToken(138);
4537
4554
  }
4538
4555
  function rescanJSXIdentifier(parser) {
4539
4556
  if ((parser.getToken() & 143360) === 143360) {
@@ -4936,7 +4953,7 @@
4936
4953
  context |= 1;
4937
4954
  skipHashBang(parser);
4938
4955
  const scope = parser.createScopeIfLexical();
4939
- let body = [];
4956
+ let body;
4940
4957
  let sourceType = 'script';
4941
4958
  if (context & 2) {
4942
4959
  sourceType = 'module';
@@ -4994,7 +5011,7 @@
4994
5011
  return statements;
4995
5012
  }
4996
5013
  function parseModuleItem(parser, context, scope) {
4997
- if (parser.getToken() === 132) {
5014
+ if (parser.getToken() === 133) {
4998
5015
  Object.assign(parser.leadingDecorators, {
4999
5016
  start: parser.tokenStart,
5000
5017
  decorators: parseDecorators(parser, context, undefined),
@@ -5021,13 +5038,21 @@
5021
5038
  switch (parser.getToken()) {
5022
5039
  case 86104:
5023
5040
  return parseFunctionDeclaration(parser, context, scope, privateScope, origin, 1, 0, 0, start);
5024
- case 132:
5041
+ case 133:
5025
5042
  case 86094:
5026
5043
  return parseClassDeclaration(parser, context, scope, privateScope, 0);
5027
5044
  case 86090:
5028
5045
  return parseLexicalDeclaration(parser, context, scope, privateScope, 16, 0);
5029
5046
  case 241737:
5030
5047
  return parseLetIdentOrVarDeclarationStatement(parser, context, scope, privateScope, origin);
5048
+ case 209013:
5049
+ return parseUsingDeclarationOrExpressionStatement(parser, context, scope, privateScope, origin, labels);
5050
+ case 209006:
5051
+ if ((context & 2048 || (context & 2 && context & 8)) &&
5052
+ nextTokenIsUsingOnSameLine(parser)) {
5053
+ return parseAwaitUsingDeclarationOrExpressionStatement(parser, context, scope, privateScope, origin, labels);
5054
+ }
5055
+ return parseStatement(parser, context, scope, privateScope, origin, labels, 1);
5031
5056
  case 20564:
5032
5057
  parser.report(103, 'export');
5033
5058
  case 86106:
@@ -5111,15 +5136,18 @@
5111
5136
  default:
5112
5137
  expr = parsePrimaryExpression(parser, context, privateScope, 2, 0, 1, 0, 1, parser.tokenStart);
5113
5138
  }
5139
+ return finishExpressionOrLabelledStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl, expr, token, tokenValue, tokenStart);
5140
+ }
5141
+ function finishExpressionOrLabelledStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl, initialExpression, token, tokenValue, tokenStart) {
5114
5142
  if (token & 143360 && parser.getToken() === 21) {
5115
- return parseLabelledStatement(parser, context, scope, privateScope, origin, labels, tokenValue, expr, token, allowFuncDecl, tokenStart);
5143
+ return parseLabelledStatement(parser, context, scope, privateScope, origin, labels, tokenValue, initialExpression, token, allowFuncDecl, tokenStart);
5116
5144
  }
5117
- expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, tokenStart);
5118
- expr = parseAssignmentExpression(parser, context, privateScope, 0, 0, tokenStart, expr);
5145
+ let expression = parseMemberOrUpdateExpression(parser, context, privateScope, initialExpression, 0, 0, tokenStart);
5146
+ expression = parseAssignmentExpression(parser, context, privateScope, 0, 0, tokenStart, expression);
5119
5147
  if (parser.getToken() === 18) {
5120
- expr = parseSequenceExpression(parser, context, privateScope, 0, tokenStart, expr);
5148
+ expression = parseSequenceExpression(parser, context, privateScope, 0, tokenStart, expression);
5121
5149
  }
5122
- return parseExpressionStatement(parser, context, expr, tokenStart);
5150
+ return parseExpressionStatement(parser, context, expression, tokenStart);
5123
5151
  }
5124
5152
  function parseBlock(parser, context, scope, privateScope, labels, start = parser.tokenStart, type = 'BlockStatement') {
5125
5153
  const body = [];
@@ -5308,9 +5336,14 @@
5308
5336
  while (parser.getToken() !== 20556 &&
5309
5337
  parser.getToken() !== 1074790415 &&
5310
5338
  parser.getToken() !== 20561) {
5311
- consequent.push(parseStatementListItem(parser, context | 4, scope, privateScope, 2, {
5339
+ const statement = parseStatementListItem(parser, context | 4, scope, privateScope, 2, {
5312
5340
  $: labels,
5313
- }));
5341
+ });
5342
+ if (statement.type === 'VariableDeclaration' &&
5343
+ (statement.kind === 'using' || statement.kind === 'await using')) {
5344
+ parser.report(30, statement.kind);
5345
+ }
5346
+ consequent.push(statement);
5314
5347
  }
5315
5348
  cases.push(parser.finishNode({
5316
5349
  type: 'SwitchCase',
@@ -5429,7 +5462,6 @@
5429
5462
  }
5430
5463
  function parseCatchBlock(parser, context, scope, privateScope, labels, start) {
5431
5464
  let param = null;
5432
- let additionalScope = scope;
5433
5465
  if (consumeOpt(parser, context, 67174411)) {
5434
5466
  scope = scope?.createChildScope(4);
5435
5467
  param = parseBindingPattern(parser, context, scope, privateScope, (parser.getToken() & 2097152) === 2097152
@@ -5443,7 +5475,7 @@
5443
5475
  }
5444
5476
  consume(parser, context | 32, 16);
5445
5477
  }
5446
- additionalScope = scope?.createChildScope(32);
5478
+ const additionalScope = scope?.createChildScope(32);
5447
5479
  const body = parseBlock(parser, context, additionalScope, privateScope, { $: labels });
5448
5480
  return parser.finishNode({
5449
5481
  type: 'CatchClause',
@@ -5481,7 +5513,8 @@
5481
5513
  const { tokenValue, tokenStart } = parser;
5482
5514
  const token = parser.getToken();
5483
5515
  let expr = parseIdentifier(parser, context);
5484
- if (parser.getToken() & (143360 | 2097152)) {
5516
+ if (parser.getToken() & (143360 | 2097152) &&
5517
+ (parser.getToken() & 20480) !== 20480) {
5485
5518
  const declarations = parseVariableDeclarationList(parser, context, scope, privateScope, 8, 0);
5486
5519
  matchOrInsertSemicolon(parser, context | 32);
5487
5520
  return parser.finishNode({
@@ -5512,14 +5545,90 @@
5512
5545
  }
5513
5546
  return parseExpressionStatement(parser, context, expr, tokenStart);
5514
5547
  }
5515
- function parseLexicalDeclaration(parser, context, scope, privateScope, kind, origin) {
5548
+ function nextTokenIsUsingOnSameLine(parser) {
5549
+ const { index: parserIndex, source } = parser;
5550
+ let index = parserIndex;
5551
+ while (index < parser.end) {
5552
+ const char = source.charCodeAt(index);
5553
+ if (char === 0x0a || char === 0x0d || char === 0x2028 || char === 0x2029)
5554
+ return false;
5555
+ if (/\s/u.test(source[index])) {
5556
+ index++;
5557
+ continue;
5558
+ }
5559
+ if (char === 0x2f && source.charCodeAt(index + 1) === 0x2a) {
5560
+ index += 2;
5561
+ while (index < parser.end) {
5562
+ const commentChar = source.charCodeAt(index);
5563
+ if (commentChar === 0x0a || commentChar === 0x0d || commentChar === 0x2028 || commentChar === 0x2029) {
5564
+ return false;
5565
+ }
5566
+ if (commentChar === 0x2a && source.charCodeAt(index + 1) === 0x2f) {
5567
+ index += 2;
5568
+ break;
5569
+ }
5570
+ index++;
5571
+ }
5572
+ continue;
5573
+ }
5574
+ break;
5575
+ }
5576
+ if (source.slice(index, index + 5) !== 'using')
5577
+ return false;
5578
+ const following = source.codePointAt(index + 5);
5579
+ return following === undefined || (following !== 0x5c && !isIdentifierPart(following));
5580
+ }
5581
+ function isResourceBindingStart(token) {
5582
+ return (token & 143360) === 143360 && (token & 20480) !== 20480;
5583
+ }
5584
+ function parseUsingDeclarationOrExpressionStatement(parser, context, scope, privateScope, origin, labels) {
5585
+ const { tokenStart, tokenValue } = parser;
5586
+ const token = parser.getToken();
5587
+ const expression = parseIdentifier(parser, context);
5588
+ if ((parser.flags & 1) === 0 && isResourceBindingStart(parser.getToken())) {
5589
+ if (origin & 4 && context & 8 && (context & 2) === 0) {
5590
+ parser.report(30, KeywordDescTable[parser.getToken() & 255]);
5591
+ }
5592
+ return parseLexicalDeclaration(parser, context, scope, privateScope, 16, origin, 'using', tokenStart, 1);
5593
+ }
5594
+ parser.assignable = 1;
5595
+ return finishExpressionOrLabelledStatement(parser, context, scope, privateScope, origin, labels, 1, expression, token, tokenValue, tokenStart);
5596
+ }
5597
+ function parseAwaitUsingDeclarationOrExpressionStatement(parser, context, scope, privateScope, origin, labels) {
5516
5598
  const start = parser.tokenStart;
5517
- nextToken(parser, context);
5518
- const declarations = parseVariableDeclarationList(parser, context, scope, privateScope, kind, origin);
5599
+ if (context & 524288)
5600
+ parser.report(177);
5601
+ nextToken(parser, context | 32);
5602
+ let argument;
5603
+ if ((parser.flags & 1) === 0 && parser.getToken() === 209013) {
5604
+ const usingStart = parser.tokenStart;
5605
+ const usingIdentifier = parseIdentifier(parser, context);
5606
+ if ((parser.flags & 1) === 0 && isResourceBindingStart(parser.getToken())) {
5607
+ return parseLexicalDeclaration(parser, context, scope, privateScope, 16, origin, 'await using', start, 1);
5608
+ }
5609
+ argument = parseMemberOrUpdateExpression(parser, context, privateScope, usingIdentifier, 0, 0, usingStart);
5610
+ }
5611
+ else {
5612
+ argument = parseLeftHandSideExpression(parser, context, privateScope, 0, 0, 1);
5613
+ }
5614
+ if (parser.getToken() === 8391735)
5615
+ parser.report(33);
5616
+ parser.assignable = 2;
5617
+ const expression = parser.finishNode({
5618
+ type: 'AwaitExpression',
5619
+ argument,
5620
+ }, start);
5621
+ return finishExpressionOrLabelledStatement(parser, context, scope, privateScope, origin, labels, 0, expression, 1048576, '', start);
5622
+ }
5623
+ function parseLexicalDeclaration(parser, context, scope, privateScope, kind, origin, declarationKind, declarationStart = parser.tokenStart, keywordConsumed = 0) {
5624
+ const start = declarationStart;
5625
+ if (!keywordConsumed)
5626
+ nextToken(parser, context);
5627
+ const declarations = parseVariableDeclarationList(parser, context, scope, privateScope, kind, origin, declarationKind);
5519
5628
  matchOrInsertSemicolon(parser, context | 32);
5520
5629
  return parser.finishNode({
5521
5630
  type: 'VariableDeclaration',
5522
- kind: kind & 8 ? 'let' : 'const',
5631
+ kind: declarationKind ?? (kind & 8 ? 'let' : 'const'),
5523
5632
  declarations,
5524
5633
  }, start);
5525
5634
  }
@@ -5534,24 +5643,34 @@
5534
5643
  declarations,
5535
5644
  }, start);
5536
5645
  }
5537
- function parseVariableDeclarationList(parser, context, scope, privateScope, kind, origin) {
5646
+ function parseVariableDeclarationList(parser, context, scope, privateScope, kind, origin, declarationKind) {
5538
5647
  let bindingCount = 1;
5539
- const list = [
5540
- parseVariableDeclaration(parser, context, scope, privateScope, kind, origin),
5541
- ];
5648
+ const firstDeclaration = parseVariableDeclaration(parser, context, scope, privateScope, kind, origin, declarationKind);
5649
+ const list = [firstDeclaration];
5650
+ const resourceNames = declarationKind && parser.options.lexical ? new Set([firstDeclaration.id.name]) : undefined;
5542
5651
  while (consumeOpt(parser, context, 18)) {
5543
5652
  bindingCount++;
5544
- list.push(parseVariableDeclaration(parser, context, scope, privateScope, kind, origin));
5653
+ const declaration = parseVariableDeclaration(parser, context, scope, privateScope, kind, origin, declarationKind);
5654
+ if (resourceNames) {
5655
+ const { name } = declaration.id;
5656
+ if (resourceNames.has(name))
5657
+ parser.report(145, name);
5658
+ resourceNames.add(name);
5659
+ }
5660
+ list.push(declaration);
5545
5661
  }
5546
5662
  if (bindingCount > 1 && origin & 32 && parser.getToken() & 262144) {
5547
5663
  parser.report(61, KeywordDescTable[parser.getToken() & 255]);
5548
5664
  }
5549
5665
  return list;
5550
5666
  }
5551
- function parseVariableDeclaration(parser, context, scope, privateScope, kind, origin) {
5667
+ function parseVariableDeclaration(parser, context, scope, privateScope, kind, origin, declarationKind) {
5552
5668
  const { tokenStart } = parser;
5553
5669
  const token = parser.getToken();
5554
5670
  let init = null;
5671
+ if (declarationKind && (token & 2097152) === 2097152) {
5672
+ parser.report(50);
5673
+ }
5555
5674
  const id = parseBindingPattern(parser, context, scope, privateScope, kind, origin);
5556
5675
  if (parser.getToken() === 1077936155) {
5557
5676
  nextToken(parser, context | 32);
@@ -5566,7 +5685,7 @@
5566
5685
  }
5567
5686
  else if ((kind & 16 || (token & 2097152) > 0) &&
5568
5687
  (parser.getToken() & 262144) !== 262144) {
5569
- parser.report(59, kind & 16 ? 'const' : 'destructuring');
5688
+ parser.report(59, declarationKind ?? (kind & 16 ? 'const' : 'destructuring'));
5570
5689
  }
5571
5690
  return parser.finishNode({
5572
5691
  type: 'VariableDeclarator',
@@ -5587,25 +5706,23 @@
5587
5706
  let init = null;
5588
5707
  let isVarDecl = parser.getToken() === 86088 ||
5589
5708
  parser.getToken() === 241737 ||
5590
- parser.getToken() === 86090;
5709
+ parser.getToken() === 86090 ||
5710
+ parser.getToken() === 209013;
5711
+ let resourceDeclarationKind;
5712
+ let consumedForOfDelimiter = false;
5591
5713
  let right;
5592
5714
  const { tokenStart } = parser;
5593
5715
  const token = parser.getToken();
5594
5716
  if (isVarDecl) {
5595
5717
  if (token === 241737) {
5596
5718
  init = parseIdentifier(parser, context);
5597
- if (parser.getToken() & (143360 | 2097152)) {
5598
- if (parser.getToken() === 8673330) {
5599
- if (context & 1)
5600
- parser.report(67);
5601
- }
5602
- else {
5603
- init = parser.finishNode({
5604
- type: 'VariableDeclaration',
5605
- kind: 'let',
5606
- declarations: parseVariableDeclarationList(parser, context | 131072, scope, privateScope, 8, 32),
5607
- }, tokenStart);
5608
- }
5719
+ if (parser.getToken() & (143360 | 2097152) &&
5720
+ (parser.getToken() & 20480) !== 20480) {
5721
+ init = parser.finishNode({
5722
+ type: 'VariableDeclaration',
5723
+ kind: 'let',
5724
+ declarations: parseVariableDeclarationList(parser, context | 131072, scope, privateScope, 8, 32),
5725
+ }, tokenStart);
5609
5726
  parser.assignable = 1;
5610
5727
  }
5611
5728
  else if (context & 1) {
@@ -5619,6 +5736,81 @@
5619
5736
  parser.report(115);
5620
5737
  }
5621
5738
  }
5739
+ else if (token === 209013) {
5740
+ const usingIdentifier = parseIdentifier(parser, context);
5741
+ if ((parser.flags & 1) !== 0 || !isResourceBindingStart(parser.getToken())) {
5742
+ isVarDecl = false;
5743
+ parser.assignable = 1;
5744
+ init = parseMemberOrUpdateExpression(parser, context, privateScope, usingIdentifier, 0, 0, tokenStart);
5745
+ }
5746
+ else if (parser.getToken() === 471156) {
5747
+ const ofStart = parser.tokenStart;
5748
+ const ofToken = parser.getToken();
5749
+ const ofValue = parser.tokenValue;
5750
+ const ofIdentifier = parseIdentifier(parser, context);
5751
+ if (parser.getToken() !== 1077936155 &&
5752
+ parser.getToken() !== 8673330 &&
5753
+ parser.getToken() !== 1074790417 &&
5754
+ parser.getToken() !== 18) {
5755
+ isVarDecl = false;
5756
+ consumedForOfDelimiter = true;
5757
+ parser.assignable = 1;
5758
+ init = usingIdentifier;
5759
+ }
5760
+ else {
5761
+ resourceDeclarationKind = 'using';
5762
+ validateBindingIdentifier(parser, context, 16, ofToken, 0);
5763
+ scope?.addBlockName(context, ofValue, 16, 32);
5764
+ let declarationInitializer = null;
5765
+ if (parser.getToken() === 1077936155) {
5766
+ nextToken(parser, context | 32);
5767
+ declarationInitializer = parseExpression(parser, context | 131072, privateScope, 1, 0, parser.tokenStart);
5768
+ if ((parser.getToken() & 262144) === 262144) {
5769
+ throw new ParseError(ofStart, parser.currentLocation, 60, parser.getToken() === 471156 ? 'of' : 'in');
5770
+ }
5771
+ }
5772
+ else if (parser.getToken() !== 8673330) {
5773
+ parser.report(59, resourceDeclarationKind);
5774
+ }
5775
+ const declarations = [
5776
+ parser.finishNode({
5777
+ type: 'VariableDeclarator',
5778
+ id: ofIdentifier,
5779
+ init: declarationInitializer,
5780
+ }, ofStart),
5781
+ ];
5782
+ const resourceNames = parser.options.lexical ? new Set([ofValue]) : undefined;
5783
+ while (consumeOpt(parser, context | 131072, 18)) {
5784
+ const declaration = parseVariableDeclaration(parser, context | 131072, scope, privateScope, 16, 32, resourceDeclarationKind);
5785
+ if (resourceNames) {
5786
+ const { name } = declaration.id;
5787
+ if (resourceNames.has(name))
5788
+ parser.report(145, name);
5789
+ resourceNames.add(name);
5790
+ }
5791
+ declarations.push(declaration);
5792
+ }
5793
+ if (declarations.length > 1 && parser.getToken() & 262144) {
5794
+ parser.report(61, KeywordDescTable[parser.getToken() & 255]);
5795
+ }
5796
+ init = parser.finishNode({
5797
+ type: 'VariableDeclaration',
5798
+ kind: resourceDeclarationKind,
5799
+ declarations,
5800
+ }, tokenStart);
5801
+ parser.assignable = 1;
5802
+ }
5803
+ }
5804
+ else {
5805
+ resourceDeclarationKind = 'using';
5806
+ init = parser.finishNode({
5807
+ type: 'VariableDeclaration',
5808
+ kind: resourceDeclarationKind,
5809
+ declarations: parseVariableDeclarationList(parser, context | 131072, scope, privateScope, 16, 32, resourceDeclarationKind),
5810
+ }, tokenStart);
5811
+ parser.assignable = 1;
5812
+ }
5813
+ }
5622
5814
  else {
5623
5815
  nextToken(parser, context);
5624
5816
  init = parser.finishNode(token === 86088
@@ -5635,6 +5827,42 @@
5635
5827
  parser.assignable = 1;
5636
5828
  }
5637
5829
  }
5830
+ else if (token === 209006 &&
5831
+ (context & 2048 || (context & 2 && context & 8))) {
5832
+ if (context & 524288)
5833
+ parser.report(177);
5834
+ nextToken(parser, context | 32);
5835
+ let awaitArgument;
5836
+ if ((parser.flags & 1) === 0 && parser.getToken() === 209013) {
5837
+ const usingStart = parser.tokenStart;
5838
+ const usingIdentifier = parseIdentifier(parser, context);
5839
+ if ((parser.flags & 1) === 0 && isResourceBindingStart(parser.getToken())) {
5840
+ resourceDeclarationKind = 'await using';
5841
+ isVarDecl = true;
5842
+ init = parser.finishNode({
5843
+ type: 'VariableDeclaration',
5844
+ kind: resourceDeclarationKind,
5845
+ declarations: parseVariableDeclarationList(parser, context | 131072, scope, privateScope, 16, 32, resourceDeclarationKind),
5846
+ }, tokenStart);
5847
+ parser.assignable = 1;
5848
+ }
5849
+ else {
5850
+ awaitArgument = parseMemberOrUpdateExpression(parser, context, privateScope, usingIdentifier, 0, 0, usingStart);
5851
+ }
5852
+ }
5853
+ else {
5854
+ awaitArgument = parseLeftHandSideExpression(parser, context, privateScope, 0, 0, 1);
5855
+ }
5856
+ if (!isVarDecl) {
5857
+ if (parser.getToken() === 8391735)
5858
+ parser.report(33);
5859
+ parser.assignable = 2;
5860
+ init = parser.finishNode({
5861
+ type: 'AwaitExpression',
5862
+ argument: awaitArgument,
5863
+ }, tokenStart);
5864
+ }
5865
+ }
5638
5866
  else if (token === 1074790417) {
5639
5867
  if (forAwait)
5640
5868
  parser.report(82);
@@ -5656,12 +5884,13 @@
5656
5884
  else {
5657
5885
  init = parseLeftHandSideExpression(parser, context | 131072, privateScope, 1, 0, 1);
5658
5886
  }
5659
- if ((parser.getToken() & 262144) === 262144) {
5660
- if (parser.getToken() === 471156) {
5887
+ if (consumedForOfDelimiter || (parser.getToken() & 262144) === 262144) {
5888
+ if (consumedForOfDelimiter || parser.getToken() === 471156) {
5661
5889
  if (parser.assignable & 2)
5662
5890
  parser.report(80, forAwait ? 'await' : 'of');
5663
5891
  reinterpretToPattern(parser, init);
5664
- nextToken(parser, context | 32);
5892
+ if (!consumedForOfDelimiter)
5893
+ nextToken(parser, context | 32);
5665
5894
  right = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart);
5666
5895
  consume(parser, context | 32, 16);
5667
5896
  const body = parseIterationStatementBody(parser, context, scope, privateScope, labels);
@@ -5673,6 +5902,8 @@
5673
5902
  await: forAwait,
5674
5903
  }, start);
5675
5904
  }
5905
+ if (resourceDeclarationKind)
5906
+ parser.report(30, 'in');
5676
5907
  if (parser.assignable & 2)
5677
5908
  parser.report(80, 'in');
5678
5909
  reinterpretToPattern(parser, init);
@@ -5726,7 +5957,7 @@
5726
5957
  function parseImportDeclaration(parser, context, scope) {
5727
5958
  const start = parser.tokenStart;
5728
5959
  nextToken(parser, context);
5729
- let source = null;
5960
+ let source;
5730
5961
  const { tokenStart } = parser;
5731
5962
  let specifiers = [];
5732
5963
  if (parser.getToken() === 134283267) {
@@ -5870,7 +6101,7 @@
5870
6101
  declaration = parseFunctionDeclaration(parser, context, scope, undefined, 4, 1, 1, 0, parser.tokenStart);
5871
6102
  break;
5872
6103
  }
5873
- case 132:
6104
+ case 133:
5874
6105
  case 86094:
5875
6106
  declaration = parseClassDeclaration(parser, context, scope, undefined, 1);
5876
6107
  break;
@@ -5993,7 +6224,7 @@
5993
6224
  matchOrInsertSemicolon(parser, context | 32);
5994
6225
  break;
5995
6226
  }
5996
- case 132:
6227
+ case 133:
5997
6228
  case 86094:
5998
6229
  declaration = parseClassDeclaration(parser, context, scope, undefined, 2);
5999
6230
  break;
@@ -6331,7 +6562,7 @@
6331
6562
  const { tokenStart } = parser;
6332
6563
  nextToken(parser, context);
6333
6564
  switch (parser.getToken()) {
6334
- case 67108990:
6565
+ case 67108991:
6335
6566
  parser.report(167);
6336
6567
  case 67174411: {
6337
6568
  if ((context & 512) === 0)
@@ -6378,10 +6609,13 @@
6378
6609
  switch (parser.getToken()) {
6379
6610
  case 67108877: {
6380
6611
  nextToken(parser, (context | 262144 | 8) ^ 8);
6381
- if (context & 16 && parser.getToken() === 130 && parser.tokenValue === 'super') {
6612
+ if (context & 16 && parser.getToken() === 131 && parser.tokenValue === 'super') {
6382
6613
  parser.report(173);
6383
6614
  }
6384
- parser.assignable = 1;
6615
+ parser.assignable =
6616
+ (parser.flags & 2048) === 2048
6617
+ ? 2
6618
+ : 1;
6385
6619
  const property = parsePropertyOrPrivatePropertyName(parser, context | 64, privateScope);
6386
6620
  expr = parser.finishNode({
6387
6621
  type: 'MemberExpression',
@@ -6406,7 +6640,7 @@
6406
6640
  const { tokenStart } = parser;
6407
6641
  const property = parseExpressions(parser, context, privateScope, inGroup, 1, tokenStart);
6408
6642
  consume(parser, context, 20);
6409
- parser.assignable = 1;
6643
+ parser.assignable = restoreHasOptionalChaining ? 2 : 1;
6410
6644
  expr = parser.finishNode({
6411
6645
  type: 'MemberExpression',
6412
6646
  object: expr,
@@ -6447,7 +6681,7 @@
6447
6681
  }
6448
6682
  break;
6449
6683
  }
6450
- case 67108990: {
6684
+ case 67108991: {
6451
6685
  nextToken(parser, (context | 262144 | 8) ^ 8);
6452
6686
  parser.flags |= 2048;
6453
6687
  parser.assignable = 2;
@@ -6534,12 +6768,12 @@
6534
6768
  }
6535
6769
  function parsePropertyOrPrivatePropertyName(parser, context, privateScope) {
6536
6770
  if ((parser.getToken() & 143360) === 0 &&
6537
- parser.getToken() !== -2147483528 &&
6538
6771
  parser.getToken() !== -2147483527 &&
6539
- parser.getToken() !== 130) {
6772
+ parser.getToken() !== -2147483526 &&
6773
+ parser.getToken() !== 131) {
6540
6774
  parser.report(160);
6541
6775
  }
6542
- return parser.getToken() === 130
6776
+ return parser.getToken() === 131
6543
6777
  ? parsePrivateIdentifier(parser, context, privateScope, 0)
6544
6778
  : parseIdentifier(parser, context);
6545
6779
  }
@@ -6632,7 +6866,7 @@
6632
6866
  return parseThisExpression(parser, context);
6633
6867
  case 65540:
6634
6868
  return parseRegExpLiteral(parser, context);
6635
- case 132:
6869
+ case 133:
6636
6870
  case 86094:
6637
6871
  return parseClassExpression(parser, context, privateScope, inGroup, start);
6638
6872
  case 86109:
@@ -6643,9 +6877,9 @@
6643
6877
  return parseTemplate(parser, context, privateScope);
6644
6878
  case 86107:
6645
6879
  return parseNewExpression(parser, context, privateScope, inGroup);
6646
- case 134283388:
6880
+ case 134283389:
6647
6881
  return parseBigIntLiteral(parser, context);
6648
- case 130:
6882
+ case 131:
6649
6883
  return parsePrivateIdentifier(parser, context, privateScope, 0);
6650
6884
  case 86106:
6651
6885
  return parseImportCallOrMetaExpression(parser, context, privateScope, inNew, inGroup, start);
@@ -6674,7 +6908,7 @@
6674
6908
  parser.report(169);
6675
6909
  nextToken(parser, context);
6676
6910
  const token = parser.getToken();
6677
- if (token !== 209030 && parser.tokenValue !== 'meta') {
6911
+ if (token !== 209031 && parser.tokenValue !== 'meta') {
6678
6912
  parser.report(174);
6679
6913
  }
6680
6914
  else if (token & -2147483648) {
@@ -6722,7 +6956,7 @@
6722
6956
  const value = parseStringLiteral(parser, context);
6723
6957
  const keyContent = key.type === 'Literal' ? key.value : key.name;
6724
6958
  if (keysContent.has(keyContent)) {
6725
- parser.report(145, `${keyContent}`);
6959
+ parser.report(145, keyContent);
6726
6960
  }
6727
6961
  keysContent.add(keyContent);
6728
6962
  attributes.push(parser.finishNode({
@@ -6819,6 +7053,7 @@
6819
7053
  consume(parser, context, 67174409);
6820
7054
  quasis.push(parseTemplateElement(parser, tokenValue, tokenRaw, tokenStart, true));
6821
7055
  }
7056
+ parser.assignable = 2;
6822
7057
  return parser.finishNode({
6823
7058
  type: 'TemplateLiteral',
6824
7059
  expressions,
@@ -6897,7 +7132,7 @@
6897
7132
  }
6898
7133
  function parseLiteral(parser, context) {
6899
7134
  const { tokenValue, tokenRaw, tokenStart } = parser;
6900
- if (parser.getToken() === 134283388) {
7135
+ if (parser.getToken() === 134283389) {
6901
7136
  return parseBigIntLiteral(parser, context);
6902
7137
  }
6903
7138
  const node = {
@@ -7414,9 +7649,9 @@
7414
7649
  let key = null;
7415
7650
  let value;
7416
7651
  if (parser.getToken() & 143360 ||
7417
- parser.getToken() === -2147483528 ||
7418
- parser.getToken() === -2147483527) {
7419
- if (parser.getToken() === -2147483527)
7652
+ parser.getToken() === -2147483527 ||
7653
+ parser.getToken() === -2147483526) {
7654
+ if (parser.getToken() === -2147483526)
7420
7655
  destructible |= 16;
7421
7656
  key = parseIdentifier(parser, context);
7422
7657
  if (parser.getToken() === 18 ||
@@ -7448,7 +7683,7 @@
7448
7683
  else {
7449
7684
  destructible |=
7450
7685
  (token === 209006 ? 128 : 0) |
7451
- (token === -2147483528 ? 16 : 0);
7686
+ (token === -2147483527 ? 16 : 0);
7452
7687
  value = parser.cloneIdentifier(key);
7453
7688
  }
7454
7689
  }
@@ -7575,7 +7810,7 @@
7575
7810
  }
7576
7811
  else if (parser.getToken() & 143360) {
7577
7812
  destructible |= 16;
7578
- if (token === -2147483528)
7813
+ if (token === -2147483527)
7579
7814
  parser.report(95);
7580
7815
  if (token === 209005) {
7581
7816
  if (parser.flags & 1)
@@ -8386,7 +8621,7 @@
8386
8621
  const id = parseIdentifier(parser, context | 32);
8387
8622
  const { tokenStart } = parser;
8388
8623
  if (consumeOpt(parser, context, 67108877)) {
8389
- if (context & 65536 && parser.getToken() === 209029) {
8624
+ if (context & 65536 && parser.getToken() === 209030) {
8390
8625
  parser.assignable = 2;
8391
8626
  return parseMetaProperty(parser, context, id, start);
8392
8627
  }
@@ -8398,7 +8633,7 @@
8398
8633
  }
8399
8634
  const expr = parsePrimaryExpression(parser, context, privateScope, 2, 1, 0, inGroup, 1, tokenStart);
8400
8635
  context = (context | 131072) ^ 131072;
8401
- if (parser.getToken() === 67108990)
8636
+ if (parser.getToken() === 67108991)
8402
8637
  parser.report(168);
8403
8638
  const callee = parseMemberExpressionNoCall(parser, context, privateScope, expr, inGroup, tokenStart);
8404
8639
  parser.assignable = 2;
@@ -8452,7 +8687,7 @@
8452
8687
  }, start);
8453
8688
  }
8454
8689
  let destructible = 0;
8455
- let expr = null;
8690
+ let expr;
8456
8691
  let isNonSimpleParameterList = 0;
8457
8692
  parser.destructible =
8458
8693
  (parser.destructible | 256 | 128) ^
@@ -8599,7 +8834,7 @@
8599
8834
  let start;
8600
8835
  let decorators;
8601
8836
  if (parser.leadingDecorators.decorators.length) {
8602
- if (parser.getToken() === 132) {
8837
+ if (parser.getToken() === 133) {
8603
8838
  parser.report(30, '@');
8604
8839
  }
8605
8840
  start = parser.leadingDecorators.start;
@@ -8688,7 +8923,7 @@
8688
8923
  function parseDecorators(parser, context, privateScope) {
8689
8924
  const list = [];
8690
8925
  if (parser.options.next) {
8691
- while (parser.getToken() === 132) {
8926
+ while (parser.getToken() === 133) {
8692
8927
  list.push(parseDecoratorList(parser, context, privateScope));
8693
8928
  }
8694
8929
  }
@@ -8741,7 +8976,7 @@
8741
8976
  let kind = isStatic ? 32 : 0;
8742
8977
  let key = null;
8743
8978
  const token = parser.getToken();
8744
- if (token & (143360 | 36864) || token === -2147483528) {
8979
+ if (token & (143360 | 36864) || token === -2147483527) {
8745
8980
  key = parseIdentifier(parser, context);
8746
8981
  switch (token) {
8747
8982
  case 36970:
@@ -8762,6 +8997,9 @@
8762
8997
  break;
8763
8998
  case 209008:
8764
8999
  if (parser.getToken() !== 67174411) {
9000
+ if (parser.getToken() === 8391476 && parser.flags & 1) {
9001
+ return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, start);
9002
+ }
8765
9003
  if ((parser.getToken() & 1073741824) === 1073741824) {
8766
9004
  return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, start);
8767
9005
  }
@@ -8770,6 +9008,9 @@
8770
9008
  break;
8771
9009
  case 209009:
8772
9010
  if (parser.getToken() !== 67174411) {
9011
+ if (parser.getToken() === 8391476 && parser.flags & 1) {
9012
+ return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, start);
9013
+ }
8773
9014
  if ((parser.getToken() & 1073741824) === 1073741824) {
8774
9015
  return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, start);
8775
9016
  }
@@ -8798,7 +9039,7 @@
8798
9039
  kind |= 8;
8799
9040
  nextToken(parser, context);
8800
9041
  }
8801
- else if (parser.getToken() === 130) {
9042
+ else if (parser.getToken() === 131) {
8802
9043
  kind |= 8192;
8803
9044
  key = parsePrivateIdentifier(parser, context | 16, privateScope, 768);
8804
9045
  }
@@ -8808,7 +9049,7 @@
8808
9049
  else if (isStatic && token === 2162700) {
8809
9050
  return parseStaticBlock(parser, context | 16, scope, privateScope, start);
8810
9051
  }
8811
- else if (token === -2147483527) {
9052
+ else if (token === -2147483526) {
8812
9053
  key = parseIdentifier(parser, context);
8813
9054
  if (parser.getToken() !== 67174411)
8814
9055
  parser.report(30, KeywordDescTable[parser.getToken() & 255]);
@@ -8818,8 +9059,8 @@
8818
9059
  }
8819
9060
  if (kind & (8 | 16 | 768 | 1024)) {
8820
9061
  if (parser.getToken() & 143360 ||
8821
- parser.getToken() === -2147483528 ||
8822
- parser.getToken() === -2147483527) {
9062
+ parser.getToken() === -2147483527 ||
9063
+ parser.getToken() === -2147483526) {
8823
9064
  key = parseIdentifier(parser, context);
8824
9065
  }
8825
9066
  else if ((parser.getToken() & 134217728) === 134217728) {
@@ -8829,7 +9070,7 @@
8829
9070
  kind |= 2;
8830
9071
  key = parseComputedPropertyName(parser, context, privateScope, 0);
8831
9072
  }
8832
- else if (parser.getToken() === 130) {
9073
+ else if (parser.getToken() === 131) {
8833
9074
  kind |= 8192;
8834
9075
  key = parsePrivateIdentifier(parser, context, privateScope, kind);
8835
9076
  }
@@ -8909,7 +9150,7 @@
8909
9150
  if (parser.getToken() === 1077936155) {
8910
9151
  nextToken(parser, context | 32);
8911
9152
  const { tokenStart } = parser;
8912
- if (parser.getToken() === 537079927)
9153
+ if (parser.getToken() === 537079928)
8913
9154
  parser.report(119);
8914
9155
  const modifierFlags = 1024 |
8915
9156
  2048 |
@@ -8941,7 +9182,7 @@
8941
9182
  }
8942
9183
  function parseBindingPattern(parser, context, scope, privateScope, type, origin) {
8943
9184
  if (parser.getToken() & 143360 ||
8944
- ((context & 1) === 0 && parser.getToken() === -2147483527))
9185
+ ((context & 1) === 0 && parser.getToken() === -2147483526))
8945
9186
  return parseAndClassifyIdentifier(parser, context, scope, type, origin);
8946
9187
  if ((parser.getToken() & 2097152) !== 2097152)
8947
9188
  parser.report(30, KeywordDescTable[parser.getToken() & 255]);
@@ -8960,7 +9201,7 @@
8960
9201
  if ((token & 537079808) === 537079808) {
8961
9202
  parser.report(119);
8962
9203
  }
8963
- else if ((token & 36864) === 36864 || token === -2147483527) {
9204
+ else if ((token & 36864) === 36864 || token === -2147483526) {
8964
9205
  parser.report(118);
8965
9206
  }
8966
9207
  }
@@ -9081,7 +9322,7 @@
9081
9322
  }
9082
9323
  }
9083
9324
  function parseJSXChildOrClosingElement(parser, context, privateScope, inJSXChild) {
9084
- if (parser.getToken() === 137)
9325
+ if (parser.getToken() === 138)
9085
9326
  return parseJSXText(parser, context);
9086
9327
  if (parser.getToken() === 2162700)
9087
9328
  return parseJSXExpressionContainer(parser, context, privateScope, 1, 0);
@@ -9095,7 +9336,7 @@
9095
9336
  parser.report(0);
9096
9337
  }
9097
9338
  function parseJSXChildOrClosingFragment(parser, context, privateScope, inJSXChild) {
9098
- if (parser.getToken() === 137)
9339
+ if (parser.getToken() === 138)
9099
9340
  return parseJSXText(parser, context);
9100
9341
  if (parser.getToken() === 2162700)
9101
9342
  return parseJSXExpressionContainer(parser, context, privateScope, 1, 0);
@@ -9232,7 +9473,7 @@
9232
9473
  const { tokenStart } = parser;
9233
9474
  if (parser.getToken() === 14)
9234
9475
  return parseJSXSpreadChild(parser, context, privateScope, start);
9235
- let expression = null;
9476
+ let expression;
9236
9477
  if (parser.getToken() === 1074790415) {
9237
9478
  if (isAttr)
9238
9479
  parser.report(157);
@@ -9286,7 +9527,7 @@
9286
9527
  }, start);
9287
9528
  }
9288
9529
 
9289
- const version = version$1;
9530
+ const { version } = packageJson;
9290
9531
  function parseScript(source, options) {
9291
9532
  return parseSource(source, { ...options, sourceType: 'script' });
9292
9533
  }