Add tests for Numeric Separators and BigInt (#2252)

This commit is contained in:
Leo Balter 2019-07-23 02:02:22 -04:00 committed by GitHub
parent 1affd0ccd5
commit 2ee3864136
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
46 changed files with 1985 additions and 0 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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;