Skip to content

Commit 11ad5f5

Browse files
Revert "Correct flags scanning for non-BMP characters"
This reverts commit e67692a.
1 parent 0247ea8 commit 11ad5f5

6 files changed

+15
-66
lines changed

src/compiler/scanner.ts

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2522,24 +2522,23 @@ export function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean
25222522
if (!isIdentifierPart(ch, languageVersion)) {
25232523
break;
25242524
}
2525-
const size = charSize(ch);
25262525
if (reportErrors) {
2527-
const flag = characterToRegularExpressionFlag(utf16EncodeAsString(ch));
2526+
const flag = characterToRegularExpressionFlag(String.fromCharCode(ch));
25282527
if (flag === undefined) {
2529-
error(Diagnostics.Unknown_regular_expression_flag, pos, size);
2528+
error(Diagnostics.Unknown_regular_expression_flag, pos, 1);
25302529
}
25312530
else if (regExpFlags & flag) {
2532-
error(Diagnostics.Duplicate_regular_expression_flag, pos, size);
2531+
error(Diagnostics.Duplicate_regular_expression_flag, pos, 1);
25332532
}
25342533
else if (((regExpFlags | flag) & RegularExpressionFlags.UnicodeMode) === RegularExpressionFlags.UnicodeMode) {
2535-
error(Diagnostics.The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously, pos, size);
2534+
error(Diagnostics.The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously, pos, 1);
25362535
}
25372536
else {
25382537
regExpFlags |= flag;
2539-
checkRegularExpressionFlagAvailability(flag, size);
2538+
checkRegularExpressionFlagAvailable(flag, pos);
25402539
}
25412540
}
2542-
pos += size;
2541+
pos++;
25432542
}
25442543
if (reportErrors) {
25452544
scanRange(startOfRegExpBody, endOfRegExpBody - startOfRegExpBody, () => {
@@ -2795,26 +2794,25 @@ export function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean
27952794

27962795
function scanPatternModifiers(currFlags: RegularExpressionFlags): RegularExpressionFlags {
27972796
while (true) {
2798-
const ch = codePointChecked(pos);
2797+
const ch = charCodeChecked(pos);
27992798
if (ch === CharacterCodes.EOF || !isIdentifierPart(ch, languageVersion)) {
28002799
break;
28012800
}
2802-
const size = charSize(ch);
2803-
const flag = characterToRegularExpressionFlag(utf16EncodeAsString(ch));
2801+
const flag = characterToRegularExpressionFlag(String.fromCharCode(ch));
28042802
if (flag === undefined) {
2805-
error(Diagnostics.Unknown_regular_expression_flag, pos, size);
2803+
error(Diagnostics.Unknown_regular_expression_flag, pos, 1);
28062804
}
28072805
else if (currFlags & flag) {
2808-
error(Diagnostics.Duplicate_regular_expression_flag, pos, size);
2806+
error(Diagnostics.Duplicate_regular_expression_flag, pos, 1);
28092807
}
28102808
else if (!(flag & RegularExpressionFlags.Modifiers)) {
2811-
error(Diagnostics.This_regular_expression_flag_cannot_be_toggled_within_a_subpattern, pos, size);
2809+
error(Diagnostics.This_regular_expression_flag_cannot_be_toggled_within_a_subpattern, pos, 1);
28122810
}
28132811
else {
28142812
currFlags |= flag;
2815-
checkRegularExpressionFlagAvailability(flag, size);
2813+
checkRegularExpressionFlagAvailable(flag, pos);
28162814
}
2817-
pos += size;
2815+
pos++;
28182816
}
28192817
return currFlags;
28202818
}
@@ -3527,10 +3525,10 @@ export function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean
35273525
});
35283526
}
35293527

3530-
function checkRegularExpressionFlagAvailability(flag: RegularExpressionFlags, size: number) {
3528+
function checkRegularExpressionFlagAvailable(flag: RegularExpressionFlags, pos: number) {
35313529
const availableFrom = regExpFlagToFirstAvailableLanguageVersion.get(flag) as ScriptTarget | undefined;
35323530
if (availableFrom && languageVersion < availableFrom) {
3533-
error(Diagnostics.This_regular_expression_flag_is_only_available_when_targeting_0_or_later, pos, size, getNameOfScriptTarget(availableFrom));
3531+
error(Diagnostics.This_regular_expression_flag_is_only_available_when_targeting_0_or_later, pos, 1, getNameOfScriptTarget(availableFrom));
35343532
}
35353533
}
35363534

tests/baselines/reference/regularExpressionWithNonBMPFlags.errors.txt

Lines changed: 0 additions & 23 deletions
This file was deleted.

tests/baselines/reference/regularExpressionWithNonBMPFlags.js

Lines changed: 0 additions & 8 deletions
This file was deleted.

tests/baselines/reference/regularExpressionWithNonBMPFlags.symbols

Lines changed: 0 additions & 6 deletions
This file was deleted.

tests/baselines/reference/regularExpressionWithNonBMPFlags.types

Lines changed: 0 additions & 9 deletions
This file was deleted.

tests/cases/compiler/regularExpressionWithNonBMPFlags.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)