mirror of
https://github.com/tc39/test262.git
synced 2025-07-27 16:04:36 +02:00
Add tests for Numeric Separators and BigInt (#2252)
This commit is contained in:
parent
1affd0ccd5
commit
2ee3864136
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
BinaryIntegerLiteral ::
|
||||||
|
0b BinaryDigits
|
||||||
|
0B BinaryDigits
|
||||||
|
|
||||||
|
BinaryDigits ::
|
||||||
|
BinaryDigit
|
||||||
|
BinaryDigits BinaryDigit
|
||||||
|
BinaryDigits NumericLiteralSeparator BinaryDigit
|
||||||
|
|
||||||
|
BinaryDigit :: one of
|
||||||
|
0 1
|
||||||
|
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0b_1n;
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
BinaryIntegerLiteral ::
|
||||||
|
0b BinaryDigits
|
||||||
|
0B BinaryDigits
|
||||||
|
|
||||||
|
BinaryDigits ::
|
||||||
|
BinaryDigit
|
||||||
|
BinaryDigits BinaryDigit
|
||||||
|
BinaryDigits NumericLiteralSeparator BinaryDigit
|
||||||
|
|
||||||
|
BinaryDigit :: one of
|
||||||
|
0 1
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0b0_1n, 0b01n);
|
||||||
|
assert.sameValue(0B0_1n, 0B01n);
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
BinaryIntegerLiteral ::
|
||||||
|
0b BinaryDigits
|
||||||
|
0B BinaryDigits
|
||||||
|
|
||||||
|
BinaryDigits ::
|
||||||
|
BinaryDigit
|
||||||
|
BinaryDigits BinaryDigit
|
||||||
|
BinaryDigits NumericLiteralSeparator BinaryDigit
|
||||||
|
|
||||||
|
BinaryDigit :: one of
|
||||||
|
0 1
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0b0_10n, 0b010n);
|
||||||
|
assert.sameValue(0B0_10n, 0B010n);
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
BinaryIntegerLiteral ::
|
||||||
|
0b BinaryDigits
|
||||||
|
0B BinaryDigits
|
||||||
|
|
||||||
|
BinaryDigits ::
|
||||||
|
BinaryDigit
|
||||||
|
BinaryDigits BinaryDigit
|
||||||
|
BinaryDigits NumericLiteralSeparator BinaryDigit
|
||||||
|
|
||||||
|
BinaryDigit :: one of
|
||||||
|
0 1
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0b01_0n, 0b010n);
|
||||||
|
assert.sameValue(0B01_0n, 0B010n);
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
BinaryIntegerLiteral ::
|
||||||
|
0b BinaryDigits
|
||||||
|
0B BinaryDigits
|
||||||
|
|
||||||
|
BinaryDigits ::
|
||||||
|
BinaryDigit
|
||||||
|
BinaryDigits BinaryDigit
|
||||||
|
BinaryDigits NumericLiteralSeparator BinaryDigit
|
||||||
|
|
||||||
|
BinaryDigit :: one of
|
||||||
|
0 1
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0b01_00n, 0b0100n);
|
||||||
|
assert.sameValue(0B01_00n, 0B0100n);
|
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
BinaryIntegerLiteral ::
|
||||||
|
0b BinaryDigits
|
||||||
|
0B BinaryDigits
|
||||||
|
|
||||||
|
BinaryDigits ::
|
||||||
|
BinaryDigit
|
||||||
|
BinaryDigits BinaryDigit
|
||||||
|
BinaryDigits NumericLiteralSeparator BinaryDigit
|
||||||
|
|
||||||
|
BinaryDigit :: one of
|
||||||
|
0 1
|
||||||
|
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0b0__0n;
|
@ -0,0 +1,43 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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 (before n)
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
BinaryIntegerLiteral ::
|
||||||
|
0b BinaryDigits
|
||||||
|
0B BinaryDigits
|
||||||
|
|
||||||
|
BinaryDigits ::
|
||||||
|
BinaryDigit
|
||||||
|
BinaryDigits BinaryDigit
|
||||||
|
BinaryDigits NumericLiteralSeparator BinaryDigit
|
||||||
|
|
||||||
|
BinaryDigit :: one of
|
||||||
|
0 1
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0b0_n;
|
@ -0,0 +1,46 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: NonZeroDigit NumericLiteralSeparator DecimalDigit
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
...
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
|
||||||
|
|
||||||
|
DecimalDigits ::
|
||||||
|
DecimalDigit
|
||||||
|
...
|
||||||
|
|
||||||
|
DecimalDigit :: one of
|
||||||
|
0 1 2 3 4 5 6 7 8 9
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(1_0n, 10n);
|
||||||
|
assert.sameValue(1_1n, 11n);
|
||||||
|
assert.sameValue(1_2n, 12n);
|
||||||
|
assert.sameValue(1_3n, 13n);
|
||||||
|
assert.sameValue(1_4n, 14n);
|
||||||
|
assert.sameValue(1_5n, 15n);
|
||||||
|
assert.sameValue(1_6n, 16n);
|
||||||
|
assert.sameValue(1_7n, 17n);
|
||||||
|
assert.sameValue(1_8n, 18n);
|
||||||
|
assert.sameValue(1_9n, 19n);
|
@ -0,0 +1,36 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
...
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
1__0123456789n;
|
@ -0,0 +1,38 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalLiteral ::
|
||||||
|
DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt
|
||||||
|
|
||||||
|
DecimalDigits ::
|
||||||
|
...
|
||||||
|
DecimalDigits NumericLiteralSeparator DecimalDigit
|
||||||
|
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
1_n;
|
@ -0,0 +1,38 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: DecimalDigits NumericLiteralSeparator DecimalDigit
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalDigits ::
|
||||||
|
...
|
||||||
|
DecimalDigits NumericLiteralSeparator DecimalDigit
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(123456789_0n, 1234567890n);
|
||||||
|
assert.sameValue(123456789_1n, 1234567891n);
|
||||||
|
assert.sameValue(123456789_2n, 1234567892n);
|
||||||
|
assert.sameValue(123456789_3n, 1234567893n);
|
||||||
|
assert.sameValue(123456789_4n, 1234567894n);
|
||||||
|
assert.sameValue(123456789_5n, 1234567895n);
|
||||||
|
assert.sameValue(123456789_6n, 1234567896n);
|
||||||
|
assert.sameValue(123456789_7n, 1234567897n);
|
||||||
|
assert.sameValue(123456789_8n, 1234567898n);
|
||||||
|
assert.sameValue(123456789_9n, 1234567899n);
|
@ -0,0 +1,36 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
...
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
10__0123456789n;
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalLiteral ::
|
||||||
|
DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt
|
||||||
|
|
||||||
|
DecimalDigits ::
|
||||||
|
...
|
||||||
|
DecimalDigits NumericLiteralSeparator DecimalDigit
|
||||||
|
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
10_n;
|
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
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: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0x_1n;
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0x0_1n, 0x01n);
|
||||||
|
assert.sameValue(0X0_1n, 0X01n);
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0x0_10n, 0x010n);
|
||||||
|
assert.sameValue(0X0_10n, 0X010n);
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0x01_0n, 0x010n);
|
||||||
|
assert.sameValue(0X01_0n, 0X010n);
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0x01_00n, 0x0100n);
|
||||||
|
assert.sameValue(0X01_00n, 0X0100n);
|
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
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: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0x0__0n;
|
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
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: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0x0_n;
|
@ -0,0 +1,59 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0x0_0n, 0x00n);
|
||||||
|
assert.sameValue(0x1_1n, 0x11n);
|
||||||
|
assert.sameValue(0x2_2n, 0x22n);
|
||||||
|
assert.sameValue(0x3_3n, 0x33n);
|
||||||
|
assert.sameValue(0x4_4n, 0x44n);
|
||||||
|
assert.sameValue(0x5_5n, 0x55n);
|
||||||
|
assert.sameValue(0x6_6n, 0x66n);
|
||||||
|
assert.sameValue(0x7_7n, 0x77n);
|
||||||
|
assert.sameValue(0x8_8n, 0x88n);
|
||||||
|
assert.sameValue(0x9_9n, 0x99n);
|
||||||
|
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);
|
@ -0,0 +1,52 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: >
|
||||||
|
NumericLiteralSeparator must not be in a LegacyOctalLikeDecimalIntegerLiteral (00_0)
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
0
|
||||||
|
NonZeroDigit DecimalDigitsopt
|
||||||
|
NonZeroDigit
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
NonOctalDecimalIntegerLiteral
|
||||||
|
|
||||||
|
NonOctalDecimalIntegerLiteral ::
|
||||||
|
0 NonOctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit
|
||||||
|
NonOctalDecimalIntegerLiteral DecimalDigit
|
||||||
|
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral ::
|
||||||
|
0 OctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral OctalDigit
|
||||||
|
|
||||||
|
NonOctalDigit::one of
|
||||||
|
8 9
|
||||||
|
|
||||||
|
OctalDigit::one of
|
||||||
|
0 1 2 3 4 5 6 7
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
00_0n;
|
@ -0,0 +1,52 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: >
|
||||||
|
NumericLiteralSeparator must not be in a LegacyOctalLikeDecimalIntegerLiteral (01_0)
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
0
|
||||||
|
NonZeroDigit DecimalDigitsopt
|
||||||
|
NonZeroDigit
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
NonOctalDecimalIntegerLiteral
|
||||||
|
|
||||||
|
NonOctalDecimalIntegerLiteral ::
|
||||||
|
0 NonOctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit
|
||||||
|
NonOctalDecimalIntegerLiteral DecimalDigit
|
||||||
|
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral ::
|
||||||
|
0 OctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral OctalDigit
|
||||||
|
|
||||||
|
NonOctalDigit::one of
|
||||||
|
8 9
|
||||||
|
|
||||||
|
OctalDigit::one of
|
||||||
|
0 1 2 3 4 5 6 7
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
01_0n;
|
@ -0,0 +1,54 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: >
|
||||||
|
NumericLiteralSeparator must not be in a LegacyOctalLikeDecimalIntegerLiteral (07_0)
|
||||||
|
)
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
0
|
||||||
|
NonZeroDigit DecimalDigitsopt
|
||||||
|
NonZeroDigit
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
NonOctalDecimalIntegerLiteral
|
||||||
|
|
||||||
|
NonOctalDecimalIntegerLiteral ::
|
||||||
|
0 NonOctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit
|
||||||
|
NonOctalDecimalIntegerLiteral DecimalDigit
|
||||||
|
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral ::
|
||||||
|
0 OctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral OctalDigit
|
||||||
|
|
||||||
|
NonOctalDigit::one of
|
||||||
|
8 9
|
||||||
|
|
||||||
|
OctalDigit::one of
|
||||||
|
0 1 2 3 4 5 6 7
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
07_0n;
|
@ -0,0 +1,52 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: >
|
||||||
|
NumericLiteralSeparator must not be in a LegacyOctalLikeDecimalIntegerLiteral (0_0)
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
0
|
||||||
|
NonZeroDigit DecimalDigitsopt
|
||||||
|
NonZeroDigit
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
NonOctalDecimalIntegerLiteral
|
||||||
|
|
||||||
|
NonOctalDecimalIntegerLiteral ::
|
||||||
|
0 NonOctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit
|
||||||
|
NonOctalDecimalIntegerLiteral DecimalDigit
|
||||||
|
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral ::
|
||||||
|
0 OctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral OctalDigit
|
||||||
|
|
||||||
|
NonOctalDigit::one of
|
||||||
|
8 9
|
||||||
|
|
||||||
|
OctalDigit::one of
|
||||||
|
0 1 2 3 4 5 6 7
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0_0n;
|
@ -0,0 +1,52 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: >
|
||||||
|
NumericLiteralSeparator must not be in a LegacyOctalLikeDecimalIntegerLiteral (0_1)
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
0
|
||||||
|
NonZeroDigit DecimalDigitsopt
|
||||||
|
NonZeroDigit
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
NonOctalDecimalIntegerLiteral
|
||||||
|
|
||||||
|
NonOctalDecimalIntegerLiteral ::
|
||||||
|
0 NonOctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit
|
||||||
|
NonOctalDecimalIntegerLiteral DecimalDigit
|
||||||
|
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral ::
|
||||||
|
0 OctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral OctalDigit
|
||||||
|
|
||||||
|
NonOctalDigit::one of
|
||||||
|
8 9
|
||||||
|
|
||||||
|
OctalDigit::one of
|
||||||
|
0 1 2 3 4 5 6 7
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0_1n;
|
@ -0,0 +1,53 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: >
|
||||||
|
NumericLiteralSeparator must not be in a LegacyOctalLikeDecimalIntegerLiteral (0_7)
|
||||||
|
)
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
0
|
||||||
|
NonZeroDigit DecimalDigitsopt
|
||||||
|
NonZeroDigit
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
NonOctalDecimalIntegerLiteral
|
||||||
|
|
||||||
|
NonOctalDecimalIntegerLiteral ::
|
||||||
|
0 NonOctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit
|
||||||
|
NonOctalDecimalIntegerLiteral DecimalDigit
|
||||||
|
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral ::
|
||||||
|
0 OctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral OctalDigit
|
||||||
|
|
||||||
|
NonOctalDigit::one of
|
||||||
|
8 9
|
||||||
|
|
||||||
|
OctalDigit::one of
|
||||||
|
0 1 2 3 4 5 6 7
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0_7n;
|
@ -0,0 +1,49 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: >
|
||||||
|
NumericLiteralSeparator must not be in a NonOctalDecimalIntegerLiteral (08)
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
0
|
||||||
|
NonZeroDigit DecimalDigitsopt
|
||||||
|
NonZeroDigit
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
NonOctalDecimalIntegerLiteral
|
||||||
|
|
||||||
|
NonOctalDecimalIntegerLiteral ::
|
||||||
|
0 NonOctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit
|
||||||
|
NonOctalDecimalIntegerLiteral DecimalDigit
|
||||||
|
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral ::
|
||||||
|
0 OctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral OctalDigit
|
||||||
|
|
||||||
|
NonOctalDigit::one of
|
||||||
|
8 9
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
08_0n;
|
@ -0,0 +1,49 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: >
|
||||||
|
NumericLiteralSeparator must not be in a NonOctalDecimalIntegerLiteral (09)
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
0
|
||||||
|
NonZeroDigit DecimalDigitsopt
|
||||||
|
NonZeroDigit
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
NonOctalDecimalIntegerLiteral
|
||||||
|
|
||||||
|
NonOctalDecimalIntegerLiteral ::
|
||||||
|
0 NonOctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit
|
||||||
|
NonOctalDecimalIntegerLiteral DecimalDigit
|
||||||
|
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral ::
|
||||||
|
0 OctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral OctalDigit
|
||||||
|
|
||||||
|
NonOctalDigit::one of
|
||||||
|
8 9
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
09_0n;
|
@ -0,0 +1,49 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: >
|
||||||
|
NumericLiteralSeparator must not be in a NonOctalDecimalIntegerLiteral (0_8)
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
0
|
||||||
|
NonZeroDigit DecimalDigitsopt
|
||||||
|
NonZeroDigit
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
NonOctalDecimalIntegerLiteral
|
||||||
|
|
||||||
|
NonOctalDecimalIntegerLiteral ::
|
||||||
|
0 NonOctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit
|
||||||
|
NonOctalDecimalIntegerLiteral DecimalDigit
|
||||||
|
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral ::
|
||||||
|
0 OctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral OctalDigit
|
||||||
|
|
||||||
|
NonOctalDigit::one of
|
||||||
|
8 9
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0_8n;
|
@ -0,0 +1,49 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: >
|
||||||
|
NumericLiteralSeparator must not be in a NonOctalDecimalIntegerLiteral (0_9)
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
0
|
||||||
|
NonZeroDigit DecimalDigitsopt
|
||||||
|
NonZeroDigit
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
NonOctalDecimalIntegerLiteral
|
||||||
|
|
||||||
|
NonOctalDecimalIntegerLiteral ::
|
||||||
|
0 NonOctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral NonOctalDigit
|
||||||
|
NonOctalDecimalIntegerLiteral DecimalDigit
|
||||||
|
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral ::
|
||||||
|
0 OctalDigit
|
||||||
|
LegacyOctalLikeDecimalIntegerLiteral OctalDigit
|
||||||
|
|
||||||
|
NonOctalDigit::one of
|
||||||
|
8 9
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0_9n;
|
@ -0,0 +1,50 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: NonZeroDigit NumericLiteralSeparator DecimalDigit
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(1_0n, 10n);
|
||||||
|
assert.sameValue(1_1n, 11n);
|
||||||
|
assert.sameValue(2_2n, 22n);
|
||||||
|
assert.sameValue(3_3n, 33n);
|
||||||
|
assert.sameValue(4_4n, 44n);
|
||||||
|
assert.sameValue(5_5n, 55n);
|
||||||
|
assert.sameValue(6_6n, 66n);
|
||||||
|
assert.sameValue(7_7n, 77n);
|
||||||
|
assert.sameValue(8_8n, 88n);
|
||||||
|
assert.sameValue(9_9n, 99n);
|
||||||
|
|
||||||
|
|
@ -0,0 +1,37 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: NonZeroDigit NumericLiteralSeparator DecimalDigit
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
...
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
|
||||||
|
NonZeroDigit :: one of
|
||||||
|
1 2 3 4 5 6 7 8 9
|
||||||
|
|
||||||
|
DecimalDigits ::
|
||||||
|
...
|
||||||
|
DecimalDigits DecimalDigit
|
||||||
|
...
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(1_1n, 11n);
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
...
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
|
||||||
|
NonZeroDigit :: one of
|
||||||
|
1 2 3 4 5 6 7 8 9
|
||||||
|
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0__0123456789n;
|
@ -0,0 +1,37 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: NonZeroDigit NumericLiteralSeparator DecimalDigits
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
...
|
||||||
|
NonZeroDigit NumericLiteralSeparator DecimalDigits
|
||||||
|
|
||||||
|
NonZeroDigit :: one of
|
||||||
|
1 2 3 4 5 6 7 8 9
|
||||||
|
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0_0123456789n;
|
@ -0,0 +1,37 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: NonZeroDigit NumericLiteralSeparator DecimalDigits
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral ::
|
||||||
|
...
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
|
||||||
|
NonZeroDigit :: one of
|
||||||
|
1 2 3 4 5 6 7 8 9
|
||||||
|
|
||||||
|
DecimalDigits ::
|
||||||
|
...
|
||||||
|
DecimalDigits DecimalDigit
|
||||||
|
...
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(1_0123456789n, 10123456789n);
|
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
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: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0o0__0n;
|
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
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: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0o0_n;
|
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
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: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
0o_1n;
|
@ -0,0 +1,45 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
OctalIntegerLiteral ::
|
||||||
|
0o OctalDigits
|
||||||
|
0O OctalDigits
|
||||||
|
|
||||||
|
OctalDigits ::
|
||||||
|
OctalDigit
|
||||||
|
OctalDigits OctalDigit
|
||||||
|
OctalDigits NumericLiteralSeparator OctalDigit
|
||||||
|
|
||||||
|
OctalDigit :: one of
|
||||||
|
0 1 2 3 4 5 6 7
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0o0_0n, 0o00n);
|
||||||
|
assert.sameValue(0o1_1n, 0o11n);
|
||||||
|
assert.sameValue(0o2_2n, 0o22n);
|
||||||
|
assert.sameValue(0o3_3n, 0o33n);
|
||||||
|
assert.sameValue(0o4_4n, 0o44n);
|
||||||
|
assert.sameValue(0o5_5n, 0o55n);
|
||||||
|
assert.sameValue(0o6_6n, 0o66n);
|
||||||
|
assert.sameValue(0o7_7n, 0o77n);
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
OctalIntegerLiteral ::
|
||||||
|
0o OctalDigits
|
||||||
|
0O OctalDigits
|
||||||
|
|
||||||
|
OctalDigits ::
|
||||||
|
OctalDigit
|
||||||
|
OctalDigits OctalDigit
|
||||||
|
OctalDigits NumericLiteralSeparator OctalDigit
|
||||||
|
|
||||||
|
OctalDigit :: one of
|
||||||
|
0 1 2 3 4 5 6 7
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0o0_1n, 0o01n);
|
||||||
|
assert.sameValue(0O0_1n, 0O01n);
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
OctalIntegerLiteral ::
|
||||||
|
0o OctalDigits
|
||||||
|
0O OctalDigits
|
||||||
|
|
||||||
|
OctalDigits ::
|
||||||
|
OctalDigit
|
||||||
|
OctalDigits OctalDigit
|
||||||
|
OctalDigits NumericLiteralSeparator OctalDigit
|
||||||
|
|
||||||
|
OctalDigit :: one of
|
||||||
|
0 1 2 3 4 5 6 7
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0o0_10n, 0o010n);
|
||||||
|
assert.sameValue(0O0_10n, 0O010n);
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
OctalIntegerLiteral ::
|
||||||
|
0o OctalDigits
|
||||||
|
0O OctalDigits
|
||||||
|
|
||||||
|
OctalDigits ::
|
||||||
|
OctalDigit
|
||||||
|
OctalDigits OctalDigit
|
||||||
|
OctalDigits NumericLiteralSeparator OctalDigit
|
||||||
|
|
||||||
|
OctalDigit :: one of
|
||||||
|
0 1 2 3 4 5 6 7
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0o01_0n, 0o010n);
|
||||||
|
assert.sameValue(0O01_0n, 0O010n);
|
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
OctalIntegerLiteral ::
|
||||||
|
0o OctalDigits
|
||||||
|
0O OctalDigits
|
||||||
|
|
||||||
|
OctalDigits ::
|
||||||
|
OctalDigit
|
||||||
|
OctalDigits OctalDigit
|
||||||
|
OctalDigits NumericLiteralSeparator OctalDigit
|
||||||
|
|
||||||
|
OctalDigit :: one of
|
||||||
|
0 1 2 3 4 5 6 7
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(0o01_00n, 0o0100n);
|
||||||
|
assert.sameValue(0O01_00n, 0O0100n);
|
@ -0,0 +1,38 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-NumericLiteralSeparator
|
||||||
|
description: DecimalDigits NumericLiteralSeparator DecimalDigit
|
||||||
|
info: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator ::
|
||||||
|
_
|
||||||
|
|
||||||
|
SignedInteger ::
|
||||||
|
...
|
||||||
|
- DecimalDigits
|
||||||
|
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(-123456789_0n, -1234567890n);
|
||||||
|
assert.sameValue(-123456789_1n, -1234567891n);
|
||||||
|
assert.sameValue(-123456789_2n, -1234567892n);
|
||||||
|
assert.sameValue(-123456789_3n, -1234567893n);
|
||||||
|
assert.sameValue(-123456789_4n, -1234567894n);
|
||||||
|
assert.sameValue(-123456789_5n, -1234567895n);
|
||||||
|
assert.sameValue(-123456789_6n, -1234567896n);
|
||||||
|
assert.sameValue(-123456789_7n, -1234567897n);
|
||||||
|
assert.sameValue(-123456789_8n, -1234567898n);
|
||||||
|
assert.sameValue(-123456789_9n, -1234567899n);
|
@ -0,0 +1,36 @@
|
|||||||
|
// Copyright (C) 2019 Leo Balter. 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: |
|
||||||
|
NumericLiteral ::
|
||||||
|
DecimalIntegerLiteral BigIntLiteralSuffix
|
||||||
|
NumericLiteralBase BigIntLiteralSuffix
|
||||||
|
|
||||||
|
NumericLiteralBase ::
|
||||||
|
BinaryIntegerLiteral
|
||||||
|
OctalIntegerLiteral
|
||||||
|
HexIntegerLiteral
|
||||||
|
|
||||||
|
BigIntLiteralSuffix :: n
|
||||||
|
|
||||||
|
NumericLiteralSeparator::
|
||||||
|
_
|
||||||
|
|
||||||
|
DecimalIntegerLiteral::
|
||||||
|
...
|
||||||
|
NonZeroDigit NumericLiteralSeparator_opt DecimalDigits
|
||||||
|
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
features: [BigInt, numeric-separator-literal]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
1\u005F0123456789n;
|
Loading…
x
Reference in New Issue
Block a user