diff --git a/features.txt b/features.txt
index b6e73c239476c18d46a016906ecb9805cefb4d45..494a2e1698d6601db8a73da98162be5d6b353b29 100644
--- a/features.txt
+++ b/features.txt
@@ -68,6 +68,10 @@ string-trimming
 String.prototype.trimEnd
 String.prototype.trimStart
 
+# Numeric Separator Literal
+# https://github.com/tc39/proposal-numeric-separator
+numeric-separator-literal
+
 # Standard language features
 #
 # Language features that have been included in a published version of the
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
deleted file mode 100644
index 2f994aa3e527f232fcff9e263b7b121729108ab6..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bd-nsl-bd.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// 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
deleted file mode 100644
index d5164500b73729fb8a3c6701e399cb625e92f611..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bd-nsl-bds.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// 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
deleted file mode 100644
index dc4207be9d74b8ca2dc3ffad87ef3bfe861ad143..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bds-nsl-bd.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// 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
deleted file mode 100644
index daa545afb9883a6c62f7e74870a2c4f7944bd783..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-bil-bds-nsl-bds.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// 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-hil-hd-nsl-hd.js b/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hd-nsl-hd.js
deleted file mode 100644
index 59330a2f4ca4487820ca124ea0d7fe6ca1dc150f..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hd-nsl-hd.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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
deleted file mode 100644
index 06f3a44c62d17f5024f745ab796c232eb98a9f0a..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hd-nsl-hds.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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
deleted file mode 100644
index e4bc5b9fd801c229a26c9f0f8a7735c8d0ad7114..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hds-nsl-hd.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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
deleted file mode 100644
index 4cbdf527a3a5033608439d1012d1f6cb666beef0..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-hds-nsl-hds.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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
deleted file mode 100644
index c28f00087d965a757288a76ef30af075dd2668b1..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-hil-od-nsl-od-one-of.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// 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
index 932a83451b7d23b8fc12f7b3efc7e255e75d5f50..300b712145a9cf5cdb4471f56f069ad2c396378e 100644
--- 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
@@ -6,7 +6,7 @@ esid: sec-tonumber-applied-to-the-string-type
 description: NonZeroDigit NumericLiteralSeparator DecimalDigit
 info: |
 
-  StrStrUnsignedDecimalLiteral :::
+  StrUnsignedDecimalLiteral :::
     StrUnsignedDecimalLiteral
 
   NonZeroDigit ::: one of
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
deleted file mode 100644
index fd9e178d9fd8276991413d29cddbfe84d67245bf..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-od-one-of.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// 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
deleted file mode 100644
index 0721ea9856c2f8f88a5c299870edf6c7466431e5..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-od.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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
deleted file mode 100644
index 174e45325cea493380312fa81bf3b4907f7881f8..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-od-nsl-ods.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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
deleted file mode 100644
index 6f328e3dd10558412d7bc5d5fb106ccb08c4d04c..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-ods-nsl-od.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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
deleted file mode 100644
index 4ccd61f3789808f6ce6baf8ea8117c6c6b958d7f..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-oil-ods-nsl-ods.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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
deleted file mode 100644
index a0917f913e4e06bc1bf865dd96f39e718521fcbe..0000000000000000000000000000000000000000
--- a/test/built-ins/parseFloat/tonumber-numeric-separator-literal-sign-minus-dds-nsl-dd.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// 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/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
index 44a9cb1ee857f33f30f6768a65eb099f9f8f84ab..3eea2a3c139234c25885292b4480a342f3bd471d 100644
--- 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
@@ -25,6 +25,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index f9d5d3cf02099f2009b0f24cef53aa18521f1349..36129c5f01bab00bd67ba72bdde0718ed814ee44 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   BinaryDigit :: one of
     0 1
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 26b19114f78e913cb1ff945ed261074540f18092..84037cc6650e4f16e3229339ac70abec409792b6 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   BinaryDigit :: one of
     0 1
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 323259549b15035fec582030731c2c9d1bad8111..0c964795d6226843ab7c815c60eb61d06e94abf5 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   BinaryDigit :: one of
     0 1
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 744913f05c61ca0ae6ce95d2ca63c1a4772e3439..c7237b2b22ca17332976499fa81e3d15e9fc64e3 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   BinaryDigit :: one of
     0 1
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 3cadb7a8116c621a850b4259590097a5d4534b3c..9b15080c401e2ca5400802ad3794aefd3509662e 100644
--- 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
@@ -25,6 +25,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index 51ac17e97a18bd681fe6bbc9398762c4389a9539..6a6c1e449cafd9337823874355308474fe4119ba 100644
--- 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
@@ -25,6 +25,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index f7bca1ee7b08ef752004eda258b1e28660b597f9..f606a7a939c8e2f913d481002c7cb6858db5f591 100644
--- 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
@@ -21,6 +21,7 @@ info: |
     - DecimalDigits
     ...
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 9057143c62d57ffa01dff527aad2c95e9ec96411..11d1fbff0a15f0f9397b89948c8a9b107049819b 100644
--- 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
@@ -21,6 +21,7 @@ info: |
     - DecimalDigits
     ...
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index ac5b67c2b7d3b02129fe946e07cae57ef302c328..a81aa064274dc3f96948110c255c4cb17128e79d 100644
--- 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
@@ -21,6 +21,7 @@ info: |
     + DecimalDigits
     ...
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index eeeb5f957eb707fb296acacdef6feb6640f21071..fb1d3301abc3d9da255c1f97847f0c28d4e683c7 100644
--- 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
@@ -21,6 +21,7 @@ info: |
     + DecimalDigits
     ...
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 79f5b5ada08c17af9b1a3843bff2e512be40e939..72d0b9785a0974b635864338bd97eff8afdd408a 100644
--- 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
@@ -20,6 +20,7 @@ info: |
   DecimalDigit :: one of
     0 1 2 3 4 5 6 7 8 9
 
+features: [numeric-separator-literal]
 ---*/
 
 assert.sameValue(1_0, 10);
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
index 800714be2c097cf64db3052672b99759aa578f2f..218b0c5620b4f1e75bc22095338fac6f5dbc3503 100644
--- 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
@@ -17,6 +17,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index 11b89ce2c67b012fe1d05094b255a69d0a655ec0..a217b54fea77893c57d20b61583166a6a1e0adbc 100644
--- a/test/language/literals/numeric/numeric-separator-literal-dd-nsl-err.js
+++ b/test/language/literals/numeric/numeric-separator-literal-dd-nsl-err.js
@@ -19,6 +19,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index a3f78d5060e086b84ab5159125acd3678f05d640..290f67bb3b7346627807f29b0f1750cbb23dc53c 100644
--- 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
@@ -20,6 +20,7 @@ info: |
   ExponentIndicator :: one of
     e E
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 3ca1dee1e3d391effcd3585be704e3b81baf2541..30591b3de10c66cb74f076cc3113011eab62d274 100644
--- a/test/language/literals/numeric/numeric-separator-literal-dds-nsl-dd.js
+++ b/test/language/literals/numeric/numeric-separator-literal-dds-nsl-dd.js
@@ -12,6 +12,7 @@ info: |
     ...
     DecimalDigits NumericLiteralSeparator DecimalDigit
 
+features: [numeric-separator-literal]
 ---*/
 
 assert.sameValue(123456789_0, 1234567890);
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
index 560fe23576b2ba4ecf3ad420100ed7e7973d2c35..de512d300a238fcf417820755f7d23f390948f74 100644
--- 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
@@ -17,6 +17,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index a72b521e73a9d0047b2d7bf1b8932cc441ae4ffd..b55e53355e5ec84b149cc7acb944fc53929c5e75 100644
--- a/test/language/literals/numeric/numeric-separator-literal-dds-nsl-err.js
+++ b/test/language/literals/numeric/numeric-separator-literal-dds-nsl-err.js
@@ -20,6 +20,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index ce96ca079b2d2e1ab8e6c7b9527241984b8be4dc..6956736a905ebbf20a3f9d4db21733fbbbd72882 100644
--- 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
@@ -19,6 +19,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index 9b2c418bef459e467372b6de5d8db09c219a36ba..74e6a5b1c8309429b00982617102c8007aa88413 100644
--- 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
@@ -22,6 +22,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index 6d7542eb79328389ff7d83ad8b5991c638d3a190..46ceaf41377dfca67888fab864c3ea2314695256 100644
--- 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
@@ -20,6 +20,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index 26cf232cf99e141c58c5e485fe41f95acf054151..04f1b644d1387c46d4c35f79cea261c4d584be92 100644
--- 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
@@ -20,6 +20,7 @@ info: |
   ExponentIndicator :: one of
     e E
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 0ded986ab66fdd7c9a240e93a8664414f4f23560..37180f4591de36041c92aa2b89fedaf77f53732f 100644
--- 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
@@ -20,6 +20,7 @@ info: |
   ExponentIndicator :: one of
     e E
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index e3acbad8a23e2e9e63a8aff074b6655601f88245..4dee9bb10d376196a7c226d8d4fbe488c2bb9d08 100644
--- 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
@@ -20,6 +20,7 @@ info: |
   ExponentIndicator :: one of
     e E
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index c437ef997c65e65b1e000fda2871a0115d991f3c..7365bd7af5aeb696bf2bf047141dbe38972c1e8c 100644
--- 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
@@ -20,6 +20,7 @@ info: |
   ExponentIndicator :: one of
     e E
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index f968e63d6c1635b0d9b70bb846c8fd72417b39a6..9d7d6581f16296f97d60787f3094a0eb63d87311 100644
--- 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
@@ -21,6 +21,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index df26f129d56cdd58c56cd58148f35826ef6d3142..f6ad9783f3c4ac0eb231a457fb14b900ccba9ee2 100644
--- 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
@@ -22,6 +22,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index 322dcbf8ee62079cd4b514fb36d92aa55761b623..8947cfe57e4ea070958f09f84e286b666529268f 100644
--- a/test/language/literals/numeric/numeric-separator-literal-dot-nsl-err.js
+++ b/test/language/literals/numeric/numeric-separator-literal-dot-nsl-err.js
@@ -20,6 +20,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 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
index d4f73eed20f78215a98d2527122040f9aa7f78e2..15120ff4970d46ed379ba7d88117d7f0dd9ae3be 100644
--- 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
@@ -25,6 +25,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index f8a33c65f45e93ff7396fd66a9ff671213e24e05..0b931cff028b391f9e20c2588804b59c714e9b55 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   HexDigit::one of
     0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 0561c9ad95dbbafda73f4a4eac9e88db74b15b03..b277fde04754e7e8fc5e3abc11d996dad6498d8e 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   HexDigit::one of
     0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 6dff72fa38b762873522f017947dd8494c795c4a..fe6b3199adc1d626bbbfaa737baf5325ffdb6a39 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   HexDigit::one of
     0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 2672484cbca266b21d875f742ef0ba87aad4c68e..f44d6ae825e5d8828122a1714b3e422c32a7a76f 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   HexDigit::one of
     0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index dcf0f40a37d131f9fa24af284e3b8703da3e45e0..4c0d96e65f629105571ed797cb86baa1e0f26a2a 100644
--- 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
@@ -25,6 +25,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index 7205cbb2198989b501acc235f128ef2881ce2728..21e285cc1d9595448a3a0a6252732dd244418c91 100644
--- 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
@@ -25,6 +25,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index 3f81986dd5d99f4dcbac4169f2d63679fbd46aee..8650c06fbfac792f0b19ab30a77da3cf3054d800 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   HexDigit::one of
     0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
 
+features: [numeric-separator-literal]
 ---*/
 
 assert.sameValue(0x0_0, 0x00);
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
index 528546e4b1c0705e0a47ac2ee26386687f68b46f..39d0db0c8abbbb6eccd8e5ab999a4f9c136e5829 100644
--- 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
@@ -22,6 +22,7 @@ info: |
   DecimalDigit :: one of
     0 1 2 3 4 5 6 7 8 9
 
+features: [numeric-separator-literal]
 ---*/
 
 assert.sameValue(1_0, 10);
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
index 3f6e166a838edee8407fa9eaca9132de1e458f9c..f274b19ea60da3239f923a5ae4046656e60fcebc 100644
--- a/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dd.js
+++ b/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dd.js
@@ -20,6 +20,7 @@ info: |
     DecimalDigits DecimalDigit
     ...
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index dd2f133fa084a9889db9d80ca78f966da2769f1e..bd72a358d4a5ef71e92136a8ef4c9e1bd88092c5 100644
--- 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
@@ -20,6 +20,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index 201ac0acdf082e688b90f8ae76f82af8cfecbe2e..d6c6fa868f3aaca71641053537b97328594c00a7 100644
--- 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
@@ -18,6 +18,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index 47ea301dace17a4346378360b533ebd361059a7d..dcd6de0715232e07bae75e702a7a74145af4605f 100644
--- a/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds.js
+++ b/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds.js
@@ -20,6 +20,7 @@ info: |
     DecimalDigits DecimalDigit
     ...
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 9be6a2b73fc12bf15c2e14d90efe414d5dfa3418..a306c6a469a4fc8cd5d928eafa62cb9d9359dbc1 100644
--- 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
@@ -25,6 +25,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index 1d8b21e8399be5b351880d379e284c18e6b011af..d91bf995d0c51a816e2c2400f45a16c79524aa8e 100644
--- 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
@@ -25,6 +25,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index 34276984f853640c616a3b18fb25552c17746d27..8303d30618a7c4b10323401cf5e26cc6c4d9c457 100644
--- 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
@@ -25,6 +25,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
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
index f9d0f6b16f416a14c9d0d1f529e79cbea36f5bb1..1818505032f7a2b10777be2dc9cc1b22466d9891 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   OctalDigit :: one of
     0 1 2 3 4 5 6 7
 
+features: [numeric-separator-literal]
 ---*/
 
 assert.sameValue(0o0_0, 0o00);
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
index 8555afc406e1e9fce27aef8cb36ccda44a3f532f..7c3952d19276d10fa89feca996a2b53695e3fbeb 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   OctalDigit :: one of
     0 1 2 3 4 5 6 7
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 70bc8396dabe0c81d3ebcfd62f48a31539cc2398..44e888aa845b9213a2cbbb98dc2d37a7af4a879c 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   OctalDigit :: one of
     0 1 2 3 4 5 6 7
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 7083418e11e4e4182b4716d7fd6532fed228993f..a87372e3fdfd0868efc183216398822e96565ad8 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   OctalDigit :: one of
     0 1 2 3 4 5 6 7
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index 2e33e076f77c28899025d582258630f6b515855b..d6497729969a10c0c56ca42996f79bf359615685 100644
--- 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
@@ -21,6 +21,7 @@ info: |
   OctalDigit :: one of
     0 1 2 3 4 5 6 7
 
+features: [numeric-separator-literal]
 ---*/
 
 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
index e11952a61f15ccb82d533e88d46f1b60ad720701..bf01b6a137afe901ed2a373d21ee12b001175ffc 100644
--- 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
@@ -12,6 +12,7 @@ info: |
     ...
     - DecimalDigits
 
+features: [numeric-separator-literal]
 ---*/
 
 assert.sameValue(-123456789_0, -1234567890);
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
index 89050f1a45c2a3ba2d20eb5f460715f3029e5b95..25c78243fa0bdb78da14e2d954d31dd30ced7b66 100644
--- 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
@@ -13,6 +13,7 @@ info: |
     + DecimalDigits
     ...
 
+features: [numeric-separator-literal]
 ---*/
 
 assert.sameValue(+123456789_0, 1234567890);
diff --git a/test/language/literals/numeric/numeric-separator-literal-unicode-err.js b/test/language/literals/numeric/numeric-separator-literal-unicode-err.js
index 4674392f36aa081822fdd1039bdb563fa7d36c7e..0ff093d29e8714a41b76cfba7fcd47d04a74679d 100644
--- a/test/language/literals/numeric/numeric-separator-literal-unicode-err.js
+++ b/test/language/literals/numeric/numeric-separator-literal-unicode-err.js
@@ -17,6 +17,8 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+
+features: [numeric-separator-literal]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";