diff --git a/implementation-contributed/curation_logs/v8.json b/implementation-contributed/curation_logs/v8.json
index f32cdc95fd135c436d716abef17cce0248e56b72..35a2852a259e4e2e86b08f7c4c9158654310057b 100644
--- a/implementation-contributed/curation_logs/v8.json
+++ b/implementation-contributed/curation_logs/v8.json
@@ -1,5 +1,5 @@
 {
-  "sourceRevisionAtLastExport": "4a395137",
-  "targetRevisionAtLastExport": "07b313100e",
+  "sourceRevisionAtLastExport": "9583858e",
+  "targetRevisionAtLastExport": "d420adb9f2",
   "curatedFiles": {}
 }
\ No newline at end of file
diff --git a/implementation-contributed/v8/intl/collator/constructor-order.js b/implementation-contributed/v8/intl/collator/constructor-order.js
new file mode 100644
index 0000000000000000000000000000000000000000..2b1de6b866441adf38204b7c0b33390c16241aaf
--- /dev/null
+++ b/implementation-contributed/v8/intl/collator/constructor-order.js
@@ -0,0 +1,30 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Throws only once during construction.
+// Check for all getters to prevent regression.
+// Preserve the order of getter initialization.
+let getCount = 0;
+
+new Intl.Collator(['en-US'], {
+  get usage() {
+    assertEquals(0, getCount++);
+  },
+  get localeMatcher() {
+    assertEquals(1, getCount++);
+  },
+  get numeric() {
+    assertEquals(2, getCount++);
+  },
+  get caseFirst() {
+    assertEquals(3, getCount++);
+  },
+  get sensitivity() {
+    assertEquals(4, getCount++);
+  },
+  get ignorePunctuation() {
+    assertEquals(5, getCount++);
+  },
+});
+assertEquals(6, getCount);
diff --git a/implementation-contributed/v8/intl/list-format/constructor-order.js b/implementation-contributed/v8/intl/list-format/constructor-order.js
new file mode 100644
index 0000000000000000000000000000000000000000..1fc7d994295c5bfc0a228bfd70f8d31e67aabb93
--- /dev/null
+++ b/implementation-contributed/v8/intl/list-format/constructor-order.js
@@ -0,0 +1,21 @@
+// 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.
+
+// Throws only once during construction.
+// Check for all getters to prevent regression.
+// Preserve the order of getter initialization.
+let getCount = 0;
+
+new Intl.ListFormat(['en-US'], {
+  get type() {
+    assertEquals(0, getCount++);
+  },
+  get style() {
+    assertEquals(1, getCount++);
+  },
+  get localeMatcher() {
+    assertEquals(2, getCount++);
+  },
+});
+assertEquals(3, getCount);
diff --git a/implementation-contributed/v8/intl/number-format/constructor-order.js b/implementation-contributed/v8/intl/number-format/constructor-order.js
new file mode 100644
index 0000000000000000000000000000000000000000..db99793bb97e196db7734b90d2e8d5b938d8b6e2
--- /dev/null
+++ b/implementation-contributed/v8/intl/number-format/constructor-order.js
@@ -0,0 +1,42 @@
+// 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.
+
+// Throws only once during construction.
+// Check for all getters to prevent regression.
+// Preserve the order of getter initialization.
+let getCount = 0;
+
+new Intl.NumberFormat(['en-US'], {
+  get localeMatcher() {
+    assertEquals(0, getCount++);
+  },
+  get style() {
+    assertEquals(1, getCount++);
+  },
+  get currency() {
+    assertEquals(2, getCount++);
+  },
+  get currencyDisplay() {
+    assertEquals(3, getCount++);
+  },
+  get minimumIntegerDigits() {
+    assertEquals(4, getCount++);
+  },
+  get minimumFractionDigits() {
+    assertEquals(5, getCount++);
+  },
+  get maximumFractionDigits() {
+    assertEquals(6, getCount++);
+  },
+  get minimumSignificantDigits() {
+    assertEquals(7, getCount++);
+  },
+  get maximumSignificantDigits() {
+    assertEquals(8, getCount++);
+  },
+  get useGrouping() {
+    assertEquals(9, getCount++);
+  },
+});
+assertEquals(10, getCount);
diff --git a/implementation-contributed/v8/intl/plural-rules/constructor-order.js b/implementation-contributed/v8/intl/plural-rules/constructor-order.js
new file mode 100644
index 0000000000000000000000000000000000000000..18acdcccbb013506548139569ec36c9ec6d93d6e
--- /dev/null
+++ b/implementation-contributed/v8/intl/plural-rules/constructor-order.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.
+
+// Throws only once during construction.
+// Check for all getters to prevent regression.
+// Preserve the order of getter initialization.
+let getCount = 0;
+
+new Intl.PluralRules(['en-US'], {
+  get localeMatcher() {
+    assertEquals(0, getCount++);
+  },
+  get type() {
+    assertEquals(1, getCount++);
+  },
+  get minimumIntegerDigits() {
+    assertEquals(2, getCount++);
+  },
+  get minimumFractionDigits() {
+    assertEquals(3, getCount++);
+  },
+  get maximumFractionDigits() {
+    assertEquals(4, getCount++);
+  },
+  get minimumSignificantDigits() {
+    assertEquals(5, getCount++);
+  },
+  get maximumSignificantDigits() {
+    assertEquals(6, getCount++);
+  },
+});
+assertEquals(7, getCount);
diff --git a/implementation-contributed/v8/intl/relative-time-format/constructor-order.js b/implementation-contributed/v8/intl/relative-time-format/constructor-order.js
new file mode 100644
index 0000000000000000000000000000000000000000..540034dd4d45379867aaa9932c12c5d8c038ca47
--- /dev/null
+++ b/implementation-contributed/v8/intl/relative-time-format/constructor-order.js
@@ -0,0 +1,21 @@
+// 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.
+
+// Throws only once during construction.
+// Check for all getters to prevent regression.
+// Preserve the order of getter initialization.
+let getCount = 0;
+
+new Intl.RelativeTimeFormat(['en-US'], {
+  get localeMatcher() {
+    assertEquals(0, getCount++);
+  },
+  get style() {
+    assertEquals(1, getCount++);
+  },
+  get numeric() {
+    assertEquals(2, getCount++);
+  },
+});
+assertEquals(3, getCount);
diff --git a/implementation-contributed/v8/mjsunit/regress/regress-crbug-909614.js b/implementation-contributed/v8/mjsunit/regress/regress-crbug-909614.js
new file mode 100644
index 0000000000000000000000000000000000000000..4070c9b8212dc35fd312e16381db6855a78ae8e2
--- /dev/null
+++ b/implementation-contributed/v8/mjsunit/regress/regress-crbug-909614.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.
+
+let just_under = 2n ** 30n - 1n;
+let just_above = 2n ** 30n;
+
+assertDoesNotThrow(() => { var dummy = 2n ** just_under; });
+assertThrows(() => { var dummy = 2n ** just_above; });