Skip to content

Commit b7f5c77

Browse files
committed
fix again
1 parent 36c3bb3 commit b7f5c77

5 files changed

+8
-23
lines changed

src/compiler/scanner.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1289,13 +1289,16 @@ namespace ts {
12891289
}
12901290

12911291
if (isTaggedTemplate) {
1292+
const savePos = pos
12921293
const escapedValueString = scanMinimumNumberOfHexDigits(1, /*canHaveSeparators*/ false);
12931294
const escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1;
12941295

12951296
// '\u{Not Code Point' or '\u{CodePoint'
12961297
if (!isCodePoint(escapedValue) || text.charCodeAt(pos) !== CharacterCodes.closeBrace) {
12971298
tokenFlags |= TokenFlags.ContainsInvalidEscape;
12981299
return text.substring(start, pos);
1300+
} else {
1301+
pos = savePos
12991302
}
13001303
}
13011304
tokenFlags |= TokenFlags.ExtendedUnicodeEscape;

tests/baselines/reference/invalidTaggedTemplateEscapeSequences.errors.txt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@ tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences.ts(8,75): er
55
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences.ts(9,18): error TS1125: Hexadecimal digit expected.
66
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences.ts(9,27): error TS1125: Hexadecimal digit expected.
77
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences.ts(9,51): error TS1125: Hexadecimal digit expected.
8-
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences.ts(19,33): error TS1125: Hexadecimal digit expected.
9-
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences.ts(21,33): error TS1125: Hexadecimal digit expected.
108

119

12-
==== tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences.ts (9 errors) ====
10+
==== tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences.ts (7 errors) ====
1311
function tag (str: any, ...args: any[]): any {
1412
return str
1513
}
@@ -43,12 +41,8 @@ tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences.ts(21,33): e
4341
const a7 = tag`${ 100 }\u0000` // \u0000
4442
const a8 = tag`${ 100 }\u{` // \\u{
4543
const a9 = tag`${ 100 }\u{10FFFF}` // \\u{10FFFF
46-
47-
!!! error TS1125: Hexadecimal digit expected.
4844
const a10 = tag`${ 100 }\u{1f622` // \\u{1f622
4945
const a11 = tag`${ 100 }\u{1f622}` // \u{1f622}
50-
51-
!!! error TS1125: Hexadecimal digit expected.
5246
const a12 = tag`${ 100 }\x` // \\x
5347
const a13 = tag`${ 100 }\x0` // \\x0
5448
const a14 = tag`${ 100 }\x00` // \x00

tests/baselines/reference/invalidTaggedTemplateEscapeSequences.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ var a5 = tag(__makeTemplateObject(["", undefined], ["", "\\u00"]), 100); // \\u0
5050
var a6 = tag(__makeTemplateObject(["", undefined], ["", "\\u000"]), 100); // \\u000
5151
var a7 = tag(__makeTemplateObject(["", "\0"], ["", "\\u0000"]), 100); // \u0000
5252
var a8 = tag(__makeTemplateObject(["", undefined], ["", "\\u{"]), 100); // \\u{
53-
var a9 = tag(__makeTemplateObject(["", ""], ["", "\\u{10FFFF}"]), 100); // \\u{10FFFF
53+
var a9 = tag(__makeTemplateObject(["", "\uDBFF\uDFFF"], ["", "\\u{10FFFF}"]), 100); // \\u{10FFFF
5454
var a10 = tag(__makeTemplateObject(["", undefined], ["", "\\u{1f622"]), 100); // \\u{1f622
55-
var a11 = tag(__makeTemplateObject(["", ""], ["", "\\u{1f622}"]), 100); // \u{1f622}
55+
var a11 = tag(__makeTemplateObject(["", "\uD83D\uDE22"], ["", "\\u{1f622}"]), 100); // \u{1f622}
5656
var a12 = tag(__makeTemplateObject(["", undefined], ["", "\\x"]), 100); // \\x
5757
var a13 = tag(__makeTemplateObject(["", undefined], ["", "\\x0"]), 100); // \\x0
5858
var a14 = tag(__makeTemplateObject(["", "\0"], ["", "\\x00"]), 100); // \x00

tests/baselines/reference/invalidTaggedTemplateEscapeSequences_es2015.errors.txt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@ tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_es2015.ts(8,
55
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_es2015.ts(9,18): error TS1125: Hexadecimal digit expected.
66
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_es2015.ts(9,27): error TS1125: Hexadecimal digit expected.
77
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_es2015.ts(9,51): error TS1125: Hexadecimal digit expected.
8-
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_es2015.ts(19,33): error TS1125: Hexadecimal digit expected.
9-
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_es2015.ts(21,33): error TS1125: Hexadecimal digit expected.
108

119

12-
==== tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_es2015.ts (9 errors) ====
10+
==== tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_es2015.ts (7 errors) ====
1311
function tag (str: any, ...args: any[]): any {
1412
return str
1513
}
@@ -43,12 +41,8 @@ tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_es2015.ts(21
4341
const a7 = tag`${ 100 }\u0000` // \u0000
4442
const a8 = tag`${ 100 }\u{` // \\u{
4543
const a9 = tag`${ 100 }\u{10FFFF}` // \\u{10FFFF
46-
47-
!!! error TS1125: Hexadecimal digit expected.
4844
const a10 = tag`${ 100 }\u{1f622` // \\u{1f622
4945
const a11 = tag`${ 100 }\u{1f622}` // \u{1f622}
50-
51-
!!! error TS1125: Hexadecimal digit expected.
5246
const a12 = tag`${ 100 }\x` // \\x
5347
const a13 = tag`${ 100 }\x0` // \\x0
5448
const a14 = tag`${ 100 }\x00` // \x00

tests/baselines/reference/invalidTaggedTemplateEscapeSequences_esnext.errors.txt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@ tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_esnext.ts(8,
55
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_esnext.ts(9,18): error TS1125: Hexadecimal digit expected.
66
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_esnext.ts(9,27): error TS1125: Hexadecimal digit expected.
77
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_esnext.ts(9,51): error TS1125: Hexadecimal digit expected.
8-
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_esnext.ts(19,33): error TS1125: Hexadecimal digit expected.
9-
tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_esnext.ts(21,33): error TS1125: Hexadecimal digit expected.
108

119

12-
==== tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_esnext.ts (9 errors) ====
10+
==== tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_esnext.ts (7 errors) ====
1311
function tag (str: any, ...args: any[]): any {
1412
return str
1513
}
@@ -43,12 +41,8 @@ tests/cases/conformance/es2018/invalidTaggedTemplateEscapeSequences_esnext.ts(21
4341
const a7 = tag`${ 100 }\u0000` // \u0000
4442
const a8 = tag`${ 100 }\u{` // \\u{
4543
const a9 = tag`${ 100 }\u{10FFFF}` // \\u{10FFFF
46-
47-
!!! error TS1125: Hexadecimal digit expected.
4844
const a10 = tag`${ 100 }\u{1f622` // \\u{1f622
4945
const a11 = tag`${ 100 }\u{1f622}` // \u{1f622}
50-
51-
!!! error TS1125: Hexadecimal digit expected.
5246
const a12 = tag`${ 100 }\x` // \\x
5347
const a13 = tag`${ 100 }\x0` // \\x0
5448
const a14 = tag`${ 100 }\x00` // \x00

0 commit comments

Comments
 (0)