@typescript-deploys/pr-build 5.3.0-pr-55576-6 → 5.3.0-pr-55600-13
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/lib/tsc.js +989 -79
- package/lib/tsserver.js +1033 -84
- package/lib/typescript.d.ts +27 -1
- package/lib/typescript.js +1032 -86
- package/lib/typingsInstaller.js +988 -78
- package/package.json +2 -2
package/lib/tsc.js
CHANGED
|
@@ -18,7 +18,7 @@ and limitations under the License.
|
|
|
18
18
|
|
|
19
19
|
// src/compiler/corePublic.ts
|
|
20
20
|
var versionMajorMinor = "5.3";
|
|
21
|
-
var version = `${versionMajorMinor}.0-insiders.
|
|
21
|
+
var version = `${versionMajorMinor}.0-insiders.20230901`;
|
|
22
22
|
|
|
23
23
|
// src/compiler/core.ts
|
|
24
24
|
var emptyArray = [];
|
|
@@ -3781,6 +3781,24 @@ var ScriptKind = /* @__PURE__ */ ((ScriptKind3) => {
|
|
|
3781
3781
|
ScriptKind3[ScriptKind3["Deferred"] = 7] = "Deferred";
|
|
3782
3782
|
return ScriptKind3;
|
|
3783
3783
|
})(ScriptKind || {});
|
|
3784
|
+
var ScriptTarget = /* @__PURE__ */ ((ScriptTarget3) => {
|
|
3785
|
+
ScriptTarget3[ScriptTarget3["ES3"] = 0] = "ES3";
|
|
3786
|
+
ScriptTarget3[ScriptTarget3["ES5"] = 1] = "ES5";
|
|
3787
|
+
ScriptTarget3[ScriptTarget3["ES2015"] = 2] = "ES2015";
|
|
3788
|
+
ScriptTarget3[ScriptTarget3["ES2016"] = 3] = "ES2016";
|
|
3789
|
+
ScriptTarget3[ScriptTarget3["ES2017"] = 4] = "ES2017";
|
|
3790
|
+
ScriptTarget3[ScriptTarget3["ES2018"] = 5] = "ES2018";
|
|
3791
|
+
ScriptTarget3[ScriptTarget3["ES2019"] = 6] = "ES2019";
|
|
3792
|
+
ScriptTarget3[ScriptTarget3["ES2020"] = 7] = "ES2020";
|
|
3793
|
+
ScriptTarget3[ScriptTarget3["ES2021"] = 8] = "ES2021";
|
|
3794
|
+
ScriptTarget3[ScriptTarget3["ES2022"] = 9] = "ES2022";
|
|
3795
|
+
ScriptTarget3[ScriptTarget3["ES2023"] = 10] = "ES2023";
|
|
3796
|
+
ScriptTarget3[ScriptTarget3["ES2024"] = 11] = "ES2024";
|
|
3797
|
+
ScriptTarget3[ScriptTarget3["ESNext"] = 99] = "ESNext";
|
|
3798
|
+
ScriptTarget3[ScriptTarget3["JSON"] = 100] = "JSON";
|
|
3799
|
+
ScriptTarget3[ScriptTarget3["Latest"] = 99 /* ESNext */] = "Latest";
|
|
3800
|
+
return ScriptTarget3;
|
|
3801
|
+
})(ScriptTarget || {});
|
|
3784
3802
|
var TransformFlags = /* @__PURE__ */ ((TransformFlags3) => {
|
|
3785
3803
|
TransformFlags3[TransformFlags3["None"] = 0] = "None";
|
|
3786
3804
|
TransformFlags3[TransformFlags3["ContainsTypeScript"] = 1] = "ContainsTypeScript";
|
|
@@ -6091,6 +6109,43 @@ var Diagnostics = {
|
|
|
6091
6109
|
The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration: diag(1493, 1 /* Error */, "The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration_1493", "The left-hand side of a 'for...in' statement cannot be a 'using' declaration."),
|
|
6092
6110
|
The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration: diag(1494, 1 /* Error */, "The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration_1494", "The left-hand side of a 'for...in' statement cannot be an 'await using' declaration."),
|
|
6093
6111
|
_0_modifier_cannot_appear_on_an_await_using_declaration: diag(1495, 1 /* Error */, "_0_modifier_cannot_appear_on_an_await_using_declaration_1495", "'{0}' modifier cannot appear on an 'await using' declaration."),
|
|
6112
|
+
_0_is_not_a_valid_character_escape: diag(1496, 1 /* Error */, "_0_is_not_a_valid_character_escape_1496", "'\\{0}' is not a valid character escape."),
|
|
6113
|
+
Unknown_regular_expression_flag: diag(1497, 1 /* Error */, "Unknown_regular_expression_flag_1497", "Unknown regular expression flag."),
|
|
6114
|
+
Duplicate_regular_expression_flag: diag(1498, 1 /* Error */, "Duplicate_regular_expression_flag_1498", "Duplicate regular expression flag."),
|
|
6115
|
+
This_regular_expression_flag_is_only_available_when_targeting_0_or_later: diag(1499, 1 /* Error */, "This_regular_expression_flag_is_only_available_when_targeting_0_or_later_1499", "This regular expression flag is only available when targeting '{0}' or later."),
|
|
6116
|
+
The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously: diag(1500, 1 /* Error */, "The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously_1500", "The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously."),
|
|
6117
|
+
Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later: diag(1501, 1 /* Error */, "Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later_1501", "Named capturing groups are only available when targeting 'ES2018' or later."),
|
|
6118
|
+
Subpattern_flags_must_be_present_when_there_is_a_minus_sign: diag(1502, 1 /* Error */, "Subpattern_flags_must_be_present_when_there_is_a_minus_sign_1502", "Subpattern flags must be present when there is a minus sign."),
|
|
6119
|
+
Incomplete_quantifier_Digit_expected: diag(1503, 1 /* Error */, "Incomplete_quantifier_Digit_expected_1503", "Incomplete quantifier. Digit expected."),
|
|
6120
|
+
Numbers_out_of_order_in_quantifier: diag(1504, 1 /* Error */, "Numbers_out_of_order_in_quantifier_1504", "Numbers out of order in quantifier."),
|
|
6121
|
+
There_is_nothing_available_for_repetition: diag(1505, 1 /* Error */, "There_is_nothing_available_for_repetition_1505", "There is nothing available for repetition."),
|
|
6122
|
+
Unexpected_0_Did_you_mean_to_escape_it_with_backslash: diag(1506, 1 /* Error */, "Unexpected_0_Did_you_mean_to_escape_it_with_backslash_1506", "Unexpected '{0}'. Did you mean to escape it with backslash?"),
|
|
6123
|
+
This_regular_expression_flag_cannot_be_toggled_within_a_subpattern: diag(1507, 1 /* Error */, "This_regular_expression_flag_cannot_be_toggled_within_a_subpattern_1507", "This regular expression flag cannot be toggled within a subpattern."),
|
|
6124
|
+
k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets: diag(1508, 1 /* Error */, "k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets_1508", "'\\k' must be followed by a capturing group name enclosed in angle brackets."),
|
|
6125
|
+
q_is_only_available_inside_character_class: diag(1509, 1 /* Error */, "q_is_only_available_inside_character_class_1509", "'\\q' is only available inside character class."),
|
|
6126
|
+
c_must_be_followed_by_an_ASCII_letter: diag(1510, 1 /* Error */, "c_must_be_followed_by_an_ASCII_letter_1510", "'\\c' must be followed by an ASCII letter."),
|
|
6127
|
+
Undetermined_character_escape: diag(1511, 1 /* Error */, "Undetermined_character_escape_1511", "Undetermined character escape."),
|
|
6128
|
+
Expected_a_capturing_group_name: diag(1512, 1 /* Error */, "Expected_a_capturing_group_name_1512", "Expected a capturing group name."),
|
|
6129
|
+
Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other: diag(1513, 1 /* Error */, "Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other_1513", "Named capturing groups with the same name must be mutually exclusive to each other."),
|
|
6130
|
+
A_character_class_range_must_not_be_bounded_by_another_character_class: diag(1514, 1 /* Error */, "A_character_class_range_must_not_be_bounded_by_another_character_class_1514", "A character class range must not be bounded by another character class."),
|
|
6131
|
+
Range_out_of_order_in_character_class: diag(1515, 1 /* Error */, "Range_out_of_order_in_character_class_1515", "Range out of order in character class."),
|
|
6132
|
+
Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class: diag(1516, 1 /* Error */, "Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_characte_1516", "Anything that would possibly match more than a single character is invalid inside a negated character class."),
|
|
6133
|
+
Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead: diag(1517, 1 /* Error */, "Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead_1517", "Operators must not be mixed within a character class. Wrap it in a nested class instead."),
|
|
6134
|
+
Expected_a_class_set_oprand: diag(1518, 1 /* Error */, "Expected_a_class_set_oprand_1518", "Expected a class set oprand."),
|
|
6135
|
+
q_must_be_followed_by_string_alternatives_enclosed_in_braces: diag(1519, 1 /* Error */, "q_must_be_followed_by_string_alternatives_enclosed_in_braces_1519", "'\\q' must be followed by string alternatives enclosed in braces."),
|
|
6136
|
+
A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash: diag(1520, 1 /* Error */, "A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backs_1520", "A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?"),
|
|
6137
|
+
Expected_a_Unicode_property_name: diag(1521, 1 /* Error */, "Expected_a_Unicode_property_name_1521", "Expected a Unicode property name."),
|
|
6138
|
+
Unknown_Unicode_property_name: diag(1522, 1 /* Error */, "Unknown_Unicode_property_name_1522", "Unknown Unicode property name."),
|
|
6139
|
+
Expected_a_Unicode_property_value: diag(1523, 1 /* Error */, "Expected_a_Unicode_property_value_1523", "Expected a Unicode property value."),
|
|
6140
|
+
Unknown_Unicode_property_value: diag(1524, 1 /* Error */, "Unknown_Unicode_property_value_1524", "Unknown Unicode property value."),
|
|
6141
|
+
Expected_a_Unicode_property_name_or_value: diag(1525, 1 /* Error */, "Expected_a_Unicode_property_name_or_value_1525", "Expected a Unicode property name or value."),
|
|
6142
|
+
Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set: diag(1526, 1 /* Error */, "Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_t_1526", "Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set."),
|
|
6143
|
+
Unknown_Unicode_property_name_or_value: diag(1527, 1 /* Error */, "Unknown_Unicode_property_name_or_value_1527", "Unknown Unicode property name or value."),
|
|
6144
|
+
Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set: diag(1528, 1 /* Error */, "Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v__1528", "Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),
|
|
6145
|
+
_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces: diag(1529, 1 /* Error */, "_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces_1529", "'\\{0}' must be followed by a Unicode property value expression enclosed in braces."),
|
|
6146
|
+
There_is_no_capturing_group_named_0_in_this_regular_expression: diag(1530, 1 /* Error */, "There_is_no_capturing_group_named_0_in_this_regular_expression_1530", "There is no capturing group named '{0}' in this regular expression."),
|
|
6147
|
+
A_decimal_escape_must_refer_to_an_existent_capturing_group_There_are_only_0_capturing_groups_in_this_regular_expression: diag(1531, 1 /* Error */, "A_decimal_escape_must_refer_to_an_existent_capturing_group_There_are_only_0_capturing_groups_in_this_1531", "A decimal escape must refer to an existent capturing group. There are only {0} capturing groups in this regular expression."),
|
|
6148
|
+
Decimal_escapes_are_invalid_when_there_are_no_capturing_groups_in_a_regular_expression: diag(1532, 1 /* Error */, "Decimal_escapes_are_invalid_when_there_are_no_capturing_groups_in_a_regular_expression_1532", "Decimal escapes are invalid when there are no capturing groups in a regular expression."),
|
|
6094
6149
|
The_types_of_0_are_incompatible_between_these_types: diag(2200, 1 /* Error */, "The_types_of_0_are_incompatible_between_these_types_2200", "The types of '{0}' are incompatible between these types."),
|
|
6095
6150
|
The_types_returned_by_0_are_incompatible_between_these_types: diag(2201, 1 /* Error */, "The_types_returned_by_0_are_incompatible_between_these_types_2201", "The types returned by '{0}' are incompatible between these types."),
|
|
6096
6151
|
Call_signature_return_types_0_and_1_are_incompatible: diag(
|
|
@@ -7924,6 +7979,26 @@ var textToToken = new Map(Object.entries({
|
|
|
7924
7979
|
"#": 63 /* HashToken */,
|
|
7925
7980
|
"`": 62 /* BacktickToken */
|
|
7926
7981
|
}));
|
|
7982
|
+
var charToRegExpFlag = new Map(Object.entries({
|
|
7983
|
+
d: 1 /* HasIndices */,
|
|
7984
|
+
g: 2 /* Global */,
|
|
7985
|
+
i: 4 /* IgnoreCase */,
|
|
7986
|
+
m: 8 /* Multiline */,
|
|
7987
|
+
s: 16 /* DotAll */,
|
|
7988
|
+
u: 32 /* Unicode */,
|
|
7989
|
+
v: 64 /* UnicodeSets */,
|
|
7990
|
+
y: 128 /* Sticky */
|
|
7991
|
+
}));
|
|
7992
|
+
var regExpFlagToFirstAvailableLanguageVersion = /* @__PURE__ */ new Map([
|
|
7993
|
+
[1 /* HasIndices */, 9 /* ES2022 */],
|
|
7994
|
+
[2 /* Global */, 0 /* ES3 */],
|
|
7995
|
+
[4 /* IgnoreCase */, 0 /* ES3 */],
|
|
7996
|
+
[8 /* Multiline */, 0 /* ES3 */],
|
|
7997
|
+
[16 /* DotAll */, 5 /* ES2018 */],
|
|
7998
|
+
[32 /* Unicode */, 2 /* ES2015 */],
|
|
7999
|
+
[64 /* UnicodeSets */, 11 /* ES2024 */],
|
|
8000
|
+
[128 /* Sticky */, 2 /* ES2015 */]
|
|
8001
|
+
]);
|
|
7927
8002
|
var unicodeES3IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500];
|
|
7928
8003
|
var unicodeES3IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500];
|
|
7929
8004
|
var unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500];
|
|
@@ -7973,6 +8048,13 @@ function tokenToString(t) {
|
|
|
7973
8048
|
function stringToToken(s) {
|
|
7974
8049
|
return textToToken.get(s);
|
|
7975
8050
|
}
|
|
8051
|
+
var regExpFlagChars = makeReverseMap(charToRegExpFlag);
|
|
8052
|
+
function characterToRegularExpressionFlag(c) {
|
|
8053
|
+
return charToRegExpFlag.get(c);
|
|
8054
|
+
}
|
|
8055
|
+
function regularExpressionFlagToFirstAvailableLanguageVersion(f) {
|
|
8056
|
+
return regExpFlagToFirstAvailableLanguageVersion.get(f);
|
|
8057
|
+
}
|
|
7976
8058
|
function computeLineStarts(text) {
|
|
7977
8059
|
const result = [];
|
|
7978
8060
|
let pos = 0;
|
|
@@ -8069,8 +8151,11 @@ function isDigit(ch) {
|
|
|
8069
8151
|
function isHexDigit(ch) {
|
|
8070
8152
|
return isDigit(ch) || ch >= 65 /* A */ && ch <= 70 /* F */ || ch >= 97 /* a */ && ch <= 102 /* f */;
|
|
8071
8153
|
}
|
|
8072
|
-
function
|
|
8073
|
-
return
|
|
8154
|
+
function isASCIILetter(ch) {
|
|
8155
|
+
return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */;
|
|
8156
|
+
}
|
|
8157
|
+
function isWordCharacter(ch) {
|
|
8158
|
+
return isASCIILetter(ch) || isDigit(ch) || ch === 95 /* _ */;
|
|
8074
8159
|
}
|
|
8075
8160
|
function isOctalDigit(ch) {
|
|
8076
8161
|
return ch >= 48 /* _0 */ && ch <= 55 /* _7 */;
|
|
@@ -8388,10 +8473,10 @@ function getShebang(text) {
|
|
|
8388
8473
|
}
|
|
8389
8474
|
}
|
|
8390
8475
|
function isIdentifierStart(ch, languageVersion) {
|
|
8391
|
-
return ch
|
|
8476
|
+
return isASCIILetter(ch) || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion);
|
|
8392
8477
|
}
|
|
8393
8478
|
function isIdentifierPart(ch, languageVersion, identifierVariant) {
|
|
8394
|
-
return ch
|
|
8479
|
+
return isWordCharacter(ch) || ch === 36 /* $ */ || // "-" and ":" are valid in JSX Identifiers
|
|
8395
8480
|
(identifierVariant === 1 /* JSX */ ? ch === 45 /* minus */ || ch === 58 /* colon */ : false) || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierPart(ch, languageVersion);
|
|
8396
8481
|
}
|
|
8397
8482
|
function isIdentifierText(name, languageVersion, identifierVariant) {
|
|
@@ -8477,13 +8562,8 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
8477
8562
|
});
|
|
8478
8563
|
}
|
|
8479
8564
|
return scanner;
|
|
8480
|
-
function error(message, errPos = pos, length3,
|
|
8481
|
-
|
|
8482
|
-
const oldPos = pos;
|
|
8483
|
-
pos = errPos;
|
|
8484
|
-
onError(message, length3 || 0, arg0);
|
|
8485
|
-
pos = oldPos;
|
|
8486
|
-
}
|
|
8565
|
+
function error(message, errPos = pos, length3 = 0, ...args) {
|
|
8566
|
+
return onError == null ? void 0 : onError(message, errPos, length3, ...args);
|
|
8487
8567
|
}
|
|
8488
8568
|
function scanNumberFragment() {
|
|
8489
8569
|
let start2 = pos;
|
|
@@ -8708,7 +8788,9 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
8708
8788
|
result += text.substring(start2, pos);
|
|
8709
8789
|
result += scanEscapeSequence(
|
|
8710
8790
|
/*shouldEmitInvalidEscapeError*/
|
|
8711
|
-
true
|
|
8791
|
+
true,
|
|
8792
|
+
/*isRegularExpression*/
|
|
8793
|
+
false
|
|
8712
8794
|
);
|
|
8713
8795
|
start2 = pos;
|
|
8714
8796
|
continue;
|
|
@@ -8752,7 +8834,11 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
8752
8834
|
}
|
|
8753
8835
|
if (currChar === 92 /* backslash */) {
|
|
8754
8836
|
contents += text.substring(start2, pos);
|
|
8755
|
-
contents += scanEscapeSequence(
|
|
8837
|
+
contents += scanEscapeSequence(
|
|
8838
|
+
shouldEmitInvalidEscapeError,
|
|
8839
|
+
/*isRegularExpression*/
|
|
8840
|
+
false
|
|
8841
|
+
);
|
|
8756
8842
|
start2 = pos;
|
|
8757
8843
|
continue;
|
|
8758
8844
|
}
|
|
@@ -8772,7 +8858,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
8772
8858
|
tokenValue = contents;
|
|
8773
8859
|
return resultingToken;
|
|
8774
8860
|
}
|
|
8775
|
-
function scanEscapeSequence(shouldEmitInvalidEscapeError) {
|
|
8861
|
+
function scanEscapeSequence(shouldEmitInvalidEscapeError, isRegularExpression) {
|
|
8776
8862
|
const start2 = pos;
|
|
8777
8863
|
pos++;
|
|
8778
8864
|
if (pos >= end) {
|
|
@@ -8831,45 +8917,9 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
8831
8917
|
case 34 /* doubleQuote */:
|
|
8832
8918
|
return '"';
|
|
8833
8919
|
case 117 /* u */:
|
|
8834
|
-
if (pos < end && text.charCodeAt(pos) === 123 /* openBrace */) {
|
|
8835
|
-
pos
|
|
8836
|
-
|
|
8837
|
-
1,
|
|
8838
|
-
/*canHaveSeparators*/
|
|
8839
|
-
false
|
|
8840
|
-
);
|
|
8841
|
-
const escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1;
|
|
8842
|
-
if (escapedValue < 0) {
|
|
8843
|
-
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
8844
|
-
if (shouldEmitInvalidEscapeError) {
|
|
8845
|
-
error(Diagnostics.Hexadecimal_digit_expected);
|
|
8846
|
-
}
|
|
8847
|
-
return text.substring(start2, pos);
|
|
8848
|
-
}
|
|
8849
|
-
if (!isCodePoint(escapedValue)) {
|
|
8850
|
-
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
8851
|
-
if (shouldEmitInvalidEscapeError) {
|
|
8852
|
-
error(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive);
|
|
8853
|
-
}
|
|
8854
|
-
return text.substring(start2, pos);
|
|
8855
|
-
}
|
|
8856
|
-
if (pos >= end) {
|
|
8857
|
-
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
8858
|
-
if (shouldEmitInvalidEscapeError) {
|
|
8859
|
-
error(Diagnostics.Unexpected_end_of_text);
|
|
8860
|
-
}
|
|
8861
|
-
return text.substring(start2, pos);
|
|
8862
|
-
}
|
|
8863
|
-
if (text.charCodeAt(pos) !== 125 /* closeBrace */) {
|
|
8864
|
-
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
8865
|
-
if (shouldEmitInvalidEscapeError) {
|
|
8866
|
-
error(Diagnostics.Unterminated_Unicode_escape_sequence);
|
|
8867
|
-
}
|
|
8868
|
-
return text.substring(start2, pos);
|
|
8869
|
-
}
|
|
8870
|
-
pos++;
|
|
8871
|
-
tokenFlags |= 8 /* ExtendedUnicodeEscape */;
|
|
8872
|
-
return utf16EncodeAsString(escapedValue);
|
|
8920
|
+
if ((!isRegularExpression || shouldEmitInvalidEscapeError) && pos < end && text.charCodeAt(pos) === 123 /* openBrace */) {
|
|
8921
|
+
pos -= 2;
|
|
8922
|
+
return scanExtendedUnicodeEscape(shouldEmitInvalidEscapeError);
|
|
8873
8923
|
}
|
|
8874
8924
|
for (; pos < start2 + 6; pos++) {
|
|
8875
8925
|
if (!(pos < end && isHexDigit(text.charCodeAt(pos)))) {
|
|
@@ -8881,7 +8931,23 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
8881
8931
|
}
|
|
8882
8932
|
}
|
|
8883
8933
|
tokenFlags |= 1024 /* UnicodeEscape */;
|
|
8884
|
-
|
|
8934
|
+
const escapedValue = parseInt(text.substring(start2 + 2, pos), 16);
|
|
8935
|
+
const escapedValueString = String.fromCharCode(escapedValue);
|
|
8936
|
+
if (isRegularExpression && shouldEmitInvalidEscapeError && escapedValue >= 55296 && escapedValue <= 56319 && pos + 6 < end && text.substring(pos, pos + 2) === "\\u" && text.charCodeAt(pos + 2) !== 123 /* openBrace */) {
|
|
8937
|
+
const nextStart = pos;
|
|
8938
|
+
let nextPos = pos + 2;
|
|
8939
|
+
for (; nextPos < nextStart + 6; nextPos++) {
|
|
8940
|
+
if (!isHexDigit(text.charCodeAt(pos))) {
|
|
8941
|
+
return escapedValueString;
|
|
8942
|
+
}
|
|
8943
|
+
}
|
|
8944
|
+
const nextEscapedValue = parseInt(text.substring(nextStart + 2, nextPos), 16);
|
|
8945
|
+
if (nextEscapedValue >= 56320 && nextEscapedValue <= 57343) {
|
|
8946
|
+
pos = nextPos;
|
|
8947
|
+
return escapedValueString + String.fromCharCode(nextEscapedValue);
|
|
8948
|
+
}
|
|
8949
|
+
}
|
|
8950
|
+
return escapedValueString;
|
|
8885
8951
|
case 120 /* x */:
|
|
8886
8952
|
for (; pos < start2 + 4; pos++) {
|
|
8887
8953
|
if (!(pos < end && isHexDigit(text.charCodeAt(pos)))) {
|
|
@@ -8903,10 +8969,16 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
8903
8969
|
case 8233 /* paragraphSeparator */:
|
|
8904
8970
|
return "";
|
|
8905
8971
|
default:
|
|
8972
|
+
if (isRegularExpression && (shouldEmitInvalidEscapeError || isIdentifierPart(ch, languageVersion))) {
|
|
8973
|
+
error(Diagnostics._0_is_not_a_valid_character_escape, pos - 2, 2, String.fromCharCode(ch));
|
|
8974
|
+
}
|
|
8906
8975
|
return String.fromCharCode(ch);
|
|
8907
8976
|
}
|
|
8908
8977
|
}
|
|
8909
|
-
function scanExtendedUnicodeEscape() {
|
|
8978
|
+
function scanExtendedUnicodeEscape(shouldEmitInvalidEscapeError = true) {
|
|
8979
|
+
const start2 = pos;
|
|
8980
|
+
pos += 3;
|
|
8981
|
+
const escapedStart = pos;
|
|
8910
8982
|
const escapedValueString = scanMinimumNumberOfHexDigits(
|
|
8911
8983
|
1,
|
|
8912
8984
|
/*canHaveSeparators*/
|
|
@@ -8915,24 +8987,34 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
8915
8987
|
const escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1;
|
|
8916
8988
|
let isInvalidExtendedEscape = false;
|
|
8917
8989
|
if (escapedValue < 0) {
|
|
8918
|
-
|
|
8990
|
+
if (shouldEmitInvalidEscapeError) {
|
|
8991
|
+
error(Diagnostics.Hexadecimal_digit_expected);
|
|
8992
|
+
}
|
|
8919
8993
|
isInvalidExtendedEscape = true;
|
|
8920
8994
|
} else if (escapedValue > 1114111) {
|
|
8921
|
-
|
|
8995
|
+
if (shouldEmitInvalidEscapeError) {
|
|
8996
|
+
error(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive, escapedStart, pos - escapedStart);
|
|
8997
|
+
}
|
|
8922
8998
|
isInvalidExtendedEscape = true;
|
|
8923
8999
|
}
|
|
8924
9000
|
if (pos >= end) {
|
|
8925
|
-
|
|
9001
|
+
if (shouldEmitInvalidEscapeError) {
|
|
9002
|
+
error(Diagnostics.Unexpected_end_of_text);
|
|
9003
|
+
}
|
|
8926
9004
|
isInvalidExtendedEscape = true;
|
|
8927
9005
|
} else if (text.charCodeAt(pos) === 125 /* closeBrace */) {
|
|
8928
9006
|
pos++;
|
|
8929
9007
|
} else {
|
|
8930
|
-
|
|
9008
|
+
if (shouldEmitInvalidEscapeError) {
|
|
9009
|
+
error(Diagnostics.Unterminated_Unicode_escape_sequence);
|
|
9010
|
+
}
|
|
8931
9011
|
isInvalidExtendedEscape = true;
|
|
8932
9012
|
}
|
|
8933
9013
|
if (isInvalidExtendedEscape) {
|
|
8934
|
-
|
|
9014
|
+
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
9015
|
+
return text.substring(start2, pos);
|
|
8935
9016
|
}
|
|
9017
|
+
tokenFlags |= 8 /* ExtendedUnicodeEscape */;
|
|
8936
9018
|
return utf16EncodeAsString(escapedValue);
|
|
8937
9019
|
}
|
|
8938
9020
|
function peekUnicodeEscape() {
|
|
@@ -8974,8 +9056,6 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
8974
9056
|
} else if (ch === 92 /* backslash */) {
|
|
8975
9057
|
ch = peekExtendedUnicodeEscape();
|
|
8976
9058
|
if (ch >= 0 && isIdentifierPart(ch, languageVersion)) {
|
|
8977
|
-
pos += 3;
|
|
8978
|
-
tokenFlags |= 8 /* ExtendedUnicodeEscape */;
|
|
8979
9059
|
result += scanExtendedUnicodeEscape();
|
|
8980
9060
|
start2 = pos;
|
|
8981
9061
|
continue;
|
|
@@ -9445,8 +9525,6 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
9445
9525
|
case 92 /* backslash */:
|
|
9446
9526
|
const extendedCookedChar = peekExtendedUnicodeEscape();
|
|
9447
9527
|
if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) {
|
|
9448
|
-
pos += 3;
|
|
9449
|
-
tokenFlags |= 8 /* ExtendedUnicodeEscape */;
|
|
9450
9528
|
tokenValue = scanExtendedUnicodeEscape() + scanIdentifierParts();
|
|
9451
9529
|
return token = getIdentifierToken();
|
|
9452
9530
|
}
|
|
@@ -9462,7 +9540,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
9462
9540
|
return token = 0 /* Unknown */;
|
|
9463
9541
|
case 35 /* hash */:
|
|
9464
9542
|
if (pos !== 0 && text[pos + 1] === "!") {
|
|
9465
|
-
error(Diagnostics.can_only_be_used_at_the_start_of_a_file);
|
|
9543
|
+
error(Diagnostics.can_only_be_used_at_the_start_of_a_file, pos, 2);
|
|
9466
9544
|
pos++;
|
|
9467
9545
|
return token = 0 /* Unknown */;
|
|
9468
9546
|
}
|
|
@@ -9471,8 +9549,6 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
9471
9549
|
pos++;
|
|
9472
9550
|
const extendedCookedChar2 = peekExtendedUnicodeEscape();
|
|
9473
9551
|
if (extendedCookedChar2 >= 0 && isIdentifierStart(extendedCookedChar2, languageVersion)) {
|
|
9474
|
-
pos += 3;
|
|
9475
|
-
tokenFlags |= 8 /* ExtendedUnicodeEscape */;
|
|
9476
9552
|
tokenValue = "#" + scanExtendedUnicodeEscape() + scanIdentifierParts();
|
|
9477
9553
|
return token = 81 /* PrivateIdentifier */;
|
|
9478
9554
|
}
|
|
@@ -9595,14 +9671,831 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
9595
9671
|
}
|
|
9596
9672
|
p++;
|
|
9597
9673
|
}
|
|
9598
|
-
|
|
9674
|
+
const isUnterminated = !!(tokenFlags & 4 /* Unterminated */);
|
|
9675
|
+
const endOfBody = p - (isUnterminated ? 0 : 1);
|
|
9676
|
+
let regExpFlags = 0 /* None */;
|
|
9677
|
+
while (p < end) {
|
|
9678
|
+
const ch = text.charCodeAt(p);
|
|
9679
|
+
if (!isIdentifierPart(ch, languageVersion)) {
|
|
9680
|
+
break;
|
|
9681
|
+
}
|
|
9682
|
+
const flag = characterToRegularExpressionFlag(String.fromCharCode(ch));
|
|
9683
|
+
if (flag === void 0) {
|
|
9684
|
+
error(Diagnostics.Unknown_regular_expression_flag, p, 1);
|
|
9685
|
+
} else if (regExpFlags & flag) {
|
|
9686
|
+
error(Diagnostics.Duplicate_regular_expression_flag, p, 1);
|
|
9687
|
+
} else if (((regExpFlags | flag) & 96 /* UnicodeMode */) === 96 /* UnicodeMode */) {
|
|
9688
|
+
error(Diagnostics.The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously, p, 1);
|
|
9689
|
+
} else {
|
|
9690
|
+
regExpFlags |= flag;
|
|
9691
|
+
const availableFrom = regularExpressionFlagToFirstAvailableLanguageVersion(flag);
|
|
9692
|
+
if (languageVersion < availableFrom) {
|
|
9693
|
+
error(Diagnostics.This_regular_expression_flag_is_only_available_when_targeting_0_or_later, p, 1, ScriptTarget[availableFrom]);
|
|
9694
|
+
}
|
|
9695
|
+
}
|
|
9599
9696
|
p++;
|
|
9600
9697
|
}
|
|
9601
|
-
pos =
|
|
9698
|
+
pos = tokenStart + 1;
|
|
9699
|
+
const saveTokenPos = tokenStart;
|
|
9700
|
+
const saveTokenFlags = tokenFlags;
|
|
9701
|
+
scanRegularExpressionWorker(text.slice(0, endOfBody), endOfBody, regExpFlags, isUnterminated);
|
|
9702
|
+
if (!isUnterminated) {
|
|
9703
|
+
pos = p;
|
|
9704
|
+
}
|
|
9705
|
+
tokenStart = saveTokenPos;
|
|
9706
|
+
tokenFlags = saveTokenFlags;
|
|
9602
9707
|
tokenValue = text.substring(tokenStart, pos);
|
|
9603
9708
|
token = 14 /* RegularExpressionLiteral */;
|
|
9604
9709
|
}
|
|
9605
9710
|
return token;
|
|
9711
|
+
function scanRegularExpressionWorker(text2, end2, regExpFlags, isUnterminated) {
|
|
9712
|
+
const unicodeMode = !!(regExpFlags & 96 /* UnicodeMode */);
|
|
9713
|
+
const unicodeSetsMode = !!(regExpFlags & 64 /* UnicodeSets */);
|
|
9714
|
+
let mayContainStrings = false;
|
|
9715
|
+
let numberOfCapturingGroups = 0;
|
|
9716
|
+
const groupSpecifiers = /* @__PURE__ */ new Set();
|
|
9717
|
+
const groupNameReferences = [];
|
|
9718
|
+
const decimalEscapes = [];
|
|
9719
|
+
const namedCapturingGroups = [];
|
|
9720
|
+
function scanDisjunction(isInGroup) {
|
|
9721
|
+
while (true) {
|
|
9722
|
+
namedCapturingGroups.push(/* @__PURE__ */ new Set());
|
|
9723
|
+
scanAlternative(isInGroup);
|
|
9724
|
+
namedCapturingGroups.pop();
|
|
9725
|
+
if (text2.charCodeAt(pos) !== 124 /* bar */) {
|
|
9726
|
+
return;
|
|
9727
|
+
}
|
|
9728
|
+
pos++;
|
|
9729
|
+
}
|
|
9730
|
+
}
|
|
9731
|
+
function scanAlternative(isInGroup) {
|
|
9732
|
+
let isPreviousTermQuantifiable = false;
|
|
9733
|
+
while (pos < end2) {
|
|
9734
|
+
const start2 = pos;
|
|
9735
|
+
const ch = text2.charCodeAt(pos);
|
|
9736
|
+
switch (ch) {
|
|
9737
|
+
case 94 /* caret */:
|
|
9738
|
+
case 36 /* $ */:
|
|
9739
|
+
pos++;
|
|
9740
|
+
isPreviousTermQuantifiable = false;
|
|
9741
|
+
break;
|
|
9742
|
+
case 92 /* backslash */:
|
|
9743
|
+
pos++;
|
|
9744
|
+
switch (text2.charCodeAt(pos)) {
|
|
9745
|
+
case 98 /* b */:
|
|
9746
|
+
case 66 /* B */:
|
|
9747
|
+
pos++;
|
|
9748
|
+
isPreviousTermQuantifiable = false;
|
|
9749
|
+
break;
|
|
9750
|
+
default:
|
|
9751
|
+
scanAtomEscape();
|
|
9752
|
+
isPreviousTermQuantifiable = true;
|
|
9753
|
+
break;
|
|
9754
|
+
}
|
|
9755
|
+
break;
|
|
9756
|
+
case 40 /* openParen */:
|
|
9757
|
+
pos++;
|
|
9758
|
+
if (text2.charCodeAt(pos) === 63 /* question */) {
|
|
9759
|
+
pos++;
|
|
9760
|
+
switch (text2.charCodeAt(pos)) {
|
|
9761
|
+
case 61 /* equals */:
|
|
9762
|
+
case 33 /* exclamation */:
|
|
9763
|
+
pos++;
|
|
9764
|
+
isPreviousTermQuantifiable = false;
|
|
9765
|
+
break;
|
|
9766
|
+
case 60 /* lessThan */:
|
|
9767
|
+
const groupNameStart = pos;
|
|
9768
|
+
pos++;
|
|
9769
|
+
switch (text2.charCodeAt(pos)) {
|
|
9770
|
+
case 61 /* equals */:
|
|
9771
|
+
case 33 /* exclamation */:
|
|
9772
|
+
pos++;
|
|
9773
|
+
isPreviousTermQuantifiable = false;
|
|
9774
|
+
break;
|
|
9775
|
+
default:
|
|
9776
|
+
scanGroupName(
|
|
9777
|
+
/*isReference*/
|
|
9778
|
+
false
|
|
9779
|
+
);
|
|
9780
|
+
scanExpectedChar(62 /* greaterThan */);
|
|
9781
|
+
if (languageVersion < 5 /* ES2018 */) {
|
|
9782
|
+
error(Diagnostics.Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later, groupNameStart, pos - groupNameStart);
|
|
9783
|
+
}
|
|
9784
|
+
numberOfCapturingGroups++;
|
|
9785
|
+
isPreviousTermQuantifiable = true;
|
|
9786
|
+
break;
|
|
9787
|
+
}
|
|
9788
|
+
break;
|
|
9789
|
+
default:
|
|
9790
|
+
const start3 = pos;
|
|
9791
|
+
const setFlags = scanPatternModifiers();
|
|
9792
|
+
if (text2.charCodeAt(pos) === 45 /* minus */) {
|
|
9793
|
+
pos++;
|
|
9794
|
+
scanPatternModifiers(setFlags);
|
|
9795
|
+
if (pos === start3 + 1) {
|
|
9796
|
+
error(Diagnostics.Subpattern_flags_must_be_present_when_there_is_a_minus_sign, start3, pos - start3);
|
|
9797
|
+
}
|
|
9798
|
+
}
|
|
9799
|
+
scanExpectedChar(58 /* colon */);
|
|
9800
|
+
isPreviousTermQuantifiable = true;
|
|
9801
|
+
break;
|
|
9802
|
+
}
|
|
9803
|
+
} else {
|
|
9804
|
+
numberOfCapturingGroups++;
|
|
9805
|
+
isPreviousTermQuantifiable = true;
|
|
9806
|
+
}
|
|
9807
|
+
scanDisjunction(
|
|
9808
|
+
/*isInGroup*/
|
|
9809
|
+
true
|
|
9810
|
+
);
|
|
9811
|
+
scanExpectedChar(41 /* closeParen */);
|
|
9812
|
+
break;
|
|
9813
|
+
case 123 /* openBrace */:
|
|
9814
|
+
pos++;
|
|
9815
|
+
const digitsStart = pos;
|
|
9816
|
+
scanDigits();
|
|
9817
|
+
const min2 = tokenValue;
|
|
9818
|
+
if (!min2) {
|
|
9819
|
+
error(Diagnostics.Incomplete_quantifier_Digit_expected);
|
|
9820
|
+
}
|
|
9821
|
+
if (text2.charCodeAt(pos) === 44 /* comma */) {
|
|
9822
|
+
pos++;
|
|
9823
|
+
scanDigits();
|
|
9824
|
+
const max = tokenValue;
|
|
9825
|
+
if (max && Number.parseInt(min2) > Number.parseInt(max)) {
|
|
9826
|
+
error(Diagnostics.Numbers_out_of_order_in_quantifier, digitsStart, pos - digitsStart);
|
|
9827
|
+
}
|
|
9828
|
+
}
|
|
9829
|
+
scanExpectedChar(125 /* closeBrace */);
|
|
9830
|
+
pos--;
|
|
9831
|
+
case 42 /* asterisk */:
|
|
9832
|
+
case 43 /* plus */:
|
|
9833
|
+
case 63 /* question */:
|
|
9834
|
+
pos++;
|
|
9835
|
+
if (text2.charCodeAt(pos) === 63 /* question */) {
|
|
9836
|
+
pos++;
|
|
9837
|
+
}
|
|
9838
|
+
if (!isPreviousTermQuantifiable) {
|
|
9839
|
+
error(Diagnostics.There_is_nothing_available_for_repetition, start2, pos - start2);
|
|
9840
|
+
}
|
|
9841
|
+
isPreviousTermQuantifiable = false;
|
|
9842
|
+
break;
|
|
9843
|
+
case 46 /* dot */:
|
|
9844
|
+
pos++;
|
|
9845
|
+
isPreviousTermQuantifiable = true;
|
|
9846
|
+
break;
|
|
9847
|
+
case 91 /* openBracket */:
|
|
9848
|
+
pos++;
|
|
9849
|
+
if (unicodeSetsMode) {
|
|
9850
|
+
scanClassSetExpression();
|
|
9851
|
+
} else {
|
|
9852
|
+
scanClassRanges();
|
|
9853
|
+
}
|
|
9854
|
+
scanExpectedChar(93 /* closeBracket */);
|
|
9855
|
+
isPreviousTermQuantifiable = true;
|
|
9856
|
+
break;
|
|
9857
|
+
case 41 /* closeParen */:
|
|
9858
|
+
if (isInGroup) {
|
|
9859
|
+
return;
|
|
9860
|
+
}
|
|
9861
|
+
case 93 /* closeBracket */:
|
|
9862
|
+
case 125 /* closeBrace */:
|
|
9863
|
+
if (isUnterminated && !isInGroup) {
|
|
9864
|
+
return;
|
|
9865
|
+
}
|
|
9866
|
+
error(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
|
|
9867
|
+
pos++;
|
|
9868
|
+
isPreviousTermQuantifiable = true;
|
|
9869
|
+
break;
|
|
9870
|
+
case 47 /* slash */:
|
|
9871
|
+
case 124 /* bar */:
|
|
9872
|
+
return;
|
|
9873
|
+
default:
|
|
9874
|
+
if (isLineBreak(ch)) {
|
|
9875
|
+
return;
|
|
9876
|
+
}
|
|
9877
|
+
scanSourceCharacter();
|
|
9878
|
+
isPreviousTermQuantifiable = true;
|
|
9879
|
+
break;
|
|
9880
|
+
}
|
|
9881
|
+
}
|
|
9882
|
+
}
|
|
9883
|
+
function scanPatternModifiers(currFlags = 0 /* None */) {
|
|
9884
|
+
while (pos < end2) {
|
|
9885
|
+
const ch = text2.charCodeAt(pos);
|
|
9886
|
+
if (!isIdentifierPart(ch, languageVersion)) {
|
|
9887
|
+
break;
|
|
9888
|
+
}
|
|
9889
|
+
const flag = characterToRegularExpressionFlag(String.fromCharCode(ch));
|
|
9890
|
+
if (flag === void 0) {
|
|
9891
|
+
error(Diagnostics.Unknown_regular_expression_flag, pos, 1);
|
|
9892
|
+
} else if (currFlags & flag) {
|
|
9893
|
+
error(Diagnostics.Duplicate_regular_expression_flag, pos, 1);
|
|
9894
|
+
} else if (!(flag & 28 /* Modifiers */)) {
|
|
9895
|
+
error(Diagnostics.This_regular_expression_flag_cannot_be_toggled_within_a_subpattern, pos, 1);
|
|
9896
|
+
} else {
|
|
9897
|
+
currFlags |= flag;
|
|
9898
|
+
const availableFrom = regularExpressionFlagToFirstAvailableLanguageVersion(flag);
|
|
9899
|
+
if (languageVersion < availableFrom) {
|
|
9900
|
+
error(Diagnostics.This_regular_expression_flag_is_only_available_when_targeting_0_or_later, pos, 1, ScriptTarget[availableFrom]);
|
|
9901
|
+
}
|
|
9902
|
+
}
|
|
9903
|
+
pos++;
|
|
9904
|
+
}
|
|
9905
|
+
return currFlags;
|
|
9906
|
+
}
|
|
9907
|
+
function scanAtomEscape() {
|
|
9908
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
|
|
9909
|
+
switch (text2.charCodeAt(pos)) {
|
|
9910
|
+
case 107 /* k */:
|
|
9911
|
+
pos++;
|
|
9912
|
+
if (text2.charCodeAt(pos) === 60 /* lessThan */) {
|
|
9913
|
+
pos++;
|
|
9914
|
+
scanGroupName(
|
|
9915
|
+
/*isReference*/
|
|
9916
|
+
true
|
|
9917
|
+
);
|
|
9918
|
+
scanExpectedChar(62 /* greaterThan */);
|
|
9919
|
+
} else if (unicodeMode) {
|
|
9920
|
+
error(Diagnostics.k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets, pos - 2, 2);
|
|
9921
|
+
}
|
|
9922
|
+
break;
|
|
9923
|
+
case 113 /* q */:
|
|
9924
|
+
if (unicodeSetsMode) {
|
|
9925
|
+
pos++;
|
|
9926
|
+
error(Diagnostics.q_is_only_available_inside_character_class, pos - 2, 2);
|
|
9927
|
+
break;
|
|
9928
|
+
}
|
|
9929
|
+
default:
|
|
9930
|
+
scanCharacterClassEscape() || scanDecimalEscape() || scanCharacterEscape();
|
|
9931
|
+
break;
|
|
9932
|
+
}
|
|
9933
|
+
}
|
|
9934
|
+
function scanDecimalEscape() {
|
|
9935
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
|
|
9936
|
+
const ch = text2.charCodeAt(pos);
|
|
9937
|
+
if (ch >= 49 /* _1 */ && ch <= 57 /* _9 */) {
|
|
9938
|
+
const start2 = pos;
|
|
9939
|
+
scanDigits();
|
|
9940
|
+
decimalEscapes.push({ pos: start2, end: pos, value: +tokenValue });
|
|
9941
|
+
return true;
|
|
9942
|
+
}
|
|
9943
|
+
return false;
|
|
9944
|
+
}
|
|
9945
|
+
function scanCharacterEscape() {
|
|
9946
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
|
|
9947
|
+
let ch = text2.charCodeAt(pos);
|
|
9948
|
+
switch (ch) {
|
|
9949
|
+
case 99 /* c */:
|
|
9950
|
+
pos++;
|
|
9951
|
+
ch = text2.charCodeAt(pos);
|
|
9952
|
+
if (isASCIILetter(ch)) {
|
|
9953
|
+
pos++;
|
|
9954
|
+
return String.fromCharCode(ch & 31);
|
|
9955
|
+
}
|
|
9956
|
+
if (unicodeMode) {
|
|
9957
|
+
error(Diagnostics.c_must_be_followed_by_an_ASCII_letter, pos - 2, 2);
|
|
9958
|
+
}
|
|
9959
|
+
return String.fromCharCode(ch);
|
|
9960
|
+
case 94 /* caret */:
|
|
9961
|
+
case 36 /* $ */:
|
|
9962
|
+
case 47 /* slash */:
|
|
9963
|
+
case 92 /* backslash */:
|
|
9964
|
+
case 46 /* dot */:
|
|
9965
|
+
case 42 /* asterisk */:
|
|
9966
|
+
case 43 /* plus */:
|
|
9967
|
+
case 63 /* question */:
|
|
9968
|
+
case 40 /* openParen */:
|
|
9969
|
+
case 41 /* closeParen */:
|
|
9970
|
+
case 91 /* openBracket */:
|
|
9971
|
+
case 93 /* closeBracket */:
|
|
9972
|
+
case 123 /* openBrace */:
|
|
9973
|
+
case 125 /* closeBrace */:
|
|
9974
|
+
case 124 /* bar */:
|
|
9975
|
+
pos++;
|
|
9976
|
+
return String.fromCharCode(ch);
|
|
9977
|
+
default:
|
|
9978
|
+
if (pos >= end2 || isLineBreak(ch)) {
|
|
9979
|
+
error(Diagnostics.Undetermined_character_escape, pos - 1, 1, ch);
|
|
9980
|
+
return "\\";
|
|
9981
|
+
}
|
|
9982
|
+
pos--;
|
|
9983
|
+
return scanEscapeSequence(
|
|
9984
|
+
/*shouldEmitInvalidEscapeError*/
|
|
9985
|
+
unicodeMode,
|
|
9986
|
+
/*isRegularExpression*/
|
|
9987
|
+
true
|
|
9988
|
+
);
|
|
9989
|
+
}
|
|
9990
|
+
}
|
|
9991
|
+
function scanGroupName(isReference) {
|
|
9992
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 60 /* lessThan */);
|
|
9993
|
+
tokenStart = pos;
|
|
9994
|
+
scanIdentifier(codePointAt(text2, pos), languageVersion);
|
|
9995
|
+
if (pos === tokenStart) {
|
|
9996
|
+
error(Diagnostics.Expected_a_capturing_group_name);
|
|
9997
|
+
} else if (isReference) {
|
|
9998
|
+
groupNameReferences.push({ pos: tokenStart, end: pos, name: tokenValue });
|
|
9999
|
+
} else if (namedCapturingGroups.some((group2) => group2.has(tokenValue))) {
|
|
10000
|
+
error(Diagnostics.Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other, tokenStart, pos - tokenStart);
|
|
10001
|
+
} else {
|
|
10002
|
+
last(namedCapturingGroups).add(tokenValue);
|
|
10003
|
+
groupSpecifiers.add(tokenValue);
|
|
10004
|
+
}
|
|
10005
|
+
}
|
|
10006
|
+
function isClassContentExit(ch) {
|
|
10007
|
+
return ch === 93 /* closeBracket */ || pos >= end2 || isLineBreak(ch);
|
|
10008
|
+
}
|
|
10009
|
+
function scanClassRanges() {
|
|
10010
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 91 /* openBracket */);
|
|
10011
|
+
if (text2.charCodeAt(pos) === 94 /* caret */) {
|
|
10012
|
+
pos++;
|
|
10013
|
+
}
|
|
10014
|
+
while (pos < end2) {
|
|
10015
|
+
const ch = text2.charCodeAt(pos);
|
|
10016
|
+
if (isClassContentExit(ch)) {
|
|
10017
|
+
return;
|
|
10018
|
+
}
|
|
10019
|
+
const minStart = pos;
|
|
10020
|
+
const minCharacter = scanClassAtom();
|
|
10021
|
+
if (text2.charCodeAt(pos) === 45 /* minus */) {
|
|
10022
|
+
pos++;
|
|
10023
|
+
const ch2 = text2.charCodeAt(pos);
|
|
10024
|
+
if (isClassContentExit(ch2)) {
|
|
10025
|
+
return;
|
|
10026
|
+
}
|
|
10027
|
+
if (!minCharacter) {
|
|
10028
|
+
error(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, minStart, pos - 1 - minStart);
|
|
10029
|
+
}
|
|
10030
|
+
const maxStart = pos;
|
|
10031
|
+
const maxCharacter = scanClassAtom();
|
|
10032
|
+
if (!maxCharacter) {
|
|
10033
|
+
error(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, maxStart, pos - maxStart);
|
|
10034
|
+
continue;
|
|
10035
|
+
}
|
|
10036
|
+
if (!minCharacter) {
|
|
10037
|
+
continue;
|
|
10038
|
+
}
|
|
10039
|
+
const minCharacterValue = codePointAt(minCharacter, 0);
|
|
10040
|
+
const maxCharacterValue = codePointAt(maxCharacter, 0);
|
|
10041
|
+
if (minCharacter.length === charSize(minCharacterValue) && maxCharacter.length === charSize(maxCharacterValue) && minCharacterValue > maxCharacterValue) {
|
|
10042
|
+
error(Diagnostics.Range_out_of_order_in_character_class, minStart, pos - minStart);
|
|
10043
|
+
}
|
|
10044
|
+
}
|
|
10045
|
+
}
|
|
10046
|
+
}
|
|
10047
|
+
function scanClassSetExpression() {
|
|
10048
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 91 /* openBracket */);
|
|
10049
|
+
let isCharacterComplement = false;
|
|
10050
|
+
if (text2.charCodeAt(pos) === 94 /* caret */) {
|
|
10051
|
+
pos++;
|
|
10052
|
+
isCharacterComplement = true;
|
|
10053
|
+
}
|
|
10054
|
+
let expressionMayContainStrings = false;
|
|
10055
|
+
let ch = text2.charCodeAt(pos);
|
|
10056
|
+
if (isClassContentExit(ch)) {
|
|
10057
|
+
return;
|
|
10058
|
+
}
|
|
10059
|
+
let start2 = pos;
|
|
10060
|
+
let oprand;
|
|
10061
|
+
switch (text2.slice(pos, pos + 2)) {
|
|
10062
|
+
case "--":
|
|
10063
|
+
case "&&":
|
|
10064
|
+
error(Diagnostics.Expected_a_class_set_oprand);
|
|
10065
|
+
mayContainStrings = false;
|
|
10066
|
+
break;
|
|
10067
|
+
default:
|
|
10068
|
+
oprand = scanClassSetOprand();
|
|
10069
|
+
break;
|
|
10070
|
+
}
|
|
10071
|
+
switch (text2.charCodeAt(pos)) {
|
|
10072
|
+
case 45 /* minus */:
|
|
10073
|
+
if (text2.charCodeAt(pos + 1) === 45 /* minus */) {
|
|
10074
|
+
if (isCharacterComplement && mayContainStrings) {
|
|
10075
|
+
error(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);
|
|
10076
|
+
}
|
|
10077
|
+
expressionMayContainStrings = mayContainStrings;
|
|
10078
|
+
scanClassSetSubExpression(3 /* ClassSubtraction */);
|
|
10079
|
+
mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
|
|
10080
|
+
return;
|
|
10081
|
+
}
|
|
10082
|
+
break;
|
|
10083
|
+
case 38 /* ampersand */:
|
|
10084
|
+
if (text2.charCodeAt(pos + 1) === 38 /* ampersand */) {
|
|
10085
|
+
scanClassSetSubExpression(2 /* ClassIntersection */);
|
|
10086
|
+
if (isCharacterComplement && mayContainStrings) {
|
|
10087
|
+
error(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);
|
|
10088
|
+
}
|
|
10089
|
+
expressionMayContainStrings = mayContainStrings;
|
|
10090
|
+
mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
|
|
10091
|
+
return;
|
|
10092
|
+
} else {
|
|
10093
|
+
error(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
|
|
10094
|
+
}
|
|
10095
|
+
break;
|
|
10096
|
+
default:
|
|
10097
|
+
if (isCharacterComplement && mayContainStrings) {
|
|
10098
|
+
error(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);
|
|
10099
|
+
}
|
|
10100
|
+
expressionMayContainStrings = mayContainStrings;
|
|
10101
|
+
break;
|
|
10102
|
+
}
|
|
10103
|
+
while (pos < end2) {
|
|
10104
|
+
ch = text2.charCodeAt(pos);
|
|
10105
|
+
switch (ch) {
|
|
10106
|
+
case 45 /* minus */:
|
|
10107
|
+
pos++;
|
|
10108
|
+
ch = text2.charCodeAt(pos);
|
|
10109
|
+
if (isClassContentExit(ch)) {
|
|
10110
|
+
mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
|
|
10111
|
+
return;
|
|
10112
|
+
}
|
|
10113
|
+
if (ch === 45 /* minus */) {
|
|
10114
|
+
pos++;
|
|
10115
|
+
error(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
|
|
10116
|
+
start2 = pos - 2;
|
|
10117
|
+
oprand = text2.slice(start2, pos);
|
|
10118
|
+
continue;
|
|
10119
|
+
} else {
|
|
10120
|
+
if (!oprand) {
|
|
10121
|
+
error(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, start2, pos - 1 - start2);
|
|
10122
|
+
}
|
|
10123
|
+
const secondStart = pos;
|
|
10124
|
+
const secondOprand = scanClassSetOprand();
|
|
10125
|
+
if (isCharacterComplement && mayContainStrings) {
|
|
10126
|
+
error(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, secondStart, pos - secondStart);
|
|
10127
|
+
}
|
|
10128
|
+
expressionMayContainStrings || (expressionMayContainStrings = mayContainStrings);
|
|
10129
|
+
if (!secondOprand) {
|
|
10130
|
+
error(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, secondStart, pos - secondStart);
|
|
10131
|
+
break;
|
|
10132
|
+
}
|
|
10133
|
+
if (!oprand) {
|
|
10134
|
+
break;
|
|
10135
|
+
}
|
|
10136
|
+
const minCharacterValue = codePointAt(oprand, 0);
|
|
10137
|
+
const maxCharacterValue = codePointAt(secondOprand, 0);
|
|
10138
|
+
if (oprand.length === charSize(minCharacterValue) && secondOprand.length === charSize(maxCharacterValue) && minCharacterValue > maxCharacterValue) {
|
|
10139
|
+
error(Diagnostics.Range_out_of_order_in_character_class, start2, pos - start2);
|
|
10140
|
+
}
|
|
10141
|
+
}
|
|
10142
|
+
break;
|
|
10143
|
+
case 38 /* ampersand */:
|
|
10144
|
+
start2 = pos;
|
|
10145
|
+
pos++;
|
|
10146
|
+
if (text2.charCodeAt(pos) === 38 /* ampersand */) {
|
|
10147
|
+
pos++;
|
|
10148
|
+
error(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
|
|
10149
|
+
if (text2.charCodeAt(pos) === 38 /* ampersand */) {
|
|
10150
|
+
error(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
|
|
10151
|
+
pos++;
|
|
10152
|
+
}
|
|
10153
|
+
} else {
|
|
10154
|
+
error(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos - 1, 1, String.fromCharCode(ch));
|
|
10155
|
+
}
|
|
10156
|
+
oprand = text2.slice(start2, pos);
|
|
10157
|
+
continue;
|
|
10158
|
+
}
|
|
10159
|
+
if (isClassContentExit(text2.charCodeAt(pos))) {
|
|
10160
|
+
break;
|
|
10161
|
+
}
|
|
10162
|
+
start2 = pos;
|
|
10163
|
+
switch (text2.slice(pos, pos + 2)) {
|
|
10164
|
+
case "--":
|
|
10165
|
+
case "&&":
|
|
10166
|
+
error(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos, 2);
|
|
10167
|
+
pos += 2;
|
|
10168
|
+
oprand = text2.slice(start2, pos);
|
|
10169
|
+
break;
|
|
10170
|
+
default:
|
|
10171
|
+
oprand = scanClassSetOprand();
|
|
10172
|
+
break;
|
|
10173
|
+
}
|
|
10174
|
+
}
|
|
10175
|
+
mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
|
|
10176
|
+
}
|
|
10177
|
+
function scanClassSetSubExpression(expressionType) {
|
|
10178
|
+
let expressionMayContainStrings = mayContainStrings;
|
|
10179
|
+
while (pos < end2) {
|
|
10180
|
+
let ch = text2.charCodeAt(pos);
|
|
10181
|
+
if (isClassContentExit(ch)) {
|
|
10182
|
+
break;
|
|
10183
|
+
}
|
|
10184
|
+
switch (ch) {
|
|
10185
|
+
case 45 /* minus */:
|
|
10186
|
+
pos++;
|
|
10187
|
+
if (text2.charCodeAt(pos) === 45 /* minus */) {
|
|
10188
|
+
pos++;
|
|
10189
|
+
if (expressionType !== 3 /* ClassSubtraction */) {
|
|
10190
|
+
error(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
|
|
10191
|
+
}
|
|
10192
|
+
} else {
|
|
10193
|
+
error(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 1, 1);
|
|
10194
|
+
}
|
|
10195
|
+
break;
|
|
10196
|
+
case 38 /* ampersand */:
|
|
10197
|
+
pos++;
|
|
10198
|
+
if (text2.charCodeAt(pos) === 38 /* ampersand */) {
|
|
10199
|
+
pos++;
|
|
10200
|
+
if (expressionType !== 2 /* ClassIntersection */) {
|
|
10201
|
+
error(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
|
|
10202
|
+
}
|
|
10203
|
+
if (text2.charCodeAt(pos) === 38 /* ampersand */) {
|
|
10204
|
+
error(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
|
|
10205
|
+
pos++;
|
|
10206
|
+
}
|
|
10207
|
+
} else {
|
|
10208
|
+
error(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos - 1, 1, String.fromCharCode(ch));
|
|
10209
|
+
}
|
|
10210
|
+
break;
|
|
10211
|
+
default:
|
|
10212
|
+
switch (expressionType) {
|
|
10213
|
+
case 3 /* ClassSubtraction */:
|
|
10214
|
+
error(Diagnostics._0_expected, pos, 0, "--");
|
|
10215
|
+
break;
|
|
10216
|
+
case 2 /* ClassIntersection */:
|
|
10217
|
+
error(Diagnostics._0_expected, pos, 0, "&&");
|
|
10218
|
+
break;
|
|
10219
|
+
default:
|
|
10220
|
+
break;
|
|
10221
|
+
}
|
|
10222
|
+
break;
|
|
10223
|
+
}
|
|
10224
|
+
ch = text2.charCodeAt(pos);
|
|
10225
|
+
if (isClassContentExit(ch)) {
|
|
10226
|
+
error(Diagnostics.Expected_a_class_set_oprand);
|
|
10227
|
+
break;
|
|
10228
|
+
}
|
|
10229
|
+
scanClassSetOprand();
|
|
10230
|
+
expressionMayContainStrings && (expressionMayContainStrings = mayContainStrings);
|
|
10231
|
+
}
|
|
10232
|
+
mayContainStrings = expressionMayContainStrings;
|
|
10233
|
+
}
|
|
10234
|
+
function scanClassSetOprand() {
|
|
10235
|
+
mayContainStrings = false;
|
|
10236
|
+
switch (text2.charCodeAt(pos)) {
|
|
10237
|
+
case 91 /* openBracket */:
|
|
10238
|
+
pos++;
|
|
10239
|
+
scanClassSetExpression();
|
|
10240
|
+
scanExpectedChar(93 /* closeBracket */);
|
|
10241
|
+
return "";
|
|
10242
|
+
case 92 /* backslash */:
|
|
10243
|
+
pos++;
|
|
10244
|
+
if (scanCharacterClassEscape()) {
|
|
10245
|
+
return "";
|
|
10246
|
+
} else if (text2.charCodeAt(pos) === 113 /* q */) {
|
|
10247
|
+
pos++;
|
|
10248
|
+
if (text2.charCodeAt(pos) === 123 /* openBrace */) {
|
|
10249
|
+
pos++;
|
|
10250
|
+
scanClassStringDisjunctionContents();
|
|
10251
|
+
scanExpectedChar(125 /* closeBrace */);
|
|
10252
|
+
return "";
|
|
10253
|
+
} else {
|
|
10254
|
+
error(Diagnostics.q_must_be_followed_by_string_alternatives_enclosed_in_braces, pos - 2, 2);
|
|
10255
|
+
return "q";
|
|
10256
|
+
}
|
|
10257
|
+
}
|
|
10258
|
+
pos--;
|
|
10259
|
+
default:
|
|
10260
|
+
return scanClassSetCharacter();
|
|
10261
|
+
}
|
|
10262
|
+
}
|
|
10263
|
+
function scanClassStringDisjunctionContents() {
|
|
10264
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 123 /* openBrace */);
|
|
10265
|
+
let characterCount = 0;
|
|
10266
|
+
while (pos < end2) {
|
|
10267
|
+
const ch = text2.charCodeAt(pos);
|
|
10268
|
+
switch (ch) {
|
|
10269
|
+
case 125 /* closeBrace */:
|
|
10270
|
+
if (characterCount !== 1) {
|
|
10271
|
+
mayContainStrings = true;
|
|
10272
|
+
}
|
|
10273
|
+
return;
|
|
10274
|
+
case 124 /* bar */:
|
|
10275
|
+
if (characterCount !== 1) {
|
|
10276
|
+
mayContainStrings = true;
|
|
10277
|
+
}
|
|
10278
|
+
pos++;
|
|
10279
|
+
start = pos;
|
|
10280
|
+
characterCount = 0;
|
|
10281
|
+
break;
|
|
10282
|
+
default:
|
|
10283
|
+
if (isLineBreak(ch)) {
|
|
10284
|
+
break;
|
|
10285
|
+
}
|
|
10286
|
+
scanClassSetCharacter();
|
|
10287
|
+
characterCount++;
|
|
10288
|
+
break;
|
|
10289
|
+
}
|
|
10290
|
+
}
|
|
10291
|
+
}
|
|
10292
|
+
function scanClassSetCharacter() {
|
|
10293
|
+
const ch = text2.charCodeAt(pos);
|
|
10294
|
+
if (ch === 92 /* backslash */) {
|
|
10295
|
+
pos++;
|
|
10296
|
+
const ch2 = text2.charCodeAt(pos);
|
|
10297
|
+
switch (ch2) {
|
|
10298
|
+
case 98 /* b */:
|
|
10299
|
+
pos++;
|
|
10300
|
+
return "\b";
|
|
10301
|
+
case 38 /* ampersand */:
|
|
10302
|
+
case 45 /* minus */:
|
|
10303
|
+
case 33 /* exclamation */:
|
|
10304
|
+
case 35 /* hash */:
|
|
10305
|
+
case 37 /* percent */:
|
|
10306
|
+
case 44 /* comma */:
|
|
10307
|
+
case 58 /* colon */:
|
|
10308
|
+
case 59 /* semicolon */:
|
|
10309
|
+
case 60 /* lessThan */:
|
|
10310
|
+
case 61 /* equals */:
|
|
10311
|
+
case 62 /* greaterThan */:
|
|
10312
|
+
case 64 /* at */:
|
|
10313
|
+
case 96 /* backtick */:
|
|
10314
|
+
case 126 /* tilde */:
|
|
10315
|
+
pos++;
|
|
10316
|
+
return String.fromCharCode(ch2);
|
|
10317
|
+
default:
|
|
10318
|
+
return scanCharacterEscape();
|
|
10319
|
+
}
|
|
10320
|
+
} else if (ch === text2.charCodeAt(pos + 1)) {
|
|
10321
|
+
switch (ch) {
|
|
10322
|
+
case 38 /* ampersand */:
|
|
10323
|
+
case 33 /* exclamation */:
|
|
10324
|
+
case 35 /* hash */:
|
|
10325
|
+
case 37 /* percent */:
|
|
10326
|
+
case 42 /* asterisk */:
|
|
10327
|
+
case 43 /* plus */:
|
|
10328
|
+
case 44 /* comma */:
|
|
10329
|
+
case 46 /* dot */:
|
|
10330
|
+
case 58 /* colon */:
|
|
10331
|
+
case 59 /* semicolon */:
|
|
10332
|
+
case 60 /* lessThan */:
|
|
10333
|
+
case 61 /* equals */:
|
|
10334
|
+
case 62 /* greaterThan */:
|
|
10335
|
+
case 63 /* question */:
|
|
10336
|
+
case 64 /* at */:
|
|
10337
|
+
case 96 /* backtick */:
|
|
10338
|
+
case 126 /* tilde */:
|
|
10339
|
+
error(Diagnostics.A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash, pos, 2);
|
|
10340
|
+
pos += 2;
|
|
10341
|
+
return text2.substring(pos - 2, pos);
|
|
10342
|
+
}
|
|
10343
|
+
}
|
|
10344
|
+
switch (ch) {
|
|
10345
|
+
case 47 /* slash */:
|
|
10346
|
+
case 40 /* openParen */:
|
|
10347
|
+
case 41 /* closeParen */:
|
|
10348
|
+
case 91 /* openBracket */:
|
|
10349
|
+
case 93 /* closeBracket */:
|
|
10350
|
+
case 123 /* openBrace */:
|
|
10351
|
+
case 125 /* closeBrace */:
|
|
10352
|
+
case 45 /* minus */:
|
|
10353
|
+
case 124 /* bar */:
|
|
10354
|
+
error(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
|
|
10355
|
+
pos++;
|
|
10356
|
+
return String.fromCharCode(ch);
|
|
10357
|
+
}
|
|
10358
|
+
return scanSourceCharacter();
|
|
10359
|
+
}
|
|
10360
|
+
function scanClassAtom() {
|
|
10361
|
+
if (text2.charCodeAt(pos) === 92 /* backslash */) {
|
|
10362
|
+
pos++;
|
|
10363
|
+
const ch = text2.charCodeAt(pos);
|
|
10364
|
+
switch (ch) {
|
|
10365
|
+
case 98 /* b */:
|
|
10366
|
+
pos++;
|
|
10367
|
+
return "\b";
|
|
10368
|
+
case 45 /* minus */:
|
|
10369
|
+
pos++;
|
|
10370
|
+
return String.fromCharCode(ch);
|
|
10371
|
+
default:
|
|
10372
|
+
if (scanCharacterClassEscape()) {
|
|
10373
|
+
return "";
|
|
10374
|
+
}
|
|
10375
|
+
return scanCharacterEscape();
|
|
10376
|
+
}
|
|
10377
|
+
} else {
|
|
10378
|
+
return scanSourceCharacter();
|
|
10379
|
+
}
|
|
10380
|
+
}
|
|
10381
|
+
function scanCharacterClassEscape() {
|
|
10382
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
|
|
10383
|
+
let isCharacterComplement = false;
|
|
10384
|
+
const start2 = pos - 1;
|
|
10385
|
+
const ch = text2.charCodeAt(pos);
|
|
10386
|
+
switch (ch) {
|
|
10387
|
+
case 100 /* d */:
|
|
10388
|
+
case 68 /* D */:
|
|
10389
|
+
case 115 /* s */:
|
|
10390
|
+
case 83 /* S */:
|
|
10391
|
+
case 119 /* w */:
|
|
10392
|
+
case 87 /* W */:
|
|
10393
|
+
pos++;
|
|
10394
|
+
return true;
|
|
10395
|
+
case 80 /* P */:
|
|
10396
|
+
isCharacterComplement = true;
|
|
10397
|
+
case 112 /* p */:
|
|
10398
|
+
pos++;
|
|
10399
|
+
if (text2.charCodeAt(pos) === 123 /* openBrace */) {
|
|
10400
|
+
pos++;
|
|
10401
|
+
const propertyNameOrValueStart = pos;
|
|
10402
|
+
const propertyNameOrValue = scanWordCharacters();
|
|
10403
|
+
if (text2.charCodeAt(pos) === 61 /* equals */) {
|
|
10404
|
+
const propertyName = nonBinaryUnicodeProperties.get(propertyNameOrValue);
|
|
10405
|
+
if (pos === propertyNameOrValueStart) {
|
|
10406
|
+
error(Diagnostics.Expected_a_Unicode_property_name);
|
|
10407
|
+
} else if (propertyName === void 0) {
|
|
10408
|
+
error(Diagnostics.Unknown_Unicode_property_name, propertyNameOrValueStart, pos - propertyNameOrValueStart);
|
|
10409
|
+
const suggestion = getSpellingSuggestion(propertyNameOrValue, nonBinaryUnicodeProperties.keys(), identity);
|
|
10410
|
+
if (suggestion) {
|
|
10411
|
+
error(Diagnostics.Did_you_mean_0, propertyNameOrValueStart, pos - propertyNameOrValueStart, suggestion);
|
|
10412
|
+
}
|
|
10413
|
+
}
|
|
10414
|
+
pos++;
|
|
10415
|
+
const propertyValueStart = pos;
|
|
10416
|
+
const propertyValue = scanWordCharacters();
|
|
10417
|
+
if (pos === propertyValueStart) {
|
|
10418
|
+
error(Diagnostics.Expected_a_Unicode_property_value);
|
|
10419
|
+
} else if (propertyName !== void 0 && !valuesOfNonBinaryUnicodeProperties[propertyName].has(propertyValue)) {
|
|
10420
|
+
error(Diagnostics.Unknown_Unicode_property_value, propertyValueStart, pos - propertyValueStart);
|
|
10421
|
+
const suggestion = getSpellingSuggestion(propertyValue, valuesOfNonBinaryUnicodeProperties[propertyName], identity);
|
|
10422
|
+
if (suggestion) {
|
|
10423
|
+
error(Diagnostics.Did_you_mean_0, propertyValueStart, pos - propertyValueStart, suggestion);
|
|
10424
|
+
}
|
|
10425
|
+
}
|
|
10426
|
+
} else {
|
|
10427
|
+
if (pos === propertyNameOrValueStart) {
|
|
10428
|
+
error(Diagnostics.Expected_a_Unicode_property_name_or_value);
|
|
10429
|
+
} else if (binaryUnicodePropertiesOfStrings.has(propertyNameOrValue)) {
|
|
10430
|
+
if (!unicodeSetsMode) {
|
|
10431
|
+
error(Diagnostics.Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set, propertyNameOrValueStart, pos - propertyNameOrValueStart);
|
|
10432
|
+
} else if (isCharacterComplement) {
|
|
10433
|
+
error(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, propertyNameOrValueStart, pos - propertyNameOrValueStart);
|
|
10434
|
+
} else {
|
|
10435
|
+
mayContainStrings = true;
|
|
10436
|
+
}
|
|
10437
|
+
} else if (!valuesOfNonBinaryUnicodeProperties.General_Category.has(propertyNameOrValue) && !binaryUnicodeProperties.has(propertyNameOrValue)) {
|
|
10438
|
+
error(Diagnostics.Unknown_Unicode_property_name_or_value, propertyNameOrValueStart, pos - propertyNameOrValueStart);
|
|
10439
|
+
const suggestion = getSpellingSuggestion(propertyNameOrValue, [...valuesOfNonBinaryUnicodeProperties.General_Category, ...binaryUnicodeProperties, ...binaryUnicodePropertiesOfStrings], identity);
|
|
10440
|
+
if (suggestion) {
|
|
10441
|
+
error(Diagnostics.Did_you_mean_0, propertyNameOrValueStart, pos - propertyNameOrValueStart, suggestion);
|
|
10442
|
+
}
|
|
10443
|
+
}
|
|
10444
|
+
}
|
|
10445
|
+
scanExpectedChar(125 /* closeBrace */);
|
|
10446
|
+
if (!unicodeMode) {
|
|
10447
|
+
error(Diagnostics.Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set, start2, pos - start2);
|
|
10448
|
+
}
|
|
10449
|
+
} else if (unicodeMode) {
|
|
10450
|
+
error(Diagnostics._0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces, pos - 2, 2, String.fromCharCode(ch));
|
|
10451
|
+
}
|
|
10452
|
+
return true;
|
|
10453
|
+
}
|
|
10454
|
+
return false;
|
|
10455
|
+
}
|
|
10456
|
+
function scanWordCharacters() {
|
|
10457
|
+
let value = "";
|
|
10458
|
+
while (pos < end2) {
|
|
10459
|
+
const ch = text2.charCodeAt(pos);
|
|
10460
|
+
if (!isWordCharacter(ch)) {
|
|
10461
|
+
break;
|
|
10462
|
+
}
|
|
10463
|
+
value += String.fromCharCode(ch);
|
|
10464
|
+
pos++;
|
|
10465
|
+
}
|
|
10466
|
+
return value;
|
|
10467
|
+
}
|
|
10468
|
+
function scanSourceCharacter() {
|
|
10469
|
+
const size = unicodeMode ? charSize(codePointAt(text2, pos)) : 1;
|
|
10470
|
+
pos += size;
|
|
10471
|
+
return text2.substring(pos - size, pos);
|
|
10472
|
+
}
|
|
10473
|
+
function scanExpectedChar(ch) {
|
|
10474
|
+
if (text2.charCodeAt(pos) === ch) {
|
|
10475
|
+
pos++;
|
|
10476
|
+
} else {
|
|
10477
|
+
error(Diagnostics._0_expected, pos, 0, String.fromCharCode(ch));
|
|
10478
|
+
}
|
|
10479
|
+
}
|
|
10480
|
+
scanDisjunction(
|
|
10481
|
+
/*isInGroup*/
|
|
10482
|
+
false
|
|
10483
|
+
);
|
|
10484
|
+
forEach(groupNameReferences, (reference) => {
|
|
10485
|
+
if (!groupSpecifiers.has(reference.name)) {
|
|
10486
|
+
error(Diagnostics.There_is_no_capturing_group_named_0_in_this_regular_expression, reference.pos, reference.end - reference.pos, reference.name);
|
|
10487
|
+
}
|
|
10488
|
+
});
|
|
10489
|
+
forEach(decimalEscapes, (escape) => {
|
|
10490
|
+
if (escape.value > numberOfCapturingGroups) {
|
|
10491
|
+
if (numberOfCapturingGroups) {
|
|
10492
|
+
error(Diagnostics.A_decimal_escape_must_refer_to_an_existent_capturing_group_There_are_only_0_capturing_groups_in_this_regular_expression, escape.pos, escape.end - escape.pos, numberOfCapturingGroups);
|
|
10493
|
+
} else {
|
|
10494
|
+
error(Diagnostics.Decimal_escapes_are_invalid_when_there_are_no_capturing_groups_in_a_regular_expression, escape.pos, escape.end - escape.pos);
|
|
10495
|
+
}
|
|
10496
|
+
}
|
|
10497
|
+
});
|
|
10498
|
+
}
|
|
9606
10499
|
}
|
|
9607
10500
|
function appendIfCommentDirective(commentDirectives2, text2, commentDirectiveRegEx, lineStart) {
|
|
9608
10501
|
const type = getDirectiveFromComment(text2.trimStart(), commentDirectiveRegEx);
|
|
@@ -9825,8 +10718,6 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
9825
10718
|
pos--;
|
|
9826
10719
|
const extendedCookedChar = peekExtendedUnicodeEscape();
|
|
9827
10720
|
if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) {
|
|
9828
|
-
pos += 3;
|
|
9829
|
-
tokenFlags |= 8 /* ExtendedUnicodeEscape */;
|
|
9830
10721
|
tokenValue = scanExtendedUnicodeEscape() + scanIdentifierParts();
|
|
9831
10722
|
return token = getIdentifierToken();
|
|
9832
10723
|
}
|
|
@@ -9961,6 +10852,22 @@ var utf16EncodeAsStringWorker = String.fromCodePoint ? (codePoint) => String.fro
|
|
|
9961
10852
|
function utf16EncodeAsString(codePoint) {
|
|
9962
10853
|
return utf16EncodeAsStringWorker(codePoint);
|
|
9963
10854
|
}
|
|
10855
|
+
var nonBinaryUnicodeProperties = new Map(Object.entries({
|
|
10856
|
+
General_Category: "General_Category",
|
|
10857
|
+
gc: "General_Category",
|
|
10858
|
+
Script: "Script",
|
|
10859
|
+
sc: "Script",
|
|
10860
|
+
Script_Extensions: "Script_Extensions",
|
|
10861
|
+
scx: "Script_Extensions"
|
|
10862
|
+
}));
|
|
10863
|
+
var binaryUnicodeProperties = /* @__PURE__ */ new Set(["ASCII", "ASCII_Hex_Digit", "AHex", "Alphabetic", "Alpha", "Any", "Assigned", "Bidi_Control", "Bidi_C", "Bidi_Mirrored", "Bidi_M", "Case_Ignorable", "CI", "Cased", "Changes_When_Casefolded", "CWCF", "Changes_When_Casemapped", "CWCM", "Changes_When_Lowercased", "CWL", "Changes_When_NFKC_Casefolded", "CWKCF", "Changes_When_Titlecased", "CWT", "Changes_When_Uppercased", "CWU", "Dash", "Default_Ignorable_Code_Point", "DI", "Deprecated", "Dep", "Diacritic", "Dia", "Emoji", "Emoji_Component", "EComp", "Emoji_Modifier", "EMod", "Emoji_Modifier_Base", "EBase", "Emoji_Presentation", "EPres", "Extended_Pictographic", "ExtPict", "Extender", "Ext", "Grapheme_Base", "Gr_Base", "Grapheme_Extend", "Gr_Ext", "Hex_Digit", "Hex", "IDS_Binary_Operator", "IDSB", "IDS_Trinary_Operator", "IDST", "ID_Continue", "IDC", "ID_Start", "IDS", "Ideographic", "Ideo", "Join_Control", "Join_C", "Logical_Order_Exception", "LOE", "Lowercase", "Lower", "Math", "Noncharacter_Code_Point", "NChar", "Pattern_Syntax", "Pat_Syn", "Pattern_White_Space", "Pat_WS", "Quotation_Mark", "QMark", "Radical", "Regional_Indicator", "RI", "Sentence_Terminal", "STerm", "Soft_Dotted", "SD", "Terminal_Punctuation", "Term", "Unified_Ideograph", "UIdeo", "Uppercase", "Upper", "Variation_Selector", "VS", "White_Space", "space", "XID_Continue", "XIDC", "XID_Start", "XIDS"]);
|
|
10864
|
+
var binaryUnicodePropertiesOfStrings = /* @__PURE__ */ new Set(["Basic_Emoji", "Emoji_Keycap_Sequence", "RGI_Emoji_Modifier_Sequence", "RGI_Emoji_Flag_Sequence", "RGI_Emoji_Tag_Sequence", "RGI_Emoji_ZWJ_Sequence", "RGI_Emoji"]);
|
|
10865
|
+
var valuesOfNonBinaryUnicodeProperties = {
|
|
10866
|
+
General_Category: /* @__PURE__ */ new Set(["C", "Other", "Cc", "Control", "cntrl", "Cf", "Format", "Cn", "Unassigned", "Co", "Private_Use", "Cs", "Surrogate", "L", "Letter", "LC", "Cased_Letter", "Ll", "Lowercase_Letter", "Lm", "Modifier_Letter", "Lo", "Other_Letter", "Lt", "Titlecase_Letter", "Lu", "Uppercase_Letter", "M", "Mark", "Combining_Mark", "Mc", "Spacing_Mark", "Me", "Enclosing_Mark", "Mn", "Nonspacing_Mark", "N", "Number", "Nd", "Decimal_Number", "digit", "Nl", "Letter_Number", "No", "Other_Number", "P", "Punctuation", "punct", "Pc", "Connector_Punctuation", "Pd", "Dash_Punctuation", "Pe", "Close_Punctuation", "Pf", "Final_Punctuation", "Pi", "Initial_Punctuation", "Po", "Other_Punctuation", "Ps", "Open_Punctuation", "S", "Symbol", "Sc", "Currency_Symbol", "Sk", "Modifier_Symbol", "Sm", "Math_Symbol", "So", "Other_Symbol", "Z", "Separator", "Zl", "Line_Separator", "Zp", "Paragraph_Separator", "Zs", "Space_Separator"]),
|
|
10867
|
+
Script: /* @__PURE__ */ new Set(["Adlm", "Adlam", "Aghb", "Caucasian_Albanian", "Ahom", "Ahom", "Arab", "Arabic", "Armi", "Imperial_Aramaic", "Armn", "Armenian", "Avst", "Avestan", "Bali", "Balinese", "Bamu", "Bamum", "Bass", "Bassa_Vah", "Batk", "Batak", "Beng", "Bengali", "Bhks", "Bhaiksuki", "Bopo", "Bopomofo", "Brah", "Brahmi", "Brai", "Braille", "Bugi", "Buginese", "Buhd", "Buhid", "Cakm", "Chakma", "Cans", "Canadian_Aboriginal", "Cari", "Carian", "Cham", "Cham", "Cher", "Cherokee", "Chrs", "Chorasmian", "Copt", "Coptic", "Qaac", "Cpmn", "Cypro_Minoan", "Cprt", "Cypriot", "Cyrl", "Cyrillic", "Deva", "Devanagari", "Diak", "Dives_Akuru", "Dogr", "Dogra", "Dsrt", "Deseret", "Dupl", "Duployan", "Egyp", "Egyptian_Hieroglyphs", "Elba", "Elbasan", "Elym", "Elymaic", "Ethi", "Ethiopic", "Geor", "Georgian", "Glag", "Glagolitic", "Gong", "Gunjala_Gondi", "Gonm", "Masaram_Gondi", "Goth", "Gothic", "Gran", "Grantha", "Grek", "Greek", "Gujr", "Gujarati", "Guru", "Gurmukhi", "Hang", "Hangul", "Hani", "Han", "Hano", "Hanunoo", "Hatr", "Hatran", "Hebr", "Hebrew", "Hira", "Hiragana", "Hluw", "Anatolian_Hieroglyphs", "Hmng", "Pahawh_Hmong", "Hmnp", "Nyiakeng_Puachue_Hmong", "Hrkt", "Katakana_Or_Hiragana", "Hung", "Old_Hungarian", "Ital", "Old_Italic", "Java", "Javanese", "Kali", "Kayah_Li", "Kana", "Katakana", "Kawi", "Kawi", "Khar", "Kharoshthi", "Khmr", "Khmer", "Khoj", "Khojki", "Kits", "Khitan_Small_Script", "Knda", "Kannada", "Kthi", "Kaithi", "Lana", "Tai_Tham", "Laoo", "Lao", "Latn", "Latin", "Lepc", "Lepcha", "Limb", "Limbu", "Lina", "Linear_A", "Linb", "Linear_B", "Lisu", "Lisu", "Lyci", "Lycian", "Lydi", "Lydian", "Mahj", "Mahajani", "Maka", "Makasar", "Mand", "Mandaic", "Mani", "Manichaean", "Marc", "Marchen", "Medf", "Medefaidrin", "Mend", "Mende_Kikakui", "Merc", "Meroitic_Cursive", "Mero", "Meroitic_Hieroglyphs", "Mlym", "Malayalam", "Modi", "Modi", "Mong", "Mongolian", "Mroo", "Mro", "Mtei", "Meetei_Mayek", "Mult", "Multani", "Mymr", "Myanmar", "Nagm", "Nag_Mundari", "Nand", "Nandinagari", "Narb", "Old_North_Arabian", "Nbat", "Nabataean", "Newa", "Newa", "Nkoo", "Nko", "Nshu", "Nushu", "Ogam", "Ogham", "Olck", "Ol_Chiki", "Orkh", "Old_Turkic", "Orya", "Oriya", "Osge", "Osage", "Osma", "Osmanya", "Ougr", "Old_Uyghur", "Palm", "Palmyrene", "Pauc", "Pau_Cin_Hau", "Perm", "Old_Permic", "Phag", "Phags_Pa", "Phli", "Inscriptional_Pahlavi", "Phlp", "Psalter_Pahlavi", "Phnx", "Phoenician", "Plrd", "Miao", "Prti", "Inscriptional_Parthian", "Rjng", "Rejang", "Rohg", "Hanifi_Rohingya", "Runr", "Runic", "Samr", "Samaritan", "Sarb", "Old_South_Arabian", "Saur", "Saurashtra", "Sgnw", "SignWriting", "Shaw", "Shavian", "Shrd", "Sharada", "Sidd", "Siddham", "Sind", "Khudawadi", "Sinh", "Sinhala", "Sogd", "Sogdian", "Sogo", "Old_Sogdian", "Sora", "Sora_Sompeng", "Soyo", "Soyombo", "Sund", "Sundanese", "Sylo", "Syloti_Nagri", "Syrc", "Syriac", "Tagb", "Tagbanwa", "Takr", "Takri", "Tale", "Tai_Le", "Talu", "New_Tai_Lue", "Taml", "Tamil", "Tang", "Tangut", "Tavt", "Tai_Viet", "Telu", "Telugu", "Tfng", "Tifinagh", "Tglg", "Tagalog", "Thaa", "Thaana", "Thai", "Thai", "Tibt", "Tibetan", "Tirh", "Tirhuta", "Tnsa", "Tangsa", "Toto", "Toto", "Ugar", "Ugaritic", "Vaii", "Vai", "Vith", "Vithkuqi", "Wara", "Warang_Citi", "Wcho", "Wancho", "Xpeo", "Old_Persian", "Xsux", "Cuneiform", "Yezi", "Yezidi", "Yiii", "Yi", "Zanb", "Zanabazar_Square", "Zinh", "Inherited", "Qaai", "Zyyy", "Common", "Zzzz", "Unknown"]),
|
|
10868
|
+
Script_Extensions: /* @__PURE__ */ new Set()
|
|
10869
|
+
// Currently empty
|
|
10870
|
+
};
|
|
9964
10871
|
|
|
9965
10872
|
// src/compiler/utilitiesPublic.ts
|
|
9966
10873
|
function isExternalModuleNameRelative(moduleName) {
|
|
@@ -16024,7 +16931,7 @@ var objectAllocator = {
|
|
|
16024
16931
|
getSourceMapSourceConstructor: () => SourceMapSource
|
|
16025
16932
|
};
|
|
16026
16933
|
function formatStringFromArgs(text, args) {
|
|
16027
|
-
return text.replace(
|
|
16934
|
+
return text.replace(/\{(\d+)\}/g, (_match, index) => "" + Debug.checkDefined(args[+index]));
|
|
16028
16935
|
}
|
|
16029
16936
|
var localizedDiagnosticMessages;
|
|
16030
16937
|
function setLocalizedDiagnosticMessages(messages) {
|
|
@@ -17015,7 +17922,7 @@ function isValidBigIntString(s, roundTripOnly) {
|
|
|
17015
17922
|
false
|
|
17016
17923
|
);
|
|
17017
17924
|
let success = true;
|
|
17018
|
-
scanner.setOnError(() => success = false);
|
|
17925
|
+
scanner.setOnError(() => void (success = false));
|
|
17019
17926
|
scanner.setText(s + "n");
|
|
17020
17927
|
let result = scanner.scan();
|
|
17021
17928
|
const negative = result === 41 /* MinusToken */;
|
|
@@ -26859,7 +27766,10 @@ var Parser;
|
|
|
26859
27766
|
function parseErrorAtPosition(start, length2, message, ...args) {
|
|
26860
27767
|
const lastError = lastOrUndefined(parseDiagnostics);
|
|
26861
27768
|
let result;
|
|
26862
|
-
if (
|
|
27769
|
+
if (message.category === 3 /* Message */ && lastError && start === lastError.start && length2 === lastError.length) {
|
|
27770
|
+
result = createDetachedDiagnostic(fileName, sourceText, start, length2, message, ...args);
|
|
27771
|
+
addRelatedInfo(lastError, result);
|
|
27772
|
+
} else if (!lastError || start !== lastError.start) {
|
|
26863
27773
|
result = createDetachedDiagnostic(fileName, sourceText, start, length2, message, ...args);
|
|
26864
27774
|
parseDiagnostics.push(result);
|
|
26865
27775
|
}
|
|
@@ -26870,10 +27780,10 @@ var Parser;
|
|
|
26870
27780
|
return parseErrorAtPosition(start, end - start, message, ...args);
|
|
26871
27781
|
}
|
|
26872
27782
|
function parseErrorAtRange(range, message, ...args) {
|
|
26873
|
-
parseErrorAt(range.pos, range.end, message, ...args);
|
|
27783
|
+
return parseErrorAt(range.pos, range.end, message, ...args);
|
|
26874
27784
|
}
|
|
26875
|
-
function scanError(message, length2,
|
|
26876
|
-
parseErrorAtPosition(
|
|
27785
|
+
function scanError(message, pos, length2, ...args) {
|
|
27786
|
+
return parseErrorAtPosition(pos, length2, message, ...args);
|
|
26877
27787
|
}
|
|
26878
27788
|
function getNodePos() {
|
|
26879
27789
|
return scanner.getTokenFullStart();
|
|
@@ -27015,7 +27925,7 @@ var Parser;
|
|
|
27015
27925
|
parseErrorForInvalidName(Diagnostics.Type_alias_name_cannot_be_0, Diagnostics.Type_alias_must_be_given_a_name, 64 /* EqualsToken */);
|
|
27016
27926
|
return;
|
|
27017
27927
|
}
|
|
27018
|
-
const suggestion = getSpellingSuggestion(expressionText, viableKeywordSuggestions,
|
|
27928
|
+
const suggestion = getSpellingSuggestion(expressionText, viableKeywordSuggestions, identity) ?? getSpaceSuggestion(expressionText);
|
|
27019
27929
|
if (suggestion) {
|
|
27020
27930
|
parseErrorAt(pos, node.end, Diagnostics.Unknown_keyword_or_identifier_Did_you_mean_0, suggestion);
|
|
27021
27931
|
return;
|