diff --git a/implementation-contributed/curation_logs/v8.json b/implementation-contributed/curation_logs/v8.json
index 7191a0c0008ad2dd292264969f9dfe5453df64ad..1d0c9c5922d23f0c1de8dd1374887dbbd6842e72 100644
--- a/implementation-contributed/curation_logs/v8.json
+++ b/implementation-contributed/curation_logs/v8.json
@@ -1,5 +1,5 @@
 {
-  "sourceRevisionAtLastExport": "44b1b245",
-  "targetRevisionAtLastExport": "ae464533ad",
+  "sourceRevisionAtLastExport": "dde25872",
+  "targetRevisionAtLastExport": "468a67ade5",
   "curatedFiles": {}
 }
\ No newline at end of file
diff --git a/implementation-contributed/v8/intl/collator/check-co-option.js b/implementation-contributed/v8/intl/collator/check-co-option.js
new file mode 100644
index 0000000000000000000000000000000000000000..477d00a0453052ff003992ade4be0afc7a74febf
--- /dev/null
+++ b/implementation-contributed/v8/intl/collator/check-co-option.js
@@ -0,0 +1,33 @@
+// 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.
+
+let invalid_co = [
+  "invalid",
+  "search",
+  "standard",
+  "abce",
+];
+
+let valid_locales = [
+  "zh-u-co-zhuyin",
+  "zh-u-co-stroke",
+  "ar-u-co-compat",
+  "en-u-co-emoji",
+  "en-u-co-eor",
+  "zh-Hant-u-co-pinyin",
+  "ko-u-co-searchjl",
+  "ja-u-co-unihan",
+];
+
+invalid_co.forEach(function(co) {
+  let col = new Intl.Collator(["en-u-co-" + co]);
+  assertEquals("en", col.resolvedOptions().locale);
+}
+);
+
+valid_locales.forEach(function(l) {
+  let col = new Intl.Collator([l + "-fo-obar"]);
+  assertEquals(l, col.resolvedOptions().locale);
+}
+);
diff --git a/implementation-contributed/v8/intl/collator/check-kf-option.js b/implementation-contributed/v8/intl/collator/check-kf-option.js
new file mode 100644
index 0000000000000000000000000000000000000000..45085c667e62df0b87a63b22fc7b76eb73d23311
--- /dev/null
+++ b/implementation-contributed/v8/intl/collator/check-kf-option.js
@@ -0,0 +1,36 @@
+// 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.
+
+let invalid_kf = [
+  "invalid",
+  "abce",
+  "none",
+  "true",
+];
+
+let valid_kf= [
+  "false",
+  "upper",
+  "lower",
+];
+
+let locales = [
+  "en",
+  "fr",
+];
+
+invalid_kf.forEach(function(kf) {
+  let col = new Intl.Collator(["en-u-kf-" + kf + "-fo-obar"]);
+  assertEquals("en", col.resolvedOptions().locale);
+}
+);
+
+valid_kf.forEach(function(kf) {
+  locales.forEach(function(base) {
+    let l = base + "-u-kf-" + kf;
+    let col = new Intl.Collator([l + "-fo-obar"]);
+    assertEquals(l, col.resolvedOptions().locale);
+  });
+}
+);
diff --git a/implementation-contributed/v8/intl/collator/check-kn-option.js b/implementation-contributed/v8/intl/collator/check-kn-option.js
new file mode 100644
index 0000000000000000000000000000000000000000..0e3a82fe2668308572376a2922d55b649edc86cb
--- /dev/null
+++ b/implementation-contributed/v8/intl/collator/check-kn-option.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.
+
+let invalid_kn = [
+  "invalid",
+  "search",
+  "standard",
+  "abce",
+];
+
+let valid_kn = [
+  ["en-u-kn", true, "en-u-kn"],
+  ["en-u-kn-true", true, "en-u-kn"],
+  ["en-u-kn-false",false, "en-u-kn-false"],
+];
+
+invalid_kn.forEach(function(kn) {
+  let col = new Intl.Collator(["en-u-kn-" + kn]);
+  assertEquals("en", col.resolvedOptions().locale);
+}
+);
+
+valid_kn.forEach(function(l) {
+  let col = new Intl.Collator([l[0] + "-fo-obar"]);
+  assertEquals(l[1], col.resolvedOptions().numeric);
+  assertEquals(l[2], col.resolvedOptions().locale);
+}
+);
diff --git a/implementation-contributed/v8/intl/date-format/check-ca-option.js b/implementation-contributed/v8/intl/date-format/check-ca-option.js
new file mode 100644
index 0000000000000000000000000000000000000000..d27ae44b4867e3277763327a7377ecaecc5c77a2
--- /dev/null
+++ b/implementation-contributed/v8/intl/date-format/check-ca-option.js
@@ -0,0 +1,51 @@
+// 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.
+
+
+let invalid_ca = [
+  "invalid",
+  "abce",
+];
+
+// https://www.unicode.org/repos/cldr/tags/latest/common/bcp47/calendar.xml
+let valid_ca= [
+  "buddhist",
+  "chinese",
+  "coptic",
+  "dangi",
+  "ethioaa",
+  "ethiopic",
+  "gregory",
+  "hebrew",
+  "indian",
+  "islamic",
+  "islamic-umalqura",
+  "islamic-tbla",
+  "islamic-civil",
+  "islamic-rgsa",
+  "iso8601",
+  "japanese",
+  "persian",
+  "roc",
+];
+
+let locales = [
+  "en",
+  "ar",
+];
+
+invalid_ca.forEach(function(ca) {
+  let df = new Intl.DateTimeFormat(["en-u-ca-" + ca + "-fo-obar"]);
+  assertEquals("en", df.resolvedOptions().locale);
+}
+);
+
+valid_ca.forEach(function(ca) {
+  locales.forEach(function(base) {
+    let l = base + "-u-ca-" + ca;
+    let df = new Intl.DateTimeFormat([l + "-fo-obar"]);
+    assertEquals(l, df.resolvedOptions().locale);
+  });
+}
+);
diff --git a/implementation-contributed/v8/intl/date-format/check-hc-option.js b/implementation-contributed/v8/intl/date-format/check-hc-option.js
new file mode 100644
index 0000000000000000000000000000000000000000..276bfe6a23d8d5366af34b1251e265a5d41c578a
--- /dev/null
+++ b/implementation-contributed/v8/intl/date-format/check-hc-option.js
@@ -0,0 +1,41 @@
+// 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.
+
+
+let invalid_hc = [
+  "invalid",
+  "abce",
+  "h10",
+  "h13",
+  "h22",
+  "h25",
+];
+
+// https://www.unicode.org/repos/cldr/tags/latest/common/bcp47/calendar.xml
+let valid_hc= [
+  "h11",
+  "h12",
+  "h23",
+  "h24",
+];
+
+let locales = [
+  "en",
+  "ar",
+];
+
+invalid_hc.forEach(function(hc) {
+  let df = new Intl.DateTimeFormat(["en-u-hc-" + hc + "-fo-obar"]);
+  assertEquals("en", df.resolvedOptions().locale);
+}
+);
+
+valid_hc.forEach(function(hc) {
+  locales.forEach(function(base) {
+    let l = base + "-u-hc-" + hc;
+    let df = new Intl.DateTimeFormat([l + "-fo-obar"]);
+    assertEquals(l, df.resolvedOptions().locale);
+  });
+}
+);
diff --git a/implementation-contributed/v8/intl/date-format/check-nu-option.js b/implementation-contributed/v8/intl/date-format/check-nu-option.js
new file mode 100644
index 0000000000000000000000000000000000000000..7d4b4dc92716d00b3d67c5276db2871df76437f8
--- /dev/null
+++ b/implementation-contributed/v8/intl/date-format/check-nu-option.js
@@ -0,0 +1,59 @@
+// 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.
+
+
+let invalid_nu = [
+  "invalid",
+  "abce",
+  "finance",
+  "native",
+  "traditio",
+];
+
+// https://tc39.github.io/ecma402/#table-numbering-system-digits
+let valid_nu= [
+  "arab",
+  "arabext",
+  "bali",
+  "beng",
+  "deva",
+  "fullwide",
+  "gujr",
+  "guru",
+  "hanidec",
+  "khmr",
+  "knda",
+  "laoo",
+  "latn",
+  "limb",
+  "mlym",
+  "mong",
+  "mymr",
+  "orya",
+  "tamldec",
+  "telu",
+  "thai",
+  "tibt",
+];
+
+let locales = [
+  "en",
+  "ar",
+];
+
+
+invalid_nu.forEach(function(nu) {
+  let df = new Intl.DateTimeFormat(["en-u-nu-" + nu + "-fo-obar"]);
+  assertEquals("en", df.resolvedOptions().locale);
+}
+);
+
+valid_nu.forEach(function(nu) {
+  locales.forEach(function(base) {
+    let l = base + "-u-nu-" + nu;
+    let df = new Intl.DateTimeFormat([l + "-fo-obar"]);
+    assertEquals(l, df.resolvedOptions().locale);
+  });
+}
+);
diff --git a/implementation-contributed/v8/intl/intl.status b/implementation-contributed/v8/intl/intl.status
index 3841b287dcbb1f4df47eb275f0a1d93e0f594663..471b1184c58555be60d984438beab715f69810c0 100644
--- a/implementation-contributed/v8/intl/intl.status
+++ b/implementation-contributed/v8/intl/intl.status
@@ -29,9 +29,6 @@
 [ALWAYS, {
   # TODO(jochen): The following test is flaky.
   'overrides/caching': [PASS, FAIL],
-
-  # https://crbug.com/v8/8469
-  'regress-8469': [FAIL],
 }],  # ALWAYS
 
 ['variant == no_wasm_traps', {
diff --git a/implementation-contributed/v8/intl/number-format/check-nu-option.js b/implementation-contributed/v8/intl/number-format/check-nu-option.js
new file mode 100644
index 0000000000000000000000000000000000000000..39c4cbb8cf9f6011b889d9514c18c281ab79d15c
--- /dev/null
+++ b/implementation-contributed/v8/intl/number-format/check-nu-option.js
@@ -0,0 +1,59 @@
+// 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.
+
+
+let invalid_nu = [
+  "invalid",
+  "abce",
+  "finance",
+  "native",
+  "traditio",
+];
+
+// https://tc39.github.io/ecma402/#table-numbering-system-digits
+let valid_nu= [
+  "arab",
+  "arabext",
+  "bali",
+  "beng",
+  "deva",
+  "fullwide",
+  "gujr",
+  "guru",
+  "hanidec",
+  "khmr",
+  "knda",
+  "laoo",
+  "latn",
+  "limb",
+  "mlym",
+  "mong",
+  "mymr",
+  "orya",
+  "tamldec",
+  "telu",
+  "thai",
+  "tibt",
+];
+
+let locales = [
+  "en",
+  "ar",
+];
+
+
+invalid_nu.forEach(function(nu) {
+  let nf = new Intl.NumberFormat(["en-u-nu-" + nu + "-fo-obar"]);
+  assertEquals("en", nf.resolvedOptions().locale);
+}
+);
+
+valid_nu.forEach(function(nu) {
+  locales.forEach(function(base) {
+    let l = base + "-u-nu-" + nu;
+    let nf = new Intl.NumberFormat([l + "-fo-obar"]);
+    assertEquals(l, nf.resolvedOptions().locale);
+  });
+}
+);
diff --git a/implementation-contributed/v8/intl/regress-7481.js b/implementation-contributed/v8/intl/regress-7481.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3441e35cb1a581d26183a72f3c88aa99ca46a83
--- /dev/null
+++ b/implementation-contributed/v8/intl/regress-7481.js
@@ -0,0 +1,39 @@
+// 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.
+assertEquals(
+    "en-u-hc-h11-nu-arab",
+    new Intl.DateTimeFormat(["en-u-hc-h11-nu-arab"]).resolvedOptions().locale
+);
+assertEquals(
+    "en-u-hc-h12-nu-arab",
+    new Intl.DateTimeFormat(["en-u-hc-h12-nu-arab"]).resolvedOptions().locale
+);
+assertEquals(
+    "en-u-hc-h23-nu-arab",
+    new Intl.DateTimeFormat(["en-u-hc-h23-nu-arab"]).resolvedOptions().locale
+);
+assertEquals(
+    "en-u-hc-h24-nu-arab",
+    new Intl.DateTimeFormat(["en-u-hc-h24-nu-arab"]).resolvedOptions().locale
+);
+
+// https://tc39.github.io/ecma402/#sec-intl.datetimeformat-internal-slots
+// invalid hc should be removed
+// [[LocaleData]][locale].hc must be « null, "h11", "h12", "h23", "h24" » for all locale values.
+assertEquals(
+    "en-u-nu-arab",
+    new Intl.DateTimeFormat(["en-u-hc-h10-nu-arab"]).resolvedOptions().locale
+);
+assertEquals(
+    "en-u-nu-arab",
+    new Intl.DateTimeFormat(["en-u-hc-h13-nu-arab"]).resolvedOptions().locale
+);
+assertEquals(
+    "en-u-nu-arab",
+    new Intl.DateTimeFormat(["en-u-hc-h22-nu-arab"]).resolvedOptions().locale
+);
+assertEquals(
+    "en-u-nu-arab",
+    new Intl.DateTimeFormat(["en-u-hc-h25-nu-arab"]).resolvedOptions().locale
+);
diff --git a/implementation-contributed/v8/intl/segmenter/check-lb-option.js b/implementation-contributed/v8/intl/segmenter/check-lb-option.js
new file mode 100644
index 0000000000000000000000000000000000000000..b56b76fc95b33dfc36b62f82dbace14791daa2ea
--- /dev/null
+++ b/implementation-contributed/v8/intl/segmenter/check-lb-option.js
@@ -0,0 +1,41 @@
+// 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 invalid_lb = [
+  "invalid",
+  "abce",
+  "breakall",
+  "keepall",
+  "none",
+  "standard",
+];
+
+let valid_lb= [
+  "strict",
+  "normal",
+  "loose",
+];
+
+let locales = [
+  "en",
+  "ja",
+  "zh",
+];
+
+invalid_lb.forEach(function(lb) {
+  let df = new Intl.Segmenter(["en-u-lb-" + lb + "-fo-obar"]);
+  assertEquals("en", df.resolvedOptions().locale);
+}
+);
+
+valid_lb.forEach(function(lb) {
+  locales.forEach(function(base) {
+    let l = base + "-u-lb-" + lb;
+    let df = new Intl.Segmenter([l + "-fo-obar"]);
+    assertEquals(l, df.resolvedOptions().locale);
+  });
+}
+);
diff --git a/implementation-contributed/v8/mjsunit/array-indexing-receiver.js b/implementation-contributed/v8/mjsunit/array-indexing-receiver.js
index ea8d02b21809ff3f6f4a9849a96179b29f1f48ae..4c47a39216e8eb065e82933978933c399225c613 100644
--- a/implementation-contributed/v8/mjsunit/array-indexing-receiver.js
+++ b/implementation-contributed/v8/mjsunit/array-indexing-receiver.js
@@ -356,7 +356,7 @@ var kTests = {
 
     Detached_Int8Array() {
       var array = new Int8Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertEquals(Array.prototype.indexOf.call(array, 0), -1);
       assertEquals(Array.prototype.indexOf.call(array, 0, 10), -1);
     },
@@ -391,7 +391,7 @@ var kTests = {
 
     Detached_Uint8Array() {
       var array = new Uint8Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertEquals(Array.prototype.indexOf.call(array, 0), -1);
       assertEquals(Array.prototype.indexOf.call(array, 0, 10), -1);
     },
@@ -421,7 +421,7 @@ var kTests = {
 
     Detached_Uint8ClampedArray() {
       var array = new Uint8ClampedArray(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertEquals(Array.prototype.indexOf.call(array, 0), -1);
       assertEquals(Array.prototype.indexOf.call(array, 0, 10), -1);
     },
@@ -453,7 +453,7 @@ var kTests = {
 
     Detached_Int16Array() {
       var array = new Int16Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertEquals(Array.prototype.indexOf.call(array, 0), -1);
       assertEquals(Array.prototype.indexOf.call(array, 0, 10), -1);
     },
@@ -485,7 +485,7 @@ var kTests = {
 
     Detached_Uint16Array() {
       var array = new Uint16Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertEquals(Array.prototype.indexOf.call(array, 0), -1);
       assertEquals(Array.prototype.indexOf.call(array, 0, 10), -1);
     },
@@ -517,7 +517,7 @@ var kTests = {
 
     Detached_Int32Array() {
       var array = new Int32Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertEquals(Array.prototype.indexOf.call(array, 0), -1);
       assertEquals(Array.prototype.indexOf.call(array, 0, 10), -1);
     },
@@ -550,7 +550,7 @@ var kTests = {
 
     Detached_Uint32Array() {
       var array = new Uint32Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertEquals(Array.prototype.indexOf.call(array, 0), -1);
       assertEquals(Array.prototype.indexOf.call(array, 0, 10), -1);
     },
@@ -583,7 +583,7 @@ var kTests = {
 
     Detached_Float32Array() {
       var array = new Float32Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertEquals(Array.prototype.indexOf.call(array, 0), -1);
       assertEquals(Array.prototype.indexOf.call(array, 0, 10), -1);
     },
@@ -616,7 +616,7 @@ var kTests = {
 
     Detached_Float64Array() {
       var array = new Float32Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertEquals(Array.prototype.indexOf.call(array, 0), -1);
       assertEquals(Array.prototype.indexOf.call(array, 0, 10), -1);
     },
diff --git a/implementation-contributed/v8/mjsunit/asm/regress-913822.js b/implementation-contributed/v8/mjsunit/asm/regress-913822.js
new file mode 100644
index 0000000000000000000000000000000000000000..d6ee74637a959435c5ef1932608eda140638a0bf
--- /dev/null
+++ b/implementation-contributed/v8/mjsunit/asm/regress-913822.js
@@ -0,0 +1,25 @@
+// 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
+
+(function TestNewlineInCPPComment() {
+  function Module() {
+    "use asm" // Crash by comment!
+    function f() {}
+    return f
+  }
+  Module();
+  assertTrue(%IsAsmWasmCode(Module));
+})();
+
+(function TestNewlineInCComment() {
+  function Module() {
+    "use asm" /* Crash by
+    comment! */ function f() {}
+    return f
+  }
+  Module();
+  assertTrue(%IsAsmWasmCode(Module));
+})();
diff --git a/implementation-contributed/v8/mjsunit/code-coverage-ad-hoc.js b/implementation-contributed/v8/mjsunit/code-coverage-ad-hoc.js
index 75f513c09952b1a358d19fe42246a7bbfcf7b9c1..184c7d52b7c6bf1e0c9f204b2a49c3aeaba1b59c 100644
--- a/implementation-contributed/v8/mjsunit/code-coverage-ad-hoc.js
+++ b/implementation-contributed/v8/mjsunit/code-coverage-ad-hoc.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --no-always-opt
+// Flags: --allow-natives-syntax --no-always-opt --no-stress-flush-bytecode
 // Files: test/mjsunit/code-coverage-utils.js
 
 // Test code coverage without explicitly activating it upfront.
diff --git a/implementation-contributed/v8/mjsunit/code-coverage-block-noopt.js b/implementation-contributed/v8/mjsunit/code-coverage-block-noopt.js
index ef68e0394d1e23604114ed93a4965fb35a871b39..9865e6ee27b633a12e7e34ad0f6d64a739d35f27 100644
--- a/implementation-contributed/v8/mjsunit/code-coverage-block-noopt.js
+++ b/implementation-contributed/v8/mjsunit/code-coverage-block-noopt.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --no-always-opt
+// Flags: --allow-natives-syntax --no-always-opt --no-stress-flush-bytecode
 // Flags: --no-opt
 // Files: test/mjsunit/code-coverage-utils.js
 
diff --git a/implementation-contributed/v8/mjsunit/code-coverage-block-opt.js b/implementation-contributed/v8/mjsunit/code-coverage-block-opt.js
index 3031e8913a63e53ce21cd38689b8faa6b123f3ae..bd721d52f177a18e882886e9a3318588682fc64e 100644
--- a/implementation-contributed/v8/mjsunit/code-coverage-block-opt.js
+++ b/implementation-contributed/v8/mjsunit/code-coverage-block-opt.js
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 // Flags: --allow-natives-syntax --no-always-opt --opt
+// Flags: --no-stress-flush-bytecode
 // Files: test/mjsunit/code-coverage-utils.js
 
 if (isNeverOptimizeLiteMode()) {
diff --git a/implementation-contributed/v8/mjsunit/code-coverage-block.js b/implementation-contributed/v8/mjsunit/code-coverage-block.js
index bdba90cd1e3009ba26b67a581d45aa7d85667386..c3d775aa27ea814577320b0efd0f8f63fc186082 100644
--- a/implementation-contributed/v8/mjsunit/code-coverage-block.js
+++ b/implementation-contributed/v8/mjsunit/code-coverage-block.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --no-always-opt
+// Flags: --allow-natives-syntax --no-always-opt --no-stress-flush-bytecode
 // Files: test/mjsunit/code-coverage-utils.js
 
 %DebugToggleBlockCoverage(true);
diff --git a/implementation-contributed/v8/mjsunit/code-coverage-class-fields.js b/implementation-contributed/v8/mjsunit/code-coverage-class-fields.js
index a91c25824fed32e3d4ca29b048cc23309b9073e1..8db45d142b8e7d0492bbf59af9cc71fdac1dc469 100644
--- a/implementation-contributed/v8/mjsunit/code-coverage-class-fields.js
+++ b/implementation-contributed/v8/mjsunit/code-coverage-class-fields.js
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --no-always-opt --harmony-public-fields --harmony-static-fields
+// Flags: --allow-natives-syntax --no-always-opt --harmony-public-fields
+// Flags: --harmony-static-fields --no-stress-flush-bytecode
 // Files: test/mjsunit/code-coverage-utils.js
 
 %DebugToggleBlockCoverage(true);
diff --git a/implementation-contributed/v8/mjsunit/code-coverage-precise.js b/implementation-contributed/v8/mjsunit/code-coverage-precise.js
index c5569cf01098382c86051fe13e47d4ec8eb2c3e8..2593ed64a09f3fd4d33bf6c80d1a398d01402db8 100644
--- a/implementation-contributed/v8/mjsunit/code-coverage-precise.js
+++ b/implementation-contributed/v8/mjsunit/code-coverage-precise.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --no-always-opt
+// Flags: --allow-natives-syntax --no-always-opt --no-stress-flush-bytecode
 // Flags: --no-stress-incremental-marking
 // Files: test/mjsunit/code-coverage-utils.js
 
diff --git a/implementation-contributed/v8/mjsunit/compiler/dataview-get.js b/implementation-contributed/v8/mjsunit/compiler/dataview-get.js
index 78c6bdf4ac9c17d845eb8bd377f981bc58467293..09094399df69ee2b1dca916f81691cb5e8ecf812 100644
--- a/implementation-contributed/v8/mjsunit/compiler/dataview-get.js
+++ b/implementation-contributed/v8/mjsunit/compiler/dataview-get.js
@@ -173,14 +173,14 @@ assertUnoptimized(readFloat64);
   assertUnoptimized(readUint8);
 })();
 
-// TurboFan neutered buffer deopts.
+// TurboFan detached buffer deopts.
 (function() {
   function readInt8Handled(offset) {
     try { return dataview.getInt8(offset); } catch (e) { return e; }
   }
   warmup(readInt8Handled);
   assertOptimized(readInt8Handled);
-  %ArrayBufferNeuter(buffer);
+  %ArrayBufferDetach(buffer);
   assertInstanceof(readInt8Handled(0), TypeError);
   assertUnoptimized(readInt8Handled);
 })();
diff --git a/implementation-contributed/v8/mjsunit/compiler/dataview-neutered.js b/implementation-contributed/v8/mjsunit/compiler/dataview-neutered.js
index 54b35f73c8ad81e3a1344666712ef6ba6c863b14..ef485c69db892f2eb2db9693647d4811d3390780 100644
--- a/implementation-contributed/v8/mjsunit/compiler/dataview-neutered.js
+++ b/implementation-contributed/v8/mjsunit/compiler/dataview-neutered.js
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --opt --noalways-opt
+// Flags: --allow-natives-syntax --opt --noalways-opt --no-stress-flush-bytecode
 
-// Invalidate the neutering protector.
-%ArrayBufferNeuter(new ArrayBuffer(1));
+// Invalidate the detaching protector.
+%ArrayBufferDetach(new ArrayBuffer(1));
 
 // Check DataView.prototype.getInt8() optimization.
 (function() {
@@ -21,7 +21,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(0, foo(dv));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -43,7 +43,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(0, foo(dv));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -65,7 +65,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(0, foo(dv));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -87,7 +87,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(0, foo(dv));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -109,7 +109,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(0, foo(dv));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -131,7 +131,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(0, foo(dv));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -153,7 +153,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(0, foo(dv));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -175,7 +175,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(0, foo(dv));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -199,7 +199,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(undefined, foo(dv, 3));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv, 4), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -223,7 +223,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(undefined, foo(dv, 3));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv, 4), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -247,7 +247,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(undefined, foo(dv, 3));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv, 4), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -271,7 +271,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(undefined, foo(dv, 3));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv, 4), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -295,7 +295,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(undefined, foo(dv, 3));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv, 4), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -319,7 +319,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(undefined, foo(dv, 3));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv, 4), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -343,7 +343,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(undefined, foo(dv, 3));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv, 4), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
@@ -367,7 +367,7 @@
   %OptimizeFunctionOnNextCall(foo);
   assertEquals(undefined, foo(dv, 3));
   assertOptimized(foo);
-  %ArrayBufferNeuter(ab);
+  %ArrayBufferDetach(ab);
   assertThrows(() => foo(dv, 4), TypeError);
   assertUnoptimized(foo);
   %OptimizeFunctionOnNextCall(foo);
diff --git a/implementation-contributed/v8/mjsunit/compiler/regress-913232.js b/implementation-contributed/v8/mjsunit/compiler/regress-913232.js
new file mode 100644
index 0000000000000000000000000000000000000000..efd7fb8e5fe713b46b1c9590a3d4e347b41830be
--- /dev/null
+++ b/implementation-contributed/v8/mjsunit/compiler/regress-913232.js
@@ -0,0 +1,14 @@
+// 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
+
+function* E(b) {
+  while (true) {
+    for (yield* 0; b; yield* 0) {}
+  }
+}
+
+%OptimizeFunctionOnNextCall(E);
+E();
diff --git a/implementation-contributed/v8/mjsunit/es6/array-iterator-detached.js b/implementation-contributed/v8/mjsunit/es6/array-iterator-detached.js
index e9a940191b300a0dc02b27df020f76a8a26f0527..2a92ee4ff9da2a6d2112615825b692750dcfcebf 100644
--- a/implementation-contributed/v8/mjsunit/es6/array-iterator-detached.js
+++ b/implementation-contributed/v8/mjsunit/es6/array-iterator-detached.js
@@ -11,13 +11,13 @@ function Baseline() {
   assertEquals(0, it.next().value);
   assertEquals(1, it.next().value);
   assertEquals(2, it.next().value);
-  %ArrayBufferNeuter(array.buffer);
+  %ArrayBufferDetach(array.buffer);
   it.next();
 };
 %NeverOptimizeFunction(Baseline);
 
 assertThrows(Baseline, TypeError,
-    "Cannot perform Array Iterator.prototype.next on a detached ArrayBuffer");
+    "Cannot perform Array Iterator.prototype.next on a neutered ArrayBuffer");
 
 function Turbo(count = 10000) {
   let array = Array(10000);
@@ -32,7 +32,7 @@ function Turbo(count = 10000) {
   for (let i = 0; i < count; ++i) {
     let result = it.next();
     if (result.value === 255) {
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
     }
     sum += result.value;
   }
@@ -44,4 +44,4 @@ Turbo(10);
 %OptimizeFunctionOnNextCall(Turbo);
 
 assertThrows(Turbo, TypeError,
-    "Cannot perform Array Iterator.prototype.next on a detached ArrayBuffer");
+    "Cannot perform Array Iterator.prototype.next on a neutered ArrayBuffer");
diff --git a/implementation-contributed/v8/mjsunit/es6/array-iterator-turbo.js b/implementation-contributed/v8/mjsunit/es6/array-iterator-turbo.js
index 489a53dbc73298168c867210fc625d1a43d460c7..7dcdbe10fa2258b72a9f4319bacf0adf78d696e9 100644
--- a/implementation-contributed/v8/mjsunit/es6/array-iterator-turbo.js
+++ b/implementation-contributed/v8/mjsunit/es6/array-iterator-turbo.js
@@ -217,7 +217,7 @@ let tests = {
 
       // Throw when detached
       let clone = new array.constructor(array);
-      %ArrayBufferNeuter(clone.buffer);
+      %ArrayBufferDetach(clone.buffer);
       assertThrows(() => sum(clone), TypeError);
 
       // Clear the slate for the next iteration.
diff --git a/implementation-contributed/v8/mjsunit/es6/classes.js b/implementation-contributed/v8/mjsunit/es6/classes.js
index fa85faf44ef8b07205b26c8fb3152d2df990b5b4..27121ec007165439f72550432bf3594f015beac8 100644
--- a/implementation-contributed/v8/mjsunit/es6/classes.js
+++ b/implementation-contributed/v8/mjsunit/es6/classes.js
@@ -23,10 +23,41 @@
   assertEquals('D2', D2.name);
 
   var E = class {}
-  assertEquals('E', E.name);  // Should be 'E'.
+  assertEquals('E', E.name);
 
   var F = class { constructor() {} };
-  assertEquals('F', F.name);  // Should be 'F'.
+  assertEquals('F', F.name);
+
+  var literal = { E: class {} };
+  assertEquals('E', literal.E.name);
+
+  literal = { E: class F {} };
+  assertEquals('F', literal.E.name);
+
+  literal = { __proto__: class {} };
+  assertEquals('', literal.__proto__.name);
+  assertEquals(
+      undefined, Object.getOwnPropertyDescriptor(literal.__proto__, 'name'));
+
+  literal = { __proto__: class F {} };
+  assertEquals('F', literal.__proto__.name);
+  assertNotEquals(
+      undefined, Object.getOwnPropertyDescriptor(literal.__proto__, 'name'));
+
+  class G {};
+  literal = { __proto__: G };
+  assertEquals('G', literal.__proto__.name);
+
+  var H = class { static name() { return 'A'; } };
+  literal = { __proto__ : H };
+  assertEquals('A', literal.__proto__.name());
+
+  literal = {
+    __proto__: class {
+      static name() { return 'A'; }
+    }
+  };
+  assertEquals('A', literal.__proto__.name());
 })();
 
 
diff --git a/implementation-contributed/v8/mjsunit/es6/regress/regress-5929-1.js b/implementation-contributed/v8/mjsunit/es6/regress/regress-5929-1.js
index 94e143fa775ae02811237be62e1eb7b539ef2604..5f361f3a78295955be1dd09981a4ba4f54a8b71c 100644
--- a/implementation-contributed/v8/mjsunit/es6/regress/regress-5929-1.js
+++ b/implementation-contributed/v8/mjsunit/es6/regress/regress-5929-1.js
@@ -8,7 +8,7 @@ var buf = new ArrayBuffer(0x10000);
 var arr = new Uint8Array(buf).fill(55);
 var tmp = {};
 tmp[Symbol.toPrimitive] = function () {
-  %ArrayBufferNeuter(arr.buffer);
+  %ArrayBufferDetach(arr.buffer);
   return 50;
 }
 arr.copyWithin(tmp);
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-construct-by-array-like.js b/implementation-contributed/v8/mjsunit/es6/typedarray-construct-by-array-like.js
index 0a55fccf5c8bd63035e5f424276a6a4d8e84611b..e6be924d8e7aa77511a4db75947b9d696b87025f 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-construct-by-array-like.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-construct-by-array-like.js
@@ -194,7 +194,7 @@ tests.push(function TestFromTypedArraySpecies(constr) {
   assertEquals(1, constructor_read);
 });
 
-tests.push(function TestFromTypedArraySpeciesNeutersBuffer(constr) {
+tests.push(function TestFromTypedArraySpeciesDetachsBuffer(constr) {
   var b = new ArrayBuffer(16);
   var a1 = new constr(b);
 
@@ -203,7 +203,7 @@ tests.push(function TestFromTypedArraySpeciesNeutersBuffer(constr) {
 
   Object.defineProperty(b, 'constructor', {
     get: function() {
-      %ArrayBufferNeuter(b);
+      %ArrayBufferDetach(b);
       return cons;
     }
   });
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-copywithin.js b/implementation-contributed/v8/mjsunit/es6/typedarray-copywithin.js
index c52a38625b03b707f95249874273e158068417d0..e60c88f6e71d7d62874f9eef4738e3df999b281f 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-copywithin.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-copywithin.js
@@ -232,13 +232,13 @@ CheckEachTypedArray(function parametersNotCalledIfDetached(constructor) {
   var tmp = {
     [Symbol.toPrimitive]() {
       assertUnreachable("Parameter should not be processed when " +
-                        "array.[[ViewedArrayBuffer]] is neutered.");
+                        "array.[[ViewedArrayBuffer]] is detached.");
       return 0;
     }
   };
 
   var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-  %ArrayBufferNeuter(array.buffer);
+  %ArrayBufferDetach(array.buffer);
 
   assertThrows(() => array.copyWithin(tmp, tmp, tmp), TypeError);
   assertEquals(0, array.length, "array.[[ViewedArrayBuffer]] is detached");
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-every.js b/implementation-contributed/v8/mjsunit/es6/typedarray-every.js
index 968078988feabf5234f104988e1b4c1d82f0bba6..feb7cc90cc9c4f8c29bb0eb33e292ed401d97735 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-every.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-every.js
@@ -15,7 +15,7 @@ var typedArrayConstructors = [
   Float32Array,
   Float64Array];
 
-function CheckTypedArrayIsNeutered(array) {
+function CheckTypedArrayIsDetached(array) {
   assertEquals(0, array.byteLength);
   assertEquals(0, array.byteOffset);
   assertEquals(0, array.length);
@@ -81,21 +81,21 @@ function TestTypedArrayForEach(constructor) {
   CheckWrapping(3.14, Number);
   CheckWrapping({}, Object);
 
-  // Neutering the buffer backing the typed array mid-way should
+  // Detaching the buffer backing the typed array mid-way should
   // still make .forEach() finish, and the array should keep being
-  // empty after neutering it.
+  // empty after detaching it.
   count = 0;
   a = new constructor(3);
   result = a.every(function (n, index, array) {
-    assertFalse(array[index] === undefined);  // don't get here if neutered
-    if (count > 0) %ArrayBufferNeuter(array.buffer);
+    assertFalse(array[index] === undefined);  // don't get here if detached
+    if (count > 0) %ArrayBufferDetach(array.buffer);
     array[index] = n + 1;
     count++;
     return count > 1 ? array[index] === undefined : true;
   });
   assertEquals(2, count);
   assertEquals(true, result);
-  CheckTypedArrayIsNeutered(a);
+  CheckTypedArrayIsDetached(a);
   assertEquals(undefined, a[0]);
 
   // Calling array.buffer midway can change the backing store.
@@ -161,7 +161,7 @@ function TestTypedArrayForEach(constructor) {
 
   // Detached Operation
   var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-  %ArrayBufferNeuter(array.buffer);
+  %ArrayBufferDetach(array.buffer);
   assertThrows(() => array.every(() => true), TypeError);
 }
 
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-fill.js b/implementation-contributed/v8/mjsunit/es6/typedarray-fill.js
index 9ed220373bedda1255b935fb513abed9e325bc82..791b214734a16d3b3f29da0d33f8c90d54995c52 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-fill.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-fill.js
@@ -74,12 +74,12 @@ for (var constructor of typedArrayConstructors) {
   var tmp = {
     [Symbol.toPrimitive]() {
       assertUnreachable("Parameter should not be processed when " +
-                        "array.[[ViewedArrayBuffer]] is neutered.");
+                        "array.[[ViewedArrayBuffer]] is detached.");
       return 0;
     }
   };
   var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-  %ArrayBufferNeuter(array.buffer);
+  %ArrayBufferDetach(array.buffer);
   assertThrows(() => array.fill(tmp), TypeError);
 }
 
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-filter.js b/implementation-contributed/v8/mjsunit/es6/typedarray-filter.js
index 0f25c362ec92fa2c788b3be81f3cd9561cbec2ae..077016a26c03f2baeb0559c040d41284c79c1c34 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-filter.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-filter.js
@@ -21,7 +21,7 @@ function TestTypedArrayFilter(constructor) {
   // Throw type error if source array is detached while executing a callback
   let ta1 = new constructor(10);
   assertThrows(() =>
-    ta1.filter(() => %ArrayBufferNeuter(ta1.buffer))
+    ta1.filter(() => %ArrayBufferDetach(ta1.buffer))
   , TypeError);
 
   // A new typed array should be created after finishing callbacks
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-find.js b/implementation-contributed/v8/mjsunit/es6/typedarray-find.js
index 6f646e5c80eab65ca335ab06c03a24ca0b3fa295..f33e4c5cb95c12293b73c0b96ea146d0fc1859ff 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-find.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-find.js
@@ -190,13 +190,13 @@ assertEquals(x, 4);
 var tmp = {
   [Symbol.toPrimitive]() {
     assertUnreachable("Parameter should not be processed when " +
-                      "array.[[ViewedArrayBuffer]] is neutered.");
+                      "array.[[ViewedArrayBuffer]] is detached.");
     return 0;
   }
 };
 
 var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-%ArrayBufferNeuter(array.buffer);
+%ArrayBufferDetach(array.buffer);
 
 assertThrows(() => array.find(tmp), TypeError);
 }
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-findindex.js b/implementation-contributed/v8/mjsunit/es6/typedarray-findindex.js
index 7447395e771741cd51219291970dc7e6e665fc40..e31e17401a2e70d3918d9258ff927560e125dd05 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-findindex.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-findindex.js
@@ -190,11 +190,11 @@ assertEquals(x, 4);
   var tmp = {
     [Symbol.toPrimitive]() {
       assertUnreachable("Parameter should not be processed when " +
-                        "array.[[ViewedArrayBuffer]] is neutered.");
+                        "array.[[ViewedArrayBuffer]] is detached.");
       return 0;
     }
   };
   var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-  %ArrayBufferNeuter(array.buffer);
+  %ArrayBufferDetach(array.buffer);
   assertThrows(() => array.findIndex(tmp), TypeError);
 }
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-foreach.js b/implementation-contributed/v8/mjsunit/es6/typedarray-foreach.js
index 252706a9b58310fcc642606f9098e208055ec142..81c212046a4d33aa3368b693fb93466df1cae370 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-foreach.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-foreach.js
@@ -15,7 +15,7 @@ var typedArrayConstructors = [
   Float32Array,
   Float64Array];
 
-function CheckTypedArrayIsNeutered(array) {
+function CheckTypedArrayIsDetached(array) {
   assertEquals(0, array.byteLength);
   assertEquals(0, array.byteOffset);
   assertEquals(0, array.length);
@@ -84,7 +84,7 @@ function TestTypedArrayForEach(constructor) {
   assertEquals(43, a[0]);
   assertEquals(42, a[1]);
 
-  // Neutering the buffer backing the typed array mid-way should
+  // Detaching the buffer backing the typed array mid-way should
   // still make .forEach() finish, but exiting early due to the missing
   // elements, and the array should keep being empty after detaching it.
   // TODO(dehrenberg): According to the ES6 spec, accessing or testing
@@ -94,12 +94,12 @@ function TestTypedArrayForEach(constructor) {
   a = new constructor(3);
   count = 0;
   a.forEach(function (n, index, array) {
-    if (count > 0) %ArrayBufferNeuter(array.buffer);
+    if (count > 0) %ArrayBufferDetach(array.buffer);
     array[index] = n + 1;
     count++;
   });
   assertEquals(2, count);
-  CheckTypedArrayIsNeutered(a);
+  CheckTypedArrayIsDetached(a);
   assertEquals(undefined, a[0]);
 
   // The method must work for typed arrays created from ArrayBuffer.
@@ -150,7 +150,7 @@ function TestTypedArrayForEach(constructor) {
 
   // Detached Operation
   var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-  %ArrayBufferNeuter(array.buffer);
+  %ArrayBufferDetach(array.buffer);
   assertThrows(() => array.forEach(() => true), TypeError);
 }
 
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-from-detached-typedarray.js b/implementation-contributed/v8/mjsunit/es6/typedarray-from-detached-typedarray.js
index b34f06e91ff516777ef13f32b084675b20332906..6850571bc481194f0e9e8e7c47b62b8399aa2a93 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-from-detached-typedarray.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-from-detached-typedarray.js
@@ -18,6 +18,6 @@ var typedArrayConstructors = [
 
 for (constructor of typedArrayConstructors) {
   var ta = new constructor(10);
-  %ArrayBufferNeuter(ta.buffer);
+  %ArrayBufferDetach(ta.buffer);
   assertThrows(() => constructor.from(ta), TypeError);
 }
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-from.js b/implementation-contributed/v8/mjsunit/es6/typedarray-from.js
index 81576582498448e04103a8c191b627cf7864645a..4bc17ca2600367d7a173da36d1d0ffc72cfe93c9 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-from.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-from.js
@@ -208,7 +208,7 @@ for (var constructor of typedArrayConstructors) {
 
   let ta2 = new constructor(3).fill(1);
   Object.defineProperty(ta2, "length", {get: function() {
-    %ArrayBufferNeuter(ta2.buffer);
+    %ArrayBufferDetach(ta2.buffer);
     return 6;
   }});
   assertArrayLikeEquals(constructor.from(ta2), [d, d, d, d, d, d], constructor);
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-indexing.js b/implementation-contributed/v8/mjsunit/es6/typedarray-indexing.js
index d12a1570c2215153f42cb6340530b4fe3e1eb969..cb88068d76cc93f43360ccb779c97ae81ab1e1e4 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-indexing.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-indexing.js
@@ -19,7 +19,7 @@ var typedArrayConstructors = [
 var tmp = {
   [Symbol.toPrimitive]() {
     assertUnreachable("Parameter should not be processed when " +
-                      "array.[[ViewedArrayBuffer]] is neutered.");
+                      "array.[[ViewedArrayBuffer]] is detached.");
     return 0;
   }
 };
@@ -65,7 +65,7 @@ for (var constructor of typedArrayConstructors) {
 
   // Detached Operation
   var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-  %ArrayBufferNeuter(array.buffer);
+  %ArrayBufferDetach(array.buffer);
   assertThrows(() => array.indexOf(tmp), TypeError);
 
   // ----------------------------------------------------------------------
@@ -107,6 +107,6 @@ for (var constructor of typedArrayConstructors) {
 
   // Detached Operation
   var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-  %ArrayBufferNeuter(array.buffer);
+  %ArrayBufferDetach(array.buffer);
   assertThrows(() => array.lastIndexOf(tmp), TypeError);
 }
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-iteration.js b/implementation-contributed/v8/mjsunit/es6/typedarray-iteration.js
index b423ed0f045fe873028371659d787b8053a1bfdc..30b09ab08a0dfc3b5780efee22cf69dec9fd4e89 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-iteration.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-iteration.js
@@ -82,7 +82,7 @@ for (var constructor of typedArrayConstructors) {
 
     // Detached Operation
     var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-    %ArrayBufferNeuter(array.buffer);
+    %ArrayBufferDetach(array.buffer);
     assertThrows(() => array.filter(() => false), TypeError);
   })();
 
@@ -140,7 +140,7 @@ for (var constructor of typedArrayConstructors) {
 
     // Detached Operation
     var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-    %ArrayBufferNeuter(array.buffer);
+    %ArrayBufferDetach(array.buffer);
     assertThrows(() => array.map((v) => v), TypeError);
   })();
 
@@ -204,7 +204,7 @@ for (var constructor of typedArrayConstructors) {
 
     // Detached Operation
     var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-    %ArrayBufferNeuter(array.buffer);
+    %ArrayBufferDetach(array.buffer);
     assertThrows(() => array.some((v) => false), TypeError);
   })();
 
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-map.js b/implementation-contributed/v8/mjsunit/es6/typedarray-map.js
index 54b535fd30c553a96151953a6eabb7b74b659f39..e8d97879b61ed73cd991b0a8943fdb7a9588a130 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-map.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-map.js
@@ -37,7 +37,7 @@ function TestTypedArrayMap(constructor) {
     new DetachingArray(5).map(function(v,i,a){
       print(i);
       if (i == 1) {
-        %ArrayBufferNeuter(target.buffer);
+        %ArrayBufferDetach(target.buffer);
       }
     })
   }, TypeError);
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-neutered.js b/implementation-contributed/v8/mjsunit/es6/typedarray-neutered.js
index f272f4f0847590fc0840c110ca696f2168c35e28..55a76cdc4d1b9161c3429556e730fc5c9c298dc0 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-neutered.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-neutered.js
@@ -4,8 +4,8 @@
 
 // Flags: --allow-natives-syntax
 
-// Disable the neutering protector.
-%ArrayBufferNeuter(new ArrayBuffer(1024));
+// Disable the detaching protector.
+%ArrayBufferDetach(new ArrayBuffer(1024));
 
 // ArrayBuffer
 
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-reduce.js b/implementation-contributed/v8/mjsunit/es6/typedarray-reduce.js
index ba5d7f7a20dcdd52ce7afb6df1d64faa81ca5e92..2746c57dffd02208c33cbc1b01a56e1e597ad408 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-reduce.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-reduce.js
@@ -254,13 +254,13 @@ for (var constructor of typedArrayConstructors) {
   var tmp = {
     [Symbol.toPrimitive]() {
       assertUnreachable("Parameter should not be processed when " +
-                        "array.[[ViewedArrayBuffer]] is neutered.");
+                        "array.[[ViewedArrayBuffer]] is detached.");
       return 0;
     }
   };
 
   var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-  %ArrayBufferNeuter(array.buffer);
+  %ArrayBufferDetach(array.buffer);
   assertThrows(() => array.reduce(sum, tmp), TypeError);
   assertThrows(() => array.reduceRight(sum, tmp), TypeError);
 }
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-reverse.js b/implementation-contributed/v8/mjsunit/es6/typedarray-reverse.js
index bfeb227c5c4128050d702a7434d0d044076e150f..d7133718c3586e39c78e8f557203efa18f394f22 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-reverse.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-reverse.js
@@ -57,7 +57,7 @@ for (var constructor of arrayConstructors) {
   // Detached Operation
   if (constructor != ArrayMaker) {
     var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-    %ArrayBufferNeuter(array.buffer);
+    %ArrayBufferDetach(array.buffer);
     assertThrows(() => array.reverse(), TypeError);
   }
 }
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-slice.js b/implementation-contributed/v8/mjsunit/es6/typedarray-slice.js
index 2f40fe54253e8fdd05abfd7660520c41690e8e5a..bd89f86e740803142b3f6fa99ff5079c9eca7bdf 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-slice.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-slice.js
@@ -73,12 +73,12 @@ for (var constructor of typedArrayConstructors) {
   var tmp = {
     [Symbol.toPrimitive]() {
       assertUnreachable("Parameter should not be processed when " +
-                        "array.[[ViewedArrayBuffer]] is neutered.");
+                        "array.[[ViewedArrayBuffer]] is detached.");
       return 0;
     }
   };
   var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-  %ArrayBufferNeuter(array.buffer);
+  %ArrayBufferDetach(array.buffer);
   assertThrows(() => array.slice(tmp, tmp), TypeError);
 
   // Check that the species array must be a typed array
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-sort.js b/implementation-contributed/v8/mjsunit/es6/typedarray-sort.js
index e2618ade6b0797520438c5e99046fdae3107722d..c5c4ff079a292f4647e5db5610b2725b769ff224 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-sort.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-sort.js
@@ -65,7 +65,7 @@ for (var constructor of typedArrayConstructors) {
 
   // Detached Operation
   var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
-  %ArrayBufferNeuter(array.buffer);
+  %ArrayBufferDetach(array.buffer);
   assertThrows(() => array.sort(), TypeError);
 }
 
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-tostring.js b/implementation-contributed/v8/mjsunit/es6/typedarray-tostring.js
index a1fa9c7665c46a393e6db7eabb3ac301e0b143a4..16c6319b7af5a0f012838ed5400075d830f7d624 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray-tostring.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray-tostring.js
@@ -101,7 +101,7 @@ for (var constructor of typedArrayConstructors) {
 
   // Detached Operation
   var array = new constructor([1, 2, 3]);
-  %ArrayBufferNeuter(array.buffer);
+  %ArrayBufferDetach(array.buffer);
   assertThrows(() => array.join(), TypeError);
   assertThrows(() => array.toLocalString(), TypeError);
   assertThrows(() => array.toString(), TypeError);
diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray.js b/implementation-contributed/v8/mjsunit/es6/typedarray.js
index 61653dce882529c1a45eedfc2c75bc8013c30150..aab12341accf68abfc40d0c10cc1a543b0d0ac37 100644
--- a/implementation-contributed/v8/mjsunit/es6/typedarray.js
+++ b/implementation-contributed/v8/mjsunit/es6/typedarray.js
@@ -636,7 +636,7 @@ function TestTypedArraySet() {
   var detached = false;
   evilarr[1] = {
     [Symbol.toPrimitive]() {
-      %ArrayBufferNeuter(a111.buffer);
+      %ArrayBufferDetach(a111.buffer);
       detached = true;
       return 1;
     }
@@ -648,7 +648,7 @@ function TestTypedArraySet() {
   var tmp = {
     [Symbol.toPrimitive]() {
       assertUnreachable("Parameter should not be processed when " +
-                        "array.[[ViewedArrayBuffer]] is neutered.");
+                        "array.[[ViewedArrayBuffer]] is detached.");
       return 1;
     }
   };
@@ -662,7 +662,7 @@ function TestTypedArraySet() {
       let detached = false;
       const offset = {
         [Symbol.toPrimitive]() {
-          %ArrayBufferNeuter(xs.buffer);
+          %ArrayBufferDetach(xs.buffer);
           detached = true;
           return 0;
         }
@@ -677,7 +677,7 @@ function TestTypedArraySet() {
     for (const klass of typedArrayConstructors) {
       const a = new klass(2);
       for (let i = 0; i < a.length; i++) a[i] = i;
-      %ArrayBufferNeuter(a.buffer);
+      %ArrayBufferDetach(a.buffer);
 
       const b = new klass(2);
       assertThrows(() => b.set(a), TypeError);
diff --git a/implementation-contributed/v8/mjsunit/es7/array-includes-receiver.js b/implementation-contributed/v8/mjsunit/es7/array-includes-receiver.js
index edeae88631b8521cac91fbe01a32fe2c3d6e607f..91916aad54e4596bd9f0d836afcd2337b63a7019 100644
--- a/implementation-contributed/v8/mjsunit/es7/array-includes-receiver.js
+++ b/implementation-contributed/v8/mjsunit/es7/array-includes-receiver.js
@@ -356,7 +356,7 @@ var kTests = {
 
     Detached_Int8Array() {
       var array = new Int8Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertFalse(Array.prototype.includes.call(array, 0));
       assertFalse(Array.prototype.includes.call(array, 0, 10));
     },
@@ -391,7 +391,7 @@ var kTests = {
 
     Detached_Uint8Array() {
       var array = new Uint8Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertFalse(Array.prototype.includes.call(array, 0));
       assertFalse(Array.prototype.includes.call(array, 0, 10));
     },
@@ -421,7 +421,7 @@ var kTests = {
 
     Detached_Uint8ClampedArray() {
       var array = new Uint8ClampedArray(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertFalse(Array.prototype.includes.call(array, 0));
       assertFalse(Array.prototype.includes.call(array, 0, 10));
     },
@@ -453,7 +453,7 @@ var kTests = {
 
     Detached_Int16Array() {
       var array = new Int16Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertFalse(Array.prototype.includes.call(array, 0));
       assertFalse(Array.prototype.includes.call(array, 0, 10));
     },
@@ -485,7 +485,7 @@ var kTests = {
 
     Detached_Uint16Array() {
       var array = new Uint16Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertFalse(Array.prototype.includes.call(array, 0));
       assertFalse(Array.prototype.includes.call(array, 0, 10));
     },
@@ -517,7 +517,7 @@ var kTests = {
 
     Detached_Int32Array() {
       var array = new Int32Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertFalse(Array.prototype.includes.call(array, 0));
       assertFalse(Array.prototype.includes.call(array, 0, 10));
     },
@@ -550,7 +550,7 @@ var kTests = {
 
     Detached_Uint32Array() {
       var array = new Uint32Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertFalse(Array.prototype.includes.call(array, 0));
       assertFalse(Array.prototype.includes.call(array, 0, 10));
     },
@@ -583,7 +583,7 @@ var kTests = {
 
     Detached_Float32Array() {
       var array = new Float32Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertFalse(Array.prototype.includes.call(array, 0));
       assertFalse(Array.prototype.includes.call(array, 0, 10));
     },
@@ -616,7 +616,7 @@ var kTests = {
 
     Detached_Float64Array() {
       var array = new Float32Array(10);
-      %ArrayBufferNeuter(array.buffer);
+      %ArrayBufferDetach(array.buffer);
       assertFalse(Array.prototype.includes.call(array, 0));
       assertFalse(Array.prototype.includes.call(array, 0, 10));
     },
diff --git a/implementation-contributed/v8/mjsunit/harmony/regress/regress-912504.js b/implementation-contributed/v8/mjsunit/harmony/regress/regress-912504.js
new file mode 100644
index 0000000000000000000000000000000000000000..78b1992b14e6ae59fd10adf36063a436e855a20e
--- /dev/null
+++ b/implementation-contributed/v8/mjsunit/harmony/regress/regress-912504.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: --always-opt --harmony-object-from-entries --allow-natives-syntax
+
+function test() {
+  Object.fromEntries([[]]);
+  %DeoptimizeNow();
+}
+test();
diff --git a/implementation-contributed/v8/mjsunit/harmony/string-matchAll-deleted-matchAll.js b/implementation-contributed/v8/mjsunit/harmony/string-matchAll-deleted-matchAll.js
new file mode 100644
index 0000000000000000000000000000000000000000..5d2985f31803586e7df3eaa13299e23070db0203
--- /dev/null
+++ b/implementation-contributed/v8/mjsunit/harmony/string-matchAll-deleted-matchAll.js
@@ -0,0 +1,9 @@
+// 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-string-matchall
+
+delete RegExp.prototype[Symbol.matchAll];
+const str = 'a';
+assertThrows(() => str.matchAll(/\w/g), TypeError);
diff --git a/implementation-contributed/v8/mjsunit/harmony/weakrefs/factory-scheduled-for-cleanup-multiple-times.js b/implementation-contributed/v8/mjsunit/harmony/weakrefs/factory-scheduled-for-cleanup-multiple-times.js
index 49ccdf330da4513478bde0e7a260e3b45a09c8ea..2f3915478ef0062b5e460468afaec44f3e516792 100644
--- a/implementation-contributed/v8/mjsunit/harmony/weakrefs/factory-scheduled-for-cleanup-multiple-times.js
+++ b/implementation-contributed/v8/mjsunit/harmony/weakrefs/factory-scheduled-for-cleanup-multiple-times.js
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 // Flags: --harmony-weak-refs --expose-gc --noincremental-marking
+// Flags: --no-stress-flush-bytecode
 
 let cleanup0_call_count = 0;
 let cleanup0_weak_cell_count = 0;
diff --git a/implementation-contributed/v8/mjsunit/messages.js b/implementation-contributed/v8/mjsunit/messages.js
index b80e5abf232fd5339c0e3366044adabad7863d67..d5c796228c958fa60cc8a92daad60117a32a11d9 100644
--- a/implementation-contributed/v8/mjsunit/messages.js
+++ b/implementation-contributed/v8/mjsunit/messages.js
@@ -171,15 +171,15 @@ test(function() {
 for (constructor of typedArrayConstructors) {
   test(() => {
     const ta = new constructor([1]);
-    %ArrayBufferNeuter(ta.buffer);
+    %ArrayBufferDetach(ta.buffer);
     ta.find(() => {});
-  }, "Cannot perform %TypedArray%.prototype.find on a detached ArrayBuffer", TypeError);
+  }, "Cannot perform %TypedArray%.prototype.find on a neutered ArrayBuffer", TypeError);
 
   test(() => {
     const ta = new constructor([1]);
-    %ArrayBufferNeuter(ta.buffer);
+    %ArrayBufferDetach(ta.buffer);
     ta.findIndex(() => {});
-  }, "Cannot perform %TypedArray%.prototype.findIndex on a detached ArrayBuffer", TypeError);
+  }, "Cannot perform %TypedArray%.prototype.findIndex on a neutered ArrayBuffer", TypeError);
 }
 
 // kFirstArgumentNotRegExp
diff --git a/implementation-contributed/v8/mjsunit/mjsunit.status b/implementation-contributed/v8/mjsunit/mjsunit.status
index 76b22d8467c8f3efa70ca93540698ca7a4f25243..439237f382519920c4518f6719e9391a2f87a05b 100644
--- a/implementation-contributed/v8/mjsunit/mjsunit.status
+++ b/implementation-contributed/v8/mjsunit/mjsunit.status
@@ -107,12 +107,12 @@
 
   ##############################################################################
   # Skip long running tests that time out in debug mode.
-  'generated-transition-stub': [PASS, ['mode == debug or dcheck_always_on', SKIP]],
+  'generated-transition-stub': [PASS, ['mode == debug', SKIP]],
   'migrations': [SKIP],
-  'array-functions-prototype-misc': [PASS, SLOW, ['mode == debug or dcheck_always_on', SKIP]],
-  'compiler/regress-808472': [PASS, ['mode == debug or dcheck_always_on', SKIP]],
+  'array-functions-prototype-misc': [PASS, SLOW, ['mode == debug', SKIP]],
+  'compiler/regress-808472': [PASS, ['mode == debug', SKIP]],
   'es6/promise-all-overflow-1': [SKIP],
-  'es6/promise-all-overflow-2': [PASS, SLOW, ['mode == debug or dcheck_always_on or arch != x64', SKIP]],
+  'es6/promise-all-overflow-2': [PASS, SLOW, ['mode == debug or arch != x64', SKIP]],
 
   ##############################################################################
   # This test sets the umask on a per-process basis and hence cannot be
@@ -140,7 +140,7 @@
   ##############################################################################
   # Tests verifying CHECK and ASSERT.
   'verify-check-false': [FAIL, NO_VARIANTS],
-  'verify-assert-false': [NO_VARIANTS, ['mode == release and dcheck_always_on == False', PASS], ['mode == debug or dcheck_always_on == True', FAIL]],
+  'verify-assert-false': [NO_VARIANTS, ['mode == release and dcheck_always_on == False', PASS], ['mode == debug', FAIL]],
 
   ##############################################################################
   # Tests with different versions for release and debug.
@@ -214,10 +214,10 @@
 
   # TODO(vogelheim): big-object-literal exceeds the stack in debug builds,
   #                  which makes the test useless.
-  'big-object-literal': [PASS, ['mode == debug or dcheck_always_on', SKIP]],
+  'big-object-literal': [PASS, ['mode == debug', SKIP]],
 
   # Runs out of stack space in debug builds.
-  'big-array-literal': [PASS, ['mode == debug or dcheck_always_on', SKIP]],
+  'big-array-literal': [PASS, ['mode == debug', SKIP]],
 
   # BUG(v8:6306).
   'wasm/huge-memory': [SKIP],
@@ -929,4 +929,10 @@
   'wasm/asm-wasm-f64': [SKIP],
 }], # arch == x64
 
+##############################################################################
+['arch in [arm, android_arm, android_ia32, ia32, ppc, s390, s390x, mipsel, mips]', {
+  # TODO(ssauleau): implement BigInt<>Wasm conversion for other arch -
+  # crbug.com/v8/7741
+  'wasm/bigint': [SKIP],
+}], # arch in [arm, android_arm, android_ia32, ia32, ppc, s390, s390x, mipsel, mips]
 ]
diff --git a/implementation-contributed/v8/mjsunit/neuter-twice.js b/implementation-contributed/v8/mjsunit/neuter-twice.js
index 3501cee4330f966c1eeaf6f5b7ebdc6418f2bcec..1bf0fa9405650bee1742b87bd8e26898bc074cec 100644
--- a/implementation-contributed/v8/mjsunit/neuter-twice.js
+++ b/implementation-contributed/v8/mjsunit/neuter-twice.js
@@ -5,5 +5,5 @@
 // Flags: --allow-natives-syntax
 
 var ab = new ArrayBuffer(100);
-%ArrayBufferNeuter(ab);
-%ArrayBufferNeuter(ab);
+%ArrayBufferDetach(ab);
+%ArrayBufferDetach(ab);
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-353004.js b/implementation-contributed/v8/mjsunit/regress/regress-353004.js
index fe19354d8b8463adb6be746d7126e756a2a72158..f5430c6df4b1575253553a10d156f4ae5811f8e4 100644
--- a/implementation-contributed/v8/mjsunit/regress/regress-353004.js
+++ b/implementation-contributed/v8/mjsunit/regress/regress-353004.js
@@ -8,7 +8,7 @@ var buffer1 = new ArrayBuffer(100 * 1024);
 
 assertThrows(function() {
   var array1 = new Uint8Array(buffer1, {valueOf : function() {
-    %ArrayBufferNeuter(buffer1);
+    %ArrayBufferDetach(buffer1);
     return 0;
   }});
 }, TypeError);
@@ -17,7 +17,7 @@ var buffer2 = new ArrayBuffer(100 * 1024);
 
 assertThrows(function() {
   var array2 = new Uint8Array(buffer2, 0, {valueOf : function() {
-      %ArrayBufferNeuter(buffer2);
+      %ArrayBufferDetach(buffer2);
       return 100 * 1024;
   }});
 }, TypeError);
@@ -30,7 +30,7 @@ assertThrows(() =>
       return 0;
     }}, {valueOf : function() {
       convertedLength = true;
-      %ArrayBufferNeuter(buffer1);
+      %ArrayBufferDetach(buffer1);
       return 0;
   }}), TypeError);
 assertTrue(convertedOffset);
@@ -38,7 +38,7 @@ assertTrue(convertedLength);
 
 var buffer3 = new ArrayBuffer(100 * 1024 * 1024);
 var dataView1 = new DataView(buffer3, {valueOf : function() {
-  %ArrayBufferNeuter(buffer3);
+  %ArrayBufferDetach(buffer3);
   return 0;
 }});
 
@@ -47,7 +47,7 @@ assertEquals(0, dataView1.byteLength);
 var buffer4 = new ArrayBuffer(100 * 1024);
 assertThrows(function() {
   var dataView2 = new DataView(buffer4, 0, {valueOf : function() {
-    %ArrayBufferNeuter(buffer4);
+    %ArrayBufferDetach(buffer4);
     return 100 * 1024 * 1024;
   }});
 }, RangeError);
@@ -56,7 +56,7 @@ assertThrows(function() {
 var buffer5 = new ArrayBuffer(100 * 1024);
 assertThrows(function() {
   buffer5.slice({valueOf : function() {
-    %ArrayBufferNeuter(buffer5);
+    %ArrayBufferDetach(buffer5);
     return 0;
   }}, 100 * 1024 * 1024);
 }, TypeError);
@@ -65,7 +65,7 @@ assertThrows(function() {
 var buffer7 = new ArrayBuffer(100 * 1024 * 1024);
 assertThrows(function() {
   buffer7.slice(0, {valueOf : function() {
-    %ArrayBufferNeuter(buffer7);
+    %ArrayBufferDetach(buffer7);
     return 100 * 1024 * 1024;
   }});
 }, TypeError);
@@ -74,7 +74,7 @@ var buffer9 = new ArrayBuffer(1024);
 var array9 = new Uint8Array(buffer9);
 assertThrows(() =>
   array9.subarray({valueOf : function() {
-    %ArrayBufferNeuter(buffer9);
+    %ArrayBufferDetach(buffer9);
     return 0;
   }}, 1024), TypeError);
 assertEquals(0, array9.length);
@@ -83,7 +83,7 @@ var buffer11 = new ArrayBuffer(1024);
 var array11 = new Uint8Array(buffer11);
 assertThrows(() =>
   array11.subarray(0, {valueOf : function() {
-    %ArrayBufferNeuter(buffer11);
+    %ArrayBufferDetach(buffer11);
     return 1024;
   }}), TypeError);
 assertEquals(0, array11.length);
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-4964.js b/implementation-contributed/v8/mjsunit/regress/regress-4964.js
index d834708667d35f0c3e9c5a9de014f60742492d50..ad259dca5409dc45977d55995755ccc4ff11f699 100644
--- a/implementation-contributed/v8/mjsunit/regress/regress-4964.js
+++ b/implementation-contributed/v8/mjsunit/regress/regress-4964.js
@@ -4,19 +4,19 @@
 
 // Flags: --allow-natives-syntax
 
-// Neutered source
+// Detached source
 var ab = new ArrayBuffer(10);
-ab.constructor = { get [Symbol.species]() { %ArrayBufferNeuter(ab); return ArrayBuffer; } };
+ab.constructor = { get [Symbol.species]() { %ArrayBufferDetach(ab); return ArrayBuffer; } };
 assertThrows(() => ab.slice(0), TypeError);
 
-// Neutered target
-class NeuteredArrayBuffer extends ArrayBuffer {
+// Detached target
+class DetachedArrayBuffer extends ArrayBuffer {
   constructor(...args) {
     super(...args);
-    %ArrayBufferNeuter(this);
+    %ArrayBufferDetach(this);
   }
 }
 
 var ab2 = new ArrayBuffer(10);
-ab2.constructor = NeuteredArrayBuffer;
+ab2.constructor = DetachedArrayBuffer;
 assertThrows(() => ab2.slice(0), TypeError);
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-6288.js b/implementation-contributed/v8/mjsunit/regress/regress-6288.js
index 5f550c31c8b72d021fcc1148a5c738c0e0d0dd4b..96499d9378f85c5f92e22fbd814a7f9083626e88 100644
--- a/implementation-contributed/v8/mjsunit/regress/regress-6288.js
+++ b/implementation-contributed/v8/mjsunit/regress/regress-6288.js
@@ -4,10 +4,7 @@
 
 // Environment Variables: LC_ALL=pt-BR.UTF8
 
-// The data files packaged with d8 currently have Brazillian Portuguese
-// DateTimeFormat but not Collation
-
 if (this.Intl) {
-  assertEquals('pt', Intl.Collator().resolvedOptions().locale);
+  assertEquals('pt-BR', Intl.Collator().resolvedOptions().locale);
   assertEquals('pt-BR', Intl.DateTimeFormat().resolvedOptions().locale);
 }
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-707410.js b/implementation-contributed/v8/mjsunit/regress/regress-707410.js
index a6a0aa52bbf06c7229cbfaa7b76fdfe89781aa02..cc3f58cdb5fd05726f472ab1744c2cfe250d535a 100644
--- a/implementation-contributed/v8/mjsunit/regress/regress-707410.js
+++ b/implementation-contributed/v8/mjsunit/regress/regress-707410.js
@@ -5,5 +5,5 @@
 // Flags: --allow-natives-syntax
 
 var a = new Uint8Array(1024*1024);
-%ArrayBufferNeuter(a.buffer);
+%ArrayBufferDetach(a.buffer);
 assertThrows(() => new Uint8Array(a));
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-7773.js b/implementation-contributed/v8/mjsunit/regress/regress-7773.js
new file mode 100644
index 0000000000000000000000000000000000000000..7930ae91063f392ee12a9445b270c2c6359b84bb
--- /dev/null
+++ b/implementation-contributed/v8/mjsunit/regress/regress-7773.js
@@ -0,0 +1,71 @@
+// 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.
+
+(function testFunctionNames() {
+  let descriptor = {
+    value: '',
+    writable: false,
+    enumerable: false,
+    configurable: true
+  };
+  // Functions have a "name" property by default.
+  assertEquals(
+      descriptor, Object.getOwnPropertyDescriptor(function(){}, 'name'));
+  let a = { fn: function(){} };
+  assertSame('fn', a.fn.name);
+  descriptor.value = 'fn';
+  assertEquals(descriptor, Object.getOwnPropertyDescriptor(a.fn, 'name'));
+
+  let b = { __proto__: function(){} };
+  assertSame('', b.__proto__.name);
+  descriptor.value = '';
+  assertEquals(
+      descriptor, Object.getOwnPropertyDescriptor(b.__proto__, 'name'));
+
+  let c = { fn: function F(){} };
+  assertSame('F', c.fn.name);
+  descriptor.value = 'F';
+  assertEquals(descriptor, Object.getOwnPropertyDescriptor(c.fn, 'name'));
+
+  let d = { __proto__: function E(){} };
+  assertSame('E', d.__proto__.name);
+  descriptor.value = 'E';
+  assertEquals(
+      descriptor, Object.getOwnPropertyDescriptor(d.__proto__, 'name'));
+})();
+
+(function testClassNames() {
+  let descriptor = {
+    value: '',
+    writable: false,
+    enumerable: false,
+    configurable: true
+  };
+
+  // Anonymous classes do not have a "name" property by default.
+  assertSame(undefined, Object.getOwnPropertyDescriptor(class {}, 'name'));
+  descriptor.value = 'C';
+  assertEquals(descriptor, Object.getOwnPropertyDescriptor(class C {}, 'name'));
+
+  let a = { fn: class {} };
+  assertSame('fn', a.fn.name);
+  descriptor.value = 'fn';
+  assertEquals(descriptor, Object.getOwnPropertyDescriptor(a.fn, 'name'));
+
+  let b = { __proto__: class {} };
+  assertSame('', b.__proto__.name);
+  assertSame(
+      undefined, Object.getOwnPropertyDescriptor(b.__proto__, 'name'));
+
+  let c = { fn: class F {} };
+  assertSame('F', c.fn.name);
+  descriptor.value = 'F';
+  assertEquals(descriptor, Object.getOwnPropertyDescriptor(c.fn, 'name'));
+
+  let d = { __proto__: class F {} };
+  assertSame('F', d.__proto__.name);
+  descriptor.value = 'F';
+  assertEquals(
+      descriptor, Object.getOwnPropertyDescriptor(d.__proto__, 'name'));
+})();
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-840106.js b/implementation-contributed/v8/mjsunit/regress/regress-840106.js
index b49464dce5223ad035b76dd3f656e435958c032e..568ab7547927a587db6f892e806b40d77e7b8eb9 100644
--- a/implementation-contributed/v8/mjsunit/regress/regress-840106.js
+++ b/implementation-contributed/v8/mjsunit/regress/regress-840106.js
@@ -8,7 +8,7 @@ var buffer = new ArrayBuffer(1024 * 1024);
 buffer.constructor = {
   [Symbol.species]: new Proxy(function() {}, {
     get: _ => {
-      %ArrayBufferNeuter(buffer);
+      %ArrayBufferDetach(buffer);
     }
   })
 };
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-904707.js b/implementation-contributed/v8/mjsunit/regress/regress-904707.js
index 8ff8c3a0f2a347720cea8ea026feda6db465c3ef..fdf89c2b55c142aecfd8190ab85b7fb203370e43 100644
--- a/implementation-contributed/v8/mjsunit/regress/regress-904707.js
+++ b/implementation-contributed/v8/mjsunit/regress/regress-904707.js
@@ -8,7 +8,7 @@ delete Float64Array.prototype.__proto__[Symbol.iterator];
 
 let a = new Float64Array(9);
 Object.defineProperty(a, "length", {
-  get: function () { %ArrayBufferNeuter(a.buffer); return 6; }
+  get: function () { %ArrayBufferDetach(a.buffer); return 6; }
 });
 
 Float64Array.from(a);
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-crbug-691323.js b/implementation-contributed/v8/mjsunit/regress/regress-crbug-691323.js
index d786875d76851e9993a485fa68b914c52e9cdb6a..5002ceaf206ae1053e509fb7ef961207b1ad9e5a 100644
--- a/implementation-contributed/v8/mjsunit/regress/regress-crbug-691323.js
+++ b/implementation-contributed/v8/mjsunit/regress/regress-crbug-691323.js
@@ -7,7 +7,7 @@ var buffer = new ArrayBuffer(0x100);
 var array = new Uint8Array(buffer).fill(55);
 var tmp = {};
 tmp[Symbol.toPrimitive] = function () {
-  %ArrayBufferNeuter(array.buffer)
+  %ArrayBufferDetach(array.buffer)
   return 0;
 };
 
@@ -18,7 +18,7 @@ buffer = new ArrayBuffer(0x100);
 array = new Uint8Array(buffer).fill(55);
 tmp = {};
 tmp[Symbol.toPrimitive] = function () {
-  %ArrayBufferNeuter(array.buffer)
+  %ArrayBufferDetach(array.buffer)
   return 0;
 };
 
@@ -29,7 +29,7 @@ buffer = new ArrayBuffer(0x100);
 array = new Uint8Array(buffer).fill(55);
 tmp = {};
 tmp[Symbol.toPrimitive] = function () {
-  %ArrayBufferNeuter(array.buffer)
+  %ArrayBufferDetach(array.buffer)
   return 0;
 };
 assertEquals(true, Array.prototype.includes.call(array, undefined, tmp));
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-crbug-867776.js b/implementation-contributed/v8/mjsunit/regress/regress-crbug-867776.js
index f108f2acc463ce5bf005122866d3d068c86549db..76d2121640950c523a770b4c9954327f9effa264 100644
--- a/implementation-contributed/v8/mjsunit/regress/regress-crbug-867776.js
+++ b/implementation-contributed/v8/mjsunit/regress/regress-crbug-867776.js
@@ -8,7 +8,7 @@ for (var i = 0; i < 3; i++) {
   var array = new BigInt64Array(200);
 
   function evil_callback() {
-    %ArrayBufferNeuter(array.buffer);
+    %ArrayBufferDetach(array.buffer);
     gc();
     return 1094795585n;
   }
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-crbug-913212.js b/implementation-contributed/v8/mjsunit/regress/regress-crbug-913212.js
new file mode 100644
index 0000000000000000000000000000000000000000..2de99d6efc894b0ac7d216290ba6f294fe9c9940
--- /dev/null
+++ b/implementation-contributed/v8/mjsunit/regress/regress-crbug-913212.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.
+
+const globalThis = this;
+Object.setPrototypeOf(this, new Proxy({}, {
+  get(target, prop, receiver) {
+    assertTrue(receiver === globalThis);
+  }
+}));
+undefined_name_access
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-crbug-913296.js b/implementation-contributed/v8/mjsunit/regress/regress-crbug-913296.js
new file mode 100644
index 0000000000000000000000000000000000000000..3fab06607f51aeca4752afca9cde56cc42e567c9
--- /dev/null
+++ b/implementation-contributed/v8/mjsunit/regress/regress-crbug-913296.js
@@ -0,0 +1,13 @@
+// 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
+
+function foo(trigger) {
+  return Object.is((trigger ? -0 : 0) - 0, -0);
+}
+
+assertFalse(foo(false));
+%OptimizeFunctionOnNextCall(foo);
+assertTrue(foo(true));
diff --git a/implementation-contributed/v8/mjsunit/regress/wasm/regress-680938.js b/implementation-contributed/v8/mjsunit/regress/wasm/regress-680938.js
index 75c8a457bbd57b08118fd5bce70e9aad2d466f64..5471f60a71b3cee2eed8a1031b69fde6a973de5d 100644
--- a/implementation-contributed/v8/mjsunit/regress/wasm/regress-680938.js
+++ b/implementation-contributed/v8/mjsunit/regress/wasm/regress-680938.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-var v17 = {};
-var v32 = {};
+var v17 = 42;
+var v32 = { initial: 1 };
 v39 = new WebAssembly.Memory(v32);
 v49 = v39.grow(v17);
diff --git a/implementation-contributed/v8/mjsunit/regress/wasm/regress-736584.js b/implementation-contributed/v8/mjsunit/regress/wasm/regress-736584.js
index 39f03c1072c9399429c834f582d480ecd8b47887..033732f368240f8f358cb91577808042c785b73a 100644
--- a/implementation-contributed/v8/mjsunit/regress/wasm/regress-736584.js
+++ b/implementation-contributed/v8/mjsunit/regress/wasm/regress-736584.js
@@ -7,7 +7,7 @@
 load('test/mjsunit/wasm/wasm-constants.js');
 load('test/mjsunit/wasm/wasm-module-builder.js');
 
-let mem = new WebAssembly.Memory({});
+let mem = new WebAssembly.Memory({initial: 0});
 let builder = new WasmModuleBuilder();
 builder.addImportedMemory("mod", "imported_mem");
 builder.addFunction('mem_size', kSig_i_v)
diff --git a/implementation-contributed/v8/mjsunit/regress/wasm/regress-816226.js b/implementation-contributed/v8/mjsunit/regress/wasm/regress-816226.js
index a9cb71557009ec43c7eb19b6b1f754af0458ac73..1fca02fe82779472f4777149e84eaa24fd97e9ff 100644
--- a/implementation-contributed/v8/mjsunit/regress/wasm/regress-816226.js
+++ b/implementation-contributed/v8/mjsunit/regress/wasm/regress-816226.js
@@ -2,4 +2,4 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-(new Int8Array((new WebAssembly.Memory({})).buffer)).buffer;
+(new Int8Array((new WebAssembly.Memory({initial: 0})).buffer)).buffer;
diff --git a/implementation-contributed/v8/mjsunit/regress/wasm/regress-913804.js b/implementation-contributed/v8/mjsunit/regress/wasm/regress-913804.js
new file mode 100644
index 0000000000000000000000000000000000000000..c12013c9f86c87ae7b9ae83e86b1c3cf1fdfa55a
--- /dev/null
+++ b/implementation-contributed/v8/mjsunit/regress/wasm/regress-913804.js
@@ -0,0 +1,17 @@
+// 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.
+
+load('test/mjsunit/wasm/wasm-constants.js');
+load('test/mjsunit/wasm/wasm-module-builder.js');
+
+const builder = new WasmModuleBuilder();
+builder.addFunction('main', kSig_v_v).addBody([
+  kExprLoop, kWasmStmt,        // loop
+  /**/ kExprBr, 0x01,          //   br depth=1
+  /**/ kExprBlock, kWasmStmt,  //   block
+  /**/ /**/ kExprBr, 0x02,     //     br depth=2
+  /**/ /**/ kExprEnd,          //     end [block]
+  /**/ kExprEnd                //   end [loop]
+]);
+builder.instantiate();
diff --git a/implementation-contributed/v8/mjsunit/samevalue.js b/implementation-contributed/v8/mjsunit/samevalue.js
index 1e5384d73d5fa642e4d525b8a1367485f107bb4f..30cce35bcceb168bbc9a23975604d126ab4f05e0 100644
--- a/implementation-contributed/v8/mjsunit/samevalue.js
+++ b/implementation-contributed/v8/mjsunit/samevalue.js
@@ -26,7 +26,7 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
-// Flags: --expose-natives-as natives --allow-natives-syntax
+// Flags: --allow-natives-syntax
 // Test the SameValue and SameValueZero internal methods.
 
 var obj1 = {x: 10, y: 11, z: "test"};
diff --git a/implementation-contributed/v8/test262/detachArrayBuffer.js b/implementation-contributed/v8/test262/detachArrayBuffer.js
index 959773b5ca1d66f4d57d1f3ea304d9a6c80d74bd..d9ca415c2bf0981554beee1b94d9595183501e8b 100644
--- a/implementation-contributed/v8/test262/detachArrayBuffer.js
+++ b/implementation-contributed/v8/test262/detachArrayBuffer.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 function $DETACHBUFFER(buffer) {
-  %ArrayBufferNeuter(buffer);
+  %ArrayBufferDetach(buffer);
 }
 
 $262.detachArrayBuffer = $DETACHBUFFER;
diff --git a/implementation-contributed/v8/test262/test262.status b/implementation-contributed/v8/test262/test262.status
index ecab026c989c44d8fb8dbd96b0563dba6604d4ae..e43eba805d2471f350cd49eab865198fd51115c7 100644
--- a/implementation-contributed/v8/test262/test262.status
+++ b/implementation-contributed/v8/test262/test262.status
@@ -179,232 +179,232 @@
 
   # 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],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid': [FAIL],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N': [FAIL],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No': [FAIL],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T': [FAIL],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y': [FAIL],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes': [FAIL],
-  'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/character-class-range-end': [FAIL],
-  'built-ins/RegExp/property-escapes/character-class-range-no-dash-end': [FAIL],
-  'built-ins/RegExp/property-escapes/character-class-range-no-dash-start': [FAIL],
-  'built-ins/RegExp/property-escapes/character-class-range-start': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-empty': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-empty-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-invalid': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-invalid-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-no-braces': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-no-braces-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-no-braces-value': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-no-braces-value-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-separator': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-separator-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-separator-only': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-separator-only-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-unclosed': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-unclosed-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-unopened': [FAIL],
-  'built-ins/RegExp/property-escapes/grammar-extension-unopened-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-01': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-01-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-02': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-02-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-03': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-03-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-04': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-04-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-05': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-05-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-06': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-06-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-07': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-07-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-08': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-08-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-09': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-09-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-10': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-10-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-11': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-11-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-12': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-12-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-13': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-13-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-14': [FAIL],
-  'built-ins/RegExp/property-escapes/loose-matching-14-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category': [FAIL],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals': [FAIL],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script': [FAIL],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals': [FAIL],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions': [FAIL],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals': [FAIL],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/non-existent-binary-property': [FAIL],
-  'built-ins/RegExp/property-escapes/non-existent-binary-property-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/non-existent-property-and-value': [FAIL],
-  'built-ins/RegExp/property-escapes/non-existent-property-and-value-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/non-existent-property-existing-value': [FAIL],
-  'built-ins/RegExp/property-escapes/non-existent-property-existing-value-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/non-existent-property-value-General_Category-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/non-existent-property-value-Script': [FAIL],
-  'built-ins/RegExp/property-escapes/non-existent-property-value-Script-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions': [FAIL],
-  'built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/non-existent-property-value-general-category': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-property-Block-with-value': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-property-Block-with-value-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-property-Line_Break': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-property-Line_Break-negated': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value': [FAIL],
-  'built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value-negated': [FAIL],
-  'language/literals/regexp/early-err-pattern': [FAIL],
-  'language/literals/regexp/invalid-braced-quantifier-exact': [FAIL],
-  'language/literals/regexp/invalid-braced-quantifier-lower': [FAIL],
-  'language/literals/regexp/invalid-braced-quantifier-range': [FAIL],
-  'language/literals/regexp/invalid-optional-lookbehind': [FAIL],
-  'language/literals/regexp/invalid-optional-negative-lookbehind': [FAIL],
-  'language/literals/regexp/invalid-range-lookbehind': [FAIL],
-  'language/literals/regexp/invalid-range-negative-lookbehind': [FAIL],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname': [FAIL],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-2': [FAIL],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-2-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-3': [FAIL],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-3-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-4': [FAIL],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-4-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-5': [FAIL],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-dangling-groupname-without-group-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-duplicate-groupspecifier': [FAIL],
-  'language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-2': [FAIL],
-  'language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-2-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-empty-groupspecifier': [FAIL],
-  'language/literals/regexp/named-groups/invalid-empty-groupspecifier-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-identity-escape-in-capture-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname': [FAIL],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-2': [FAIL],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-2-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-3': [FAIL],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-3-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-4': [FAIL],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-5': [FAIL],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-6': [FAIL],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-2-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-3-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-continue-groupspecifier': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-continue-groupspecifier-4': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-continue-groupspecifier-4-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-2': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-2-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-3': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-4': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-4-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-5': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-5-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-6': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-7': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-8': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-8-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-9-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-non-id-start-groupspecifier-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-numeric-groupspecifier': [FAIL],
-  'language/literals/regexp/named-groups/invalid-numeric-groupspecifier-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-punctuator-starting-groupspecifier': [FAIL],
-  'language/literals/regexp/named-groups/invalid-punctuator-starting-groupspecifier-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-punctuator-within-groupspecifier': [FAIL],
-  'language/literals/regexp/named-groups/invalid-punctuator-within-groupspecifier-u': [FAIL],
-  'language/literals/regexp/named-groups/invalid-u-escape-in-groupspecifier': [FAIL],
-  'language/literals/regexp/named-groups/invalid-u-escape-in-groupspecifier-2': [FAIL],
-  'language/literals/regexp/named-groups/invalid-unterminated-groupspecifier': [FAIL],
-  'language/literals/regexp/named-groups/invalid-unterminated-groupspecifier-u': [FAIL],
-  'language/literals/regexp/u-dec-esc': [FAIL],
-  'language/literals/regexp/u-invalid-class-escape': [FAIL],
-  'language/literals/regexp/u-invalid-extended-pattern-char': [FAIL],
-  'language/literals/regexp/u-invalid-identity-escape': [FAIL],
-  'language/literals/regexp/u-invalid-legacy-octal-escape': [FAIL],
-  'language/literals/regexp/u-invalid-non-empty-class-ranges': [FAIL],
-  'language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a': [FAIL],
-  'language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab': [FAIL],
-  'language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b': [FAIL],
-  'language/literals/regexp/u-invalid-oob-decimal-escape': [FAIL],
-  'language/literals/regexp/u-invalid-optional-lookahead': [FAIL],
-  'language/literals/regexp/u-invalid-optional-lookbehind': [FAIL],
-  'language/literals/regexp/u-invalid-optional-negative-lookahead': [FAIL],
-  'language/literals/regexp/u-invalid-optional-negative-lookbehind': [FAIL],
-  'language/literals/regexp/u-invalid-range-lookahead': [FAIL],
-  'language/literals/regexp/u-invalid-range-lookbehind': [FAIL],
-  'language/literals/regexp/u-invalid-range-negative-lookahead': [FAIL],
-  'language/literals/regexp/u-invalid-range-negative-lookbehind': [FAIL],
-  'language/literals/regexp/u-unicode-esc-bounds': [FAIL],
-  'language/literals/regexp/u-unicode-esc-non-hex': [FAIL],
-  'language/literals/regexp/unicode-escape-nls-err': [FAIL],
+  '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],
@@ -586,10 +586,6 @@
   '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=7481
-  'intl402/NumberFormat/ignore-invalid-unicode-ext-values': [FAIL],
-  'intl402/DateTimeFormat/ignore-invalid-unicode-ext-values': [FAIL],
-
   # https://bugs.chromium.org/p/v8/issues/detail?id=7482
   'intl402/DateTimeFormat/prototype/resolvedOptions/resolved-locale-with-hc-unicode': [FAIL],
 
@@ -604,7 +600,9 @@
   # https://crbug.com/v8/7808
   'intl402/String/prototype/localeCompare/returns-same-results-as-Collator': [SKIP],
   'intl402/Collator/prototype/compare/bound-to-collator-instance': [SKIP],
-  'intl402/Collator/ignore-invalid-unicode-ext-values': [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],
@@ -672,14 +670,13 @@
   'intl402/Segmenter/prototype/segment/segment-word': [FAIL],
 
   # https://bugs.chromium.org/p/v8/issues/detail?id=8021
-  'built-ins/Object/fromEntries/requires-argument': [FAIL],
+  '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.
-  'intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle': [FAIL],
 
   # https://bugs.chromium.org/p/v8/issues/detail?id=7833
   'built-ins/Atomics/wait/cannot-suspend-throws': [SKIP],
@@ -734,6 +731,10 @@
   '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.
diff --git a/implementation-contributed/v8/test262/testcfg.py b/implementation-contributed/v8/test262/testcfg.py
index 9052aab12fa8d3c20fbeae4bb4dd88c8a6b1925b..02e4dcd8b6e2c7a7c5196d4046e534a48d888f20 100644
--- a/implementation-contributed/v8/test262/testcfg.py
+++ b/implementation-contributed/v8/test262/testcfg.py
@@ -87,15 +87,23 @@ class VariantsGenerator(testsuite.VariantsGenerator):
   def gen(self, test):
     flags_set = self._get_flags_set(test)
     test_record = test.test_record
-    for n, variant in enumerate(self._get_variants(test)):
-      flags = flags_set[variant][0]
-      if 'noStrict' in test_record:
-        yield (variant, flags, str(n))
-      elif 'onlyStrict' in test_record:
-        yield (variant, flags + ['--use-strict'], 'strict-%d' % n)
-      else:
-        yield (variant, flags, str(n))
-        yield (variant, flags + ['--use-strict'], 'strict-%d' % n)
+
+    # Add a reverse test ensuring that FAIL_PHASE_ONLY is only used for tests
+    # that actually fail to throw an exception at wrong phase.
+    phase_variants = ['']
+    if test.fail_phase_only:
+      phase_variants.append('-fail-phase-reverse')
+
+    for phase_var in phase_variants:
+      for n, variant in enumerate(self._get_variants(test)):
+        flags = flags_set[variant][0]
+        if 'noStrict' in test_record:
+          yield (variant, flags, str(n) + phase_var)
+        elif 'onlyStrict' in test_record:
+          yield (variant, flags + ['--use-strict'], 'strict-%d' % n + phase_var)
+        else:
+          yield (variant, flags, str(n))
+          yield (variant, flags + ['--use-strict'], 'strict-%d' % n + phase_var)
 
 
 class TestSuite(testsuite.TestSuite):
@@ -169,13 +177,34 @@ class TestCase(testcase.D8TestCase):
           .get('type', None)
     )
 
+    # We disallow combining FAIL_PHASE_ONLY with any other fail outcome types.
+    # Outcome parsing logic in the base class converts all outcomes specified in
+    # the status file into either FAIL, CRASH or PASS, thus we do not need to
+    # handle FAIL_OK, FAIL_SLOPPY and various other outcomes.
+    if self.fail_phase_only:
+      assert (
+          statusfile.FAIL not in self.expected_outcomes and
+          statusfile.CRASH not in self.expected_outcomes), self.name
+
+  @property
+  def fail_phase_only(self):
+    # The FAIL_PHASE_ONLY is defined in tools/testrunner/local/statusfile.py and
+    # can be used in status files to mark tests that throw an exception at wrong
+    # phase, e.g. SyntaxError is thrown at execution phase instead of parsing
+    # phase. See https://crbug.com/v8/8467 for more details.
+    return statusfile.FAIL_PHASE_ONLY in self._statusfile_outcomes
+
+  @property
+  def _fail_phase_reverse(self):
+    return 'fail-phase-reverse' in self.procid
+
   def _get_files_params(self):
     return (
         list(self.suite.harness) +
         ([os.path.join(self.suite.root, "harness-agent.js")]
          if self.path.startswith('built-ins/Atomics') else []) +
         ([os.path.join(self.suite.root, "harness-adapt-donotevaluate.js")]
-         if self.fail_phase_only else []) +
+         if self.fail_phase_only and not self._fail_phase_reverse else []) +
         self._get_includes() +
         (["--module"] if "module" in self.test_record else []) +
         [self._get_source_path()]
@@ -213,7 +242,12 @@ class TestCase(testcase.D8TestCase):
   def output_proc(self):
     if self._expected_exception is not None:
       return test262.ExceptionOutProc(self.expected_outcomes,
-                                      self._expected_exception)
+                                      self._expected_exception,
+                                      self._fail_phase_reverse)
+    else:
+      # We only support fail phase reverse on tests that expect an exception.
+      assert not self._fail_phase_reverse
+
     if self.expected_outcomes == outproc.OUTCOMES_PASS:
       return test262.PASS_NO_EXCEPTION
     return test262.NoExceptionOutProc(self.expected_outcomes)
diff --git a/implementation-contributed/v8/wasm-js/wasm-js.status b/implementation-contributed/v8/wasm-js/wasm-js.status
index fe74ca47f54e8515035a9ee41e90564e0e845573..4593a73c6e720fa7d290fb96a93243cfcbfbfc5f 100644
--- a/implementation-contributed/v8/wasm-js/wasm-js.status
+++ b/implementation-contributed/v8/wasm-js/wasm-js.status
@@ -6,9 +6,7 @@
 [ALWAYS, {
   # https://bugs.chromium.org/p/v8/issues/detail?id=8319
   'memory/grow': [FAIL],
-  'memory/constructor': [FAIL],
   'table/grow': [FAIL],
-  'table/constructor': [FAIL],
   'table/get-set': [FAIL],
   'module/customSections': [FAIL],
   'global/constructor': [FAIL],