Numeric separators (#20324)

* Add support into octal and binary literals

* Add hex support

* And finally support all numeric literals and fix spelling

* Update error message

* Refactor error in scanner to take a position

* Scan no separators in escape sequences, add escape sequence tests

* More decimal tests from the spec presentation examples

* Permissive scanning of excess separators

* Remove unnecessary assignment

* Make code easier to follow
This commit is contained in:
Wesley Wigham
2017-12-08 20:20:18 -05:00
committed by GitHub
parent 0c2d8d28de
commit 9e51882d9c
45 changed files with 2835 additions and 23 deletions
+4
View File
@@ -3420,6 +3420,10 @@
"category": "Message",
"code": 6187
},
"Numeric separators are not allowed here.": {
"category": "Error",
"code": 6188
},
"Variable '{0}' implicitly has an '{1}' type.": {
"category": "Error",
"code": 7005
+108 -21
View File
@@ -561,9 +561,9 @@ namespace ts {
return false;
}
function scanConflictMarkerTrivia(text: string, pos: number, error?: ErrorCallback) {
function scanConflictMarkerTrivia(text: string, pos: number, error?: (diag: DiagnosticMessage, pos?: number, len?: number) => void) {
if (error) {
error(Diagnostics.Merge_conflict_marker_encountered, mergeConflictMarkerLength);
error(Diagnostics.Merge_conflict_marker_encountered, pos, mergeConflictMarkerLength);
}
const ch = text.charCodeAt(pos);
@@ -852,34 +852,86 @@ namespace ts {
scanRange,
};
function error(message: DiagnosticMessage, length?: number): void {
function error(message: DiagnosticMessage): void;
function error(message: DiagnosticMessage, errPos: number, length: number): void;
function error(message: DiagnosticMessage, errPos: number = pos, length?: number): void {
if (onError) {
const oldPos = pos;
pos = errPos;
onError(message, length || 0);
pos = oldPos;
}
}
function scanNumberFragment(): string {
let start = pos;
let allowSeparator = false;
let result = "";
while (true) {
const ch = text.charCodeAt(pos);
if (ch === CharacterCodes._) {
tokenFlags |= TokenFlags.ContainsSeparator;
if (allowSeparator) {
allowSeparator = false;
result += text.substring(start, pos);
}
else {
error(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);
}
pos++;
start = pos;
continue;
}
if (isDigit(ch)) {
allowSeparator = true;
pos++;
continue;
}
break;
}
if (text.charCodeAt(pos - 1) === CharacterCodes._) {
error(Diagnostics.Numeric_separators_are_not_allowed_here, pos - 1, 1);
}
return result + text.substring(start, pos);
}
function scanNumber(): string {
const start = pos;
while (isDigit(text.charCodeAt(pos))) pos++;
const mainFragment = scanNumberFragment();
let decimalFragment: string;
let scientificFragment: string;
if (text.charCodeAt(pos) === CharacterCodes.dot) {
pos++;
while (isDigit(text.charCodeAt(pos))) pos++;
decimalFragment = scanNumberFragment();
}
let end = pos;
if (text.charCodeAt(pos) === CharacterCodes.E || text.charCodeAt(pos) === CharacterCodes.e) {
pos++;
tokenFlags |= TokenFlags.Scientific;
if (text.charCodeAt(pos) === CharacterCodes.plus || text.charCodeAt(pos) === CharacterCodes.minus) pos++;
if (isDigit(text.charCodeAt(pos))) {
pos++;
while (isDigit(text.charCodeAt(pos))) pos++;
end = pos;
}
else {
const preNumericPart = pos;
const finalFragment = scanNumberFragment();
if (!finalFragment) {
error(Diagnostics.Digit_expected);
}
else {
scientificFragment = text.substring(end, preNumericPart) + finalFragment;
end = pos;
}
}
if (tokenFlags & TokenFlags.ContainsSeparator) {
let result = mainFragment;
if (decimalFragment) {
result += "." + decimalFragment;
}
if (scientificFragment) {
result += scientificFragment;
}
return "" + +result;
}
else {
return "" + +(text.substring(start, end)); // No need to use all the fragments; no _ removal needed
}
return "" + +(text.substring(start, end));
}
function scanOctalDigits(): number {
@@ -894,23 +946,36 @@ namespace ts {
* Scans the given number of hexadecimal digits in the text,
* returning -1 if the given number is unavailable.
*/
function scanExactNumberOfHexDigits(count: number): number {
return scanHexDigits(/*minCount*/ count, /*scanAsManyAsPossible*/ false);
function scanExactNumberOfHexDigits(count: number, canHaveSeparators: boolean): number {
return scanHexDigits(/*minCount*/ count, /*scanAsManyAsPossible*/ false, canHaveSeparators);
}
/**
* Scans as many hexadecimal digits as are available in the text,
* returning -1 if the given number of digits was unavailable.
*/
function scanMinimumNumberOfHexDigits(count: number): number {
return scanHexDigits(/*minCount*/ count, /*scanAsManyAsPossible*/ true);
function scanMinimumNumberOfHexDigits(count: number, canHaveSeparators: boolean): number {
return scanHexDigits(/*minCount*/ count, /*scanAsManyAsPossible*/ true, canHaveSeparators);
}
function scanHexDigits(minCount: number, scanAsManyAsPossible: boolean): number {
function scanHexDigits(minCount: number, scanAsManyAsPossible: boolean, canHaveSeparators: boolean): number {
let digits = 0;
let value = 0;
let allowSeparator = false;
while (digits < minCount || scanAsManyAsPossible) {
const ch = text.charCodeAt(pos);
if (canHaveSeparators && ch === CharacterCodes._) {
tokenFlags |= TokenFlags.ContainsSeparator;
if (allowSeparator) {
allowSeparator = false;
}
else {
error(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);
}
pos++;
continue;
}
allowSeparator = canHaveSeparators;
if (ch >= CharacterCodes._0 && ch <= CharacterCodes._9) {
value = value * 16 + ch - CharacterCodes._0;
}
@@ -929,6 +994,9 @@ namespace ts {
if (digits < minCount) {
value = -1;
}
if (text.charCodeAt(pos - 1) === CharacterCodes._) {
error(Diagnostics.Numeric_separators_are_not_allowed_here, pos - 1, 1);
}
return value;
}
@@ -1097,7 +1165,7 @@ namespace ts {
}
function scanHexadecimalEscape(numDigits: number): string {
const escapedValue = scanExactNumberOfHexDigits(numDigits);
const escapedValue = scanExactNumberOfHexDigits(numDigits, /*canHaveSeparators*/ false);
if (escapedValue >= 0) {
return String.fromCharCode(escapedValue);
@@ -1109,7 +1177,7 @@ namespace ts {
}
function scanExtendedUnicodeEscape(): string {
const escapedValue = scanMinimumNumberOfHexDigits(1);
const escapedValue = scanMinimumNumberOfHexDigits(1, /*canHaveSeparators*/ false);
let isInvalidExtendedEscape = false;
// Validate the value of the digit
@@ -1162,7 +1230,7 @@ namespace ts {
if (pos + 5 < end && text.charCodeAt(pos + 1) === CharacterCodes.u) {
const start = pos;
pos += 2;
const value = scanExactNumberOfHexDigits(4);
const value = scanExactNumberOfHexDigits(4, /*canHaveSeparators*/ false);
pos = start;
return value;
}
@@ -1218,8 +1286,22 @@ namespace ts {
// For counting number of digits; Valid binaryIntegerLiteral must have at least one binary digit following B or b.
// Similarly valid octalIntegerLiteral must have at least one octal digit following o or O.
let numberOfDigits = 0;
let separatorAllowed = false;
while (true) {
const ch = text.charCodeAt(pos);
// Numeric seperators are allowed anywhere within a numeric literal, except not at the beginning, or following another separator
if (ch === CharacterCodes._) {
tokenFlags |= TokenFlags.ContainsSeparator;
if (separatorAllowed) {
separatorAllowed = false;
}
else {
error(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);
}
pos++;
continue;
}
separatorAllowed = true;
const valueOfCh = ch - CharacterCodes._0;
if (!isDigit(ch) || valueOfCh >= base) {
break;
@@ -1232,6 +1314,11 @@ namespace ts {
if (numberOfDigits === 0) {
return -1;
}
if (text.charCodeAt(pos - 1) === CharacterCodes._) {
// Literal ends with underscore - not allowed
error(Diagnostics.Numeric_separators_are_not_allowed_here, pos - 1, 1);
return value;
}
return value;
}
@@ -1435,7 +1522,7 @@ namespace ts {
case CharacterCodes._0:
if (pos + 2 < end && (text.charCodeAt(pos + 1) === CharacterCodes.X || text.charCodeAt(pos + 1) === CharacterCodes.x)) {
pos += 2;
let value = scanMinimumNumberOfHexDigits(1);
let value = scanMinimumNumberOfHexDigits(1, /*canHaveSeparators*/ true);
if (value < 0) {
error(Diagnostics.Hexadecimal_digit_expected);
value = 0;
+2 -1
View File
@@ -1490,8 +1490,9 @@ namespace ts {
HexSpecifier = 1 << 6, // e.g. `0x00000000`
BinarySpecifier = 1 << 7, // e.g. `0b0110010000000000`
OctalSpecifier = 1 << 8, // e.g. `0o777`
ContainsSeparator = 1 << 9, // e.g. `0b1100_0101`
BinaryOrOctalSpecifier = BinarySpecifier | OctalSpecifier,
NumericLiteralFlags = Scientific | Octal | HexSpecifier | BinarySpecifier | OctalSpecifier
NumericLiteralFlags = Scientific | Octal | HexSpecifier | BinarySpecifier | OctalSpecifier | ContainsSeparator
}
export interface NumericLiteral extends LiteralExpression {
+1 -1
View File
@@ -346,7 +346,7 @@ namespace ts {
export function getLiteralText(node: LiteralLikeNode, sourceFile: SourceFile) {
// If we don't need to downlevel and we can reach the original source text using
// the node's parent reference, then simply get the text as it was originally written.
if (!nodeIsSynthesized(node) && node.parent) {
if (!nodeIsSynthesized(node) && node.parent && !(isNumericLiteral(node) && node.numericLiteralFlags & TokenFlags.ContainsSeparator)) {
return getSourceTextOfNodeFromSourceFile(sourceFile, node);
}
@@ -0,0 +1,12 @@
//// [parser.numericSeparators.binary.ts]
0b00_11;
0B0_1;
0b1100_0011;
0B0_11_0101;
//// [parser.numericSeparators.binary.js]
3;
1;
195;
53;
@@ -0,0 +1,7 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/parser.numericSeparators.binary.ts ===
0b00_11;
No type information for this code.0B0_1;
No type information for this code.0b1100_0011;
No type information for this code.0B0_11_0101;
No type information for this code.
No type information for this code.
@@ -0,0 +1,13 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/parser.numericSeparators.binary.ts ===
0b00_11;
>0b00_11 : 3
0B0_1;
>0B0_1 : 1
0b1100_0011;
>0b1100_0011 : 195
0B0_11_0101;
>0B0_11_0101 : 53
@@ -0,0 +1,50 @@
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,2): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS1005: ';' expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS2304: Cannot find name 'B0101'.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts(1,6): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts(1,13): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,4): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,5): error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts (1 errors) ====
0b00_
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts (1 errors) ====
0b_110
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts (3 errors) ====
0_B0101
~
!!! error TS6188: Numeric separators are not allowed here.
~~~~~
!!! error TS1005: ';' expected.
~~~~~
!!! error TS2304: Cannot find name 'B0101'.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts (1 errors) ====
0b01__11
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts (1 errors) ====
0B0110_0110__
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts (3 errors) ====
0b___0111010_0101_1
~
!!! error TS6188: Numeric separators are not allowed here.
~
!!! error TS6188: Numeric separators are not allowed here.
~
!!! error TS6188: Numeric separators are not allowed here.
@@ -0,0 +1,34 @@
//// [tests/cases/conformance/parser/ecmascriptnext/numericSeparators/parser.numericSeparators.binaryNegative.ts] ////
//// [1.ts]
0b00_
//// [2.ts]
0b_110
//// [3.ts]
0_B0101
//// [4.ts]
0b01__11
//// [5.ts]
0B0110_0110__
//// [6.ts]
0b___0111010_0101_1
//// [1.js]
0;
//// [2.js]
6;
//// [3.js]
0;
B0101;
//// [4.js]
7;
//// [5.js]
102;
//// [6.js]
1867;
@@ -0,0 +1,19 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts ===
0b00_
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts ===
0b_110
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts ===
0_B0101
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts ===
0b01__11
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts ===
0B0110_0110__
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts ===
0b___0111010_0101_1
No type information for this code.
No type information for this code.
@@ -0,0 +1,25 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts ===
0b00_
>0b00_ : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts ===
0b_110
>0b_110 : 6
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts ===
0_B0101
>0_ : 0
>B0101 : any
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts ===
0b01__11
>0b01__11 : 7
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts ===
0B0110_0110__
>0B0110_0110__ : 102
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts ===
0b___0111010_0101_1
>0b___0111010_0101_1 : 1867
@@ -0,0 +1,32 @@
//// [parser.numericSeparators.decimal.ts]
1_000_000_000
1.1_00_01
1e1_0
1e+1_0
1e-1_0
1.1e10_0
1.1e+10_0
1.1e-10_0
12_34_56
1_22_333
1_2.3_4
1_2.3_4e5_6
1_2.3_4e+5_6
1_2.3_4e-5_6
//// [parser.numericSeparators.decimal.js]
1000000000;
1.10001;
10000000000;
10000000000;
1e-10;
1.1e+100;
1.1e+100;
1.1e-100;
123456;
122333;
12.34;
1.234e+57;
1.234e+57;
1.234e-55;
@@ -0,0 +1,17 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/parser.numericSeparators.decimal.ts ===
1_000_000_000
No type information for this code.1.1_00_01
No type information for this code.1e1_0
No type information for this code.1e+1_0
No type information for this code.1e-1_0
No type information for this code.1.1e10_0
No type information for this code.1.1e+10_0
No type information for this code.1.1e-10_0
No type information for this code.12_34_56
No type information for this code.1_22_333
No type information for this code.1_2.3_4
No type information for this code.1_2.3_4e5_6
No type information for this code.1_2.3_4e+5_6
No type information for this code.1_2.3_4e-5_6
No type information for this code.
No type information for this code.
@@ -0,0 +1,43 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/parser.numericSeparators.decimal.ts ===
1_000_000_000
>1_000_000_000 : 1000000000
1.1_00_01
>1.1_00_01 : 1.10001
1e1_0
>1e1_0 : 10000000000
1e+1_0
>1e+1_0 : 10000000000
1e-1_0
>1e-1_0 : 1e-10
1.1e10_0
>1.1e10_0 : 1.1e+100
1.1e+10_0
>1.1e+10_0 : 1.1e+100
1.1e-10_0
>1.1e-10_0 : 1.1e-100
12_34_56
>12_34_56 : 123456
1_22_333
>1_22_333 : 122333
1_2.3_4
>1_2.3_4 : 12.34
1_2.3_4e5_6
>1_2.3_4e5_6 : 1.234e+57
1_2.3_4e+5_6
>1_2.3_4e+5_6 : 1.234e+57
1_2.3_4e-5_6
>1_2.3_4e-5_6 : 1.234e-55
@@ -0,0 +1,329 @@
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts(1,1): error TS2304: Cannot find name '_10'.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/10.ts(1,4): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/11.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/12.ts(1,2): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/13.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/14.ts(1,4): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/15.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/16.ts(1,1): error TS2304: Cannot find name '_0'.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/16.ts(1,3): error TS1005: ';' expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/17.ts(1,6): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/18.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/19.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/20.ts(1,8): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/21.ts(1,2): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/22.ts(1,4): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/23.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/24.ts(1,6): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/25.ts(1,2): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/26.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/27.ts(1,4): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/28.ts(1,6): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/29.ts(1,1): error TS2304: Cannot find name '_0'.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/29.ts(1,3): error TS1005: ';' expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/30.ts(1,7): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/31.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/32.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/33.ts(1,9): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/34.ts(1,2): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/35.ts(1,4): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/36.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/37.ts(1,6): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/38.ts(1,2): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/39.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts(1,2): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/40.ts(1,4): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/41.ts(1,6): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/42.ts(1,1): error TS2304: Cannot find name '_0'.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/42.ts(1,3): error TS1005: ';' expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/43.ts(1,7): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/44.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/45.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/46.ts(1,9): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/47.ts(1,1): error TS1128: Declaration or statement expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/47.ts(1,2): error TS2304: Cannot find name '_'.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/48.ts(1,2): error TS1005: ';' expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/48.ts(1,2): error TS2304: Cannot find name '\u005F01234'.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/49.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/49.ts(1,6): error TS1124: Digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/50.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/50.ts(1,6): error TS1124: Digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/51.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/7.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/8.ts(1,2): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts(1,3): error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts (1 errors) ====
_10
~~~
!!! error TS2304: Cannot find name '_10'.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts (1 errors) ====
10_
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts (1 errors) ====
1__0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts (1 errors) ====
0_.0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts (1 errors) ====
0._0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts (1 errors) ====
0.0__0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/7.ts (1 errors) ====
0.0__
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/8.ts (1 errors) ====
0_e0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts (1 errors) ====
0e_0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/10.ts (1 errors) ====
0e0_
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/11.ts (1 errors) ====
0e0__0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/12.ts (1 errors) ====
0_.0e0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/13.ts (1 errors) ====
0._0e0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/14.ts (1 errors) ====
0.0_e0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/15.ts (1 errors) ====
0.0e_0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/16.ts (2 errors) ====
_0.0e0
~~
!!! error TS2304: Cannot find name '_0'.
~~~~
!!! error TS1005: ';' expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/17.ts (1 errors) ====
0.0e0_
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/18.ts (1 errors) ====
0__0.0e0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/19.ts (1 errors) ====
0.0__0e0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/20.ts (1 errors) ====
0.00e0__0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/21.ts (1 errors) ====
0_e+0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/22.ts (1 errors) ====
0e+_0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/23.ts (1 errors) ====
0e+0_
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/24.ts (1 errors) ====
0e+0__0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/25.ts (1 errors) ====
0_.0e+0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/26.ts (1 errors) ====
0._0e+0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/27.ts (1 errors) ====
0.0_e+0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/28.ts (1 errors) ====
0.0e+_0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/29.ts (2 errors) ====
_0.0e+0
~~
!!! error TS2304: Cannot find name '_0'.
~~~~~
!!! error TS1005: ';' expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/30.ts (1 errors) ====
0.0e+0_
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/31.ts (1 errors) ====
0__0.0e+0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/32.ts (1 errors) ====
0.0__0e+0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/33.ts (1 errors) ====
0.00e+0__0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/34.ts (1 errors) ====
0_e+0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/35.ts (1 errors) ====
0e-_0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/36.ts (1 errors) ====
0e-0_
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/37.ts (1 errors) ====
0e-0__0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/38.ts (1 errors) ====
0_.0e-0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/39.ts (1 errors) ====
0._0e-0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/40.ts (1 errors) ====
0.0_e-0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/41.ts (1 errors) ====
0.0e-_0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/42.ts (2 errors) ====
_0.0e-0
~~
!!! error TS2304: Cannot find name '_0'.
~~~~~
!!! error TS1005: ';' expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/43.ts (1 errors) ====
0.0e-0_
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/44.ts (1 errors) ====
0__0.0e-0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/45.ts (1 errors) ====
0.0__0e-0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/46.ts (1 errors) ====
0.00e-0__0
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/47.ts (2 errors) ====
._
~
!!! error TS1128: Declaration or statement expected.
~
!!! error TS2304: Cannot find name '_'.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/48.ts (2 errors) ====
1\u005F01234
~~~~~~~~~~~
!!! error TS1005: ';' expected.
~~~~~~~~~~~
!!! error TS2304: Cannot find name '\u005F01234'.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/49.ts (2 errors) ====
1.0e_+10
~
!!! error TS6188: Numeric separators are not allowed here.
!!! error TS1124: Digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/50.ts (2 errors) ====
1.0e_-10
~
!!! error TS6188: Numeric separators are not allowed here.
!!! error TS1124: Digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/51.ts (1 errors) ====
0._
~
!!! error TS6188: Numeric separators are not allowed here.
@@ -0,0 +1,262 @@
//// [tests/cases/conformance/parser/ecmascriptnext/numericSeparators/parser.numericSeparators.decmialNegative.ts] ////
//// [1.ts]
_10
//// [2.ts]
10_
//// [3.ts]
1__0
//// [4.ts]
0_.0
//// [5.ts]
0._0
//// [6.ts]
0.0__0
//// [7.ts]
0.0__
//// [8.ts]
0_e0
//// [9.ts]
0e_0
//// [10.ts]
0e0_
//// [11.ts]
0e0__0
//// [12.ts]
0_.0e0
//// [13.ts]
0._0e0
//// [14.ts]
0.0_e0
//// [15.ts]
0.0e_0
//// [16.ts]
_0.0e0
//// [17.ts]
0.0e0_
//// [18.ts]
0__0.0e0
//// [19.ts]
0.0__0e0
//// [20.ts]
0.00e0__0
//// [21.ts]
0_e+0
//// [22.ts]
0e+_0
//// [23.ts]
0e+0_
//// [24.ts]
0e+0__0
//// [25.ts]
0_.0e+0
//// [26.ts]
0._0e+0
//// [27.ts]
0.0_e+0
//// [28.ts]
0.0e+_0
//// [29.ts]
_0.0e+0
//// [30.ts]
0.0e+0_
//// [31.ts]
0__0.0e+0
//// [32.ts]
0.0__0e+0
//// [33.ts]
0.00e+0__0
//// [34.ts]
0_e+0
//// [35.ts]
0e-_0
//// [36.ts]
0e-0_
//// [37.ts]
0e-0__0
//// [38.ts]
0_.0e-0
//// [39.ts]
0._0e-0
//// [40.ts]
0.0_e-0
//// [41.ts]
0.0e-_0
//// [42.ts]
_0.0e-0
//// [43.ts]
0.0e-0_
//// [44.ts]
0__0.0e-0
//// [45.ts]
0.0__0e-0
//// [46.ts]
0.00e-0__0
//// [47.ts]
._
//// [48.ts]
1\u005F01234
//// [49.ts]
1.0e_+10
//// [50.ts]
1.0e_-10
//// [51.ts]
0._
//// [1.js]
_10;
//// [2.js]
10;
//// [3.js]
10;
//// [4.js]
0;
//// [5.js]
0;
//// [6.js]
0;
//// [7.js]
0;
//// [8.js]
0;
//// [9.js]
0;
//// [10.js]
0;
//// [11.js]
0;
//// [12.js]
0;
//// [13.js]
0;
//// [14.js]
0;
//// [15.js]
0;
//// [16.js]
_0;
.0e0;
//// [17.js]
0;
//// [18.js]
0;
//// [19.js]
0;
//// [20.js]
0;
//// [21.js]
0;
//// [22.js]
0;
//// [23.js]
0;
//// [24.js]
0;
//// [25.js]
0;
//// [26.js]
0;
//// [27.js]
0;
//// [28.js]
0;
//// [29.js]
_0;
.0e+0;
//// [30.js]
0;
//// [31.js]
0;
//// [32.js]
0;
//// [33.js]
0;
//// [34.js]
0;
//// [35.js]
0;
//// [36.js]
0;
//// [37.js]
0;
//// [38.js]
0;
//// [39.js]
0;
//// [40.js]
0;
//// [41.js]
0;
//// [42.js]
_0;
.0e-0;
//// [43.js]
0;
//// [44.js]
0;
//// [45.js]
0;
//// [46.js]
0;
//// [47.js]
_;
//// [48.js]
1;
\u005F01234;
//// [49.js]
1 + 10;
//// [50.js]
1 - 10;
//// [51.js]
0;
@@ -0,0 +1,154 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts ===
_10
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts ===
10_
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts ===
1__0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts ===
0_.0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts ===
0._0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts ===
0.0__0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/7.ts ===
0.0__
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/8.ts ===
0_e0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts ===
0e_0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/10.ts ===
0e0_
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/11.ts ===
0e0__0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/12.ts ===
0_.0e0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/13.ts ===
0._0e0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/14.ts ===
0.0_e0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/15.ts ===
0.0e_0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/16.ts ===
_0.0e0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/17.ts ===
0.0e0_
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/18.ts ===
0__0.0e0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/19.ts ===
0.0__0e0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/20.ts ===
0.00e0__0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/21.ts ===
0_e+0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/22.ts ===
0e+_0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/23.ts ===
0e+0_
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/24.ts ===
0e+0__0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/25.ts ===
0_.0e+0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/26.ts ===
0._0e+0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/27.ts ===
0.0_e+0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/28.ts ===
0.0e+_0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/29.ts ===
_0.0e+0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/30.ts ===
0.0e+0_
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/31.ts ===
0__0.0e+0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/32.ts ===
0.0__0e+0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/33.ts ===
0.00e+0__0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/34.ts ===
0_e+0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/35.ts ===
0e-_0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/36.ts ===
0e-0_
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/37.ts ===
0e-0__0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/38.ts ===
0_.0e-0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/39.ts ===
0._0e-0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/40.ts ===
0.0_e-0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/41.ts ===
0.0e-_0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/42.ts ===
_0.0e-0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/43.ts ===
0.0e-0_
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/44.ts ===
0__0.0e-0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/45.ts ===
0.0__0e-0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/46.ts ===
0.00e-0__0
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/47.ts ===
._
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/48.ts ===
1\u005F01234
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/49.ts ===
1.0e_+10
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/50.ts ===
1.0e_-10
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/51.ts ===
0._
No type information for this code.
No type information for this code.
@@ -0,0 +1,212 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts ===
_10
>_10 : any
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts ===
10_
>10_ : 10
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts ===
1__0
>1__0 : 10
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts ===
0_.0
>0_.0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts ===
0._0
>0._0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts ===
0.0__0
>0.0__0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/7.ts ===
0.0__
>0.0__ : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/8.ts ===
0_e0
>0_e0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts ===
0e_0
>0e_0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/10.ts ===
0e0_
>0e0_ : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/11.ts ===
0e0__0
>0e0__0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/12.ts ===
0_.0e0
>0_.0e0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/13.ts ===
0._0e0
>0._0e0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/14.ts ===
0.0_e0
>0.0_e0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/15.ts ===
0.0e_0
>0.0e_0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/16.ts ===
_0.0e0
>_0 : any
>.0e0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/17.ts ===
0.0e0_
>0.0e0_ : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/18.ts ===
0__0.0e0
>0__0.0e0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/19.ts ===
0.0__0e0
>0.0__0e0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/20.ts ===
0.00e0__0
>0.00e0__0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/21.ts ===
0_e+0
>0_e+0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/22.ts ===
0e+_0
>0e+_0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/23.ts ===
0e+0_
>0e+0_ : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/24.ts ===
0e+0__0
>0e+0__0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/25.ts ===
0_.0e+0
>0_.0e+0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/26.ts ===
0._0e+0
>0._0e+0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/27.ts ===
0.0_e+0
>0.0_e+0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/28.ts ===
0.0e+_0
>0.0e+_0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/29.ts ===
_0.0e+0
>_0 : any
>.0e+0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/30.ts ===
0.0e+0_
>0.0e+0_ : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/31.ts ===
0__0.0e+0
>0__0.0e+0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/32.ts ===
0.0__0e+0
>0.0__0e+0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/33.ts ===
0.00e+0__0
>0.00e+0__0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/34.ts ===
0_e+0
>0_e+0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/35.ts ===
0e-_0
>0e-_0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/36.ts ===
0e-0_
>0e-0_ : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/37.ts ===
0e-0__0
>0e-0__0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/38.ts ===
0_.0e-0
>0_.0e-0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/39.ts ===
0._0e-0
>0._0e-0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/40.ts ===
0.0_e-0
>0.0_e-0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/41.ts ===
0.0e-_0
>0.0e-_0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/42.ts ===
_0.0e-0
>_0 : any
>.0e-0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/43.ts ===
0.0e-0_
>0.0e-0_ : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/44.ts ===
0__0.0e-0
>0__0.0e-0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/45.ts ===
0.0__0e-0
>0.0__0e-0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/46.ts ===
0.00e-0__0
>0.00e-0__0 : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/47.ts ===
._
>_ : any
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/48.ts ===
1\u005F01234
>1 : 1
>\u005F01234 : any
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/49.ts ===
1.0e_+10
>1.0e_+10 : number
>1.0e_ : 1
>10 : 10
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/50.ts ===
1.0e_-10
>1.0e_-10 : number
>1.0e_ : 1
>10 : 10
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/51.ts ===
0._
>0._ : 0
@@ -0,0 +1,12 @@
//// [parser.numericSeparators.hex.ts]
0x00_11;
0X0_1;
0x1100_0011;
0X0_11_0101;
//// [parser.numericSeparators.hex.js]
17;
1;
285212689;
1114369;
@@ -0,0 +1,7 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/parser.numericSeparators.hex.ts ===
0x00_11;
No type information for this code.0X0_1;
No type information for this code.0x1100_0011;
No type information for this code.0X0_11_0101;
No type information for this code.
No type information for this code.
@@ -0,0 +1,13 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/parser.numericSeparators.hex.ts ===
0x00_11;
>0x00_11 : 17
0X0_1;
>0X0_1 : 1
0x1100_0011;
>0x1100_0011 : 285212689
0X0_11_0101;
>0X0_11_0101 : 1114369
@@ -0,0 +1,50 @@
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,2): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS1005: ';' expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS2304: Cannot find name 'X0101'.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts(1,6): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts(1,13): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,4): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,5): error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts (1 errors) ====
0x00_
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts (1 errors) ====
0x_110
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts (3 errors) ====
0_X0101
~
!!! error TS6188: Numeric separators are not allowed here.
~~~~~
!!! error TS1005: ';' expected.
~~~~~
!!! error TS2304: Cannot find name 'X0101'.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts (1 errors) ====
0x01__11
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts (1 errors) ====
0X0110_0110__
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts (3 errors) ====
0x___0111010_0101_1
~
!!! error TS6188: Numeric separators are not allowed here.
~
!!! error TS6188: Numeric separators are not allowed here.
~
!!! error TS6188: Numeric separators are not allowed here.
@@ -0,0 +1,34 @@
//// [tests/cases/conformance/parser/ecmascriptnext/numericSeparators/parser.numericSeparators.hexNegative.ts] ////
//// [1.ts]
0x00_
//// [2.ts]
0x_110
//// [3.ts]
0_X0101
//// [4.ts]
0x01__11
//// [5.ts]
0X0110_0110__
//// [6.ts]
0x___0111010_0101_1
//// [1.js]
0;
//// [2.js]
272;
//// [3.js]
0;
X0101;
//// [4.js]
273;
//// [5.js]
17826064;
//// [6.js]
1172542853137;
@@ -0,0 +1,19 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts ===
0x00_
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts ===
0x_110
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts ===
0_X0101
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts ===
0x01__11
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts ===
0X0110_0110__
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts ===
0x___0111010_0101_1
No type information for this code.
No type information for this code.
@@ -0,0 +1,25 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts ===
0x00_
>0x00_ : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts ===
0x_110
>0x_110 : 272
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts ===
0_X0101
>0_ : 0
>X0101 : any
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts ===
0x01__11
>0x01__11 : 273
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts ===
0X0110_0110__
>0X0110_0110__ : 17826064
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts ===
0x___0111010_0101_1
>0x___0111010_0101_1 : 1172542853137
@@ -0,0 +1,12 @@
//// [parser.numericSeparators.octal.ts]
0o00_11;
0O0_1;
0o1100_0011;
0O0_11_0101;
//// [parser.numericSeparators.octal.js]
9;
1;
2359305;
36929;
@@ -0,0 +1,7 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/parser.numericSeparators.octal.ts ===
0o00_11;
No type information for this code.0O0_1;
No type information for this code.0o1100_0011;
No type information for this code.0O0_11_0101;
No type information for this code.
No type information for this code.
@@ -0,0 +1,13 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/parser.numericSeparators.octal.ts ===
0o00_11;
>0o00_11 : 9
0O0_1;
>0O0_1 : 1
0o1100_0011;
>0o1100_0011 : 2359305
0O0_11_0101;
>0O0_11_0101 : 36929
@@ -0,0 +1,50 @@
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts(1,5): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,2): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS1005: ';' expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,3): error TS2304: Cannot find name 'O0101'.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts(1,6): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts(1,13): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,3): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,4): error TS6188: Numeric separators are not allowed here.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,5): error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts (1 errors) ====
0o00_
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts (1 errors) ====
0o_110
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts (3 errors) ====
0_O0101
~
!!! error TS6188: Numeric separators are not allowed here.
~~~~~
!!! error TS1005: ';' expected.
~~~~~
!!! error TS2304: Cannot find name 'O0101'.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts (1 errors) ====
0o01__11
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts (1 errors) ====
0O0110_0110__
~
!!! error TS6188: Numeric separators are not allowed here.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts (3 errors) ====
0o___0111010_0101_1
~
!!! error TS6188: Numeric separators are not allowed here.
~
!!! error TS6188: Numeric separators are not allowed here.
~
!!! error TS6188: Numeric separators are not allowed here.
@@ -0,0 +1,34 @@
//// [tests/cases/conformance/parser/ecmascriptnext/numericSeparators/parser.numericSeparators.octalNegative.ts] ////
//// [1.ts]
0o00_
//// [2.ts]
0o_110
//// [3.ts]
0_O0101
//// [4.ts]
0o01__11
//// [5.ts]
0O0110_0110__
//// [6.ts]
0o___0111010_0101_1
//// [1.js]
0;
//// [2.js]
72;
//// [3.js]
0;
O0101;
//// [4.js]
73;
//// [5.js]
294984;
//// [6.js]
1224999433;
@@ -0,0 +1,19 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts ===
0o00_
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts ===
0o_110
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts ===
0_O0101
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts ===
0o01__11
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts ===
0O0110_0110__
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts ===
0o___0111010_0101_1
No type information for this code.
No type information for this code.
@@ -0,0 +1,25 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts ===
0o00_
>0o00_ : 0
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts ===
0o_110
>0o_110 : 72
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts ===
0_O0101
>0_ : 0
>O0101 : any
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts ===
0o01__11
>0o01__11 : 73
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts ===
0O0110_0110__
>0O0110_0110__ : 294984
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts ===
0o___0111010_0101_1
>0o___0111010_0101_1 : 1224999433
@@ -0,0 +1,236 @@
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts(1,7): error TS1199: Unterminated Unicode escape sequence.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/10.ts(1,5): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/11.ts(1,5): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/13.ts(1,5): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/14.ts(1,5): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/15.ts(1,5): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/17.ts(1,4): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/18.ts(1,4): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/19.ts(1,4): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts(1,7): error TS1199: Unterminated Unicode escape sequence.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/21.ts(1,4): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/22.ts(1,4): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/23.ts(1,4): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/25.ts(1,11): error TS1199: Unterminated Unicode escape sequence.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/26.ts(1,11): error TS1199: Unterminated Unicode escape sequence.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/27.ts(1,11): error TS1199: Unterminated Unicode escape sequence.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts(1,7): error TS1199: Unterminated Unicode escape sequence.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/37.ts(1,7): error TS1199: Unterminated Unicode escape sequence.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/38.ts(1,7): error TS1199: Unterminated Unicode escape sequence.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/39.ts(1,7): error TS1199: Unterminated Unicode escape sequence.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/41.ts(1,6): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/42.ts(1,6): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/43.ts(1,6): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/45.ts(1,5): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/46.ts(1,5): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/47.ts(1,5): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts(1,6): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts(1,6): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/7.ts(1,6): error TS1125: Hexadecimal digit expected.
tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts(1,5): error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts (1 errors) ====
"\u{10_ffff}"
!!! error TS1199: Unterminated Unicode escape sequence.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts (1 errors) ====
'\u{10_ffff}'
!!! error TS1199: Unterminated Unicode escape sequence.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts (1 errors) ====
`\u{10_ffff}`
!!! error TS1199: Unterminated Unicode escape sequence.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts (0 errors) ====
/\u{10_ffff}/u
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts (1 errors) ====
"\uff_ff"
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts (1 errors) ====
'\uff_ff'
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/7.ts (1 errors) ====
`\uff_ff`
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/8.ts (0 errors) ====
/\uff_ff/u
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts (1 errors) ====
"\xf_f"
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/10.ts (1 errors) ====
'\xf_f'
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/11.ts (1 errors) ====
`\xf_f`
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/12.ts (0 errors) ====
/\xf_f/u
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/13.ts (1 errors) ====
"\u{_10ffff}"
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/14.ts (1 errors) ====
'\u{_10ffff}'
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/15.ts (1 errors) ====
`\u{_10ffff}`
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/16.ts (0 errors) ====
/\u{_10ffff}/u
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/17.ts (1 errors) ====
"\u_ffff"
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/18.ts (1 errors) ====
'\u_ffff'
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/19.ts (1 errors) ====
`\u_ffff`
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/20.ts (0 errors) ====
/\u_ffff/u
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/21.ts (1 errors) ====
"\x_ff"
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/22.ts (1 errors) ====
'\x_ff'
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/23.ts (1 errors) ====
`\x_ff`
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/24.ts (0 errors) ====
/\x_ff/u
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/25.ts (1 errors) ====
"\u{10ffff_}"
!!! error TS1199: Unterminated Unicode escape sequence.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/26.ts (1 errors) ====
'\u{10ffff_}'
!!! error TS1199: Unterminated Unicode escape sequence.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/27.ts (1 errors) ====
`\u{10ffff_}`
!!! error TS1199: Unterminated Unicode escape sequence.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/28.ts (0 errors) ====
/\u{10ffff_}/u
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/29.ts (0 errors) ====
"\uffff_"
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/30.ts (0 errors) ====
'\uffff_'
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/31.ts (0 errors) ====
`\uffff_`
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/32.ts (0 errors) ====
/\uffff_/u
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/33.ts (0 errors) ====
"\xff_"
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/34.ts (0 errors) ====
'\xff_'
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/35.ts (0 errors) ====
`\xff_`
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/36.ts (0 errors) ====
/\xff_/u
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/37.ts (1 errors) ====
"\u{10__ffff}"
!!! error TS1199: Unterminated Unicode escape sequence.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/38.ts (1 errors) ====
'\u{10__ffff}'
!!! error TS1199: Unterminated Unicode escape sequence.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/39.ts (1 errors) ====
`\u{10__ffff}`
!!! error TS1199: Unterminated Unicode escape sequence.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/40.ts (0 errors) ====
/\u{10__ffff}/u
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/41.ts (1 errors) ====
"\uff__ff"
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/42.ts (1 errors) ====
'\uff__ff'
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/43.ts (1 errors) ====
`\uff__ff`
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/44.ts (0 errors) ====
/\uff__ff/u
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/45.ts (1 errors) ====
"\xf__f"
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/46.ts (1 errors) ====
'\xf__f'
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/47.ts (1 errors) ====
`\xf__f`
!!! error TS1125: Hexadecimal digit expected.
==== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/48.ts (0 errors) ====
/\xf__f/u
@@ -0,0 +1,243 @@
//// [tests/cases/conformance/parser/ecmascriptnext/numericSeparators/parser.numericSeparators.unicodeEscape.ts] ////
//// [1.ts]
"\u{10_ffff}"
//// [2.ts]
'\u{10_ffff}'
//// [3.ts]
`\u{10_ffff}`
//// [4.ts]
/\u{10_ffff}/u
//// [5.ts]
"\uff_ff"
//// [6.ts]
'\uff_ff'
//// [7.ts]
`\uff_ff`
//// [8.ts]
/\uff_ff/u
//// [9.ts]
"\xf_f"
//// [10.ts]
'\xf_f'
//// [11.ts]
`\xf_f`
//// [12.ts]
/\xf_f/u
//// [13.ts]
"\u{_10ffff}"
//// [14.ts]
'\u{_10ffff}'
//// [15.ts]
`\u{_10ffff}`
//// [16.ts]
/\u{_10ffff}/u
//// [17.ts]
"\u_ffff"
//// [18.ts]
'\u_ffff'
//// [19.ts]
`\u_ffff`
//// [20.ts]
/\u_ffff/u
//// [21.ts]
"\x_ff"
//// [22.ts]
'\x_ff'
//// [23.ts]
`\x_ff`
//// [24.ts]
/\x_ff/u
//// [25.ts]
"\u{10ffff_}"
//// [26.ts]
'\u{10ffff_}'
//// [27.ts]
`\u{10ffff_}`
//// [28.ts]
/\u{10ffff_}/u
//// [29.ts]
"\uffff_"
//// [30.ts]
'\uffff_'
//// [31.ts]
`\uffff_`
//// [32.ts]
/\uffff_/u
//// [33.ts]
"\xff_"
//// [34.ts]
'\xff_'
//// [35.ts]
`\xff_`
//// [36.ts]
/\xff_/u
//// [37.ts]
"\u{10__ffff}"
//// [38.ts]
'\u{10__ffff}'
//// [39.ts]
`\u{10__ffff}`
//// [40.ts]
/\u{10__ffff}/u
//// [41.ts]
"\uff__ff"
//// [42.ts]
'\uff__ff'
//// [43.ts]
`\uff__ff`
//// [44.ts]
/\uff__ff/u
//// [45.ts]
"\xf__f"
//// [46.ts]
'\xf__f'
//// [47.ts]
`\xf__f`
//// [48.ts]
/\xf__f/u
//// [1.js]
"\u{10_ffff}";
//// [2.js]
'\u{10_ffff}';
//// [3.js]
"_ffff}";
//// [4.js]
/\u{10_ffff}/u;
//// [5.js]
"\uff_ff";
//// [6.js]
'\uff_ff';
//// [7.js]
"_ff";
//// [8.js]
/\uff_ff/u;
//// [9.js]
"\xf_f";
//// [10.js]
'\xf_f';
//// [11.js]
"_f";
//// [12.js]
/\xf_f/u;
//// [13.js]
"\u{_10ffff}";
//// [14.js]
'\u{_10ffff}';
//// [15.js]
"_10ffff}";
//// [16.js]
/\u{_10ffff}/u;
//// [17.js]
"\u_ffff";
//// [18.js]
'\u_ffff';
//// [19.js]
"_ffff";
//// [20.js]
/\u_ffff/u;
//// [21.js]
"\x_ff";
//// [22.js]
'\x_ff';
//// [23.js]
"_ff";
//// [24.js]
/\x_ff/u;
//// [25.js]
"\u{10ffff_}";
//// [26.js]
'\u{10ffff_}';
//// [27.js]
"_}";
//// [28.js]
/\u{10ffff_}/u;
//// [29.js]
"\uffff_";
//// [30.js]
'\uffff_';
//// [31.js]
"\uFFFF_";
//// [32.js]
/\uffff_/u;
//// [33.js]
"\xff_";
//// [34.js]
'\xff_';
//// [35.js]
"\u00FF_";
//// [36.js]
/\xff_/u;
//// [37.js]
"\u{10__ffff}";
//// [38.js]
'\u{10__ffff}';
//// [39.js]
"__ffff}";
//// [40.js]
/\u{10__ffff}/u;
//// [41.js]
"\uff__ff";
//// [42.js]
'\uff__ff';
//// [43.js]
"__ff";
//// [44.js]
/\uff__ff/u;
//// [45.js]
"\xf__f";
//// [46.js]
'\xf__f';
//// [47.js]
"__f";
//// [48.js]
/\xf__f/u;
@@ -0,0 +1,145 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts ===
"\u{10_ffff}"
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts ===
'\u{10_ffff}'
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts ===
`\u{10_ffff}`
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts ===
/\u{10_ffff}/u
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts ===
"\uff_ff"
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts ===
'\uff_ff'
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/7.ts ===
`\uff_ff`
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/8.ts ===
/\uff_ff/u
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts ===
"\xf_f"
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/10.ts ===
'\xf_f'
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/11.ts ===
`\xf_f`
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/12.ts ===
/\xf_f/u
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/13.ts ===
"\u{_10ffff}"
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/14.ts ===
'\u{_10ffff}'
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/15.ts ===
`\u{_10ffff}`
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/16.ts ===
/\u{_10ffff}/u
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/17.ts ===
"\u_ffff"
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/18.ts ===
'\u_ffff'
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/19.ts ===
`\u_ffff`
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/20.ts ===
/\u_ffff/u
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/21.ts ===
"\x_ff"
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/22.ts ===
'\x_ff'
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/23.ts ===
`\x_ff`
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/24.ts ===
/\x_ff/u
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/25.ts ===
"\u{10ffff_}"
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/26.ts ===
'\u{10ffff_}'
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/27.ts ===
`\u{10ffff_}`
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/28.ts ===
/\u{10ffff_}/u
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/29.ts ===
"\uffff_"
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/30.ts ===
'\uffff_'
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/31.ts ===
`\uffff_`
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/32.ts ===
/\uffff_/u
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/33.ts ===
"\xff_"
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/34.ts ===
'\xff_'
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/35.ts ===
`\xff_`
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/36.ts ===
/\xff_/u
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/37.ts ===
"\u{10__ffff}"
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/38.ts ===
'\u{10__ffff}'
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/39.ts ===
`\u{10__ffff}`
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/40.ts ===
/\u{10__ffff}/u
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/41.ts ===
"\uff__ff"
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/42.ts ===
'\uff__ff'
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/43.ts ===
`\uff__ff`
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/44.ts ===
/\uff__ff/u
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/45.ts ===
"\xf__f"
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/46.ts ===
'\xf__f'
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/47.ts ===
`\xf__f`
No type information for this code.
No type information for this code.=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/48.ts ===
/\xf__f/u
No type information for this code.
No type information for this code.
@@ -0,0 +1,192 @@
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/1.ts ===
"\u{10_ffff}"
>"\u{10_ffff}" : "_ffff}"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/2.ts ===
'\u{10_ffff}'
>'\u{10_ffff}' : "_ffff}"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/3.ts ===
`\u{10_ffff}`
>`\u{10_ffff}` : "_ffff}"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/4.ts ===
/\u{10_ffff}/u
>/\u{10_ffff}/u : RegExp
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/5.ts ===
"\uff_ff"
>"\uff_ff" : "_ff"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/6.ts ===
'\uff_ff'
>'\uff_ff' : "_ff"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/7.ts ===
`\uff_ff`
>`\uff_ff` : "_ff"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/8.ts ===
/\uff_ff/u
>/\uff_ff/u : RegExp
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/9.ts ===
"\xf_f"
>"\xf_f" : "_f"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/10.ts ===
'\xf_f'
>'\xf_f' : "_f"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/11.ts ===
`\xf_f`
>`\xf_f` : "_f"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/12.ts ===
/\xf_f/u
>/\xf_f/u : RegExp
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/13.ts ===
"\u{_10ffff}"
>"\u{_10ffff}" : "_10ffff}"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/14.ts ===
'\u{_10ffff}'
>'\u{_10ffff}' : "_10ffff}"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/15.ts ===
`\u{_10ffff}`
>`\u{_10ffff}` : "_10ffff}"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/16.ts ===
/\u{_10ffff}/u
>/\u{_10ffff}/u : RegExp
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/17.ts ===
"\u_ffff"
>"\u_ffff" : "_ffff"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/18.ts ===
'\u_ffff'
>'\u_ffff' : "_ffff"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/19.ts ===
`\u_ffff`
>`\u_ffff` : "_ffff"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/20.ts ===
/\u_ffff/u
>/\u_ffff/u : RegExp
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/21.ts ===
"\x_ff"
>"\x_ff" : "_ff"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/22.ts ===
'\x_ff'
>'\x_ff' : "_ff"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/23.ts ===
`\x_ff`
>`\x_ff` : "_ff"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/24.ts ===
/\x_ff/u
>/\x_ff/u : RegExp
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/25.ts ===
"\u{10ffff_}"
>"\u{10ffff_}" : "_}"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/26.ts ===
'\u{10ffff_}'
>'\u{10ffff_}' : "_}"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/27.ts ===
`\u{10ffff_}`
>`\u{10ffff_}` : "_}"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/28.ts ===
/\u{10ffff_}/u
>/\u{10ffff_}/u : RegExp
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/29.ts ===
"\uffff_"
>"\uffff_" : "￿_"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/30.ts ===
'\uffff_'
>'\uffff_' : "￿_"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/31.ts ===
`\uffff_`
>`\uffff_` : "￿_"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/32.ts ===
/\uffff_/u
>/\uffff_/u : RegExp
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/33.ts ===
"\xff_"
>"\xff_" : "ÿ_"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/34.ts ===
'\xff_'
>'\xff_' : "ÿ_"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/35.ts ===
`\xff_`
>`\xff_` : "ÿ_"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/36.ts ===
/\xff_/u
>/\xff_/u : RegExp
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/37.ts ===
"\u{10__ffff}"
>"\u{10__ffff}" : "__ffff}"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/38.ts ===
'\u{10__ffff}'
>'\u{10__ffff}' : "__ffff}"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/39.ts ===
`\u{10__ffff}`
>`\u{10__ffff}` : "__ffff}"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/40.ts ===
/\u{10__ffff}/u
>/\u{10__ffff}/u : RegExp
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/41.ts ===
"\uff__ff"
>"\uff__ff" : "__ff"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/42.ts ===
'\uff__ff'
>'\uff__ff' : "__ff"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/43.ts ===
`\uff__ff`
>`\uff__ff` : "__ff"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/44.ts ===
/\uff__ff/u
>/\uff__ff/u : RegExp
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/45.ts ===
"\xf__f"
>"\xf__f" : "__f"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/46.ts ===
'\xf__f'
>'\xf__f' : "__f"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/47.ts ===
`\xf__f`
>`\xf__f` : "__f"
=== tests/cases/conformance/parser/ecmascriptnext/numericSeparators/48.ts ===
/\xf__f/u
>/\xf__f/u : RegExp
@@ -0,0 +1,4 @@
0b00_11;
0B0_1;
0b1100_0011;
0B0_11_0101;
@@ -0,0 +1,18 @@
// @filename: 1.ts
0b00_
// @filename: 2.ts
0b_110
// @filename: 3.ts
0_B0101
// @filename: 4.ts
0b01__11
// @filename: 5.ts
0B0110_0110__
// @filename: 6.ts
0b___0111010_0101_1
@@ -0,0 +1,14 @@
1_000_000_000
1.1_00_01
1e1_0
1e+1_0
1e-1_0
1.1e10_0
1.1e+10_0
1.1e-10_0
12_34_56
1_22_333
1_2.3_4
1_2.3_4e5_6
1_2.3_4e+5_6
1_2.3_4e-5_6
@@ -0,0 +1,152 @@
// @filename: 1.ts
_10
// @filename: 2.ts
10_
// @filename: 3.ts
1__0
// @filename: 4.ts
0_.0
// @filename: 5.ts
0._0
// @filename: 6.ts
0.0__0
// @filename: 7.ts
0.0__
// @filename: 8.ts
0_e0
// @filename: 9.ts
0e_0
// @filename: 10.ts
0e0_
// @filename: 11.ts
0e0__0
// @filename: 12.ts
0_.0e0
// @filename: 13.ts
0._0e0
// @filename: 14.ts
0.0_e0
// @filename: 15.ts
0.0e_0
// @filename: 16.ts
_0.0e0
// @filename: 17.ts
0.0e0_
// @filename: 18.ts
0__0.0e0
// @filename: 19.ts
0.0__0e0
// @filename: 20.ts
0.00e0__0
// @filename: 21.ts
0_e+0
// @filename: 22.ts
0e+_0
// @filename: 23.ts
0e+0_
// @filename: 24.ts
0e+0__0
// @filename: 25.ts
0_.0e+0
// @filename: 26.ts
0._0e+0
// @filename: 27.ts
0.0_e+0
// @filename: 28.ts
0.0e+_0
// @filename: 29.ts
_0.0e+0
// @filename: 30.ts
0.0e+0_
// @filename: 31.ts
0__0.0e+0
// @filename: 32.ts
0.0__0e+0
// @filename: 33.ts
0.00e+0__0
// @filename: 34.ts
0_e+0
// @filename: 35.ts
0e-_0
// @filename: 36.ts
0e-0_
// @filename: 37.ts
0e-0__0
// @filename: 38.ts
0_.0e-0
// @filename: 39.ts
0._0e-0
// @filename: 40.ts
0.0_e-0
// @filename: 41.ts
0.0e-_0
// @filename: 42.ts
_0.0e-0
// @filename: 43.ts
0.0e-0_
// @filename: 44.ts
0__0.0e-0
// @filename: 45.ts
0.0__0e-0
// @filename: 46.ts
0.00e-0__0
// @filename: 47.ts
._
// @filename: 48.ts
1\u005F01234
// @filename: 49.ts
1.0e_+10
// @filename: 50.ts
1.0e_-10
// @filename: 51.ts
0._
@@ -0,0 +1,4 @@
0x00_11;
0X0_1;
0x1100_0011;
0X0_11_0101;
@@ -0,0 +1,18 @@
// @filename: 1.ts
0x00_
// @filename: 2.ts
0x_110
// @filename: 3.ts
0_X0101
// @filename: 4.ts
0x01__11
// @filename: 5.ts
0X0110_0110__
// @filename: 6.ts
0x___0111010_0101_1
@@ -0,0 +1,4 @@
0o00_11;
0O0_1;
0o1100_0011;
0O0_11_0101;
@@ -0,0 +1,18 @@
// @filename: 1.ts
0o00_
// @filename: 2.ts
0o_110
// @filename: 3.ts
0_O0101
// @filename: 4.ts
0o01__11
// @filename: 5.ts
0O0110_0110__
// @filename: 6.ts
0o___0111010_0101_1
@@ -0,0 +1,143 @@
// @filename: 1.ts
"\u{10_ffff}"
// @filename: 2.ts
'\u{10_ffff}'
// @filename: 3.ts
`\u{10_ffff}`
// @filename: 4.ts
/\u{10_ffff}/u
// @filename: 5.ts
"\uff_ff"
// @filename: 6.ts
'\uff_ff'
// @filename: 7.ts
`\uff_ff`
// @filename: 8.ts
/\uff_ff/u
// @filename: 9.ts
"\xf_f"
// @filename: 10.ts
'\xf_f'
// @filename: 11.ts
`\xf_f`
// @filename: 12.ts
/\xf_f/u
// @filename: 13.ts
"\u{_10ffff}"
// @filename: 14.ts
'\u{_10ffff}'
// @filename: 15.ts
`\u{_10ffff}`
// @filename: 16.ts
/\u{_10ffff}/u
// @filename: 17.ts
"\u_ffff"
// @filename: 18.ts
'\u_ffff'
// @filename: 19.ts
`\u_ffff`
// @filename: 20.ts
/\u_ffff/u
// @filename: 21.ts
"\x_ff"
// @filename: 22.ts
'\x_ff'
// @filename: 23.ts
`\x_ff`
// @filename: 24.ts
/\x_ff/u
// @filename: 25.ts
"\u{10ffff_}"
// @filename: 26.ts
'\u{10ffff_}'
// @filename: 27.ts
`\u{10ffff_}`
// @filename: 28.ts
/\u{10ffff_}/u
// @filename: 29.ts
"\uffff_"
// @filename: 30.ts
'\uffff_'
// @filename: 31.ts
`\uffff_`
// @filename: 32.ts
/\uffff_/u
// @filename: 33.ts
"\xff_"
// @filename: 34.ts
'\xff_'
// @filename: 35.ts
`\xff_`
// @filename: 36.ts
/\xff_/u
// @filename: 37.ts
"\u{10__ffff}"
// @filename: 38.ts
'\u{10__ffff}'
// @filename: 39.ts
`\u{10__ffff}`
// @filename: 40.ts
/\u{10__ffff}/u
// @filename: 41.ts
"\uff__ff"
// @filename: 42.ts
'\uff__ff'
// @filename: 43.ts
`\uff__ff`
// @filename: 44.ts
/\uff__ff/u
// @filename: 45.ts
"\xf__f"
// @filename: 46.ts
'\xf__f'
// @filename: 47.ts
`\xf__f`
// @filename: 48.ts
/\xf__f/u