mirror of
https://github.com/tc39/test262.git
synced 2025-04-08 19:35:28 +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