meriyah 7.1.2 → 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.
- package/CHANGELOG.md +16 -0
- package/README.md +0 -4
- package/dist/meriyah.cjs +370 -135
- package/dist/meriyah.min.mjs +1 -1
- package/dist/meriyah.mjs +370 -135
- package/dist/meriyah.umd.js +370 -135
- package/dist/meriyah.umd.min.js +1 -1
- package/dist/types/estree.d.ts +1 -1
- package/dist/types/token.d.ts +22 -21
- package/package.json +2 -1
package/dist/meriyah.umd.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
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.
|
|
7
|
+
var version$1 = "7.2.0";
|
|
8
8
|
var packageJson = {
|
|
9
9
|
version: version$1};
|
|
10
10
|
|
|
@@ -492,7 +492,7 @@
|
|
|
492
492
|
return 'RegularExpression';
|
|
493
493
|
case 67174408:
|
|
494
494
|
case 67174409:
|
|
495
|
-
case
|
|
495
|
+
case 132:
|
|
496
496
|
return 'TemplateLiteral';
|
|
497
497
|
default:
|
|
498
498
|
if ((t & 143360) === 143360)
|
|
@@ -800,7 +800,7 @@
|
|
|
800
800
|
loc;
|
|
801
801
|
description;
|
|
802
802
|
constructor(start, end, type, ...params) {
|
|
803
|
-
const description = errorMessages[type].
|
|
803
|
+
const description = errorMessages[type].replaceAll(/%(\d+)/g, (_, i) => params[i]);
|
|
804
804
|
const message = '[' + start.line + ':' + start.column + '-' + end.line + ':' + end.column + ']: ' + description;
|
|
805
805
|
super(message);
|
|
806
806
|
this.start = start.index;
|
|
@@ -835,7 +835,7 @@
|
|
|
835
835
|
'extends', 'finally', 'for', 'function', 'if', 'import', 'new', 'return', 'super', 'switch',
|
|
836
836
|
'this', 'throw', 'try', 'while', 'with',
|
|
837
837
|
'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield',
|
|
838
|
-
'as', 'async', 'await', 'constructor', 'get', 'set', 'accessor', 'from', 'of',
|
|
838
|
+
'as', 'async', 'await', 'constructor', 'get', 'set', 'accessor', 'from', 'of', 'using',
|
|
839
839
|
'enum', 'eval', 'arguments', 'escaped keyword', 'escaped future reserved keyword', 'reserved if strict', '#',
|
|
840
840
|
'BigIntLiteral', '??', '?.', 'WhiteSpace', 'Illegal', 'LineTerminator', 'PrivateField',
|
|
841
841
|
'Template', '@', 'target', 'meta', 'LineFeed', 'Escaped', 'JSXText'
|
|
@@ -882,6 +882,7 @@
|
|
|
882
882
|
let: 241737,
|
|
883
883
|
null: 86023,
|
|
884
884
|
of: 471156,
|
|
885
|
+
using: 209013,
|
|
885
886
|
package: 36966,
|
|
886
887
|
private: 36967,
|
|
887
888
|
protected: 36968,
|
|
@@ -892,12 +893,12 @@
|
|
|
892
893
|
true: 86022,
|
|
893
894
|
with: 20579,
|
|
894
895
|
yield: 241771,
|
|
895
|
-
enum:
|
|
896
|
-
eval:
|
|
896
|
+
enum: 86134,
|
|
897
|
+
eval: 537079927,
|
|
897
898
|
as: 77932,
|
|
898
|
-
arguments:
|
|
899
|
-
target:
|
|
900
|
-
meta:
|
|
899
|
+
arguments: 537079928,
|
|
900
|
+
target: 209030,
|
|
901
|
+
meta: 209031,
|
|
901
902
|
accessor: 12402,
|
|
902
903
|
};
|
|
903
904
|
|
|
@@ -959,24 +960,24 @@
|
|
|
959
960
|
if ((context & (2 | 2048)) === 0) {
|
|
960
961
|
return token | -2147483648;
|
|
961
962
|
}
|
|
962
|
-
return -
|
|
963
|
+
return -2147483527;
|
|
963
964
|
}
|
|
964
965
|
if (context & 1) {
|
|
965
966
|
if (token === 36970) {
|
|
966
|
-
return -
|
|
967
|
+
return -2147483526;
|
|
967
968
|
}
|
|
968
969
|
if ((token & 36864) === 36864) {
|
|
969
|
-
return -
|
|
970
|
+
return -2147483526;
|
|
970
971
|
}
|
|
971
972
|
if ((token & 20480) === 20480) {
|
|
972
973
|
if (context & 262144 && (context & 8) === 0) {
|
|
973
974
|
return token | -2147483648;
|
|
974
975
|
}
|
|
975
976
|
else {
|
|
976
|
-
return -
|
|
977
|
+
return -2147483527;
|
|
977
978
|
}
|
|
978
979
|
}
|
|
979
|
-
return
|
|
980
|
+
return 209019 | -2147483648;
|
|
980
981
|
}
|
|
981
982
|
if (context & 262144 &&
|
|
982
983
|
(context & 8) === 0 &&
|
|
@@ -985,31 +986,31 @@
|
|
|
985
986
|
}
|
|
986
987
|
if (token === 241771) {
|
|
987
988
|
return context & 262144
|
|
988
|
-
?
|
|
989
|
+
? 209019 | -2147483648
|
|
989
990
|
: context & 1024
|
|
990
|
-
? -
|
|
991
|
+
? -2147483527
|
|
991
992
|
: token | -2147483648;
|
|
992
993
|
}
|
|
993
994
|
if (token === 209005) {
|
|
994
|
-
return
|
|
995
|
+
return 209019 | -2147483648;
|
|
995
996
|
}
|
|
996
997
|
if ((token & 36864) === 36864) {
|
|
997
998
|
return token | 12288 | -2147483648;
|
|
998
999
|
}
|
|
999
|
-
return -
|
|
1000
|
+
return -2147483527;
|
|
1000
1001
|
}
|
|
1001
1002
|
return 208897 | (hasEscape ? -2147483648 : 0);
|
|
1002
1003
|
}
|
|
1003
1004
|
function scanPrivateIdentifier(parser) {
|
|
1004
1005
|
let char = advanceChar(parser);
|
|
1005
1006
|
if (char === 92)
|
|
1006
|
-
return
|
|
1007
|
+
return 131;
|
|
1007
1008
|
const merged = consumePossibleSurrogatePair(parser);
|
|
1008
1009
|
if (merged)
|
|
1009
1010
|
char = merged;
|
|
1010
1011
|
if (!isIdentifierStart(char))
|
|
1011
1012
|
parser.report(96);
|
|
1012
|
-
return
|
|
1013
|
+
return 131;
|
|
1013
1014
|
}
|
|
1014
1015
|
function scanIdentifierUnicodeEscape(parser) {
|
|
1015
1016
|
if (parser.source.charCodeAt(parser.index + 1) !== 117) {
|
|
@@ -1215,7 +1216,7 @@
|
|
|
1215
1216
|
if (isBigInt) {
|
|
1216
1217
|
parser.tokenRaw = parser.source.slice(parser.tokenIndex, parser.index);
|
|
1217
1218
|
parser.tokenValue = BigInt(parser.tokenRaw.slice(0, -1).replaceAll('_', ''));
|
|
1218
|
-
return
|
|
1219
|
+
return 134283389;
|
|
1219
1220
|
}
|
|
1220
1221
|
parser.tokenValue =
|
|
1221
1222
|
kind & (1 | 2 | 8 | 4)
|
|
@@ -1584,6 +1585,7 @@
|
|
|
1584
1585
|
const { index: start } = parser;
|
|
1585
1586
|
let token = 67174409;
|
|
1586
1587
|
let ret = '';
|
|
1588
|
+
let hasCarriageReturn = false;
|
|
1587
1589
|
let char = advanceChar(parser);
|
|
1588
1590
|
while (char !== 96) {
|
|
1589
1591
|
if (char === 36 && parser.source.charCodeAt(parser.index + 1) === 123) {
|
|
@@ -1593,6 +1595,8 @@
|
|
|
1593
1595
|
}
|
|
1594
1596
|
else if (char === 92) {
|
|
1595
1597
|
char = advanceChar(parser);
|
|
1598
|
+
if (char === 13)
|
|
1599
|
+
hasCarriageReturn = true;
|
|
1596
1600
|
if (char > 0x7e) {
|
|
1597
1601
|
ret += String.fromCodePoint(char);
|
|
1598
1602
|
}
|
|
@@ -1607,7 +1611,9 @@
|
|
|
1607
1611
|
parser.line = line;
|
|
1608
1612
|
parser.column = column;
|
|
1609
1613
|
ret = null;
|
|
1610
|
-
char = scanBadTemplate(parser, char)
|
|
1614
|
+
char = scanBadTemplate(parser, char, () => {
|
|
1615
|
+
hasCarriageReturn = true;
|
|
1616
|
+
});
|
|
1611
1617
|
if (char < 0)
|
|
1612
1618
|
token = 67174408;
|
|
1613
1619
|
break;
|
|
@@ -1618,10 +1624,13 @@
|
|
|
1618
1624
|
}
|
|
1619
1625
|
}
|
|
1620
1626
|
else if (parser.index < parser.end) {
|
|
1621
|
-
if (char === 13
|
|
1622
|
-
|
|
1627
|
+
if (char === 13)
|
|
1628
|
+
hasCarriageReturn = true;
|
|
1629
|
+
if (char === 13 && parser.source.charCodeAt(parser.index + 1) === 10) {
|
|
1623
1630
|
parser.currentChar = parser.source.charCodeAt(++parser.index);
|
|
1624
1631
|
}
|
|
1632
|
+
if (char === 13)
|
|
1633
|
+
char = 10;
|
|
1625
1634
|
if (((char & 83) < 3 && char === 10) || (char ^ 8232) <= 1) {
|
|
1626
1635
|
parser.column = -1;
|
|
1627
1636
|
parser.line++;
|
|
@@ -1634,12 +1643,16 @@
|
|
|
1634
1643
|
}
|
|
1635
1644
|
advanceChar(parser);
|
|
1636
1645
|
parser.tokenValue = ret;
|
|
1637
|
-
|
|
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;
|
|
1638
1648
|
return token;
|
|
1639
1649
|
}
|
|
1640
|
-
function scanBadTemplate(parser, ch) {
|
|
1650
|
+
function scanBadTemplate(parser, ch, onCarriageReturn) {
|
|
1641
1651
|
while (ch !== 96) {
|
|
1642
1652
|
switch (ch) {
|
|
1653
|
+
case 13:
|
|
1654
|
+
onCarriageReturn();
|
|
1655
|
+
break;
|
|
1643
1656
|
case 36: {
|
|
1644
1657
|
const index = parser.index + 1;
|
|
1645
1658
|
if (index < parser.end && parser.source.charCodeAt(index) === 123) {
|
|
@@ -1670,42 +1683,42 @@
|
|
|
1670
1683
|
}
|
|
1671
1684
|
|
|
1672
1685
|
const TokenLookup = [
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
128,
|
|
1682
|
-
127,
|
|
1683
|
-
135,
|
|
1684
|
-
127,
|
|
1685
|
-
127,
|
|
1686
|
+
129,
|
|
1687
|
+
129,
|
|
1688
|
+
129,
|
|
1689
|
+
129,
|
|
1690
|
+
129,
|
|
1691
|
+
129,
|
|
1692
|
+
129,
|
|
1693
|
+
129,
|
|
1686
1694
|
129,
|
|
1687
1695
|
128,
|
|
1696
|
+
136,
|
|
1688
1697
|
128,
|
|
1689
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,
|
|
1690
1718
|
128,
|
|
1691
|
-
128,
|
|
1692
|
-
128,
|
|
1693
|
-
128,
|
|
1694
|
-
128,
|
|
1695
|
-
128,
|
|
1696
|
-
128,
|
|
1697
|
-
128,
|
|
1698
|
-
128,
|
|
1699
|
-
128,
|
|
1700
|
-
128,
|
|
1701
|
-
128,
|
|
1702
|
-
128,
|
|
1703
|
-
128,
|
|
1704
|
-
128,
|
|
1705
|
-
127,
|
|
1706
1719
|
16842798,
|
|
1707
1720
|
134283267,
|
|
1708
|
-
|
|
1721
|
+
131,
|
|
1709
1722
|
208897,
|
|
1710
1723
|
8391477,
|
|
1711
1724
|
8390213,
|
|
@@ -1734,7 +1747,7 @@
|
|
|
1734
1747
|
1077936155,
|
|
1735
1748
|
8390721,
|
|
1736
1749
|
22,
|
|
1737
|
-
|
|
1750
|
+
133,
|
|
1738
1751
|
208897,
|
|
1739
1752
|
208897,
|
|
1740
1753
|
208897,
|
|
@@ -1762,11 +1775,11 @@
|
|
|
1762
1775
|
208897,
|
|
1763
1776
|
208897,
|
|
1764
1777
|
69271571,
|
|
1765
|
-
|
|
1778
|
+
137,
|
|
1766
1779
|
20,
|
|
1767
1780
|
8389959,
|
|
1768
1781
|
208897,
|
|
1769
|
-
|
|
1782
|
+
132,
|
|
1770
1783
|
4096,
|
|
1771
1784
|
4096,
|
|
1772
1785
|
4096,
|
|
@@ -1797,7 +1810,7 @@
|
|
|
1797
1810
|
8389702,
|
|
1798
1811
|
1074790415,
|
|
1799
1812
|
16842799,
|
|
1800
|
-
|
|
1813
|
+
129,
|
|
1801
1814
|
];
|
|
1802
1815
|
function nextToken(parser, context) {
|
|
1803
1816
|
parser.flags = (parser.flags | 1) ^ 1;
|
|
@@ -1827,8 +1840,8 @@
|
|
|
1827
1840
|
case 1074790417:
|
|
1828
1841
|
case 18:
|
|
1829
1842
|
case 16842799:
|
|
1830
|
-
case
|
|
1831
|
-
case
|
|
1843
|
+
case 133:
|
|
1844
|
+
case 129:
|
|
1832
1845
|
advanceChar(parser);
|
|
1833
1846
|
return token;
|
|
1834
1847
|
case 208897:
|
|
@@ -1839,20 +1852,20 @@
|
|
|
1839
1852
|
return scanNumber(parser, context, 16 | 128);
|
|
1840
1853
|
case 134283267:
|
|
1841
1854
|
return scanString(parser, context, char);
|
|
1842
|
-
case
|
|
1855
|
+
case 132:
|
|
1843
1856
|
return scanTemplate(parser, context);
|
|
1844
|
-
case
|
|
1857
|
+
case 137:
|
|
1845
1858
|
return scanUnicodeIdentifier(parser, context);
|
|
1846
|
-
case
|
|
1859
|
+
case 131:
|
|
1847
1860
|
return scanPrivateIdentifier(parser);
|
|
1848
|
-
case
|
|
1861
|
+
case 128:
|
|
1849
1862
|
advanceChar(parser);
|
|
1850
1863
|
break;
|
|
1851
|
-
case
|
|
1864
|
+
case 130:
|
|
1852
1865
|
state |= 1 | 4;
|
|
1853
1866
|
scanNewLine(parser);
|
|
1854
1867
|
break;
|
|
1855
|
-
case
|
|
1868
|
+
case 136:
|
|
1856
1869
|
consumeLineFeed(parser, state);
|
|
1857
1870
|
state = (state & -5) | 1;
|
|
1858
1871
|
break;
|
|
@@ -2075,7 +2088,7 @@
|
|
|
2075
2088
|
advanceChar(parser);
|
|
2076
2089
|
return 4718634;
|
|
2077
2090
|
}
|
|
2078
|
-
return
|
|
2091
|
+
return 276824446;
|
|
2079
2092
|
}
|
|
2080
2093
|
if (ch === 46) {
|
|
2081
2094
|
const index = parser.index + 1;
|
|
@@ -2083,7 +2096,7 @@
|
|
|
2083
2096
|
ch = source.charCodeAt(index);
|
|
2084
2097
|
if (!(ch >= 48 && ch <= 57)) {
|
|
2085
2098
|
advanceChar(parser);
|
|
2086
|
-
return
|
|
2099
|
+
return 67108991;
|
|
2087
2100
|
}
|
|
2088
2101
|
}
|
|
2089
2102
|
}
|
|
@@ -2191,7 +2204,7 @@
|
|
|
2191
2204
|
parser.report(119);
|
|
2192
2205
|
}
|
|
2193
2206
|
}
|
|
2194
|
-
if ((t & 20480) === 20480 || t === -
|
|
2207
|
+
if ((t & 20480) === 20480 || t === -2147483527) {
|
|
2195
2208
|
parser.report(102);
|
|
2196
2209
|
}
|
|
2197
2210
|
if (kind & (8 | 16) && (t & 255) === (241737 & 255)) {
|
|
@@ -2212,10 +2225,10 @@
|
|
|
2212
2225
|
if ((t & 537079808) === 537079808) {
|
|
2213
2226
|
parser.report(119);
|
|
2214
2227
|
}
|
|
2215
|
-
if (t === -
|
|
2228
|
+
if (t === -2147483526) {
|
|
2216
2229
|
parser.report(95);
|
|
2217
2230
|
}
|
|
2218
|
-
if (t === -
|
|
2231
|
+
if (t === -2147483527) {
|
|
2219
2232
|
parser.report(95);
|
|
2220
2233
|
}
|
|
2221
2234
|
}
|
|
@@ -2239,7 +2252,7 @@
|
|
|
2239
2252
|
parser.report(97, 'yield');
|
|
2240
2253
|
return ((t & 20480) === 20480 ||
|
|
2241
2254
|
(t & 36864) === 36864 ||
|
|
2242
|
-
t == -
|
|
2255
|
+
t == -2147483526);
|
|
2243
2256
|
}
|
|
2244
2257
|
function isPropertyWithPrivateFieldKey(expr) {
|
|
2245
2258
|
return !expr.property ? false : expr.property.type === 'PrivateIdentifier';
|
|
@@ -4454,7 +4467,7 @@
|
|
|
4454
4467
|
'159': 376,
|
|
4455
4468
|
};
|
|
4456
4469
|
function decodeHTMLStrict(text) {
|
|
4457
|
-
return text.
|
|
4470
|
+
return text.replaceAll(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, (key) => {
|
|
4458
4471
|
if (key.charAt(1) === '#') {
|
|
4459
4472
|
const secondChar = key.charAt(2);
|
|
4460
4473
|
const codePoint = secondChar === 'X' || secondChar === 'x' ? parseInt(key.slice(3), 16) : parseInt(key.slice(2), 10);
|
|
@@ -4537,7 +4550,7 @@
|
|
|
4537
4550
|
if (parser.options.raw)
|
|
4538
4551
|
parser.tokenRaw = raw;
|
|
4539
4552
|
parser.tokenValue = decodeHTMLStrict(raw);
|
|
4540
|
-
parser.setToken(
|
|
4553
|
+
parser.setToken(138);
|
|
4541
4554
|
}
|
|
4542
4555
|
function rescanJSXIdentifier(parser) {
|
|
4543
4556
|
if ((parser.getToken() & 143360) === 143360) {
|
|
@@ -4998,7 +5011,7 @@
|
|
|
4998
5011
|
return statements;
|
|
4999
5012
|
}
|
|
5000
5013
|
function parseModuleItem(parser, context, scope) {
|
|
5001
|
-
if (parser.getToken() ===
|
|
5014
|
+
if (parser.getToken() === 133) {
|
|
5002
5015
|
Object.assign(parser.leadingDecorators, {
|
|
5003
5016
|
start: parser.tokenStart,
|
|
5004
5017
|
decorators: parseDecorators(parser, context, undefined),
|
|
@@ -5025,13 +5038,21 @@
|
|
|
5025
5038
|
switch (parser.getToken()) {
|
|
5026
5039
|
case 86104:
|
|
5027
5040
|
return parseFunctionDeclaration(parser, context, scope, privateScope, origin, 1, 0, 0, start);
|
|
5028
|
-
case
|
|
5041
|
+
case 133:
|
|
5029
5042
|
case 86094:
|
|
5030
5043
|
return parseClassDeclaration(parser, context, scope, privateScope, 0);
|
|
5031
5044
|
case 86090:
|
|
5032
5045
|
return parseLexicalDeclaration(parser, context, scope, privateScope, 16, 0);
|
|
5033
5046
|
case 241737:
|
|
5034
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);
|
|
5035
5056
|
case 20564:
|
|
5036
5057
|
parser.report(103, 'export');
|
|
5037
5058
|
case 86106:
|
|
@@ -5115,15 +5136,18 @@
|
|
|
5115
5136
|
default:
|
|
5116
5137
|
expr = parsePrimaryExpression(parser, context, privateScope, 2, 0, 1, 0, 1, parser.tokenStart);
|
|
5117
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) {
|
|
5118
5142
|
if (token & 143360 && parser.getToken() === 21) {
|
|
5119
|
-
return parseLabelledStatement(parser, context, scope, privateScope, origin, labels, tokenValue,
|
|
5143
|
+
return parseLabelledStatement(parser, context, scope, privateScope, origin, labels, tokenValue, initialExpression, token, allowFuncDecl, tokenStart);
|
|
5120
5144
|
}
|
|
5121
|
-
|
|
5122
|
-
|
|
5145
|
+
let expression = parseMemberOrUpdateExpression(parser, context, privateScope, initialExpression, 0, 0, tokenStart);
|
|
5146
|
+
expression = parseAssignmentExpression(parser, context, privateScope, 0, 0, tokenStart, expression);
|
|
5123
5147
|
if (parser.getToken() === 18) {
|
|
5124
|
-
|
|
5148
|
+
expression = parseSequenceExpression(parser, context, privateScope, 0, tokenStart, expression);
|
|
5125
5149
|
}
|
|
5126
|
-
return parseExpressionStatement(parser, context,
|
|
5150
|
+
return parseExpressionStatement(parser, context, expression, tokenStart);
|
|
5127
5151
|
}
|
|
5128
5152
|
function parseBlock(parser, context, scope, privateScope, labels, start = parser.tokenStart, type = 'BlockStatement') {
|
|
5129
5153
|
const body = [];
|
|
@@ -5312,9 +5336,14 @@
|
|
|
5312
5336
|
while (parser.getToken() !== 20556 &&
|
|
5313
5337
|
parser.getToken() !== 1074790415 &&
|
|
5314
5338
|
parser.getToken() !== 20561) {
|
|
5315
|
-
|
|
5339
|
+
const statement = parseStatementListItem(parser, context | 4, scope, privateScope, 2, {
|
|
5316
5340
|
$: labels,
|
|
5317
|
-
})
|
|
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);
|
|
5318
5347
|
}
|
|
5319
5348
|
cases.push(parser.finishNode({
|
|
5320
5349
|
type: 'SwitchCase',
|
|
@@ -5516,14 +5545,90 @@
|
|
|
5516
5545
|
}
|
|
5517
5546
|
return parseExpressionStatement(parser, context, expr, tokenStart);
|
|
5518
5547
|
}
|
|
5519
|
-
function
|
|
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) {
|
|
5520
5598
|
const start = parser.tokenStart;
|
|
5521
|
-
|
|
5522
|
-
|
|
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);
|
|
5523
5628
|
matchOrInsertSemicolon(parser, context | 32);
|
|
5524
5629
|
return parser.finishNode({
|
|
5525
5630
|
type: 'VariableDeclaration',
|
|
5526
|
-
kind: kind & 8 ? 'let' : 'const',
|
|
5631
|
+
kind: declarationKind ?? (kind & 8 ? 'let' : 'const'),
|
|
5527
5632
|
declarations,
|
|
5528
5633
|
}, start);
|
|
5529
5634
|
}
|
|
@@ -5538,24 +5643,34 @@
|
|
|
5538
5643
|
declarations,
|
|
5539
5644
|
}, start);
|
|
5540
5645
|
}
|
|
5541
|
-
function parseVariableDeclarationList(parser, context, scope, privateScope, kind, origin) {
|
|
5646
|
+
function parseVariableDeclarationList(parser, context, scope, privateScope, kind, origin, declarationKind) {
|
|
5542
5647
|
let bindingCount = 1;
|
|
5543
|
-
const
|
|
5544
|
-
|
|
5545
|
-
];
|
|
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;
|
|
5546
5651
|
while (consumeOpt(parser, context, 18)) {
|
|
5547
5652
|
bindingCount++;
|
|
5548
|
-
|
|
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);
|
|
5549
5661
|
}
|
|
5550
5662
|
if (bindingCount > 1 && origin & 32 && parser.getToken() & 262144) {
|
|
5551
5663
|
parser.report(61, KeywordDescTable[parser.getToken() & 255]);
|
|
5552
5664
|
}
|
|
5553
5665
|
return list;
|
|
5554
5666
|
}
|
|
5555
|
-
function parseVariableDeclaration(parser, context, scope, privateScope, kind, origin) {
|
|
5667
|
+
function parseVariableDeclaration(parser, context, scope, privateScope, kind, origin, declarationKind) {
|
|
5556
5668
|
const { tokenStart } = parser;
|
|
5557
5669
|
const token = parser.getToken();
|
|
5558
5670
|
let init = null;
|
|
5671
|
+
if (declarationKind && (token & 2097152) === 2097152) {
|
|
5672
|
+
parser.report(50);
|
|
5673
|
+
}
|
|
5559
5674
|
const id = parseBindingPattern(parser, context, scope, privateScope, kind, origin);
|
|
5560
5675
|
if (parser.getToken() === 1077936155) {
|
|
5561
5676
|
nextToken(parser, context | 32);
|
|
@@ -5570,7 +5685,7 @@
|
|
|
5570
5685
|
}
|
|
5571
5686
|
else if ((kind & 16 || (token & 2097152) > 0) &&
|
|
5572
5687
|
(parser.getToken() & 262144) !== 262144) {
|
|
5573
|
-
parser.report(59, kind & 16 ? 'const' : 'destructuring');
|
|
5688
|
+
parser.report(59, declarationKind ?? (kind & 16 ? 'const' : 'destructuring'));
|
|
5574
5689
|
}
|
|
5575
5690
|
return parser.finishNode({
|
|
5576
5691
|
type: 'VariableDeclarator',
|
|
@@ -5591,7 +5706,10 @@
|
|
|
5591
5706
|
let init = null;
|
|
5592
5707
|
let isVarDecl = parser.getToken() === 86088 ||
|
|
5593
5708
|
parser.getToken() === 241737 ||
|
|
5594
|
-
parser.getToken() === 86090
|
|
5709
|
+
parser.getToken() === 86090 ||
|
|
5710
|
+
parser.getToken() === 209013;
|
|
5711
|
+
let resourceDeclarationKind;
|
|
5712
|
+
let consumedForOfDelimiter = false;
|
|
5595
5713
|
let right;
|
|
5596
5714
|
const { tokenStart } = parser;
|
|
5597
5715
|
const token = parser.getToken();
|
|
@@ -5618,6 +5736,81 @@
|
|
|
5618
5736
|
parser.report(115);
|
|
5619
5737
|
}
|
|
5620
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
|
+
}
|
|
5621
5814
|
else {
|
|
5622
5815
|
nextToken(parser, context);
|
|
5623
5816
|
init = parser.finishNode(token === 86088
|
|
@@ -5634,6 +5827,42 @@
|
|
|
5634
5827
|
parser.assignable = 1;
|
|
5635
5828
|
}
|
|
5636
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
|
+
}
|
|
5637
5866
|
else if (token === 1074790417) {
|
|
5638
5867
|
if (forAwait)
|
|
5639
5868
|
parser.report(82);
|
|
@@ -5655,12 +5884,13 @@
|
|
|
5655
5884
|
else {
|
|
5656
5885
|
init = parseLeftHandSideExpression(parser, context | 131072, privateScope, 1, 0, 1);
|
|
5657
5886
|
}
|
|
5658
|
-
if ((parser.getToken() & 262144) === 262144) {
|
|
5659
|
-
if (parser.getToken() === 471156) {
|
|
5887
|
+
if (consumedForOfDelimiter || (parser.getToken() & 262144) === 262144) {
|
|
5888
|
+
if (consumedForOfDelimiter || parser.getToken() === 471156) {
|
|
5660
5889
|
if (parser.assignable & 2)
|
|
5661
5890
|
parser.report(80, forAwait ? 'await' : 'of');
|
|
5662
5891
|
reinterpretToPattern(parser, init);
|
|
5663
|
-
|
|
5892
|
+
if (!consumedForOfDelimiter)
|
|
5893
|
+
nextToken(parser, context | 32);
|
|
5664
5894
|
right = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart);
|
|
5665
5895
|
consume(parser, context | 32, 16);
|
|
5666
5896
|
const body = parseIterationStatementBody(parser, context, scope, privateScope, labels);
|
|
@@ -5672,6 +5902,8 @@
|
|
|
5672
5902
|
await: forAwait,
|
|
5673
5903
|
}, start);
|
|
5674
5904
|
}
|
|
5905
|
+
if (resourceDeclarationKind)
|
|
5906
|
+
parser.report(30, 'in');
|
|
5675
5907
|
if (parser.assignable & 2)
|
|
5676
5908
|
parser.report(80, 'in');
|
|
5677
5909
|
reinterpretToPattern(parser, init);
|
|
@@ -5869,7 +6101,7 @@
|
|
|
5869
6101
|
declaration = parseFunctionDeclaration(parser, context, scope, undefined, 4, 1, 1, 0, parser.tokenStart);
|
|
5870
6102
|
break;
|
|
5871
6103
|
}
|
|
5872
|
-
case
|
|
6104
|
+
case 133:
|
|
5873
6105
|
case 86094:
|
|
5874
6106
|
declaration = parseClassDeclaration(parser, context, scope, undefined, 1);
|
|
5875
6107
|
break;
|
|
@@ -5992,7 +6224,7 @@
|
|
|
5992
6224
|
matchOrInsertSemicolon(parser, context | 32);
|
|
5993
6225
|
break;
|
|
5994
6226
|
}
|
|
5995
|
-
case
|
|
6227
|
+
case 133:
|
|
5996
6228
|
case 86094:
|
|
5997
6229
|
declaration = parseClassDeclaration(parser, context, scope, undefined, 2);
|
|
5998
6230
|
break;
|
|
@@ -6330,7 +6562,7 @@
|
|
|
6330
6562
|
const { tokenStart } = parser;
|
|
6331
6563
|
nextToken(parser, context);
|
|
6332
6564
|
switch (parser.getToken()) {
|
|
6333
|
-
case
|
|
6565
|
+
case 67108991:
|
|
6334
6566
|
parser.report(167);
|
|
6335
6567
|
case 67174411: {
|
|
6336
6568
|
if ((context & 512) === 0)
|
|
@@ -6377,10 +6609,13 @@
|
|
|
6377
6609
|
switch (parser.getToken()) {
|
|
6378
6610
|
case 67108877: {
|
|
6379
6611
|
nextToken(parser, (context | 262144 | 8) ^ 8);
|
|
6380
|
-
if (context & 16 && parser.getToken() ===
|
|
6612
|
+
if (context & 16 && parser.getToken() === 131 && parser.tokenValue === 'super') {
|
|
6381
6613
|
parser.report(173);
|
|
6382
6614
|
}
|
|
6383
|
-
parser.assignable =
|
|
6615
|
+
parser.assignable =
|
|
6616
|
+
(parser.flags & 2048) === 2048
|
|
6617
|
+
? 2
|
|
6618
|
+
: 1;
|
|
6384
6619
|
const property = parsePropertyOrPrivatePropertyName(parser, context | 64, privateScope);
|
|
6385
6620
|
expr = parser.finishNode({
|
|
6386
6621
|
type: 'MemberExpression',
|
|
@@ -6405,7 +6640,7 @@
|
|
|
6405
6640
|
const { tokenStart } = parser;
|
|
6406
6641
|
const property = parseExpressions(parser, context, privateScope, inGroup, 1, tokenStart);
|
|
6407
6642
|
consume(parser, context, 20);
|
|
6408
|
-
parser.assignable = 1;
|
|
6643
|
+
parser.assignable = restoreHasOptionalChaining ? 2 : 1;
|
|
6409
6644
|
expr = parser.finishNode({
|
|
6410
6645
|
type: 'MemberExpression',
|
|
6411
6646
|
object: expr,
|
|
@@ -6446,7 +6681,7 @@
|
|
|
6446
6681
|
}
|
|
6447
6682
|
break;
|
|
6448
6683
|
}
|
|
6449
|
-
case
|
|
6684
|
+
case 67108991: {
|
|
6450
6685
|
nextToken(parser, (context | 262144 | 8) ^ 8);
|
|
6451
6686
|
parser.flags |= 2048;
|
|
6452
6687
|
parser.assignable = 2;
|
|
@@ -6533,12 +6768,12 @@
|
|
|
6533
6768
|
}
|
|
6534
6769
|
function parsePropertyOrPrivatePropertyName(parser, context, privateScope) {
|
|
6535
6770
|
if ((parser.getToken() & 143360) === 0 &&
|
|
6536
|
-
parser.getToken() !== -2147483528 &&
|
|
6537
6771
|
parser.getToken() !== -2147483527 &&
|
|
6538
|
-
parser.getToken() !==
|
|
6772
|
+
parser.getToken() !== -2147483526 &&
|
|
6773
|
+
parser.getToken() !== 131) {
|
|
6539
6774
|
parser.report(160);
|
|
6540
6775
|
}
|
|
6541
|
-
return parser.getToken() ===
|
|
6776
|
+
return parser.getToken() === 131
|
|
6542
6777
|
? parsePrivateIdentifier(parser, context, privateScope, 0)
|
|
6543
6778
|
: parseIdentifier(parser, context);
|
|
6544
6779
|
}
|
|
@@ -6631,7 +6866,7 @@
|
|
|
6631
6866
|
return parseThisExpression(parser, context);
|
|
6632
6867
|
case 65540:
|
|
6633
6868
|
return parseRegExpLiteral(parser, context);
|
|
6634
|
-
case
|
|
6869
|
+
case 133:
|
|
6635
6870
|
case 86094:
|
|
6636
6871
|
return parseClassExpression(parser, context, privateScope, inGroup, start);
|
|
6637
6872
|
case 86109:
|
|
@@ -6642,9 +6877,9 @@
|
|
|
6642
6877
|
return parseTemplate(parser, context, privateScope);
|
|
6643
6878
|
case 86107:
|
|
6644
6879
|
return parseNewExpression(parser, context, privateScope, inGroup);
|
|
6645
|
-
case
|
|
6880
|
+
case 134283389:
|
|
6646
6881
|
return parseBigIntLiteral(parser, context);
|
|
6647
|
-
case
|
|
6882
|
+
case 131:
|
|
6648
6883
|
return parsePrivateIdentifier(parser, context, privateScope, 0);
|
|
6649
6884
|
case 86106:
|
|
6650
6885
|
return parseImportCallOrMetaExpression(parser, context, privateScope, inNew, inGroup, start);
|
|
@@ -6673,7 +6908,7 @@
|
|
|
6673
6908
|
parser.report(169);
|
|
6674
6909
|
nextToken(parser, context);
|
|
6675
6910
|
const token = parser.getToken();
|
|
6676
|
-
if (token !==
|
|
6911
|
+
if (token !== 209031 && parser.tokenValue !== 'meta') {
|
|
6677
6912
|
parser.report(174);
|
|
6678
6913
|
}
|
|
6679
6914
|
else if (token & -2147483648) {
|
|
@@ -6721,7 +6956,7 @@
|
|
|
6721
6956
|
const value = parseStringLiteral(parser, context);
|
|
6722
6957
|
const keyContent = key.type === 'Literal' ? key.value : key.name;
|
|
6723
6958
|
if (keysContent.has(keyContent)) {
|
|
6724
|
-
parser.report(145,
|
|
6959
|
+
parser.report(145, keyContent);
|
|
6725
6960
|
}
|
|
6726
6961
|
keysContent.add(keyContent);
|
|
6727
6962
|
attributes.push(parser.finishNode({
|
|
@@ -6897,7 +7132,7 @@
|
|
|
6897
7132
|
}
|
|
6898
7133
|
function parseLiteral(parser, context) {
|
|
6899
7134
|
const { tokenValue, tokenRaw, tokenStart } = parser;
|
|
6900
|
-
if (parser.getToken() ===
|
|
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() === -
|
|
7418
|
-
parser.getToken() === -
|
|
7419
|
-
if (parser.getToken() === -
|
|
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 === -
|
|
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 === -
|
|
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() ===
|
|
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() ===
|
|
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;
|
|
@@ -8599,7 +8834,7 @@
|
|
|
8599
8834
|
let start;
|
|
8600
8835
|
let decorators;
|
|
8601
8836
|
if (parser.leadingDecorators.decorators.length) {
|
|
8602
|
-
if (parser.getToken() ===
|
|
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() ===
|
|
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 === -
|
|
8979
|
+
if (token & (143360 | 36864) || token === -2147483527) {
|
|
8745
8980
|
key = parseIdentifier(parser, context);
|
|
8746
8981
|
switch (token) {
|
|
8747
8982
|
case 36970:
|
|
@@ -8804,7 +9039,7 @@
|
|
|
8804
9039
|
kind |= 8;
|
|
8805
9040
|
nextToken(parser, context);
|
|
8806
9041
|
}
|
|
8807
|
-
else if (parser.getToken() ===
|
|
9042
|
+
else if (parser.getToken() === 131) {
|
|
8808
9043
|
kind |= 8192;
|
|
8809
9044
|
key = parsePrivateIdentifier(parser, context | 16, privateScope, 768);
|
|
8810
9045
|
}
|
|
@@ -8814,7 +9049,7 @@
|
|
|
8814
9049
|
else if (isStatic && token === 2162700) {
|
|
8815
9050
|
return parseStaticBlock(parser, context | 16, scope, privateScope, start);
|
|
8816
9051
|
}
|
|
8817
|
-
else if (token === -
|
|
9052
|
+
else if (token === -2147483526) {
|
|
8818
9053
|
key = parseIdentifier(parser, context);
|
|
8819
9054
|
if (parser.getToken() !== 67174411)
|
|
8820
9055
|
parser.report(30, KeywordDescTable[parser.getToken() & 255]);
|
|
@@ -8824,8 +9059,8 @@
|
|
|
8824
9059
|
}
|
|
8825
9060
|
if (kind & (8 | 16 | 768 | 1024)) {
|
|
8826
9061
|
if (parser.getToken() & 143360 ||
|
|
8827
|
-
parser.getToken() === -
|
|
8828
|
-
parser.getToken() === -
|
|
9062
|
+
parser.getToken() === -2147483527 ||
|
|
9063
|
+
parser.getToken() === -2147483526) {
|
|
8829
9064
|
key = parseIdentifier(parser, context);
|
|
8830
9065
|
}
|
|
8831
9066
|
else if ((parser.getToken() & 134217728) === 134217728) {
|
|
@@ -8835,7 +9070,7 @@
|
|
|
8835
9070
|
kind |= 2;
|
|
8836
9071
|
key = parseComputedPropertyName(parser, context, privateScope, 0);
|
|
8837
9072
|
}
|
|
8838
|
-
else if (parser.getToken() ===
|
|
9073
|
+
else if (parser.getToken() === 131) {
|
|
8839
9074
|
kind |= 8192;
|
|
8840
9075
|
key = parsePrivateIdentifier(parser, context, privateScope, kind);
|
|
8841
9076
|
}
|
|
@@ -8915,7 +9150,7 @@
|
|
|
8915
9150
|
if (parser.getToken() === 1077936155) {
|
|
8916
9151
|
nextToken(parser, context | 32);
|
|
8917
9152
|
const { tokenStart } = parser;
|
|
8918
|
-
if (parser.getToken() ===
|
|
9153
|
+
if (parser.getToken() === 537079928)
|
|
8919
9154
|
parser.report(119);
|
|
8920
9155
|
const modifierFlags = 1024 |
|
|
8921
9156
|
2048 |
|
|
@@ -8947,7 +9182,7 @@
|
|
|
8947
9182
|
}
|
|
8948
9183
|
function parseBindingPattern(parser, context, scope, privateScope, type, origin) {
|
|
8949
9184
|
if (parser.getToken() & 143360 ||
|
|
8950
|
-
((context & 1) === 0 && parser.getToken() === -
|
|
9185
|
+
((context & 1) === 0 && parser.getToken() === -2147483526))
|
|
8951
9186
|
return parseAndClassifyIdentifier(parser, context, scope, type, origin);
|
|
8952
9187
|
if ((parser.getToken() & 2097152) !== 2097152)
|
|
8953
9188
|
parser.report(30, KeywordDescTable[parser.getToken() & 255]);
|
|
@@ -8966,7 +9201,7 @@
|
|
|
8966
9201
|
if ((token & 537079808) === 537079808) {
|
|
8967
9202
|
parser.report(119);
|
|
8968
9203
|
}
|
|
8969
|
-
else if ((token & 36864) === 36864 || token === -
|
|
9204
|
+
else if ((token & 36864) === 36864 || token === -2147483526) {
|
|
8970
9205
|
parser.report(118);
|
|
8971
9206
|
}
|
|
8972
9207
|
}
|
|
@@ -9087,7 +9322,7 @@
|
|
|
9087
9322
|
}
|
|
9088
9323
|
}
|
|
9089
9324
|
function parseJSXChildOrClosingElement(parser, context, privateScope, inJSXChild) {
|
|
9090
|
-
if (parser.getToken() ===
|
|
9325
|
+
if (parser.getToken() === 138)
|
|
9091
9326
|
return parseJSXText(parser, context);
|
|
9092
9327
|
if (parser.getToken() === 2162700)
|
|
9093
9328
|
return parseJSXExpressionContainer(parser, context, privateScope, 1, 0);
|
|
@@ -9101,7 +9336,7 @@
|
|
|
9101
9336
|
parser.report(0);
|
|
9102
9337
|
}
|
|
9103
9338
|
function parseJSXChildOrClosingFragment(parser, context, privateScope, inJSXChild) {
|
|
9104
|
-
if (parser.getToken() ===
|
|
9339
|
+
if (parser.getToken() === 138)
|
|
9105
9340
|
return parseJSXText(parser, context);
|
|
9106
9341
|
if (parser.getToken() === 2162700)
|
|
9107
9342
|
return parseJSXExpressionContainer(parser, context, privateScope, 1, 0);
|