From 53c00784b61b5b97f4b86dcb1dafa63bb9769068 Mon Sep 17 00:00:00 2001 From: Leo Balter Date: Mon, 21 Aug 2017 11:59:04 -0400 Subject: [PATCH] Revert "Revert "Tests for NumericSeparatorLiteral. Closes gh-1051" (#1188)" This reverts commit 8422147c17aa3f4061e524a8f88c251a3b371ecf. --- ...numeric-separator-literal-bil-bd-nsl-bd.js | 27 +++++++++++ ...umeric-separator-literal-bil-bd-nsl-bds.js | 27 +++++++++++ ...umeric-separator-literal-bil-bds-nsl-bd.js | 27 +++++++++++ ...meric-separator-literal-bil-bds-nsl-bds.js | 27 +++++++++++ ...teral-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js | 26 ++++++++++ ...eral-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js | 26 ++++++++++ ...iteral-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js | 26 ++++++++++ ...teral-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js | 27 +++++++++++ ...eric-separator-literal-dd-nsl-dd-one-of.js | 34 ++++++++++++++ ...parator-literal-dds-dot-dd-nsl-dd-ep-dd.js | 25 ++++++++++ ...ng-numeric-separator-literal-dds-nsl-dd.js | 26 ++++++++++ ...eric-separator-literal-dot-dd-nsl-dd-ep.js | 25 ++++++++++ ...ric-separator-literal-dot-dd-nsl-dds-ep.js | 25 ++++++++++ ...ric-separator-literal-dot-dds-nsl-dd-ep.js | 25 ++++++++++ ...ic-separator-literal-dot-dds-nsl-dds-ep.js | 25 ++++++++++ ...numeric-separator-literal-hil-hd-nsl-hd.js | 27 +++++++++++ ...umeric-separator-literal-hil-hd-nsl-hds.js | 27 +++++++++++ ...umeric-separator-literal-hil-hds-nsl-hd.js | 27 +++++++++++ ...meric-separator-literal-hil-hds-nsl-hds.js | 27 +++++++++++ ...-separator-literal-hil-od-nsl-od-one-of.js | 47 +++++++++++++++++++ ...ric-separator-literal-nzd-nsl-dd-one-of.js | 38 +++++++++++++++ ...ng-numeric-separator-literal-nzd-nsl-dd.js | 25 ++++++++++ ...g-numeric-separator-literal-nzd-nsl-dds.js | 25 ++++++++++ ...-separator-literal-oil-od-nsl-od-one-of.js | 33 +++++++++++++ ...numeric-separator-literal-oil-od-nsl-od.js | 27 +++++++++++ ...umeric-separator-literal-oil-od-nsl-ods.js | 27 +++++++++++ ...umeric-separator-literal-oil-ods-nsl-od.js | 27 +++++++++++ ...meric-separator-literal-oil-ods-nsl-ods.js | 27 +++++++++++ ...separator-literal-sign-minus-dds-nsl-dd.js | 26 ++++++++++ ...-separator-literal-sign-plus-dds-nsl-dd.js | 27 +++++++++++ ...numeric-separator-literal-bil-bd-nsl-bd.js | 23 +++++++++ ...umeric-separator-literal-bil-bd-nsl-bds.js | 23 +++++++++ ...umeric-separator-literal-bil-bds-nsl-bd.js | 23 +++++++++ ...meric-separator-literal-bil-bds-nsl-bds.js | 23 +++++++++ ...teral-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js | 19 ++++++++ ...eral-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js | 19 ++++++++ ...iteral-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js | 20 ++++++++ ...teral-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js | 20 ++++++++ ...eric-separator-literal-dd-nsl-dd-one-of.js | 31 ++++++++++++ ...parator-literal-dds-dot-dd-nsl-dd-ep-dd.js | 18 +++++++ ...er-numeric-separator-literal-dds-nsl-dd.js | 24 ++++++++++ ...eric-separator-literal-dot-dd-nsl-dd-ep.js | 19 ++++++++ ...ric-separator-literal-dot-dd-nsl-dds-ep.js | 19 ++++++++ ...ric-separator-literal-dot-dds-nsl-dd-ep.js | 18 +++++++ ...ic-separator-literal-dot-dds-nsl-dds-ep.js | 18 +++++++ ...numeric-separator-literal-hil-hd-nsl-hd.js | 20 ++++++++ ...umeric-separator-literal-hil-hd-nsl-hds.js | 20 ++++++++ ...umeric-separator-literal-hil-hds-nsl-hd.js | 20 ++++++++ ...meric-separator-literal-hil-hds-nsl-hds.js | 20 ++++++++ ...-separator-literal-hil-od-nsl-od-one-of.js | 40 ++++++++++++++++ ...ric-separator-literal-nzd-nsl-dd-one-of.js | 33 +++++++++++++ ...er-numeric-separator-literal-nzd-nsl-dd.js | 16 +++++++ ...r-numeric-separator-literal-nzd-nsl-dds.js | 15 ++++++ ...-separator-literal-oil-od-nsl-od-one-of.js | 26 ++++++++++ ...numeric-separator-literal-oil-od-nsl-od.js | 20 ++++++++ ...umeric-separator-literal-oil-od-nsl-ods.js | 20 ++++++++ ...umeric-separator-literal-oil-ods-nsl-od.js | 20 ++++++++ ...meric-separator-literal-oil-ods-nsl-ods.js | 20 ++++++++ ...separator-literal-sign-minus-dds-nsl-dd.js | 26 ++++++++++ ...-separator-literal-sign-plus-dds-nsl-dd.js | 25 ++++++++++ ...ric-separator-literal-bil-bd-nsl-bd-err.js | 32 +++++++++++++ ...numeric-separator-literal-bil-bd-nsl-bd.js | 27 +++++++++++ ...umeric-separator-literal-bil-bd-nsl-bds.js | 27 +++++++++++ ...umeric-separator-literal-bil-bds-nsl-bd.js | 27 +++++++++++ ...meric-separator-literal-bil-bds-nsl-bds.js | 27 +++++++++++ ...separator-literal-bil-nsl-bd-dunder-err.js | 32 +++++++++++++ ...umeric-separator-literal-bil-nsl-bd-err.js | 32 +++++++++++++ ...teral-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js | 26 ++++++++++ ...eral-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js | 26 ++++++++++ ...iteral-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js | 26 ++++++++++ ...teral-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js | 27 +++++++++++ ...eric-separator-literal-dd-nsl-dd-one-of.js | 34 ++++++++++++++ ...separator-literal-dd-nsl-dds-dunder-err.js | 24 ++++++++++ .../numeric-separator-literal-dd-nsl-err.js | 26 ++++++++++ ...parator-literal-dds-dot-dd-nsl-dd-ep-dd.js | 25 ++++++++++ .../numeric-separator-literal-dds-nsl-dd.js | 26 ++++++++++ ...eparator-literal-dds-nsl-dds-dunder-err.js | 24 ++++++++++ .../numeric-separator-literal-dds-nsl-err.js | 27 +++++++++++ ...rator-literal-dil-dot-dds-nsl-ep-dd-err.js | 26 ++++++++++ ...ic-separator-literal-dil-dot-nsl-ep-err.js | 29 ++++++++++++ ...meric-separator-literal-dil-dot-nsl-err.js | 27 +++++++++++ ...eric-separator-literal-dot-dd-nsl-dd-ep.js | 25 ++++++++++ ...ric-separator-literal-dot-dd-nsl-dds-ep.js | 25 ++++++++++ ...ric-separator-literal-dot-dds-nsl-dd-ep.js | 25 ++++++++++ ...ic-separator-literal-dot-dds-nsl-dds-ep.js | 25 ++++++++++ ...ic-separator-literal-dot-dds-nsl-ep-err.js | 28 +++++++++++ ...umeric-separator-literal-dot-nsl-ep-err.js | 29 ++++++++++++ .../numeric-separator-literal-dot-nsl-err.js | 27 +++++++++++ ...ric-separator-literal-hil-hd-nsl-hd-err.js | 32 +++++++++++++ ...numeric-separator-literal-hil-hd-nsl-hd.js | 27 +++++++++++ ...umeric-separator-literal-hil-hd-nsl-hds.js | 27 +++++++++++ ...umeric-separator-literal-hil-hds-nsl-hd.js | 27 +++++++++++ ...meric-separator-literal-hil-hds-nsl-hds.js | 27 +++++++++++ ...separator-literal-hil-nsl-hd-dunder-err.js | 32 +++++++++++++ ...umeric-separator-literal-hil-nsl-hd-err.js | 32 +++++++++++++ ...-separator-literal-hil-od-nsl-od-one-of.js | 47 +++++++++++++++++++ ...ric-separator-literal-nzd-nsl-dd-one-of.js | 38 +++++++++++++++ .../numeric-separator-literal-nzd-nsl-dd.js | 25 ++++++++++ ...eparator-literal-nzd-nsl-dds-dunder-err.js | 27 +++++++++++ ...or-literal-nzd-nsl-dds-leading-zero-err.js | 25 ++++++++++ .../numeric-separator-literal-nzd-nsl-dds.js | 25 ++++++++++ ...separator-literal-oil-nsl-od-dunder-err.js | 32 +++++++++++++ ...umeric-separator-literal-oil-nsl-od-err.js | 32 +++++++++++++ ...ric-separator-literal-oil-od-nsl-od-err.js | 32 +++++++++++++ ...-separator-literal-oil-od-nsl-od-one-of.js | 33 +++++++++++++ ...numeric-separator-literal-oil-od-nsl-od.js | 27 +++++++++++ ...umeric-separator-literal-oil-od-nsl-ods.js | 27 +++++++++++ ...umeric-separator-literal-oil-ods-nsl-od.js | 27 +++++++++++ ...meric-separator-literal-oil-ods-nsl-ods.js | 27 +++++++++++ ...separator-literal-sign-minus-dds-nsl-dd.js | 26 ++++++++++ ...-separator-literal-sign-plus-dds-nsl-dd.js | 27 +++++++++++ .../numeric-separator-literal-unicode-err.js | 24 ++++++++++ 112 files changed, 2959 insertions(+) create mode 100644 test/built-ins/Number/string-numeric-separator-literal-bil-bd-nsl-bd.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-bil-bd-nsl-bds.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-bil-bds-nsl-bd.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-bil-bds-nsl-bds.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-dd-nsl-dd-one-of.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-dds-nsl-dd.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-dot-dd-nsl-dd-ep.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-dot-dd-nsl-dds-ep.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-dot-dds-nsl-dd-ep.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-dot-dds-nsl-dds-ep.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-hil-hd-nsl-hd.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-hil-hd-nsl-hds.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-hil-hds-nsl-hd.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-hil-hds-nsl-hds.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-hil-od-nsl-od-one-of.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-nzd-nsl-dd-one-of.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-nzd-nsl-dd.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-nzd-nsl-dds.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-oil-od-nsl-od-one-of.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-oil-od-nsl-od.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-oil-od-nsl-ods.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-oil-ods-nsl-od.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-oil-ods-nsl-ods.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-sign-minus-dds-nsl-dd.js create mode 100644 test/built-ins/Number/string-numeric-separator-literal-sign-plus-dds-nsl-dd.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bd-nsl-bd.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bd-nsl-bds.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bds-nsl-bd.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bds-nsl-bds.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-nsl-dd-one-of.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-dds-nsl-dd.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dd-nsl-dd-ep.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dd-nsl-dds-ep.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dds-nsl-dd-ep.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dds-nsl-dds-ep.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hd-nsl-hd.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hd-nsl-hds.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hds-nsl-hd.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hds-nsl-hds.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-od-nsl-od-one-of.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-nzd-nsl-dd-one-of.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-nzd-nsl-dd.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-nzd-nsl-dds.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-od-one-of.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-od.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-ods.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-ods-nsl-od.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-ods-nsl-ods.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-sign-minus-dds-nsl-dd.js create mode 100644 test/built-ins/parseFloat/tonumber-numeric-separator-literal-sign-plus-dds-nsl-dd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bd-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bds.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-bil-bds-nsl-bd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-bil-bds-nsl-bds.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-dunder-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dd-nsl-dd-one-of.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dd-nsl-dds-dunder-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dd-nsl-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dds-nsl-dd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dds-nsl-dds-dunder-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dds-nsl-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dil-dot-dds-nsl-ep-dd-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-ep-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dot-dd-nsl-dd-ep.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dot-dd-nsl-dds-ep.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dot-dds-nsl-dd-ep.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dot-dds-nsl-dds-ep.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dot-dds-nsl-ep-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dot-nsl-ep-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-dot-nsl-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-hil-hd-nsl-hd-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-hil-hd-nsl-hd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-hil-hd-nsl-hds.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-hil-hds-nsl-hd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-hil-hds-nsl-hds.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-dunder-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-hil-od-nsl-od-one-of.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dd-one-of.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-dunder-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-leading-zero-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-dunder-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-od-err.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-od-one-of.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-od.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-ods.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-oil-ods-nsl-od.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-oil-ods-nsl-ods.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-sign-minus-dds-nsl-dd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-sign-plus-dds-nsl-dd.js create mode 100644 test/language/literals/numeric/numeric-separator-literal-unicode-err.js 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 00000000000..748c90a1e14 --- /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 00000000000..71dca2627d9 --- /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 00000000000..0b875e4af3d --- /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 00000000000..09e40465c6a --- /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 00000000000..3ec1c859a8a --- /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 00000000000..489e27e2879 --- /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 00000000000..de2f3b67bdd --- /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 00000000000..dc1b9fa34cf --- /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 00000000000..8f532ab3ea1 --- /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 00000000000..3928f9e0348 --- /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 00000000000..4ce91e862b0 --- /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 00000000000..e3b1c415004 --- /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 00000000000..eb5ad47b25d --- /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 00000000000..87f436fa688 --- /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 00000000000..fccfc7a0e0a --- /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 00000000000..ffa72cd660d --- /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 00000000000..300ab9e9605 --- /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 00000000000..bdfb33c0cfc --- /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 00000000000..e379ab2c029 --- /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 00000000000..ded211717bb --- /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 00000000000..eec4e828c10 --- /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 00000000000..7ec57ad614d --- /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 00000000000..7410a68f876 --- /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 00000000000..ceec7a92c03 --- /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 00000000000..aa4dedf3b5a --- /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 00000000000..44ffef8015c --- /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 00000000000..ee2e0aa2a87 --- /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 00000000000..77c6e414cf3 --- /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 00000000000..060a03416aa --- /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 00000000000..813faf91d14 --- /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); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bd-nsl-bd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bd-nsl-bd.js new file mode 100644 index 00000000000..2f994aa3e52 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bd-nsl-bd.js @@ -0,0 +1,23 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: 0b StrBinaryDigits, 0B StrBinaryDigits +info: | + + StrBinaryIntegerLiteral ::: + 0b StrBinaryDigits + 0B StrBinaryDigits + + StrBinaryDigits ::: + BinaryDigit + StrBinaryDigits BinaryDigit + + BinaryDigit ::: one of + 0 1 + +---*/ + +assert.sameValue(parseFloat("0b0_1"), 0b0); +assert.sameValue(parseFloat("0B0_1"), 0B0); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bd-nsl-bds.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bd-nsl-bds.js new file mode 100644 index 00000000000..d5164500b73 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bd-nsl-bds.js @@ -0,0 +1,23 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: 0b StrBinaryDigits, 0B StrBinaryDigits +info: | + + StrBinaryIntegerLiteral ::: + 0b StrBinaryDigits + 0B StrBinaryDigits + + StrBinaryDigits ::: + BinaryDigit + StrBinaryDigits BinaryDigit + + BinaryDigit ::: one of + 0 1 + +---*/ + +assert.sameValue(parseFloat("0b0_10"), 0b0); +assert.sameValue(parseFloat("0B0_10"), 0B0); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bds-nsl-bd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bds-nsl-bd.js new file mode 100644 index 00000000000..dc4207be9d7 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bds-nsl-bd.js @@ -0,0 +1,23 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: 0b StrBinaryDigits, 0B StrBinaryDigits +info: | + + StrBinaryIntegerLiteral ::: + 0b StrBinaryDigits + 0B StrBinaryDigits + + StrBinaryDigits ::: + BinaryDigit + StrBinaryDigits BinaryDigit + + BinaryDigit ::: one of + 0 1 + +---*/ + +assert.sameValue(parseFloat("0b01_0"), 0b01); +assert.sameValue(parseFloat("0B01_0"), 0B01); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bds-nsl-bds.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bds-nsl-bds.js new file mode 100644 index 00000000000..daa545afb98 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bds-nsl-bds.js @@ -0,0 +1,23 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: 0b StrBinaryDigits, 0B StrBinaryDigits +info: | + + StrBinaryIntegerLiteral ::: + 0b StrBinaryDigits + 0B StrBinaryDigits + + StrBinaryDigits ::: + BinaryDigit + StrBinaryDigits BinaryDigit + + BinaryDigit ::: one of + 0 1 + +---*/ + +assert.sameValue(parseFloat("0b01_00"), 0b01); +assert.sameValue(parseFloat("0B01_00"), 0B01); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js new file mode 100644 index 00000000000..8463acc6e8c --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js @@ -0,0 +1,19 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: StrDecimalDigits . StrDecimalDigits StrExponentPart +info: | + + StrUnsignedDecimalLiteral ::: + StrDecimalDigits . StrDecimalDigits StrExponentPart + + StrDecimalDigits ::: + DecimalDigit + StrDecimalDigits NumericLiteralSeparator DecimalDigit + + +---*/ + +assert.sameValue(parseFloat("1.0e-1_0"), 1.0e-1); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js new file mode 100644 index 00000000000..31afc26b42c --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js @@ -0,0 +1,19 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: StrDecimalDigits . StrDecimalDigits StrExponentPart +info: | + + StrUnsignedDecimalLiteral ::: + StrDecimalDigits . StrDecimalDigits StrExponentPart + + StrDecimalDigits ::: + DecimalDigit + StrDecimalDigits NumericLiteralSeparator DecimalDigit + + +---*/ + +assert.sameValue(parseFloat("1.0e-10_0"), 1.0e-10); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js new file mode 100644 index 00000000000..4331a370d32 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: > + StrDecimalDigits . StrDecimalDigits StrExponentPart +info: | + + StrUnsignedDecimalLiteral ::: + StrDecimalDigits . StrDecimalDigits StrExponentPart + + StrDecimalDigits ::: + DecimalDigit + StrDecimalDigits NumericLiteralSeparator DecimalDigit + + +---*/ + +assert.sameValue(parseFloat("1.0e+1_0"), 1.0e+1); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js new file mode 100644 index 00000000000..f68cc93c8eb --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: StrDecimalDigits . StrDecimalDigits StrExponentPart +info: | + + StrUnsignedDecimalLiteral ::: + StrDecimalDigits . StrDecimalDigits StrExponentPart + + StrDecimalDigits ::: + DecimalDigit + StrDecimalDigits NumericLiteralSeparator DecimalDigit + + +---*/ + +assert.sameValue(parseFloat("1.0e+10_0"), 1.0e+10); + diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-nsl-dd-one-of.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-nsl-dd-one-of.js new file mode 100644 index 00000000000..fb0ba7236c2 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dd-nsl-dd-one-of.js @@ -0,0 +1,31 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: StrUnsignedDecimalLiteral +info: | + + StrStrUnsignedDecimalLiteral ::: + StrUnsignedDecimalLiteral + + + StrDecimalDigits ::: + DecimalDigit + ... + + DecimalDigit ::: one of + 0 1 2 3 4 5 6 7 8 9 + +---*/ + +assert.sameValue(parseFloat("1_0"), 1); +assert.sameValue(parseFloat("1_1"), 1); +assert.sameValue(parseFloat("1_2"), 1); +assert.sameValue(parseFloat("1_3"), 1); +assert.sameValue(parseFloat("1_4"), 1); +assert.sameValue(parseFloat("1_5"), 1); +assert.sameValue(parseFloat("1_6"), 1); +assert.sameValue(parseFloat("1_7"), 1); +assert.sameValue(parseFloat("1_8"), 1); +assert.sameValue(parseFloat("1_9"), 1); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js new file mode 100644 index 00000000000..b90c3b22c65 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js @@ -0,0 +1,18 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: StrDecimalDigits . StrDecimalDigits StrExponentPart +info: | + + StrUnsignedDecimalLiteral ::: + . StrDecimalDigits StrExponentPart + + StrDecimalDigits ::: + DecimalDigit + StrDecimalDigits DecimalDigit + +---*/ + +assert.sameValue(parseFloat("10.00_01e2"), 10.00); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dds-nsl-dd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dds-nsl-dd.js new file mode 100644 index 00000000000..b4d6094eb08 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dds-nsl-dd.js @@ -0,0 +1,24 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: StrDecimalDigits +info: | + + StrDecimalDigits ::: + DecimalDigit + StrDecimalDigits DecimalDigit + +---*/ + +assert.sameValue(parseFloat("123456789_0"), 123456789); +assert.sameValue(parseFloat("123456789_1"), 123456789); +assert.sameValue(parseFloat("123456789_2"), 123456789); +assert.sameValue(parseFloat("123456789_3"), 123456789); +assert.sameValue(parseFloat("123456789_4"), 123456789); +assert.sameValue(parseFloat("123456789_5"), 123456789); +assert.sameValue(parseFloat("123456789_6"), 123456789); +assert.sameValue(parseFloat("123456789_7"), 123456789); +assert.sameValue(parseFloat("123456789_8"), 123456789); +assert.sameValue(parseFloat("123456789_9"), 123456789); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dd-nsl-dd-ep.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dd-nsl-dd-ep.js new file mode 100644 index 00000000000..721a6790193 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dd-nsl-dd-ep.js @@ -0,0 +1,19 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: . StrDecimalDigits StrExponentPart +info: | + + StrUnsignedDecimalLiteral ::: + . StrDecimalDigits StrExponentPart + + StrDecimalDigits ::: + DecimalDigit + ... + StrDecimalDigits DecimalDigit + +---*/ + +assert.sameValue(parseFloat(".0_1e2"), .0); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dd-nsl-dds-ep.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dd-nsl-dds-ep.js new file mode 100644 index 00000000000..1f3dc3b30e0 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dd-nsl-dds-ep.js @@ -0,0 +1,19 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: . StrDecimalDigits StrExponentPart +info: | + + StrUnsignedDecimalLiteral ::: + . StrDecimalDigits StrExponentPart + + StrDecimalDigits ::: + DecimalDigit + ... + StrDecimalDigits DecimalDigit + +---*/ + +assert.sameValue(parseFloat(".1_01e2"), .1); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dds-nsl-dd-ep.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dds-nsl-dd-ep.js new file mode 100644 index 00000000000..278dbe68296 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dds-nsl-dd-ep.js @@ -0,0 +1,18 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: . StrDecimalDigits StrExponentPart +info: | + + StrUnsignedDecimalLiteral ::: + . StrDecimalDigits StrExponentPart + + StrDecimalDigits ::: + DecimalDigit + StrDecimalDigits DecimalDigit + +---*/ + +assert.sameValue(parseFloat(".10_1e2"), .10); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dds-nsl-dds-ep.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dds-nsl-dds-ep.js new file mode 100644 index 00000000000..da0490ddd51 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-dot-dds-nsl-dds-ep.js @@ -0,0 +1,18 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: . StrDecimalDigits StrExponentPart +info: | + + StrUnsignedDecimalLiteral ::: + . StrDecimalDigits StrExponentPart + + StrDecimalDigits ::: + DecimalDigit + StrDecimalDigits DecimalDigit + +---*/ + +assert.sameValue(parseFloat(".00_01e2"), .00); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hd-nsl-hd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hd-nsl-hd.js new file mode 100644 index 00000000000..59330a2f4ca --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hd-nsl-hd.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: 0x StrHexDigits, 0X StrHexDigits +info: | + + StrHexLiteral ::: + 0x StrHexDigits + 0X StrHexDigits + + StrHexDigits ::: + HexDigit + StrHexDigits HexDigit + +---*/ + +assert.sameValue(parseFloat("0x0_1"), 0x0); +assert.sameValue(parseFloat("0X0_1"), 0X0); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hd-nsl-hds.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hd-nsl-hds.js new file mode 100644 index 00000000000..06f3a44c62d --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hd-nsl-hds.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: 0x StrHexDigits, 0X StrHexDigits +info: | + + StrHexLiteral ::: + 0x StrHexDigits + 0X StrHexDigits + + StrHexDigits ::: + HexDigit + StrHexDigits HexDigit + +---*/ + +assert.sameValue(parseFloat("0x0_10"), 0x0); +assert.sameValue(parseFloat("0X0_10"), 0X0); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hds-nsl-hd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hds-nsl-hd.js new file mode 100644 index 00000000000..e4bc5b9fd80 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hds-nsl-hd.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: 0x StrHexDigits, 0X StrHexDigits +info: | + + StrHexLiteral ::: + 0x StrHexDigits + 0X StrHexDigits + + StrHexDigits ::: + HexDigit + StrHexDigits HexDigit + +---*/ + +assert.sameValue(parseFloat("0x01_0"), 0x01); +assert.sameValue(parseFloat("0X01_0"), 0X01); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hds-nsl-hds.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hds-nsl-hds.js new file mode 100644 index 00000000000..4cbdf527a3a --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hds-nsl-hds.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: 0x StrHexDigits, 0X StrHexDigits +info: | + + StrHexLiteral ::: + 0x StrHexDigits + 0X StrHexDigits + + StrHexDigits ::: + HexDigit + StrHexDigits HexDigit + +---*/ + +assert.sameValue(parseFloat("0x01_00"), 0x01); +assert.sameValue(parseFloat("0X01_00"), 0X01); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-od-nsl-od-one-of.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-od-nsl-od-one-of.js new file mode 100644 index 00000000000..c28f00087d9 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-od-nsl-od-one-of.js @@ -0,0 +1,40 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: 0x StrHexDigits, 0X StrHexDigits +info: | + + StrHexLiteral ::: + 0x StrHexDigits + 0X StrHexDigits + + StrHexDigits ::: + HexDigit + StrHexDigits HexDigit + +---*/ + +assert.sameValue(parseFloat("0x0_0"), 0x0); +assert.sameValue(parseFloat("0x1_1"), 0x1); +assert.sameValue(parseFloat("0x2_2"), 0x2); +assert.sameValue(parseFloat("0x3_3"), 0x3); +assert.sameValue(parseFloat("0x4_4"), 0x4); +assert.sameValue(parseFloat("0x5_5"), 0x5); +assert.sameValue(parseFloat("0x6_6"), 0x6); +assert.sameValue(parseFloat("0x7_7"), 0x7); +assert.sameValue(parseFloat("0x8_8"), 0x8); +assert.sameValue(parseFloat("0x9_9"), 0x9); +assert.sameValue(parseFloat("0xa_a"), 0xa); +assert.sameValue(parseFloat("0xb_b"), 0xb); +assert.sameValue(parseFloat("0xc_c"), 0xc); +assert.sameValue(parseFloat("0xd_d"), 0xd); +assert.sameValue(parseFloat("0xe_e"), 0xe); +assert.sameValue(parseFloat("0xf_f"), 0xf); +assert.sameValue(parseFloat("0xA_A"), 0xA); +assert.sameValue(parseFloat("0xB_B"), 0xB); +assert.sameValue(parseFloat("0xC_C"), 0xC); +assert.sameValue(parseFloat("0xD_D"), 0xD); +assert.sameValue(parseFloat("0xE_E"), 0xE); +assert.sameValue(parseFloat("0xF_F"), 0xF); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-nzd-nsl-dd-one-of.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-nzd-nsl-dd-one-of.js new file mode 100644 index 00000000000..932a83451b7 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-nzd-nsl-dd-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: sec-tonumber-applied-to-the-string-type +description: NonZeroDigit NumericLiteralSeparator DecimalDigit +info: | + + StrStrUnsignedDecimalLiteral ::: + StrUnsignedDecimalLiteral + + NonZeroDigit ::: one of + 1 2 3 4 5 6 7 8 9 + + StrDecimalDigits ::: + DecimalDigit + ... + + DecimalDigit ::: one of + 0 1 2 3 4 5 6 7 8 9 + +---*/ + +assert.sameValue(parseFloat("1_0"), 1); +assert.sameValue(parseFloat("1_1"), 1); +assert.sameValue(parseFloat("2_2"), 2); +assert.sameValue(parseFloat("3_3"), 3); +assert.sameValue(parseFloat("4_4"), 4); +assert.sameValue(parseFloat("5_5"), 5); +assert.sameValue(parseFloat("6_6"), 6); +assert.sameValue(parseFloat("7_7"), 7); +assert.sameValue(parseFloat("8_8"), 8); +assert.sameValue(parseFloat("9_9"), 9); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-nzd-nsl-dd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-nzd-nsl-dd.js new file mode 100644 index 00000000000..4f454d5953d --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-nzd-nsl-dd.js @@ -0,0 +1,16 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: StrDecimalDigits +info: | + + StrDecimalDigits ::: + DecimalDigit + StrDecimalDigits DecimalDigit + ... + +---*/ + +assert.sameValue(parseFloat("1_1"), 1); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-nzd-nsl-dds.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-nzd-nsl-dds.js new file mode 100644 index 00000000000..e182b0a3c6a --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-nzd-nsl-dds.js @@ -0,0 +1,15 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: DecimalDigit +info: | + + StrDecimalDigits ::: + DecimalDigit + StrDecimalDigits DecimalDigit + +---*/ + +assert.sameValue(parseFloat("1_0123456789"), 1); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-od-one-of.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-od-one-of.js new file mode 100644 index 00000000000..fd9e178d9fd --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-od-one-of.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: sec-tonumber-applied-to-the-string-type +description: 0o StrOctalDigits, 0O StrOctalDigits +info: | + + StrOctalLiteral ::: + 0o StrOctalDigits + 0O StrOctalDigits + + StrOctalDigits ::: + OctalDigit + StrOctalDigits OctalDigit + +---*/ + +assert.sameValue(parseFloat("0o0_0"), 0o0); +assert.sameValue(parseFloat("0o1_1"), 0o1); +assert.sameValue(parseFloat("0o2_2"), 0o2); +assert.sameValue(parseFloat("0o3_3"), 0o3); +assert.sameValue(parseFloat("0o4_4"), 0o4); +assert.sameValue(parseFloat("0o5_5"), 0o5); +assert.sameValue(parseFloat("0o6_6"), 0o6); +assert.sameValue(parseFloat("0o7_7"), 0o7); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-od.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-od.js new file mode 100644 index 00000000000..0721ea9856c --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-od.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: 0o StrOctalDigits, 0O StrOctalDigits +info: | + + StrOctalLiteral ::: + 0o StrOctalDigits + 0O StrOctalDigits + + StrOctalDigits ::: + OctalDigit + StrOctalDigits OctalDigit + +---*/ + +assert.sameValue(parseFloat("0o0_1"), 0o0); +assert.sameValue(parseFloat("0O0_1"), 0O0); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-ods.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-ods.js new file mode 100644 index 00000000000..174e45325ce --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-ods.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: 0o StrOctalDigits, 0O StrOctalDigits +info: | + + StrOctalLiteral ::: + 0o StrOctalDigits + 0O StrOctalDigits + + StrOctalDigits ::: + OctalDigit + StrOctalDigits OctalDigit + +---*/ + +assert.sameValue(parseFloat("0o0_10"), 0o0); +assert.sameValue(parseFloat("0O0_10"), 0O0); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-ods-nsl-od.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-ods-nsl-od.js new file mode 100644 index 00000000000..6f328e3dd10 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-ods-nsl-od.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: 0o StrOctalDigits, 0O StrOctalDigits +info: | + + StrOctalLiteral ::: + 0o StrOctalDigits + 0O StrOctalDigits + + StrOctalDigits ::: + OctalDigit + StrOctalDigits OctalDigit + +---*/ + +assert.sameValue(parseFloat("0o01_0"), 0o01); +assert.sameValue(parseFloat("0O01_0"), 0O01); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-ods-nsl-ods.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-ods-nsl-ods.js new file mode 100644 index 00000000000..4ccd61f3789 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-ods-nsl-ods.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-tonumber-applied-to-the-string-type +description: 0o StrOctalDigits, 0O StrOctalDigits +info: | + + StrOctalLiteral ::: + 0o StrOctalDigits + 0O StrOctalDigits + + StrOctalDigits ::: + OctalDigit + StrOctalDigits OctalDigit + +---*/ + +assert.sameValue(parseFloat("0o01_00"), 0o01); +assert.sameValue(parseFloat("0O01_00"), 0O01); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-sign-minus-dds-nsl-dd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-sign-minus-dds-nsl-dd.js new file mode 100644 index 00000000000..a0917f913e4 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-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: sec-tonumber-applied-to-the-string-type +description: > + StrUnsignedDecimalLiteral, + StrUnsignedDecimalLiteral, - StrUnsignedDecimalLiteral +info: | + + StrDecimalLiteral ::: + StrUnsignedDecimalLiteral + + StrUnsignedDecimalLiteral + - StrUnsignedDecimalLiteral + +---*/ + +assert.sameValue(parseFloat("-123456789_0"), -123456789); +assert.sameValue(parseFloat("-123456789_1"), -123456789); +assert.sameValue(parseFloat("-123456789_2"), -123456789); +assert.sameValue(parseFloat("-123456789_3"), -123456789); +assert.sameValue(parseFloat("-123456789_4"), -123456789); +assert.sameValue(parseFloat("-123456789_5"), -123456789); +assert.sameValue(parseFloat("-123456789_6"), -123456789); +assert.sameValue(parseFloat("-123456789_7"), -123456789); +assert.sameValue(parseFloat("-123456789_8"), -123456789); +assert.sameValue(parseFloat("-123456789_9"), -123456789); diff --git a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-sign-plus-dds-nsl-dd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-sign-plus-dds-nsl-dd.js new file mode 100644 index 00000000000..224a0e4e3e4 --- /dev/null +++ b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-sign-plus-dds-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: sec-tonumber-applied-to-the-string-type +description: StrUnsignedDecimalLiteral +info: | + + StrDecimalLiteral ::: + StrUnsignedDecimalLiteral + + StrUnsignedDecimalLiteral + - StrUnsignedDecimalLiteral + +---*/ + +assert.sameValue(parseFloat("+123456789_0"), +123456789); +assert.sameValue(parseFloat("+123456789_1"), +123456789); +assert.sameValue(parseFloat("+123456789_2"), +123456789); +assert.sameValue(parseFloat("+123456789_3"), +123456789); +assert.sameValue(parseFloat("+123456789_4"), +123456789); +assert.sameValue(parseFloat("+123456789_5"), +123456789); +assert.sameValue(parseFloat("+123456789_6"), +123456789); +assert.sameValue(parseFloat("+123456789_7"), +123456789); +assert.sameValue(parseFloat("+123456789_8"), +123456789); +assert.sameValue(parseFloat("+123456789_9"), +123456789); diff --git a/test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bd-err.js b/test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bd-err.js new file mode 100644 index 00000000000..44a9cb1ee85 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bd-err.js @@ -0,0 +1,32 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the appear adjacent to `0b` | `0B` in a + BinaryIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +0b_1 diff --git a/test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bd.js b/test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bd.js new file mode 100644 index 00000000000..f9d5d3cf020 --- /dev/null +++ b/test/language/literals/numeric/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(0b0_1, 0b01); +assert.sameValue(0B0_1, 0B01); diff --git a/test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bds.js b/test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bds.js new file mode 100644 index 00000000000..26b19114f78 --- /dev/null +++ b/test/language/literals/numeric/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(0b0_10, 0b010); +assert.sameValue(0B0_10, 0B010); diff --git a/test/language/literals/numeric/numeric-separator-literal-bil-bds-nsl-bd.js b/test/language/literals/numeric/numeric-separator-literal-bil-bds-nsl-bd.js new file mode 100644 index 00000000000..323259549b1 --- /dev/null +++ b/test/language/literals/numeric/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(0b01_0, 0b010); +assert.sameValue(0B01_0, 0B010); diff --git a/test/language/literals/numeric/numeric-separator-literal-bil-bds-nsl-bds.js b/test/language/literals/numeric/numeric-separator-literal-bil-bds-nsl-bds.js new file mode 100644 index 00000000000..744913f05c6 --- /dev/null +++ b/test/language/literals/numeric/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(0b01_00, 0b0100); +assert.sameValue(0B01_00, 0B0100); diff --git a/test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-dunder-err.js b/test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-dunder-err.js new file mode 100644 index 00000000000..3cadb7a8116 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-dunder-err.js @@ -0,0 +1,32 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear adjacent to another + NumericLiteralSeparator in a BinaryIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +0b0__0 diff --git a/test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-err.js b/test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-err.js new file mode 100644 index 00000000000..51ac17e97a1 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-err.js @@ -0,0 +1,32 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the last digit character of a + BinaryIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + BinaryIntegerLiteral :: + 0b BinaryDigits + 0B BinaryDigits + + BinaryDigits :: + BinaryDigit + BinaryDigits BinaryDigit + BinaryDigits NumericLiteralSeparator BinaryDigit + + BinaryDigit :: one of + 0 1 + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +0b0_ diff --git a/test/language/literals/numeric/numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js b/test/language/literals/numeric/numeric-separator-literal-dd-dot-dd-ep-sign-minus-dd-nsl-dd.js new file mode 100644 index 00000000000..f7bca1ee7b0 --- /dev/null +++ b/test/language/literals/numeric/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(1.0e-1_0, 1.0e-10); diff --git a/test/language/literals/numeric/numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js b/test/language/literals/numeric/numeric-separator-literal-dd-dot-dd-ep-sign-minus-dds-nsl-dd.js new file mode 100644 index 00000000000..9057143c62d --- /dev/null +++ b/test/language/literals/numeric/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(1.0e-10_0, 1.0e-100); diff --git a/test/language/literals/numeric/numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js b/test/language/literals/numeric/numeric-separator-literal-dd-dot-dd-ep-sign-plus-dd-nsl-dd.js new file mode 100644 index 00000000000..ac5b67c2b7d --- /dev/null +++ b/test/language/literals/numeric/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(1.0e+1_0, 1.0e+10); diff --git a/test/language/literals/numeric/numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js b/test/language/literals/numeric/numeric-separator-literal-dd-dot-dd-ep-sign-plus-dds-nsl-dd.js new file mode 100644 index 00000000000..eeeb5f957eb --- /dev/null +++ b/test/language/literals/numeric/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(1.0e+10_0, 1.0e+100); + diff --git a/test/language/literals/numeric/numeric-separator-literal-dd-nsl-dd-one-of.js b/test/language/literals/numeric/numeric-separator-literal-dd-nsl-dd-one-of.js new file mode 100644 index 00000000000..79f5b5ada08 --- /dev/null +++ b/test/language/literals/numeric/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(1_0, 10); +assert.sameValue(1_1, 11); +assert.sameValue(1_2, 12); +assert.sameValue(1_3, 13); +assert.sameValue(1_4, 14); +assert.sameValue(1_5, 15); +assert.sameValue(1_6, 16); +assert.sameValue(1_7, 17); +assert.sameValue(1_8, 18); +assert.sameValue(1_9, 19); diff --git a/test/language/literals/numeric/numeric-separator-literal-dd-nsl-dds-dunder-err.js b/test/language/literals/numeric/numeric-separator-literal-dd-nsl-dds-dunder-err.js new file mode 100644 index 00000000000..800714be2c0 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-dd-nsl-dds-dunder-err.js @@ -0,0 +1,24 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear adjacent to another + NumericLiteralSeparator in a DecimalIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +1__0123456789 diff --git a/test/language/literals/numeric/numeric-separator-literal-dd-nsl-err.js b/test/language/literals/numeric/numeric-separator-literal-dd-nsl-err.js new file mode 100644 index 00000000000..11b89ce2c67 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-dd-nsl-err.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: > + NumericLiteralSeparator may not be the last digit character +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +1_ diff --git a/test/language/literals/numeric/numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js b/test/language/literals/numeric/numeric-separator-literal-dds-dot-dd-nsl-dd-ep-dd.js new file mode 100644 index 00000000000..a3f78d5060e --- /dev/null +++ b/test/language/literals/numeric/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(10.00_01e2, 10.0001e2); diff --git a/test/language/literals/numeric/numeric-separator-literal-dds-nsl-dd.js b/test/language/literals/numeric/numeric-separator-literal-dds-nsl-dd.js new file mode 100644 index 00000000000..3ca1dee1e3d --- /dev/null +++ b/test/language/literals/numeric/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(123456789_0, 1234567890); +assert.sameValue(123456789_1, 1234567891); +assert.sameValue(123456789_2, 1234567892); +assert.sameValue(123456789_3, 1234567893); +assert.sameValue(123456789_4, 1234567894); +assert.sameValue(123456789_5, 1234567895); +assert.sameValue(123456789_6, 1234567896); +assert.sameValue(123456789_7, 1234567897); +assert.sameValue(123456789_8, 1234567898); +assert.sameValue(123456789_9, 1234567899); diff --git a/test/language/literals/numeric/numeric-separator-literal-dds-nsl-dds-dunder-err.js b/test/language/literals/numeric/numeric-separator-literal-dds-nsl-dds-dunder-err.js new file mode 100644 index 00000000000..560fe23576b --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-dds-nsl-dds-dunder-err.js @@ -0,0 +1,24 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear adjacent to another + NumericLiteralSeparator in DecimalIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +10__0123456789 diff --git a/test/language/literals/numeric/numeric-separator-literal-dds-nsl-err.js b/test/language/literals/numeric/numeric-separator-literal-dds-nsl-err.js new file mode 100644 index 00000000000..a72b521e73a --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-dds-nsl-err.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: > + NumericLiteralSeparator may not be the last digit character of a + DecimalLiteral +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +10_ diff --git a/test/language/literals/numeric/numeric-separator-literal-dil-dot-dds-nsl-ep-dd-err.js b/test/language/literals/numeric/numeric-separator-literal-dil-dot-dds-nsl-ep-dd-err.js new file mode 100644 index 00000000000..ce96ca079b2 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-dil-dot-dds-nsl-ep-dd-err.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: > + NumericLiteralSeparator may not appear adjacent to ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +10.0_e1 diff --git a/test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-ep-err.js b/test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-ep-err.js new file mode 100644 index 00000000000..9b2c418bef4 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-ep-err.js @@ -0,0 +1,29 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear between `.` and ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +10._e1 diff --git a/test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-err.js b/test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-err.js new file mode 100644 index 00000000000..6d7542eb793 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-err.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: > + NumericLiteralSeparator may not be the last digit character of a + DecimalLiteral +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + DecimalIntegerLiteral . DecimalDigits_opt ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +10._ diff --git a/test/language/literals/numeric/numeric-separator-literal-dot-dd-nsl-dd-ep.js b/test/language/literals/numeric/numeric-separator-literal-dot-dd-nsl-dd-ep.js new file mode 100644 index 00000000000..26cf232cf99 --- /dev/null +++ b/test/language/literals/numeric/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(.0_1e2, .01e2); diff --git a/test/language/literals/numeric/numeric-separator-literal-dot-dd-nsl-dds-ep.js b/test/language/literals/numeric/numeric-separator-literal-dot-dd-nsl-dds-ep.js new file mode 100644 index 00000000000..0ded986ab66 --- /dev/null +++ b/test/language/literals/numeric/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(.1_01e2, .101e2); diff --git a/test/language/literals/numeric/numeric-separator-literal-dot-dds-nsl-dd-ep.js b/test/language/literals/numeric/numeric-separator-literal-dot-dds-nsl-dd-ep.js new file mode 100644 index 00000000000..e3acbad8a23 --- /dev/null +++ b/test/language/literals/numeric/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(.10_1e2, .101e2); diff --git a/test/language/literals/numeric/numeric-separator-literal-dot-dds-nsl-dds-ep.js b/test/language/literals/numeric/numeric-separator-literal-dot-dds-nsl-dds-ep.js new file mode 100644 index 00000000000..c437ef997c6 --- /dev/null +++ b/test/language/literals/numeric/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(.00_01e2, .0001e2); diff --git a/test/language/literals/numeric/numeric-separator-literal-dot-dds-nsl-ep-err.js b/test/language/literals/numeric/numeric-separator-literal-dot-dds-nsl-ep-err.js new file mode 100644 index 00000000000..f968e63d6c1 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-dot-dds-nsl-ep-err.js @@ -0,0 +1,28 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: NumericLiteralSeparator may not appear adjacent to ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +.0_e1 diff --git a/test/language/literals/numeric/numeric-separator-literal-dot-nsl-ep-err.js b/test/language/literals/numeric/numeric-separator-literal-dot-nsl-ep-err.js new file mode 100644 index 00000000000..df26f129d56 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-dot-nsl-ep-err.js @@ -0,0 +1,29 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear between `.` and ExponentPart +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + + ExponentIndicator :: one of + e E + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +._e1 diff --git a/test/language/literals/numeric/numeric-separator-literal-dot-nsl-err.js b/test/language/literals/numeric/numeric-separator-literal-dot-nsl-err.js new file mode 100644 index 00000000000..322dcbf8ee6 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-dot-nsl-err.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: > + NumericLiteralSeparator may not be the last digit character of a + DecimalLiteral, nor adjacent to `.` +info: | + NumericLiteralSeparator :: + _ + + DecimalLiteral :: + . DecimalDigits ExponentPart_opt + + DecimalDigits :: + ... + DecimalDigits NumericLiteralSeparator DecimalDigit + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +._ diff --git a/test/language/literals/numeric/numeric-separator-literal-hil-hd-nsl-hd-err.js b/test/language/literals/numeric/numeric-separator-literal-hil-hd-nsl-hd-err.js new file mode 100644 index 00000000000..d4f73eed20f --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-hil-hd-nsl-hd-err.js @@ -0,0 +1,32 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the appear adjacent to `0x` | `0X` in a + HexIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +0x_1 diff --git a/test/language/literals/numeric/numeric-separator-literal-hil-hd-nsl-hd.js b/test/language/literals/numeric/numeric-separator-literal-hil-hd-nsl-hd.js new file mode 100644 index 00000000000..f8a33c65f45 --- /dev/null +++ b/test/language/literals/numeric/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(0x0_1, 0x01); +assert.sameValue(0X0_1, 0X01); diff --git a/test/language/literals/numeric/numeric-separator-literal-hil-hd-nsl-hds.js b/test/language/literals/numeric/numeric-separator-literal-hil-hd-nsl-hds.js new file mode 100644 index 00000000000..0561c9ad95d --- /dev/null +++ b/test/language/literals/numeric/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(0x0_10, 0x010); +assert.sameValue(0X0_10, 0X010); diff --git a/test/language/literals/numeric/numeric-separator-literal-hil-hds-nsl-hd.js b/test/language/literals/numeric/numeric-separator-literal-hil-hds-nsl-hd.js new file mode 100644 index 00000000000..6dff72fa38b --- /dev/null +++ b/test/language/literals/numeric/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(0x01_0, 0x010); +assert.sameValue(0X01_0, 0X010); diff --git a/test/language/literals/numeric/numeric-separator-literal-hil-hds-nsl-hds.js b/test/language/literals/numeric/numeric-separator-literal-hil-hds-nsl-hds.js new file mode 100644 index 00000000000..2672484cbca --- /dev/null +++ b/test/language/literals/numeric/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(0x01_00, 0x0100); +assert.sameValue(0X01_00, 0X0100); diff --git a/test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-dunder-err.js b/test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-dunder-err.js new file mode 100644 index 00000000000..dcf0f40a37d --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-dunder-err.js @@ -0,0 +1,32 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear adjacent to another + NumericLiteralSeparator in a HexIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +0x0__0 diff --git a/test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-err.js b/test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-err.js new file mode 100644 index 00000000000..7205cbb2198 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-err.js @@ -0,0 +1,32 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the last digit character of a + HexIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + HexIntegerLiteral :: + 0x HexDigits + 0X HexDigits + + HexDigits :: + HexDigit + HexDigits HexDigit + HexDigits NumericLiteralSeparator HexDigit + + HexDigit::one of + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +0x0_ diff --git a/test/language/literals/numeric/numeric-separator-literal-hil-od-nsl-od-one-of.js b/test/language/literals/numeric/numeric-separator-literal-hil-od-nsl-od-one-of.js new file mode 100644 index 00000000000..3f81986dd5d --- /dev/null +++ b/test/language/literals/numeric/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(0x0_0, 0x00); +assert.sameValue(0x1_1, 0x11); +assert.sameValue(0x2_2, 0x22); +assert.sameValue(0x3_3, 0x33); +assert.sameValue(0x4_4, 0x44); +assert.sameValue(0x5_5, 0x55); +assert.sameValue(0x6_6, 0x66); +assert.sameValue(0x7_7, 0x77); +assert.sameValue(0x8_8, 0x88); +assert.sameValue(0x9_9, 0x99); +assert.sameValue(0xa_a, 0xaa); +assert.sameValue(0xb_b, 0xbb); +assert.sameValue(0xc_c, 0xcc); +assert.sameValue(0xd_d, 0xdd); +assert.sameValue(0xe_e, 0xee); +assert.sameValue(0xf_f, 0xff); +assert.sameValue(0xA_A, 0xAA); +assert.sameValue(0xB_B, 0xBB); +assert.sameValue(0xC_C, 0xCC); +assert.sameValue(0xD_D, 0xDD); +assert.sameValue(0xE_E, 0xEE); +assert.sameValue(0xF_F, 0xFF); diff --git a/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dd-one-of.js b/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dd-one-of.js new file mode 100644 index 00000000000..528546e4b1c --- /dev/null +++ b/test/language/literals/numeric/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(1_0, 10); +assert.sameValue(1_1, 11); +assert.sameValue(2_2, 22); +assert.sameValue(3_3, 33); +assert.sameValue(4_4, 44); +assert.sameValue(5_5, 55); +assert.sameValue(6_6, 66); +assert.sameValue(7_7, 77); +assert.sameValue(8_8, 88); +assert.sameValue(9_9, 99); + + diff --git a/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dd.js b/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dd.js new file mode 100644 index 00000000000..3f6e166a838 --- /dev/null +++ b/test/language/literals/numeric/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(1_1, 11); diff --git a/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-dunder-err.js b/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-dunder-err.js new file mode 100644 index 00000000000..dd2f133fa08 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-dunder-err.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: > + NumericLiteralSeparator may not appear adjacent to another + NumericLiteralSeparator in DecimalIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + DecimalIntegerLiteral :: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + + NonZeroDigit :: one of + 1 2 3 4 5 6 7 8 9 + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +0__0123456789 diff --git a/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-leading-zero-err.js b/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-leading-zero-err.js new file mode 100644 index 00000000000..201ac0acdf0 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-leading-zero-err.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 DecimalDigits + + NonZeroDigit :: one of + 1 2 3 4 5 6 7 8 9 + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +0_0123456789 diff --git a/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds.js b/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds.js new file mode 100644 index 00000000000..47ea301dace --- /dev/null +++ b/test/language/literals/numeric/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(1_0123456789, 10123456789); diff --git a/test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-dunder-err.js b/test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-dunder-err.js new file mode 100644 index 00000000000..9be6a2b73fc --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-dunder-err.js @@ -0,0 +1,32 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not appear adjacent to another + NumericLiteralSeparator in a OctalIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +0o0__0 diff --git a/test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-err.js b/test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-err.js new file mode 100644 index 00000000000..1d8b21e8399 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-err.js @@ -0,0 +1,32 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the last digit character of an + OctalIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +0o0_ diff --git a/test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-od-err.js b/test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-od-err.js new file mode 100644 index 00000000000..34276984f85 --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-od-err.js @@ -0,0 +1,32 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NumericLiteralSeparator may not be the appear adjacent to `0o` | `0O` in a + OctalIntegerLiteral +info: | + NumericLiteralSeparator :: + _ + + OctalIntegerLiteral :: + 0o OctalDigits + 0O OctalDigits + + OctalDigits :: + OctalDigit + OctalDigits OctalDigit + OctalDigits NumericLiteralSeparator OctalDigit + + OctalDigit :: one of + 0 1 2 3 4 5 6 7 + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +0o_1 diff --git a/test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-od-one-of.js b/test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-od-one-of.js new file mode 100644 index 00000000000..f9d0f6b16f4 --- /dev/null +++ b/test/language/literals/numeric/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(0o0_0, 0o00); +assert.sameValue(0o1_1, 0o11); +assert.sameValue(0o2_2, 0o22); +assert.sameValue(0o3_3, 0o33); +assert.sameValue(0o4_4, 0o44); +assert.sameValue(0o5_5, 0o55); +assert.sameValue(0o6_6, 0o66); +assert.sameValue(0o7_7, 0o77); diff --git a/test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-od.js b/test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-od.js new file mode 100644 index 00000000000..8555afc406e --- /dev/null +++ b/test/language/literals/numeric/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(0o0_1, 0o01); +assert.sameValue(0O0_1, 0O01); diff --git a/test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-ods.js b/test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-ods.js new file mode 100644 index 00000000000..70bc8396dab --- /dev/null +++ b/test/language/literals/numeric/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(0o0_10, 0o010); +assert.sameValue(0O0_10, 0O010); diff --git a/test/language/literals/numeric/numeric-separator-literal-oil-ods-nsl-od.js b/test/language/literals/numeric/numeric-separator-literal-oil-ods-nsl-od.js new file mode 100644 index 00000000000..7083418e11e --- /dev/null +++ b/test/language/literals/numeric/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(0o01_0, 0o010); +assert.sameValue(0O01_0, 0O010); diff --git a/test/language/literals/numeric/numeric-separator-literal-oil-ods-nsl-ods.js b/test/language/literals/numeric/numeric-separator-literal-oil-ods-nsl-ods.js new file mode 100644 index 00000000000..2e33e076f77 --- /dev/null +++ b/test/language/literals/numeric/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(0o01_00, 0o0100); +assert.sameValue(0O01_00, 0O0100); diff --git a/test/language/literals/numeric/numeric-separator-literal-sign-minus-dds-nsl-dd.js b/test/language/literals/numeric/numeric-separator-literal-sign-minus-dds-nsl-dd.js new file mode 100644 index 00000000000..e11952a61f1 --- /dev/null +++ b/test/language/literals/numeric/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(-123456789_0, -1234567890); +assert.sameValue(-123456789_1, -1234567891); +assert.sameValue(-123456789_2, -1234567892); +assert.sameValue(-123456789_3, -1234567893); +assert.sameValue(-123456789_4, -1234567894); +assert.sameValue(-123456789_5, -1234567895); +assert.sameValue(-123456789_6, -1234567896); +assert.sameValue(-123456789_7, -1234567897); +assert.sameValue(-123456789_8, -1234567898); +assert.sameValue(-123456789_9, -1234567899); diff --git a/test/language/literals/numeric/numeric-separator-literal-sign-plus-dds-nsl-dd.js b/test/language/literals/numeric/numeric-separator-literal-sign-plus-dds-nsl-dd.js new file mode 100644 index 00000000000..89050f1a45c --- /dev/null +++ b/test/language/literals/numeric/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(+123456789_0, 1234567890); +assert.sameValue(+123456789_1, 1234567891); +assert.sameValue(+123456789_2, 1234567892); +assert.sameValue(+123456789_3, 1234567893); +assert.sameValue(+123456789_4, 1234567894); +assert.sameValue(+123456789_5, 1234567895); +assert.sameValue(+123456789_6, 1234567896); +assert.sameValue(+123456789_7, 1234567897); +assert.sameValue(+123456789_8, 1234567898); +assert.sameValue(+123456789_9, 1234567899); diff --git a/test/language/literals/numeric/numeric-separator-literal-unicode-err.js b/test/language/literals/numeric/numeric-separator-literal-unicode-err.js new file mode 100644 index 00000000000..4674392f36a --- /dev/null +++ b/test/language/literals/numeric/numeric-separator-literal-unicode-err.js @@ -0,0 +1,24 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-NumericLiteralSeparator +description: > + NonZeroDigit NumericLiteralSeparator DecimalDigits sequence expressed with + unicode escape sequence +info: | + NumericLiteralSeparator:: + _ + + DecimalIntegerLiteral:: + ... + NonZeroDigit NumericLiteralSeparator_opt DecimalDigits + +negative: + phase: early + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +1\u005F0123456789