diff --git a/test/built-ins/Number/string-numeric-separator-literal-bil-bd-nsl-bd.js b/test/built-ins/Number/string-numeric-separator-literal-bil-bd-nsl-bd.js new file mode 100644 index 0000000000..748c90a1e1 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-bil-bd-nsl-bd.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0b` | `0B` BinaryDigit NumericLiteralSeparator BinaryDigit +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +---*/ + +assert.sameValue(Number("0b0_1"), 0b01); +assert.sameValue(Number("0B0_1"), 0B01); diff --git a/test/built-ins/Number/string-numeric-separator-literal-bil-bd-nsl-bds.js b/test/built-ins/Number/string-numeric-separator-literal-bil-bd-nsl-bds.js new file mode 100644 index 0000000000..71dca2627d --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-bil-bd-nsl-bds.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0b` | `0B` BinaryDigit NumericLiteralSeparator BinaryDigit +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +---*/ + +assert.sameValue(Number("0b0_10"), 0b010); +assert.sameValue(Number("0B0_10"), 0B010); diff --git a/test/built-ins/Number/string-numeric-separator-literal-bil-bds-nsl-bd.js b/test/built-ins/Number/string-numeric-separator-literal-bil-bds-nsl-bd.js new file mode 100644 index 0000000000..0b875e4af3 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-bil-bds-nsl-bd.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0b` | `0B` BinaryDigits NumericLiteralSeparator BinaryDigit +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +---*/ + +assert.sameValue(Number("0b01_0"), 0b010); +assert.sameValue(Number("0B01_0"), 0B010); diff --git a/test/built-ins/Number/string-numeric-separator-literal-bil-bds-nsl-bds.js b/test/built-ins/Number/string-numeric-separator-literal-bil-bds-nsl-bds.js new file mode 100644 index 0000000000..09e40465c6 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-bil-bds-nsl-bds.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0b` | `0B` BinaryDigits NumericLiteralSeparator BinaryDigit +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +---*/ + +assert.sameValue(Number("0b01_00"), 0b0100); +assert.sameValue(Number("0B01_00"), 0B0100); diff --git a/test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js b/test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js new file mode 100644 index 0000000000..3ec1c859a8 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js @@ -0,0 +1,26 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + DecimalDigits `.` DecimalDigits ExponentPart_opt `-` DecimalDigits +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + SignedInteger :: + ... + - DecimalDigits + ... + +---*/ + +assert.sameValue(Number("1.0e-1_0"), 1.0e-10); diff --git a/test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js b/test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js new file mode 100644 index 0000000000..489e27e287 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js @@ -0,0 +1,26 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + DecimalDigits `.` DecimalDigits ExponentPart_opt `-` DecimalDigits +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + SignedInteger :: + ... + - DecimalDigits + ... + +---*/ + +assert.sameValue(Number("1.0e-10_0"), 1.0e-100); diff --git a/test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js b/test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js new file mode 100644 index 0000000000..de2f3b67bd --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js @@ -0,0 +1,26 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + DecimalDigits `.` DecimalDigits ExponentPart_opt `+` DecimalDigits +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + SignedInteger :: + ... + + DecimalDigits + ... + +---*/ + +assert.sameValue(Number("1.0e+1_0"), 1.0e+10); diff --git a/test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js b/test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js new file mode 100644 index 0000000000..dc1b9fa34c --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + DecimalDigits `.` DecimalDigits ExponentPart_opt `+` DecimalDigits +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + SignedInteger :: + ... + + DecimalDigits + ... + +---*/ + +assert.sameValue(Number("1.0e+10_0"), 1.0e+100); + diff --git a/test/built-ins/Number/string-numeric-separator-literal-dd-nsl-dd-one-of.js b/test/built-ins/Number/string-numeric-separator-literal-dd-nsl-dd-one-of.js new file mode 100644 index 0000000000..8f532ab3ea --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-dd-nsl-dd-one-of.js @@ -0,0 +1,34 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: NonZeroDigit NumericLiteralSeparator DecimalDigit +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + + + DecimalDigits :: + DecimalDigit + ... + + DecimalDigit :: one of + 0 1 2 3 4 5 6 7 8 9 + +---*/ + +assert.sameValue(Number("1_0"), 10); +assert.sameValue(Number("1_1"), 11); +assert.sameValue(Number("1_2"), 12); +assert.sameValue(Number("1_3"), 13); +assert.sameValue(Number("1_4"), 14); +assert.sameValue(Number("1_5"), 15); +assert.sameValue(Number("1_6"), 16); +assert.sameValue(Number("1_7"), 17); +assert.sameValue(Number("1_8"), 18); +assert.sameValue(Number("1_9"), 19); diff --git a/test/built-ins/Number/string-numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js b/test/built-ins/Number/string-numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js new file mode 100644 index 0000000000..3928f9e034 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js @@ -0,0 +1,25 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + DecimalDigits `.` DecimalDigits NumericLiteralSeparator DecimalDigits + ExponentPart SignedInteger +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +---*/ + +assert.sameValue(Number("10.00_01e2"), 10.0001e2); diff --git a/test/built-ins/Number/string-numeric-separator-literal-dds-nsl-dd.js b/test/built-ins/Number/string-numeric-separator-literal-dds-nsl-dd.js new file mode 100644 index 0000000000..4ce91e862b --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-dds-nsl-dd.js @@ -0,0 +1,26 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: DecimalDigits NumericLiteralSeparator DecimalDigit +info: | + NumericLiteralSeparator :: + _ + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + +---*/ + +assert.sameValue(Number("123456789_0"), 1234567890); +assert.sameValue(Number("123456789_1"), 1234567891); +assert.sameValue(Number("123456789_2"), 1234567892); +assert.sameValue(Number("123456789_3"), 1234567893); +assert.sameValue(Number("123456789_4"), 1234567894); +assert.sameValue(Number("123456789_5"), 1234567895); +assert.sameValue(Number("123456789_6"), 1234567896); +assert.sameValue(Number("123456789_7"), 1234567897); +assert.sameValue(Number("123456789_8"), 1234567898); +assert.sameValue(Number("123456789_9"), 1234567899); diff --git a/test/built-ins/Number/string-numeric-separator-literal-dot-dd-nsl-dd-ep.js b/test/built-ins/Number/string-numeric-separator-literal-dot-dd-nsl-dd-ep.js new file mode 100644 index 0000000000..e3b1c41500 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-dot-dd-nsl-dd-ep.js @@ -0,0 +1,25 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `.` DecimalDigit NumericLiteralSeparator DecimalDigit ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + DecimalDigit + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +---*/ + +assert.sameValue(Number(".0_1e2"), .01e2); diff --git a/test/built-ins/Number/string-numeric-separator-literal-dot-dd-nsl-dds-ep.js b/test/built-ins/Number/string-numeric-separator-literal-dot-dd-nsl-dds-ep.js new file mode 100644 index 0000000000..eb5ad47b25 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-dot-dd-nsl-dds-ep.js @@ -0,0 +1,25 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `.` DecimalDigit NumericLiteralSeparator DecimalDigits ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + DecimalDigit + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +---*/ + +assert.sameValue(Number(".1_01e2"), .101e2); diff --git a/test/built-ins/Number/string-numeric-separator-literal-dot-dds-nsl-dd-ep.js b/test/built-ins/Number/string-numeric-separator-literal-dot-dds-nsl-dd-ep.js new file mode 100644 index 0000000000..87f436fa68 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-dot-dds-nsl-dd-ep.js @@ -0,0 +1,25 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `.` DecimalDigits NumericLiteralSeparator DecimalDigit ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + DecimalDigit + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +---*/ + +assert.sameValue(Number(".10_1e2"), .101e2); diff --git a/test/built-ins/Number/string-numeric-separator-literal-dot-dds-nsl-dds-ep.js b/test/built-ins/Number/string-numeric-separator-literal-dot-dds-nsl-dds-ep.js new file mode 100644 index 0000000000..fccfc7a0e0 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-dot-dds-nsl-dds-ep.js @@ -0,0 +1,25 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `.` DecimalDigits NumericLiteralSeparator DecimalDigits ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + DecimalDigit + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +---*/ + +assert.sameValue(Number(".00_01e2"), .0001e2); diff --git a/test/built-ins/Number/string-numeric-separator-literal-hil-hd-nsl-hd.js b/test/built-ins/Number/string-numeric-separator-literal-hil-hd-nsl-hd.js new file mode 100644 index 0000000000..ffa72cd660 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-hil-hd-nsl-hd.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0x` | `0X` HexDigit NumericLiteralSeparator HexDigit +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +---*/ + +assert.sameValue(Number("0x0_1"), 0x01); +assert.sameValue(Number("0X0_1"), 0X01); diff --git a/test/built-ins/Number/string-numeric-separator-literal-hil-hd-nsl-hds.js b/test/built-ins/Number/string-numeric-separator-literal-hil-hd-nsl-hds.js new file mode 100644 index 0000000000..300ab9e960 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-hil-hd-nsl-hds.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0x` | `0X` HexDigit NumericLiteralSeparator HexDigit +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +---*/ + +assert.sameValue(Number("0x0_10"), 0x010); +assert.sameValue(Number("0X0_10"), 0X010); diff --git a/test/built-ins/Number/string-numeric-separator-literal-hil-hds-nsl-hd.js b/test/built-ins/Number/string-numeric-separator-literal-hil-hds-nsl-hd.js new file mode 100644 index 0000000000..bdfb33c0cf --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-hil-hds-nsl-hd.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0x` | `0X` HexDigits NumericLiteralSeparator HexDigit +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +---*/ + +assert.sameValue(Number("0x01_0"), 0x010); +assert.sameValue(Number("0X01_0"), 0X010); diff --git a/test/built-ins/Number/string-numeric-separator-literal-hil-hds-nsl-hds.js b/test/built-ins/Number/string-numeric-separator-literal-hil-hds-nsl-hds.js new file mode 100644 index 0000000000..e379ab2c02 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-hil-hds-nsl-hds.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0x` | `0X` HexDigits NumericLiteralSeparator HexDigit +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +---*/ + +assert.sameValue(Number("0x01_00"), 0x0100); +assert.sameValue(Number("0X01_00"), 0X0100); diff --git a/test/built-ins/Number/string-numeric-separator-literal-hil-od-nsl-od-one-of.js b/test/built-ins/Number/string-numeric-separator-literal-hil-od-nsl-od-one-of.js new file mode 100644 index 0000000000..ded211717b --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-hil-od-nsl-od-one-of.js @@ -0,0 +1,47 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0x` | `0X` HexDigit NumericLiteralSeparator HexDigit +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +---*/ + +assert.sameValue(Number("0x0_0"), 0x00); +assert.sameValue(Number("0x1_1"), 0x11); +assert.sameValue(Number("0x2_2"), 0x22); +assert.sameValue(Number("0x3_3"), 0x33); +assert.sameValue(Number("0x4_4"), 0x44); +assert.sameValue(Number("0x5_5"), 0x55); +assert.sameValue(Number("0x6_6"), 0x66); +assert.sameValue(Number("0x7_7"), 0x77); +assert.sameValue(Number("0x8_8"), 0x88); +assert.sameValue(Number("0x9_9"), 0x99); +assert.sameValue(Number("0xa_a"), 0xaa); +assert.sameValue(Number("0xb_b"), 0xbb); +assert.sameValue(Number("0xc_c"), 0xcc); +assert.sameValue(Number("0xd_d"), 0xdd); +assert.sameValue(Number("0xe_e"), 0xee); +assert.sameValue(Number("0xf_f"), 0xff); +assert.sameValue(Number("0xA_A"), 0xAA); +assert.sameValue(Number("0xB_B"), 0xBB); +assert.sameValue(Number("0xC_C"), 0xCC); +assert.sameValue(Number("0xD_D"), 0xDD); +assert.sameValue(Number("0xE_E"), 0xEE); +assert.sameValue(Number("0xF_F"), 0xFF); diff --git a/test/built-ins/Number/string-numeric-separator-literal-nzd-nsl-dd-one-of.js b/test/built-ins/Number/string-numeric-separator-literal-nzd-nsl-dd-one-of.js new file mode 100644 index 0000000000..eec4e828c1 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-nzd-nsl-dd-one-of.js @@ -0,0 +1,38 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: NonZeroDigit NumericLiteralSeparator DecimalDigit +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + + NonZeroDigit :: one of + 1 2 3 4 5 6 7 8 9 + + DecimalDigits :: + DecimalDigit + ... + + DecimalDigit :: one of + 0 1 2 3 4 5 6 7 8 9 + +---*/ + +assert.sameValue(Number("1_0"), 10); +assert.sameValue(Number("1_1"), 11); +assert.sameValue(Number("2_2"), 22); +assert.sameValue(Number("3_3"), 33); +assert.sameValue(Number("4_4"), 44); +assert.sameValue(Number("5_5"), 55); +assert.sameValue(Number("6_6"), 66); +assert.sameValue(Number("7_7"), 77); +assert.sameValue(Number("8_8"), 88); +assert.sameValue(Number("9_9"), 99); + + diff --git a/test/built-ins/Number/string-numeric-separator-literal-nzd-nsl-dd.js b/test/built-ins/Number/string-numeric-separator-literal-nzd-nsl-dd.js new file mode 100644 index 0000000000..7ec57ad614 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-nzd-nsl-dd.js @@ -0,0 +1,25 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: NonZeroDigit NumericLiteralSeparator DecimalDigit +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + + NonZeroDigit :: one of + 1 2 3 4 5 6 7 8 9 + + DecimalDigits :: + ... + DecimalDigits DecimalDigit + ... + +---*/ + +assert.sameValue(Number("1_1"), 11); diff --git a/test/built-ins/Number/string-numeric-separator-literal-nzd-nsl-dds.js b/test/built-ins/Number/string-numeric-separator-literal-nzd-nsl-dds.js new file mode 100644 index 0000000000..7410a68f87 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-nzd-nsl-dds.js @@ -0,0 +1,25 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: NonZeroDigit NumericLiteralSeparator DecimalDigits +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + + NonZeroDigit :: one of + 1 2 3 4 5 6 7 8 9 + + DecimalDigits :: + ... + DecimalDigits DecimalDigit + ... + +---*/ + +assert.sameValue(Number("1_0123456789"), 10123456789); diff --git a/test/built-ins/Number/string-numeric-separator-literal-oil-od-nsl-od-one-of.js b/test/built-ins/Number/string-numeric-separator-literal-oil-od-nsl-od-one-of.js new file mode 100644 index 0000000000..ceec7a92c0 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-oil-od-nsl-od-one-of.js @@ -0,0 +1,33 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0o` | `0O` OctalDigit NumericLiteralSeparator OctalDigit +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +---*/ + +assert.sameValue(Number("0o0_0"), 0o00); +assert.sameValue(Number("0o1_1"), 0o11); +assert.sameValue(Number("0o2_2"), 0o22); +assert.sameValue(Number("0o3_3"), 0o33); +assert.sameValue(Number("0o4_4"), 0o44); +assert.sameValue(Number("0o5_5"), 0o55); +assert.sameValue(Number("0o6_6"), 0o66); +assert.sameValue(Number("0o7_7"), 0o77); diff --git a/test/built-ins/Number/string-numeric-separator-literal-oil-od-nsl-od.js b/test/built-ins/Number/string-numeric-separator-literal-oil-od-nsl-od.js new file mode 100644 index 0000000000..aa4dedf3b5 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-oil-od-nsl-od.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0o` | `0O` OctalDigit NumericLiteralSeparator OctalDigit +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +---*/ + +assert.sameValue(Number("0o0_1"), 0o01); +assert.sameValue(Number("0O0_1"), 0O01); diff --git a/test/built-ins/Number/string-numeric-separator-literal-oil-od-nsl-ods.js b/test/built-ins/Number/string-numeric-separator-literal-oil-od-nsl-ods.js new file mode 100644 index 0000000000..44ffef8015 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-oil-od-nsl-ods.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0o` | `0O` OctalDigit NumericLiteralSeparator OctalDigit +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +---*/ + +assert.sameValue(Number("0o0_10"), 0o010); +assert.sameValue(Number("0O0_10"), 0O010); diff --git a/test/built-ins/Number/string-numeric-separator-literal-oil-ods-nsl-od.js b/test/built-ins/Number/string-numeric-separator-literal-oil-ods-nsl-od.js new file mode 100644 index 0000000000..ee2e0aa2a8 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-oil-ods-nsl-od.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0o` | `0O` OctalDigits NumericLiteralSeparator OctalDigit +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +---*/ + +assert.sameValue(Number("0o01_0"), 0o010); +assert.sameValue(Number("0O01_0"), 0O010); diff --git a/test/built-ins/Number/string-numeric-separator-literal-oil-ods-nsl-ods.js b/test/built-ins/Number/string-numeric-separator-literal-oil-ods-nsl-ods.js new file mode 100644 index 0000000000..77c6e414cf --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-oil-ods-nsl-ods.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + `0o` | `0O` OctalDigits NumericLiteralSeparator OctalDigit +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +---*/ + +assert.sameValue(Number("0o01_00"), 0o0100); +assert.sameValue(Number("0O01_00"), 0O0100); diff --git a/test/built-ins/Number/string-numeric-separator-literal-sign-minus-dds-nsl-dd.js b/test/built-ins/Number/string-numeric-separator-literal-sign-minus-dds-nsl-dd.js new file mode 100644 index 0000000000..060a03416a --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-sign-minus-dds-nsl-dd.js @@ -0,0 +1,26 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: DecimalDigits NumericLiteralSeparator DecimalDigit +info: | + NumericLiteralSeparator :: + _ + + SignedInteger :: + ... + - DecimalDigits + +---*/ + +assert.sameValue(Number("-123456789_0"), -1234567890); +assert.sameValue(Number("-123456789_1"), -1234567891); +assert.sameValue(Number("-123456789_2"), -1234567892); +assert.sameValue(Number("-123456789_3"), -1234567893); +assert.sameValue(Number("-123456789_4"), -1234567894); +assert.sameValue(Number("-123456789_5"), -1234567895); +assert.sameValue(Number("-123456789_6"), -1234567896); +assert.sameValue(Number("-123456789_7"), -1234567897); +assert.sameValue(Number("-123456789_8"), -1234567898); +assert.sameValue(Number("-123456789_9"), -1234567899); diff --git a/test/built-ins/Number/string-numeric-separator-literal-sign-plus-dds-nsl-dd.js b/test/built-ins/Number/string-numeric-separator-literal-sign-plus-dds-nsl-dd.js new file mode 100644 index 0000000000..813faf91d1 --- /dev/null +++ b/test/built-ins/Number/string-numeric-separator-literal-sign-plus-dds-nsl-dd.js @@ -0,0 +1,27 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: DecimalDigits NumericLiteralSeparator DecimalDigit +info: | + NumericLiteralSeparator :: + _ + + SignedInteger :: + ... + + DecimalDigits + ... + +---*/ + +assert.sameValue(Number("+123456789_0"), 1234567890); +assert.sameValue(Number("+123456789_1"), 1234567891); +assert.sameValue(Number("+123456789_2"), 1234567892); +assert.sameValue(Number("+123456789_3"), 1234567893); +assert.sameValue(Number("+123456789_4"), 1234567894); +assert.sameValue(Number("+123456789_5"), 1234567895); +assert.sameValue(Number("+123456789_6"), 1234567896); +assert.sameValue(Number("+123456789_7"), 1234567897); +assert.sameValue(Number("+123456789_8"), 1234567898); +assert.sameValue(Number("+123456789_9"), 1234567899);