Tests for NumericSeparatorLiteral. Closes gh-1051

This commit is contained in:
Rick Waldron 2017-08-14 13:06:57 -04:00
parent eaffe8671c
commit 844e317ba6
52 changed files with 1466 additions and 0 deletions

View File

@ -0,0 +1,32 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not be the appear adjacent to `0b` | `0B` in a
BinaryIntegerLiteral
info: |
NumericLiteralSeparator ::
_
BinaryIntegerLiteral ::
0b BinaryDigits
0B BinaryDigits
BinaryDigits ::
BinaryDigit
BinaryDigits BinaryDigit
BinaryDigits NumericLiteralSeparator BinaryDigit
BinaryDigit :: one of
0 1
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
0b_1

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0b` | `0B` BinaryDigit NumericLiteralSeparator BinaryDigit
info: |
NumericLiteralSeparator ::
_
BinaryIntegerLiteral ::
0b BinaryDigits
0B BinaryDigits
BinaryDigits ::
BinaryDigit
BinaryDigits BinaryDigit
BinaryDigits NumericLiteralSeparator BinaryDigit
BinaryDigit :: one of
0 1
---*/
assert.sameValue(0b0_1, 0b01);
assert.sameValue(0B0_1, 0B01);

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0b` | `0B` BinaryDigit NumericLiteralSeparator BinaryDigit
info: |
NumericLiteralSeparator ::
_
BinaryIntegerLiteral ::
0b BinaryDigits
0B BinaryDigits
BinaryDigits ::
BinaryDigit
BinaryDigits BinaryDigit
BinaryDigits NumericLiteralSeparator BinaryDigit
BinaryDigit :: one of
0 1
---*/
assert.sameValue(0b0_10, 0b010);
assert.sameValue(0B0_10, 0B010);

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0b` | `0B` BinaryDigits NumericLiteralSeparator BinaryDigit
info: |
NumericLiteralSeparator ::
_
BinaryIntegerLiteral ::
0b BinaryDigits
0B BinaryDigits
BinaryDigits ::
BinaryDigit
BinaryDigits BinaryDigit
BinaryDigits NumericLiteralSeparator BinaryDigit
BinaryDigit :: one of
0 1
---*/
assert.sameValue(0b01_0, 0b010);
assert.sameValue(0B01_0, 0B010);

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0b` | `0B` BinaryDigits NumericLiteralSeparator BinaryDigit
info: |
NumericLiteralSeparator ::
_
BinaryIntegerLiteral ::
0b BinaryDigits
0B BinaryDigits
BinaryDigits ::
BinaryDigit
BinaryDigits BinaryDigit
BinaryDigits NumericLiteralSeparator BinaryDigit
BinaryDigit :: one of
0 1
---*/
assert.sameValue(0b01_00, 0b0100);
assert.sameValue(0B01_00, 0B0100);

View File

@ -0,0 +1,32 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not appear adjacent to another
NumericLiteralSeparator in a BinaryIntegerLiteral
info: |
NumericLiteralSeparator ::
_
BinaryIntegerLiteral ::
0b BinaryDigits
0B BinaryDigits
BinaryDigits ::
BinaryDigit
BinaryDigits BinaryDigit
BinaryDigits NumericLiteralSeparator BinaryDigit
BinaryDigit :: one of
0 1
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
0b0__0

View File

@ -0,0 +1,32 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not be the last digit character of a
BinaryIntegerLiteral
info: |
NumericLiteralSeparator ::
_
BinaryIntegerLiteral ::
0b BinaryDigits
0B BinaryDigits
BinaryDigits ::
BinaryDigit
BinaryDigits BinaryDigit
BinaryDigits NumericLiteralSeparator BinaryDigit
BinaryDigit :: one of
0 1
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
0b0_

View File

@ -0,0 +1,26 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
DecimalDigits `.` DecimalDigits ExponentPart_opt `-` DecimalDigits
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
SignedInteger ::
...
- DecimalDigits
...
---*/
assert.sameValue(1.0e-1_0, 1.0e-10);

View File

@ -0,0 +1,26 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
DecimalDigits `.` DecimalDigits ExponentPart_opt `-` DecimalDigits
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
SignedInteger ::
...
- DecimalDigits
...
---*/
assert.sameValue(1.0e-10_0, 1.0e-100);

View File

@ -0,0 +1,26 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
DecimalDigits `.` DecimalDigits ExponentPart_opt `+` DecimalDigits
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
SignedInteger ::
...
+ DecimalDigits
...
---*/
assert.sameValue(1.0e+1_0, 1.0e+10);

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
DecimalDigits `.` DecimalDigits ExponentPart_opt `+` DecimalDigits
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
SignedInteger ::
...
+ DecimalDigits
...
---*/
assert.sameValue(1.0e+10_0, 1.0e+100);

View File

@ -0,0 +1,34 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: NonZeroDigit NumericLiteralSeparator DecimalDigit
info: |
NumericLiteralSeparator ::
_
DecimalIntegerLiteral ::
...
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
DecimalDigits ::
DecimalDigit
...
DecimalDigit :: one of
0 1 2 3 4 5 6 7 8 9
---*/
assert.sameValue(1_0, 10);
assert.sameValue(1_1, 11);
assert.sameValue(1_2, 12);
assert.sameValue(1_3, 13);
assert.sameValue(1_4, 14);
assert.sameValue(1_5, 15);
assert.sameValue(1_6, 16);
assert.sameValue(1_7, 17);
assert.sameValue(1_8, 18);
assert.sameValue(1_9, 19);

View File

@ -0,0 +1,24 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not appear adjacent to another
NumericLiteralSeparator in a DecimalIntegerLiteral
info: |
NumericLiteralSeparator ::
_
DecimalIntegerLiteral ::
...
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
1__0123456789

View File

@ -0,0 +1,26 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not be the last digit character
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
1_

View File

@ -0,0 +1,25 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
DecimalDigits `.` DecimalDigits NumericLiteralSeparator DecimalDigits
ExponentPart SignedInteger
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
. DecimalDigits ExponentPart_opt
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
ExponentIndicator :: one of
e E
---*/
assert.sameValue(10.00_01e2, 10.0001e2);

View File

@ -0,0 +1,26 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: DecimalDigits NumericLiteralSeparator DecimalDigit
info: |
NumericLiteralSeparator ::
_
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
---*/
assert.sameValue(123456789_0, 1234567890);
assert.sameValue(123456789_1, 1234567891);
assert.sameValue(123456789_2, 1234567892);
assert.sameValue(123456789_3, 1234567893);
assert.sameValue(123456789_4, 1234567894);
assert.sameValue(123456789_5, 1234567895);
assert.sameValue(123456789_6, 1234567896);
assert.sameValue(123456789_7, 1234567897);
assert.sameValue(123456789_8, 1234567898);
assert.sameValue(123456789_9, 1234567899);

View File

@ -0,0 +1,24 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not appear adjacent to another
NumericLiteralSeparator in DecimalIntegerLiteral
info: |
NumericLiteralSeparator ::
_
DecimalIntegerLiteral ::
...
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
10__0123456789

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not be the last digit character of a
DecimalLiteral
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
10_

View File

@ -0,0 +1,26 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not appear adjacent to ExponentPart
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
10.0_e1

View File

@ -0,0 +1,29 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not appear between `.` and ExponentPart
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
ExponentIndicator :: one of
e E
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
10._e1

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not be the last digit character of a
DecimalLiteral
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
10._

View File

@ -0,0 +1,25 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`.` DecimalDigit NumericLiteralSeparator DecimalDigit ExponentPart
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
. DecimalDigits ExponentPart_opt
DecimalDigits ::
DecimalDigit
...
DecimalDigits NumericLiteralSeparator DecimalDigit
ExponentIndicator :: one of
e E
---*/
assert.sameValue(.0_1e2, .01e2);

View File

@ -0,0 +1,25 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`.` DecimalDigit NumericLiteralSeparator DecimalDigits ExponentPart
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
. DecimalDigits ExponentPart_opt
DecimalDigits ::
DecimalDigit
...
DecimalDigits NumericLiteralSeparator DecimalDigit
ExponentIndicator :: one of
e E
---*/
assert.sameValue(.1_01e2, .101e2);

View File

@ -0,0 +1,25 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`.` DecimalDigits NumericLiteralSeparator DecimalDigit ExponentPart
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
. DecimalDigits ExponentPart_opt
DecimalDigits ::
DecimalDigit
...
DecimalDigits NumericLiteralSeparator DecimalDigit
ExponentIndicator :: one of
e E
---*/
assert.sameValue(.10_1e2, .101e2);

View File

@ -0,0 +1,25 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`.` DecimalDigits NumericLiteralSeparator DecimalDigits ExponentPart
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
. DecimalDigits ExponentPart_opt
DecimalDigits ::
DecimalDigit
...
DecimalDigits NumericLiteralSeparator DecimalDigit
ExponentIndicator :: one of
e E
---*/
assert.sameValue(.00_01e2, .0001e2);

View File

@ -0,0 +1,28 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: NumericLiteralSeparator may not appear adjacent to ExponentPart
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
. DecimalDigits ExponentPart_opt
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
ExponentIndicator :: one of
e E
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
.0_e1

View File

@ -0,0 +1,29 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not appear between `.` and ExponentPart
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
. DecimalDigits ExponentPart_opt
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
ExponentIndicator :: one of
e E
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
._e1

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not be the last digit character of a
DecimalLiteral, nor adjacent to `.`
info: |
NumericLiteralSeparator ::
_
DecimalLiteral ::
. DecimalDigits ExponentPart_opt
DecimalDigits ::
...
DecimalDigits NumericLiteralSeparator DecimalDigit
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
._

View File

@ -0,0 +1,32 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not be the appear adjacent to `0x` | `0X` in a
HexIntegerLiteral
info: |
NumericLiteralSeparator ::
_
HexIntegerLiteral ::
0x HexDigits
0X HexDigits
HexDigits ::
HexDigit
HexDigits HexDigit
HexDigits NumericLiteralSeparator HexDigit
HexDigit::one of
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
0x_1

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0x` | `0X` HexDigit NumericLiteralSeparator HexDigit
info: |
NumericLiteralSeparator ::
_
HexIntegerLiteral ::
0x HexDigits
0X HexDigits
HexDigits ::
HexDigit
HexDigits HexDigit
HexDigits NumericLiteralSeparator HexDigit
HexDigit::one of
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
---*/
assert.sameValue(0x0_1, 0x01);
assert.sameValue(0X0_1, 0X01);

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0x` | `0X` HexDigit NumericLiteralSeparator HexDigit
info: |
NumericLiteralSeparator ::
_
HexIntegerLiteral ::
0x HexDigits
0X HexDigits
HexDigits ::
HexDigit
HexDigits HexDigit
HexDigits NumericLiteralSeparator HexDigit
HexDigit::one of
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
---*/
assert.sameValue(0x0_10, 0x010);
assert.sameValue(0X0_10, 0X010);

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0x` | `0X` HexDigits NumericLiteralSeparator HexDigit
info: |
NumericLiteralSeparator ::
_
HexIntegerLiteral ::
0x HexDigits
0X HexDigits
HexDigits ::
HexDigit
HexDigits HexDigit
HexDigits NumericLiteralSeparator HexDigit
HexDigit::one of
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
---*/
assert.sameValue(0x01_0, 0x010);
assert.sameValue(0X01_0, 0X010);

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0x` | `0X` HexDigits NumericLiteralSeparator HexDigit
info: |
NumericLiteralSeparator ::
_
HexIntegerLiteral ::
0x HexDigits
0X HexDigits
HexDigits ::
HexDigit
HexDigits HexDigit
HexDigits NumericLiteralSeparator HexDigit
HexDigit::one of
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
---*/
assert.sameValue(0x01_00, 0x0100);
assert.sameValue(0X01_00, 0X0100);

View File

@ -0,0 +1,32 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not appear adjacent to another
NumericLiteralSeparator in a HexIntegerLiteral
info: |
NumericLiteralSeparator ::
_
HexIntegerLiteral ::
0x HexDigits
0X HexDigits
HexDigits ::
HexDigit
HexDigits HexDigit
HexDigits NumericLiteralSeparator HexDigit
HexDigit::one of
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
0x0__0

View File

@ -0,0 +1,32 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not be the last digit character of a
HexIntegerLiteral
info: |
NumericLiteralSeparator ::
_
HexIntegerLiteral ::
0x HexDigits
0X HexDigits
HexDigits ::
HexDigit
HexDigits HexDigit
HexDigits NumericLiteralSeparator HexDigit
HexDigit::one of
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
0x0_

View File

@ -0,0 +1,47 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0x` | `0X` HexDigit NumericLiteralSeparator HexDigit
info: |
NumericLiteralSeparator ::
_
HexIntegerLiteral ::
0x HexDigits
0X HexDigits
HexDigits ::
HexDigit
HexDigits HexDigit
HexDigits NumericLiteralSeparator HexDigit
HexDigit::one of
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
---*/
assert.sameValue(0x0_0, 0x00);
assert.sameValue(0x1_1, 0x11);
assert.sameValue(0x2_2, 0x22);
assert.sameValue(0x3_3, 0x33);
assert.sameValue(0x4_4, 0x44);
assert.sameValue(0x5_5, 0x55);
assert.sameValue(0x6_6, 0x66);
assert.sameValue(0x7_7, 0x77);
assert.sameValue(0x8_8, 0x88);
assert.sameValue(0x9_9, 0x99);
assert.sameValue(0xa_a, 0xaa);
assert.sameValue(0xb_b, 0xbb);
assert.sameValue(0xc_c, 0xcc);
assert.sameValue(0xd_d, 0xdd);
assert.sameValue(0xe_e, 0xee);
assert.sameValue(0xf_f, 0xff);
assert.sameValue(0xA_A, 0xAA);
assert.sameValue(0xB_B, 0xBB);
assert.sameValue(0xC_C, 0xCC);
assert.sameValue(0xD_D, 0xDD);
assert.sameValue(0xE_E, 0xEE);
assert.sameValue(0xF_F, 0xFF);

View File

@ -0,0 +1,38 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: NonZeroDigit NumericLiteralSeparator DecimalDigit
info: |
NumericLiteralSeparator ::
_
DecimalIntegerLiteral ::
...
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
NonZeroDigit :: one of
1 2 3 4 5 6 7 8 9
DecimalDigits ::
DecimalDigit
...
DecimalDigit :: one of
0 1 2 3 4 5 6 7 8 9
---*/
assert.sameValue(1_0, 10);
assert.sameValue(1_1, 11);
assert.sameValue(2_2, 22);
assert.sameValue(3_3, 33);
assert.sameValue(4_4, 44);
assert.sameValue(5_5, 55);
assert.sameValue(6_6, 66);
assert.sameValue(7_7, 77);
assert.sameValue(8_8, 88);
assert.sameValue(9_9, 99);

View File

@ -0,0 +1,25 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: NonZeroDigit NumericLiteralSeparator DecimalDigit
info: |
NumericLiteralSeparator ::
_
DecimalIntegerLiteral ::
...
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
NonZeroDigit :: one of
1 2 3 4 5 6 7 8 9
DecimalDigits ::
...
DecimalDigits DecimalDigit
...
---*/
assert.sameValue(1_1, 11);

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not appear adjacent to another
NumericLiteralSeparator in DecimalIntegerLiteral
info: |
NumericLiteralSeparator ::
_
DecimalIntegerLiteral ::
...
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
NonZeroDigit :: one of
1 2 3 4 5 6 7 8 9
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
0__0123456789

View File

@ -0,0 +1,25 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: NonZeroDigit NumericLiteralSeparator DecimalDigits
info: |
NumericLiteralSeparator ::
_
DecimalIntegerLiteral ::
...
NonZeroDigit NumericLiteralSeparator DecimalDigits
NonZeroDigit :: one of
1 2 3 4 5 6 7 8 9
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
0_0123456789

View File

@ -0,0 +1,25 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: NonZeroDigit NumericLiteralSeparator DecimalDigits
info: |
NumericLiteralSeparator ::
_
DecimalIntegerLiteral ::
...
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
NonZeroDigit :: one of
1 2 3 4 5 6 7 8 9
DecimalDigits ::
...
DecimalDigits DecimalDigit
...
---*/
assert.sameValue(1_0123456789, 10123456789);

View File

@ -0,0 +1,32 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not appear adjacent to another
NumericLiteralSeparator in a OctalIntegerLiteral
info: |
NumericLiteralSeparator ::
_
OctalIntegerLiteral ::
0o OctalDigits
0O OctalDigits
OctalDigits ::
OctalDigit
OctalDigits OctalDigit
OctalDigits NumericLiteralSeparator OctalDigit
OctalDigit :: one of
0 1 2 3 4 5 6 7
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
0o0__0

View File

@ -0,0 +1,32 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not be the last digit character of an
OctalIntegerLiteral
info: |
NumericLiteralSeparator ::
_
OctalIntegerLiteral ::
0o OctalDigits
0O OctalDigits
OctalDigits ::
OctalDigit
OctalDigits OctalDigit
OctalDigits NumericLiteralSeparator OctalDigit
OctalDigit :: one of
0 1 2 3 4 5 6 7
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
0o0_

View File

@ -0,0 +1,32 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NumericLiteralSeparator may not be the appear adjacent to `0o` | `0O` in a
OctalIntegerLiteral
info: |
NumericLiteralSeparator ::
_
OctalIntegerLiteral ::
0o OctalDigits
0O OctalDigits
OctalDigits ::
OctalDigit
OctalDigits OctalDigit
OctalDigits NumericLiteralSeparator OctalDigit
OctalDigit :: one of
0 1 2 3 4 5 6 7
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
0o_1

View File

@ -0,0 +1,33 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0o` | `0O` OctalDigit NumericLiteralSeparator OctalDigit
info: |
NumericLiteralSeparator ::
_
OctalIntegerLiteral ::
0o OctalDigits
0O OctalDigits
OctalDigits ::
OctalDigit
OctalDigits OctalDigit
OctalDigits NumericLiteralSeparator OctalDigit
OctalDigit :: one of
0 1 2 3 4 5 6 7
---*/
assert.sameValue(0o0_0, 0o00);
assert.sameValue(0o1_1, 0o11);
assert.sameValue(0o2_2, 0o22);
assert.sameValue(0o3_3, 0o33);
assert.sameValue(0o4_4, 0o44);
assert.sameValue(0o5_5, 0o55);
assert.sameValue(0o6_6, 0o66);
assert.sameValue(0o7_7, 0o77);

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0o` | `0O` OctalDigit NumericLiteralSeparator OctalDigit
info: |
NumericLiteralSeparator ::
_
OctalIntegerLiteral ::
0o OctalDigits
0O OctalDigits
OctalDigits ::
OctalDigit
OctalDigits OctalDigit
OctalDigits NumericLiteralSeparator OctalDigit
OctalDigit :: one of
0 1 2 3 4 5 6 7
---*/
assert.sameValue(0o0_1, 0o01);
assert.sameValue(0O0_1, 0O01);

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0o` | `0O` OctalDigit NumericLiteralSeparator OctalDigit
info: |
NumericLiteralSeparator ::
_
OctalIntegerLiteral ::
0o OctalDigits
0O OctalDigits
OctalDigits ::
OctalDigit
OctalDigits OctalDigit
OctalDigits NumericLiteralSeparator OctalDigit
OctalDigit :: one of
0 1 2 3 4 5 6 7
---*/
assert.sameValue(0o0_10, 0o010);
assert.sameValue(0O0_10, 0O010);

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0o` | `0O` OctalDigits NumericLiteralSeparator OctalDigit
info: |
NumericLiteralSeparator ::
_
OctalIntegerLiteral ::
0o OctalDigits
0O OctalDigits
OctalDigits ::
OctalDigit
OctalDigits OctalDigit
OctalDigits NumericLiteralSeparator OctalDigit
OctalDigit :: one of
0 1 2 3 4 5 6 7
---*/
assert.sameValue(0o01_0, 0o010);
assert.sameValue(0O01_0, 0O010);

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
`0o` | `0O` OctalDigits NumericLiteralSeparator OctalDigit
info: |
NumericLiteralSeparator ::
_
OctalIntegerLiteral ::
0o OctalDigits
0O OctalDigits
OctalDigits ::
OctalDigit
OctalDigits OctalDigit
OctalDigits NumericLiteralSeparator OctalDigit
OctalDigit :: one of
0 1 2 3 4 5 6 7
---*/
assert.sameValue(0o01_00, 0o0100);
assert.sameValue(0O01_00, 0O0100);

View File

@ -0,0 +1,26 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: DecimalDigits NumericLiteralSeparator DecimalDigit
info: |
NumericLiteralSeparator ::
_
SignedInteger ::
...
- DecimalDigits
---*/
assert.sameValue(-123456789_0, -1234567890);
assert.sameValue(-123456789_1, -1234567891);
assert.sameValue(-123456789_2, -1234567892);
assert.sameValue(-123456789_3, -1234567893);
assert.sameValue(-123456789_4, -1234567894);
assert.sameValue(-123456789_5, -1234567895);
assert.sameValue(-123456789_6, -1234567896);
assert.sameValue(-123456789_7, -1234567897);
assert.sameValue(-123456789_8, -1234567898);
assert.sameValue(-123456789_9, -1234567899);

View File

@ -0,0 +1,27 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: DecimalDigits NumericLiteralSeparator DecimalDigit
info: |
NumericLiteralSeparator ::
_
SignedInteger ::
...
+ DecimalDigits
...
---*/
assert.sameValue(+123456789_0, 1234567890);
assert.sameValue(+123456789_1, 1234567891);
assert.sameValue(+123456789_2, 1234567892);
assert.sameValue(+123456789_3, 1234567893);
assert.sameValue(+123456789_4, 1234567894);
assert.sameValue(+123456789_5, 1234567895);
assert.sameValue(+123456789_6, 1234567896);
assert.sameValue(+123456789_7, 1234567897);
assert.sameValue(+123456789_8, 1234567898);
assert.sameValue(+123456789_9, 1234567899);

View File

@ -0,0 +1,24 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-NumericLiteralSeparator
description: >
NonZeroDigit NumericLiteralSeparator DecimalDigits sequence expressed with
unicode escape sequence
info: |
NumericLiteralSeparator::
_
DecimalIntegerLiteral::
...
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
negative:
phase: early
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
1\u005F0123456789