From c9beaa3c692d830afcc33e52f712b7ab7349e9d3 Mon Sep 17 00:00:00 2001
From: test262-automation <test262-automation@bocoup.com>
Date: Tue, 18 Dec 2018 19:20:25 +0000
Subject: [PATCH] [v8-test262-automation] Changes from
 https://github.com/v8/v8.git at sha 766ef168 on Tue Dec 18 2018 19:19:51
 GMT+0000 (Coordinated Universal Time)

---
 .../segmenter/segment-grapheme-following.js   |   38 +
 .../segmenter/segment-grapheme-iterable.js    |   45 +
 .../intl/segmenter/segment-grapheme-next.js   |   40 +
 .../segmenter/segment-grapheme-preceding.js   |   44 +
 .../v8/intl/segmenter/segment-grapheme.js     |   29 +
 .../segmenter/segment-iterator-following.js   |   26 +
 .../segment-iterator-ownPropertyDescriptor.js |   91 ++
 .../segmenter/segment-iterator-position.js    |   11 +
 .../segmenter/segment-iterator-preceding.js   |   30 +
 .../v8/intl/segmenter/segment-iterator.js     |   15 +
 .../intl/segmenter/segment-line-following.js  |   38 +
 .../intl/segmenter/segment-line-iterable.js   |   45 +
 .../v8/intl/segmenter/segment-line-next.js    |   40 +
 .../intl/segmenter/segment-line-preceding.js  |   44 +
 .../v8/intl/segmenter/segment-line.js         |   29 +
 .../segmenter/segment-sentence-following.js   |   38 +
 .../segmenter/segment-sentence-iterable.js    |   45 +
 .../intl/segmenter/segment-sentence-next.js   |   40 +
 .../segmenter/segment-sentence-preceding.js   |   44 +
 .../v8/intl/segmenter/segment-sentence.js     |   29 +
 .../intl/segmenter/segment-word-following.js  |   38 +
 .../intl/segmenter/segment-word-iterable.js   |   45 +
 .../v8/intl/segmenter/segment-word-next.js    |   40 +
 .../intl/segmenter/segment-word-preceding.js  |   44 +
 .../v8/intl/segmenter/segment-word.js         |   29 +
 .../v8/mjsunit/es6/regress/regress-7706.js    |   34 +-
 .../es8/async-arrow-default-function-await.js |    5 +
 .../v8/mjsunit/regress/regress-8607.js        |    7 +
 .../v8/mjsunit/regress/regress-907479.js      |   23 +
 .../mjsunit/regress/regress-crbug-800032.js   |    5 +-
 .../mjsunit/regress/regress-crbug-806388.js   |    5 +-
 .../mjsunit/regress/regress-crbug-915783.js   |   35 +
 .../v8/test262/test262.status                 | 1433 -----------------
 33 files changed, 1058 insertions(+), 1446 deletions(-)
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-grapheme-following.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-grapheme-iterable.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-grapheme-next.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-grapheme-preceding.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-grapheme.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-iterator-following.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-iterator-ownPropertyDescriptor.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-iterator-position.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-iterator-preceding.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-iterator.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-line-following.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-line-iterable.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-line-next.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-line-preceding.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-line.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-sentence-following.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-sentence-iterable.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-sentence-next.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-sentence-preceding.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-sentence.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-word-following.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-word-iterable.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-word-next.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-word-preceding.js
 create mode 100644 implementation-contributed/v8/intl/segmenter/segment-word.js
 create mode 100644 implementation-contributed/v8/mjsunit/es8/async-arrow-default-function-await.js
 create mode 100644 implementation-contributed/v8/mjsunit/regress/regress-8607.js
 create mode 100644 implementation-contributed/v8/mjsunit/regress/regress-907479.js
 create mode 100644 implementation-contributed/v8/mjsunit/regress/regress-crbug-915783.js

diff --git a/implementation-contributed/v8/intl/segmenter/segment-grapheme-following.js b/implementation-contributed/v8/intl/segmenter/segment-grapheme-following.js
new file mode 100644
index 0000000000..4cfd8f4aef
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-grapheme-following.js
@@ -0,0 +1,38 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "grapheme"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  let prev = 0;
+  let segments = [];
+  while (!iter.following()) {
+    assertEquals(undefined, iter.breakType);
+    assertTrue(iter.index >= 0);
+    assertTrue(iter.index <= text.length);
+    assertTrue(iter.index > prev);
+    segments.push(text.substring(prev, iter.index));
+    prev = iter.index;
+  }
+  assertEquals(text, segments.join(""));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-grapheme-iterable.js b/implementation-contributed/v8/intl/segmenter/segment-grapheme-iterable.js
new file mode 100644
index 0000000000..cd18590ee1
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-grapheme-iterable.js
@@ -0,0 +1,45 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "grapheme"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  let segments = [];
+  // Create another %SegmentIterator% to compare with result from the one that
+  // created in the for of loop.
+  let iter = seg.segment(text);
+  let prev = 0;
+  for (const v of seg.segment(text)) {
+    assertEquals(undefined, v.breakType);
+    assertEquals("string", typeof v.segment);
+    assertTrue(v.segment.length > 0);
+    segments.push(v.segment);
+
+    // manually advance the iter.
+    assertFalse(iter.following());
+    assertEquals(iter.breakType, v.breakType);
+    assertEquals(text.substring(prev, iter.index), v.segment);
+    prev = iter.index;
+  }
+  assertTrue(iter.following());
+  assertEquals(text, segments.join(''));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-grapheme-next.js b/implementation-contributed/v8/intl/segmenter/segment-grapheme-next.js
new file mode 100644
index 0000000000..df7f82acff
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-grapheme-next.js
@@ -0,0 +1,40 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "grapheme"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  let segments = [];
+  let oldPos = -1;
+  for (let result = iter.next(); !result.done; result = iter.next()) {
+    const v = result.value;
+    assertEquals(undefined, v.breakType);
+    assertEquals("string", typeof v.segment);
+    assertTrue(v.segment.length > 0);
+    segments.push(v.segment);
+    assertEquals("number", typeof v.index);
+    assertTrue(oldPos < v.index);
+    oldPos = v.index;
+  }
+  assertEquals(text, segments.join(''));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-grapheme-preceding.js b/implementation-contributed/v8/intl/segmenter/segment-grapheme-preceding.js
new file mode 100644
index 0000000000..9ee7b7c811
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-grapheme-preceding.js
@@ -0,0 +1,44 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "grapheme"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  let prev = text.length;
+  let segments = [];
+  iter.preceding(prev)
+  assertEquals(undefined, iter.breakType)
+  assertTrue(iter.index >= 0);
+  assertTrue(iter.index < prev);
+  segments.push(text.substring(iter.index, prev));
+  prev = iter.index;
+  while (!iter.preceding()) {
+    assertEquals(undefined, iter.breakType);
+    assertTrue(iter.index >= 0);
+    assertTrue(iter.index <= text.length);
+    assertTrue(iter.index < prev);
+    segments.push(text.substring(iter.index, prev));
+    prev = iter.index;
+  }
+  assertEquals(text, segments.reverse().join(""));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-grapheme.js b/implementation-contributed/v8/intl/segmenter/segment-grapheme.js
new file mode 100644
index 0000000000..1515f0997d
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-grapheme.js
@@ -0,0 +1,29 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "grapheme"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  assertEquals(undefined, iter.breakType);
+  assertEquals(0, iter.index);
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-iterator-following.js b/implementation-contributed/v8/intl/segmenter/segment-iterator-following.js
new file mode 100644
index 0000000000..14f6dd16c4
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-iterator-following.js
@@ -0,0 +1,26 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const segmenter = new Intl.Segmenter();
+const text = "Hello World, Test 123! Foo Bar. How are you?";
+const iter = segmenter.segment(text);
+
+assertEquals("function", typeof iter.following);
+
+// ToNumber("ABC") return NaN, ToInteger("ABC") return +0, ToIndex("ABC") return 0
+assertDoesNotThrow(() => iter.following("ABC"));
+// ToNumber(null) return +0, ToInteger(null) return +0, ToIndex(null) return 0
+assertDoesNotThrow(() => iter.following(null));
+// ToNumber(1.4) return 1.4, ToInteger(1.4) return 1, ToIndex(1.4) return 1
+assertDoesNotThrow(() => iter.following(1.4));
+
+assertThrows(() => iter.following(-3), RangeError);
+
+// 1.5.3.2 %SegmentIteratorPrototype%.following( [ from ] )
+// 3.b If from >= iterator.[[SegmentIteratorString]], throw a RangeError exception.
+assertDoesNotThrow(() => iter.following(text.length - 1));
+assertThrows(() => iter.following(text.length), RangeError);
+assertThrows(() => iter.following(text.length + 1), RangeError);
diff --git a/implementation-contributed/v8/intl/segmenter/segment-iterator-ownPropertyDescriptor.js b/implementation-contributed/v8/intl/segmenter/segment-iterator-ownPropertyDescriptor.js
new file mode 100644
index 0000000000..3021c81c63
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-iterator-ownPropertyDescriptor.js
@@ -0,0 +1,91 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+let seg = new Intl.Segmenter();
+let descriptor = Object.getOwnPropertyDescriptor(
+    Intl.Segmenter, "supportedLocalesOf");
+assertTrue(descriptor.writable);
+assertFalse(descriptor.enumerable);
+assertTrue(descriptor.configurable);
+
+// ecma402 #sec-Intl.Segmenter.prototype
+// Intl.Segmenter.prototype
+// The value of Intl.Segmenter.prototype is %SegmenterPrototype%.
+// This property has the attributes
+// { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+descriptor = Object.getOwnPropertyDescriptor(Intl.Segmenter, "prototype");
+assertFalse(descriptor.writable);
+assertFalse(descriptor.enumerable);
+assertFalse(descriptor.configurable);
+
+for (let func of ["segment", "resolvedOptions"]) {
+  let descriptor = Object.getOwnPropertyDescriptor(
+      Intl.Segmenter.prototype, func);
+  assertTrue(descriptor.writable);
+  assertFalse(descriptor.enumerable);
+  assertTrue(descriptor.configurable);
+}
+
+let segmentIterator = seg.segment('text');
+let prototype = Object.getPrototypeOf(segmentIterator);
+for (let func of ["next", "following", "preceding"]) {
+  let descriptor = Object.getOwnPropertyDescriptor(prototype, func);
+  assertTrue(descriptor.writable);
+  assertFalse(descriptor.enumerable);
+  assertTrue(descriptor.configurable);
+}
+
+function checkGetterProperty(prototype, property) {
+  let desc = Object.getOwnPropertyDescriptor(prototype, property);
+  assertEquals(`get ${property}`, desc.get.name);
+  assertEquals('function', typeof desc.get)
+  assertEquals(undefined, desc.set);
+  assertFalse(desc.enumerable);
+  assertTrue(desc.configurable);
+}
+
+// Test the descriptor is correct for properties.
+checkGetterProperty(prototype, 'index');
+checkGetterProperty(prototype, 'breakType');
+
+// Test the SegmentIteratorPrototype methods are called with same
+// receiver and won't throw.
+assertDoesNotThrow(() => prototype.next.call(segmentIterator));
+assertDoesNotThrow(() => prototype.following.call(segmentIterator));
+assertDoesNotThrow(() => prototype.preceding.call(segmentIterator));
+
+// Test the SegmentIteratorPrototype methods are called with a different
+// receiver and correctly throw.
+var otherReceivers = [
+    1, 123.45, undefined, null, "string", true, false,
+    Intl, Intl.Segmenter, Intl.Segmenter.prototype,
+    prototype,
+    new Intl.Segmenter(),
+    new Intl.Collator(),
+    new Intl.DateTimeFormat(),
+    new Intl.NumberFormat(),
+];
+for (let rec of otherReceivers) {
+   assertThrows(() => prototype.next.call(rec), TypeError);
+   assertThrows(() => prototype.following.call(rec), TypeError);
+   assertThrows(() => prototype.preceding.call(rec), TypeError);
+}
+
+// Check the property of the return object of next()
+let nextReturn = segmentIterator.next();
+
+function checkProperty(obj, property) {
+  let desc = Object.getOwnPropertyDescriptor(obj, property);
+  assertTrue(desc.writable);
+  assertTrue(desc.enumerable);
+  assertTrue(desc.configurable);
+}
+
+checkProperty(nextReturn, 'done');
+checkProperty(nextReturn, 'value');
+checkProperty(nextReturn.value, 'segment');
+checkProperty(nextReturn.value, 'breakType');
+checkProperty(nextReturn.value, 'index');
diff --git a/implementation-contributed/v8/intl/segmenter/segment-iterator-position.js b/implementation-contributed/v8/intl/segmenter/segment-iterator-position.js
new file mode 100644
index 0000000000..649076b454
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-iterator-position.js
@@ -0,0 +1,11 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const segmenter = new Intl.Segmenter();
+const text = "Hello World, Test 123! Foo Bar. How are you?";
+const iter = segmenter.segment(text);
+
+assertEquals(0, iter.index);
diff --git a/implementation-contributed/v8/intl/segmenter/segment-iterator-preceding.js b/implementation-contributed/v8/intl/segmenter/segment-iterator-preceding.js
new file mode 100644
index 0000000000..09ba2847cc
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-iterator-preceding.js
@@ -0,0 +1,30 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const segmenter = new Intl.Segmenter();
+const text = "Hello World, Test 123! Foo Bar. How are you?";
+const iter = segmenter.segment(text);
+
+assertEquals("function", typeof iter.preceding);
+
+// ToNumber("ABC") return NaN, ToInteger("ABC") return +0, ToIndex("ABC") return 0
+assertThrows(() => iter.preceding("ABC"), RangeError);
+// ToNumber(null) return +0, ToInteger(null) return +0, ToIndex(null) return 0
+assertThrows(() => iter.preceding(null), RangeError);
+assertThrows(() => iter.preceding(-3), RangeError);
+
+// ToNumber(1.4) return 1.4, ToInteger(1.4) return 1, ToIndex(1.4) return 1
+assertDoesNotThrow(() => iter.preceding(1.4));
+
+// 1.5.3.3 %SegmentIteratorPrototype%.preceding( [ from ] )
+// 3.b If ... from = 0, throw a RangeError exception.
+assertThrows(() => iter.preceding(0), RangeError);
+
+// 1.5.3.3 %SegmentIteratorPrototype%.preceding( [ from ] )
+// 3.b If from > iterator.[[SegmentIteratorString]] ... , throw a RangeError exception.
+assertDoesNotThrow(() => iter.preceding(text.length - 1));
+assertDoesNotThrow(() => iter.preceding(text.length));
+assertThrows(() => iter.preceding(text.length + 1), RangeError);
diff --git a/implementation-contributed/v8/intl/segmenter/segment-iterator.js b/implementation-contributed/v8/intl/segmenter/segment-iterator.js
new file mode 100644
index 0000000000..531394f636
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-iterator.js
@@ -0,0 +1,15 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const text = "Hello World, Test 123! Foo Bar. How are you?";
+for (const granularity of ["grapheme", "word", "sentence", "line"]) {
+  const segmenter = new Intl.Segmenter("en", { granularity });
+  const iter = segmenter.segment(text);
+
+  assertEquals("number", typeof iter.index);
+  assertEquals(0, iter.index);
+  assertEquals(undefined, iter.breakType);
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-line-following.js b/implementation-contributed/v8/intl/segmenter/segment-line-following.js
new file mode 100644
index 0000000000..77a17a6d49
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-line-following.js
@@ -0,0 +1,38 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "line"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  let prev = 0;
+  let segments = [];
+  while (!iter.following()) {
+    assertTrue(["soft", "hard"].includes(iter.breakType), iter.breakType);
+    assertTrue(iter.index >= 0);
+    assertTrue(iter.index <= text.length);
+    assertTrue(iter.index > prev);
+    segments.push(text.substring(prev, iter.index));
+    prev = iter.index;
+  }
+  assertEquals(text, segments.join(""));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-line-iterable.js b/implementation-contributed/v8/intl/segmenter/segment-line-iterable.js
new file mode 100644
index 0000000000..262bb669d5
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-line-iterable.js
@@ -0,0 +1,45 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "line"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  let segments = [];
+  // Create another %SegmentIterator% to compare with result from the one that
+  // created in the for of loop.
+  let iter = seg.segment(text);
+  let prev = 0;
+  for (const v of seg.segment(text)) {
+    assertTrue(["soft", "hard"].includes(v.breakType), v.breakType);
+    assertEquals("string", typeof v.segment);
+    assertTrue(v.segment.length > 0);
+    segments.push(v.segment);
+
+    // manually advance the iter.
+    assertFalse(iter.following());
+    assertEquals(iter.breakType, v.breakType);
+    assertEquals(text.substring(prev, iter.index), v.segment);
+    prev = iter.index;
+  }
+  assertTrue(iter.following());
+  assertEquals(text, segments.join(''));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-line-next.js b/implementation-contributed/v8/intl/segmenter/segment-line-next.js
new file mode 100644
index 0000000000..7bbe9a4491
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-line-next.js
@@ -0,0 +1,40 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "line"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  let segments = [];
+  let oldPos = -1;
+  for (let result = iter.next(); !result.done; result = iter.next()) {
+    const v = result.value;
+    assertTrue(["soft", "hard"].includes(iter.breakType), iter.breakType);
+    assertEquals("string", typeof v.segment);
+    assertTrue(v.segment.length > 0);
+    segments.push(v.segment);
+    assertEquals("number", typeof v.index);
+    assertTrue(oldPos < v.index);
+    oldPos = v.index;
+  }
+  assertEquals(text, segments.join(''));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-line-preceding.js b/implementation-contributed/v8/intl/segmenter/segment-line-preceding.js
new file mode 100644
index 0000000000..2e6569cc99
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-line-preceding.js
@@ -0,0 +1,44 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "line"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  let prev = text.length;
+  let segments = [];
+  iter.preceding(prev)
+  assertTrue(["soft", "hard"].includes(iter.breakType), iter.breakType);
+  assertTrue(iter.index >= 0);
+  assertTrue(iter.index < prev);
+  segments.push(text.substring(iter.index, prev));
+  prev = iter.index;
+  while (!iter.preceding()) {
+    assertTrue(["soft", "hard"].includes(iter.breakType), iter.breakType);
+    assertTrue(iter.index >= 0);
+    assertTrue(iter.index <= text.length);
+    assertTrue(iter.index < prev);
+    segments.push(text.substring(iter.index, prev));
+    prev = iter.index;
+  }
+  assertEquals(text, segments.reverse().join(""));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-line.js b/implementation-contributed/v8/intl/segmenter/segment-line.js
new file mode 100644
index 0000000000..8ac522e723
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-line.js
@@ -0,0 +1,29 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "line"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  assertEquals(undefined, iter.breakType);
+  assertEquals(0, iter.index);
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-sentence-following.js b/implementation-contributed/v8/intl/segmenter/segment-sentence-following.js
new file mode 100644
index 0000000000..c6b4aa25d6
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-sentence-following.js
@@ -0,0 +1,38 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "sentence"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  let prev = 0;
+  let segments = [];
+  while (!iter.following()) {
+    assertTrue(["sep", "term"].includes(iter.breakType), iter.breakType);
+    assertTrue(iter.index >= 0);
+    assertTrue(iter.index <= text.length);
+    assertTrue(iter.index > prev);
+    segments.push(text.substring(prev, iter.index));
+    prev = iter.index;
+  }
+  assertEquals(text, segments.join(""));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-sentence-iterable.js b/implementation-contributed/v8/intl/segmenter/segment-sentence-iterable.js
new file mode 100644
index 0000000000..a84807bfb0
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-sentence-iterable.js
@@ -0,0 +1,45 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "sentence"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  let segments = [];
+  // Create another %SegmentIterator% to compare with result from the one that
+  // created in the for of loop.
+  let iter = seg.segment(text);
+  let prev = 0;
+  for (const v of seg.segment(text)) {
+    assertTrue(["sep", "term"].includes(v.breakType), v.breakType);
+    assertEquals("string", typeof v.segment);
+    assertTrue(v.segment.length > 0);
+    segments.push(v.segment);
+
+    // manually advance the iter.
+    assertFalse(iter.following());
+    assertEquals(iter.breakType, v.breakType);
+    assertEquals(text.substring(prev, iter.index), v.segment);
+    prev = iter.index;
+  }
+  assertTrue(iter.following());
+  assertEquals(text, segments.join(''));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-sentence-next.js b/implementation-contributed/v8/intl/segmenter/segment-sentence-next.js
new file mode 100644
index 0000000000..466eac54d3
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-sentence-next.js
@@ -0,0 +1,40 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "sentence"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  let segments = [];
+  let oldPos = -1;
+  for (let result = iter.next(); !result.done; result = iter.next()) {
+    const v = result.value;
+    assertTrue(["sep", "term"].includes(iter.breakType), iter.breakType);
+    assertEquals("string", typeof v.segment);
+    assertTrue(v.segment.length > 0);
+    segments.push(v.segment);
+    assertEquals("number", typeof v.index);
+    assertTrue(oldPos < v.index);
+    oldPos = v.index;
+  }
+  assertEquals(text, segments.join(''));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-sentence-preceding.js b/implementation-contributed/v8/intl/segmenter/segment-sentence-preceding.js
new file mode 100644
index 0000000000..bbc17eecce
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-sentence-preceding.js
@@ -0,0 +1,44 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "sentence"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  let prev = text.length;
+  let segments = [];
+  iter.preceding(prev);
+  assertTrue(["sep", "term"].includes(iter.breakType), iter.breakType);
+  assertTrue(iter.index >= 0);
+  assertTrue(iter.index < prev);
+  segments.push(text.substring(iter.index, prev));
+  prev = iter.index;
+  while (!iter.preceding()) {
+    assertTrue(["sep", "term"].includes(iter.breakType), iter.breakType);
+    assertTrue(iter.index >= 0);
+    assertTrue(iter.index <= text.length);
+    assertTrue(iter.index < prev);
+    segments.push(text.substring(iter.index, prev));
+    prev = iter.index;
+  }
+  assertEquals(text, segments.reverse().join(""));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-sentence.js b/implementation-contributed/v8/intl/segmenter/segment-sentence.js
new file mode 100644
index 0000000000..a802362e0e
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-sentence.js
@@ -0,0 +1,29 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "sentence"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  assertEquals(undefined, iter.breakType);
+  assertEquals(0, iter.index);
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-word-following.js b/implementation-contributed/v8/intl/segmenter/segment-word-following.js
new file mode 100644
index 0000000000..cd0950eff5
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-word-following.js
@@ -0,0 +1,38 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "word"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  let prev = 0;
+  let segments = [];
+  while (!iter.following()) {
+    assertTrue(["word", "none"].includes(iter.breakType), iter.breakType);
+    assertTrue(iter.index >= 0);
+    assertTrue(iter.index <= text.length);
+    assertTrue(iter.index > prev);
+    segments.push(text.substring(prev, iter.index));
+    prev = iter.index;
+  }
+  assertEquals(text, segments.join(""));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-word-iterable.js b/implementation-contributed/v8/intl/segmenter/segment-word-iterable.js
new file mode 100644
index 0000000000..3dab2103c7
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-word-iterable.js
@@ -0,0 +1,45 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "word"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  let segments = [];
+  // Create another %SegmentIterator% to compare with result from the one that
+  // created in the for of loop.
+  let iter = seg.segment(text);
+  let prev = 0;
+  for (const v of seg.segment(text)) {
+    assertTrue(["word", "none"].includes(v.breakType), v.breakType);
+    assertEquals("string", typeof v.segment);
+    assertTrue(v.segment.length > 0);
+    segments.push(v.segment);
+
+    // manually advance the iter.
+    assertFalse(iter.following());
+    assertEquals(iter.breakType, v.breakType);
+    assertEquals(text.substring(prev, iter.index), v.segment);
+    prev = iter.index;
+  }
+  assertTrue(iter.following());
+  assertEquals(text, segments.join(''));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-word-next.js b/implementation-contributed/v8/intl/segmenter/segment-word-next.js
new file mode 100644
index 0000000000..54fb40a251
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-word-next.js
@@ -0,0 +1,40 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "word"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  let segments = [];
+  let oldPos = -1;
+  for (let result = iter.next(); !result.done; result = iter.next()) {
+    const v = result.value;
+    assertTrue(["word", "none"].includes(iter.breakType), iter.breakType);
+    assertEquals("string", typeof v.segment);
+    assertTrue(v.segment.length > 0);
+    segments.push(v.segment);
+    assertEquals("number", typeof v.index);
+    assertTrue(oldPos < v.index);
+    oldPos = v.index;
+  }
+  assertEquals(text, segments.join(''));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-word-preceding.js b/implementation-contributed/v8/intl/segmenter/segment-word-preceding.js
new file mode 100644
index 0000000000..7ca5132dfd
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-word-preceding.js
@@ -0,0 +1,44 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "word"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  let prev = text.length;
+  let segments = [];
+  iter.preceding(prev);
+  assertTrue(["word", "none"].includes(iter.breakType), iter.breakType);
+  assertTrue(iter.index >= 0);
+  assertTrue(iter.index < prev);
+  segments.push(text.substring(iter.index, prev));
+  prev = iter.index;
+  while (!iter.preceding()) {
+    assertTrue(["word", "none"].includes(iter.breakType), iter.breakType);
+    assertTrue(iter.index >= 0);
+    assertTrue(iter.index <= text.length);
+    assertTrue(iter.index < prev);
+    segments.push(text.substring(iter.index, prev));
+    prev = iter.index;
+  }
+  assertEquals(text, segments.reverse().join(""));
+}
diff --git a/implementation-contributed/v8/intl/segmenter/segment-word.js b/implementation-contributed/v8/intl/segmenter/segment-word.js
new file mode 100644
index 0000000000..b191a67cb9
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/segment-word.js
@@ -0,0 +1,29 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const seg = new Intl.Segmenter([], {granularity: "word"})
+for (const text of [
+    "Hello world!", // English
+    " Hello world! ",  // English with space before/after
+    " Hello world? Foo bar!", // English
+    "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech
+    "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?",  // Vietnamese
+    "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek
+    "Решение Индии о покупке российских С-400 расценили как вызов США",  // Russian
+    "הרופא שהציל נשים והנערה ששועבדה ע",  // Hebrew,
+    "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic
+    "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर",  //  Hindi
+    "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil
+    "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu
+    "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese
+    "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว",  // Thai
+    "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp",  // Japanese
+    "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean
+    ]) {
+  const iter = seg.segment(text);
+  assertEquals(undefined, iter.breakType);
+  assertEquals(0, iter.index);
+}
diff --git a/implementation-contributed/v8/mjsunit/es6/regress/regress-7706.js b/implementation-contributed/v8/mjsunit/es6/regress/regress-7706.js
index 78ba4c9dee..7401a731d4 100644
--- a/implementation-contributed/v8/mjsunit/es6/regress/regress-7706.js
+++ b/implementation-contributed/v8/mjsunit/es6/regress/regress-7706.js
@@ -4,13 +4,37 @@
 
 // Flags: --allow-natives-syntax
 
-class Test extends Number {}
-Test.prototype[Symbol.toStringTag] = "Test";
-
 function toString(o) {
   %ToFastProperties(o.__proto__);
   return Object.prototype.toString.call(o);
 }
 
-assertEquals("[object Test]", toString(new Test), "Try #1");
-assertEquals("[object Test]", toString(new Test), "Try #2");
+class TestNumber extends Number {}
+TestNumber.prototype[Symbol.toStringTag] = "TestNumber";
+assertEquals("[object TestNumber]", toString(new TestNumber), "Try #1");
+assertEquals("[object TestNumber]", toString(new TestNumber), "Try #2");
+
+class TestBoolean extends Boolean {}
+TestBoolean.prototype[Symbol.toStringTag] = "TestBoolean";
+assertEquals("[object TestBoolean]", toString(new TestBoolean), "Try #1");
+assertEquals("[object TestBoolean]", toString(new TestBoolean), "Try #2");
+
+class TestString extends String {}
+TestString.prototype[Symbol.toStringTag] = "TestString";
+assertEquals("[object TestString]", toString(new TestString), "Try #1");
+assertEquals("[object TestString]", toString(new TestString), "Try #2");
+
+class base {}
+class TestBigInt extends base {}
+TestBigInt.prototype[Symbol.toStringTag] = 'TestBigInt';
+var b = new TestBigInt();
+b.__proto__.__proto__ = BigInt.prototype;
+assertEquals("[object TestBigInt]", toString(b), "Try #1");
+assertEquals("[object TestBigInt]", toString(b), "Try #2");
+
+class TestSymbol extends base {}
+TestSymbol.prototype[Symbol.toStringTag] = 'TestSymbol';
+var sym = new TestSymbol();
+sym.__proto__.__proto__ = Symbol.prototype;
+assertEquals("[object TestSymbol]", toString(sym), "Try #1");
+assertEquals("[object TestSymbol]", toString(sym), "Try #2");
diff --git a/implementation-contributed/v8/mjsunit/es8/async-arrow-default-function-await.js b/implementation-contributed/v8/mjsunit/es8/async-arrow-default-function-await.js
new file mode 100644
index 0000000000..6c4d00e61a
--- /dev/null
+++ b/implementation-contributed/v8/mjsunit/es8/async-arrow-default-function-await.js
@@ -0,0 +1,5 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+async(o = (function(await) {})) => 0
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-8607.js b/implementation-contributed/v8/mjsunit/regress/regress-8607.js
new file mode 100644
index 0000000000..3bf9f7156f
--- /dev/null
+++ b/implementation-contributed/v8/mjsunit/regress/regress-8607.js
@@ -0,0 +1,7 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+assertThrows("[({ p: this }), [][0]] = x", SyntaxError);
+assertThrows("[...a, [][0]] = []", SyntaxError);
+assertThrows("[...o=1,[][0]] = []", SyntaxError);
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-907479.js b/implementation-contributed/v8/mjsunit/regress/regress-907479.js
new file mode 100644
index 0000000000..e3e1d0926a
--- /dev/null
+++ b/implementation-contributed/v8/mjsunit/regress/regress-907479.js
@@ -0,0 +1,23 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+'use strict';
+
+{
+  const x = [42];
+  x.splice(0, 0, 23);
+  assertEquals([23, 42], x);
+  x.length++;
+  assertEquals([23, 42, ,], x);
+  assertFalse(x.hasOwnProperty(2));
+}
+
+{
+  const x = [4.2];
+  x.splice(0, 0, 23);
+  assertEquals([23, 4.2], x);
+  x.length++;
+  assertEquals([23, 4.2, ,], x);
+  assertFalse(x.hasOwnProperty(2));
+}
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-crbug-800032.js b/implementation-contributed/v8/mjsunit/regress/regress-crbug-800032.js
index 7c9206c7f6..2b4bc067fb 100644
--- a/implementation-contributed/v8/mjsunit/regress/regress-crbug-800032.js
+++ b/implementation-contributed/v8/mjsunit/regress/regress-crbug-800032.js
@@ -6,10 +6,7 @@
 
 
 class Derived extends RegExp {
-  constructor(a) {
-    // Syntax Error
-    const a = 1;
-  }
+  constructor(a) { throw "error" }
 }
 
 let o = Reflect.construct(RegExp, [], Derived);
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-crbug-806388.js b/implementation-contributed/v8/mjsunit/regress/regress-crbug-806388.js
index b55b50107e..138ae18dae 100644
--- a/implementation-contributed/v8/mjsunit/regress/regress-crbug-806388.js
+++ b/implementation-contributed/v8/mjsunit/regress/regress-crbug-806388.js
@@ -5,10 +5,7 @@
 // Flags: --allow-natives-syntax --enable-slow-asserts --expose-gc
 
 class Derived extends Array {
-    constructor(a) {
-      // Syntax Error.
-      const a = 1;
-    }
+    constructor(a) { throw "error" }
 }
 
 // Derived is not a subclass of RegExp
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-crbug-915783.js b/implementation-contributed/v8/mjsunit/regress/regress-crbug-915783.js
new file mode 100644
index 0000000000..9220b4aa54
--- /dev/null
+++ b/implementation-contributed/v8/mjsunit/regress/regress-crbug-915783.js
@@ -0,0 +1,35 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+const constructors = [
+  [Uint8Array, [0, 1]],
+  [Int8Array, [0, 1]],
+  [Uint16Array, [0, 1]],
+  [Int16Array, [0, 1]],
+  [Uint32Array, [0, 1]],
+  [Int32Array, [0, 1]],
+  [Float32Array, [0, 1]],
+  [Float64Array, [0, 1]],
+  [Uint8ClampedArray, [0, 1]],
+  [BigInt64Array, [0n, 1n]],
+  [BigUint64Array, [0n, 1n]]
+];
+
+let typedArray;
+function detachBuffer() {
+  %ArrayBufferDetach(typedArray.buffer);
+  return 'a';
+}
+Number.prototype.toString = detachBuffer;
+BigInt.prototype.toString = detachBuffer;
+Number.prototype.toLocaleString = detachBuffer;
+BigInt.prototype.toLocaleString = detachBuffer;
+
+constructors.forEach(([constructor, arr]) => {
+  typedArray = new constructor(arr);
+  assertSame(typedArray.join(), '0,1');
+  assertSame(typedArray.toLocaleString(), 'a,');
+});
diff --git a/implementation-contributed/v8/test262/test262.status b/implementation-contributed/v8/test262/test262.status
index e31636f691..c98db3208c 100644
--- a/implementation-contributed/v8/test262/test262.status
+++ b/implementation-contributed/v8/test262/test262.status
@@ -499,1425 +499,6 @@
   'annexB/language/eval-code/direct/func-switch-case-eval-func-no-skip-try': [FAIL],
   'annexB/language/eval-code/direct/func-switch-dflt-eval-func-no-skip-try': [FAIL],
 
-  # PreParser doesn't produce early errors
-  # https://bugs.chromium.org/p/v8/issues/detail?id=2728
-  'language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate': [FAIL],
-  'language/expressions/object/method-definition/generator-param-redecl-const': [FAIL],
-  'language/expressions/object/method-definition/generator-param-redecl-let': [FAIL],
-  'language/expressions/object/method-definition/name-param-redecl': [FAIL],
-  'language/statements/async-function/early-errors-declaration-formals-body-duplicate': [FAIL],
-
-  # SharedArrayBuffer tests that require flags
-  'built-ins/SharedArrayBuffer/*': ['--harmony-sharedarraybuffer'],
-  'built-ins/Atomics/*': ['--harmony-sharedarraybuffer'],
-  'built-ins/ArrayBuffer/prototype/byteLength/this-is-sharedarraybuffer': ['--harmony-sharedarraybuffer'],
-  'built-ins/ArrayBuffer/prototype/slice/this-is-sharedarraybuffer': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/buffer-does-not-have-arraybuffer-data-throws-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/buffer-reference-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/byteoffset-is-negative-throws-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/custom-proto-if-not-object-fallbacks-to-default-prototype-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/custom-proto-if-object-is-used-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/defined-bytelength-and-byteoffset-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/defined-byteoffset-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/defined-byteoffset-undefined-bytelength-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/excessive-bytelength-throws-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/excessive-byteoffset-throws-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/instance-extensibility-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/negative-bytelength-throws-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/negative-byteoffset-throws-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/newtarget-undefined-throws-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/proto-from-ctor-realm-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/buffer/return-buffer-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/buffer/this-has-no-dataview-internal-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/byteLength/return-bytelength-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/byteLength/this-has-no-dataview-internal-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/byteOffset/return-byteoffset-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/byteOffset/this-has-no-dataview-internal-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/getInt32/index-is-out-of-range-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/getInt32/negative-byteoffset-throws-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-symbol-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/getInt32/return-value-clean-arraybuffer-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/getInt32/return-values-custom-offset-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/getInt32/return-values-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/getInt32/this-has-no-dataview-internal-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/prototype/getInt32/to-boolean-littleendian-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/return-abrupt-tonumber-bytelength-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/return-abrupt-tonumber-bytelength-symbol-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/return-abrupt-tonumber-byteoffset-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/return-abrupt-tonumber-byteoffset-symbol-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/return-instance-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/toindex-bytelength-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/DataView/toindex-byteoffset-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type-conversions-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-same-type-sab': ['--harmony-sharedarraybuffer'],
-  'built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type-sab': ['--harmony-sharedarraybuffer'],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=8100
-  'built-ins/Atomics/notify/bigint/*': [SKIP],
-  'built-ins/Atomics/wait/bigint/*': [SKIP],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=6049
-  'built-ins/Object/internals/DefineOwnProperty/consistent-value-function-caller': [FAIL_SLOPPY],
-  'built-ins/Object/internals/DefineOwnProperty/consistent-value-function-arguments': [FAIL_SLOPPY],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=6776
-  'built-ins/Proxy/ownKeys/return-duplicate-entries-throws': [FAIL],
-  'built-ins/Proxy/ownKeys/return-duplicate-symbol-entries-throws': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=7184
-  'annexB/language/expressions/yield/star-iterable-return-emulates-undefined-throws-when-called': [FAIL],
-  'annexB/language/statements/for-await-of/iterator-close-return-emulates-undefined-throws-when-called': [FAIL],
-  'annexB/language/statements/for-of/iterator-close-return-emulates-undefined-throws-when-called': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=7468
-  'language/statements/class/privatename-not-valid-earlyerr-script-8': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=5690
-  'language/expressions/call/eval-spread': [FAIL],
-  'language/expressions/call/eval-spread-empty-leading': [FAIL],
-  'language/expressions/call/eval-spread-empty-trailing': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=7472
-  'intl402/NumberFormat/currency-digits': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=7474
-  'intl402/NumberFormat/prototype/format/format-fraction-digits': [FAIL],
-  'intl402/NumberFormat/prototype/format/format-significant-digits': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=7482
-  'intl402/DateTimeFormat/prototype/resolvedOptions/resolved-locale-with-hc-unicode': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=7483
-  'annexB/built-ins/Function/createdynfn-html-close-comment-params': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=7669
-  'intl402/Intl/getCanonicalLocales/canonicalized-tags': [FAIL],
-
-  # Tests assume that the sort order of "same elements" (comparator returns 0)
-  # is deterministic.
-  # https://crbug.com/v8/7808
-  'intl402/String/prototype/localeCompare/returns-same-results-as-Collator': [SKIP],
-  'intl402/Collator/prototype/compare/bound-to-collator-instance': [SKIP],
-
-  # https://github.com/tc39/ecma402/issues/223
-  'intl402/Collator/missing-unicode-ext-value-defaults-to-true': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=8260
-  'intl402/Locale/constructor-non-iana-canon': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=8261
-  'intl402/Locale/constructor-options-language-valid': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=8262
-  'intl402/Locale/constructor-parse-twice': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=8246
-  'intl402/Locale/constructor-tag': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=8244
-  'intl402/Locale/constructor-getter-order': [FAIL],
-  'intl402/Locale/constructor-locale-object': [FAIL],
-  'intl402/Locale/constructor-options-language-grandfathered': [FAIL],
-  'intl402/Locale/constructor-options-language-invalid': [FAIL],
-  'intl402/Locale/constructor-options-region-invalid': [FAIL],
-  'intl402/Locale/constructor-options-region-valid': [FAIL],
-  'intl402/Locale/constructor-options-script-invalid': [FAIL],
-  'intl402/Locale/constructor-options-script-valid': [FAIL],
-  'intl402/Locale/getters': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=8243
-  'intl402/Locale/extensions-private': [FAIL],
-  'intl402/Locale/getters-privateuse': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=8236
-  'intl402/Locale/likely-subtags': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=8242
-  'intl402/Locale/extensions-grandfathered': [FAIL],
-  'intl402/Locale/getters-grandfathered': [FAIL],
-  'intl402/Locale/likely-subtags-grandfathered': [FAIL],
-
-  # Wrong test see https://github.com/tc39/test262/pull/1835
-  'intl402/Locale/constructor-options-numeric-valid': [FAIL],
-  'intl402/Locale/constructor-options-numeric-undefined': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=6705
-  'built-ins/Object/assign/strings-and-symbol-order': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=7831
-  'language/statements/generators/generator-created-after-decl-inst': [FAIL],
-  'language/expressions/generators/generator-created-after-decl-inst': [FAIL],
-  'language/expressions/async-generator/generator-created-after-decl-inst': [FAIL],
-  'language/statements/async-generator/generator-created-after-decl-inst': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=8099
-  'intl402/NumberFormat/prototype/format/format-negative-numbers': [FAIL],
-
-  # await tests that require flags
-  'language/expressions/await/async-generator-interleaved': ['--harmony-await-optimization'],
-  'language/expressions/await/await-monkey-patched-promise': ['--harmony-await-optimization'],
-  'language/expressions/await/for-await-of-interleaved': ['--harmony-await-optimization'],
-  'language/expressions/await/async-await-interleaved': ['--harmony-await-optimization'],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=6891
-  'intl402/Segmenter/iterator/following': [FAIL],
-  'intl402/Segmenter/iterator/granularity': [FAIL],
-  'intl402/Segmenter/iterator/preceding': [FAIL],
-  'intl402/Segmenter/prototype/segment/segment-line': [FAIL],
-  'intl402/Segmenter/prototype/segment/segment-sentence': [FAIL],
-  'intl402/Segmenter/prototype/segment/segment-word': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=8021
-  'built-ins/Object/fromEntries/requires-argument': [SKIP],
-  ######################## NEEDS INVESTIGATION ###########################
-
-  # These test failures are specific to the intl402 suite and need investigation
-  # to be either marked as bugs with issues filed for them or as deliberate
-  # incompatibilities if the test cases turn out to be broken or ambiguous.
-  # Some of these are related to v8:4361 in being visible side effects from Intl.
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=7833
-  'built-ins/Atomics/wait/cannot-suspend-throws': [SKIP],
-  'built-ins/Atomics/wait/undefined-index-defaults-to-zero': [SKIP],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=8258
-  'intl402/Locale/constructor-options-language-valid-undefined': [FAIL],
-  'intl402/Locale/constructor-options-throwing-getters': [FAIL],
-  'intl402/NumberFormat/prototype/format/format-fraction-digits-precision': [FAIL],
-  'intl402/NumberFormat/prototype/format/format-significant-digits-precision': [FAIL],
-
-  ##################### DELIBERATE INCOMPATIBILITIES #####################
-
-  # https://github.com/tc39/ecma262/pull/889
-  'annexB/language/function-code/block-decl-func-skip-arguments': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=6538
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=6541
-  'language/export/escaped-as-export-specifier': [FAIL],
-  'language/export/escaped-from': [FAIL],
-  'language/expressions/object/method-definition/escaped-get': [FAIL],
-  'language/expressions/object/method-definition/escaped-set': [FAIL],
-  'language/import/escaped-as-import-specifier': [FAIL],
-  'language/import/escaped-as-namespace-import': [FAIL],
-  'language/import/escaped-from': [FAIL],
-  'language/statements/for-await-of/escaped-of': [FAIL],
-  'language/statements/for-of/escaped-of': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=6543
-  'language/statements/labeled/value-await-non-module-escaped': [FAIL],
-  'language/statements/labeled/value-yield-non-strict-escaped': [FAIL],
-  'language/expressions/async-arrow-function/escaped-async-line-terminator': [FAIL],
-  'language/expressions/class/class-name-ident-await-escaped': [FAIL],
-  'language/statements/class/class-name-ident-await-escaped': [FAIL],
-
-  ############################ INVALID TESTS #############################
-
-  # Test makes unjustified assumptions about the number of calls to SortCompare.
-  # Test262 Bug: https://bugs.ecmascript.org/show_bug.cgi?id=596
-  'built-ins/Array/prototype/sort/bug_596_1': [PASS, FAIL_OK],
-
-  # https://github.com/tc39/test262/pull/688#pullrequestreview-14025354
-  'built-ins/Function/internals/Construct/derived-this-uninitialized-realm': [FAIL],
-
-  # Date tests that fail in CE(S)T timezone.
-  # https://bugs.chromium.org/p/v8/issues/detail?id=5449
-  'built-ins/Date/prototype/setFullYear/new-value-time-clip': [PASS, FAIL],
-  'built-ins/Date/prototype/setMonth/new-value-time-clip': [PASS, FAIL],
-
-  # Test against internals of harness; we plug in differently
-  'harness/detachArrayBuffer': [SKIP],
-  'harness/detachArrayBuffer-host-detachArrayBuffer': [SKIP],
-
-  # Test needs to be updated to spec changes.
-  # https://github.com/tc39/test262/pull/1990
-  'built-ins/String/prototype/matchAll/regexp-prototype-has-no-matchAll': [FAIL],
-
-  ############################ SKIPPED TESTS #############################
-
-  # These tests take a looong time to run.
-  'built-ins/decodeURI/S15.1.3.1_A1.10_T1': [SKIP],
-  'built-ins/decodeURI/S15.1.3.1_A1.11_T1': [SKIP],
-  'built-ins/decodeURI/S15.1.3.1_A1.11_T2': [SKIP],
-  'built-ins/decodeURI/S15.1.3.1_A1.12_T1': [SKIP],
-  'built-ins/decodeURI/S15.1.3.1_A1.12_T2': [SKIP],
-  'built-ins/decodeURI/S15.1.3.1_A2.5_T1': [SKIP],
-  'built-ins/decodeURIComponent/S15.1.3.2_A1.11_T1': [SKIP],
-  'built-ins/decodeURIComponent/S15.1.3.2_A1.12_T1': [SKIP],
-  'built-ins/decodeURIComponent/S15.1.3.2_A2.5_T1': [SKIP],
-  'language/literals/regexp/S7.8.5_A1.1_T2': [SKIP],
-  'language/literals/regexp/S7.8.5_A1.4_T2': [SKIP],
-  'language/literals/regexp/S7.8.5_A2.1_T2': [SKIP],
-  'language/literals/regexp/S7.8.5_A2.4_T2': [SKIP],
-  'built-ins/Array/prototype/slice/S15.4.4.10_A3_T1': [SKIP],
-  'built-ins/Array/prototype/slice/S15.4.4.10_A3_T2': [SKIP],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=7187
-  'built-ins/Function/prototype/toString/line-terminator-normalisation-CR': [SKIP],
-  'language/expressions/class/fields-private-derived-cls-direct-eval-err-contains-supercall': [FAIL],
-  'language/expressions/class/fields-private-derived-cls-direct-eval-err-contains-supercall-1': [FAIL],
-  'language/expressions/class/fields-private-derived-cls-direct-eval-err-contains-supercall-2': [FAIL],
-  'language/expressions/class/fields-private-derived-cls-indirect-eval-err-contains-supercall': [FAIL],
-  'language/expressions/class/fields-private-derived-cls-indirect-eval-err-contains-supercall-1': [FAIL],
-  'language/expressions/class/fields-private-derived-cls-indirect-eval-err-contains-supercall-2': [FAIL],
-  'language/statements/class/fields-private-derived-cls-direct-eval-err-contains-supercall': [FAIL],
-  'language/statements/class/fields-private-derived-cls-direct-eval-err-contains-supercall-1': [FAIL],
-  'language/statements/class/fields-private-derived-cls-direct-eval-err-contains-supercall-2': [FAIL],
-  'language/statements/class/fields-private-derived-cls-indirect-eval-err-contains-supercall': [FAIL],
-  'language/statements/class/fields-private-derived-cls-indirect-eval-err-contains-supercall-1': [FAIL],
-  'language/statements/class/fields-private-derived-cls-indirect-eval-err-contains-supercall-2': [FAIL],
-
-  ############################ SLOW TESTS #############################
-
-  'annexB/built-ins/RegExp/RegExp-leading-escape-BMP': [PASS, SLOW],
-  'annexB/built-ins/RegExp/RegExp-trailing-escape-BMP': [PASS, SLOW],
-  'language/comments/S7.4_A5': [PASS, SLOW],
-  'language/comments/S7.4_A6': [PASS, SLOW],
-
-}],  # ALWAYS
-
-['no_i18n == True', {
-  # Unicode canonicalization is not available with i18n turned off.
-  'built-ins/String/prototype/localeCompare/15.5.4.9_CE': [SKIP],
-
-  # Unicode regexp case mapping is not available with i18n turned off.
-  'language/literals/regexp/u-case-mapping': [SKIP],
-
-  # BUG(v8:4437).
-  'built-ins/String/prototype/normalize/return-normalized-string': [SKIP],
-  'built-ins/String/prototype/normalize/return-normalized-string-from-coerced-form': [SKIP],
-  'built-ins/String/prototype/normalize/return-normalized-string-using-default-parameter': [SKIP],
-
-  # Case-conversion is not fully compliant to the Unicode spec with i18n off.
-  'built-ins/String/prototype/toLocaleLowerCase/Final_Sigma_U180E': [FAIL],
-  'built-ins/String/prototype/toLocaleLowerCase/special_casing_conditional': [FAIL],
-  'built-ins/String/prototype/toLocaleLowerCase/supplementary_plane': [FAIL],
-  'built-ins/String/prototype/toLowerCase/Final_Sigma_U180E': [FAIL],
-  'built-ins/String/prototype/toLowerCase/special_casing_conditional': [FAIL],
-  'built-ins/String/prototype/toLowerCase/supplementary_plane': [FAIL],
-  'built-ins/String/prototype/toLocaleUpperCase/supplementary_plane': [FAIL],
-  'built-ins/String/prototype/toUpperCase/supplementary_plane': [FAIL],
-
-  # Locale-sensitive case-conversion is not available with i18n off.
-  'intl402/String/prototype/toLocaleLowerCase/special_casing_Azeri': [FAIL],
-  'intl402/String/prototype/toLocaleLowerCase/special_casing_Lithuanian': [FAIL],
-  'intl402/String/prototype/toLocaleLowerCase/special_casing_Turkish': [FAIL],
-  'intl402/String/prototype/toLocaleUpperCase/special_casing_Azeri': [FAIL],
-  'intl402/String/prototype/toLocaleUpperCase/special_casing_Lithuanian': [FAIL],
-  'intl402/String/prototype/toLocaleUpperCase/special_casing_Turkish': [FAIL],
-
-  # Unicode property escapes unavailable without i18n
-  'built-ins/RegExp/property-escapes/*': [SKIP],
-  'built-ins/RegExp/named-groups/unicode-property-names': [SKIP],
-}],  # no_i18n == True
-
-['arch == arm or arch == mipsel or arch == mips or arch == arm64 or arch == mips64 or arch == mips64el', {
-
-  # TODO(mstarzinger): Causes stack overflow on simulators due to eager
-  # compilation of parenthesized function literals. Needs investigation.
-  'language/statements/function/S13.2.1_A1_T1': [SKIP],
-
-  # BUG(3251225): Tests that timeout with --noopt.
-  'built-ins/decodeURI/S15.1.3.1_A2.4_T1': [SKIP],
-  'built-ins/decodeURI/S15.1.3.1_A2.5_T1': [SKIP],
-  'built-ins/decodeURIComponent/S15.1.3.2_A2.4_T1': [SKIP],
-  'built-ins/decodeURIComponent/S15.1.3.2_A2.5_T1': [SKIP],
-  'built-ins/encodeURI/S15.1.3.3_A2.3_T1': [SKIP],
-  'built-ins/encodeURIComponent/S15.1.3.4_A2.3_T1': [SKIP],
-}],  # 'arch == arm or arch == mipsel or arch == mips or arch == arm64'
-
-['byteorder == big', {
-  # Test failures on big endian platforms due to the way the tests
-  # are written
-
-  # https://github.com/tc39/test262/issues/757
-  'built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type': [SKIP],
-}],
-
-['asan == True', {
-  # BUG(v8:4653): Test262 tests which rely on quit() are not compatible with
-  # asan's --omit-quit flag.
-  'built-ins/Promise/prototype/then/deferred-is-resolved-value': [SKIP],
-  'language/expressions/dynamic-import/always-create-new-promise': [SKIP],
-  'language/expressions/dynamic-import/assign-expr-get-value-abrupt-throws': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/additive-expr': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/array-literal': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/arrow-function': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/await-expr': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/await-identifier': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/call-expr-arguments': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/call-expr-expr': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/call-expr-identifier': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/cover-call-expr': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/cover-parenthesized-expr': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/identifier': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/import-meta': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/lhs-assign-operator-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/lhs-eq-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/lhs-eq-assign-expr-nostrict': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/logical-and-expr': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/logical-or-expr': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/member-expr': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/new-target': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/object-literal': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/tagged-function-call': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/ternary': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/this': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/unary-expr': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/yield-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/yield-expr': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/yield-identifier': [SKIP],
-  'language/expressions/dynamic-import/assignment-expression/yield-star': [SKIP],
-  'language/expressions/dynamic-import/await-import-evaluation': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-arrow-import-catch-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-arrow-import-catch-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-arrow-import-catch-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-arrow-import-catch-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-await-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-await-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-await-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-await-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-await-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-await-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-await-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-await-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-await-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-await-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-await-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-return-await-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-return-await-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-return-await-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-return-await-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-function-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-await-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-await-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-await-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-await-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-await-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-await-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-await-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-return-await-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-return-await-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-return-await-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-async-gen-return-await-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-import-catch-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-import-catch-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-import-catch-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-import-catch-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-import-catch-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-import-catch-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-import-catch-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-labeled-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-labeled-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-labeled-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-labeled-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-labeled-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-labeled-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-block-labeled-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-do-while-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-do-while-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-do-while-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-do-while-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-do-while-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-do-while-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-do-while-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-else-import-catch-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-else-import-catch-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-else-import-catch-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-else-import-catch-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-else-import-catch-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-else-import-catch-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-else-import-catch-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-function-import-catch-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-function-import-catch-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-function-import-catch-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-function-import-catch-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-function-import-catch-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-function-import-catch-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-function-import-catch-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-if-import-catch-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-if-import-catch-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-if-import-catch-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-if-import-catch-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-if-import-catch-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-if-import-catch-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-if-import-catch-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-while-import-catch-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-while-import-catch-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-while-import-catch-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-while-import-catch-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-while-import-catch-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-while-import-catch-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/nested-while-import-catch-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/catch/top-level-import-catch-eval-rqstd-abrupt-typeerror': [SKIP],
-  'language/expressions/dynamic-import/catch/top-level-import-catch-eval-rqstd-abrupt-urierror': [SKIP],
-  'language/expressions/dynamic-import/catch/top-level-import-catch-eval-script-code-target': [SKIP],
-  'language/expressions/dynamic-import/catch/top-level-import-catch-file-does-not-exist': [SKIP],
-  'language/expressions/dynamic-import/catch/top-level-import-catch-instn-iee-err-ambiguous-import': [SKIP],
-  'language/expressions/dynamic-import/catch/top-level-import-catch-instn-iee-err-circular': [SKIP],
-  'language/expressions/dynamic-import/catch/top-level-import-catch-specifier-tostring-abrupt-rejects': [SKIP],
-  'language/expressions/dynamic-import/custom-primitive': [SKIP],
-  'language/expressions/dynamic-import/double-error-resolution': [SKIP],
-  'language/expressions/dynamic-import/double-error-resolution-promise': [SKIP],
-  'language/expressions/dynamic-import/escape-sequence-import': [SKIP],
-  'language/expressions/dynamic-import/eval-export-dflt-cls-anon': [SKIP],
-  'language/expressions/dynamic-import/eval-export-dflt-cls-named': [SKIP],
-  'language/expressions/dynamic-import/eval-export-dflt-cls-name-meth': [SKIP],
-  'language/expressions/dynamic-import/eval-export-dflt-expr-cls-anon': [SKIP],
-  'language/expressions/dynamic-import/eval-export-dflt-expr-cls-named': [SKIP],
-  'language/expressions/dynamic-import/eval-export-dflt-expr-cls-name-meth': [SKIP],
-  'language/expressions/dynamic-import/eval-export-dflt-expr-fn-anon': [SKIP],
-  'language/expressions/dynamic-import/eval-export-dflt-expr-fn-named': [SKIP],
-  'language/expressions/dynamic-import/eval-export-dflt-expr-gen-anon': [SKIP],
-  'language/expressions/dynamic-import/eval-export-dflt-expr-gen-named': [SKIP],
-  'language/expressions/dynamic-import/eval-export-dflt-expr-in': [SKIP],
-  'language/expressions/dynamic-import/eval-rqstd-once': [SKIP],
-  'language/expressions/dynamic-import/eval-self-once-module': [SKIP],
-  'language/expressions/dynamic-import/eval-self-once-script': [SKIP],
-  'language/expressions/dynamic-import/for-await-resolution-and-error-agen': [SKIP],
-  'language/expressions/dynamic-import/for-await-resolution-and-error-agen-yield': [SKIP],
-  'language/expressions/dynamic-import/for-await-resolution-and-error': [SKIP],
-  'language/expressions/dynamic-import/imported-self-update': [SKIP],
-  'language/expressions/dynamic-import/indirect-resolution': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-define-own-property': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-delete-exported-init-no-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-delete-exported-init-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-delete-non-exported-no-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-delete-non-exported-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-extensible': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-get-nested-namespace-dflt-direct': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-get-nested-namespace-dflt-indirect': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-get-nested-namespace-props-nrml': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-get-own-property-str-found-init': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-get-own-property-str-not-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-get-own-property-sym': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-get-str-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-get-str-not-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-get-sym-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-get-sym-not-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-has-property-str-found-init': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-has-property-str-not-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-has-property-sym-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-has-property-sym-not-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-no-iterator': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-own-property-keys-sort': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-prevent-extensions-object': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-prevent-extensions-reflect': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-prop-descs': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-prototype': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-set-no-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-set-prototype-of': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-set-prototype-of-null': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-set-same-values-no-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-set-same-values-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-set-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/await-ns-Symbol-toStringTag': [SKIP],
-  'language/expressions/dynamic-import/namespace/default-property-not-set-own': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-define-own-property': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-delete-exported-init-no-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-delete-exported-init-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-delete-non-exported-no-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-delete-non-exported-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-extensible': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-get-nested-namespace-dflt-direct': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-get-nested-namespace-dflt-indirect': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-get-nested-namespace-props-nrml': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-get-own-property-str-found-init': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-get-own-property-str-not-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-get-own-property-sym': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-get-str-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-get-str-not-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-get-sym-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-get-sym-not-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-has-property-str-found-init': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-has-property-str-not-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-has-property-sym-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-has-property-sym-not-found': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-no-iterator': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-own-property-keys-sort': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-prevent-extensions-object': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-prevent-extensions-reflect': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-prop-descs': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-prototype': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-set-no-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-set-prototype-of': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-set-prototype-of-null': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-set-same-values-no-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-set-same-values-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-set-strict': [SKIP],
-  'language/expressions/dynamic-import/namespace/promise-then-ns-Symbol-toStringTag': [SKIP],
-  'language/expressions/dynamic-import/returns-promise': [SKIP],
-  'language/expressions/dynamic-import/reuse-namespace-object': [SKIP],
-  'language/expressions/dynamic-import/reuse-namespace-object-from-import': [SKIP],
-  'language/expressions/dynamic-import/reuse-namespace-object-from-script': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-10-lhs-assignment-operator-assignment-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-11-lhs-assignment-operator-assignment-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-12-lhs-assignment-operator-assignment-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-13-lhs-assignment-operator-assignment-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-14-lhs-assignment-operator-assignment-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-15-lhs-assignment-operator-assignment-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-16-lhs-assignment-operator-assignment-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-17-lhs-assignment-operator-assignment-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-1-update-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-2-update-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-3-update-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-4-update-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-5-lhs-equals-assignment-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-6-lhs-assignment-operator-assignment-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-7-lhs-assignment-operator-assignment-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-8-lhs-assignment-operator-assignment-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/invalid-asssignmenttargettype-reference-error-9-lhs-assignment-operator-assignment-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-arrow-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-arrow-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-block-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-block-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-block-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-do-while-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-do-while-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-do-while-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-else-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-else-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-else-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-function-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-function-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-function-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-function-return-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-function-return-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-function-return-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-if-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-if-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-if-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-while-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-while-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-while-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-with-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-with-expression-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-with-expression-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-with-expression-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-with-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-with-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/top-level-assignment-expr-not-optional': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/top-level-no-new-call-expression': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/top-level-no-rest-param': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-args': [SKIP],
-  'language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-no-trailing-comma': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/callexpression-arguments': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/callexpression-templateliteral': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-arrow-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-arrow-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-arrow-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-function-await-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-function-await-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-function-await-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-function-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-function-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-function-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-block-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-block-labeled-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-block-labeled-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-block-labeled-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-block-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-block-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-do-while-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-do-while-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-do-while-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-else-braceless-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-else-braceless-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-else-braceless-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-else-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-else-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-else-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-function-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-function-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-function-return-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-function-return-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-function-return-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-function-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-if-braceless-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-if-braceless-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-if-braceless-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-if-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-if-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-if-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-while-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-while-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-while-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-with-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-with-expression-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-with-expression-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-with-expression-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-with-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/nested-with-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/new-covered-expression-is-valid': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/top-level-empty-str-is-valid-assign-expr': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/top-level-nested-imports': [SKIP],
-  'language/expressions/dynamic-import/syntax/valid/top-level-script-code-valid': [SKIP],
-  'language/expressions/dynamic-import/update-to-dynamic-import': [SKIP],
-  'language/expressions/dynamic-import/usage-from-eval': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-arrow-import-then-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-arrow-import-then-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-arrow-import-then-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-arrow-import-then-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-arrow-import-then-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-arrow-import-then-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-arrow-function-await-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-arrow-function-await-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-arrow-function-await-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-arrow-function-await-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-arrow-function-await-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-arrow-function-await-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-await-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-await-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-await-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-await-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-await-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-await-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-return-await-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-return-await-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-return-await-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-return-await-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-return-await-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-return-await-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-function-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-gen-await-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-gen-await-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-gen-await-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-gen-await-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-gen-await-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-gen-await-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-gen-return-await-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-gen-return-await-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-gen-return-await-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-gen-return-await-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-gen-return-await-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-async-gen-return-await-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-block-import-then-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-block-import-then-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-block-import-then-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-block-import-then-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-block-import-then-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-block-import-then-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-do-while-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-do-while-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-do-while-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-do-while-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-do-while-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-do-while-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-else-import-then-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-else-import-then-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-else-import-then-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-else-import-then-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-else-import-then-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-else-import-then-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-function-import-then-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-function-import-then-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-function-import-then-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-function-import-then-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-function-import-then-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-function-import-then-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-if-braceless-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-if-braceless-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-if-braceless-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-if-braceless-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-if-braceless-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-if-braceless-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-if-import-then-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-if-import-then-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-if-import-then-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-if-import-then-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-if-import-then-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-if-import-then-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-while-import-then-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-while-import-then-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-while-import-then-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-while-import-then-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-while-import-then-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/nested-while-import-then-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/syntax-nested-block-labeled-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/syntax-nested-block-labeled-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/syntax-nested-block-labeled-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/syntax-nested-block-labeled-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/syntax-nested-block-labeled-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/syntax-nested-block-labeled-specifier-tostring': [SKIP],
-  'language/expressions/dynamic-import/usage/top-level-import-then-eval-gtbndng-indirect-update-dflt': [SKIP],
-  'language/expressions/dynamic-import/usage/top-level-import-then-eval-gtbndng-indirect-update': [SKIP],
-  'language/expressions/dynamic-import/usage/top-level-import-then-eval-script-code-host-resolves-module-code': [SKIP],
-  'language/expressions/dynamic-import/usage/top-level-import-then-is-call-expression-square-brackets': [SKIP],
-  'language/expressions/dynamic-import/usage/top-level-import-then-returns-thenable': [SKIP],
-  'language/expressions/dynamic-import/usage/top-level-import-then-specifier-tostring': [SKIP],
-}],  # asan == True
-
-['asan == True or msan == True or tsan == True', {
-  # https://bugs.chromium.org/p/v8/issues/detail?id=4639
-  # The failed allocation causes an asan/msan/tsan error
-  'built-ins/ArrayBuffer/allocation-limit': [SKIP],
-  'built-ins/ArrayBuffer/length-is-too-large-throws': [SKIP],
-  'built-ins/SharedArrayBuffer/allocation-limit': [SKIP],
-  'built-ins/SharedArrayBuffer/length-is-too-large-throws': [SKIP],
-}],  # asan == True or msan == True or tsan == True
-
-['variant == no_wasm_traps', {
-  '*': [SKIP],
-}],  # variant == no_wasm_traps
-
-['variant != default or arch == arm or arch == arm64 or arch == mipsel or arch == mips or arch == mips64 or arch == mips64el', {
-  # These tests take a long time to run
-  'built-ins/RegExp/property-escapes/generated/*': [SKIP],
-}],  # variant != default or arch == arm or arch == arm64
-
-['system == windows', {
-  # https://crbug.com/856119
-  'intl402/DateTimeFormat/prototype/resolvedOptions/basic': [SKIP],
-}],  # system == windows
-
-]
-
-    /*
-    ********************************** test262-automation **********************************
-    Summary: The two files have now diverged.
-        File Status: Partially curated & modified.
-        Source Status: Modified since its export.
-        Below is the current and modified source which was exported on Mon Dec 17 2018 19:18:49 GMT+0000 (Coordinated Universal Time)
-    */
-      # Copyright 2011 the V8 project authors. All rights reserved.
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-#       notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-#       copyright notice, this list of conditions and the following
-#       disclaimer in the documentation and/or other materials provided
-#       with the distribution.
-#     * Neither the name of Google Inc. nor the names of its
-#       contributors may be used to endorse or promote products derived
-#       from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-[
-
-[ALWAYS, {
-  ###################### MISSING ES6 FEATURES #######################
-
-  # https://code.google.com/p/v8/issues/detail?id=4248
-  'language/expressions/compound-assignment/S11.13.2_A5.*': [FAIL],
-  'language/expressions/compound-assignment/S11.13.2_A6.*': [FAIL],
-  'language/expressions/compound-assignment/S11.13.2_A7.10_T4': [FAIL],
-  'language/expressions/compound-assignment/S11.13.2_A7.11_T4': [FAIL],
-  'language/expressions/compound-assignment/S11.13.2_A7.1_T4': [FAIL],
-  'language/expressions/compound-assignment/S11.13.2_A7.2_T4': [FAIL],
-  'language/expressions/compound-assignment/S11.13.2_A7.3_T4': [FAIL],
-  'language/expressions/compound-assignment/S11.13.2_A7.4_T4': [FAIL],
-  'language/expressions/compound-assignment/S11.13.2_A7.5_T4': [FAIL],
-  'language/expressions/compound-assignment/S11.13.2_A7.6_T4': [FAIL],
-  'language/expressions/compound-assignment/S11.13.2_A7.7_T4': [FAIL],
-  'language/expressions/compound-assignment/S11.13.2_A7.8_T4': [FAIL],
-  'language/expressions/compound-assignment/S11.13.2_A7.9_T4': [FAIL],
-  'language/statements/with/unscopables-inc-dec': [FAIL],
-
-  # https://code.google.com/p/v8/issues/detail?id=4249
-  'language/expressions/assignment/S11.13.1_A7_T1': [FAIL],
-  'language/expressions/assignment/S11.13.1_A7_T2': [FAIL],
-  'language/expressions/assignment/S11.13.1_A7_T3': [FAIL],
-  'language/expressions/postfix-increment/S11.3.1_A6_T3': [FAIL],
-  'language/expressions/postfix-decrement/S11.3.2_A6_T3': [FAIL],
-  'language/expressions/prefix-decrement/S11.4.5_A6_T3': [FAIL],
-  'language/expressions/prefix-increment/S11.4.4_A6_T3': [FAIL],
-
-  # https://code.google.com/p/v8/issues/detail?id=4250
-  'language/expressions/assignment/S11.13.1_A5*': [FAIL],
-  'language/expressions/assignment/S11.13.1_A6*': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=4709
-  'built-ins/Promise/reject-function-name': [FAIL],
-  'built-ins/Promise/resolve-function-name': [FAIL],
-  'built-ins/Promise/all/resolve-element-function-name': [FAIL],
-  'built-ins/Promise/executor-function-name': [FAIL],
-  'built-ins/Proxy/revocable/revocation-function-name': [FAIL],
-  'language/expressions/assignment/fn-name-lhs-cover': [FAIL],
-  'language/expressions/assignment/fn-name-lhs-member': [FAIL],
-  'language/expressions/function/name': [FAIL],
-  'language/expressions/generators/name': [FAIL],
-  'intl402/NumberFormat/prototype/format/format-function-name': [FAIL],
-  'intl402/DateTimeFormat/prototype/format/format-function-name': [FAIL],
-  'intl402/Collator/prototype/compare/compare-function-name': [FAIL],
-
-  # https://code.google.com/p/v8/issues/detail?id=4251
-  'language/expressions/postfix-increment/S11.3.1_A5_T1': [FAIL],
-  'language/expressions/postfix-increment/S11.3.1_A5_T2': [FAIL],
-  'language/expressions/postfix-increment/S11.3.1_A5_T3': [FAIL],
-  'language/expressions/postfix-increment/S11.3.1_A5_T4': [FAIL],
-  'language/expressions/postfix-increment/S11.3.1_A5_T5': [FAIL],
-  'language/expressions/postfix-decrement/S11.3.2_A5_*': [FAIL],
-  'language/expressions/prefix-decrement/S11.4.5_A5_*': [FAIL],
-  'language/expressions/prefix-increment/S11.4.4_A5_*': [FAIL],
-  'language/statements/variable/binding-resolution': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=4895
-  'built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-realm': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-realm': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/DefineOwnProperty/tonumber-value-detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/tonumber-value-detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Get/detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Get/BigInt/detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Get/detached-buffer-realm': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Get/BigInt/detached-buffer-realm': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Get/infinity-detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Get/BigInt/infinity-detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/GetOwnProperty/detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/GetOwnProperty/detached-buffer-realm': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/detached-buffer-realm': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/GetOwnProperty/enumerate-detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/enumerate-detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/HasProperty/detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/HasProperty/BigInt/detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/HasProperty/detached-buffer-realm': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/HasProperty/BigInt/detached-buffer-realm': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/HasProperty/infinity-with-detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/HasProperty/BigInt/infinity-with-detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Set/detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Set/detached-buffer-realm': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer-realm': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Set/tonumber-value-detached-buffer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-detached-buffer': [FAIL],
-  # Some TypedArray methods throw due to the same bug, from Get
-  'built-ins/TypedArray/prototype/every/callbackfn-detachbuffer': [FAIL],
-  'built-ins/TypedArray/prototype/every/BigInt/callbackfn-detachbuffer': [FAIL],
-  'built-ins/TypedArray/prototype/find/predicate-may-detach-buffer': [FAIL],
-  'built-ins/TypedArray/prototype/find/BigInt/predicate-may-detach-buffer': [FAIL],
-  'built-ins/TypedArray/prototype/findIndex/predicate-may-detach-buffer': [FAIL],
-  'built-ins/TypedArray/prototype/findIndex/BigInt/predicate-may-detach-buffer': [FAIL],
-  'built-ins/TypedArray/prototype/forEach/callbackfn-detachbuffer': [FAIL],
-  'built-ins/TypedArray/prototype/forEach/BigInt/callbackfn-detachbuffer': [FAIL],
-  'built-ins/TypedArray/prototype/map/callbackfn-detachbuffer': [FAIL],
-  'built-ins/TypedArray/prototype/map/BigInt/callbackfn-detachbuffer': [FAIL],
-  'built-ins/TypedArray/prototype/reduce/callbackfn-detachbuffer': [FAIL],
-  'built-ins/TypedArray/prototype/reduce/BigInt/callbackfn-detachbuffer': [FAIL],
-  'built-ins/TypedArray/prototype/reduceRight/callbackfn-detachbuffer': [FAIL],
-  'built-ins/TypedArray/prototype/reduceRight/BigInt/callbackfn-detachbuffer': [FAIL],
-  'built-ins/TypedArray/prototype/some/callbackfn-detachbuffer': [FAIL],
-  'built-ins/TypedArray/prototype/some/BigInt/callbackfn-detachbuffer': [FAIL],
-  # DataView functions should also throw on detached buffers
-  'built-ins/ArrayBuffer/prototype/byteLength/detached-buffer': [FAIL],
-  'built-ins/DataView/detached-buffer': [FAIL],
-  'built-ins/DataView/prototype/byteLength/detached-buffer': [FAIL],
-  'built-ins/DataView/prototype/byteOffset/detached-buffer': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=4231
-  'language/eval-code/direct/var-env-lower-lex-catch-non-strict': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=4951
-  'language/expressions/assignment/dstr-array-elem-iter-rtrn-close-err': [FAIL],
-  'language/expressions/assignment/dstr-array-elem-iter-thrw-close': [FAIL],
-  'language/expressions/assignment/dstr-array-elem-iter-thrw-close-err': [FAIL],
-  'language/expressions/assignment/dstr-array-elem-trlg-iter-list-thrw-close': [FAIL],
-  'language/expressions/assignment/dstr-array-elem-trlg-iter-list-thrw-close-err': [FAIL],
-  'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-rtrn-close': [FAIL],
-  'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-rtrn-close-err': [FAIL],
-  'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-rtrn-close-null': [FAIL],
-  'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-thrw-close': [FAIL],
-  'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-thrw-close-err': [FAIL],
-  'language/expressions/assignment/dstr-array-rest-iter-rtrn-close': [FAIL],
-  'language/expressions/assignment/dstr-array-rest-iter-rtrn-close-err': [FAIL],
-  'language/expressions/assignment/dstr-array-rest-iter-rtrn-close-null': [FAIL],
-  'language/expressions/assignment/dstr-array-rest-iter-thrw-close': [FAIL],
-  'language/expressions/assignment/dstr-array-rest-iter-thrw-close-err': [FAIL],
-  'language/expressions/assignment/dstr-array-rest-lref-err': [FAIL],
-  'language/statements/for-of/dstr-array-elem-iter-rtrn-close-err': [FAIL],
-  'language/statements/for-of/dstr-array-elem-iter-thrw-close': [FAIL],
-  'language/statements/for-of/dstr-array-elem-iter-thrw-close-err': [FAIL],
-  'language/statements/for-of/dstr-array-elem-trlg-iter-list-thrw-close': [FAIL],
-  'language/statements/for-of/dstr-array-elem-trlg-iter-list-thrw-close-err': [FAIL],
-  'language/statements/for-of/dstr-array-elem-trlg-iter-rest-rtrn-close': [FAIL],
-  'language/statements/for-of/dstr-array-elem-trlg-iter-rest-rtrn-close-err': [FAIL],
-  'language/statements/for-of/dstr-array-elem-trlg-iter-rest-rtrn-close-null': [FAIL],
-  'language/statements/for-of/dstr-array-elem-trlg-iter-rest-thrw-close': [FAIL],
-  'language/statements/for-of/dstr-array-elem-trlg-iter-rest-thrw-close-err': [FAIL],
-  'language/statements/for-of/dstr-array-rest-iter-rtrn-close': [FAIL],
-  'language/statements/for-of/dstr-array-rest-iter-rtrn-close-err': [FAIL],
-  'language/statements/for-of/dstr-array-rest-iter-rtrn-close-null': [FAIL],
-  'language/statements/for-of/dstr-array-rest-iter-thrw-close': [FAIL],
-  'language/statements/for-of/dstr-array-rest-iter-thrw-close-err': [FAIL],
-  'language/statements/for-of/dstr-array-rest-lref-err': [FAIL],
-  'language/expressions/assignment/destructuring/iterator-destructuring-property-reference-target-evaluation-order': [FAIL],
-  'language/expressions/assignment/destructuring/keyed-destructuring-property-reference-target-evaluation-order': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=896
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/character-class-range-end': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/character-class-range-no-dash-end': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/character-class-range-no-dash-start': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/character-class-range-start': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-empty': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-empty-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-invalid': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-invalid-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-no-braces': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-no-braces-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-no-braces-value': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-no-braces-value-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-separator': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-separator-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-separator-only': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-separator-only-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-unclosed': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-unclosed-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-unopened': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/grammar-extension-unopened-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-01': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-01-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-02': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-02-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-03': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-03-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-04': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-04-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-05': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-05-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-06': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-06-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-07': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-07-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-08': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-08-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-09': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-09-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-10': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-10-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-11': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-11-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-12': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-12-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-13': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-13-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-14': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/loose-matching-14-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-existent-binary-property': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-existent-binary-property-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-existent-property-and-value': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-existent-property-and-value-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-existent-property-existing-value': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-existent-property-existing-value-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-existent-property-value-General_Category-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-existent-property-value-Script': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-existent-property-value-Script-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/non-existent-property-value-general-category': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-property-Block-with-value': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-property-Block-with-value-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-property-Line_Break': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-property-Line_Break-negated': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value': [FAIL_PHASE_ONLY],
-  'built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value-negated': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/early-err-pattern': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/invalid-braced-quantifier-exact': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/invalid-braced-quantifier-lower': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/invalid-braced-quantifier-range': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/invalid-optional-lookbehind': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/invalid-optional-negative-lookbehind': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/invalid-range-lookbehind': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/invalid-range-negative-lookbehind': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-2': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-2-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-3': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-3-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-4': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-4-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-5': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-without-group-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-duplicate-groupspecifier': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-2': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-2-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-empty-groupspecifier': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-empty-groupspecifier-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-identity-escape-in-capture-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-2': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-2-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-3': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-3-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-4': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-5': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-6': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-2-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-3-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-continue-groupspecifier': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-continue-groupspecifier-4': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-continue-groupspecifier-4-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-2': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-2-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-3': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-4': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-4-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-5': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-5-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-6': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-7': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-8': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-8-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-9-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-numeric-groupspecifier': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-numeric-groupspecifier-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-punctuator-starting-groupspecifier': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-punctuator-starting-groupspecifier-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-punctuator-within-groupspecifier': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-punctuator-within-groupspecifier-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-u-escape-in-groupspecifier': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-u-escape-in-groupspecifier-2': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-unterminated-groupspecifier': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/named-groups/invalid-unterminated-groupspecifier-u': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-dec-esc': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-class-escape': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-extended-pattern-char': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-identity-escape': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-legacy-octal-escape': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-non-empty-class-ranges': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-oob-decimal-escape': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-optional-lookahead': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-optional-lookbehind': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-optional-negative-lookahead': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-optional-negative-lookbehind': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-range-lookahead': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-range-lookbehind': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-range-negative-lookahead': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-invalid-range-negative-lookbehind': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-unicode-esc-bounds': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/u-unicode-esc-non-hex': [FAIL_PHASE_ONLY],
-  'language/literals/regexp/unicode-escape-nls-err': [FAIL_PHASE_ONLY],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=7828
-  'language/statements/try/early-catch-function': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=7829
-  'language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration-nested-in-function': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=4628
-  'language/eval-code/direct/non-definable-function-with-function': [FAIL],
-  'language/eval-code/direct/non-definable-function-with-variable': [FAIL],
-  'language/eval-code/indirect/non-definable-function-with-function': [FAIL],
-  'language/eval-code/indirect/non-definable-function-with-variable': [FAIL],
-  'language/global-code/script-decl-func-err-non-configurable': [FAIL],
-  'language/global-code/script-decl-var-collision': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=5116
-  'built-ins/TypedArray/prototype/fill/fill-values-conversion-operations-consistent-nan': [PASS, FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=5135
-  'annexB/language/eval-code/direct/func-block-decl-eval-func-block-scoping': [FAIL],
-  'annexB/language/eval-code/direct/func-if-decl-else-decl-a-eval-func-block-scoping': [FAIL],
-  'annexB/language/eval-code/direct/func-if-decl-else-decl-b-eval-func-block-scoping': [FAIL],
-  'annexB/language/eval-code/direct/func-if-decl-else-stmt-eval-func-block-scoping': [FAIL],
-  'annexB/language/eval-code/direct/func-if-decl-no-else-eval-func-block-scoping': [FAIL],
-  'annexB/language/eval-code/direct/func-if-stmt-else-decl-eval-func-block-scoping': [FAIL],
-  'annexB/language/eval-code/direct/func-switch-case-eval-func-block-scoping': [FAIL],
-  'annexB/language/eval-code/direct/func-switch-dflt-eval-func-block-scoping': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=5139
-  'annexB/built-ins/Date/prototype/setYear/year-number-relative': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=4698
-  'language/expressions/call/tco-call-args': [SKIP],
-  'language/expressions/call/tco-cross-realm-class-construct': [SKIP],
-  'language/expressions/call/tco-cross-realm-class-derived-construct': [SKIP],
-  'language/expressions/call/tco-cross-realm-fun-call': [SKIP],
-  'language/expressions/call/tco-cross-realm-fun-construct': [SKIP],
-  'language/expressions/call/tco-member-args': [SKIP],
-  'language/expressions/call/tco-non-eval-function': [SKIP],
-  'language/expressions/call/tco-non-eval-function-dynamic': [SKIP],
-  'language/expressions/call/tco-non-eval-global': [SKIP],
-  'language/expressions/call/tco-non-eval-with': [SKIP],
-  'language/expressions/comma/tco-final': [SKIP],
-  'language/expressions/conditional/tco-cond': [SKIP],
-  'language/expressions/conditional/tco-pos': [SKIP],
-  'language/expressions/logical-and/tco-right': [SKIP],
-  'language/expressions/logical-or/tco-right': [SKIP],
-  'language/expressions/tagged-template/tco-call': [SKIP],
-  'language/expressions/tagged-template/tco-member': [SKIP],
-  'language/expressions/tco-pos': [SKIP],
-  'language/statements/block/tco-stmt': [SKIP],
-  'language/statements/block/tco-stmt-list': [SKIP],
-  'language/statements/do-while/tco-body': [SKIP],
-  'language/statements/for/tco-const-body': [SKIP],
-  'language/statements/for/tco-let-body': [SKIP],
-  'language/statements/for/tco-lhs-body': [SKIP],
-  'language/statements/for/tco-var-body': [SKIP],
-  'language/statements/if/tco-else-body': [SKIP],
-  'language/statements/if/tco-if-body': [SKIP],
-  'language/statements/labeled/tco': [SKIP],
-  'language/statements/return/tco': [SKIP],
-  'language/statements/switch/tco-case-body': [SKIP],
-  'language/statements/switch/tco-case-body-dflt': [SKIP],
-  'language/statements/switch/tco-dftl-body': [SKIP],
-  'language/statements/try/tco-catch': [SKIP],
-  'language/statements/try/tco-catch-finally': [SKIP],
-  'language/statements/try/tco-finally': [SKIP],
-  'language/statements/while/tco-body': [SKIP],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=5064
-  'language/expressions/arrow-function/dflt-params-duplicates': [FAIL],
-  'language/expressions/async-arrow-function/dflt-params-duplicates': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=5327
-  'built-ins/TypedArrayConstructors/internals/Set/key-is-minus-zero': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-minus-zero': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Set/key-is-not-integer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-not-integer': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Set/key-is-out-of-bounds': [FAIL],
-  'built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-out-of-bounds': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=5329
-  'built-ins/RegExp/prototype/source/value-line-terminator': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=5112
-  'annexB/language/eval-code/direct/func-block-decl-eval-func-no-skip-try': [FAIL],
-  'annexB/language/eval-code/direct/func-if-decl-else-decl-a-eval-func-no-skip-try': [FAIL],
-  'annexB/language/eval-code/direct/func-if-decl-else-decl-b-eval-func-no-skip-try': [FAIL],
-  'annexB/language/eval-code/direct/func-if-decl-else-stmt-eval-func-no-skip-try': [FAIL],
-  'annexB/language/eval-code/direct/func-if-decl-no-else-eval-func-no-skip-try': [FAIL],
-  'annexB/language/eval-code/direct/func-if-stmt-else-decl-eval-func-no-skip-try': [FAIL],
-  'annexB/language/eval-code/direct/func-switch-case-eval-func-no-skip-try': [FAIL],
-  'annexB/language/eval-code/direct/func-switch-dflt-eval-func-no-skip-try': [FAIL],
-
-  # PreParser doesn't produce early errors
-  # https://bugs.chromium.org/p/v8/issues/detail?id=2728
-  'language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate': [FAIL],
-  'language/expressions/object/method-definition/generator-param-redecl-const': [FAIL],
-  'language/expressions/object/method-definition/generator-param-redecl-let': [FAIL],
-  'language/expressions/object/method-definition/name-param-redecl': [FAIL],
-  'language/statements/async-function/early-errors-declaration-formals-body-duplicate': [FAIL],
-
   # SharedArrayBuffer tests that require flags
   'built-ins/SharedArrayBuffer/*': ['--harmony-sharedarraybuffer'],
   'built-ins/Atomics/*': ['--harmony-sharedarraybuffer'],
@@ -2072,16 +653,6 @@
   'language/expressions/await/for-await-of-interleaved': ['--harmony-await-optimization'],
   'language/expressions/await/async-await-interleaved': ['--harmony-await-optimization'],
 
-  # https://bugs.chromium.org/p/v8/issues/detail?id=6891
-  'intl402/Segmenter/iterator/following': [FAIL],
-  'intl402/Segmenter/iterator/granularity': [FAIL],
-  'intl402/Segmenter/iterator/preceding': [FAIL],
-  'intl402/Segmenter/prototype/segment/segment-line': [FAIL],
-  'intl402/Segmenter/prototype/segment/segment-sentence': [FAIL],
-  'intl402/Segmenter/prototype/segment/segment-word': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=8021
-  'built-ins/Object/fromEntries/requires-argument': [FAIL],
   ######################## NEEDS INVESTIGATION ###########################
 
   # These test failures are specific to the intl402 suite and need investigation
@@ -2142,10 +713,6 @@
   'harness/detachArrayBuffer': [SKIP],
   'harness/detachArrayBuffer-host-detachArrayBuffer': [SKIP],
 
-  # Test needs to be updated to spec changes.
-  # https://github.com/tc39/test262/pull/1990
-  'built-ins/String/prototype/matchAll/regexp-prototype-has-no-matchAll': [FAIL],
-
   ############################ SKIPPED TESTS #############################
 
   # These tests take a looong time to run.
-- 
GitLab