meriyah 7.3.3 → 7.4.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 +17 -0
- package/dist/meriyah.cjs +91 -54
- package/dist/meriyah.min.mjs +1 -1
- package/dist/meriyah.mjs +91 -54
- package/dist/meriyah.umd.js +91 -54
- package/dist/meriyah.umd.min.js +1 -1
- package/dist/types/common.d.ts +6 -5
- package/dist/types/estree.d.ts +37 -25
- package/dist/types/parser/parser.d.ts +4 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
# [7.4.0](https://github.com/meriyah/meriyah/compare/v7.3.3...v7.4.0) (2026-10-05)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **jsx:** compare namespaced tag names by text, and type the common.ts helpers ([#655](https://github.com/meriyah/meriyah/issues/655)) ([b60eb49](https://github.com/meriyah/meriyah/commit/b60eb49d2fc16ba363ffb9f05b190d92f51cc746))
|
|
6
|
+
* **lexer:** treat LS/PS after a backslash in templates as a line continuation ([#665](https://github.com/meriyah/meriyah/issues/665)) ([205f6f0](https://github.com/meriyah/meriyah/commit/205f6f0250f924368ca73488d00b2ac74092b2fb))
|
|
7
|
+
* **parser:** allow await identifiers in ordinary parameter defaults ([#666](https://github.com/meriyah/meriyah/issues/666)) ([02c894b](https://github.com/meriyah/meriyah/commit/02c894bb5d0637f681347a7731862881015a8a58))
|
|
8
|
+
* **parser:** parse `/` after an `await` identifier as division ([#659](https://github.com/meriyah/meriyah/issues/659)) ([7424452](https://github.com/meriyah/meriyah/commit/7424452d09317a01d6766944873bd36bd7eb8125))
|
|
9
|
+
* **parser:** reject `await` in class field initializers ([#651](https://github.com/meriyah/meriyah/issues/651)) ([51dfdcb](https://github.com/meriyah/meriyah/commit/51dfdcb7c3d7c60b7e68581919629fd9250b9549))
|
|
10
|
+
* **parser:** reject escaped `await` in async arrow parameters ([#647](https://github.com/meriyah/meriyah/issues/647)) ([e45a36c](https://github.com/meriyah/meriyah/commit/e45a36c89821e6725701f761699b13cdf17575b1))
|
|
11
|
+
* **parser:** report yield-in-parameter errors at the yield token ([#656](https://github.com/meriyah/meriyah/issues/656)) ([754a550](https://github.com/meriyah/meriyah/commit/754a550c5896b6d1a8dbead95208ae206a15466d))
|
|
12
|
+
* **parser:** restrict continue targets to iteration statement labels ([#646](https://github.com/meriyah/meriyah/issues/646)) ([3df8ade](https://github.com/meriyah/meriyah/commit/3df8adea6fb57e01d81478e4b2453a3b29248fe3))
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* support Unicode 18 ([#660](https://github.com/meriyah/meriyah/issues/660)) ([d666dca](https://github.com/meriyah/meriyah/commit/d666dca10294abbfadd2c0b0a31a3e1501ab946f))
|
|
17
|
+
|
|
1
18
|
## [7.3.3](https://github.com/meriyah/meriyah/compare/v7.3.2...v7.3.3) (2026-09-05)
|
|
2
19
|
|
|
3
20
|
### Bug Fixes
|
package/dist/meriyah.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var version$1 = "7.
|
|
3
|
+
var version$1 = "7.4.0";
|
|
4
4
|
var packageJson = {
|
|
5
5
|
version: version$1};
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ const unicodeLookup = ((compressed, lookup) => {
|
|
|
8
8
|
const result = new Uint32Array(69632);
|
|
9
9
|
let index = 0;
|
|
10
10
|
let subIndex = 0;
|
|
11
|
-
while (index <
|
|
11
|
+
while (index < 2661) {
|
|
12
12
|
const inst = compressed[index++];
|
|
13
13
|
if (inst < 0) {
|
|
14
14
|
subIndex -= inst;
|
|
@@ -26,7 +26,7 @@ const unicodeLookup = ((compressed, lookup) => {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
return result;
|
|
29
|
-
})([-1, 2, 26, 2, 27, 2, 5, -1, 0, 77595648, 3, 44, 2, 3, 0, 14, 2, 61, 2, 62, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 41, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 16, 2, 63, 2, 0, 0, 4294836735, 0, 3221225471, 0, 4294901942, 2, 64, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 17, 2, 0, 0, 4294961151, 3, 0, 2, 2, 19, 2, 0, 0, 608174079, 2, 0, 2, 58, 2, 7, 2, 6, 0, 4286643967, 3, 0, 2, 2, 1, 3, 0, 3, 0, 4294901711, 2, 40, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2967484831, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 0, 65472, 2, 3, 0, 4093640191, 0, 929054175, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1885355487, 0, 982991, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 69, 0, 4284449919, 0, 851904, 2, 4, 2, 12, 0, 67076095, -1, 2, 70, 0, 1073741743, 0, 4093607775, -1, 0, 50331649, 0, 3265266687, 2, 33, 0, 4294844415, 0, 4278190047, 2, 20, 2, 137, -1, 3, 0, 2, 2, 23, 2, 0, 2, 9, 2, 0, 2, 15, 2, 22, 3, 0, 10, 2, 72, 2, 0, 2, 73, 2, 74, 2, 75, 2, 0, 2, 76, 2, 0, 2, 11, 0, 261632, 2, 25, 3, 0, 2, 2, 13, 2, 4, 3, 0, 18, 2, 77, 2, 5, 3, 0, 2, 2, 78, 0, 2151677951, 2, 29, 2, 10, 0, 909311, 3, 0, 2, 0, 814743551, 2, 48, 0, 67090432, 3, 0, 2, 2, 42, 2, 0, 2, 6, 2, 0, 2, 30, 2, 8, 0, 268374015, 2, 108, 2, 51, 2, 0, 2, 79, 0, 134153215, -1, 2, 7, 2, 0, 2, 8, 0, 2684354559, 0, 67044351, 0, 3221160064, 2, 9, 2, 18, 3, 0, 2, 2, 53, 0, 1046528, 3, 0, 3, 2, 10, 2, 0, 2, 127, 0, 4294960127, 2, 9, 2, 6, 2, 11, 0, 4294377472, 2, 12, 3, 0, 16, 2, 13, 2, 0, 2, 80, 2, 9, 2, 0, 2, 81, 2, 82, 2, 83, 0, 12288, 2, 54, 0, 1048577, 2, 84, 2, 14, -1, 2, 14, 0, 131042, 2, 85, 2, 86, 2, 87, 2, 0, 2, 34, -83, 3, 0, 7, 0, 1046559, 2, 0, 2, 15, 2, 0, 0, 2147516671, 2, 21, 3, 88, 2, 2, 0, -16, 2, 89, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 3, 0, 2, 2, 28, 2, 16, 3, 0, 2, 2, 49, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 692, 2, 71, -1, 2, 17, 2, 9, 3, 0, 8, 2, 91, 2, 18, 2, 0, 0, 3220242431, 3, 0, 3, 2, 19, 2, 92, 2, 93, 3, 0, 2, 2, 94, 2, 0, 2, 20, 2, 95, 2, 0, 0, 4351, 2, 0, 2, 10, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 24, 2, 10, 2, 20, 3, 0, 2, 0, 67076097, 2, 8, 2, 0, 2, 21, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 99, 2, 100, 2, 22, 2, 23, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 101, 2, 102, 2, 7, -264, 3, 0, 11, 2, 24, 3, 0, 2, 2, 32, -1, 0, 3774349439, 2, 103, 2, 104, 3, 0, 2, 2, 19, 2, 105, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 46, 2, 0, 2, 31, 2, 106, 2, 25, 0, 1638399, 0, 57344, 2, 107, 3, 0, 3, 2, 20, 2, 26, 2, 27, 2, 5, 2, 28, 2, 0, 2, 8, 2, 109, -1, 2, 110, 2, 111, 2, 112, -1, 3, 0, 3, 2, 12, -2, 2, 0, 2, 29, -3, 0, 536870912, -4, 2, 20, 2, 0, 2, 36, 0, 1, 2, 0, 2, 65, 2, 6, 2, 12, 2, 9, 2, 0, 2, 113, -1, 3, 0, 4, 2, 9, 2, 23, 2, 114, 2, 7, 2, 0, 2, 115, 2, 0, 2, 116, 2, 117, 2, 118, 2, 0, 2, 10, 3, 0, 9, 2, 21, 2, 30, 2, 31, 2, 119, 2, 120, -2, 2, 121, 2, 122, 2, 30, 2, 21, 2, 8, -2, 2, 123, 2, 30, 3, 32, 2, -1, 2, 0, 2, 39, -2, 0, 4277137519, 0, 2269118463, -1, 3, 20, 2, -1, 2, 33, 2, 38, 2, 0, 3, 30, 2, 2, 35, 2, 19, -3, 3, 0, 2, 2, 34, -1, 2, 0, 2, 35, 2, 0, 2, 35, 2, 0, 2, 47, 2, 0, 0, 4294950463, 2, 37, -7, 2, 0, 0, 203775, 2, 125, 0, 4227858432, 2, 20, 2, 43, 2, 36, 2, 17, 2, 37, 2, 17, 2, 124, 2, 21, 3, 0, 2, 2, 38, 0, 2151677888, 2, 0, 2, 12, 0, 4294901764, 2, 145, 2, 0, 2, 56, 2, 55, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 128, 2, 39, 0, 3, -1, 2, 129, 2, 130, 2, 0, 0, 67045375, 2, 40, 0, 4226678271, 0, 3766565279, 0, 2039759, 2, 132, 2, 41, 0, 1046437, 0, 6, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 42, 2, 23, 2, 50, 2, 11, 2, 59, 2, 38, -5, 2, 0, 2, 12, -3, 3, 0, 2, 0, 2147484671, 2, 133, 0, 4190109695, 2, 52, -2, 2, 134, 0, 4244635647, 0, 27, 2, 0, 2, 8, 2, 43, 2, 0, 2, 66, 2, 17, 2, 0, 2, 42, -3, 2, 31, -2, 2, 0, 2, 45, 2, 57, 2, 44, 2, 45, 2, 135, 2, 46, 0, 8388351, -2, 2, 136, 0, 3028287487, 2, 47, 2, 138, 0, 33259519, 2, 23, 2, 7, 2, 48, -7, 2, 21, 0, 4294836223, 0, 3355443199, 0, 134152199, -2, 2, 67, -2, 3, 0, 28, 2, 32, -3, 3, 0, 3, 2, 49, 3, 0, 6, 2, 50, -81, 2, 17, 3, 0, 2, 2, 36, 3, 0, 33, 2, 25, 2, 30, 3, 0, 124, 2, 12, 3, 0, 18, 2, 38, -213, 2, 0, 2, 32, -54, 3, 0, 17, 2, 42, 2, 8, 2, 23, 2, 0, 2, 8, 2, 23, 2, 51, 2, 0, 2, 21, 2, 52, 2, 139, 2, 25, -13, 2, 0, 2, 53, -6, 3, 0, 2, -1, 2, 140, 2, 10, -1, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 8323099, 3, 0, 230, 2, 30, 2, 54, 2, 8, -3, 3, 0, 3, 2, 35, -271, 2, 141, 3, 0, 9, 2, 142, 2, 143, 2, 55, 3, 0, 11, 2, 7, -72, 3, 0, 3, 2, 144, 0, 1677656575, -130, 2, 26, -16, 2, 0, 2, 24, 2, 38, -16, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 28, -13, 3, 0, 2, 2, 56, 2, 0, 2, 146, 2, 147, 2, 60, 2, 0, 2, 148, 2, 149, 2, 150, 3, 0, 10, 2, 151, 2, 152, 2, 22, 3, 56, 2, 3, 153, 2, 3, 57, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 90, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -34, 2, 8, 2, 155, -6, 0, 4194303871, 0, 4294903771, 2, 0, 2, 58, 2, 98, -3, 2, 0, 0, 1073684479, 0, 17407, -9, 2, 17, 2, 49, 2, 0, 2, 32, -14, 2, 17, 2, 32, -6, 2, 17, 2, 12, -6, 2, 8, 0, 3225419775, -7, 2, 156, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 59, -37, 2, 60, 2, 157, 2, 158, 2, 159, 2, 160, 2, 161, -105, 2, 26, -32, 3, 0, 1335, -1, 3, 0, 136, 2, 9, 3, 0, 180, 2, 24, 3, 0, 233, 2, 162, 3, 0, 18, 2, 9, -77, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 6, 3, 0, 264, 2, 32, -22116, 3, 0, 7, 2, 25, -6130, 3, 5, 2, -1, 0, 69207040, 3, 44, 2, 3, 0, 14, 2, 61, 2, 62, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 41, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 16, 2, 63, 2, 0, 2, 34, -1, 2, 17, 2, 64, -1, 2, 0, 0, 2047, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 25, 2, 65, 3, 0, 2, 0, 131135, 2, 96, 0, 70256639, 0, 71303167, 0, 272, 2, 42, 2, 6, 0, 65279, 2, 0, 2, 48, -1, 2, 97, 2, 66, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 68, 2, 67, 0, 33554435, 2, 131, 2, 68, 0, 2952790016, 0, 131075, 0, 3594373096, 0, 67094296, 2, 67, -1, 0, 4294828000, 0, 603979263, 0, 922746880, 0, 3, 0, 4294828001, 0, 602930687, 0, 1879048192, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 69, 2, 38, -1, 2, 4, 0, 917503, 2, 38, -1, 2, 70, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 33, 2, 71, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 15, 2, 22, 3, 0, 10, 2, 72, 2, 0, 2, 73, 2, 74, 2, 75, 2, 0, 2, 76, 2, 0, 2, 12, -1, 2, 25, 3, 0, 2, 2, 13, 2, 4, 3, 0, 18, 2, 77, 2, 5, 3, 0, 2, 2, 78, 0, 2147745791, 3, 19, 2, 0, 122879, 2, 0, 2, 10, 0, 276824064, -2, 3, 0, 2, 2, 42, 2, 0, 0, 4294903295, 2, 0, 2, 30, 2, 8, -1, 2, 17, 2, 51, 2, 0, 2, 79, 2, 48, -1, 2, 21, 2, 0, 2, 29, -2, 0, 128, -2, 2, 28, 2, 10, 0, 8160, -1, 2, 126, 0, 4227907585, 2, 0, 2, 37, 2, 0, 2, 50, 0, 4227915776, 2, 9, 2, 6, 2, 11, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 13, 2, 0, 2, 80, 2, 9, 2, 0, 2, 81, 2, 82, 2, 83, -3, 2, 84, 2, 14, -3, 2, 85, 2, 86, 2, 87, 2, 0, 2, 34, -83, 3, 0, 7, 0, 817183, 2, 0, 2, 15, 2, 0, 0, 33023, 2, 21, 3, 88, 2, -17, 2, 89, 0, 524157950, 2, 4, 2, 0, 2, 90, 2, 4, 2, 0, 2, 22, 2, 28, 2, 16, 3, 0, 2, 2, 49, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 692, 2, 71, -1, 2, 17, 2, 9, 3, 0, 8, 2, 91, 0, 3072, 2, 0, 0, 2147516415, 2, 9, 3, 0, 2, 2, 25, 2, 92, 2, 93, 3, 0, 2, 2, 94, 2, 0, 2, 20, 2, 95, 0, 4294965179, 0, 7, 2, 0, 2, 10, 2, 93, 2, 10, -1, 0, 1761345536, 2, 96, 0, 4294901823, 2, 38, 2, 20, 2, 97, 2, 35, 2, 98, 0, 2080440287, 2, 0, 2, 34, 2, 154, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 99, 2, 100, 2, 22, 2, 23, 3, 0, 3, 0, 7, 3, 0, 349, 2, 101, 2, 102, 2, 7, -264, 3, 0, 11, 2, 24, 3, 0, 2, 2, 32, -1, 0, 2700607615, 2, 103, 2, 104, 3, 0, 2, 2, 19, 2, 105, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 46, 2, 0, 2, 31, 2, 106, -3, 2, 107, 3, 0, 3, 2, 20, -1, 3, 5, 2, 2, 108, 2, 0, 2, 8, 2, 109, -1, 2, 110, 2, 111, 2, 112, -1, 3, 0, 3, 2, 12, -2, 2, 0, 2, 29, -8, 2, 20, 2, 0, 2, 36, -1, 2, 0, 2, 65, 2, 6, 2, 30, 2, 9, 2, 0, 2, 113, -1, 3, 0, 4, 2, 9, 2, 17, 2, 114, 2, 7, 2, 0, 2, 115, 2, 0, 2, 116, 2, 117, 2, 118, 2, 0, 2, 10, 3, 0, 9, 2, 21, 2, 30, 2, 31, 2, 119, 2, 120, -2, 2, 121, 2, 122, 2, 30, 2, 21, 2, 8, -2, 2, 123, 2, 30, 3, 32, 2, -1, 2, 0, 2, 39, -2, 0, 4277075969, 2, 30, -1, 3, 20, 2, -1, 2, 33, 2, 124, 2, 0, 3, 30, 2, 2, 35, 2, 19, -3, 3, 0, 2, 2, 34, -1, 2, 0, 2, 35, 2, 0, 2, 35, 2, 0, 2, 50, 2, 96, 0, 4294934591, 2, 37, -7, 2, 0, 0, 197631, 2, 125, -1, 2, 20, 2, 43, 2, 37, 2, 17, 0, 3, 2, 17, 2, 124, 2, 21, 2, 126, 2, 127, -1, 0, 2490368, 2, 126, 2, 25, 2, 17, 2, 34, 2, 126, 2, 38, 0, 4294901904, 0, 4718591, 2, 126, 2, 35, 0, 335544350, -1, 2, 128, 0, 2147487743, 0, 1, -1, 2, 129, 2, 130, 2, 8, -1, 2, 131, 2, 68, 0, 3758161920, 0, 3, 2, 132, 0, 12582911, 0, 655360, -1, 2, 0, 2, 29, 0, 2147485568, 0, 3, 2, 0, 2, 25, 0, 176, -5, 2, 0, 2, 49, 0, 251658240, -1, 2, 0, 2, 25, 0, 16, -1, 2, 0, 0, 16779263, -2, 2, 12, -1, 2, 38, -5, 2, 0, 2, 18, -3, 3, 0, 2, 2, 54, 2, 133, 0, 2147549183, 0, 2, -2, 2, 134, 2, 36, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, 2, 17, 2, 0, 2, 42, -6, 2, 0, 0, 1, 2, 57, 2, 49, 0, 1, 2, 135, 2, 25, -3, 2, 136, 2, 36, 2, 137, 2, 138, 0, 16778239, 2, 17, 2, 7, -8, 2, 35, 0, 4294836212, 2, 10, -3, 2, 67, -2, 3, 0, 28, 2, 32, -3, 3, 0, 3, 2, 49, 3, 0, 6, 2, 50, -81, 2, 17, 3, 0, 2, 2, 36, 3, 0, 33, 2, 25, 0, 126, 3, 0, 124, 2, 12, 3, 0, 18, 2, 38, -213, 2, 9, -55, 3, 0, 17, 2, 42, 2, 8, 2, 17, 2, 0, 2, 8, 2, 17, 2, 58, 2, 0, 2, 25, 2, 50, 2, 139, 2, 25, -13, 2, 0, 2, 71, -6, 3, 0, 2, -1, 2, 140, 2, 10, -1, 3, 0, 2, 0, 67583, -1, 2, 105, -2, 0, 8126475, 3, 0, 230, 2, 30, 2, 54, 2, 8, -3, 3, 0, 3, 2, 35, -271, 2, 141, 3, 0, 9, 2, 142, 2, 143, 2, 55, 3, 0, 11, 2, 7, -72, 3, 0, 3, 2, 144, 2, 145, -187, 3, 0, 2, 2, 56, 2, 0, 2, 146, 2, 147, 2, 60, 2, 0, 2, 148, 2, 149, 2, 150, 3, 0, 10, 2, 151, 2, 152, 2, 22, 3, 56, 2, 3, 153, 2, 3, 57, 2, 2, 154, -57, 2, 8, 2, 155, -7, 2, 17, 2, 0, 2, 58, -4, 2, 0, 0, 1065361407, 0, 16384, -9, 2, 17, 2, 58, 2, 0, 2, 18, -14, 2, 17, 2, 18, -6, 2, 17, 0, 81919, -6, 2, 8, 0, 3223273399, -7, 2, 156, 3, 0, 6, 2, 124, -1, 3, 0, 2, 0, 2063, -37, 2, 60, 2, 157, 2, 158, 2, 159, 2, 160, 2, 161, -138, 3, 0, 1335, -1, 3, 0, 136, 2, 9, 3, 0, 180, 2, 24, 3, 0, 233, 2, 162, 3, 0, 18, 2, 9, -77, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 6, 3, 0, 264, 2, 32, -28252], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 4294903807, 268435455, 2147483647, 1073741823, 1048575, 3892314111, 134217727, 1061158911, 536805376, 4294910143, 4294901759, 4294901760, 4095, 262143, 536870911, 8388607, 4160749567, 4294902783, 4294918143, 65535, 67043328, 2281701374, 4294967264, 2097151, 4194303, 255, 67108863, 4294967039, 511, 524287, 131071, 63, 127, 3238002687, 4294549487, 4290772991, 33554431, 4294901888, 4286578687, 67043329, 4294770687, 67043583, 1023, 32767, 15, 2047999, 67043343, 67051519, 2147483648, 4294902000, 4292870143, 4294966783, 16383, 67047423, 4294967279, 262083, 20511, 41943039, 493567, 4294959104, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 4294836224, 4294966272, 4294967280, 32768, 8289918, 4294934399, 4294901775, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 4294967232, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4160684047, 4290246655, 469499899, 4294967231, 134086655, 4294966591, 2445279231, 3670015, 31, 252, 4294967288, 16777215, 4294705151, 3221208447, 4294902271, 4294549472, 4294921215, 4285526655, 4294966527, 4294705152, 4294966143, 64, 4294966719, 3774873592, 4194303999, 1877934080, 262151, 2555904, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967103, 4160749565, 4294934527, 4087, 2016, 2147446655, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901761]);
|
|
29
|
+
})([-1, 2, 23, 2, 24, 2, 5, -1, 0, 77595648, 3, 42, 2, 3, 0, 14, 2, 60, 2, 61, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 39, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 15, 2, 62, 2, 0, 0, 4294842879, 0, 3221225471, 0, 4294902710, 2, 63, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 16, 2, 0, 0, 4294961151, 3, 0, 2, 2, 17, 2, 0, 0, 608174079, 2, 0, 2, 56, 2, 7, 2, 6, 0, 4286643967, 3, 0, 2, 2, 1, 3, 0, 3, 0, 4294901711, 2, 38, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2969057695, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 0, 65472, 2, 3, 0, 4093640191, 0, 929054175, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1885355487, 0, 982991, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 68, 0, 4284449919, 0, 851904, 2, 4, 2, 12, 0, 67076095, -1, 2, 69, 0, 1073741743, 0, 4093607775, -1, 0, 50331649, 0, 3265266687, 2, 32, 0, 4294844415, 0, 4278190047, 2, 18, 2, 139, -1, 3, 0, 2, 2, 28, 2, 0, 2, 10, 2, 0, 2, 14, 2, 20, 3, 0, 10, 2, 71, 2, 0, 2, 72, 2, 73, 2, 74, 2, 0, 2, 75, 2, 0, 2, 11, 0, 261632, 2, 22, 3, 0, 2, 2, 13, 2, 4, 3, 0, 18, 2, 76, 2, 5, 3, 0, 2, 2, 77, 0, 2151677951, 2, 26, 2, 9, 0, 909311, 3, 0, 2, 0, 814743551, 2, 64, 0, 67090432, 3, 0, 2, 2, 40, 2, 0, 2, 6, 2, 0, 2, 29, 2, 8, 0, 268374015, 2, 109, 2, 48, 2, 0, 2, 78, 0, 134153215, -1, 2, 7, 2, 0, 2, 8, 0, 2684354559, 0, 67044351, 0, 3221160064, 2, 0, 2, 27, 3, 0, 2, 2, 50, 0, 1046528, 3, 0, 3, 2, 9, 2, 0, 2, 127, 0, 4294960127, 2, 10, 2, 6, 2, 11, 0, 4294377472, 2, 12, 3, 0, 16, 2, 13, 2, 0, 2, 80, 2, 10, 2, 0, 2, 81, 2, 82, 2, 83, 0, 12288, 2, 51, 0, 1048577, 2, 84, 2, 85, -1, 0, 536805376, 0, 131042, 2, 86, 2, 87, 2, 88, 2, 0, 2, 33, -83, 3, 0, 7, 0, 1046559, 2, 0, 2, 14, 2, 0, 0, 2147516671, 2, 19, 3, 89, 2, 2, 0, -16, 2, 90, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 3, 0, 2, 2, 25, 2, 15, 3, 0, 2, 2, 57, 2, 0, -1, 2, 16, -16, 3, 0, 206, -2, 3, 0, 692, 2, 70, -1, 2, 16, 2, 10, 3, 0, 8, 2, 92, 2, 133, 2, 0, 0, 3220242431, 3, 0, 3, 2, 17, 2, 93, 2, 94, 3, 0, 2, 2, 95, 2, 0, 2, 10, 2, 96, 2, 0, 0, 4351, 2, 0, 2, 9, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 21, 2, 9, 2, 18, 3, 0, 2, 0, 67076097, 2, 8, 2, 0, 2, 19, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 100, 2, 101, 2, 20, 2, 102, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 47, 2, 103, 2, 7, -264, 3, 0, 11, 2, 21, 3, 0, 2, 2, 31, -1, 0, 3774349439, 2, 104, 2, 105, 3, 0, 2, 2, 17, 2, 106, 3, 0, 10, 2, 10, 2, 16, 2, 0, 2, 44, 2, 0, 2, 30, 2, 107, 2, 22, 0, 1638399, 0, 57344, 2, 108, 3, 0, 3, 2, 18, 2, 23, 2, 24, 2, 5, 2, 25, 2, 0, 2, 8, 2, 110, -1, 2, 111, 2, 112, 2, 113, -1, 3, 0, 3, 2, 12, -2, 2, 0, 2, 26, -3, 0, 536870912, -4, 2, 18, 2, 0, 2, 27, 0, 1, 2, 0, 2, 55, 2, 6, 2, 12, 2, 10, 2, 0, 2, 114, -1, 3, 0, 4, 2, 10, 2, 28, 2, 115, 2, 7, 2, 0, 2, 116, 2, 0, 2, 117, 2, 118, 2, 119, 2, 0, 2, 9, 3, 0, 9, 2, 19, 2, 29, 2, 30, 2, 120, 2, 46, -2, 2, 121, 2, 122, 2, 29, 2, 19, 2, 8, -2, 2, 123, 2, 29, 3, 31, 2, -1, 2, 0, 2, 37, -2, 0, 4277137519, 0, 2269118463, -1, 3, 18, 2, -1, 2, 32, 2, 36, 2, 0, 3, 29, 2, 2, 34, 2, 17, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 45, 2, 0, 0, 4294950463, 2, 35, -7, 2, 0, 0, 203775, 0, 4261476604, 2, 53, 2, 18, 2, 41, 2, 27, 2, 16, 2, 35, 2, 16, 2, 124, 2, 19, 3, 0, 2, 2, 36, 0, 2151677888, 2, 0, 2, 12, 0, 4294901764, 2, 149, 2, 0, 2, 52, 0, 4294902000, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 128, 2, 37, 0, 3, -1, 2, 129, 2, 130, 2, 0, 0, 67045375, 2, 38, 0, 4226678271, 0, 3766565279, 0, 2039759, 2, 132, 2, 39, 0, 1046437, 0, 6, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 40, 2, 28, 2, 79, 2, 11, 2, 58, 2, 36, -5, 2, 0, 2, 12, -3, 3, 0, 2, 0, 2147484671, 2, 134, 0, 4190109695, 2, 49, -2, 2, 135, 0, 4244635647, 0, 27, 2, 0, 2, 8, 2, 41, 2, 0, 2, 65, 2, 16, 2, 0, 2, 40, 2, 136, -2, 2, 30, -2, 2, 0, 2, 43, 2, 54, 2, 42, 2, 43, 2, 137, 2, 44, 0, 8388351, -2, 2, 138, 0, 3028287487, 2, 45, 2, 140, 0, 33259519, 2, 28, 2, 7, 2, 125, -7, 2, 19, 2, 46, 0, 3355443199, 0, 134152199, -2, 2, 66, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 141, 3, 0, 6, 2, 47, 3, 0, 9, 2, 36, -71, 2, 16, 3, 0, 2, 2, 27, 3, 0, 33, 2, 22, 2, 29, 3, 0, 124, 2, 12, 3, 0, 18, 2, 36, -213, 2, 0, 2, 31, -54, 3, 0, 17, 2, 40, 2, 8, 2, 28, 2, 0, 2, 8, 2, 28, 2, 48, 2, 0, 2, 19, 2, 49, 2, 142, 2, 22, -13, 2, 0, 2, 50, -6, 3, 0, 2, -1, 2, 143, 2, 9, -1, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 8323099, 3, 0, 230, 2, 12, 2, 51, 2, 0, 0, 1, -2, 3, 0, 3, 2, 34, 3, 0, 28, 2, 17, 2, 0, 2, 34, -240, 2, 144, 3, 0, 9, 2, 145, 2, 146, 2, 147, 3, 0, 11, 2, 7, -72, 3, 0, 3, 2, 148, 0, 1677656575, -130, 2, 23, -16, 2, 0, 2, 21, 2, 36, -14, 0, 384, -1, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 2550595612, -1, 0, 3, -11, 3, 0, 2, 2, 52, 2, 0, 2, 150, 2, 151, 2, 59, 2, 0, 2, 152, 2, 153, 2, 154, 3, 0, 10, 2, 155, 2, 156, 2, 20, 3, 52, 2, 3, 53, 2, 3, 54, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 91, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -34, 3, 0, 4, 2, 158, -1, 2, 55, 2, 0, 0, 4194303871, 0, 4294903771, 2, 0, 2, 56, 2, 99, -3, 2, 0, 0, 1073684479, 0, 17407, -9, 2, 16, 2, 57, 2, 0, 2, 31, -14, 2, 16, 2, 31, -6, 2, 16, 2, 12, -6, 2, 8, 0, 3225419775, -7, 2, 159, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 58, -37, 2, 59, 2, 160, 2, 161, 2, 162, 2, 163, 2, 164, -105, 2, 23, -32, 3, 0, 1335, -1, 3, 0, 136, 2, 8, 3, 0, 180, 2, 21, 3, 0, 233, 2, 165, 3, 0, 18, 2, 10, -77, 3, 0, 16, 2, 10, -47, 3, 0, 154, 2, 6, 3, 0, 264, 2, 31, -1244, 3, 0, 354, -20518, 3, 0, 7, 2, 22, -6130, 3, 5, 2, -1, 0, 69207040, 3, 42, 2, 3, 0, 14, 2, 60, 2, 61, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 39, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 15, 2, 62, 2, 0, 0, 6655, -1, 2, 16, 2, 63, -1, 2, 0, 0, 2047, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 22, 2, 55, 3, 0, 2, 0, 131135, 2, 97, 0, 70256639, 0, 71303167, 0, 272, 2, 40, 2, 6, 0, 65279, 2, 0, 2, 64, -1, 2, 98, 2, 65, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 67, 2, 66, 0, 33554435, 2, 131, 2, 67, 0, 2952790016, 0, 131075, 0, 3594373096, 0, 67094296, 2, 66, -1, 0, 4294828000, 0, 603979263, 0, 922746880, 0, 3, 0, 4294828001, 0, 602930687, 0, 1879048192, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 68, 2, 36, -1, 2, 4, 0, 917503, 2, 36, -1, 2, 69, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 32, 2, 70, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 14, 2, 20, 3, 0, 10, 2, 71, 2, 0, 2, 72, 2, 73, 2, 74, 2, 0, 2, 75, 2, 0, 2, 12, -1, 2, 22, 3, 0, 2, 2, 13, 2, 4, 3, 0, 18, 2, 76, 2, 5, 3, 0, 2, 2, 77, 0, 2147745791, 3, 17, 2, 0, 122879, 2, 0, 2, 9, 0, 276824064, -2, 3, 0, 2, 2, 40, 2, 0, 0, 4294903295, 2, 0, 2, 29, 2, 8, -1, 2, 16, 2, 48, 2, 0, 2, 78, 2, 64, -1, 2, 19, 2, 0, 2, 26, -2, 0, 128, -2, 2, 25, 2, 9, 0, 8160, -1, 2, 126, 0, 4227907585, 2, 0, 2, 35, 2, 0, 2, 79, 0, 4227915776, 2, 10, 2, 6, 2, 11, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 13, 2, 0, 2, 80, 2, 10, 2, 0, 2, 81, 2, 82, 2, 83, -3, 2, 84, 2, 85, -3, 2, 86, 2, 87, 2, 88, 2, 0, 2, 33, -83, 3, 0, 7, 0, 817183, 2, 0, 2, 14, 2, 0, 0, 33023, 2, 19, 3, 89, 2, -17, 2, 90, 0, 524157950, 2, 4, 2, 0, 2, 91, 2, 4, 2, 0, 2, 20, 2, 25, 2, 15, 3, 0, 2, 2, 57, 2, 0, -1, 2, 16, -16, 3, 0, 206, -2, 3, 0, 692, 2, 70, -1, 2, 16, 2, 10, 3, 0, 8, 2, 92, 0, 3072, 2, 0, 0, 2147516415, 2, 10, 3, 0, 2, 2, 22, 2, 93, 2, 94, 3, 0, 2, 2, 95, 2, 0, 2, 10, 2, 96, 0, 4294965179, 0, 7, 2, 0, 2, 9, 2, 94, 2, 9, -1, 0, 1761345536, 2, 97, 0, 4294901823, 2, 36, 2, 18, 2, 98, 2, 34, 2, 99, 0, 2080440287, 2, 0, 2, 33, 2, 157, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 100, 2, 101, 2, 20, 2, 102, 3, 0, 3, 0, 7, 3, 0, 349, 2, 47, 2, 103, 2, 7, -264, 3, 0, 11, 2, 21, 3, 0, 2, 2, 31, -1, 0, 2700607615, 2, 104, 2, 105, 3, 0, 2, 2, 17, 2, 106, 3, 0, 10, 2, 10, 2, 16, 2, 0, 2, 44, 2, 0, 2, 30, 2, 107, -3, 2, 108, 3, 0, 3, 2, 18, -1, 3, 5, 2, 2, 109, 2, 0, 2, 8, 2, 110, -1, 2, 111, 2, 112, 2, 113, -1, 3, 0, 3, 2, 12, -2, 2, 0, 2, 26, -8, 2, 18, 2, 0, 2, 27, -1, 2, 0, 2, 55, 2, 6, 2, 29, 2, 10, 2, 0, 2, 114, -1, 3, 0, 4, 2, 10, 2, 16, 2, 115, 2, 7, 2, 0, 2, 116, 2, 0, 2, 117, 2, 118, 2, 119, 2, 0, 2, 9, 3, 0, 9, 2, 19, 2, 29, 2, 30, 2, 120, 2, 46, -2, 2, 121, 2, 122, 2, 29, 2, 19, 2, 8, -2, 2, 123, 2, 29, 3, 31, 2, -1, 2, 0, 2, 37, -2, 0, 4277075969, 2, 29, -1, 3, 18, 2, -1, 2, 32, 2, 124, 2, 0, 3, 29, 2, 2, 34, 2, 17, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 79, 2, 97, 0, 4294934591, 2, 35, -7, 2, 0, 2, 125, 0, 4261413116, 2, 57, 2, 18, 2, 41, 2, 35, 2, 16, 0, 3, 2, 16, 2, 124, 2, 19, 2, 126, 2, 127, -1, 0, 2490368, 2, 126, 2, 22, 2, 16, 2, 33, 2, 126, 2, 36, 0, 4294901904, 0, 4718591, 2, 126, 2, 34, 0, 335544350, -1, 2, 128, 0, 2147487743, 0, 1, -1, 2, 129, 2, 130, 2, 8, -1, 2, 131, 2, 67, 0, 3758161920, 0, 3, 2, 132, 0, 12582911, 0, 655360, -1, 2, 0, 2, 26, 0, 2147485568, 0, 3, 2, 0, 2, 22, 0, 176, -5, 2, 0, 2, 57, 0, 251658240, -1, 2, 0, 2, 22, 0, 16, -1, 2, 0, 0, 16779263, -2, 2, 12, -1, 2, 36, -5, 2, 0, 2, 133, -3, 3, 0, 2, 2, 51, 2, 134, 0, 2147549183, 0, 2, -2, 2, 135, 2, 27, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, 2, 16, 2, 0, 2, 40, 2, 136, -5, 2, 0, 0, 1, 2, 54, 2, 57, 0, 1, 2, 137, 2, 22, -3, 2, 138, 2, 27, 2, 139, 2, 140, 0, 16778239, 2, 16, 2, 7, 0, 131072, -7, 2, 34, 0, 4294836212, 2, 9, -3, 2, 66, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 141, 3, 0, 6, 2, 47, 3, 0, 9, 2, 36, -71, 2, 16, 3, 0, 2, 2, 27, 3, 0, 33, 2, 22, 0, 126, 3, 0, 124, 2, 12, 3, 0, 18, 2, 36, -213, 2, 10, -55, 3, 0, 17, 2, 40, 2, 8, 2, 16, 2, 0, 2, 8, 2, 16, 2, 56, 2, 0, 2, 22, 2, 79, 2, 142, 2, 22, -13, 2, 0, 2, 70, -6, 3, 0, 2, -1, 2, 143, 2, 9, -1, 3, 0, 2, 0, 67583, -1, 2, 106, -2, 0, 8126475, 3, 0, 230, 2, 12, 2, 51, 2, 0, 0, 1, -2, 3, 0, 3, 2, 34, 3, 0, 28, 2, 17, 2, 0, 2, 34, -240, 2, 144, 3, 0, 9, 2, 145, 2, 146, 2, 147, 3, 0, 11, 2, 7, -72, 3, 0, 3, 2, 148, 2, 149, -187, 3, 0, 2, 2, 52, 2, 0, 2, 150, 2, 151, 2, 59, 2, 0, 2, 152, 2, 153, 2, 154, 3, 0, 10, 2, 155, 2, 156, 2, 20, 3, 52, 2, 3, 53, 2, 3, 54, 2, 2, 157, -57, 3, 0, 4, 2, 158, -1, 2, 55, 2, 0, -1, 2, 16, 2, 0, 2, 56, -4, 2, 0, 0, 1065361407, 0, 16384, -9, 2, 16, 2, 56, 2, 0, 2, 133, -14, 2, 16, 2, 133, -6, 2, 16, 0, 81919, -6, 2, 8, 0, 3223273399, -7, 2, 159, 3, 0, 6, 2, 124, -1, 3, 0, 2, 0, 2063, -37, 2, 59, 2, 160, 2, 161, 2, 162, 2, 163, 2, 164, -138, 3, 0, 1335, -1, 3, 0, 136, 2, 8, 3, 0, 180, 2, 21, 3, 0, 233, 2, 165, 3, 0, 18, 2, 10, -77, 3, 0, 16, 2, 10, -47, 3, 0, 154, 2, 6, 3, 0, 264, 2, 31, -1244, 3, 0, 354, -26654], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 4294903807, 268435455, 2147483647, 1048575, 1073741823, 3892314111, 134217727, 1061158911, 4294910143, 4294901759, 4294901760, 262143, 536870911, 8388607, 4160749567, 4294918143, 65535, 67043328, 2281701374, 4294967264, 2097151, 131071, 4294902783, 4194303, 255, 67108863, 4294967039, 511, 524287, 63, 127, 3238002687, 4294549487, 4290772991, 33554431, 4294901888, 4286578687, 67043329, 4294770687, 67043583, 4294836223, 4294901775, 2047999, 67043343, 67051519, 2147483648, 4292870143, 4294934527, 4294966783, 4294959104, 16383, 32767, 67047423, 4294967279, 262083, 20511, 58720255, 493567, 1023, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 15, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 4294934528, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 4294836228, 4294966272, 4294967280, 32768, 8289918, 4294934399, 4294915071, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 4294967232, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4160684047, 4290246655, 469499899, 4294967231, 4294966591, 2445279231, 3670015, 31, 197631, 4294967288, 16777215, 4294705151, 3221208447, 4294902271, 4294549472, 4294921215, 4095, 4285526655, 4294966527, 1024, 4294705152, 4294966143, 64, 4294966719, 4292935679, 3774873592, 4194303999, 1877934080, 262655, 2555904, 4294902256, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967167, 4160749565, 4087, 8323075, 2147446655, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901761]);
|
|
30
30
|
const isIDContinue = (code) => (unicodeLookup[(code >>> 5) + 0] >>> code & 31 & 1) !== 0;
|
|
31
31
|
const isIDStart = (code) => (unicodeLookup[(code >>> 5) + 34816] >>> code & 31 & 1) !== 0;
|
|
32
32
|
|
|
@@ -750,7 +750,7 @@ const errorMessages = {
|
|
|
750
750
|
[135]: 'Unexpected character after object literal property name',
|
|
751
751
|
[137]: 'Invalid key token',
|
|
752
752
|
[138]: "Label '%0' has already been declared",
|
|
753
|
-
[139]: '
|
|
753
|
+
[139]: "Label '%0' does not denote an iteration statement",
|
|
754
754
|
[140]: "Undefined label '%0'",
|
|
755
755
|
[141]: 'Trailing comma is disallowed inside import(...) arguments',
|
|
756
756
|
[142]: 'Invalid binding in JSON import',
|
|
@@ -1600,7 +1600,7 @@ function scanTemplate(parser, context) {
|
|
|
1600
1600
|
char = advanceChar(parser);
|
|
1601
1601
|
if (char === 13)
|
|
1602
1602
|
hasCarriageReturn = true;
|
|
1603
|
-
if (char > 0x7e) {
|
|
1603
|
+
if (char > 0x7e && char !== 8232 && char !== 8233) {
|
|
1604
1604
|
ret += String.fromCodePoint(char);
|
|
1605
1605
|
}
|
|
1606
1606
|
else {
|
|
@@ -2167,9 +2167,10 @@ function consume(parser, context, t) {
|
|
|
2167
2167
|
nextToken(parser, context);
|
|
2168
2168
|
}
|
|
2169
2169
|
function reinterpretToPattern(parser, node) {
|
|
2170
|
+
const rewritten = node;
|
|
2170
2171
|
switch (node.type) {
|
|
2171
2172
|
case 'ArrayExpression': {
|
|
2172
|
-
|
|
2173
|
+
rewritten.type = 'ArrayPattern';
|
|
2173
2174
|
const { elements } = node;
|
|
2174
2175
|
for (let i = 0, n = elements.length; i < n; ++i) {
|
|
2175
2176
|
const element = elements[i];
|
|
@@ -2179,7 +2180,7 @@ function reinterpretToPattern(parser, node) {
|
|
|
2179
2180
|
return;
|
|
2180
2181
|
}
|
|
2181
2182
|
case 'ObjectExpression': {
|
|
2182
|
-
|
|
2183
|
+
rewritten.type = 'ObjectPattern';
|
|
2183
2184
|
const { properties } = node;
|
|
2184
2185
|
for (let i = 0, n = properties.length; i < n; ++i) {
|
|
2185
2186
|
reinterpretToPattern(parser, properties[i]);
|
|
@@ -2187,17 +2188,17 @@ function reinterpretToPattern(parser, node) {
|
|
|
2187
2188
|
return;
|
|
2188
2189
|
}
|
|
2189
2190
|
case 'AssignmentExpression':
|
|
2190
|
-
|
|
2191
|
+
rewritten.type = 'AssignmentPattern';
|
|
2191
2192
|
if (node.operator !== '=')
|
|
2192
2193
|
parser.report(71);
|
|
2193
|
-
delete
|
|
2194
|
+
delete rewritten.operator;
|
|
2194
2195
|
reinterpretToPattern(parser, node.left);
|
|
2195
2196
|
return;
|
|
2196
2197
|
case 'Property':
|
|
2197
2198
|
reinterpretToPattern(parser, node.value);
|
|
2198
2199
|
return;
|
|
2199
2200
|
case 'SpreadElement':
|
|
2200
|
-
|
|
2201
|
+
rewritten.type = 'RestElement';
|
|
2201
2202
|
reinterpretToPattern(parser, node.argument);
|
|
2202
2203
|
}
|
|
2203
2204
|
}
|
|
@@ -2249,7 +2250,7 @@ function validateFunctionName(parser, context, t) {
|
|
|
2249
2250
|
}
|
|
2250
2251
|
}
|
|
2251
2252
|
function isStrictReservedWord(parser, context, t) {
|
|
2252
|
-
if (t === 209006) {
|
|
2253
|
+
if ((t & 255) === (209006 & 255)) {
|
|
2253
2254
|
if (context & (2048 | 2))
|
|
2254
2255
|
parser.report(112);
|
|
2255
2256
|
if ((parser.destructible & 128) === 0) {
|
|
@@ -2264,36 +2265,36 @@ function isStrictReservedWord(parser, context, t) {
|
|
|
2264
2265
|
t == -2147483526);
|
|
2265
2266
|
}
|
|
2266
2267
|
function isPropertyWithPrivateFieldKey(expr) {
|
|
2267
|
-
return
|
|
2268
|
+
return expr.type === 'MemberExpression' && expr.property.type === 'PrivateIdentifier';
|
|
2268
2269
|
}
|
|
2269
2270
|
function isValidLabel(parser, labels, name, isIterationStatement) {
|
|
2271
|
+
let isIterationLabelSet = 0;
|
|
2270
2272
|
while (labels) {
|
|
2271
|
-
if (labels
|
|
2272
|
-
if (isIterationStatement)
|
|
2273
|
-
parser.report(139);
|
|
2273
|
+
if (labels.names?.has(name)) {
|
|
2274
|
+
if (isIterationStatement && !isIterationLabelSet)
|
|
2275
|
+
parser.report(139, name);
|
|
2274
2276
|
return 1;
|
|
2275
2277
|
}
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
labels = labels['$'];
|
|
2278
|
+
isIterationLabelSet = labels.loop ? 1 : 0;
|
|
2279
|
+
labels = labels.parent;
|
|
2279
2280
|
}
|
|
2280
2281
|
return 0;
|
|
2281
2282
|
}
|
|
2282
2283
|
function validateAndDeclareLabel(parser, labels, name) {
|
|
2283
2284
|
let set = labels;
|
|
2284
2285
|
while (set) {
|
|
2285
|
-
if (set
|
|
2286
|
+
if (set.names?.has(name))
|
|
2286
2287
|
parser.report(138, name);
|
|
2287
|
-
set = set
|
|
2288
|
+
set = set.parent;
|
|
2288
2289
|
}
|
|
2289
|
-
labels
|
|
2290
|
+
(labels.names ??= new Set()).add(name);
|
|
2290
2291
|
}
|
|
2291
2292
|
function isEqualTagName(elementName) {
|
|
2292
2293
|
switch (elementName.type) {
|
|
2293
2294
|
case 'JSXIdentifier':
|
|
2294
2295
|
return elementName.name;
|
|
2295
2296
|
case 'JSXNamespacedName':
|
|
2296
|
-
return elementName.namespace + ':' + elementName.name;
|
|
2297
|
+
return isEqualTagName(elementName.namespace) + ':' + elementName.name.name;
|
|
2297
2298
|
case 'JSXMemberExpression':
|
|
2298
2299
|
return isEqualTagName(elementName.object) + '.' + isEqualTagName(elementName.property);
|
|
2299
2300
|
}
|
|
@@ -2908,6 +2909,7 @@ class Parser {
|
|
|
2908
2909
|
destructible = 0;
|
|
2909
2910
|
strictReservedRange = null;
|
|
2910
2911
|
firstAwaitLocation = null;
|
|
2912
|
+
firstYieldLocation = null;
|
|
2911
2913
|
leadingDecorators = { decorators: [] };
|
|
2912
2914
|
constructor(source, rawOptions = {}) {
|
|
2913
2915
|
this.source = source;
|
|
@@ -3289,7 +3291,7 @@ function parseBlock(parser, context, scope, privateScope, labels, start = parser
|
|
|
3289
3291
|
const body = [];
|
|
3290
3292
|
consume(parser, context | 32, 2162700);
|
|
3291
3293
|
while (parser.getToken() !== 1074790415) {
|
|
3292
|
-
body.push(parseStatementListItem(parser, context, scope, privateScope, {
|
|
3294
|
+
body.push(parseStatementListItem(parser, context, scope, privateScope, { parent: labels }));
|
|
3293
3295
|
}
|
|
3294
3296
|
consume(parser, context | 32, 1074790415);
|
|
3295
3297
|
return parser.finishNode({
|
|
@@ -3442,7 +3444,7 @@ function parseConsequentOrAlternative(parser, context, scope, privateScope, labe
|
|
|
3442
3444
|
return context & 1 ||
|
|
3443
3445
|
!parser.options.webcompat ||
|
|
3444
3446
|
parser.getToken() !== 86104
|
|
3445
|
-
? parseStatement(parser, context, scope, privateScope, {
|
|
3447
|
+
? parseStatement(parser, context, scope, privateScope, { parent: labels }, 0)
|
|
3446
3448
|
: parseFunctionDeclaration(parser, context, scope?.createChildScope(), privateScope, 0, 0, 0, tokenStart);
|
|
3447
3449
|
}
|
|
3448
3450
|
function parseSwitchStatement(parser, context, scope, privateScope, labels) {
|
|
@@ -3473,7 +3475,7 @@ function parseSwitchStatement(parser, context, scope, privateScope, labels) {
|
|
|
3473
3475
|
parser.getToken() !== 1074790415 &&
|
|
3474
3476
|
parser.getToken() !== 20561) {
|
|
3475
3477
|
const statement = parseStatementListItem(parser, context | 4, scope, privateScope, {
|
|
3476
|
-
|
|
3478
|
+
parent: labels,
|
|
3477
3479
|
});
|
|
3478
3480
|
if (statement.type === 'VariableDeclaration' &&
|
|
3479
3481
|
(statement.kind === 'using' || statement.kind === 'await using')) {
|
|
@@ -3508,7 +3510,7 @@ function parseWhileStatement(parser, context, scope, privateScope, labels) {
|
|
|
3508
3510
|
}, start);
|
|
3509
3511
|
}
|
|
3510
3512
|
function parseIterationStatementBody(parser, context, scope, privateScope, labels) {
|
|
3511
|
-
return parseStatement(parser, ((context | 131072) ^ 131072) | 128, scope, privateScope, { loop: 1,
|
|
3513
|
+
return parseStatement(parser, ((context | 131072) ^ 131072) | 128, scope, privateScope, { loop: 1, parent: labels }, 0);
|
|
3512
3514
|
}
|
|
3513
3515
|
function parseContinueStatement(parser, context, labels) {
|
|
3514
3516
|
if ((context & 128) === 0)
|
|
@@ -3518,9 +3520,9 @@ function parseContinueStatement(parser, context, labels) {
|
|
|
3518
3520
|
let label = null;
|
|
3519
3521
|
if ((parser.flags & 1) === 0 && parser.getToken() & 143360) {
|
|
3520
3522
|
const { tokenValue } = parser;
|
|
3521
|
-
label = parseIdentifier(parser, context | 32);
|
|
3522
3523
|
if (!isValidLabel(parser, labels, tokenValue, 1))
|
|
3523
3524
|
parser.report(140, tokenValue);
|
|
3525
|
+
label = parseIdentifier(parser, context | 32);
|
|
3524
3526
|
}
|
|
3525
3527
|
matchOrInsertSemicolon(parser, context | 32);
|
|
3526
3528
|
return parser.finishNode({
|
|
@@ -3534,9 +3536,9 @@ function parseBreakStatement(parser, context, labels) {
|
|
|
3534
3536
|
let label = null;
|
|
3535
3537
|
if ((parser.flags & 1) === 0 && parser.getToken() & 143360) {
|
|
3536
3538
|
const { tokenValue } = parser;
|
|
3537
|
-
label = parseIdentifier(parser, context | 32);
|
|
3538
3539
|
if (!isValidLabel(parser, labels, tokenValue, 0))
|
|
3539
3540
|
parser.report(140, tokenValue);
|
|
3541
|
+
label = parseIdentifier(parser, context | 32);
|
|
3540
3542
|
}
|
|
3541
3543
|
else if ((context & (4 | 128)) === 0) {
|
|
3542
3544
|
parser.report(69);
|
|
@@ -3574,7 +3576,7 @@ function parseTryStatement(parser, context, scope, privateScope, labels) {
|
|
|
3574
3576
|
const start = parser.tokenStart;
|
|
3575
3577
|
nextToken(parser, context | 32);
|
|
3576
3578
|
const firstScope = scope?.createChildScope(16);
|
|
3577
|
-
const block = parseBlock(parser, context, firstScope, privateScope, {
|
|
3579
|
+
const block = parseBlock(parser, context, firstScope, privateScope, { parent: labels });
|
|
3578
3580
|
const { tokenStart } = parser;
|
|
3579
3581
|
const handler = consumeOpt(parser, context | 32, 20557)
|
|
3580
3582
|
? parseCatchBlock(parser, context, scope, privateScope, labels, tokenStart)
|
|
@@ -3583,7 +3585,7 @@ function parseTryStatement(parser, context, scope, privateScope, labels) {
|
|
|
3583
3585
|
if (parser.getToken() === 20566) {
|
|
3584
3586
|
nextToken(parser, context | 32);
|
|
3585
3587
|
const finalizerScope = scope?.createChildScope(4);
|
|
3586
|
-
const block = parseBlock(parser, context, finalizerScope, privateScope, {
|
|
3588
|
+
const block = parseBlock(parser, context, finalizerScope, privateScope, { parent: labels });
|
|
3587
3589
|
finalizer = block;
|
|
3588
3590
|
}
|
|
3589
3591
|
if (!handler && !finalizer) {
|
|
@@ -3612,7 +3614,7 @@ function parseCatchBlock(parser, context, scope, privateScope, labels, start) {
|
|
|
3612
3614
|
consume(parser, context | 32, 16);
|
|
3613
3615
|
}
|
|
3614
3616
|
const additionalScope = scope?.createChildScope(32);
|
|
3615
|
-
const body = parseBlock(parser, context, additionalScope, privateScope, {
|
|
3617
|
+
const body = parseBlock(parser, context, additionalScope, privateScope, { parent: labels });
|
|
3616
3618
|
return parser.finishNode({
|
|
3617
3619
|
type: 'CatchClause',
|
|
3618
3620
|
param,
|
|
@@ -4684,12 +4686,16 @@ function parseAsyncExpression(parser, context, privateScope, inGroup, isLHS, can
|
|
|
4684
4686
|
return expr;
|
|
4685
4687
|
}
|
|
4686
4688
|
function parseYieldExpressionOrIdentifier(parser, context, privateScope, inGroup, canAssign, start) {
|
|
4687
|
-
if (inGroup)
|
|
4689
|
+
if (inGroup) {
|
|
4690
|
+
if ((parser.destructible & 256) === 0) {
|
|
4691
|
+
parser.firstYieldLocation ??= { start, end: parser.currentLocation };
|
|
4692
|
+
}
|
|
4688
4693
|
parser.destructible |= 256;
|
|
4694
|
+
}
|
|
4689
4695
|
if (context & 1024) {
|
|
4690
4696
|
nextToken(parser, context | 32);
|
|
4691
4697
|
if (context & 8192)
|
|
4692
|
-
parser.
|
|
4698
|
+
throw new ParseError(start, parser.startPosition, 32);
|
|
4693
4699
|
if (!canAssign)
|
|
4694
4700
|
parser.report(26);
|
|
4695
4701
|
if (parser.getToken() === 22)
|
|
@@ -4725,8 +4731,11 @@ function parseAwaitExpressionOrIdentifier(parser, context, privateScope, inNew,
|
|
|
4725
4731
|
}
|
|
4726
4732
|
if (context & 524288)
|
|
4727
4733
|
parser.report(179);
|
|
4728
|
-
const
|
|
4729
|
-
const
|
|
4734
|
+
const isEscaped = (parser.getToken() & -2147483648) !== 0;
|
|
4735
|
+
const allowRegExp = !isEscaped && context & (2048 | 2) ? 1 : 0;
|
|
4736
|
+
const possibleIdentifierOrArrowFunc = parseIdentifierOrArrow(parser, context, privateScope, allowRegExp);
|
|
4737
|
+
const isIdentifier = isEscaped ||
|
|
4738
|
+
possibleIdentifierOrArrowFunc.type === 'ArrowFunctionExpression' ||
|
|
4730
4739
|
(parser.getToken() & 65536) === 0;
|
|
4731
4740
|
if (isIdentifier) {
|
|
4732
4741
|
if (context & 2048)
|
|
@@ -4737,7 +4746,8 @@ function parseAwaitExpressionOrIdentifier(parser, context, privateScope, inNew,
|
|
|
4737
4746
|
throw new ParseError(start, parser.startPosition, 112);
|
|
4738
4747
|
return possibleIdentifierOrArrowFunc;
|
|
4739
4748
|
}
|
|
4740
|
-
if (context & 8192
|
|
4749
|
+
if (context & 8192 &&
|
|
4750
|
+
(context & (2048 | 2) || parser.getToken() & 143360)) {
|
|
4741
4751
|
throw new ParseError(start, parser.startPosition, 31);
|
|
4742
4752
|
}
|
|
4743
4753
|
if (context & 2048 || (context & 2 && context & 8)) {
|
|
@@ -5058,6 +5068,7 @@ function parsePrimaryExpression(parser, context, privateScope, kind, inNew, canA
|
|
|
5058
5068
|
if ((parser.getToken() & 143360) === 143360) {
|
|
5059
5069
|
switch (parser.getToken()) {
|
|
5060
5070
|
case 209006:
|
|
5071
|
+
case 209006 | -2147483648:
|
|
5061
5072
|
return parseAwaitExpressionOrIdentifier(parser, context, privateScope, inNew, inGroup, start);
|
|
5062
5073
|
case 241771:
|
|
5063
5074
|
return parseYieldExpressionOrIdentifier(parser, context, privateScope, inGroup, canAssign, start);
|
|
@@ -5404,10 +5415,9 @@ function parseArguments(parser, context, privateScope, inGroup) {
|
|
|
5404
5415
|
consume(parser, context | 64, 16);
|
|
5405
5416
|
return args;
|
|
5406
5417
|
}
|
|
5407
|
-
function parseIdentifier(parser, context) {
|
|
5418
|
+
function parseIdentifier(parser, context, allowRegExp = 0) {
|
|
5408
5419
|
const { tokenValue, tokenStart } = parser;
|
|
5409
|
-
|
|
5410
|
-
nextToken(parser, context | (allowRegex ? 32 : 0));
|
|
5420
|
+
nextToken(parser, context | (allowRegExp ? 32 : 0));
|
|
5411
5421
|
return parser.finishNode({
|
|
5412
5422
|
type: 'Identifier',
|
|
5413
5423
|
name: tokenValue,
|
|
@@ -5767,10 +5777,9 @@ function parseSpreadOrRestElement(parser, context, scope, privateScope, closingT
|
|
|
5767
5777
|
parser.report(41);
|
|
5768
5778
|
}
|
|
5769
5779
|
else if (token & 2097152) {
|
|
5770
|
-
argument =
|
|
5771
|
-
parser
|
|
5772
|
-
|
|
5773
|
-
: parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, inGroup, isPattern, kind, origin);
|
|
5780
|
+
argument = (parser.getToken() === 2162700
|
|
5781
|
+
? parseObjectLiteralOrPattern(parser, context, scope, privateScope, 1, inGroup, isPattern, kind, origin)
|
|
5782
|
+
: parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, inGroup, isPattern, kind, origin));
|
|
5774
5783
|
token = parser.getToken();
|
|
5775
5784
|
if (token !== 1077936155 && token !== closingToken && token !== 18) {
|
|
5776
5785
|
if (parser.destructible & 8)
|
|
@@ -5951,7 +5960,7 @@ function parseObjectLiteralOrPattern(parser, context, scope, privateScope, skipI
|
|
|
5951
5960
|
}
|
|
5952
5961
|
else {
|
|
5953
5962
|
destructible |=
|
|
5954
|
-
(token === 209006 ? 128 : 0) |
|
|
5963
|
+
((token & 255) === (209006 & 255) ? 128 : 0) |
|
|
5955
5964
|
(token === -2147483527 ? 16 : 0);
|
|
5956
5965
|
value = parser.cloneIdentifier(key);
|
|
5957
5966
|
}
|
|
@@ -6440,6 +6449,7 @@ function parseMethodFormals(parser, context, scope, privateScope, kind, type, in
|
|
|
6440
6449
|
parser.flags = (parser.flags | 128) ^ 128;
|
|
6441
6450
|
parser.strictReservedRange = null;
|
|
6442
6451
|
parser.firstAwaitLocation = null;
|
|
6452
|
+
parser.firstYieldLocation = null;
|
|
6443
6453
|
if (parser.getToken() === 16) {
|
|
6444
6454
|
if (kind & 512) {
|
|
6445
6455
|
parser.report(37, 'Setter', 'one', '');
|
|
@@ -6532,6 +6542,8 @@ function parseParenthesizedExpression(parser, context, privateScope, canAssign,
|
|
|
6532
6542
|
parser.destructible &= -385;
|
|
6533
6543
|
const previousFirstAwaitLocation = parser.firstAwaitLocation;
|
|
6534
6544
|
parser.firstAwaitLocation = null;
|
|
6545
|
+
const previousFirstYieldLocation = parser.firstYieldLocation;
|
|
6546
|
+
parser.firstYieldLocation = null;
|
|
6535
6547
|
let expr;
|
|
6536
6548
|
let expressions = [];
|
|
6537
6549
|
let isSequence = 0;
|
|
@@ -6618,7 +6630,7 @@ function parseParenthesizedExpression(parser, context, privateScope, canAssign,
|
|
|
6618
6630
|
parser.assignable = 2;
|
|
6619
6631
|
expr = parser.finishNode({
|
|
6620
6632
|
type: 'SequenceExpression',
|
|
6621
|
-
expressions,
|
|
6633
|
+
expressions: expressions,
|
|
6622
6634
|
}, tokenAfterParenthesesStart);
|
|
6623
6635
|
}
|
|
6624
6636
|
consume(parser, context, 16);
|
|
@@ -6626,6 +6638,9 @@ function parseParenthesizedExpression(parser, context, privateScope, canAssign,
|
|
|
6626
6638
|
if (previousFirstAwaitLocation) {
|
|
6627
6639
|
parser.firstAwaitLocation = previousFirstAwaitLocation;
|
|
6628
6640
|
}
|
|
6641
|
+
if (previousFirstYieldLocation) {
|
|
6642
|
+
parser.firstYieldLocation = previousFirstYieldLocation;
|
|
6643
|
+
}
|
|
6629
6644
|
return parser.options.preserveParens
|
|
6630
6645
|
? parser.finishNode({
|
|
6631
6646
|
type: 'ParenthesizedExpression',
|
|
@@ -6651,7 +6666,7 @@ function parseParenthesizedExpression(parser, context, privateScope, canAssign,
|
|
|
6651
6666
|
parser.assignable = 2;
|
|
6652
6667
|
expr = parser.finishNode({
|
|
6653
6668
|
type: 'SequenceExpression',
|
|
6654
|
-
expressions,
|
|
6669
|
+
expressions: expressions,
|
|
6655
6670
|
}, tokenAfterParenthesesStart);
|
|
6656
6671
|
}
|
|
6657
6672
|
consume(parser, context, 16);
|
|
@@ -6670,6 +6685,9 @@ function parseParenthesizedExpression(parser, context, privateScope, canAssign,
|
|
|
6670
6685
|
parser.report(31);
|
|
6671
6686
|
}
|
|
6672
6687
|
if (context & (1 | 1024) && destructible & 256) {
|
|
6688
|
+
const loc = parser.firstYieldLocation;
|
|
6689
|
+
if (loc)
|
|
6690
|
+
throw new ParseError(loc.start, loc.end, 32);
|
|
6673
6691
|
parser.report(32);
|
|
6674
6692
|
}
|
|
6675
6693
|
if (isNonSimpleParameterList)
|
|
@@ -6680,6 +6698,9 @@ function parseParenthesizedExpression(parser, context, privateScope, canAssign,
|
|
|
6680
6698
|
if (previousFirstAwaitLocation) {
|
|
6681
6699
|
parser.firstAwaitLocation = previousFirstAwaitLocation;
|
|
6682
6700
|
}
|
|
6701
|
+
if (previousFirstYieldLocation) {
|
|
6702
|
+
parser.firstYieldLocation = previousFirstYieldLocation;
|
|
6703
|
+
}
|
|
6683
6704
|
return parseParenthesizedArrow(parser, context, scope, privateScope, isSequence ? expressions : [expr], canAssign, 0, start, origin);
|
|
6684
6705
|
}
|
|
6685
6706
|
if (destructible & 64) {
|
|
@@ -6693,6 +6714,9 @@ function parseParenthesizedExpression(parser, context, privateScope, canAssign,
|
|
|
6693
6714
|
if (previousFirstAwaitLocation) {
|
|
6694
6715
|
parser.firstAwaitLocation = previousFirstAwaitLocation;
|
|
6695
6716
|
}
|
|
6717
|
+
if (previousFirstYieldLocation) {
|
|
6718
|
+
parser.firstYieldLocation = previousFirstYieldLocation;
|
|
6719
|
+
}
|
|
6696
6720
|
return parser.options.preserveParens
|
|
6697
6721
|
? parser.finishNode({
|
|
6698
6722
|
type: 'ParenthesizedExpression',
|
|
@@ -6700,7 +6724,7 @@ function parseParenthesizedExpression(parser, context, privateScope, canAssign,
|
|
|
6700
6724
|
}, parenthesesStart)
|
|
6701
6725
|
: expr;
|
|
6702
6726
|
}
|
|
6703
|
-
function parseIdentifierOrArrow(parser, context, privateScope) {
|
|
6727
|
+
function parseIdentifierOrArrow(parser, context, privateScope, allowRegExp = 0) {
|
|
6704
6728
|
const { tokenValue, tokenStart, currentLocation } = parser;
|
|
6705
6729
|
let isNonSimpleParameterList = 0;
|
|
6706
6730
|
let hasStrictReserved = 0;
|
|
@@ -6710,7 +6734,7 @@ function parseIdentifierOrArrow(parser, context, privateScope) {
|
|
|
6710
6734
|
else if ((parser.getToken() & 36864) === 36864) {
|
|
6711
6735
|
hasStrictReserved = 1;
|
|
6712
6736
|
}
|
|
6713
|
-
const expr = parseIdentifier(parser, context);
|
|
6737
|
+
const expr = parseIdentifier(parser, context, allowRegExp);
|
|
6714
6738
|
parser.assignable = 1;
|
|
6715
6739
|
if (parser.getToken() === 10) {
|
|
6716
6740
|
const scope = parser.options.lexical
|
|
@@ -6802,6 +6826,7 @@ function parseFormalParametersOrFormalList(parser, context, scope, privateScope,
|
|
|
6802
6826
|
parser.flags = (parser.flags | 128) ^ 128;
|
|
6803
6827
|
parser.strictReservedRange = null;
|
|
6804
6828
|
parser.firstAwaitLocation = null;
|
|
6829
|
+
parser.firstYieldLocation = null;
|
|
6805
6830
|
const params = [];
|
|
6806
6831
|
if (consumeOpt(parser, context, 16))
|
|
6807
6832
|
return params;
|
|
@@ -6944,7 +6969,7 @@ function parseMetaProperty(parser, context, meta, start) {
|
|
|
6944
6969
|
}, start);
|
|
6945
6970
|
}
|
|
6946
6971
|
function parseAsyncArrowAfterIdent(parser, context, privateScope, canAssign, start) {
|
|
6947
|
-
if (parser.getToken() === 209006)
|
|
6972
|
+
if ((parser.getToken() & 255) === (209006 & 255))
|
|
6948
6973
|
parser.report(31);
|
|
6949
6974
|
if (context & (1 | 1024) && parser.getToken() === 241771) {
|
|
6950
6975
|
parser.report(32);
|
|
@@ -6960,6 +6985,8 @@ function parseAsyncArrowOrCallExpression(parser, context, privateScope, callee,
|
|
|
6960
6985
|
const scope = parser.createScopeIfLexical()?.createChildScope(512);
|
|
6961
6986
|
const previousFirstAwaitLocation = parser.firstAwaitLocation;
|
|
6962
6987
|
parser.firstAwaitLocation = null;
|
|
6988
|
+
const previousFirstYieldLocation = parser.firstYieldLocation;
|
|
6989
|
+
parser.firstYieldLocation = null;
|
|
6963
6990
|
context = (context | 131072) ^ 131072;
|
|
6964
6991
|
if (consumeOpt(parser, context, 16)) {
|
|
6965
6992
|
if (parser.getToken() === 10) {
|
|
@@ -6975,6 +7002,8 @@ function parseAsyncArrowOrCallExpression(parser, context, privateScope, callee,
|
|
|
6975
7002
|
}
|
|
6976
7003
|
if (previousFirstAwaitLocation)
|
|
6977
7004
|
parser.firstAwaitLocation = previousFirstAwaitLocation;
|
|
7005
|
+
if (previousFirstYieldLocation)
|
|
7006
|
+
parser.firstYieldLocation = previousFirstYieldLocation;
|
|
6978
7007
|
return parser.finishNode({
|
|
6979
7008
|
type: 'CallExpression',
|
|
6980
7009
|
callee,
|
|
@@ -7021,10 +7050,9 @@ function parseAsyncArrowOrCallExpression(parser, context, privateScope, callee,
|
|
|
7021
7050
|
}
|
|
7022
7051
|
}
|
|
7023
7052
|
else if (token & 2097152) {
|
|
7024
|
-
expr =
|
|
7025
|
-
|
|
7026
|
-
|
|
7027
|
-
: parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, 1, 0, kind);
|
|
7053
|
+
expr = (token === 2162700
|
|
7054
|
+
? parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, 1, 0, kind)
|
|
7055
|
+
: parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, 1, 0, kind));
|
|
7028
7056
|
destructible |= parser.destructible;
|
|
7029
7057
|
isNonSimpleParameterList = 1;
|
|
7030
7058
|
if (parser.getToken() !== 16 && parser.getToken() !== 18) {
|
|
@@ -7064,6 +7092,8 @@ function parseAsyncArrowOrCallExpression(parser, context, privateScope, callee,
|
|
|
7064
7092
|
}
|
|
7065
7093
|
if (previousFirstAwaitLocation)
|
|
7066
7094
|
parser.firstAwaitLocation = previousFirstAwaitLocation;
|
|
7095
|
+
if (previousFirstYieldLocation)
|
|
7096
|
+
parser.firstYieldLocation = previousFirstYieldLocation;
|
|
7067
7097
|
return parser.finishNode({
|
|
7068
7098
|
type: 'CallExpression',
|
|
7069
7099
|
callee,
|
|
@@ -7090,8 +7120,12 @@ function parseAsyncArrowOrCallExpression(parser, context, privateScope, callee,
|
|
|
7090
7120
|
throw new ParseError(loc.start, loc.end, 31);
|
|
7091
7121
|
parser.report(31);
|
|
7092
7122
|
}
|
|
7093
|
-
if (context & (1 | 1024) && destructible & 256)
|
|
7123
|
+
if (context & (1 | 1024) && destructible & 256) {
|
|
7124
|
+
const loc = parser.firstYieldLocation;
|
|
7125
|
+
if (loc)
|
|
7126
|
+
throw new ParseError(loc.start, loc.end, 32);
|
|
7094
7127
|
parser.report(32);
|
|
7128
|
+
}
|
|
7095
7129
|
if (isNonSimpleParameterList)
|
|
7096
7130
|
parser.flags |= 128;
|
|
7097
7131
|
return parseParenthesizedArrow(parser, context | 2048, scope, privateScope, params, canAssign, 1, start);
|
|
@@ -7110,6 +7144,8 @@ function parseAsyncArrowOrCallExpression(parser, context, privateScope, callee,
|
|
|
7110
7144
|
}
|
|
7111
7145
|
if (previousFirstAwaitLocation)
|
|
7112
7146
|
parser.firstAwaitLocation = previousFirstAwaitLocation;
|
|
7147
|
+
if (previousFirstYieldLocation)
|
|
7148
|
+
parser.firstYieldLocation = previousFirstYieldLocation;
|
|
7113
7149
|
return parser.finishNode({
|
|
7114
7150
|
type: 'CallExpression',
|
|
7115
7151
|
callee,
|
|
@@ -7489,6 +7525,7 @@ function parsePropertyDefinition(parser, context, privateScope, key, state, deco
|
|
|
7489
7525
|
parser.report(121);
|
|
7490
7526
|
const modifierFlags = 1024 |
|
|
7491
7527
|
2048 |
|
|
7528
|
+
8 |
|
|
7492
7529
|
8192 |
|
|
7493
7530
|
((state & 64) === 0 ? 512 | 16384 : 0);
|
|
7494
7531
|
context =
|