Upgrade V8 to version 4.9.385.28

https://chromium.googlesource.com/v8/v8/+/4.9.385.28

FPIIM-449

Change-Id: I4b2e74289d4bf3667f2f3dc8aa2e541f63e26eb4
diff --git a/test/mjsunit/regress/binop-in-effect-context-deopt.js b/test/mjsunit/regress/binop-in-effect-context-deopt.js
index fb7280a..8d60e90 100644
--- a/test/mjsunit/regress/binop-in-effect-context-deopt.js
+++ b/test/mjsunit/regress/binop-in-effect-context-deopt.js
@@ -31,7 +31,7 @@
   function f(a, deopt, osr) {
     var result = (a + 10, "result");
     var dummy = deopt + 0;
-    if (osr) while (%GetOptimizationStatus(f) == 2) {}
+    for (var i = 0; osr && i < 2; i++) %OptimizeOsr();
     return result;
   }
 
diff --git a/test/mjsunit/regress/call-function-in-effect-context-deopt.js b/test/mjsunit/regress/call-function-in-effect-context-deopt.js
index 9a36c14..72d3938 100644
--- a/test/mjsunit/regress/call-function-in-effect-context-deopt.js
+++ b/test/mjsunit/regress/call-function-in-effect-context-deopt.js
@@ -29,9 +29,9 @@
 
 function f(deopt, osr) {
   var result = "result";
-  %_CallFunction(0, 0, function() {});
+  %_Call(function() {}, 0, 0);
   var dummy = deopt + 0;
-  if (osr) while (%GetOptimizationStatus(f) == 2) {}
+  for (var i = 0; osr && i < 2; i++) %OptimizeOsr();
   return result;
 }
 
diff --git a/test/mjsunit/regress/cross-script-vars.js b/test/mjsunit/regress/cross-script-vars.js
new file mode 100644
index 0000000..fd235f9
--- /dev/null
+++ b/test/mjsunit/regress/cross-script-vars.js
@@ -0,0 +1,575 @@
+// Copyright 2015 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 PrintDesc(desc, s) {
+  var json;
+  if (desc) {
+    json = JSON.stringify(desc);
+  } else {
+    json = "<no such property>";
+  }
+  if (s === undefined) {
+    print(json);
+  } else {
+    print(s + ": " + json);
+  }
+}
+
+
+var counters;
+var test_realm;
+var cfg;
+
+
+function GetDescriptor() {
+  var code = 'Object.getOwnPropertyDescriptor(global, "x")';
+  var desc = Realm.eval(test_realm, code);
+//  PrintDesc(desc);
+  return desc;
+}
+
+function SetUp() {
+  counters = {};
+  Realm.shared = {counters: counters};
+  test_realm = Realm.create();
+  Realm.eval(test_realm, 'var global = Realm.global(Realm.current());');
+  print("=====================");
+  print("Test realm: " + test_realm);
+  assertEquals(undefined, GetDescriptor());
+}
+
+function TearDown() {
+  Realm.dispose(test_realm);
+  print("OK");
+}
+
+
+function AddStrict(code, cfg) {
+  return cfg.strict ? '"use strict"; ' + code : code;
+}
+
+function ForceMutablePropertyCellType() {
+  Realm.eval(test_realm, 'global.x = {}; global.x = undefined;');
+}
+
+function DeclareVar() {
+  var code = 'var x;';
+  return Realm.eval(test_realm, AddStrict(code, cfg));
+}
+
+function DefineVar(v) {
+  var code = 'var x = ' + v;
+  return Realm.eval(test_realm, AddStrict(code, cfg));
+}
+
+function DefineLoadVar() {
+  var name = 'LoadVar_' + test_realm;
+  var code =
+      'var x;' +
+      'function ' + name + '() {' +
+      '  return x;' +
+      '};';
+  return Realm.eval(test_realm, AddStrict(code, cfg));
+}
+
+function LoadVar() {
+  var name = 'LoadVar_' + test_realm;
+  var code =
+      (cfg.optimize ? '%OptimizeFunctionOnNextCall(' + name + ');' : '') +
+      name + '();';
+  return Realm.eval(test_realm, AddStrict(code, cfg));
+}
+
+function DefineStoreVar() {
+  var name = 'StoreVar_' + test_realm;
+  var code = 'var g = (Function("return this"))();' +
+      'var x;' +
+      'function ' + name + '(v) {' +
+//      '  %DebugPrint(g);' +
+      '  return x = v;' +
+      '};';
+  return Realm.eval(test_realm, AddStrict(code, cfg));
+}
+
+function StoreVar(v) {
+  var name = 'StoreVar_' + test_realm;
+  var code =
+      (cfg.optimize ? '%OptimizeFunctionOnNextCall(' + name + ');' : '') +
+      name + '(' + v + ');';
+  return Realm.eval(test_realm, AddStrict(code, cfg));
+}
+
+// It does 13 iterations which results in 27 loads
+// and 14 stores.
+function LoadStoreLoop() {
+  var code = 'for(var x = 0; x < 13; x++);';
+  return Realm.eval(test_realm, AddStrict(code, cfg));
+}
+
+function DefineRWDataProperty() {
+  var code =
+      'Object.defineProperty(global, "x", { ' +
+      '  value: 42, ' +
+      '  writable: true, ' +
+      '  enumerable: true, ' +
+      '  configurable: true ' +
+      '});';
+  return Realm.eval(test_realm, AddStrict(code, cfg));
+}
+
+function DefineRODataProperty() {
+  var code =
+      'Object.defineProperty(global, "x", { ' +
+      '  value: 42, ' +
+      '  writable: false, ' +
+      '  enumerable: true, ' +
+      '  configurable: true ' +
+      '});';
+  return Realm.eval(test_realm, AddStrict(code, cfg));
+}
+
+function SetX_(v) {
+  var code =
+      'global.x_ = ' + v + '; ';
+  return Realm.eval(test_realm, code);
+}
+
+function DefineRWAccessorProperty() {
+  var code =
+      'Object.defineProperty(global, "x", {' +
+      '  get: function() { Realm.shared.counters.get_count++; return this.x_; },' +
+      '  set: function(v) { Realm.shared.counters.set_count++; this.x_ = v; },' +
+      '  enumerable: true, configurable: true' +
+      '});';
+  counters.get_count = 0;
+  counters.set_count = 0;
+  return Realm.eval(test_realm, AddStrict(code, cfg));
+}
+
+function DefineROAccessorProperty() {
+  var code =
+      'Object.defineProperty(global, "x", {' +
+      '  get: function() { Realm.shared.counters.get_count++; return this.x_; },' +
+      '  enumerable: true, configurable: true' +
+      '});';
+  counters.get_count = 0;
+  counters.set_count = 0;
+  return Realm.eval(test_realm, AddStrict(code, cfg));
+}
+
+
+function testSuite(opt_cfg) {
+  //
+  // Non strict.
+  //
+
+  (function() {
+    SetUp();
+    cfg = {optimize: opt_cfg.optimize, strict: false};
+    DeclareVar();
+    DefineLoadVar();
+    DefineStoreVar();
+    assertEquals(undefined, LoadVar());
+    assertEquals(false, GetDescriptor().configurable);
+
+    // Force property cell type to kMutable.
+    DefineVar(undefined);
+    DefineVar(153);
+    assertEquals(false, GetDescriptor().configurable);
+
+    assertEquals(153, LoadVar());
+    assertEquals(113, StoreVar(113));
+    assertEquals(113, LoadVar());
+    LoadStoreLoop();
+    assertEquals(13, LoadVar());
+    TearDown();
+  })();
+
+
+  (function() {
+    SetUp();
+    cfg = {optimize: opt_cfg.optimize, strict: false};
+    ForceMutablePropertyCellType();
+    DefineLoadVar();
+    DefineStoreVar();
+    DefineRWDataProperty();
+    assertEquals(42, LoadVar());
+    assertEquals(true, GetDescriptor().configurable);
+
+    DefineVar(153);
+    assertEquals(true, GetDescriptor().configurable);
+
+    assertEquals(153, LoadVar());
+    assertEquals(113, StoreVar(113));
+    assertEquals(113, LoadVar());
+    LoadStoreLoop();
+    assertEquals(13, LoadVar());
+
+    // Now reconfigure to accessor.
+    DefineRWAccessorProperty();
+    assertEquals(undefined, GetDescriptor().value);
+    assertEquals(true, GetDescriptor().configurable);
+    assertEquals(0, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    assertEquals(undefined, LoadVar());
+    assertEquals(1, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    LoadStoreLoop();
+    assertEquals(28, counters.get_count);
+    assertEquals(14, counters.set_count);
+
+    assertEquals(13, LoadVar());
+    assertEquals(29, counters.get_count);
+    assertEquals(14, counters.set_count);
+
+    TearDown();
+  })();
+
+
+  (function() {
+    SetUp();
+    cfg = {optimize: opt_cfg.optimize, strict: false};
+    ForceMutablePropertyCellType();
+    DefineLoadVar();
+    DefineStoreVar();
+    DefineRODataProperty();
+    assertEquals(42, LoadVar());
+    assertEquals(true, GetDescriptor().configurable);
+
+    DefineVar(153);
+
+    assertEquals(42, LoadVar());
+    assertEquals(113, StoreVar(113));
+    assertEquals(42, LoadVar());
+    LoadStoreLoop();
+    assertEquals(42, LoadVar());
+
+    // Now reconfigure to accessor property.
+    DefineRWAccessorProperty();
+    assertEquals(undefined, GetDescriptor().value);
+    assertEquals(true, GetDescriptor().configurable);
+    assertEquals(0, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    assertEquals(undefined, LoadVar());
+    assertEquals(1, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    LoadStoreLoop();
+    assertEquals(28, counters.get_count);
+    assertEquals(14, counters.set_count);
+
+    assertEquals(13, LoadVar());
+    assertEquals(29, counters.get_count);
+    assertEquals(14, counters.set_count);
+
+    TearDown();
+  })();
+
+
+  (function() {
+    SetUp();
+    cfg = {optimize: opt_cfg.optimize, strict: false};
+    ForceMutablePropertyCellType();
+    DefineLoadVar();
+    DefineStoreVar();
+    DefineRWAccessorProperty();
+    assertEquals(0, counters.get_count);
+    assertEquals(0, counters.set_count);
+    assertEquals(true, GetDescriptor().configurable);
+
+    assertEquals(undefined, LoadVar());
+    assertEquals(1, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    DefineVar(153);
+    assertEquals(true, GetDescriptor().configurable);
+    assertEquals(1, counters.get_count);
+    assertEquals(1, counters.set_count);
+
+    assertEquals(153, LoadVar());
+    assertEquals(2, counters.get_count);
+    assertEquals(1, counters.set_count);
+
+    assertEquals(113, StoreVar(113));
+    assertEquals(2, counters.get_count);
+    assertEquals(2, counters.set_count);
+
+    assertEquals(113, LoadVar());
+    assertEquals(3, counters.get_count);
+    assertEquals(2, counters.set_count);
+
+    LoadStoreLoop();
+    assertEquals(30, counters.get_count);
+    assertEquals(16, counters.set_count);
+
+    assertEquals(13, LoadVar());
+    assertEquals(31, counters.get_count);
+    assertEquals(16, counters.set_count);
+
+    // Now reconfigure to data property.
+    DefineRWDataProperty();
+    assertEquals(42, GetDescriptor().value);
+    assertEquals(42, LoadVar());
+    assertEquals(113, StoreVar(113));
+    assertEquals(31, counters.get_count);
+    assertEquals(16, counters.set_count);
+
+    TearDown();
+  })();
+
+
+  (function() {
+    SetUp();
+    cfg = {optimize: opt_cfg.optimize, strict: false};
+    ForceMutablePropertyCellType();
+    DefineLoadVar();
+    DefineStoreVar();
+    DefineROAccessorProperty();
+    assertEquals(0, counters.get_count);
+    assertEquals(0, counters.set_count);
+    assertEquals(true, GetDescriptor().configurable);
+
+    assertEquals(undefined, LoadVar());
+    assertEquals(1, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    SetX_(42);
+    assertEquals(42, LoadVar());
+    assertEquals(2, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    DefineVar(153);
+    assertEquals(true, GetDescriptor().configurable);
+    assertEquals(2, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    assertEquals(42, LoadVar());
+    assertEquals(3, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    assertEquals(113, StoreVar(113));
+    assertEquals(3, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    assertEquals(42, LoadVar());
+    assertEquals(4, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    LoadStoreLoop();
+    assertEquals(5, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    assertEquals(42, LoadVar());
+    assertEquals(6, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    // Now reconfigure to data property.
+    DefineRWDataProperty();
+    assertEquals(42, GetDescriptor().value);
+    assertEquals(42, LoadVar());
+    assertEquals(113, StoreVar(113));
+    assertEquals(6, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    TearDown();
+  })();
+
+
+  //
+  // Strict.
+  //
+
+  (function() {
+    SetUp();
+    cfg = {optimize: opt_cfg.optimize, strict: true};
+    DeclareVar();
+    DefineLoadVar();
+    DefineStoreVar();
+    assertEquals(undefined, LoadVar());
+    assertEquals(false, GetDescriptor().configurable);
+
+    // Force property cell type to kMutable.
+    DefineVar(undefined);
+    DefineVar(153);
+    assertEquals(false, GetDescriptor().configurable);
+
+    assertEquals(153, LoadVar());
+    assertEquals(113, StoreVar(113));
+    assertEquals(113, LoadVar());
+    LoadStoreLoop();
+    assertEquals(13, LoadVar());
+    TearDown();
+  })();
+
+
+  (function() {
+    SetUp();
+    cfg = {optimize: opt_cfg.optimize, strict: true};
+    ForceMutablePropertyCellType();
+    DefineLoadVar();
+    DefineStoreVar();
+    DefineRWDataProperty();
+    assertEquals(42, LoadVar());
+    assertEquals(true, GetDescriptor().configurable);
+
+    DefineVar(153);
+    assertEquals(true, GetDescriptor().configurable);
+
+    assertEquals(153, LoadVar());
+    assertEquals(113, StoreVar(113));
+    assertEquals(113, LoadVar());
+    LoadStoreLoop();
+    assertEquals(13, LoadVar());
+    TearDown();
+  })();
+
+
+  (function() {
+    SetUp();
+    cfg = {optimize: opt_cfg.optimize, strict: true};
+    ForceMutablePropertyCellType();
+    DefineLoadVar();
+    DefineStoreVar();
+    DefineRWDataProperty();
+    assertEquals(true, GetDescriptor().configurable);
+    assertEquals(true, GetDescriptor().writable);
+    assertEquals(113, StoreVar(113));
+
+    DefineRODataProperty();
+    assertEquals(true, GetDescriptor().configurable);
+    assertEquals(false, GetDescriptor().writable);
+
+    assertEquals(42, LoadVar());
+    assertEquals(true, GetDescriptor().configurable);
+    assertThrows('DefineVar(153)');
+    assertEquals(42, LoadVar());
+    assertThrows('StoreVar(113)');
+    assertThrows('StoreVar(113)');
+    assertEquals(42, LoadVar());
+    assertThrows('StoreVar(42)');
+    assertEquals(42, LoadVar());
+    assertThrows('LoadStoreLoop()');
+    assertEquals(42, LoadVar());
+    TearDown();
+  })();
+
+
+  (function() {
+    SetUp();
+    cfg = {optimize: opt_cfg.optimize, strict: true};
+    ForceMutablePropertyCellType();
+    DefineLoadVar();
+    DefineStoreVar();
+    DefineRWAccessorProperty();
+    assertEquals(0, counters.get_count);
+    assertEquals(0, counters.set_count);
+    assertEquals(true, GetDescriptor().configurable);
+
+    assertEquals(undefined, LoadVar());
+    assertEquals(1, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    DefineVar(153);
+    assertEquals(true, GetDescriptor().configurable);
+    assertEquals(1, counters.get_count);
+    assertEquals(1, counters.set_count);
+
+    assertEquals(153, LoadVar());
+    assertEquals(2, counters.get_count);
+    assertEquals(1, counters.set_count);
+
+    assertEquals(113, StoreVar(113));
+    assertEquals(2, counters.get_count);
+    assertEquals(2, counters.set_count);
+
+    assertEquals(113, LoadVar());
+    assertEquals(3, counters.get_count);
+    assertEquals(2, counters.set_count);
+
+    LoadStoreLoop();
+    assertEquals(30, counters.get_count);
+    assertEquals(16, counters.set_count);
+
+    assertEquals(13, LoadVar());
+    assertEquals(31, counters.get_count);
+    assertEquals(16, counters.set_count);
+
+    // Now reconfigure to data property.
+    DefineRWDataProperty();
+    assertEquals(42, GetDescriptor().value);
+    assertEquals(42, LoadVar());
+    assertEquals(113, StoreVar(113));
+    assertEquals(31, counters.get_count);
+    assertEquals(16, counters.set_count);
+
+    TearDown();
+  })();
+
+
+  (function() {
+    SetUp();
+    cfg = {optimize: opt_cfg.optimize, strict: true};
+    ForceMutablePropertyCellType();
+    DefineLoadVar();
+    DefineStoreVar();
+    DefineROAccessorProperty();
+    assertEquals(0, counters.get_count);
+    assertEquals(0, counters.set_count);
+    assertEquals(true, GetDescriptor().configurable);
+
+    assertEquals(undefined, LoadVar());
+    assertEquals(1, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    SetX_(42);
+    assertEquals(42, LoadVar());
+    assertEquals(2, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    assertThrows('DefineVar(153)');
+    assertEquals(true, GetDescriptor().configurable);
+    assertEquals(2, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    assertEquals(42, LoadVar());
+    assertEquals(3, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    assertThrows('StoreVar(113)');
+    assertEquals(3, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    assertEquals(42, LoadVar());
+    assertEquals(4, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    assertThrows('LoadStoreLoop()');
+    assertEquals(4, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    assertEquals(42, LoadVar());
+    assertEquals(5, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    // Now reconfigure to data property.
+    DefineRWDataProperty();
+    assertEquals(42, GetDescriptor().value);
+    assertEquals(42, LoadVar());
+    assertEquals(113, StoreVar(113));
+    assertEquals(5, counters.get_count);
+    assertEquals(0, counters.set_count);
+
+    TearDown();
+  })();
+
+}  // testSuite
+
+
+testSuite({optimize: false});
+testSuite({optimize: true});
diff --git a/test/mjsunit/regress/debug-prepare-step-in.js b/test/mjsunit/regress/debug-prepare-step-in.js
index 60b47f7..93474da 100644
--- a/test/mjsunit/regress/debug-prepare-step-in.js
+++ b/test/mjsunit/regress/debug-prepare-step-in.js
@@ -30,7 +30,7 @@
 Debug = debug.Debug
 
 function breakListener(event, exec_state, event_data, data) {
-  exec_state.prepareStep(Debug.StepAction.StepIn, 1);
+  exec_state.prepareStep(Debug.StepAction.StepIn);
 }
 
 Debug.setListener(breakListener);
diff --git a/test/mjsunit/regress/poly_count_operation.js b/test/mjsunit/regress/poly_count_operation.js
index 99f041b..a8a1ed2 100644
--- a/test/mjsunit/regress/poly_count_operation.js
+++ b/test/mjsunit/regress/poly_count_operation.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax --turbo-deoptimization
+// Flags: --allow-natives-syntax
 
 var o1 = {x:1};
 var o2 = {};
diff --git a/test/mjsunit/regress/property-descriptor-to-object.js b/test/mjsunit/regress/property-descriptor-to-object.js
new file mode 100644
index 0000000..e47d5a5
--- /dev/null
+++ b/test/mjsunit/regress/property-descriptor-to-object.js
@@ -0,0 +1,8 @@
+// Copyright 2015 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.
+
+var o = { prop: 1 };
+Object.prototype.value = 0;
+var d = Object.getOwnPropertyDescriptor(o, "prop");
+assertEquals(1, d.value);
diff --git a/test/mjsunit/regress/regress-105.js b/test/mjsunit/regress/regress-105.js
index 8b8030f..877cb82 100644
--- a/test/mjsunit/regress/regress-105.js
+++ b/test/mjsunit/regress/regress-105.js
@@ -26,12 +26,12 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 var custom_valueOf = function() {
-  assertEquals(Number, custom_valueOf.caller);
+  assertEquals(null, custom_valueOf.caller);
   return 2;
 }
 
 var custom_toString = function() {
-  assertEquals(String, custom_toString.caller);
+  assertEquals(null, custom_toString.caller);
   return "I used to be an adventurer like you";
 }
 
diff --git a/test/mjsunit/regress/regress-109195.js b/test/mjsunit/regress/regress-109195.js
index 97538aa..e4a2bbf 100644
--- a/test/mjsunit/regress/regress-109195.js
+++ b/test/mjsunit/regress/regress-109195.js
@@ -32,7 +32,7 @@
   for (var i = 0, n = exec_state.frameCount(); i < n; i++) {
     exec_state.frame().scopeCount(i);
   }
-  exec_state.prepareStep(Debug.StepAction.Continue, 1);
+  exec_state.prepareStep(Debug.StepAction.StepNext);
 }
 
 Debug.setListener(listener);
diff --git a/test/mjsunit/regress/regress-1118.js b/test/mjsunit/regress/regress-1118.js
index 4fd2345..05b192d 100644
--- a/test/mjsunit/regress/regress-1118.js
+++ b/test/mjsunit/regress/regress-1118.js
@@ -41,24 +41,10 @@
 // inlined.
 function g() { try { return o.f(); } finally { }}
 
-// Optimization status (see runtime.cc):
-// 1 - yes, 2 - no, 3 - always, 4 - never.
-
 // This function should be optimized via OSR.
 function h() {
-  var optstatus = %GetOptimizationStatus(h);
-  if (optstatus == 4) {
-    // Optimizations are globally disabled; just run once.
-    g();
-  } else {
-    // Run for a bit as long as h is unoptimized.
-    if (%GetOptimizationStatus(h) != 4) {
-      while (%GetOptimizationCount(h) == 0) {
-        for (var j = 0; j < 100; j++) g();
-      }
-    }
-    g();
-  }
+  for (var i = 0; i < 10; i++) %OptimizeOsr();
+  g();
 }
 
 h();
diff --git a/test/mjsunit/regress/regress-1119.js b/test/mjsunit/regress/regress-1119.js
index 5fd8f36..24ab49a 100644
--- a/test/mjsunit/regress/regress-1119.js
+++ b/test/mjsunit/regress/regress-1119.js
@@ -28,7 +28,7 @@
 // Test runtime declaration of properties with var which are intercepted
 // by JS accessors.
 
-// Flags: --es52_globals
+// Flags: --es52-globals
 
 this.__defineSetter__("x", function() { hasBeenInvoked = true; });
 this.__defineSetter__("y", function() { throw 'exception'; });
diff --git a/test/mjsunit/regress/regress-1130.js b/test/mjsunit/regress/regress-1130.js
index 07d5e3d..6ba430b 100644
--- a/test/mjsunit/regress/regress-1130.js
+++ b/test/mjsunit/regress/regress-1130.js
@@ -35,6 +35,6 @@
   eval("(function() { const x; var x })")();
 } catch (e) {
   exception = true;
-  assertTrue(e instanceof TypeError);
+  assertTrue(e instanceof SyntaxError);
 }
 assertTrue(exception);
diff --git a/test/mjsunit/regress/regress-1132.js b/test/mjsunit/regress/regress-1132.js
index 3314db8..a5cb0a1 100644
--- a/test/mjsunit/regress/regress-1132.js
+++ b/test/mjsunit/regress/regress-1132.js
@@ -28,7 +28,7 @@
 // Test the case when exception is thrown from the parser when lazy
 // compiling a function.
 
-// Flags: --stack_size=32
+// Flags: --stack-size=46
 // NOTE: stack size constant above has been empirically chosen.
 // If the test starts to fail in Genesis, consider increasing this constant.
 
diff --git a/test/mjsunit/regress/regress-1145.js b/test/mjsunit/regress/regress-1145.js
deleted file mode 100644
index 16d5527..0000000
--- a/test/mjsunit/regress/regress-1145.js
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2011 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Flags: --opt-eagerly --debug-code --lazy
-
-// See: http://code.google.com/p/v8/issues/detail?id=1145
-// Should not throw a syntax error exception (change this if we make lazily
-// compiled functions with syntax errors into early errors).
-// Should not hit an assertion in debug mode.
-
-// A lazily compiled function with a syntax error that is attempted inlined
-// would set a pending exception that is then ignored (until it triggers
-// an assert).
-// This file must be at least 1024 bytes long to trigger lazy compilation.
-
-function f() { return 1; }
-
-// Must be lazy. Must throw SyntaxError during compilation.
-function fail() { continue; }
-
-function opt_me() {
-  var x = 1;
-  // Do lots of function calls and hope to be optimized.
-  for (var i = 0; i < 1000000; i++) {
-    x = f();
-  }
-  if (x == 0) fail();  // Hope to be inlined during optimization.
-}
-
-opt_me();
diff --git a/test/mjsunit/regress/regress-115452.js b/test/mjsunit/regress/regress-115452.js
index dc71158..d95bba8 100644
--- a/test/mjsunit/regress/regress-115452.js
+++ b/test/mjsunit/regress/regress-115452.js
@@ -27,7 +27,7 @@
 
 // Test that a function declaration cannot overwrite a read-only property.
 
-// Flags: --es52_globals
+// Flags: --es52-globals
 
 function foobl() {}
 assertTrue(typeof this.foobl == "function");
diff --git a/test/mjsunit/regress/regress-1170187.js b/test/mjsunit/regress/regress-1170187.js
index 3621bc4..6aa2896 100644
--- a/test/mjsunit/regress/regress-1170187.js
+++ b/test/mjsunit/regress/regress-1170187.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --expose-debug-as debug
-// Flags: --turbo-deoptimization
 
 // Make sure that the retreival of local variables are performed correctly even
 // when an adapter frame is present.
diff --git a/test/mjsunit/regress/regress-1178598.js b/test/mjsunit/regress/regress-1178598.js
index 135c596..2056a9d 100644
--- a/test/mjsunit/regress/regress-1178598.js
+++ b/test/mjsunit/regress/regress-1178598.js
@@ -25,6 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+// Flags: --legacy-const
+
 // Regression test cases for issue 1178598.
 
 // Make sure const-initialization doesn't conflict
diff --git a/test/mjsunit/regress/regress-1182832.js b/test/mjsunit/regress/regress-1182832.js
index 6c4fcb4..4d21469 100644
--- a/test/mjsunit/regress/regress-1182832.js
+++ b/test/mjsunit/regress/regress-1182832.js
@@ -25,6 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+// Flags: --legacy-const
+
 var caught = false;
 try {
   (function () {
diff --git a/test/mjsunit/regress/regress-119429.js b/test/mjsunit/regress/regress-119429.js
index a876487..859702a 100644
--- a/test/mjsunit/regress/regress-119429.js
+++ b/test/mjsunit/regress/regress-119429.js
@@ -30,7 +30,7 @@
 var d = 0;
 function recurse() {
   if (++d == 25135) { // A magic number just below stack overflow  on ia32
-    %DebugBreak();
+    %HandleDebuggerStatement();
   }
   recurse();
 }
diff --git a/test/mjsunit/regress/regress-119609.js b/test/mjsunit/regress/regress-119609.js
index 0c85063..99041ad 100644
--- a/test/mjsunit/regress/regress-119609.js
+++ b/test/mjsunit/regress/regress-119609.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --expose-debug-as debug
-// Flags: --turbo-deoptimization
 
 Debug = debug.Debug;
 
diff --git a/test/mjsunit/regress/regress-1199637.js b/test/mjsunit/regress/regress-1199637.js
index 397aeb8..34ab514 100644
--- a/test/mjsunit/regress/regress-1199637.js
+++ b/test/mjsunit/regress/regress-1199637.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax --es52_globals
+// Flags: --allow-natives-syntax --legacy-const
 
 // Make sure that we can introduce global variables (using
 // both var and const) that shadow even READ_ONLY variables
diff --git a/test/mjsunit/regress/regress-1201933.js b/test/mjsunit/regress/regress-1201933.js
index d4827e4..4a7c65a 100644
--- a/test/mjsunit/regress/regress-1201933.js
+++ b/test/mjsunit/regress/regress-1201933.js
@@ -25,6 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+// Flags: --legacy-const
+
 // Make sure this doesn't fail with an assertion
 // failure during lazy compilation.
 
diff --git a/test/mjsunit/regress/regress-1207276.js b/test/mjsunit/regress/regress-1207276.js
index ce7efe9..b5d0181 100644
--- a/test/mjsunit/regress/regress-1207276.js
+++ b/test/mjsunit/regress/regress-1207276.js
@@ -25,6 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+// Flags: --legacy-const
+
 try {
   const x=n,Glo0al;
 } catch(e){}
diff --git a/test/mjsunit/regress/regress-1213575.js b/test/mjsunit/regress/regress-1213575.js
index 8c197bc..fc35b88 100644
--- a/test/mjsunit/regress/regress-1213575.js
+++ b/test/mjsunit/regress/regress-1213575.js
@@ -28,6 +28,8 @@
 // Make sure that a const definition does not try
 // to pass 'the hole' to a defined setter.
 
+// Flags: --legacy-const
+
 this.__defineSetter__('x', function(value) { assertTrue(value === 1); });
 
 var caught = false;
diff --git a/test/mjsunit/regress/regress-1217.js b/test/mjsunit/regress/regress-1217.js
deleted file mode 100644
index e00d537..0000000
--- a/test/mjsunit/regress/regress-1217.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2011 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Check that RegExp.prototype is itself a RegExp object.
-
-var proto = RegExp.prototype;
-assertEquals("[object RegExp]", Object.prototype.toString.call(proto));
-
-assertEquals("(?:)", proto.source);
-assertEquals(false, proto.global);
-assertEquals(false, proto.multiline);
-assertEquals(false, proto.ignoreCase);
-assertEquals(0, proto.lastIndex);
-
-assertEquals("/(?:)/", proto.toString());
-
-var execResult = proto.exec("argle");
-assertEquals(1, execResult.length);
-assertEquals("", execResult[0]);
-assertEquals("argle", execResult.input);
-assertEquals(0, execResult.index);
-
-assertTrue(proto.test("argle"));
-
-// We disallow re-compiling the RegExp.prototype object.
-assertThrows(function(){ proto.compile("something"); }, TypeError);
diff --git a/test/mjsunit/regress/regress-1229.js b/test/mjsunit/regress/regress-1229.js
deleted file mode 100644
index 5447f3f..0000000
--- a/test/mjsunit/regress/regress-1229.js
+++ /dev/null
@@ -1,146 +0,0 @@
-// Copyright 2012 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Flags: --allow-natives-syntax
-
-// Check that %NewObjectFromBound works correctly when called from optimized
-// frame.
-function foo1(x, y, z) {
-  assertEquals(1, x);
-  assertEquals(2, y);
-  assertEquals(3, z);
-}
-
-function foo2(x, y, z) {
-  assertEquals(1, x);
-  assertEquals(2, y);
-  assertEquals(undefined, z);
-}
-
-function foo3(x, y, z) {
-  assertEquals(1, x);
-  assertEquals(2, y);
-  assertEquals(3, z);
-}
-
-
-var foob1 = foo1.bind({}, 1);
-var foob2 = foo2.bind({}, 1);
-var foob3 = foo3.bind({}, 1);
-
-
-function f1(y, z) {
-  return %NewObjectFromBound(foob1);
-}
-
-function f2(y, z) {
-  return %NewObjectFromBound(foob2);
-}
-
-function f3(y, z) {
-  return %NewObjectFromBound(foob3);
-}
-
-// Check that %NewObjectFromBound looks at correct frame for inlined function.
-function g1(z, y) {
-  return f1(y, z); /* f should be inlined into g, note rotated arguments */
-}
-
-function g2(z, y, x) {
-  return f2(y); /* f should be inlined into g, note argument count mismatch */
-}
-
-function g3(z, y, x) {
-  return f3(x, y, z); /* f should be inlined into g, note argument count mismatch */
-}
-
-// Check that %NewObjectFromBound looks at correct frame for inlined function.
-function ff(x) { }
-function h1(z2, y2) {
-  var local_z = z2 >> 1;
-  ff(local_z);
-  var local_y = y2 >> 1;
-  ff(local_y);
-  return f1(local_y, local_z); /* f should be inlined into h */
-}
-
-function h2(z2, y2, x2) {
-  var local_z = z2 >> 1;
-  ff(local_z);
-  var local_y = y2 >> 1;
-  ff(local_y);
-  return f2(local_y); /* f should be inlined into h */
-}
-
-function h3(z2, y2, x2) {
-  var local_z = z2 >> 1;
-  ff(local_z);
-  var local_y = y2 >> 1;
-  ff(local_y);
-  var local_x = x2 >> 1;
-  ff(local_x);
-  return f3(local_x, local_y, local_z); /* f should be inlined into h */
-}
-
-
-function invoke(f, args) {
-  for (var i = 0; i < 5; i++) f.apply(this, args);
-  %OptimizeFunctionOnNextCall(f);
-  f.apply(this, args);
-}
-
-invoke(f1, [2, 3]);
-invoke(f2, [2]);
-invoke(f3, [2, 3, 4]);
-invoke(g1, [3, 2]);
-invoke(g2, [3, 2, 4]);
-invoke(g3, [4, 3, 2]);
-invoke(h1, [6, 4]);
-invoke(h2, [6, 4, 8]);
-invoke(h3, [8, 6, 4]);
-
-// Check that %_IsConstructCall returns correct value when inlined
-var NON_CONSTRUCT_MARKER = {};
-var CONSTRUCT_MARKER = {};
-function baz(x) {
-  return (!%_IsConstructCall()) ? NON_CONSTRUCT_MARKER : CONSTRUCT_MARKER;
-}
-
-function bar(x, y, z) {
-  var non_construct = baz(0); /* baz should be inlined */
-  assertSame(non_construct, NON_CONSTRUCT_MARKER);
-  var non_construct = baz(); /* baz should be inlined */
-  assertSame(non_construct, NON_CONSTRUCT_MARKER);
-  var non_construct = baz(0, 0); /* baz should be inlined */
-  assertSame(non_construct, NON_CONSTRUCT_MARKER);
-  var construct = new baz(0);
-  assertSame(construct, CONSTRUCT_MARKER);
-  var construct = new baz(0, 0);
-  assertSame(construct, CONSTRUCT_MARKER);
-}
-
-invoke(bar, [1, 2, 3]);
diff --git a/test/mjsunit/regress/regress-131994.js b/test/mjsunit/regress/regress-131994.js
index 3de3813..7f60095 100644
--- a/test/mjsunit/regress/regress-131994.js
+++ b/test/mjsunit/regress/regress-131994.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --expose-debug-as debug
-// Flags: --turbo-deoptimization
 
 // Test that a variable in the local scope that shadows a context-allocated
 // variable is correctly resolved when being evaluated in the debugger.
diff --git a/test/mjsunit/regress/regress-1419.js b/test/mjsunit/regress/regress-1419.js
index 98a8b76..55bcd7c 100644
--- a/test/mjsunit/regress/regress-1419.js
+++ b/test/mjsunit/regress/regress-1419.js
@@ -44,4 +44,12 @@
 var desc = Object.getOwnPropertyDescriptor(f1, 'length');
 assertEquals(false, desc.writable);
 assertEquals(false, desc.enumerable);
-assertEquals(false, desc.configurable);
+assertEquals(true, desc.configurable);
+
+Object.defineProperty(f1, 'length', {
+  value: 'abc',
+  writable: true
+});
+assertEquals('abc', f1.length);
+f1.length = 42;
+assertEquals(42, f1.length);
diff --git a/test/mjsunit/regress/regress-147497.js b/test/mjsunit/regress/regress-147497.js
index 92e29d1..f61d0c6 100644
--- a/test/mjsunit/regress/regress-147497.js
+++ b/test/mjsunit/regress/regress-147497.js
@@ -31,7 +31,7 @@
 
 function listener(event, exec_state, event_data, data) {
   if (event == Debug.DebugEvent.Break) {
-    exec_state.prepareStep(Debug.StepAction.StepNext, 10);
+    exec_state.prepareStep(Debug.StepAction.StepNext);
   }
 };
 
diff --git a/test/mjsunit/regress/regress-1530.js b/test/mjsunit/regress/regress-1530.js
index 20d1f26..fa86f62 100644
--- a/test/mjsunit/regress/regress-1530.js
+++ b/test/mjsunit/regress/regress-1530.js
@@ -80,8 +80,10 @@
 assertThrows("'use strict'; f.prototype = {}");
 assertThrows("Object.defineProperty(f, 'prototype', { value: {} })");
 
-// Verify that non-writability of other properties is respected.
-assertThrows("Object.defineProperty(f, 'name', { value: {} })");
-assertThrows("Object.defineProperty(f, 'length', { value: {} })");
+// Verify that non-configurability of other properties is respected, but
+// non-writability is ignored by Object.defineProperty().
+// name and length are configurable in ES6
+Object.defineProperty(f, 'name', { value: {} });
+Object.defineProperty(f, 'length', { value: {} });
 assertThrows("Object.defineProperty(f, 'caller', { value: {} })");
 assertThrows("Object.defineProperty(f, 'arguments', { value: {} })");
diff --git a/test/mjsunit/regress/regress-1586.js b/test/mjsunit/regress/regress-1586.js
index b15e2f2..9c805a7 100644
--- a/test/mjsunit/regress/regress-1586.js
+++ b/test/mjsunit/regress/regress-1586.js
@@ -43,8 +43,6 @@
 
 // Get the Debug object exposed from the debug context global object.
 Debug = debug.Debug
-// Set breakpoint on line 6.
-var bp = Debug.setBreakPoint(f, 6);
 
 function listener(event, exec_state, event_data, data) {
   if (event == Debug.DebugEvent.Break) {
@@ -54,6 +52,10 @@
 
 // Add the debug event listener.
 Debug.setListener(listener);
+
+//Set breakpoint on line 6.
+var bp = Debug.setBreakPoint(f, 6);
+
 result = -1;
 f();
 assertEquals(1, result);
diff --git a/test/mjsunit/regress/regress-165637.js b/test/mjsunit/regress/regress-165637.js
index 84c9041..6e28726 100644
--- a/test/mjsunit/regress/regress-165637.js
+++ b/test/mjsunit/regress/regress-165637.js
@@ -51,7 +51,7 @@
 
 // Make sure that packed and unpacked array slices are still properly handled
 var holey_array = [1, 2, 3, 4, 5,,,,,,];
-assertFalse(%HasFastHoleyElements(holey_array.slice(6, 1)));
-assertEquals(undefined, holey_array.slice(6, 7)[0])
-assertFalse(%HasFastHoleyElements(holey_array.slice(2, 1)));
-assertEquals(3, holey_array.slice(2, 3)[0])
+assertEquals([undefined], holey_array.slice(6, 7));
+assertEquals(undefined, holey_array.slice(6, 7)[0]);
+assertEquals([], holey_array.slice(2, 1));
+assertEquals(3, holey_array.slice(2, 3)[0]);
diff --git a/test/mjsunit/regress/regress-166553.js b/test/mjsunit/regress/regress-166553.js
index acaf34f..38fc0b5 100644
--- a/test/mjsunit/regress/regress-166553.js
+++ b/test/mjsunit/regress/regress-166553.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --expose_gc
+// Flags: --expose-gc
 
 JSON.stringify(String.fromCharCode(1, -11).toString())
 gc();
diff --git a/test/mjsunit/regress/regress-186.js b/test/mjsunit/regress/regress-186.js
index 0212855..e10ed8f 100644
--- a/test/mjsunit/regress/regress-186.js
+++ b/test/mjsunit/regress/regress-186.js
@@ -25,6 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+// Flags: --legacy-const
+
 // Make sure that eval can introduce a local variable called __proto__.
 // See http://code.google.com/p/v8/issues/detail?id=186
 
diff --git a/test/mjsunit/regress/regress-1878.js b/test/mjsunit/regress/regress-1878.js
deleted file mode 100644
index fbc47bd..0000000
--- a/test/mjsunit/regress/regress-1878.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2012 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// See: http://code.google.com/p/v8/issues/detail?id=1878
-
-// Flags: --allow-natives-syntax --expose_natives_as=natives
-
-var a = Array();
-
-for (var i = 0; i < 1000; i++) {
-  var ai = natives.InternalArray(10000);
-  assertFalse(%HaveSameMap(ai, a));
-  assertTrue(%HasFastObjectElements(ai));
-}
-
-for (var i = 0; i < 1000; i++) {
-  var ai = new natives.InternalArray(10000);
-  assertFalse(%HaveSameMap(ai, a));
-  assertTrue(%HasFastObjectElements(ai));
-}
diff --git a/test/mjsunit/regress/regress-2193.js b/test/mjsunit/regress/regress-2193.js
index 50509bf..4ec050e 100644
--- a/test/mjsunit/regress/regress-2193.js
+++ b/test/mjsunit/regress/regress-2193.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax --cache-optimized-code
+// Flags: --allow-natives-syntax
 
 function bozo() {};
 function MakeClosure() {
diff --git a/test/mjsunit/regress/regress-2285.js b/test/mjsunit/regress/regress-2285.js
deleted file mode 100644
index a0d628d..0000000
--- a/test/mjsunit/regress/regress-2285.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2012 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Flags: --allow-natives-syntax
-
-assertThrows(function() { %_CallFunction(null, 0, ""); });
-assertThrows(function() { %_CallFunction(null, 0, 1); });
diff --git a/test/mjsunit/regress/regress-2318.js b/test/mjsunit/regress/regress-2318.js
index e31e0f9..771d195 100644
--- a/test/mjsunit/regress/regress-2318.js
+++ b/test/mjsunit/regress/regress-2318.js
@@ -56,11 +56,12 @@
 };
 
 Debug = debug.Debug;
-var bp = Debug.setBreakPoint(f, 0);
 
 function listener(event, exec_state, event_data, data) {
   result = exec_state.frame().evaluate("i").value();
 };
 
 Debug.setListener(listener);
+var bp = Debug.setBreakPoint(f, 0);
+
 assertThrows(function() { f(); }, RangeError);
diff --git a/test/mjsunit/regress/regress-2438.js b/test/mjsunit/regress/regress-2438.js
index 7be7e71..f694ff8 100644
--- a/test/mjsunit/regress/regress-2438.js
+++ b/test/mjsunit/regress/regress-2438.js
@@ -35,14 +35,6 @@
   re.lastIndex = side_effect_object;
   re.test(subject);
   assertEquals(2, counter);
-
-  re.lastIndex = side_effect_object;
-  subject.match(re);
-  assertEquals(3, counter);
-
-  re.lastIndex = side_effect_object;
-  subject.replace(re, "");
-  assertEquals(4, counter);
 }
 
 testSideEffects("zzzz", /a/);
diff --git a/test/mjsunit/regress/regress-2506.js b/test/mjsunit/regress/regress-2506.js
deleted file mode 100644
index 0eb2770..0000000
--- a/test/mjsunit/regress/regress-2506.js
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright 2014 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-scoping
-
-'use strict';
-
-// Top-level code
-let s = 0;
-let f = [undefined, undefined, undefined]
-for (const x of [1,2,3]) {
-  s += x;
-  f[x-1] = function() { return x; }
-}
-assertEquals(6, s);
-assertEquals(1, f[0]());
-assertEquals(2, f[1]());
-assertEquals(3, f[2]());
-
-let x = 1;
-s = 0;
-for (const x of [x, x+1, x+2]) {
-  s += x;
-}
-assertEquals(6, s);
-
-s = 0;
-var q = 1;
-for (const q of [q, q+1, q+2]) {
-  s += q;
-}
-assertEquals(6, s);
-
-let z = 1;
-s = 0;
-for (const x = 1; z < 2; z++) {
-  s += x + z;
-}
-assertEquals(2, s);
-
-
-s = "";
-for (const x in [1,2,3]) {
-  s += x;
-}
-assertEquals("012", s);
-
-assertThrows("'use strict'; for (const x in [1,2,3]) { x++ }", TypeError);
-
-// Function scope
-(function() {
-  let s = 0;
-  for (const x of [1,2,3]) {
-    s += x;
-  }
-  assertEquals(6, s);
-
-  let x = 1;
-  s = 0;
-  for (const x of [x, x+1, x+2]) {
-    s += x;
-  }
-  assertEquals(6, s);
-
-  s = 0;
-  var q = 1;
-  for (const q of [q, q+1, q+2]) {
-    s += q;
-  }
-  assertEquals(6, s);
-
-  s = "";
-  for (const x in [1,2,3]) {
-    s += x;
-  }
-  assertEquals("012", s);
-}());
diff --git a/test/mjsunit/regress/regress-1945.js b/test/mjsunit/regress/regress-2529.js
similarity index 75%
copy from test/mjsunit/regress/regress-1945.js
copy to test/mjsunit/regress/regress-2529.js
index bffc775..cec56a6 100644
--- a/test/mjsunit/regress/regress-1945.js
+++ b/test/mjsunit/regress/regress-2529.js
@@ -1,4 +1,4 @@
-// Copyright 2012 the V8 project authors. All rights reserved.
+// Copyright 2015 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -25,10 +25,19 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax
 
-var _d = new Date();
-_d.setHours(0,0,0,0);
-_d.setHours(0,0,0,0);
-%OptimizeFunctionOnNextCall(_d.setHours);
-_d.setHours(0,0,0,0);
+// Regression test for v8 bug 2529.
+
+function makeScript(s) {
+  return 'while(true) { try { "try"; break } finally { "finally" }; ' + s + ' }';
+}
+
+var s1 = makeScript('');
+var s2 = makeScript('y = "done"');
+var s3 = makeScript('if (true) 2; else var x = 3;');
+var s4 = makeScript('if (true) 2; else 3;');
+
+assertEquals("try", eval(s1));
+assertEquals("try", eval(s2));
+assertEquals("try", eval(s3));
+assertEquals("try", eval(s4));
diff --git a/test/mjsunit/regress/regress-2593.js b/test/mjsunit/regress/regress-2593.js
index b51b41c..b9e497f 100644
--- a/test/mjsunit/regress/regress-2593.js
+++ b/test/mjsunit/regress/regress-2593.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --expose_gc
+// Flags: --expose-gc
 
 p1 =  { };
 p2 =  { };
diff --git a/test/mjsunit/regress/regress-2596.js b/test/mjsunit/regress/regress-2596.js
index e700608..a1a0af3 100644
--- a/test/mjsunit/regress/regress-2596.js
+++ b/test/mjsunit/regress/regress-2596.js
@@ -27,9 +27,11 @@
 
 // Flags: --allow-natives-syntax
 
-var bytes = new Uint8Array([
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f]);  // kHoleNaN
-var doubles = new Float64Array(bytes.buffer);
+var ab = new ArrayBuffer(8);
+var i_view = new Int32Array(ab);
+i_view[0] = %GetHoleNaNUpper()
+i_view[1] = %GetHoleNaNLower();
+var doubles = new Float64Array(ab);  // kHoleNaN
 assertTrue(isNaN(doubles[0]));
 
 var prototype = [2.5, 2.5];
diff --git a/test/mjsunit/regress/regress-2618.js b/test/mjsunit/regress/regress-2618.js
index 363557b..b3cfffd 100644
--- a/test/mjsunit/regress/regress-2618.js
+++ b/test/mjsunit/regress/regress-2618.js
@@ -30,9 +30,7 @@
 function f() {
   do {
     do {
-      for (var i = 0; i < 10000000; i++) {
-        // This should run long enough to trigger OSR.
-      }
+      for (var i = 0; i < 10; i++) %OptimizeOsr();
     } while (false);
   } while (false);
 }
@@ -57,7 +55,7 @@
             do {
               do {
                 do {
-                  for (var i = 0; i < 10000000; i++) { }
+                  for (var i = 0; i < 10; i++) %OptimizeOsr();
                 } while (false);
               } while (false);
             } while (false);
diff --git a/test/mjsunit/regress/regress-2653.js b/test/mjsunit/regress/regress-2653.js
index eb0c631..8864df7 100644
--- a/test/mjsunit/regress/regress-2653.js
+++ b/test/mjsunit/regress/regress-2653.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax --deopt_every_n_garbage_collections=1
+// Flags: --allow-natives-syntax --deopt-every-n-garbage-collections=1
 
 function foo(a, b) {
   var l = a.length;
diff --git a/test/mjsunit/regress/regress-270142.js b/test/mjsunit/regress/regress-270142.js
index 6e0865c..63f4d14 100644
--- a/test/mjsunit/regress/regress-270142.js
+++ b/test/mjsunit/regress/regress-270142.js
@@ -39,7 +39,7 @@
 
 function checkNameDescriptor(f) {
   var descriptor = Object.getOwnPropertyDescriptor(f, "name");
-  assertFalse(descriptor.configurable);
+  assertTrue(descriptor.configurable);
   assertFalse(descriptor.enumerable);
   assertFalse(descriptor.writable);
 }
diff --git a/test/mjsunit/regress/regress-2825.js b/test/mjsunit/regress/regress-2825.js
new file mode 100644
index 0000000..6ffd8ec
--- /dev/null
+++ b/test/mjsunit/regress/regress-2825.js
Binary files differ
diff --git a/test/mjsunit/regress/regress-3032.js b/test/mjsunit/regress/regress-3032.js
index ae54543..9b18e14 100644
--- a/test/mjsunit/regress/regress-3032.js
+++ b/test/mjsunit/regress/regress-3032.js
@@ -25,6 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-for (var i = 0; i < 1000000; i++) { }
+// Flags: --allow-natives-syntax
+
+for (var i = 0; i < 10; i++) { if (i == 5) %OptimizeOsr(); }
 var xl = 4096;
 var z = i % xl;
diff --git a/test/mjsunit/regress/regress-3138.js b/test/mjsunit/regress/regress-3138.js
index acb121d..6f0430c 100644
--- a/test/mjsunit/regress/regress-3138.js
+++ b/test/mjsunit/regress/regress-3138.js
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// Flags: --legacy-const
+
 (function f(){
    assertEquals("function", typeof f);
 })();
diff --git a/test/mjsunit/regress/regress-3183.js b/test/mjsunit/regress/regress-3183.js
index 0c915b0..4551621 100644
--- a/test/mjsunit/regress/regress-3183.js
+++ b/test/mjsunit/regress/regress-3183.js
@@ -83,7 +83,7 @@
   }
 
   function bar(x, deopt) {
-    %_CallFunction(null, 'push', [x][0], ((deopt + 0), 1), f1);
+    %_Call(f1, null, 'push', [x][0], ((deopt + 0), 1));
   }
 
   function foo() { return bar(arguments[0], arguments[1]); }
diff --git a/test/mjsunit/regress/regress-320532.js b/test/mjsunit/regress/regress-320532.js
index 0c3198f..7559550 100644
--- a/test/mjsunit/regress/regress-320532.js
+++ b/test/mjsunit/regress/regress-320532.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 //
 // Flags: --allow-natives-syntax --expose-gc
-// Flags: --noalways-opt
 // Flags: --stress-runs=8 --send-idle-notification --gc-global
 
 
diff --git a/test/mjsunit/regress/regress-3229.js b/test/mjsunit/regress/regress-3229.js
index 1a0ed64..419cade 100644
--- a/test/mjsunit/regress/regress-3229.js
+++ b/test/mjsunit/regress/regress-3229.js
@@ -17,7 +17,6 @@
 testEscapes("\\/\\/\\/\\/", new RegExp("////"));
 testEscapes("\\/\\/\\/\\/", new RegExp("\\//\\//"));
 testEscapes("(?:)", new RegExp(""));
-testEscapes("(?:)", RegExp.prototype);
 
 // Read-only property.
 var r = /\/\//;
diff --git a/test/mjsunit/regress/regress-325676.js b/test/mjsunit/regress/regress-325676.js
index 7450a6d..7aae0cd 100644
--- a/test/mjsunit/regress/regress-325676.js
+++ b/test/mjsunit/regress/regress-325676.js
@@ -25,8 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --expose-debug-as debug
-// Flags: --turbo-deoptimization
+// Flags: --expose-debug-as debug --debug-eval-readonly-locals
 
 // If a function parameter is forced to be context allocated,
 // debug evaluate need to resolve it to a context slot instead of
@@ -41,7 +40,7 @@
   if (event != Debug.DebugEvent.Break) return;
   try {
     assertEquals(expected, exec_state.frame(0).evaluate('arg').value());
-    exec_state.frame(0).evaluate('arg = "evaluated";');
+    exec_state.frame(0).evaluate('arg = "evaluated";');  // no effect
   } catch (e) {
     exception = e;
   }
@@ -52,12 +51,12 @@
 function f(arg) {
   expected = arg;
   debugger;
-  assertEquals("evaluated", arg);
+  assertEquals(expected, arg);
 
   arg = "value";
   expected = arg;
   debugger;
-  assertEquals("evaluated", arg);
+  assertEquals(expected, arg);
 
   // Forces arg to be context allocated even though a parameter.
   function g() { arg; }
diff --git a/test/mjsunit/regress/regress-3281.js b/test/mjsunit/regress/regress-3281.js
index 7d42c02..f7b167e 100644
--- a/test/mjsunit/regress/regress-3281.js
+++ b/test/mjsunit/regress/regress-3281.js
@@ -5,8 +5,10 @@
 // Flags: --expose-natives-as=builtins
 // Should not crash or raise an exception.
 
+var SetIterator = builtins.ImportNow("SetIterator");
 var s = new Set();
-var setIterator = new builtins.SetIterator(s, 2);
+var setIterator = new SetIterator(s, 2);
 
+var MapIterator = builtins.ImportNow("MapIterator");
 var m = new Map();
-var mapIterator = new builtins.MapIterator(m, 2);
+var mapIterator = new MapIterator(m, 2);
diff --git a/test/mjsunit/regress/regress-330046.js b/test/mjsunit/regress/regress-330046.js
index d94b804..eb0d3f3 100644
--- a/test/mjsunit/regress/regress-330046.js
+++ b/test/mjsunit/regress/regress-330046.js
@@ -58,4 +58,4 @@
 
 // The old code is already deoptimized, but f still points to it.
 // Disassembling it will crash.
-%DebugDisassembleFunction(f);
+%DisassembleFunction(f);
diff --git a/test/mjsunit/regress/regress-3315.js b/test/mjsunit/regress/regress-3315.js
index a1105e2..bfd7df2 100644
--- a/test/mjsunit/regress/regress-3315.js
+++ b/test/mjsunit/regress/regress-3315.js
@@ -1,6 +1,8 @@
 // Copyright 2014 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-object-observe
 
 var indexZeroCallCount = 0;
 var indexOneCallCount = 0;
diff --git a/test/mjsunit/regress/regress-347906.js b/test/mjsunit/regress/regress-347906.js
deleted file mode 100644
index c751618..0000000
--- a/test/mjsunit/regress/regress-347906.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2014 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 --harmony
-
-function foo() {
-  return Math.clz32(12.34);
-}
-
-foo();
-foo();
-%OptimizeFunctionOnNextCall(foo);
-foo();
diff --git a/test/mjsunit/regress/regress-351315.js b/test/mjsunit/regress/regress-351315.js
deleted file mode 100644
index e2580fc..0000000
--- a/test/mjsunit/regress/regress-351315.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Flags: --allow-natives-syntax
-
-function f_13(x, y, z) { }
-
-v_5 = f_13.bind({}, -7);
-
-function f_0(z) {
-  return %NewObjectFromBound(v_5);
-}
-
-function f_8(z2, y2) {
-  var v_0 = { f1 : 0.5, f2 : 0.25 };
-  return f_0(v_0);
-}
-
-function f_12(f, args) {
-  f.apply(this, args);
-  %OptimizeFunctionOnNextCall(f);
-  f.apply(this, args);
-}
-
-f_12(f_8, [6, 4]);
diff --git a/test/mjsunit/regress/regress-356589.js b/test/mjsunit/regress/regress-356589.js
index f93c545..a47f51b 100644
--- a/test/mjsunit/regress/regress-356589.js
+++ b/test/mjsunit/regress/regress-356589.js
@@ -25,6 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+// Flags: --harmony-object-observe
+
 // This test passes if it does not crash in debug mode
 
 arr = ['a', 'b', 'c', 'd'];
diff --git a/test/mjsunit/regress/regress-360733.js b/test/mjsunit/regress/regress-360733.js
index 28f73ea..d9abece 100644
--- a/test/mjsunit/regress/regress-360733.js
+++ b/test/mjsunit/regress/regress-360733.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: --stack_size=150
+// Flags: --stack-size=150
 
 function f(a) {
   f(a + 1);
diff --git a/test/mjsunit/regress/regress-3641.js b/test/mjsunit/regress/regress-3641.js
new file mode 100644
index 0000000..9aff8c8
--- /dev/null
+++ b/test/mjsunit/regress/regress-3641.js
@@ -0,0 +1,56 @@
+// Copyright 2015 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
+
+// If a Promise's then method is overridden, that should be respected
+// even if the promise is already resolved. x's resolution function is
+// only called by Promise.resolve(); there shouldn't be a resolution
+// check before when calling x.then.
+
+
+// Async assert framework copied from mjsunit/es6/promises.js
+
+var asyncAssertsExpected = 0;
+
+function assertAsyncRan() { ++asyncAssertsExpected }
+
+function assertLater(f, name) {
+  assertFalse(f()); // should not be true synchronously
+  ++asyncAssertsExpected;
+  var iterations = 0;
+  function runAssertion() {
+    if (f()) {
+      print(name, "succeeded");
+      --asyncAssertsExpected;
+    } else if (iterations++ < 10) {
+      %EnqueueMicrotask(runAssertion);
+    } else {
+      %AbortJS(name + " FAILED!");
+    }
+  }
+  %EnqueueMicrotask(runAssertion);
+}
+
+function assertAsyncDone(iteration) {
+  var iteration = iteration || 0;
+  %EnqueueMicrotask(function() {
+    if (asyncAssertsExpected === 0)
+      assertAsync(true, "all")
+    else if (iteration > 10)  // Shouldn't take more.
+      assertAsync(false, "all... " + asyncAssertsExpected)
+    else
+      assertAsyncDone(iteration + 1)
+  });
+}
+
+// End async assert framework
+
+var y;
+var x = Promise.resolve();
+x.then = () => { y = true; }
+Promise.resolve().then(() => x);
+assertLater(() => y === true, "y === true");
+
+assertAsyncDone();
diff --git a/test/mjsunit/regress/regress-370384.js b/test/mjsunit/regress/regress-370384.js
index 28aea69..e07cc06 100644
--- a/test/mjsunit/regress/regress-370384.js
+++ b/test/mjsunit/regress/regress-370384.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: --deopt-every-n-times=1 --no-enable_sse4_1
+// Flags: --deopt-every-n-times=1 --no-enable-sse4-1
 
 function g(f, x, name) {
   var v2 = f(x);
diff --git a/test/mjsunit/regress/regress-3718.js b/test/mjsunit/regress/regress-3718.js
new file mode 100644
index 0000000..26d96d4
--- /dev/null
+++ b/test/mjsunit/regress/regress-3718.js
@@ -0,0 +1,21 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+"use strict";
+
+function getTypeName(receiver) {
+  Error.prepareStackTrace = function(e, stack) { return stack; }
+  var stack = (function() { return new Error().stack; }).call(receiver);
+  Error.prepareStackTrace = undefined;
+  return stack[0].getTypeName();
+}
+
+assertNull(getTypeName(undefined));
+assertNull(getTypeName(null));
+assertEquals("Number", getTypeName(1));
+assertEquals("String", getTypeName(""));
+assertEquals("Boolean", getTypeName(false));
+assertEquals("Object", getTypeName({}));
+assertEquals("Array", getTypeName([]));
+assertEquals("Custom", getTypeName(new (function Custom(){})()));
diff --git a/test/mjsunit/regress/regress-379770.js b/test/mjsunit/regress/regress-379770.js
index a6653c2..ab1b339 100644
--- a/test/mjsunit/regress/regress-379770.js
+++ b/test/mjsunit/regress/regress-379770.js
@@ -6,9 +6,7 @@
 
 function foo(obj) {
   var counter = 1;
-  for (var i = 0; i < obj.length; i++) {
-    %OptimizeFunctionOnNextCall(foo, "osr");
-  }
+  for (var i = 0; i < obj.length; i++) %OptimizeOsr();
   counter += obj;
   return counter;
 }
diff --git a/test/mjsunit/regress/regress-380049.js b/test/mjsunit/regress/regress-380049.js
deleted file mode 100644
index a78626c..0000000
--- a/test/mjsunit/regress/regress-380049.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2014 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(a,b,c) { return arguments; }
-var f = foo(false, null, 40);
-assertThrows(function() { %ObjectFreeze(f); });
diff --git a/test/mjsunit/regress/regress-385565.js b/test/mjsunit/regress/regress-385565.js
index d2a0875..2a471b2 100644
--- a/test/mjsunit/regress/regress-385565.js
+++ b/test/mjsunit/regress/regress-385565.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax --noalways-opt
+// Flags: --allow-natives-syntax
 
 var calls = 0;
 
diff --git a/test/mjsunit/regress/regress-3859.js b/test/mjsunit/regress/regress-3859.js
new file mode 100644
index 0000000..3248ef1
--- /dev/null
+++ b/test/mjsunit/regress/regress-3859.js
@@ -0,0 +1,6 @@
+// Copyright 2015 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(1, new Set([NaN, NaN, NaN]).size);
+assertEquals(42, new Map([[NaN, 42]]).get(NaN));
diff --git a/test/mjsunit/regress/regress-3865.js b/test/mjsunit/regress/regress-3865.js
new file mode 100644
index 0000000..0d1d02f
--- /dev/null
+++ b/test/mjsunit/regress/regress-3865.js
@@ -0,0 +1,14 @@
+// Copyright 2015 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 bar() {
+  var radix = 10;
+  return 21 / radix | 0;
+}
+assertEquals(2, bar());
+assertEquals(2, bar());
+%OptimizeFunctionOnNextCall(bar);
+assertEquals(2, bar());
diff --git a/test/mjsunit/regress/regress-3884.js b/test/mjsunit/regress/regress-3884.js
new file mode 100644
index 0000000..ecd000f
--- /dev/null
+++ b/test/mjsunit/regress/regress-3884.js
@@ -0,0 +1,27 @@
+// Copyright 2015 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 --expose-gc
+
+function f(x) {
+  // TurboFan will hoist the CompareIC for x === 'some_string' and spill it.
+  if (x === 'some_other_string_1' || x === 'some_string') {
+    gc();
+  }
+  if (x === 'some_other_string_2' || x === 'some_string') {
+    gc();
+  }
+  // TurboFan will hoist the CompareIC for x === 1.4 and spill it.
+  if (x === 1.7 || x === 1.4) {
+    gc();
+  }
+  if (x === 1.9 || x === 1.4) {
+    gc();
+  }
+}
+
+%OptimizeFunctionOnNextCall(f);
+
+f('some_other_string_1');
+f(1.7);
diff --git a/test/mjsunit/regress/regress-3926.js b/test/mjsunit/regress/regress-3926.js
new file mode 100644
index 0000000..4720c1b
--- /dev/null
+++ b/test/mjsunit/regress/regress-3926.js
@@ -0,0 +1,87 @@
+// Copyright 2015 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-sloppy --harmony-sloppy-let
+
+// See: http://code.google.com/p/v8/issues/detail?id=3926
+
+// Switch statements should disable hole check elimination
+
+// Ensure that both reads and writes encounter the hole check
+// FullCodeGen had an issue on reads; TurboFan had an issue on writes
+function f(x) {
+  var z;
+  switch (x) {
+    case 1:
+      let y = 1;
+    case 2:
+      y = 2;
+    case 3:
+      z = y;
+  }
+  return z;
+}
+assertEquals(2, f(1));
+assertThrows(function() {f(2)}, ReferenceError);
+assertThrows(function() {f(3)}, ReferenceError);
+
+// Ensure that hole checks are done even in subordinate scopes
+assertThrows(function() {
+  switch (1) {
+    case 0:
+      let x = 2;
+    case 1:
+    { // this block, plus the let below, adds another linear lexical scope
+      let y = 3;
+      x;
+    }
+  }
+}, ReferenceError);
+
+// Ensure that inner functions and eval don't skip hole checks
+
+function g(x) {
+  switch (x) {
+    case 1:
+      let z;
+    case 2:
+      return function() { z = 1; }
+    case 3:
+      return function() { return z; }
+    case 4:
+      return eval("z = 1");
+    case 5:
+      return eval("z");
+  }
+}
+
+assertEquals(undefined, g(1)());
+assertThrows(g(2), ReferenceError);
+assertThrows(g(3), ReferenceError);
+assertThrows(function () {g(4)}, ReferenceError);
+assertThrows(function () {g(5)}, ReferenceError);
+
+// Ensure the same in strict mode, with different eval and function semantics
+
+function h(x) {
+  'use strict'
+  switch (x) {
+    case 1:
+      let z;
+    case 2:
+      return function() { z = 1; }
+    case 3:
+      return function() { return z; }
+    case 4:
+      return eval("z = 1");
+    case 5:
+      return eval("z");
+  }
+}
+
+assertEquals(undefined, h(1)());
+assertThrows(h(2), ReferenceError);
+assertThrows(h(3), ReferenceError);
+assertThrows(function () {h(4)}, ReferenceError);
+assertThrows(function () {h(5)}, ReferenceError);
diff --git a/test/mjsunit/regress/regress-3960.js b/test/mjsunit/regress/regress-3960.js
new file mode 100644
index 0000000..3bd2dc2
--- /dev/null
+++ b/test/mjsunit/regress/regress-3960.js
@@ -0,0 +1,36 @@
+// Copyright 2015 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
+
+// Test that setting break point works correctly when the debugger is
+// activated late, which leads to duplicate shared function infos.
+
+(function() {
+  var Debug = %GetDebugContext().Debug;
+
+  function listener(event, exec_state, event_data, data) {
+    if (event != Debug.DebugEvent.Break) return;
+    try {
+      assertTrue(/foo/.test(exec_state.frame(0).sourceLineText()));
+      break_count++;
+    } catch (e) {
+      exception = e;
+    }
+  }
+
+  for (var i = 0; i < 3; i++) {
+    var foo = function() { a = 1; }
+    var exception = null;
+    var break_count = 0;
+    Debug.setListener(listener);
+    if (i < 2) Debug.setBreakPoint(foo, 0, 0);
+    assertTrue(/\[B\d\]a = 1/.test(Debug.showBreakPoints(foo)));
+    foo();
+    assertEquals(1, break_count);
+    assertNull(exception);
+  }
+
+  Debug.setListener(null);
+})();
diff --git a/test/mjsunit/regress/regress-3969.js b/test/mjsunit/regress/regress-3969.js
new file mode 100644
index 0000000..4659e1c
--- /dev/null
+++ b/test/mjsunit/regress/regress-3969.js
@@ -0,0 +1,36 @@
+// Copyright 2015 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 Inner() {
+  this.property = "OK";
+  this.o2 = 1;
+}
+
+function Outer(inner) {
+  this.inner = inner;
+}
+
+var inner = new Inner();
+var outer = new Outer(inner);
+
+Outer.prototype.boom = function() {
+  return this.inner.property;
+}
+
+assertEquals("OK", outer.boom());
+assertEquals("OK", outer.boom());
+%OptimizeFunctionOnNextCall(Outer.prototype.boom);
+assertEquals("OK", outer.boom());
+
+inner = undefined;
+%SetAllocationTimeout(0 /*interval*/, 2 /*timeout*/);
+// Call something that will do GC while holding a handle to outer's map.
+// The key is that this lets inner's map die while keeping outer's map alive.
+delete outer.inner;
+
+outer = new Outer({field: 1.51, property: "OK"});
+
+assertEquals("OK", outer.boom());
diff --git a/test/mjsunit/regress/regress-1945.js b/test/mjsunit/regress/regress-3976.js
similarity index 63%
copy from test/mjsunit/regress/regress-1945.js
copy to test/mjsunit/regress/regress-3976.js
index bffc775..efa3ac0 100644
--- a/test/mjsunit/regress/regress-1945.js
+++ b/test/mjsunit/regress/regress-3976.js
@@ -1,4 +1,4 @@
-// Copyright 2012 the V8 project authors. All rights reserved.
+// Copyright 2015 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -25,10 +25,56 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax
+// Flags: --max-old-space-size=60 --check-handle-count
 
-var _d = new Date();
-_d.setHours(0,0,0,0);
-_d.setHours(0,0,0,0);
-%OptimizeFunctionOnNextCall(_d.setHours);
-_d.setHours(0,0,0,0);
+table = [];
+
+for (var i = 0; i < 32; i++) {
+ table[i] = String.fromCharCode(i + 0x410);
+}
+
+
+var random = (function() {
+  var seed = 10;
+  return function() {
+    seed = (seed * 1009) % 8831;
+    return seed;
+  };
+})();
+
+
+function key(length) {
+  var s = "";
+  for (var i = 0; i < length; i++) {
+    s += table[random() % 32];
+  }
+  return '"' + s + '"';
+}
+
+
+function value() {
+  return '[{' + '"field1" : ' + random() + ', "field2" : ' + random() + '}]';
+}
+
+
+function generate(n) {
+  var s = '{';
+  for (var i = 0; i < n; i++) {
+     if (i > 0) s += ', ';
+     s += key(random() % 10 + 7);
+     s += ':';
+     s += value();
+  }
+  s += '}';
+  return s;
+}
+
+
+print("generating");
+
+var str = generate(50000);
+
+print("parsing "  + str.length);
+JSON.parse(str);
+
+print("done");
diff --git a/test/mjsunit/regress/regress-3985.js b/test/mjsunit/regress/regress-3985.js
new file mode 100644
index 0000000..6dbc4bd
--- /dev/null
+++ b/test/mjsunit/regress/regress-3985.js
@@ -0,0 +1,45 @@
+// Copyright 2015 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
+
+var shouldThrow = false;
+
+function h() {
+  try {  // Prevent inlining in Crankshaft.
+  } catch(e) { }
+  var res = g.arguments[0].x;
+  if (shouldThrow) {
+    throw res;
+  }
+  return res;
+}
+
+function g(o) { h(); }
+
+function f1() {
+  var o = { x : 1 };
+  g(o);
+  return o.x;
+}
+
+function f2() {
+  var o = { x : 2 };
+  g(o);
+  return o.x;
+}
+
+f1();
+f2();
+f1();
+f2();
+%OptimizeFunctionOnNextCall(f1);
+%OptimizeFunctionOnNextCall(f2);
+shouldThrow = true;
+try { f1(); } catch(e) {
+  assertEquals(e, 1);
+}
+try { f2(); } catch(e) {
+  assertEquals(e, 2);
+}
diff --git a/test/mjsunit/regress/regress-4023.js b/test/mjsunit/regress/regress-4023.js
new file mode 100644
index 0000000..902741f
--- /dev/null
+++ b/test/mjsunit/regress/regress-4023.js
@@ -0,0 +1,67 @@
+// Copyright 2015 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 --expose-gc --block-concurrent-recompilation
+
+function Inner() {
+  this.property = "OK";
+  this.prop2 = 1;
+}
+
+function Outer() {
+  this.o = "u";
+}
+function KeepMapAlive(o) {
+  return o.o;
+}
+function SetInner(o, i) {
+  o.inner_field = i;
+}
+function Crash(o) {
+  return o.inner_field.property;
+}
+
+var inner = new Inner();
+var outer = new Outer();
+
+// Collect type feedback.
+SetInner(new Outer(), inner);
+SetInner(outer, inner);
+
+// This function's only purpose is to stash away a Handle that keeps
+// outer's map alive during the gc() call below. We store this handle
+// on the compiler thread :-)
+KeepMapAlive(outer);
+KeepMapAlive(outer);
+%OptimizeFunctionOnNextCall(KeepMapAlive, "concurrent");
+KeepMapAlive(outer);
+
+// So far, all is well. Collect type feedback and optimize.
+print(Crash(outer));
+print(Crash(outer));
+%OptimizeFunctionOnNextCall(Crash);
+print(Crash(outer));
+
+// Null out references and perform GC. This will keep outer's map alive
+// (due to the handle created above), but will let inner's map die. Hence,
+// inner_field's field type stored in outer's map will get cleared.
+inner = undefined;
+outer = undefined;
+gc();
+
+// We could unblock the compiler thread now. But why bother?
+
+// Now optimize SetInner while inner_field's type is still cleared!
+// This will generate optimized code that stores arbitrary objects
+// into inner_field without checking their type against the field type.
+%OptimizeFunctionOnNextCall(SetInner);
+
+// Use the optimized code to store an arbitrary object into
+// o2's inner_field, without triggering any dependent code deopts...
+var o2 = new Outer();
+SetInner(o2, { invalid: 1.51, property: "OK" });
+// ...and then use the existing code expecting an Inner-class object to
+// read invalid data (in this case, a raw double).
+// We crash trying to convert the raw double into a printable string.
+print(Crash(o2));
diff --git a/test/mjsunit/regress/regress-4027.js b/test/mjsunit/regress/regress-4027.js
new file mode 100644
index 0000000..3a5d11b
--- /dev/null
+++ b/test/mjsunit/regress/regress-4027.js
@@ -0,0 +1,60 @@
+// Copyright 2015 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 --expose-gc
+
+function Inner() {
+  this.inner_name = "inner";
+}
+
+function Boom() {
+  this.boom = "boom";
+}
+
+function Outer() {
+  this.outer_name = "outer";
+}
+
+function SetInner(inner, value) {
+  inner.prop = value;
+}
+
+function SetOuter(outer, value) {
+  outer.inner = value;
+}
+
+var inner1 = new Inner();
+var inner2 = new Inner();
+
+SetInner(inner1, 10);
+SetInner(inner2, 10);
+
+var outer1 = new Outer();
+var outer2 = new Outer();
+var outer3 = new Outer();
+
+SetOuter(outer1, inner1);
+SetOuter(outer1, inner1);
+SetOuter(outer1, inner1);
+
+SetOuter(outer2, inner2);
+SetOuter(outer2, inner2);
+SetOuter(outer2, inner2);
+
+SetOuter(outer3, inner2);
+SetOuter(outer3, inner2);
+SetOuter(outer3, inner2);
+
+
+SetInner(inner2, 6.5);
+
+outer1 = null;
+inner1 = null;
+
+gc();
+
+var boom = new Boom();
+SetOuter(outer2, boom);
+
+gc();
diff --git a/test/mjsunit/regress/regress-403292.js b/test/mjsunit/regress/regress-403292.js
index 4e7ba28..2e24d48 100644
--- a/test/mjsunit/regress/regress-403292.js
+++ b/test/mjsunit/regress/regress-403292.js
@@ -4,6 +4,8 @@
 
 // Flags: --allow-natives-syntax --expose-natives-as=builtins --expose-gc
 
+var SetIterator = builtins.ImportNow("SetIterator");
+var MapIterator = builtins.ImportNow("MapIterator");
 var __v_7 = [];
 var __v_8 = {};
 var __v_10 = {};
@@ -21,9 +23,9 @@
 } catch(e) { print("Caught: " + e); }
 try {
 __v_3 = new Set();
-__v_5 = new builtins.SetIterator(__v_3, -12);
+__v_5 = new SetIterator(__v_3, -12);
 __v_4 = new Map();
-__v_6 = new builtins.MapIterator(__v_4, 2);
+__v_6 = new MapIterator(__v_4, 2);
 __f_3(Array);
 } catch(e) { print("Caught: " + e); }
 function __f_4(__v_8, filter) {
diff --git a/test/mjsunit/regress/regress-411237.js b/test/mjsunit/regress/regress-411237.js
deleted file mode 100644
index 8b75ba3..0000000
--- a/test/mjsunit/regress/regress-411237.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2014 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 --harmony
-
-try {
-  %OptimizeFunctionOnNextCall(print);
-} catch(e) { }
-
-try {
-  function* f() {
-  }
-  %OptimizeFunctionOnNextCall(f);
-} catch(e) { }
diff --git a/test/mjsunit/regress/regress-4121.js b/test/mjsunit/regress/regress-4121.js
new file mode 100644
index 0000000..a175ed9
--- /dev/null
+++ b/test/mjsunit/regress/regress-4121.js
@@ -0,0 +1,48 @@
+// Copyright 2015 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 literals_sharing_test(warmup, optimize) {
+  function closure() {
+    // Ensure small array literals start in specific element kind mode.
+    assertTrue(%HasFastSmiElements([]));
+    assertTrue(%HasFastSmiElements([1]));
+    assertTrue(%HasFastSmiElements([1,2]));
+    assertTrue(%HasFastDoubleElements([1.1]));
+    assertTrue(%HasFastDoubleElements([1.1,2]));
+
+    var a = [1, 2, 3];
+    if (warmup) {
+      // Transition elements kind during warmup...
+      assertTrue(%HasFastSmiElements(a));
+      assertEquals(4, a.push(1.3));
+    }
+    // ... and ensure that the information about transitioning is
+    // propagated to the next closure.
+    assertTrue(%HasFastDoubleElements(a));
+  };
+  if (optimize) %OptimizeFunctionOnNextCall(closure);
+  closure();
+}
+
+
+function test() {
+  var warmup = true;
+  for (var i = 0; i < 3; i++) {
+    print("iter: " + i + ", warmup: "+ warmup);
+    literals_sharing_test(warmup, false);
+    warmup = false;
+  }
+  print("iter: " + i + ", opt: true");
+  literals_sharing_test(warmup, true);
+}
+
+
+function stress_opt_test() {}
+stress_opt_test();
+if (%GetOptimizationStatus(stress_opt_test) == 2) {
+  // This test is not suitable for --always-opt mode.
+  test();
+}
diff --git a/test/mjsunit/regress/regress-4169.js b/test/mjsunit/regress/regress-4169.js
new file mode 100644
index 0000000..df2de03
--- /dev/null
+++ b/test/mjsunit/regress/regress-4169.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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.
+
+with ({}) {
+  eval("var x = 23");
+  assertEquals(23, x);
+}
+assertEquals(23, x);
diff --git a/test/mjsunit/regress/regress-4173.js b/test/mjsunit/regress/regress-4173.js
new file mode 100644
index 0000000..bef0b47
--- /dev/null
+++ b/test/mjsunit/regress/regress-4173.js
@@ -0,0 +1,58 @@
+// Copyright 2015 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 Migrator(o) {
+  return o.foo;
+}
+function Loader(o) {
+  return o[0];
+}
+
+var first_smi_array = [1];
+var second_smi_array = [2];
+var first_object_array = ["first"];
+var second_object_array = ["string"];
+
+assertTrue(%HasFastSmiElements(first_smi_array));
+assertTrue(%HasFastSmiElements(second_smi_array));
+assertTrue(%HasFastObjectElements(first_object_array));
+assertTrue(%HasFastObjectElements(second_object_array));
+
+// Prepare identical transition chains for smi and object arrays.
+first_smi_array.foo = 0;
+second_smi_array.foo = 0;
+first_object_array.foo = 0;
+second_object_array.foo = 0;
+
+// Collect type feedback for not-yet-deprecated original object array map.
+for (var i = 0; i < 3; i++) Migrator(second_object_array);
+
+// Blaze a migration trail for smi array maps.
+// This marks the migrated smi array map as a migration target.
+first_smi_array.foo = 0.5;
+print(second_smi_array.foo);
+
+// Deprecate original object array map.
+// Use TryMigrate from deferred optimized code to migrate second object array.
+first_object_array.foo = 0.5;
+%OptimizeFunctionOnNextCall(Migrator);
+Migrator(second_object_array);
+
+// |second_object_array| now erroneously has a smi map.
+// Optimized code assuming smi elements will expose this.
+
+for (var i = 0; i < 3; i++) Loader(second_smi_array);
+%OptimizeFunctionOnNextCall(Loader);
+assertEquals("string", Loader(second_object_array));
+
+// Any of the following checks will also fail:
+assertTrue(%HasFastObjectElements(second_object_array));
+assertFalse(%HasFastSmiElements(second_object_array));
+assertTrue(%HaveSameMap(first_object_array, second_object_array));
+assertFalse(%HaveSameMap(first_smi_array, second_object_array));
+
+%ClearFunctionTypeFeedback(Loader);
+%ClearFunctionTypeFeedback(Migrator);
diff --git a/test/mjsunit/regress/regress-417709a.js b/test/mjsunit/regress/regress-417709a.js
index 7c4d4f7..5500be2 100644
--- a/test/mjsunit/regress/regress-417709a.js
+++ b/test/mjsunit/regress/regress-417709a.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: --stack-size=100 --turbo-deoptimization
+// Flags: --harmony-object-observe
+// Flags: --stack-size=100
 
 var a = [];
 
diff --git a/test/mjsunit/regress/regress-417709b.js b/test/mjsunit/regress/regress-417709b.js
index 7680543..4d9572e 100644
--- a/test/mjsunit/regress/regress-417709b.js
+++ b/test/mjsunit/regress/regress-417709b.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: --stack-size=100
+// Flags: --harmony-object-observe --stack-size=100
 
 var a = [];
 
diff --git a/test/mjsunit/regress/regress-4214.js b/test/mjsunit/regress/regress-4214.js
new file mode 100644
index 0000000..7c28104
--- /dev/null
+++ b/test/mjsunit/regress/regress-4214.js
@@ -0,0 +1,6 @@
+// Copyright 2015 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.
+
+var o = { eval: function() { return this; } }
+with (o) assertSame(o, eval());
diff --git a/test/mjsunit/regress/regress-4255-1.js b/test/mjsunit/regress/regress-4255-1.js
new file mode 100644
index 0000000..78fe860
--- /dev/null
+++ b/test/mjsunit/regress/regress-4255-1.js
@@ -0,0 +1,26 @@
+// Copyright 2015 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.
+
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+
+'use strict';
+{
+  let x = function() {};
+  // Trigger OSR.
+  for (var i = 0; i < 1000000; i++);
+}
diff --git a/test/mjsunit/regress/regress-4255-2.js b/test/mjsunit/regress/regress-4255-2.js
new file mode 100644
index 0000000..bae82be
--- /dev/null
+++ b/test/mjsunit/regress/regress-4255-2.js
@@ -0,0 +1,24 @@
+// Copyright 2015 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.
+
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+
+'use strict';
+for (let i = function f() {}; !i;);
+  // Trigger OSR.
+for (var i = 0; i < 1000000; i++);
diff --git a/test/mjsunit/regress/regress-4255-3.js b/test/mjsunit/regress/regress-4255-3.js
new file mode 100644
index 0000000..531d0a3
--- /dev/null
+++ b/test/mjsunit/regress/regress-4255-3.js
@@ -0,0 +1,24 @@
+// Copyright 2015 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.
+
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+
+'use strict';
+for (let i in [1, 2, 3]) { function f() {} }
+// Trigger OSR.
+for (var i = 0; i < 1000000; i++);
diff --git a/test/mjsunit/regress/regress-4255-4.js b/test/mjsunit/regress/regress-4255-4.js
new file mode 100644
index 0000000..4de62d9
--- /dev/null
+++ b/test/mjsunit/regress/regress-4255-4.js
@@ -0,0 +1,24 @@
+// Copyright 2015 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.
+
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+// comments to trigger lazy compilation comments to trigger lazy compilation
+
+'use strict';
+class C { constructor() {} }
+// Trigger OSR
+for (var i = 0; i < 1000000; i++);
diff --git a/test/mjsunit/regress/regress-4266.js b/test/mjsunit/regress/regress-4266.js
new file mode 100644
index 0000000..f886250
--- /dev/null
+++ b/test/mjsunit/regress/regress-4266.js
@@ -0,0 +1,17 @@
+// Copyright 2015 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: --turbo-filter=test --allow-natives-syntax
+
+function test() {
+  try {
+    [].foo();
+  } catch (e) {
+    return e.message;
+  }
+}
+
+assertEquals("[].foo is not a function", test());
+%OptimizeFunctionOnNextCall(test);
+assertEquals("[].foo is not a function", test());
diff --git a/test/mjsunit/regress/regress-4271.js b/test/mjsunit/regress/regress-4271.js
new file mode 100644
index 0000000..bc18771
--- /dev/null
+++ b/test/mjsunit/regress/regress-4271.js
@@ -0,0 +1,24 @@
+// Copyright 2015 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.
+
+if (this.Worker) {
+  // Throw rather than overflow internal field index
+  assertThrows(function() {
+    Worker.prototype.terminate();
+  });
+
+  assertThrows(function() {
+    Worker.prototype.getMessage();
+  });
+
+  assertThrows(function() {
+    Worker.prototype.postMessage({});
+  });
+
+  // Don't throw for real worker
+  var worker = new Worker('');
+  worker.getMessage();
+  worker.postMessage({});
+  worker.terminate();
+}
diff --git a/test/mjsunit/regress/regress-4279.js b/test/mjsunit/regress/regress-4279.js
new file mode 100644
index 0000000..64ef967
--- /dev/null
+++ b/test/mjsunit/regress/regress-4279.js
@@ -0,0 +1,11 @@
+// Copyright 2015 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.
+
+if (this.Worker && this.quit) {
+  try {
+      new Function(new Worker("55"));
+  } catch(err) {}
+
+  quit();
+}
diff --git a/test/mjsunit/regress/regress-4296.js b/test/mjsunit/regress/regress-4296.js
new file mode 100644
index 0000000..5774952
--- /dev/null
+++ b/test/mjsunit/regress/regress-4296.js
@@ -0,0 +1,40 @@
+// Copyright 2015 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 () {
+  var o = new String("ab");
+  function store(o, i, v) { o[i] = v; }
+  function load(o, i) { return o[i]; }
+
+  // Initialize the IC.
+  store(o, 2, 10);
+  load(o, 2);
+
+  store(o, 0, 100);
+  assertEquals("a", load(o, 0));
+})();
+
+(function () {
+  var o = {__proto__: new String("ab")};
+  function store(o, i, v) { o[i] = v; }
+  function load(o, i) { return o[i]; }
+
+  // Initialize the IC.
+  store(o, 2, 10);
+  load(o, 2);
+
+  store(o, 0, 100);
+  assertEquals("a", load(o, 0));
+})();
+
+(function () {
+  "use strict";
+  var o = {__proto__: {}};
+  function store(o, i, v) { o[i] = v; }
+
+  // Initialize the IC.
+  store(o, 0, 100);
+  o.__proto__.__proto__ = new String("bla");
+  assertThrows(function () { store(o, 1, 100) });
+})();
diff --git a/test/mjsunit/regress/regress-634.js b/test/mjsunit/regress/regress-430201b.js
similarity index 83%
rename from test/mjsunit/regress/regress-634.js
rename to test/mjsunit/regress/regress-430201b.js
index b68e843..056504d 100644
--- a/test/mjsunit/regress/regress-634.js
+++ b/test/mjsunit/regress/regress-430201b.js
@@ -25,8 +25,19 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-for (var i = 0; i < 1000000; i++) {
-  a = new Array(0);
-  assertEquals(0, a.length);
-  assertEquals(0, a.length);
-}
+// Flags: --allow-natives-syntax --expose-gc
+
+(function() {
+  var array_1 = [];
+
+    %SetFlags("--stress-compaction");
+  for (var a = 0; a < 10000; a++) { array_1[a * 100] = 0; }
+
+  gc();
+  gc();
+
+  var array_2 = [];
+  for (var i = 0; i < 321361; i++) {
+    array_2[i] = String.fromCharCode(i)[0];
+  }
+})();
diff --git a/test/mjsunit/regress/regress-4309-1.js b/test/mjsunit/regress/regress-4309-1.js
new file mode 100644
index 0000000..a13fd43
--- /dev/null
+++ b/test/mjsunit/regress/regress-4309-1.js
@@ -0,0 +1,37 @@
+// Copyright 2015 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: --expose-debug-as debug --allow-natives-syntax
+
+var Debug = debug.Debug;
+
+var exception = null;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var scopes = exec_state.frame().allScopes();
+    assertEquals(3, scopes.length);
+    assertEquals(debug.ScopeType.Local, scopes[0].scopeType());
+    assertEquals(debug.ScopeType.Script, scopes[1].scopeType());
+    assertEquals(debug.ScopeType.Global, scopes[2].scopeType());
+  } catch (e) {
+    exception = e;
+  }
+}
+
+function f() {
+  eval('');
+  debugger;
+}
+
+f();
+f();
+
+%OptimizeFunctionOnNextCall(f);
+Debug.setListener(listener);
+
+f();
+
+assertNull(exception);
diff --git a/test/mjsunit/regress/regress-4309-2.js b/test/mjsunit/regress/regress-4309-2.js
new file mode 100644
index 0000000..984b007
--- /dev/null
+++ b/test/mjsunit/regress/regress-4309-2.js
@@ -0,0 +1,34 @@
+// Copyright 2015 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: --expose-debug-as debug --allow-natives-syntax
+
+var Debug = debug.Debug;
+
+var exception = null;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var scope = exec_state.frame().scope(0);
+    assertEquals(5, scope.scopeObject().property("i").value().value());
+  } catch (e) {
+    exception = e;
+  }
+}
+
+function f() {
+  eval('var i = 5');
+  debugger;
+}
+
+f();
+f();
+
+%OptimizeFunctionOnNextCall(f);
+Debug.setListener(listener);
+
+f();
+
+assertNull(exception);
diff --git a/test/mjsunit/regress/regress-4309-3.js b/test/mjsunit/regress/regress-4309-3.js
new file mode 100644
index 0000000..687dd4c
--- /dev/null
+++ b/test/mjsunit/regress/regress-4309-3.js
@@ -0,0 +1,39 @@
+// Copyright 2015 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: --expose-debug-as debug --allow-natives-syntax
+
+var Debug = debug.Debug;
+
+var exception = null;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var scopes = exec_state.frame().allScopes();
+    assertEquals(4, scopes.length);
+    assertEquals(debug.ScopeType.With, scopes[0].scopeType());
+    assertEquals(debug.ScopeType.Local, scopes[1].scopeType());
+    assertEquals(debug.ScopeType.Script, scopes[2].scopeType());
+    assertEquals(debug.ScopeType.Global, scopes[3].scopeType());
+  } catch (e) {
+    exception = e;
+  }
+}
+
+function f() {
+  with({}) {
+    debugger;
+  }
+}
+
+f();
+f();
+
+%OptimizeFunctionOnNextCall(f);
+Debug.setListener(listener);
+
+f();
+
+assertNull(exception);
diff --git a/test/mjsunit/regress/regress-4320.js b/test/mjsunit/regress/regress-4320.js
new file mode 100644
index 0000000..df6a99b
--- /dev/null
+++ b/test/mjsunit/regress/regress-4320.js
@@ -0,0 +1,21 @@
+// Copyright 2015 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 --expose-debug-as debug
+
+var Debug = debug.Debug;
+
+function f() { g(); }
+
+function g() { }
+
+f();
+f();
+%OptimizeFunctionOnNextCall(f);
+f();
+
+Debug.setListener(function() {});
+Debug.setBreakPoint(g, 0);
+
+f();
diff --git a/test/mjsunit/regress/regress-4325.js b/test/mjsunit/regress/regress-4325.js
new file mode 100644
index 0000000..e88bdd3
--- /dev/null
+++ b/test/mjsunit/regress/regress-4325.js
@@ -0,0 +1,48 @@
+// Copyright 2015 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 --expose-gc
+
+function Inner() {
+    this.p1 = 0;
+      this.p2 = 3;
+}
+
+function Outer() {
+    this.p3 = 0;
+}
+
+var i1 = new Inner();
+var i2 = new Inner();
+var o1 = new Outer();
+o1.inner = i1;
+// o1.map now thinks "inner" has type Inner.map1.
+// Deprecate Inner.map1:
+i1.p1 = 0.5;
+// Let Inner.map1 die by migrating i2 to Inner.map2:
+print(i2.p1);
+gc();
+// o1.map's descriptor for "inner" is now a cleared WeakCell;
+// o1.inner's actual map is Inner.map2.
+// Prepare Inner.map3, deprecating Inner.map2.
+i2.p2 = 0.5;
+// Deprecate o1's map.
+var o2 = new Outer();
+o2.p3 = 0.5;
+o2.inner = i2;
+// o2.map (Outer.map2) now says that o2.inner's type is Inner.map3.
+// Migrate o1 to Outer.map2.
+print(o1.p3);
+// o1.map now thinks that o1.inner has map Inner.map3 just like o2.inner,
+// but in fact o1.inner.map is still Inner.map2!
+
+function loader(o) {
+    return o.inner.p2;
+}
+loader(o2);
+loader(o2);
+%OptimizeFunctionOnNextCall(loader);
+assertEquals(0.5, loader(o2));
+assertEquals(3, loader(o1));
+gc();  // Crashes with --verify-heap.
diff --git a/test/mjsunit/regress/regress-436896.js b/test/mjsunit/regress/regress-436896.js
index 344a7a3..fee44de 100644
--- a/test/mjsunit/regress/regress-436896.js
+++ b/test/mjsunit/regress/regress-436896.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
+// Flags: --allow-natives-syntax --legacy-const
 
 function f(x) {
   const x = 0;
@@ -14,4 +14,4 @@
 }
 
 %OptimizeFunctionOnNextCall(g);
-assertThrows(function() { g(42); }, TypeError);
+assertThrows(function() { g(42); }, SyntaxError);
diff --git a/test/mjsunit/regress/regress-4374.js b/test/mjsunit/regress/regress-4374.js
new file mode 100644
index 0000000..afae71c
--- /dev/null
+++ b/test/mjsunit/regress/regress-4374.js
@@ -0,0 +1,15 @@
+// Copyright 2015 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-context-specialization
+// Flags: --turbo-filter=f --turbo-inlining
+
+var f = (function() {
+  var max = Math.max;
+  return function f() { return max(0, -1); };
+})();
+
+assertEquals(0, f());
+%OptimizeFunctionOnNextCall(f);
+assertEquals(0, f());
diff --git a/test/mjsunit/regress/regress-4376-1.js b/test/mjsunit/regress/regress-4376-1.js
new file mode 100644
index 0000000..edb97ee
--- /dev/null
+++ b/test/mjsunit/regress/regress-4376-1.js
@@ -0,0 +1,12 @@
+// Copyright 2015 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 Bar() { }
+function Baz() { }
+Baz.prototype = { __proto__: new Bar() }
+var x = new Baz();
+function foo(y) { return y instanceof Bar; }
+assertTrue(foo(x));
+Baz.prototype.__proto__ = null;
+assertFalse(foo(x));
diff --git a/test/mjsunit/regress/regress-4376-2.js b/test/mjsunit/regress/regress-4376-2.js
new file mode 100644
index 0000000..2a37204
--- /dev/null
+++ b/test/mjsunit/regress/regress-4376-2.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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 Foo() {}
+var x = new Foo();
+Foo.prototype = 1;
+function foo() { return x instanceof Foo; }
+assertThrows(foo, TypeError);
diff --git a/test/mjsunit/regress/regress-4376-3.js b/test/mjsunit/regress/regress-4376-3.js
new file mode 100644
index 0000000..3240cf0
--- /dev/null
+++ b/test/mjsunit/regress/regress-4376-3.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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 Foo() {}
+var x = new Foo();
+function foo() { return x instanceof Foo; }
+assertTrue(foo());
+Foo.prototype = 1;
+assertThrows(foo, TypeError);
diff --git a/test/mjsunit/regress/regress-4377.js b/test/mjsunit/regress/regress-4377.js
new file mode 100644
index 0000000..3c4278a
--- /dev/null
+++ b/test/mjsunit/regress/regress-4377.js
@@ -0,0 +1,45 @@
+// Copyright 2015 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.
+
+// See: http://code.google.com/p/v8/issues/detail?id=4377
+
+// Switch statements should introduce their own lexical scope
+
+'use strict';
+
+switch (1) { case 1: let x = 2; }
+
+assertThrows(function() { return x; }, ReferenceError);
+
+{
+  let result;
+  let x = 1;
+  switch (x) {
+    case 1:
+      let x = 2;
+      result = x;
+      break;
+    default:
+      result = 0;
+      break;
+  }
+  assertEquals(1, x);
+  assertEquals(2, result);
+}
+
+{
+  let result;
+  let x = 1;
+  switch (eval('x')) {
+    case 1:
+      let x = 2;
+      result = x;
+      break;
+    default:
+      result = 0;
+      break;
+  }
+  assertEquals(1, x);
+  assertEquals(2, result);
+}
diff --git a/test/mjsunit/regress/regress-437713.js b/test/mjsunit/regress/regress-437713.js
new file mode 100644
index 0000000..704dd3e
--- /dev/null
+++ b/test/mjsunit/regress/regress-437713.js
@@ -0,0 +1,26 @@
+// Copyright 2015 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 --enable-slow-asserts
+
+var o1 = {
+  a00:0, a01:0, a02:0, a03:0, a04:0, a05:0, a06:0, a07:0, a08:0, a09:0, a0a:0, a0b:0, a0c:0, a0d:0, a0e:0, a0f:0,
+  a10:0, a11:0, a12:0, a13:0, a14:0, a15:0, a16:0, a17:0, a18:0, a19:0, a1a:0, a1b:0, a1c:0, a1d:0, a1e:0, a1f:0,
+
+  dbl: 0.1,
+
+  some_double: 2.13,
+};
+
+var o2 = {
+  a00:0, a01:0, a02:0, a03:0, a04:0, a05:0, a06:0, a07:0, a08:0, a09:0, a0a:0, a0b:0, a0c:0, a0d:0, a0e:0, a0f:0,
+  a10:0, a11:0, a12:0, a13:0, a14:0, a15:0, a16:0, a17:0, a18:0, a19:0, a1a:0, a1b:0, a1c:0, a1d:0, a1e:0, a1f:0,
+
+  dbl: 0.1,
+
+  boom: [],
+};
+
+o2.boom.push(42);
+assertEquals(42, o2.boom[0]);
diff --git a/test/mjsunit/regress/regress-4380.js b/test/mjsunit/regress/regress-4380.js
new file mode 100644
index 0000000..8a83def
--- /dev/null
+++ b/test/mjsunit/regress/regress-4380.js
@@ -0,0 +1,20 @@
+// Copyright 2015 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 bar(a) {
+  var x = a[0];
+  return x == undefined;
+}
+
+// Make the keyed load be polymorphic on holey smi and holey fast.
+bar([, 2, 3]);
+bar([, 'two', 'three']);
+bar([, 2, 3]);
+
+%OptimizeFunctionOnNextCall(bar);
+bar([, 2, 3]);
+// Verify that loading the hole doesn't cause deoptimization.
+assertOptimized(bar);
diff --git a/test/mjsunit/regress/regress-4388.js b/test/mjsunit/regress/regress-4388.js
new file mode 100644
index 0000000..908bccc
--- /dev/null
+++ b/test/mjsunit/regress/regress-4388.js
@@ -0,0 +1,35 @@
+// Copyright 2015 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 --turbo-filter=test*
+
+// Tests that TurboFan emits a dynamic hole-check for the temporal dead zone at
+// a non-initializing assignments to a {let} variable.
+function test_hole_check_for_let(a) {
+  'use strict';
+  { switch (a) {
+      case 0: let x;
+      case 1: x = 9;
+    }
+  }
+}
+assertDoesNotThrow("test_hole_check_for_let(0)");
+assertThrows("test_hole_check_for_let(1)", ReferenceError);
+%OptimizeFunctionOnNextCall(test_hole_check_for_let)
+assertThrows("test_hole_check_for_let(1)", ReferenceError);
+
+// Tests that TurboFan emits a dynamic hole-check for the temporal dead zone at
+// a non-initializing assignments to a {const} variable.
+function test_hole_check_for_const(a) {
+  'use strict';
+  { switch (a) {
+      case 0: const x = 3;
+      case 1: x = 2;
+    }
+  }
+}
+assertThrows("test_hole_check_for_const(0)", TypeError);
+assertThrows("test_hole_check_for_const(1)", ReferenceError);
+%OptimizeFunctionOnNextCall(test_hole_check_for_const)
+assertThrows("test_hole_check_for_const(1)", ReferenceError);
diff --git a/test/mjsunit/regress/regress-4399.js b/test/mjsunit/regress/regress-4399.js
new file mode 100644
index 0000000..c76c0c8
--- /dev/null
+++ b/test/mjsunit/regress/regress-4399.js
@@ -0,0 +1,17 @@
+// Copyright 2015 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.
+
+// Test that switch has the appropriate 'eval' value
+
+assertEquals("foo", eval('switch(1) { case 1: "foo" }'));
+assertEquals("foo", eval('{ switch(1) { case 1: "foo" } }'));
+assertEquals("foo", eval('switch(1) { case 1: { "foo" } }'));
+assertEquals("foo", eval('switch(1) { case 1: "foo"; break; case 2: "bar"; break }'));
+assertEquals("bar", eval('switch(2) { case 1: "foo"; break; case 2: "bar"; break }'));
+assertEquals("bar", eval('switch(1) { case 1: "foo"; case 2: "bar"; break }'));
+
+// The tag is not the value, if there's no value
+
+assertEquals(undefined, eval('switch (1) {}'));
+assertEquals(undefined, eval('switch (1) { case 1: {} }'));
diff --git a/test/mjsunit/regress/regress-444805.js b/test/mjsunit/regress/regress-444805.js
new file mode 100644
index 0000000..5a533ac
--- /dev/null
+++ b/test/mjsunit/regress/regress-444805.js
@@ -0,0 +1,8 @@
+// Copyright 2015 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.
+
+try {
+  load("test/mjsunit/regress/regress-444805.js-script");
+} catch (e) {
+}
diff --git a/test/mjsunit/regress/regress-444805.js-script b/test/mjsunit/regress/regress-444805.js-script
new file mode 100644
index 0000000..17b233b
--- /dev/null
+++ b/test/mjsunit/regress/regress-444805.js-script
@@ -0,0 +1,11 @@
+// Copyright 2015 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.
+
+Error.prepareStackTrace = function(dummyObject, v8StackTrace)
+{
+  throw new Error('boom');
+};
+
+
+throw new Error('just error');
diff --git a/test/mjsunit/regress/regress-4450.js b/test/mjsunit/regress/regress-4450.js
new file mode 100644
index 0000000..31ff4f1
--- /dev/null
+++ b/test/mjsunit/regress/regress-4450.js
@@ -0,0 +1,8 @@
+// Copyright 2015 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.
+
+({})['foobar\u2653'.slice(0, 6)] = null;
+var x;
+eval('x = function foobar() { return foobar };');
+x();
diff --git a/test/mjsunit/regress/regress-446389.js b/test/mjsunit/regress/regress-446389.js
new file mode 100644
index 0000000..d600638
--- /dev/null
+++ b/test/mjsunit/regress/regress-446389.js
@@ -0,0 +1,12 @@
+// Copyright 2014 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 runNearStackLimit(f) { function t() { try { t(); } catch(e) { f(); } }; try { t(); } catch(e) {} }
+%OptimizeFunctionOnNextCall(__f_3);
+function __f_3() {
+    var __v_5 = a[0];
+}
+runNearStackLimit(function() { __f_3(); });
diff --git a/test/mjsunit/regress/regress-447526.js b/test/mjsunit/regress/regress-447526.js
new file mode 100644
index 0000000..9f9396f
--- /dev/null
+++ b/test/mjsunit/regress/regress-447526.js
@@ -0,0 +1,25 @@
+// Copyright 2014 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 bar() {
+  throw "done";
+}
+
+function foo() {
+  var i;
+  while (i) {
+    while (i) {
+}
+    i++;
+  }
+  while (true) {
+    bar();
+  }
+}
+
+
+%OptimizeFunctionOnNextCall(foo);
+assertThrows(foo);
diff --git a/test/mjsunit/regress/regress-447561.js b/test/mjsunit/regress/regress-447561.js
new file mode 100644
index 0000000..e1a5ba5
--- /dev/null
+++ b/test/mjsunit/regress/regress-447561.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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.
+
+__proto__ = /foo/gi;
+assertThrows(function() { source });
+assertThrows(function() { global });
+assertThrows(function() { ignoreCase });
+assertThrows(function() { multiline });
+assertEquals(0, lastIndex);
diff --git a/test/mjsunit/regress/regress-448711.js b/test/mjsunit/regress/regress-448711.js
new file mode 100644
index 0000000..b7628ab
--- /dev/null
+++ b/test/mjsunit/regress/regress-448711.js
@@ -0,0 +1,15 @@
+// Copyright 2015 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 f() {
+  this.a = { text: "Hello!" };
+}
+var v4 = new f();
+var v7 = new f();
+v7.b = {};
+Object.defineProperty(v4, '2', {});
+var v6 = new f();
+v6.a = {};
diff --git a/test/mjsunit/regress/regress-449070.js b/test/mjsunit/regress/regress-449070.js
new file mode 100644
index 0000000..7a0f0a8
--- /dev/null
+++ b/test/mjsunit/regress/regress-449070.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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
+
+try {
+  %NormalizeElements(this);
+} catch(e) {
+}
diff --git a/test/mjsunit/regress/regress-449291.js b/test/mjsunit/regress/regress-449291.js
new file mode 100644
index 0000000..fb56027
--- /dev/null
+++ b/test/mjsunit/regress/regress-449291.js
@@ -0,0 +1,19 @@
+// Copyright 2015 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
+
+a = {y:1.5};
+a.y = 1093445778;
+b = a.y;
+c = {y:{}};
+
+function f() {
+  return {y: b};
+}
+
+f();
+f();
+%OptimizeFunctionOnNextCall(f);
+assertEquals(f().y, 1093445778);
diff --git a/test/mjsunit/regress/regress-4493-1.js b/test/mjsunit/regress/regress-4493-1.js
new file mode 100644
index 0000000..a24c8b0
--- /dev/null
+++ b/test/mjsunit/regress/regress-4493-1.js
@@ -0,0 +1,16 @@
+// Copyright 2015 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 baz(x, f) { return x.length; };
+
+function bar(x, y) {
+  if (y) {}
+  baz(x, function() { return x; });
+};
+
+function foo(x) { bar(x, ''); }
+%OptimizeFunctionOnNextCall(foo);
+foo(['a']);
diff --git a/test/mjsunit/regress/regress-4495.js b/test/mjsunit/regress/regress-4495.js
new file mode 100644
index 0000000..2af5bc2
--- /dev/null
+++ b/test/mjsunit/regress/regress-4495.js
@@ -0,0 +1,11 @@
+// Copyright 2015 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 foo(a, s) { a[s] = 35; }
+var x = { bilbo: 3 };
+var y = { frodo: 3, bilbo: 'hi' };
+foo(x, "bilbo");
+foo(x, "bilbo");
+// Without the fix for 4495, this will crash on ia32:
+foo(y, "bilbo");
diff --git a/test/mjsunit/regress/regress-4507.js b/test/mjsunit/regress/regress-4507.js
new file mode 100644
index 0000000..a3fe510
--- /dev/null
+++ b/test/mjsunit/regress/regress-4507.js
@@ -0,0 +1,19 @@
+// Copyright 2015 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 broken(value) {
+  return Math.floor(value/65536);
+}
+function toUnsigned(i) {
+  return i >>> 0;
+}
+function outer(i) {
+  return broken(toUnsigned(i));
+}
+for (var i = 0; i < 5; i++) outer(0);
+broken(0x80000000);  // Spice things up with a sprinkling of type feedback.
+%OptimizeFunctionOnNextCall(outer);
+assertEquals(32768, outer(0x80000000));
diff --git a/test/mjsunit/regress/regress-450895.js b/test/mjsunit/regress/regress-450895.js
new file mode 100644
index 0000000..48aa00d
--- /dev/null
+++ b/test/mjsunit/regress/regress-450895.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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
+
+var v = new Array();
+Object.freeze(v);
+v = v.concat(0.5);
diff --git a/test/mjsunit/regress/regress-451322.js b/test/mjsunit/regress/regress-451322.js
new file mode 100644
index 0000000..b7794f5
--- /dev/null
+++ b/test/mjsunit/regress/regress-451322.js
@@ -0,0 +1,17 @@
+// Copyright 2015 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
+
+var foo = 0;
+
+function bar() {
+  var baz = 0 - {};
+  if (foo > 24) return baz * 0;
+}
+
+bar();
+bar();
+%OptimizeFunctionOnNextCall(bar);
+bar();
diff --git a/test/mjsunit/regress/regress-4515.js b/test/mjsunit/regress/regress-4515.js
new file mode 100644
index 0000000..81610f0
--- /dev/null
+++ b/test/mjsunit/regress/regress-4515.js
@@ -0,0 +1,17 @@
+// Copyright 2015 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 --turbo-filter=f
+
+function f(array) {
+  return array.length >>> 0;
+}
+
+var a = new Array();
+a[4000000000] = "A";
+
+assertEquals(4000000001, f(a));
+assertEquals(4000000001, f(a));
+%OptimizeFunctionOnNextCall(f);
+assertEquals(4000000001, f(a));
diff --git a/test/mjsunit/regress/regress-451958.js b/test/mjsunit/regress/regress-451958.js
new file mode 100644
index 0000000..33695f2
--- /dev/null
+++ b/test/mjsunit/regress/regress-451958.js
@@ -0,0 +1,31 @@
+// Copyright 2015 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 k() { throw "e"; }
+var a = true;
+var a = false;
+function foo(a) {
+  var i, j;
+  if (a) {
+    for (i = 0; i < 1; j++) ;
+    for (i = 0; i < 1; k()) ;
+    for (i = 0; i < 1; i++) ;
+  }
+}
+%OptimizeFunctionOnNextCall(foo);
+foo();
+
+function bar() {
+var __v_45;
+  for (__v_45 = 0; __v_45 < 64; __v_63++) {
+  }
+  for (__v_45 = 0; __v_45 < 128; __v_36++) {
+  }
+  for (__v_45 = 128; __v_45 < 256; __v_45++) {
+  }
+}
+%OptimizeFunctionOnNextCall(bar);
+assertThrows(bar);
diff --git a/test/mjsunit/regress/regress-4521.js b/test/mjsunit/regress/regress-4521.js
new file mode 100644
index 0000000..f9bdafc
--- /dev/null
+++ b/test/mjsunit/regress/regress-4521.js
@@ -0,0 +1,20 @@
+// Copyright 2015 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
+
+"use strict";
+
+class B {
+  foo() { return 23 }
+}
+
+class C extends B {
+  bar() { return super[%DeoptimizeFunction(C.prototype.bar), "foo"]() }
+}
+
+assertEquals(23, new C().bar());
+assertEquals(23, new C().bar());
+%OptimizeFunctionOnNextCall(C.prototype.bar);
+assertEquals(23, new C().bar());
diff --git a/test/mjsunit/regress/regress-4525.js b/test/mjsunit/regress/regress-4525.js
new file mode 100644
index 0000000..b962dc0
--- /dev/null
+++ b/test/mjsunit/regress/regress-4525.js
@@ -0,0 +1,37 @@
+// Copyright 2015 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 receiver() {
+  return this;
+}
+
+function construct(f) {
+  "use strict";
+  class B {}
+  class C extends B {
+    bar() { return super.foo() }
+  }
+  B.prototype.foo = f;
+  return new C();
+}
+
+function check(x, value, type) {
+  assertEquals("object", typeof x);
+  assertInstanceof(x, type);
+  assertEquals(value, x);
+}
+
+var o = construct(receiver);
+check(o.bar.call(123), Object(123), Number);
+check(o.bar.call("a"), Object("a"), String);
+check(o.bar.call(undefined), this, Object);
+check(o.bar.call(null), this, Object);
+
+%OptimizeFunctionOnNextCall(o.bar);
+check(o.bar.call(456), Object(456), Number);
+check(o.bar.call("b"), Object("b"), String);
+check(o.bar.call(undefined), this, Object);
+check(o.bar.call(null), this, Object);
diff --git a/test/mjsunit/regress/regress-4534.js b/test/mjsunit/regress/regress-4534.js
new file mode 100644
index 0000000..7042958
--- /dev/null
+++ b/test/mjsunit/regress/regress-4534.js
@@ -0,0 +1,17 @@
+// Copyright 2015 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 --expose-gc
+
+var dp = Object.defineProperty;
+function getter() { return 111; }
+function setter(x) { print(222); }
+obj1 = {};
+dp(obj1, "golf", { get: getter, configurable: true });
+dp(obj1, "golf", { set: setter, configurable: true });
+gc();
+obj2 = {};
+dp(obj2, "golf", { get: getter, configurable: true });
+dp(obj2, "golf", { set: setter, configurable: true });
+assertTrue(%HaveSameMap(obj1, obj2));
diff --git a/test/mjsunit/regress/regress-453481.js b/test/mjsunit/regress/regress-453481.js
new file mode 100644
index 0000000..2bc9e46
--- /dev/null
+++ b/test/mjsunit/regress/regress-453481.js
@@ -0,0 +1,127 @@
+// Copyright 2015 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
+
+var __v_0 = "";
+var __v_1 = {};
+var __v_2 = {};
+var __v_3 = {};
+var __v_4 = {};
+var __v_5 = {};
+var __v_6 = {};
+var __v_7 = {};
+var __v_8 = {};
+var __v_10 = {};
+var __v_13 = {};
+var __v_15 = {};
+var __v_16 = /abc/;
+var __v_17 = {};
+var __v_18 = function() {};
+var __v_19 = this;
+var __v_20 = {};
+var __v_21 = this;
+
+function __f_5(s) {
+  return __f_11(__f_3(__f_7(s), s.length * 8));
+}
+function __f_3(x, len) {
+  var __v_3 =  1732584193;
+  var __v_6 = -271733879;
+  var __v_5 = -1732584194;
+  var __v_7 =  271733892;
+
+  for (var i = 0; i < 1; i++) {
+    var __v_11 = __v_3;
+    var __v_14 = __v_6;
+    var __v_13 = __v_5;
+    var __v_15 = __v_7;
+
+    __v_3 = __f_10(__v_3, __v_6, __v_5, __v_7, x[__v_8+ 0], 6 , -198630844);
+    __v_7 = __f_10(__v_7, __v_3, __v_6, __v_5, x[__v_8+ 7], 10,  1126891415);
+    __v_5 = __f_10(__v_5, __v_7, __v_3, __v_6, x[__v_8+14], 15, -1416354905);
+    __v_6 = __f_10(__v_6, __v_5, __v_7, __v_3, x[__v_8+ 5], 21, -57434055);
+    __v_3 = __f_10(__v_3, __v_6, __v_5, __v_7, x[__v_8+12], 6 ,  1700485571);
+    __v_7 = __f_10(__v_7, __v_3, __v_6, __v_5, x[__v_8+ 3], 10, -1894986606);
+    __v_5 = __f_10(__v_5, __v_7, __v_3, __v_6, x[__v_8+10], 15, -1051523);
+    __v_6 = __f_10(__v_6, __v_5, __v_7, __v_3, x[__v_8+ 1], 21, -2054922799);
+    __v_3 = __f_10(__v_3, __v_6, __v_5, __v_7, x[__v_8+ 8], 6 ,  1873313359);
+    __v_7 = __f_10(__v_7, __v_3, __v_6, __v_5, x[__v_8+15], 10, -30611744);
+    __v_5 = __f_10(__v_5, __v_7, __v_3, __v_6, x[__v_8+ 22], 14, -1560198371);
+    __v_3 = __f_10(__v_3, __v_6, __v_5, __v_7, x[__v_8+ 4], 6 , -145523070);
+    __v_7 = __f_10(__v_7, __v_3, __v_6, __v_5, x[__v_8+11], 10, -1120210379);
+    __v_5 = __f_10(__v_5, __v_7, __v_3, __v_6, x[__v_8+ 2], 15,  718787259);
+    __v_6 = __f_10(__v_13, __v_5, __v_7, __v_3, x[__v_8+ 9], 21, -343485551);
+    __v_3 = __f_6(__v_3, __v_11);
+    __v_6 = __f_6(__v_6, __v_14);
+    __v_5 = __f_6(__v_5, __v_13);
+    __v_7 = __f_6(__v_7, __v_15);
+
+  }
+
+  return Array(__v_3, __v_13, __v_4, __v_19);
+}
+function __f_4(q, __v_3, __v_6, x, s, t) {
+  return __f_6(__f_12(__f_6(__f_6(__v_3, q), __f_6(x, t)), s),__v_6);
+}
+function __f_13(__v_3, __v_6, __v_5, __v_7, x, s, t) {
+  return __f_4((__v_6 & __v_5) | ((~__v_6) & __v_7), __v_3, __v_6, x, s, t);
+}
+function __f_8(__v_3, __v_6, __v_5, __v_7, x, s, t) {
+  return __f_4((__v_6 & __v_7) | (__v_5 & (~__v_7)), __v_3, __v_6, x, s, t);
+}
+function __f_9(__v_3, __v_6, __v_5, __v_7, x, s, t) {
+  return __f_4(__v_6 ^ __v_5 ^ __v_7, __v_3, __v_6, x, s, t);
+}
+function __f_10(__v_3, __v_6, __v_5, __v_7, x, s, t) {
+  return __f_4(__v_5 ^ (__v_6 | (~__v_7)), __v_3, __v_6, x, s, t);
+}
+function __f_6(x, y) {
+  var __v_12 = (x & 0xFFFF) + (y & 0xFFFF);
+  var __v_18 = (x >> 16) + (y >> 16) + (__v_12 >> 16);
+  return (__v_18 << 16) | (__v_12 & 0xFFFF);
+}
+function __f_12(num, cnt) {
+  return (num << cnt) | (num >>> (32 - cnt));
+}
+function __f_7(__v_16) {
+  var __v_4 = Array();
+  var __v_9 = (1 << 8) - 1;
+  for(var __v_8 = 0; __v_8 < __v_16.length * 8; __v_8 += 8)
+    __v_4[__v_8>>5] |= (__v_16.charCodeAt(__v_8 / 8) & __v_9) << (__v_8%32);
+  return __v_4;
+}
+
+function __f_11(binarray) { return __v_16; }
+
+try {
+__v_10 = "Rebellious subjects, enemies to peace,\n\
+Profaners of this neighbour-stained steel,--\n\
+Will they not hear? What, ho! you men, you beasts,\n\
+That quench the fire of your pernicious rage\n\
+With purple fountains issuing from your veins,\n\
+On pain of torture, from those bloody hands\n\
+Throw your mistemper'__v_7 weapons to the ground,\n\
+And hear the sentence of your moved prince.\n\
+Three civil brawls, bred of an airy word,\n\
+By thee, old Capulet, and Montague,\n\
+Have thrice disturb'__v_7 the quiet of our streets,\n\
+And made Verona's ancient citizens\n\
+Cast by their grave beseeming ornaments,\n\
+To wield old partisans, in hands as old,\n\
+Canker'__v_7 with peace, to part your canker'__v_7 hate:\n\
+If ever you disturb our streets again,\n\
+Your lives shall pay the forfeit of the peace.\n\
+For this time, all the rest depart away:\n\
+You Capulet; shall go along with me:\n\
+And, Montague, come you this afternoon,\n\
+To know our further pleasure in this case,\n\
+To old Free-town, our common judgment-place.\n\
+Once more, on pain of death, all men depart.\n"
+  function assertEquals(a, b) { }
+for (var __v_8 = 0; __v_8 < 11; ++__v_8) {
+  assertEquals(__f_5(__v_10), "1b8719c72d5d8bfd06e096ef6c6288c5");
+}
+
+} catch(e) { print("Caught: " + e); }
diff --git a/test/mjsunit/regress/regress-454725.js b/test/mjsunit/regress/regress-454725.js
new file mode 100644
index 0000000..a2469d1
--- /dev/null
+++ b/test/mjsunit/regress/regress-454725.js
@@ -0,0 +1,42 @@
+// Copyright 2015 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: --expose-gc
+
+var __v_9 = {};
+var depth = 15;
+var current = 0;
+
+function __f_15(__v_3) {
+  if ((__v_3 % 50) != 0) {
+    return __v_3;
+  } else {
+    return __v_9 + 0.5;
+  }
+}
+function __f_13(a) {
+  a[100000 - 2] = 1;
+  for (var __v_3= 0; __v_3 < 70000; ++__v_3 ) {
+    a[__v_3] = __f_15(__v_3);
+  }
+}
+function __f_2(size) {
+
+}
+var tmp;
+function __f_18(allocator) {
+  current++;
+  if (current == depth) return;
+  var __v_7 = new allocator(100000);
+  __f_13(__v_7);
+  var __v_4 = 6;
+  for (var __v_3= 0; __v_3 < 70000; __v_3 += 501 ) {
+    tmp += __v_3;
+  }
+  __f_18(Array);
+  current--;
+}
+
+gc();
+__f_18(__f_2);
diff --git a/test/mjsunit/regress/regress-455207.js b/test/mjsunit/regress/regress-455207.js
new file mode 100644
index 0000000..88fec4a
--- /dev/null
+++ b/test/mjsunit/regress/regress-455207.js
@@ -0,0 +1,12 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+"use strict";
+var s = "";
+for (var i = 16; i < 1085; i++) {
+  s += ("var a" + i + " = " + i + ";");
+}
+s += "const x = 10;" +
+    "assertEquals(10, x); x = 11; assertEquals(11, x)";
+assertThrows(function() { eval(s); });
diff --git a/test/mjsunit/regress/regress-1945.js b/test/mjsunit/regress/regress-455212.js
similarity index 82%
rename from test/mjsunit/regress/regress-1945.js
rename to test/mjsunit/regress/regress-455212.js
index bffc775..f2fd033 100644
--- a/test/mjsunit/regress/regress-1945.js
+++ b/test/mjsunit/regress/regress-455212.js
@@ -1,4 +1,4 @@
-// Copyright 2012 the V8 project authors. All rights reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -25,10 +25,9 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax
+// Typeof expression must resolve to 'undefined' when it used on a
+// non-existing property. It is *not* allowed to throw a
+// ReferenceError.
 
-var _d = new Date();
-_d.setHours(0,0,0,0);
-_d.setHours(0,0,0,0);
-%OptimizeFunctionOnNextCall(_d.setHours);
-_d.setHours(0,0,0,0);
+// eval("\u0060\u005c") is an unterminated template string (\u0060)
+assertThrows("\u0060\u005c", SyntaxError);
diff --git a/test/mjsunit/regress/regress-4576.js b/test/mjsunit/regress/regress-4576.js
new file mode 100644
index 0000000..c55c695
--- /dev/null
+++ b/test/mjsunit/regress/regress-4576.js
@@ -0,0 +1,12 @@
+// Copyright 2015 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-sloppy --legacy-const
+
+// Should trigger a runtime error, not an early error.
+function f() {
+  const x;
+  var x;
+}
+assertThrows(f, SyntaxError);
diff --git a/test/mjsunit/regress/regress-457935.js b/test/mjsunit/regress/regress-457935.js
new file mode 100644
index 0000000..d34db05
--- /dev/null
+++ b/test/mjsunit/regress/regress-457935.js
@@ -0,0 +1,26 @@
+// Copyright 2015 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 dummy(x) { };
+
+function g() {
+  return g.arguments;
+}
+
+function f(limit) {
+  var i = 0;
+  var o = {};
+  for (; i < limit; i++) {
+    o.y = +o.y;
+    g();
+  }
+}
+
+f(1);
+f(1);
+%OptimizeFunctionOnNextCall(f);
+dummy(f(1));
+dummy(f(2));
diff --git a/test/mjsunit/regress/regress-458876.js b/test/mjsunit/regress/regress-458876.js
new file mode 100644
index 0000000..7df0615
--- /dev/null
+++ b/test/mjsunit/regress/regress-458876.js
@@ -0,0 +1,16 @@
+// Copyright 2015 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 module() {
+    "use asm";
+    function foo() {
+      do ; while (foo ? 0 : 1) ;
+      return -1 > 0 ? -1 : 0;
+    }
+    return foo;
+}
+
+var foo = module();
+assertEquals(0, foo());
+assertEquals(0, foo());
diff --git a/test/mjsunit/regress/regress-458987.js b/test/mjsunit/regress/regress-458987.js
new file mode 100644
index 0000000..f7a7edc
--- /dev/null
+++ b/test/mjsunit/regress/regress-458987.js
@@ -0,0 +1,16 @@
+// Copyright 2014 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 () {
+  "use asm";
+
+  function g() {}
+
+  runNearStackLimit(g);
+})();
+
+function runNearStackLimit(f) {
+  function g() { try { g(); } catch(e) { f(); } };
+  g();
+}
diff --git a/test/mjsunit/regress/regress-4595.js b/test/mjsunit/regress/regress-4595.js
new file mode 100644
index 0000000..53b759a
--- /dev/null
+++ b/test/mjsunit/regress/regress-4595.js
@@ -0,0 +1,10008 @@
+// Copyright 2015 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.
+
+// Should parse quickly and successfully (and not run out of memory).
+var obj = {
+foo0: () => {},
+foo1: () => {},
+foo2: () => {},
+foo3: () => {},
+foo4: () => {},
+foo5: () => {},
+foo6: () => {},
+foo7: () => {},
+foo8: () => {},
+foo9: () => {},
+foo10: () => {},
+foo11: () => {},
+foo12: () => {},
+foo13: () => {},
+foo14: () => {},
+foo15: () => {},
+foo16: () => {},
+foo17: () => {},
+foo18: () => {},
+foo19: () => {},
+foo20: () => {},
+foo21: () => {},
+foo22: () => {},
+foo23: () => {},
+foo24: () => {},
+foo25: () => {},
+foo26: () => {},
+foo27: () => {},
+foo28: () => {},
+foo29: () => {},
+foo30: () => {},
+foo31: () => {},
+foo32: () => {},
+foo33: () => {},
+foo34: () => {},
+foo35: () => {},
+foo36: () => {},
+foo37: () => {},
+foo38: () => {},
+foo39: () => {},
+foo40: () => {},
+foo41: () => {},
+foo42: () => {},
+foo43: () => {},
+foo44: () => {},
+foo45: () => {},
+foo46: () => {},
+foo47: () => {},
+foo48: () => {},
+foo49: () => {},
+foo50: () => {},
+foo51: () => {},
+foo52: () => {},
+foo53: () => {},
+foo54: () => {},
+foo55: () => {},
+foo56: () => {},
+foo57: () => {},
+foo58: () => {},
+foo59: () => {},
+foo60: () => {},
+foo61: () => {},
+foo62: () => {},
+foo63: () => {},
+foo64: () => {},
+foo65: () => {},
+foo66: () => {},
+foo67: () => {},
+foo68: () => {},
+foo69: () => {},
+foo70: () => {},
+foo71: () => {},
+foo72: () => {},
+foo73: () => {},
+foo74: () => {},
+foo75: () => {},
+foo76: () => {},
+foo77: () => {},
+foo78: () => {},
+foo79: () => {},
+foo80: () => {},
+foo81: () => {},
+foo82: () => {},
+foo83: () => {},
+foo84: () => {},
+foo85: () => {},
+foo86: () => {},
+foo87: () => {},
+foo88: () => {},
+foo89: () => {},
+foo90: () => {},
+foo91: () => {},
+foo92: () => {},
+foo93: () => {},
+foo94: () => {},
+foo95: () => {},
+foo96: () => {},
+foo97: () => {},
+foo98: () => {},
+foo99: () => {},
+foo100: () => {},
+foo101: () => {},
+foo102: () => {},
+foo103: () => {},
+foo104: () => {},
+foo105: () => {},
+foo106: () => {},
+foo107: () => {},
+foo108: () => {},
+foo109: () => {},
+foo110: () => {},
+foo111: () => {},
+foo112: () => {},
+foo113: () => {},
+foo114: () => {},
+foo115: () => {},
+foo116: () => {},
+foo117: () => {},
+foo118: () => {},
+foo119: () => {},
+foo120: () => {},
+foo121: () => {},
+foo122: () => {},
+foo123: () => {},
+foo124: () => {},
+foo125: () => {},
+foo126: () => {},
+foo127: () => {},
+foo128: () => {},
+foo129: () => {},
+foo130: () => {},
+foo131: () => {},
+foo132: () => {},
+foo133: () => {},
+foo134: () => {},
+foo135: () => {},
+foo136: () => {},
+foo137: () => {},
+foo138: () => {},
+foo139: () => {},
+foo140: () => {},
+foo141: () => {},
+foo142: () => {},
+foo143: () => {},
+foo144: () => {},
+foo145: () => {},
+foo146: () => {},
+foo147: () => {},
+foo148: () => {},
+foo149: () => {},
+foo150: () => {},
+foo151: () => {},
+foo152: () => {},
+foo153: () => {},
+foo154: () => {},
+foo155: () => {},
+foo156: () => {},
+foo157: () => {},
+foo158: () => {},
+foo159: () => {},
+foo160: () => {},
+foo161: () => {},
+foo162: () => {},
+foo163: () => {},
+foo164: () => {},
+foo165: () => {},
+foo166: () => {},
+foo167: () => {},
+foo168: () => {},
+foo169: () => {},
+foo170: () => {},
+foo171: () => {},
+foo172: () => {},
+foo173: () => {},
+foo174: () => {},
+foo175: () => {},
+foo176: () => {},
+foo177: () => {},
+foo178: () => {},
+foo179: () => {},
+foo180: () => {},
+foo181: () => {},
+foo182: () => {},
+foo183: () => {},
+foo184: () => {},
+foo185: () => {},
+foo186: () => {},
+foo187: () => {},
+foo188: () => {},
+foo189: () => {},
+foo190: () => {},
+foo191: () => {},
+foo192: () => {},
+foo193: () => {},
+foo194: () => {},
+foo195: () => {},
+foo196: () => {},
+foo197: () => {},
+foo198: () => {},
+foo199: () => {},
+foo200: () => {},
+foo201: () => {},
+foo202: () => {},
+foo203: () => {},
+foo204: () => {},
+foo205: () => {},
+foo206: () => {},
+foo207: () => {},
+foo208: () => {},
+foo209: () => {},
+foo210: () => {},
+foo211: () => {},
+foo212: () => {},
+foo213: () => {},
+foo214: () => {},
+foo215: () => {},
+foo216: () => {},
+foo217: () => {},
+foo218: () => {},
+foo219: () => {},
+foo220: () => {},
+foo221: () => {},
+foo222: () => {},
+foo223: () => {},
+foo224: () => {},
+foo225: () => {},
+foo226: () => {},
+foo227: () => {},
+foo228: () => {},
+foo229: () => {},
+foo230: () => {},
+foo231: () => {},
+foo232: () => {},
+foo233: () => {},
+foo234: () => {},
+foo235: () => {},
+foo236: () => {},
+foo237: () => {},
+foo238: () => {},
+foo239: () => {},
+foo240: () => {},
+foo241: () => {},
+foo242: () => {},
+foo243: () => {},
+foo244: () => {},
+foo245: () => {},
+foo246: () => {},
+foo247: () => {},
+foo248: () => {},
+foo249: () => {},
+foo250: () => {},
+foo251: () => {},
+foo252: () => {},
+foo253: () => {},
+foo254: () => {},
+foo255: () => {},
+foo256: () => {},
+foo257: () => {},
+foo258: () => {},
+foo259: () => {},
+foo260: () => {},
+foo261: () => {},
+foo262: () => {},
+foo263: () => {},
+foo264: () => {},
+foo265: () => {},
+foo266: () => {},
+foo267: () => {},
+foo268: () => {},
+foo269: () => {},
+foo270: () => {},
+foo271: () => {},
+foo272: () => {},
+foo273: () => {},
+foo274: () => {},
+foo275: () => {},
+foo276: () => {},
+foo277: () => {},
+foo278: () => {},
+foo279: () => {},
+foo280: () => {},
+foo281: () => {},
+foo282: () => {},
+foo283: () => {},
+foo284: () => {},
+foo285: () => {},
+foo286: () => {},
+foo287: () => {},
+foo288: () => {},
+foo289: () => {},
+foo290: () => {},
+foo291: () => {},
+foo292: () => {},
+foo293: () => {},
+foo294: () => {},
+foo295: () => {},
+foo296: () => {},
+foo297: () => {},
+foo298: () => {},
+foo299: () => {},
+foo300: () => {},
+foo301: () => {},
+foo302: () => {},
+foo303: () => {},
+foo304: () => {},
+foo305: () => {},
+foo306: () => {},
+foo307: () => {},
+foo308: () => {},
+foo309: () => {},
+foo310: () => {},
+foo311: () => {},
+foo312: () => {},
+foo313: () => {},
+foo314: () => {},
+foo315: () => {},
+foo316: () => {},
+foo317: () => {},
+foo318: () => {},
+foo319: () => {},
+foo320: () => {},
+foo321: () => {},
+foo322: () => {},
+foo323: () => {},
+foo324: () => {},
+foo325: () => {},
+foo326: () => {},
+foo327: () => {},
+foo328: () => {},
+foo329: () => {},
+foo330: () => {},
+foo331: () => {},
+foo332: () => {},
+foo333: () => {},
+foo334: () => {},
+foo335: () => {},
+foo336: () => {},
+foo337: () => {},
+foo338: () => {},
+foo339: () => {},
+foo340: () => {},
+foo341: () => {},
+foo342: () => {},
+foo343: () => {},
+foo344: () => {},
+foo345: () => {},
+foo346: () => {},
+foo347: () => {},
+foo348: () => {},
+foo349: () => {},
+foo350: () => {},
+foo351: () => {},
+foo352: () => {},
+foo353: () => {},
+foo354: () => {},
+foo355: () => {},
+foo356: () => {},
+foo357: () => {},
+foo358: () => {},
+foo359: () => {},
+foo360: () => {},
+foo361: () => {},
+foo362: () => {},
+foo363: () => {},
+foo364: () => {},
+foo365: () => {},
+foo366: () => {},
+foo367: () => {},
+foo368: () => {},
+foo369: () => {},
+foo370: () => {},
+foo371: () => {},
+foo372: () => {},
+foo373: () => {},
+foo374: () => {},
+foo375: () => {},
+foo376: () => {},
+foo377: () => {},
+foo378: () => {},
+foo379: () => {},
+foo380: () => {},
+foo381: () => {},
+foo382: () => {},
+foo383: () => {},
+foo384: () => {},
+foo385: () => {},
+foo386: () => {},
+foo387: () => {},
+foo388: () => {},
+foo389: () => {},
+foo390: () => {},
+foo391: () => {},
+foo392: () => {},
+foo393: () => {},
+foo394: () => {},
+foo395: () => {},
+foo396: () => {},
+foo397: () => {},
+foo398: () => {},
+foo399: () => {},
+foo400: () => {},
+foo401: () => {},
+foo402: () => {},
+foo403: () => {},
+foo404: () => {},
+foo405: () => {},
+foo406: () => {},
+foo407: () => {},
+foo408: () => {},
+foo409: () => {},
+foo410: () => {},
+foo411: () => {},
+foo412: () => {},
+foo413: () => {},
+foo414: () => {},
+foo415: () => {},
+foo416: () => {},
+foo417: () => {},
+foo418: () => {},
+foo419: () => {},
+foo420: () => {},
+foo421: () => {},
+foo422: () => {},
+foo423: () => {},
+foo424: () => {},
+foo425: () => {},
+foo426: () => {},
+foo427: () => {},
+foo428: () => {},
+foo429: () => {},
+foo430: () => {},
+foo431: () => {},
+foo432: () => {},
+foo433: () => {},
+foo434: () => {},
+foo435: () => {},
+foo436: () => {},
+foo437: () => {},
+foo438: () => {},
+foo439: () => {},
+foo440: () => {},
+foo441: () => {},
+foo442: () => {},
+foo443: () => {},
+foo444: () => {},
+foo445: () => {},
+foo446: () => {},
+foo447: () => {},
+foo448: () => {},
+foo449: () => {},
+foo450: () => {},
+foo451: () => {},
+foo452: () => {},
+foo453: () => {},
+foo454: () => {},
+foo455: () => {},
+foo456: () => {},
+foo457: () => {},
+foo458: () => {},
+foo459: () => {},
+foo460: () => {},
+foo461: () => {},
+foo462: () => {},
+foo463: () => {},
+foo464: () => {},
+foo465: () => {},
+foo466: () => {},
+foo467: () => {},
+foo468: () => {},
+foo469: () => {},
+foo470: () => {},
+foo471: () => {},
+foo472: () => {},
+foo473: () => {},
+foo474: () => {},
+foo475: () => {},
+foo476: () => {},
+foo477: () => {},
+foo478: () => {},
+foo479: () => {},
+foo480: () => {},
+foo481: () => {},
+foo482: () => {},
+foo483: () => {},
+foo484: () => {},
+foo485: () => {},
+foo486: () => {},
+foo487: () => {},
+foo488: () => {},
+foo489: () => {},
+foo490: () => {},
+foo491: () => {},
+foo492: () => {},
+foo493: () => {},
+foo494: () => {},
+foo495: () => {},
+foo496: () => {},
+foo497: () => {},
+foo498: () => {},
+foo499: () => {},
+foo500: () => {},
+foo501: () => {},
+foo502: () => {},
+foo503: () => {},
+foo504: () => {},
+foo505: () => {},
+foo506: () => {},
+foo507: () => {},
+foo508: () => {},
+foo509: () => {},
+foo510: () => {},
+foo511: () => {},
+foo512: () => {},
+foo513: () => {},
+foo514: () => {},
+foo515: () => {},
+foo516: () => {},
+foo517: () => {},
+foo518: () => {},
+foo519: () => {},
+foo520: () => {},
+foo521: () => {},
+foo522: () => {},
+foo523: () => {},
+foo524: () => {},
+foo525: () => {},
+foo526: () => {},
+foo527: () => {},
+foo528: () => {},
+foo529: () => {},
+foo530: () => {},
+foo531: () => {},
+foo532: () => {},
+foo533: () => {},
+foo534: () => {},
+foo535: () => {},
+foo536: () => {},
+foo537: () => {},
+foo538: () => {},
+foo539: () => {},
+foo540: () => {},
+foo541: () => {},
+foo542: () => {},
+foo543: () => {},
+foo544: () => {},
+foo545: () => {},
+foo546: () => {},
+foo547: () => {},
+foo548: () => {},
+foo549: () => {},
+foo550: () => {},
+foo551: () => {},
+foo552: () => {},
+foo553: () => {},
+foo554: () => {},
+foo555: () => {},
+foo556: () => {},
+foo557: () => {},
+foo558: () => {},
+foo559: () => {},
+foo560: () => {},
+foo561: () => {},
+foo562: () => {},
+foo563: () => {},
+foo564: () => {},
+foo565: () => {},
+foo566: () => {},
+foo567: () => {},
+foo568: () => {},
+foo569: () => {},
+foo570: () => {},
+foo571: () => {},
+foo572: () => {},
+foo573: () => {},
+foo574: () => {},
+foo575: () => {},
+foo576: () => {},
+foo577: () => {},
+foo578: () => {},
+foo579: () => {},
+foo580: () => {},
+foo581: () => {},
+foo582: () => {},
+foo583: () => {},
+foo584: () => {},
+foo585: () => {},
+foo586: () => {},
+foo587: () => {},
+foo588: () => {},
+foo589: () => {},
+foo590: () => {},
+foo591: () => {},
+foo592: () => {},
+foo593: () => {},
+foo594: () => {},
+foo595: () => {},
+foo596: () => {},
+foo597: () => {},
+foo598: () => {},
+foo599: () => {},
+foo600: () => {},
+foo601: () => {},
+foo602: () => {},
+foo603: () => {},
+foo604: () => {},
+foo605: () => {},
+foo606: () => {},
+foo607: () => {},
+foo608: () => {},
+foo609: () => {},
+foo610: () => {},
+foo611: () => {},
+foo612: () => {},
+foo613: () => {},
+foo614: () => {},
+foo615: () => {},
+foo616: () => {},
+foo617: () => {},
+foo618: () => {},
+foo619: () => {},
+foo620: () => {},
+foo621: () => {},
+foo622: () => {},
+foo623: () => {},
+foo624: () => {},
+foo625: () => {},
+foo626: () => {},
+foo627: () => {},
+foo628: () => {},
+foo629: () => {},
+foo630: () => {},
+foo631: () => {},
+foo632: () => {},
+foo633: () => {},
+foo634: () => {},
+foo635: () => {},
+foo636: () => {},
+foo637: () => {},
+foo638: () => {},
+foo639: () => {},
+foo640: () => {},
+foo641: () => {},
+foo642: () => {},
+foo643: () => {},
+foo644: () => {},
+foo645: () => {},
+foo646: () => {},
+foo647: () => {},
+foo648: () => {},
+foo649: () => {},
+foo650: () => {},
+foo651: () => {},
+foo652: () => {},
+foo653: () => {},
+foo654: () => {},
+foo655: () => {},
+foo656: () => {},
+foo657: () => {},
+foo658: () => {},
+foo659: () => {},
+foo660: () => {},
+foo661: () => {},
+foo662: () => {},
+foo663: () => {},
+foo664: () => {},
+foo665: () => {},
+foo666: () => {},
+foo667: () => {},
+foo668: () => {},
+foo669: () => {},
+foo670: () => {},
+foo671: () => {},
+foo672: () => {},
+foo673: () => {},
+foo674: () => {},
+foo675: () => {},
+foo676: () => {},
+foo677: () => {},
+foo678: () => {},
+foo679: () => {},
+foo680: () => {},
+foo681: () => {},
+foo682: () => {},
+foo683: () => {},
+foo684: () => {},
+foo685: () => {},
+foo686: () => {},
+foo687: () => {},
+foo688: () => {},
+foo689: () => {},
+foo690: () => {},
+foo691: () => {},
+foo692: () => {},
+foo693: () => {},
+foo694: () => {},
+foo695: () => {},
+foo696: () => {},
+foo697: () => {},
+foo698: () => {},
+foo699: () => {},
+foo700: () => {},
+foo701: () => {},
+foo702: () => {},
+foo703: () => {},
+foo704: () => {},
+foo705: () => {},
+foo706: () => {},
+foo707: () => {},
+foo708: () => {},
+foo709: () => {},
+foo710: () => {},
+foo711: () => {},
+foo712: () => {},
+foo713: () => {},
+foo714: () => {},
+foo715: () => {},
+foo716: () => {},
+foo717: () => {},
+foo718: () => {},
+foo719: () => {},
+foo720: () => {},
+foo721: () => {},
+foo722: () => {},
+foo723: () => {},
+foo724: () => {},
+foo725: () => {},
+foo726: () => {},
+foo727: () => {},
+foo728: () => {},
+foo729: () => {},
+foo730: () => {},
+foo731: () => {},
+foo732: () => {},
+foo733: () => {},
+foo734: () => {},
+foo735: () => {},
+foo736: () => {},
+foo737: () => {},
+foo738: () => {},
+foo739: () => {},
+foo740: () => {},
+foo741: () => {},
+foo742: () => {},
+foo743: () => {},
+foo744: () => {},
+foo745: () => {},
+foo746: () => {},
+foo747: () => {},
+foo748: () => {},
+foo749: () => {},
+foo750: () => {},
+foo751: () => {},
+foo752: () => {},
+foo753: () => {},
+foo754: () => {},
+foo755: () => {},
+foo756: () => {},
+foo757: () => {},
+foo758: () => {},
+foo759: () => {},
+foo760: () => {},
+foo761: () => {},
+foo762: () => {},
+foo763: () => {},
+foo764: () => {},
+foo765: () => {},
+foo766: () => {},
+foo767: () => {},
+foo768: () => {},
+foo769: () => {},
+foo770: () => {},
+foo771: () => {},
+foo772: () => {},
+foo773: () => {},
+foo774: () => {},
+foo775: () => {},
+foo776: () => {},
+foo777: () => {},
+foo778: () => {},
+foo779: () => {},
+foo780: () => {},
+foo781: () => {},
+foo782: () => {},
+foo783: () => {},
+foo784: () => {},
+foo785: () => {},
+foo786: () => {},
+foo787: () => {},
+foo788: () => {},
+foo789: () => {},
+foo790: () => {},
+foo791: () => {},
+foo792: () => {},
+foo793: () => {},
+foo794: () => {},
+foo795: () => {},
+foo796: () => {},
+foo797: () => {},
+foo798: () => {},
+foo799: () => {},
+foo800: () => {},
+foo801: () => {},
+foo802: () => {},
+foo803: () => {},
+foo804: () => {},
+foo805: () => {},
+foo806: () => {},
+foo807: () => {},
+foo808: () => {},
+foo809: () => {},
+foo810: () => {},
+foo811: () => {},
+foo812: () => {},
+foo813: () => {},
+foo814: () => {},
+foo815: () => {},
+foo816: () => {},
+foo817: () => {},
+foo818: () => {},
+foo819: () => {},
+foo820: () => {},
+foo821: () => {},
+foo822: () => {},
+foo823: () => {},
+foo824: () => {},
+foo825: () => {},
+foo826: () => {},
+foo827: () => {},
+foo828: () => {},
+foo829: () => {},
+foo830: () => {},
+foo831: () => {},
+foo832: () => {},
+foo833: () => {},
+foo834: () => {},
+foo835: () => {},
+foo836: () => {},
+foo837: () => {},
+foo838: () => {},
+foo839: () => {},
+foo840: () => {},
+foo841: () => {},
+foo842: () => {},
+foo843: () => {},
+foo844: () => {},
+foo845: () => {},
+foo846: () => {},
+foo847: () => {},
+foo848: () => {},
+foo849: () => {},
+foo850: () => {},
+foo851: () => {},
+foo852: () => {},
+foo853: () => {},
+foo854: () => {},
+foo855: () => {},
+foo856: () => {},
+foo857: () => {},
+foo858: () => {},
+foo859: () => {},
+foo860: () => {},
+foo861: () => {},
+foo862: () => {},
+foo863: () => {},
+foo864: () => {},
+foo865: () => {},
+foo866: () => {},
+foo867: () => {},
+foo868: () => {},
+foo869: () => {},
+foo870: () => {},
+foo871: () => {},
+foo872: () => {},
+foo873: () => {},
+foo874: () => {},
+foo875: () => {},
+foo876: () => {},
+foo877: () => {},
+foo878: () => {},
+foo879: () => {},
+foo880: () => {},
+foo881: () => {},
+foo882: () => {},
+foo883: () => {},
+foo884: () => {},
+foo885: () => {},
+foo886: () => {},
+foo887: () => {},
+foo888: () => {},
+foo889: () => {},
+foo890: () => {},
+foo891: () => {},
+foo892: () => {},
+foo893: () => {},
+foo894: () => {},
+foo895: () => {},
+foo896: () => {},
+foo897: () => {},
+foo898: () => {},
+foo899: () => {},
+foo900: () => {},
+foo901: () => {},
+foo902: () => {},
+foo903: () => {},
+foo904: () => {},
+foo905: () => {},
+foo906: () => {},
+foo907: () => {},
+foo908: () => {},
+foo909: () => {},
+foo910: () => {},
+foo911: () => {},
+foo912: () => {},
+foo913: () => {},
+foo914: () => {},
+foo915: () => {},
+foo916: () => {},
+foo917: () => {},
+foo918: () => {},
+foo919: () => {},
+foo920: () => {},
+foo921: () => {},
+foo922: () => {},
+foo923: () => {},
+foo924: () => {},
+foo925: () => {},
+foo926: () => {},
+foo927: () => {},
+foo928: () => {},
+foo929: () => {},
+foo930: () => {},
+foo931: () => {},
+foo932: () => {},
+foo933: () => {},
+foo934: () => {},
+foo935: () => {},
+foo936: () => {},
+foo937: () => {},
+foo938: () => {},
+foo939: () => {},
+foo940: () => {},
+foo941: () => {},
+foo942: () => {},
+foo943: () => {},
+foo944: () => {},
+foo945: () => {},
+foo946: () => {},
+foo947: () => {},
+foo948: () => {},
+foo949: () => {},
+foo950: () => {},
+foo951: () => {},
+foo952: () => {},
+foo953: () => {},
+foo954: () => {},
+foo955: () => {},
+foo956: () => {},
+foo957: () => {},
+foo958: () => {},
+foo959: () => {},
+foo960: () => {},
+foo961: () => {},
+foo962: () => {},
+foo963: () => {},
+foo964: () => {},
+foo965: () => {},
+foo966: () => {},
+foo967: () => {},
+foo968: () => {},
+foo969: () => {},
+foo970: () => {},
+foo971: () => {},
+foo972: () => {},
+foo973: () => {},
+foo974: () => {},
+foo975: () => {},
+foo976: () => {},
+foo977: () => {},
+foo978: () => {},
+foo979: () => {},
+foo980: () => {},
+foo981: () => {},
+foo982: () => {},
+foo983: () => {},
+foo984: () => {},
+foo985: () => {},
+foo986: () => {},
+foo987: () => {},
+foo988: () => {},
+foo989: () => {},
+foo990: () => {},
+foo991: () => {},
+foo992: () => {},
+foo993: () => {},
+foo994: () => {},
+foo995: () => {},
+foo996: () => {},
+foo997: () => {},
+foo998: () => {},
+foo999: () => {},
+foo1000: () => {},
+foo1001: () => {},
+foo1002: () => {},
+foo1003: () => {},
+foo1004: () => {},
+foo1005: () => {},
+foo1006: () => {},
+foo1007: () => {},
+foo1008: () => {},
+foo1009: () => {},
+foo1010: () => {},
+foo1011: () => {},
+foo1012: () => {},
+foo1013: () => {},
+foo1014: () => {},
+foo1015: () => {},
+foo1016: () => {},
+foo1017: () => {},
+foo1018: () => {},
+foo1019: () => {},
+foo1020: () => {},
+foo1021: () => {},
+foo1022: () => {},
+foo1023: () => {},
+foo1024: () => {},
+foo1025: () => {},
+foo1026: () => {},
+foo1027: () => {},
+foo1028: () => {},
+foo1029: () => {},
+foo1030: () => {},
+foo1031: () => {},
+foo1032: () => {},
+foo1033: () => {},
+foo1034: () => {},
+foo1035: () => {},
+foo1036: () => {},
+foo1037: () => {},
+foo1038: () => {},
+foo1039: () => {},
+foo1040: () => {},
+foo1041: () => {},
+foo1042: () => {},
+foo1043: () => {},
+foo1044: () => {},
+foo1045: () => {},
+foo1046: () => {},
+foo1047: () => {},
+foo1048: () => {},
+foo1049: () => {},
+foo1050: () => {},
+foo1051: () => {},
+foo1052: () => {},
+foo1053: () => {},
+foo1054: () => {},
+foo1055: () => {},
+foo1056: () => {},
+foo1057: () => {},
+foo1058: () => {},
+foo1059: () => {},
+foo1060: () => {},
+foo1061: () => {},
+foo1062: () => {},
+foo1063: () => {},
+foo1064: () => {},
+foo1065: () => {},
+foo1066: () => {},
+foo1067: () => {},
+foo1068: () => {},
+foo1069: () => {},
+foo1070: () => {},
+foo1071: () => {},
+foo1072: () => {},
+foo1073: () => {},
+foo1074: () => {},
+foo1075: () => {},
+foo1076: () => {},
+foo1077: () => {},
+foo1078: () => {},
+foo1079: () => {},
+foo1080: () => {},
+foo1081: () => {},
+foo1082: () => {},
+foo1083: () => {},
+foo1084: () => {},
+foo1085: () => {},
+foo1086: () => {},
+foo1087: () => {},
+foo1088: () => {},
+foo1089: () => {},
+foo1090: () => {},
+foo1091: () => {},
+foo1092: () => {},
+foo1093: () => {},
+foo1094: () => {},
+foo1095: () => {},
+foo1096: () => {},
+foo1097: () => {},
+foo1098: () => {},
+foo1099: () => {},
+foo1100: () => {},
+foo1101: () => {},
+foo1102: () => {},
+foo1103: () => {},
+foo1104: () => {},
+foo1105: () => {},
+foo1106: () => {},
+foo1107: () => {},
+foo1108: () => {},
+foo1109: () => {},
+foo1110: () => {},
+foo1111: () => {},
+foo1112: () => {},
+foo1113: () => {},
+foo1114: () => {},
+foo1115: () => {},
+foo1116: () => {},
+foo1117: () => {},
+foo1118: () => {},
+foo1119: () => {},
+foo1120: () => {},
+foo1121: () => {},
+foo1122: () => {},
+foo1123: () => {},
+foo1124: () => {},
+foo1125: () => {},
+foo1126: () => {},
+foo1127: () => {},
+foo1128: () => {},
+foo1129: () => {},
+foo1130: () => {},
+foo1131: () => {},
+foo1132: () => {},
+foo1133: () => {},
+foo1134: () => {},
+foo1135: () => {},
+foo1136: () => {},
+foo1137: () => {},
+foo1138: () => {},
+foo1139: () => {},
+foo1140: () => {},
+foo1141: () => {},
+foo1142: () => {},
+foo1143: () => {},
+foo1144: () => {},
+foo1145: () => {},
+foo1146: () => {},
+foo1147: () => {},
+foo1148: () => {},
+foo1149: () => {},
+foo1150: () => {},
+foo1151: () => {},
+foo1152: () => {},
+foo1153: () => {},
+foo1154: () => {},
+foo1155: () => {},
+foo1156: () => {},
+foo1157: () => {},
+foo1158: () => {},
+foo1159: () => {},
+foo1160: () => {},
+foo1161: () => {},
+foo1162: () => {},
+foo1163: () => {},
+foo1164: () => {},
+foo1165: () => {},
+foo1166: () => {},
+foo1167: () => {},
+foo1168: () => {},
+foo1169: () => {},
+foo1170: () => {},
+foo1171: () => {},
+foo1172: () => {},
+foo1173: () => {},
+foo1174: () => {},
+foo1175: () => {},
+foo1176: () => {},
+foo1177: () => {},
+foo1178: () => {},
+foo1179: () => {},
+foo1180: () => {},
+foo1181: () => {},
+foo1182: () => {},
+foo1183: () => {},
+foo1184: () => {},
+foo1185: () => {},
+foo1186: () => {},
+foo1187: () => {},
+foo1188: () => {},
+foo1189: () => {},
+foo1190: () => {},
+foo1191: () => {},
+foo1192: () => {},
+foo1193: () => {},
+foo1194: () => {},
+foo1195: () => {},
+foo1196: () => {},
+foo1197: () => {},
+foo1198: () => {},
+foo1199: () => {},
+foo1200: () => {},
+foo1201: () => {},
+foo1202: () => {},
+foo1203: () => {},
+foo1204: () => {},
+foo1205: () => {},
+foo1206: () => {},
+foo1207: () => {},
+foo1208: () => {},
+foo1209: () => {},
+foo1210: () => {},
+foo1211: () => {},
+foo1212: () => {},
+foo1213: () => {},
+foo1214: () => {},
+foo1215: () => {},
+foo1216: () => {},
+foo1217: () => {},
+foo1218: () => {},
+foo1219: () => {},
+foo1220: () => {},
+foo1221: () => {},
+foo1222: () => {},
+foo1223: () => {},
+foo1224: () => {},
+foo1225: () => {},
+foo1226: () => {},
+foo1227: () => {},
+foo1228: () => {},
+foo1229: () => {},
+foo1230: () => {},
+foo1231: () => {},
+foo1232: () => {},
+foo1233: () => {},
+foo1234: () => {},
+foo1235: () => {},
+foo1236: () => {},
+foo1237: () => {},
+foo1238: () => {},
+foo1239: () => {},
+foo1240: () => {},
+foo1241: () => {},
+foo1242: () => {},
+foo1243: () => {},
+foo1244: () => {},
+foo1245: () => {},
+foo1246: () => {},
+foo1247: () => {},
+foo1248: () => {},
+foo1249: () => {},
+foo1250: () => {},
+foo1251: () => {},
+foo1252: () => {},
+foo1253: () => {},
+foo1254: () => {},
+foo1255: () => {},
+foo1256: () => {},
+foo1257: () => {},
+foo1258: () => {},
+foo1259: () => {},
+foo1260: () => {},
+foo1261: () => {},
+foo1262: () => {},
+foo1263: () => {},
+foo1264: () => {},
+foo1265: () => {},
+foo1266: () => {},
+foo1267: () => {},
+foo1268: () => {},
+foo1269: () => {},
+foo1270: () => {},
+foo1271: () => {},
+foo1272: () => {},
+foo1273: () => {},
+foo1274: () => {},
+foo1275: () => {},
+foo1276: () => {},
+foo1277: () => {},
+foo1278: () => {},
+foo1279: () => {},
+foo1280: () => {},
+foo1281: () => {},
+foo1282: () => {},
+foo1283: () => {},
+foo1284: () => {},
+foo1285: () => {},
+foo1286: () => {},
+foo1287: () => {},
+foo1288: () => {},
+foo1289: () => {},
+foo1290: () => {},
+foo1291: () => {},
+foo1292: () => {},
+foo1293: () => {},
+foo1294: () => {},
+foo1295: () => {},
+foo1296: () => {},
+foo1297: () => {},
+foo1298: () => {},
+foo1299: () => {},
+foo1300: () => {},
+foo1301: () => {},
+foo1302: () => {},
+foo1303: () => {},
+foo1304: () => {},
+foo1305: () => {},
+foo1306: () => {},
+foo1307: () => {},
+foo1308: () => {},
+foo1309: () => {},
+foo1310: () => {},
+foo1311: () => {},
+foo1312: () => {},
+foo1313: () => {},
+foo1314: () => {},
+foo1315: () => {},
+foo1316: () => {},
+foo1317: () => {},
+foo1318: () => {},
+foo1319: () => {},
+foo1320: () => {},
+foo1321: () => {},
+foo1322: () => {},
+foo1323: () => {},
+foo1324: () => {},
+foo1325: () => {},
+foo1326: () => {},
+foo1327: () => {},
+foo1328: () => {},
+foo1329: () => {},
+foo1330: () => {},
+foo1331: () => {},
+foo1332: () => {},
+foo1333: () => {},
+foo1334: () => {},
+foo1335: () => {},
+foo1336: () => {},
+foo1337: () => {},
+foo1338: () => {},
+foo1339: () => {},
+foo1340: () => {},
+foo1341: () => {},
+foo1342: () => {},
+foo1343: () => {},
+foo1344: () => {},
+foo1345: () => {},
+foo1346: () => {},
+foo1347: () => {},
+foo1348: () => {},
+foo1349: () => {},
+foo1350: () => {},
+foo1351: () => {},
+foo1352: () => {},
+foo1353: () => {},
+foo1354: () => {},
+foo1355: () => {},
+foo1356: () => {},
+foo1357: () => {},
+foo1358: () => {},
+foo1359: () => {},
+foo1360: () => {},
+foo1361: () => {},
+foo1362: () => {},
+foo1363: () => {},
+foo1364: () => {},
+foo1365: () => {},
+foo1366: () => {},
+foo1367: () => {},
+foo1368: () => {},
+foo1369: () => {},
+foo1370: () => {},
+foo1371: () => {},
+foo1372: () => {},
+foo1373: () => {},
+foo1374: () => {},
+foo1375: () => {},
+foo1376: () => {},
+foo1377: () => {},
+foo1378: () => {},
+foo1379: () => {},
+foo1380: () => {},
+foo1381: () => {},
+foo1382: () => {},
+foo1383: () => {},
+foo1384: () => {},
+foo1385: () => {},
+foo1386: () => {},
+foo1387: () => {},
+foo1388: () => {},
+foo1389: () => {},
+foo1390: () => {},
+foo1391: () => {},
+foo1392: () => {},
+foo1393: () => {},
+foo1394: () => {},
+foo1395: () => {},
+foo1396: () => {},
+foo1397: () => {},
+foo1398: () => {},
+foo1399: () => {},
+foo1400: () => {},
+foo1401: () => {},
+foo1402: () => {},
+foo1403: () => {},
+foo1404: () => {},
+foo1405: () => {},
+foo1406: () => {},
+foo1407: () => {},
+foo1408: () => {},
+foo1409: () => {},
+foo1410: () => {},
+foo1411: () => {},
+foo1412: () => {},
+foo1413: () => {},
+foo1414: () => {},
+foo1415: () => {},
+foo1416: () => {},
+foo1417: () => {},
+foo1418: () => {},
+foo1419: () => {},
+foo1420: () => {},
+foo1421: () => {},
+foo1422: () => {},
+foo1423: () => {},
+foo1424: () => {},
+foo1425: () => {},
+foo1426: () => {},
+foo1427: () => {},
+foo1428: () => {},
+foo1429: () => {},
+foo1430: () => {},
+foo1431: () => {},
+foo1432: () => {},
+foo1433: () => {},
+foo1434: () => {},
+foo1435: () => {},
+foo1436: () => {},
+foo1437: () => {},
+foo1438: () => {},
+foo1439: () => {},
+foo1440: () => {},
+foo1441: () => {},
+foo1442: () => {},
+foo1443: () => {},
+foo1444: () => {},
+foo1445: () => {},
+foo1446: () => {},
+foo1447: () => {},
+foo1448: () => {},
+foo1449: () => {},
+foo1450: () => {},
+foo1451: () => {},
+foo1452: () => {},
+foo1453: () => {},
+foo1454: () => {},
+foo1455: () => {},
+foo1456: () => {},
+foo1457: () => {},
+foo1458: () => {},
+foo1459: () => {},
+foo1460: () => {},
+foo1461: () => {},
+foo1462: () => {},
+foo1463: () => {},
+foo1464: () => {},
+foo1465: () => {},
+foo1466: () => {},
+foo1467: () => {},
+foo1468: () => {},
+foo1469: () => {},
+foo1470: () => {},
+foo1471: () => {},
+foo1472: () => {},
+foo1473: () => {},
+foo1474: () => {},
+foo1475: () => {},
+foo1476: () => {},
+foo1477: () => {},
+foo1478: () => {},
+foo1479: () => {},
+foo1480: () => {},
+foo1481: () => {},
+foo1482: () => {},
+foo1483: () => {},
+foo1484: () => {},
+foo1485: () => {},
+foo1486: () => {},
+foo1487: () => {},
+foo1488: () => {},
+foo1489: () => {},
+foo1490: () => {},
+foo1491: () => {},
+foo1492: () => {},
+foo1493: () => {},
+foo1494: () => {},
+foo1495: () => {},
+foo1496: () => {},
+foo1497: () => {},
+foo1498: () => {},
+foo1499: () => {},
+foo1500: () => {},
+foo1501: () => {},
+foo1502: () => {},
+foo1503: () => {},
+foo1504: () => {},
+foo1505: () => {},
+foo1506: () => {},
+foo1507: () => {},
+foo1508: () => {},
+foo1509: () => {},
+foo1510: () => {},
+foo1511: () => {},
+foo1512: () => {},
+foo1513: () => {},
+foo1514: () => {},
+foo1515: () => {},
+foo1516: () => {},
+foo1517: () => {},
+foo1518: () => {},
+foo1519: () => {},
+foo1520: () => {},
+foo1521: () => {},
+foo1522: () => {},
+foo1523: () => {},
+foo1524: () => {},
+foo1525: () => {},
+foo1526: () => {},
+foo1527: () => {},
+foo1528: () => {},
+foo1529: () => {},
+foo1530: () => {},
+foo1531: () => {},
+foo1532: () => {},
+foo1533: () => {},
+foo1534: () => {},
+foo1535: () => {},
+foo1536: () => {},
+foo1537: () => {},
+foo1538: () => {},
+foo1539: () => {},
+foo1540: () => {},
+foo1541: () => {},
+foo1542: () => {},
+foo1543: () => {},
+foo1544: () => {},
+foo1545: () => {},
+foo1546: () => {},
+foo1547: () => {},
+foo1548: () => {},
+foo1549: () => {},
+foo1550: () => {},
+foo1551: () => {},
+foo1552: () => {},
+foo1553: () => {},
+foo1554: () => {},
+foo1555: () => {},
+foo1556: () => {},
+foo1557: () => {},
+foo1558: () => {},
+foo1559: () => {},
+foo1560: () => {},
+foo1561: () => {},
+foo1562: () => {},
+foo1563: () => {},
+foo1564: () => {},
+foo1565: () => {},
+foo1566: () => {},
+foo1567: () => {},
+foo1568: () => {},
+foo1569: () => {},
+foo1570: () => {},
+foo1571: () => {},
+foo1572: () => {},
+foo1573: () => {},
+foo1574: () => {},
+foo1575: () => {},
+foo1576: () => {},
+foo1577: () => {},
+foo1578: () => {},
+foo1579: () => {},
+foo1580: () => {},
+foo1581: () => {},
+foo1582: () => {},
+foo1583: () => {},
+foo1584: () => {},
+foo1585: () => {},
+foo1586: () => {},
+foo1587: () => {},
+foo1588: () => {},
+foo1589: () => {},
+foo1590: () => {},
+foo1591: () => {},
+foo1592: () => {},
+foo1593: () => {},
+foo1594: () => {},
+foo1595: () => {},
+foo1596: () => {},
+foo1597: () => {},
+foo1598: () => {},
+foo1599: () => {},
+foo1600: () => {},
+foo1601: () => {},
+foo1602: () => {},
+foo1603: () => {},
+foo1604: () => {},
+foo1605: () => {},
+foo1606: () => {},
+foo1607: () => {},
+foo1608: () => {},
+foo1609: () => {},
+foo1610: () => {},
+foo1611: () => {},
+foo1612: () => {},
+foo1613: () => {},
+foo1614: () => {},
+foo1615: () => {},
+foo1616: () => {},
+foo1617: () => {},
+foo1618: () => {},
+foo1619: () => {},
+foo1620: () => {},
+foo1621: () => {},
+foo1622: () => {},
+foo1623: () => {},
+foo1624: () => {},
+foo1625: () => {},
+foo1626: () => {},
+foo1627: () => {},
+foo1628: () => {},
+foo1629: () => {},
+foo1630: () => {},
+foo1631: () => {},
+foo1632: () => {},
+foo1633: () => {},
+foo1634: () => {},
+foo1635: () => {},
+foo1636: () => {},
+foo1637: () => {},
+foo1638: () => {},
+foo1639: () => {},
+foo1640: () => {},
+foo1641: () => {},
+foo1642: () => {},
+foo1643: () => {},
+foo1644: () => {},
+foo1645: () => {},
+foo1646: () => {},
+foo1647: () => {},
+foo1648: () => {},
+foo1649: () => {},
+foo1650: () => {},
+foo1651: () => {},
+foo1652: () => {},
+foo1653: () => {},
+foo1654: () => {},
+foo1655: () => {},
+foo1656: () => {},
+foo1657: () => {},
+foo1658: () => {},
+foo1659: () => {},
+foo1660: () => {},
+foo1661: () => {},
+foo1662: () => {},
+foo1663: () => {},
+foo1664: () => {},
+foo1665: () => {},
+foo1666: () => {},
+foo1667: () => {},
+foo1668: () => {},
+foo1669: () => {},
+foo1670: () => {},
+foo1671: () => {},
+foo1672: () => {},
+foo1673: () => {},
+foo1674: () => {},
+foo1675: () => {},
+foo1676: () => {},
+foo1677: () => {},
+foo1678: () => {},
+foo1679: () => {},
+foo1680: () => {},
+foo1681: () => {},
+foo1682: () => {},
+foo1683: () => {},
+foo1684: () => {},
+foo1685: () => {},
+foo1686: () => {},
+foo1687: () => {},
+foo1688: () => {},
+foo1689: () => {},
+foo1690: () => {},
+foo1691: () => {},
+foo1692: () => {},
+foo1693: () => {},
+foo1694: () => {},
+foo1695: () => {},
+foo1696: () => {},
+foo1697: () => {},
+foo1698: () => {},
+foo1699: () => {},
+foo1700: () => {},
+foo1701: () => {},
+foo1702: () => {},
+foo1703: () => {},
+foo1704: () => {},
+foo1705: () => {},
+foo1706: () => {},
+foo1707: () => {},
+foo1708: () => {},
+foo1709: () => {},
+foo1710: () => {},
+foo1711: () => {},
+foo1712: () => {},
+foo1713: () => {},
+foo1714: () => {},
+foo1715: () => {},
+foo1716: () => {},
+foo1717: () => {},
+foo1718: () => {},
+foo1719: () => {},
+foo1720: () => {},
+foo1721: () => {},
+foo1722: () => {},
+foo1723: () => {},
+foo1724: () => {},
+foo1725: () => {},
+foo1726: () => {},
+foo1727: () => {},
+foo1728: () => {},
+foo1729: () => {},
+foo1730: () => {},
+foo1731: () => {},
+foo1732: () => {},
+foo1733: () => {},
+foo1734: () => {},
+foo1735: () => {},
+foo1736: () => {},
+foo1737: () => {},
+foo1738: () => {},
+foo1739: () => {},
+foo1740: () => {},
+foo1741: () => {},
+foo1742: () => {},
+foo1743: () => {},
+foo1744: () => {},
+foo1745: () => {},
+foo1746: () => {},
+foo1747: () => {},
+foo1748: () => {},
+foo1749: () => {},
+foo1750: () => {},
+foo1751: () => {},
+foo1752: () => {},
+foo1753: () => {},
+foo1754: () => {},
+foo1755: () => {},
+foo1756: () => {},
+foo1757: () => {},
+foo1758: () => {},
+foo1759: () => {},
+foo1760: () => {},
+foo1761: () => {},
+foo1762: () => {},
+foo1763: () => {},
+foo1764: () => {},
+foo1765: () => {},
+foo1766: () => {},
+foo1767: () => {},
+foo1768: () => {},
+foo1769: () => {},
+foo1770: () => {},
+foo1771: () => {},
+foo1772: () => {},
+foo1773: () => {},
+foo1774: () => {},
+foo1775: () => {},
+foo1776: () => {},
+foo1777: () => {},
+foo1778: () => {},
+foo1779: () => {},
+foo1780: () => {},
+foo1781: () => {},
+foo1782: () => {},
+foo1783: () => {},
+foo1784: () => {},
+foo1785: () => {},
+foo1786: () => {},
+foo1787: () => {},
+foo1788: () => {},
+foo1789: () => {},
+foo1790: () => {},
+foo1791: () => {},
+foo1792: () => {},
+foo1793: () => {},
+foo1794: () => {},
+foo1795: () => {},
+foo1796: () => {},
+foo1797: () => {},
+foo1798: () => {},
+foo1799: () => {},
+foo1800: () => {},
+foo1801: () => {},
+foo1802: () => {},
+foo1803: () => {},
+foo1804: () => {},
+foo1805: () => {},
+foo1806: () => {},
+foo1807: () => {},
+foo1808: () => {},
+foo1809: () => {},
+foo1810: () => {},
+foo1811: () => {},
+foo1812: () => {},
+foo1813: () => {},
+foo1814: () => {},
+foo1815: () => {},
+foo1816: () => {},
+foo1817: () => {},
+foo1818: () => {},
+foo1819: () => {},
+foo1820: () => {},
+foo1821: () => {},
+foo1822: () => {},
+foo1823: () => {},
+foo1824: () => {},
+foo1825: () => {},
+foo1826: () => {},
+foo1827: () => {},
+foo1828: () => {},
+foo1829: () => {},
+foo1830: () => {},
+foo1831: () => {},
+foo1832: () => {},
+foo1833: () => {},
+foo1834: () => {},
+foo1835: () => {},
+foo1836: () => {},
+foo1837: () => {},
+foo1838: () => {},
+foo1839: () => {},
+foo1840: () => {},
+foo1841: () => {},
+foo1842: () => {},
+foo1843: () => {},
+foo1844: () => {},
+foo1845: () => {},
+foo1846: () => {},
+foo1847: () => {},
+foo1848: () => {},
+foo1849: () => {},
+foo1850: () => {},
+foo1851: () => {},
+foo1852: () => {},
+foo1853: () => {},
+foo1854: () => {},
+foo1855: () => {},
+foo1856: () => {},
+foo1857: () => {},
+foo1858: () => {},
+foo1859: () => {},
+foo1860: () => {},
+foo1861: () => {},
+foo1862: () => {},
+foo1863: () => {},
+foo1864: () => {},
+foo1865: () => {},
+foo1866: () => {},
+foo1867: () => {},
+foo1868: () => {},
+foo1869: () => {},
+foo1870: () => {},
+foo1871: () => {},
+foo1872: () => {},
+foo1873: () => {},
+foo1874: () => {},
+foo1875: () => {},
+foo1876: () => {},
+foo1877: () => {},
+foo1878: () => {},
+foo1879: () => {},
+foo1880: () => {},
+foo1881: () => {},
+foo1882: () => {},
+foo1883: () => {},
+foo1884: () => {},
+foo1885: () => {},
+foo1886: () => {},
+foo1887: () => {},
+foo1888: () => {},
+foo1889: () => {},
+foo1890: () => {},
+foo1891: () => {},
+foo1892: () => {},
+foo1893: () => {},
+foo1894: () => {},
+foo1895: () => {},
+foo1896: () => {},
+foo1897: () => {},
+foo1898: () => {},
+foo1899: () => {},
+foo1900: () => {},
+foo1901: () => {},
+foo1902: () => {},
+foo1903: () => {},
+foo1904: () => {},
+foo1905: () => {},
+foo1906: () => {},
+foo1907: () => {},
+foo1908: () => {},
+foo1909: () => {},
+foo1910: () => {},
+foo1911: () => {},
+foo1912: () => {},
+foo1913: () => {},
+foo1914: () => {},
+foo1915: () => {},
+foo1916: () => {},
+foo1917: () => {},
+foo1918: () => {},
+foo1919: () => {},
+foo1920: () => {},
+foo1921: () => {},
+foo1922: () => {},
+foo1923: () => {},
+foo1924: () => {},
+foo1925: () => {},
+foo1926: () => {},
+foo1927: () => {},
+foo1928: () => {},
+foo1929: () => {},
+foo1930: () => {},
+foo1931: () => {},
+foo1932: () => {},
+foo1933: () => {},
+foo1934: () => {},
+foo1935: () => {},
+foo1936: () => {},
+foo1937: () => {},
+foo1938: () => {},
+foo1939: () => {},
+foo1940: () => {},
+foo1941: () => {},
+foo1942: () => {},
+foo1943: () => {},
+foo1944: () => {},
+foo1945: () => {},
+foo1946: () => {},
+foo1947: () => {},
+foo1948: () => {},
+foo1949: () => {},
+foo1950: () => {},
+foo1951: () => {},
+foo1952: () => {},
+foo1953: () => {},
+foo1954: () => {},
+foo1955: () => {},
+foo1956: () => {},
+foo1957: () => {},
+foo1958: () => {},
+foo1959: () => {},
+foo1960: () => {},
+foo1961: () => {},
+foo1962: () => {},
+foo1963: () => {},
+foo1964: () => {},
+foo1965: () => {},
+foo1966: () => {},
+foo1967: () => {},
+foo1968: () => {},
+foo1969: () => {},
+foo1970: () => {},
+foo1971: () => {},
+foo1972: () => {},
+foo1973: () => {},
+foo1974: () => {},
+foo1975: () => {},
+foo1976: () => {},
+foo1977: () => {},
+foo1978: () => {},
+foo1979: () => {},
+foo1980: () => {},
+foo1981: () => {},
+foo1982: () => {},
+foo1983: () => {},
+foo1984: () => {},
+foo1985: () => {},
+foo1986: () => {},
+foo1987: () => {},
+foo1988: () => {},
+foo1989: () => {},
+foo1990: () => {},
+foo1991: () => {},
+foo1992: () => {},
+foo1993: () => {},
+foo1994: () => {},
+foo1995: () => {},
+foo1996: () => {},
+foo1997: () => {},
+foo1998: () => {},
+foo1999: () => {},
+foo2000: () => {},
+foo2001: () => {},
+foo2002: () => {},
+foo2003: () => {},
+foo2004: () => {},
+foo2005: () => {},
+foo2006: () => {},
+foo2007: () => {},
+foo2008: () => {},
+foo2009: () => {},
+foo2010: () => {},
+foo2011: () => {},
+foo2012: () => {},
+foo2013: () => {},
+foo2014: () => {},
+foo2015: () => {},
+foo2016: () => {},
+foo2017: () => {},
+foo2018: () => {},
+foo2019: () => {},
+foo2020: () => {},
+foo2021: () => {},
+foo2022: () => {},
+foo2023: () => {},
+foo2024: () => {},
+foo2025: () => {},
+foo2026: () => {},
+foo2027: () => {},
+foo2028: () => {},
+foo2029: () => {},
+foo2030: () => {},
+foo2031: () => {},
+foo2032: () => {},
+foo2033: () => {},
+foo2034: () => {},
+foo2035: () => {},
+foo2036: () => {},
+foo2037: () => {},
+foo2038: () => {},
+foo2039: () => {},
+foo2040: () => {},
+foo2041: () => {},
+foo2042: () => {},
+foo2043: () => {},
+foo2044: () => {},
+foo2045: () => {},
+foo2046: () => {},
+foo2047: () => {},
+foo2048: () => {},
+foo2049: () => {},
+foo2050: () => {},
+foo2051: () => {},
+foo2052: () => {},
+foo2053: () => {},
+foo2054: () => {},
+foo2055: () => {},
+foo2056: () => {},
+foo2057: () => {},
+foo2058: () => {},
+foo2059: () => {},
+foo2060: () => {},
+foo2061: () => {},
+foo2062: () => {},
+foo2063: () => {},
+foo2064: () => {},
+foo2065: () => {},
+foo2066: () => {},
+foo2067: () => {},
+foo2068: () => {},
+foo2069: () => {},
+foo2070: () => {},
+foo2071: () => {},
+foo2072: () => {},
+foo2073: () => {},
+foo2074: () => {},
+foo2075: () => {},
+foo2076: () => {},
+foo2077: () => {},
+foo2078: () => {},
+foo2079: () => {},
+foo2080: () => {},
+foo2081: () => {},
+foo2082: () => {},
+foo2083: () => {},
+foo2084: () => {},
+foo2085: () => {},
+foo2086: () => {},
+foo2087: () => {},
+foo2088: () => {},
+foo2089: () => {},
+foo2090: () => {},
+foo2091: () => {},
+foo2092: () => {},
+foo2093: () => {},
+foo2094: () => {},
+foo2095: () => {},
+foo2096: () => {},
+foo2097: () => {},
+foo2098: () => {},
+foo2099: () => {},
+foo2100: () => {},
+foo2101: () => {},
+foo2102: () => {},
+foo2103: () => {},
+foo2104: () => {},
+foo2105: () => {},
+foo2106: () => {},
+foo2107: () => {},
+foo2108: () => {},
+foo2109: () => {},
+foo2110: () => {},
+foo2111: () => {},
+foo2112: () => {},
+foo2113: () => {},
+foo2114: () => {},
+foo2115: () => {},
+foo2116: () => {},
+foo2117: () => {},
+foo2118: () => {},
+foo2119: () => {},
+foo2120: () => {},
+foo2121: () => {},
+foo2122: () => {},
+foo2123: () => {},
+foo2124: () => {},
+foo2125: () => {},
+foo2126: () => {},
+foo2127: () => {},
+foo2128: () => {},
+foo2129: () => {},
+foo2130: () => {},
+foo2131: () => {},
+foo2132: () => {},
+foo2133: () => {},
+foo2134: () => {},
+foo2135: () => {},
+foo2136: () => {},
+foo2137: () => {},
+foo2138: () => {},
+foo2139: () => {},
+foo2140: () => {},
+foo2141: () => {},
+foo2142: () => {},
+foo2143: () => {},
+foo2144: () => {},
+foo2145: () => {},
+foo2146: () => {},
+foo2147: () => {},
+foo2148: () => {},
+foo2149: () => {},
+foo2150: () => {},
+foo2151: () => {},
+foo2152: () => {},
+foo2153: () => {},
+foo2154: () => {},
+foo2155: () => {},
+foo2156: () => {},
+foo2157: () => {},
+foo2158: () => {},
+foo2159: () => {},
+foo2160: () => {},
+foo2161: () => {},
+foo2162: () => {},
+foo2163: () => {},
+foo2164: () => {},
+foo2165: () => {},
+foo2166: () => {},
+foo2167: () => {},
+foo2168: () => {},
+foo2169: () => {},
+foo2170: () => {},
+foo2171: () => {},
+foo2172: () => {},
+foo2173: () => {},
+foo2174: () => {},
+foo2175: () => {},
+foo2176: () => {},
+foo2177: () => {},
+foo2178: () => {},
+foo2179: () => {},
+foo2180: () => {},
+foo2181: () => {},
+foo2182: () => {},
+foo2183: () => {},
+foo2184: () => {},
+foo2185: () => {},
+foo2186: () => {},
+foo2187: () => {},
+foo2188: () => {},
+foo2189: () => {},
+foo2190: () => {},
+foo2191: () => {},
+foo2192: () => {},
+foo2193: () => {},
+foo2194: () => {},
+foo2195: () => {},
+foo2196: () => {},
+foo2197: () => {},
+foo2198: () => {},
+foo2199: () => {},
+foo2200: () => {},
+foo2201: () => {},
+foo2202: () => {},
+foo2203: () => {},
+foo2204: () => {},
+foo2205: () => {},
+foo2206: () => {},
+foo2207: () => {},
+foo2208: () => {},
+foo2209: () => {},
+foo2210: () => {},
+foo2211: () => {},
+foo2212: () => {},
+foo2213: () => {},
+foo2214: () => {},
+foo2215: () => {},
+foo2216: () => {},
+foo2217: () => {},
+foo2218: () => {},
+foo2219: () => {},
+foo2220: () => {},
+foo2221: () => {},
+foo2222: () => {},
+foo2223: () => {},
+foo2224: () => {},
+foo2225: () => {},
+foo2226: () => {},
+foo2227: () => {},
+foo2228: () => {},
+foo2229: () => {},
+foo2230: () => {},
+foo2231: () => {},
+foo2232: () => {},
+foo2233: () => {},
+foo2234: () => {},
+foo2235: () => {},
+foo2236: () => {},
+foo2237: () => {},
+foo2238: () => {},
+foo2239: () => {},
+foo2240: () => {},
+foo2241: () => {},
+foo2242: () => {},
+foo2243: () => {},
+foo2244: () => {},
+foo2245: () => {},
+foo2246: () => {},
+foo2247: () => {},
+foo2248: () => {},
+foo2249: () => {},
+foo2250: () => {},
+foo2251: () => {},
+foo2252: () => {},
+foo2253: () => {},
+foo2254: () => {},
+foo2255: () => {},
+foo2256: () => {},
+foo2257: () => {},
+foo2258: () => {},
+foo2259: () => {},
+foo2260: () => {},
+foo2261: () => {},
+foo2262: () => {},
+foo2263: () => {},
+foo2264: () => {},
+foo2265: () => {},
+foo2266: () => {},
+foo2267: () => {},
+foo2268: () => {},
+foo2269: () => {},
+foo2270: () => {},
+foo2271: () => {},
+foo2272: () => {},
+foo2273: () => {},
+foo2274: () => {},
+foo2275: () => {},
+foo2276: () => {},
+foo2277: () => {},
+foo2278: () => {},
+foo2279: () => {},
+foo2280: () => {},
+foo2281: () => {},
+foo2282: () => {},
+foo2283: () => {},
+foo2284: () => {},
+foo2285: () => {},
+foo2286: () => {},
+foo2287: () => {},
+foo2288: () => {},
+foo2289: () => {},
+foo2290: () => {},
+foo2291: () => {},
+foo2292: () => {},
+foo2293: () => {},
+foo2294: () => {},
+foo2295: () => {},
+foo2296: () => {},
+foo2297: () => {},
+foo2298: () => {},
+foo2299: () => {},
+foo2300: () => {},
+foo2301: () => {},
+foo2302: () => {},
+foo2303: () => {},
+foo2304: () => {},
+foo2305: () => {},
+foo2306: () => {},
+foo2307: () => {},
+foo2308: () => {},
+foo2309: () => {},
+foo2310: () => {},
+foo2311: () => {},
+foo2312: () => {},
+foo2313: () => {},
+foo2314: () => {},
+foo2315: () => {},
+foo2316: () => {},
+foo2317: () => {},
+foo2318: () => {},
+foo2319: () => {},
+foo2320: () => {},
+foo2321: () => {},
+foo2322: () => {},
+foo2323: () => {},
+foo2324: () => {},
+foo2325: () => {},
+foo2326: () => {},
+foo2327: () => {},
+foo2328: () => {},
+foo2329: () => {},
+foo2330: () => {},
+foo2331: () => {},
+foo2332: () => {},
+foo2333: () => {},
+foo2334: () => {},
+foo2335: () => {},
+foo2336: () => {},
+foo2337: () => {},
+foo2338: () => {},
+foo2339: () => {},
+foo2340: () => {},
+foo2341: () => {},
+foo2342: () => {},
+foo2343: () => {},
+foo2344: () => {},
+foo2345: () => {},
+foo2346: () => {},
+foo2347: () => {},
+foo2348: () => {},
+foo2349: () => {},
+foo2350: () => {},
+foo2351: () => {},
+foo2352: () => {},
+foo2353: () => {},
+foo2354: () => {},
+foo2355: () => {},
+foo2356: () => {},
+foo2357: () => {},
+foo2358: () => {},
+foo2359: () => {},
+foo2360: () => {},
+foo2361: () => {},
+foo2362: () => {},
+foo2363: () => {},
+foo2364: () => {},
+foo2365: () => {},
+foo2366: () => {},
+foo2367: () => {},
+foo2368: () => {},
+foo2369: () => {},
+foo2370: () => {},
+foo2371: () => {},
+foo2372: () => {},
+foo2373: () => {},
+foo2374: () => {},
+foo2375: () => {},
+foo2376: () => {},
+foo2377: () => {},
+foo2378: () => {},
+foo2379: () => {},
+foo2380: () => {},
+foo2381: () => {},
+foo2382: () => {},
+foo2383: () => {},
+foo2384: () => {},
+foo2385: () => {},
+foo2386: () => {},
+foo2387: () => {},
+foo2388: () => {},
+foo2389: () => {},
+foo2390: () => {},
+foo2391: () => {},
+foo2392: () => {},
+foo2393: () => {},
+foo2394: () => {},
+foo2395: () => {},
+foo2396: () => {},
+foo2397: () => {},
+foo2398: () => {},
+foo2399: () => {},
+foo2400: () => {},
+foo2401: () => {},
+foo2402: () => {},
+foo2403: () => {},
+foo2404: () => {},
+foo2405: () => {},
+foo2406: () => {},
+foo2407: () => {},
+foo2408: () => {},
+foo2409: () => {},
+foo2410: () => {},
+foo2411: () => {},
+foo2412: () => {},
+foo2413: () => {},
+foo2414: () => {},
+foo2415: () => {},
+foo2416: () => {},
+foo2417: () => {},
+foo2418: () => {},
+foo2419: () => {},
+foo2420: () => {},
+foo2421: () => {},
+foo2422: () => {},
+foo2423: () => {},
+foo2424: () => {},
+foo2425: () => {},
+foo2426: () => {},
+foo2427: () => {},
+foo2428: () => {},
+foo2429: () => {},
+foo2430: () => {},
+foo2431: () => {},
+foo2432: () => {},
+foo2433: () => {},
+foo2434: () => {},
+foo2435: () => {},
+foo2436: () => {},
+foo2437: () => {},
+foo2438: () => {},
+foo2439: () => {},
+foo2440: () => {},
+foo2441: () => {},
+foo2442: () => {},
+foo2443: () => {},
+foo2444: () => {},
+foo2445: () => {},
+foo2446: () => {},
+foo2447: () => {},
+foo2448: () => {},
+foo2449: () => {},
+foo2450: () => {},
+foo2451: () => {},
+foo2452: () => {},
+foo2453: () => {},
+foo2454: () => {},
+foo2455: () => {},
+foo2456: () => {},
+foo2457: () => {},
+foo2458: () => {},
+foo2459: () => {},
+foo2460: () => {},
+foo2461: () => {},
+foo2462: () => {},
+foo2463: () => {},
+foo2464: () => {},
+foo2465: () => {},
+foo2466: () => {},
+foo2467: () => {},
+foo2468: () => {},
+foo2469: () => {},
+foo2470: () => {},
+foo2471: () => {},
+foo2472: () => {},
+foo2473: () => {},
+foo2474: () => {},
+foo2475: () => {},
+foo2476: () => {},
+foo2477: () => {},
+foo2478: () => {},
+foo2479: () => {},
+foo2480: () => {},
+foo2481: () => {},
+foo2482: () => {},
+foo2483: () => {},
+foo2484: () => {},
+foo2485: () => {},
+foo2486: () => {},
+foo2487: () => {},
+foo2488: () => {},
+foo2489: () => {},
+foo2490: () => {},
+foo2491: () => {},
+foo2492: () => {},
+foo2493: () => {},
+foo2494: () => {},
+foo2495: () => {},
+foo2496: () => {},
+foo2497: () => {},
+foo2498: () => {},
+foo2499: () => {},
+foo2500: () => {},
+foo2501: () => {},
+foo2502: () => {},
+foo2503: () => {},
+foo2504: () => {},
+foo2505: () => {},
+foo2506: () => {},
+foo2507: () => {},
+foo2508: () => {},
+foo2509: () => {},
+foo2510: () => {},
+foo2511: () => {},
+foo2512: () => {},
+foo2513: () => {},
+foo2514: () => {},
+foo2515: () => {},
+foo2516: () => {},
+foo2517: () => {},
+foo2518: () => {},
+foo2519: () => {},
+foo2520: () => {},
+foo2521: () => {},
+foo2522: () => {},
+foo2523: () => {},
+foo2524: () => {},
+foo2525: () => {},
+foo2526: () => {},
+foo2527: () => {},
+foo2528: () => {},
+foo2529: () => {},
+foo2530: () => {},
+foo2531: () => {},
+foo2532: () => {},
+foo2533: () => {},
+foo2534: () => {},
+foo2535: () => {},
+foo2536: () => {},
+foo2537: () => {},
+foo2538: () => {},
+foo2539: () => {},
+foo2540: () => {},
+foo2541: () => {},
+foo2542: () => {},
+foo2543: () => {},
+foo2544: () => {},
+foo2545: () => {},
+foo2546: () => {},
+foo2547: () => {},
+foo2548: () => {},
+foo2549: () => {},
+foo2550: () => {},
+foo2551: () => {},
+foo2552: () => {},
+foo2553: () => {},
+foo2554: () => {},
+foo2555: () => {},
+foo2556: () => {},
+foo2557: () => {},
+foo2558: () => {},
+foo2559: () => {},
+foo2560: () => {},
+foo2561: () => {},
+foo2562: () => {},
+foo2563: () => {},
+foo2564: () => {},
+foo2565: () => {},
+foo2566: () => {},
+foo2567: () => {},
+foo2568: () => {},
+foo2569: () => {},
+foo2570: () => {},
+foo2571: () => {},
+foo2572: () => {},
+foo2573: () => {},
+foo2574: () => {},
+foo2575: () => {},
+foo2576: () => {},
+foo2577: () => {},
+foo2578: () => {},
+foo2579: () => {},
+foo2580: () => {},
+foo2581: () => {},
+foo2582: () => {},
+foo2583: () => {},
+foo2584: () => {},
+foo2585: () => {},
+foo2586: () => {},
+foo2587: () => {},
+foo2588: () => {},
+foo2589: () => {},
+foo2590: () => {},
+foo2591: () => {},
+foo2592: () => {},
+foo2593: () => {},
+foo2594: () => {},
+foo2595: () => {},
+foo2596: () => {},
+foo2597: () => {},
+foo2598: () => {},
+foo2599: () => {},
+foo2600: () => {},
+foo2601: () => {},
+foo2602: () => {},
+foo2603: () => {},
+foo2604: () => {},
+foo2605: () => {},
+foo2606: () => {},
+foo2607: () => {},
+foo2608: () => {},
+foo2609: () => {},
+foo2610: () => {},
+foo2611: () => {},
+foo2612: () => {},
+foo2613: () => {},
+foo2614: () => {},
+foo2615: () => {},
+foo2616: () => {},
+foo2617: () => {},
+foo2618: () => {},
+foo2619: () => {},
+foo2620: () => {},
+foo2621: () => {},
+foo2622: () => {},
+foo2623: () => {},
+foo2624: () => {},
+foo2625: () => {},
+foo2626: () => {},
+foo2627: () => {},
+foo2628: () => {},
+foo2629: () => {},
+foo2630: () => {},
+foo2631: () => {},
+foo2632: () => {},
+foo2633: () => {},
+foo2634: () => {},
+foo2635: () => {},
+foo2636: () => {},
+foo2637: () => {},
+foo2638: () => {},
+foo2639: () => {},
+foo2640: () => {},
+foo2641: () => {},
+foo2642: () => {},
+foo2643: () => {},
+foo2644: () => {},
+foo2645: () => {},
+foo2646: () => {},
+foo2647: () => {},
+foo2648: () => {},
+foo2649: () => {},
+foo2650: () => {},
+foo2651: () => {},
+foo2652: () => {},
+foo2653: () => {},
+foo2654: () => {},
+foo2655: () => {},
+foo2656: () => {},
+foo2657: () => {},
+foo2658: () => {},
+foo2659: () => {},
+foo2660: () => {},
+foo2661: () => {},
+foo2662: () => {},
+foo2663: () => {},
+foo2664: () => {},
+foo2665: () => {},
+foo2666: () => {},
+foo2667: () => {},
+foo2668: () => {},
+foo2669: () => {},
+foo2670: () => {},
+foo2671: () => {},
+foo2672: () => {},
+foo2673: () => {},
+foo2674: () => {},
+foo2675: () => {},
+foo2676: () => {},
+foo2677: () => {},
+foo2678: () => {},
+foo2679: () => {},
+foo2680: () => {},
+foo2681: () => {},
+foo2682: () => {},
+foo2683: () => {},
+foo2684: () => {},
+foo2685: () => {},
+foo2686: () => {},
+foo2687: () => {},
+foo2688: () => {},
+foo2689: () => {},
+foo2690: () => {},
+foo2691: () => {},
+foo2692: () => {},
+foo2693: () => {},
+foo2694: () => {},
+foo2695: () => {},
+foo2696: () => {},
+foo2697: () => {},
+foo2698: () => {},
+foo2699: () => {},
+foo2700: () => {},
+foo2701: () => {},
+foo2702: () => {},
+foo2703: () => {},
+foo2704: () => {},
+foo2705: () => {},
+foo2706: () => {},
+foo2707: () => {},
+foo2708: () => {},
+foo2709: () => {},
+foo2710: () => {},
+foo2711: () => {},
+foo2712: () => {},
+foo2713: () => {},
+foo2714: () => {},
+foo2715: () => {},
+foo2716: () => {},
+foo2717: () => {},
+foo2718: () => {},
+foo2719: () => {},
+foo2720: () => {},
+foo2721: () => {},
+foo2722: () => {},
+foo2723: () => {},
+foo2724: () => {},
+foo2725: () => {},
+foo2726: () => {},
+foo2727: () => {},
+foo2728: () => {},
+foo2729: () => {},
+foo2730: () => {},
+foo2731: () => {},
+foo2732: () => {},
+foo2733: () => {},
+foo2734: () => {},
+foo2735: () => {},
+foo2736: () => {},
+foo2737: () => {},
+foo2738: () => {},
+foo2739: () => {},
+foo2740: () => {},
+foo2741: () => {},
+foo2742: () => {},
+foo2743: () => {},
+foo2744: () => {},
+foo2745: () => {},
+foo2746: () => {},
+foo2747: () => {},
+foo2748: () => {},
+foo2749: () => {},
+foo2750: () => {},
+foo2751: () => {},
+foo2752: () => {},
+foo2753: () => {},
+foo2754: () => {},
+foo2755: () => {},
+foo2756: () => {},
+foo2757: () => {},
+foo2758: () => {},
+foo2759: () => {},
+foo2760: () => {},
+foo2761: () => {},
+foo2762: () => {},
+foo2763: () => {},
+foo2764: () => {},
+foo2765: () => {},
+foo2766: () => {},
+foo2767: () => {},
+foo2768: () => {},
+foo2769: () => {},
+foo2770: () => {},
+foo2771: () => {},
+foo2772: () => {},
+foo2773: () => {},
+foo2774: () => {},
+foo2775: () => {},
+foo2776: () => {},
+foo2777: () => {},
+foo2778: () => {},
+foo2779: () => {},
+foo2780: () => {},
+foo2781: () => {},
+foo2782: () => {},
+foo2783: () => {},
+foo2784: () => {},
+foo2785: () => {},
+foo2786: () => {},
+foo2787: () => {},
+foo2788: () => {},
+foo2789: () => {},
+foo2790: () => {},
+foo2791: () => {},
+foo2792: () => {},
+foo2793: () => {},
+foo2794: () => {},
+foo2795: () => {},
+foo2796: () => {},
+foo2797: () => {},
+foo2798: () => {},
+foo2799: () => {},
+foo2800: () => {},
+foo2801: () => {},
+foo2802: () => {},
+foo2803: () => {},
+foo2804: () => {},
+foo2805: () => {},
+foo2806: () => {},
+foo2807: () => {},
+foo2808: () => {},
+foo2809: () => {},
+foo2810: () => {},
+foo2811: () => {},
+foo2812: () => {},
+foo2813: () => {},
+foo2814: () => {},
+foo2815: () => {},
+foo2816: () => {},
+foo2817: () => {},
+foo2818: () => {},
+foo2819: () => {},
+foo2820: () => {},
+foo2821: () => {},
+foo2822: () => {},
+foo2823: () => {},
+foo2824: () => {},
+foo2825: () => {},
+foo2826: () => {},
+foo2827: () => {},
+foo2828: () => {},
+foo2829: () => {},
+foo2830: () => {},
+foo2831: () => {},
+foo2832: () => {},
+foo2833: () => {},
+foo2834: () => {},
+foo2835: () => {},
+foo2836: () => {},
+foo2837: () => {},
+foo2838: () => {},
+foo2839: () => {},
+foo2840: () => {},
+foo2841: () => {},
+foo2842: () => {},
+foo2843: () => {},
+foo2844: () => {},
+foo2845: () => {},
+foo2846: () => {},
+foo2847: () => {},
+foo2848: () => {},
+foo2849: () => {},
+foo2850: () => {},
+foo2851: () => {},
+foo2852: () => {},
+foo2853: () => {},
+foo2854: () => {},
+foo2855: () => {},
+foo2856: () => {},
+foo2857: () => {},
+foo2858: () => {},
+foo2859: () => {},
+foo2860: () => {},
+foo2861: () => {},
+foo2862: () => {},
+foo2863: () => {},
+foo2864: () => {},
+foo2865: () => {},
+foo2866: () => {},
+foo2867: () => {},
+foo2868: () => {},
+foo2869: () => {},
+foo2870: () => {},
+foo2871: () => {},
+foo2872: () => {},
+foo2873: () => {},
+foo2874: () => {},
+foo2875: () => {},
+foo2876: () => {},
+foo2877: () => {},
+foo2878: () => {},
+foo2879: () => {},
+foo2880: () => {},
+foo2881: () => {},
+foo2882: () => {},
+foo2883: () => {},
+foo2884: () => {},
+foo2885: () => {},
+foo2886: () => {},
+foo2887: () => {},
+foo2888: () => {},
+foo2889: () => {},
+foo2890: () => {},
+foo2891: () => {},
+foo2892: () => {},
+foo2893: () => {},
+foo2894: () => {},
+foo2895: () => {},
+foo2896: () => {},
+foo2897: () => {},
+foo2898: () => {},
+foo2899: () => {},
+foo2900: () => {},
+foo2901: () => {},
+foo2902: () => {},
+foo2903: () => {},
+foo2904: () => {},
+foo2905: () => {},
+foo2906: () => {},
+foo2907: () => {},
+foo2908: () => {},
+foo2909: () => {},
+foo2910: () => {},
+foo2911: () => {},
+foo2912: () => {},
+foo2913: () => {},
+foo2914: () => {},
+foo2915: () => {},
+foo2916: () => {},
+foo2917: () => {},
+foo2918: () => {},
+foo2919: () => {},
+foo2920: () => {},
+foo2921: () => {},
+foo2922: () => {},
+foo2923: () => {},
+foo2924: () => {},
+foo2925: () => {},
+foo2926: () => {},
+foo2927: () => {},
+foo2928: () => {},
+foo2929: () => {},
+foo2930: () => {},
+foo2931: () => {},
+foo2932: () => {},
+foo2933: () => {},
+foo2934: () => {},
+foo2935: () => {},
+foo2936: () => {},
+foo2937: () => {},
+foo2938: () => {},
+foo2939: () => {},
+foo2940: () => {},
+foo2941: () => {},
+foo2942: () => {},
+foo2943: () => {},
+foo2944: () => {},
+foo2945: () => {},
+foo2946: () => {},
+foo2947: () => {},
+foo2948: () => {},
+foo2949: () => {},
+foo2950: () => {},
+foo2951: () => {},
+foo2952: () => {},
+foo2953: () => {},
+foo2954: () => {},
+foo2955: () => {},
+foo2956: () => {},
+foo2957: () => {},
+foo2958: () => {},
+foo2959: () => {},
+foo2960: () => {},
+foo2961: () => {},
+foo2962: () => {},
+foo2963: () => {},
+foo2964: () => {},
+foo2965: () => {},
+foo2966: () => {},
+foo2967: () => {},
+foo2968: () => {},
+foo2969: () => {},
+foo2970: () => {},
+foo2971: () => {},
+foo2972: () => {},
+foo2973: () => {},
+foo2974: () => {},
+foo2975: () => {},
+foo2976: () => {},
+foo2977: () => {},
+foo2978: () => {},
+foo2979: () => {},
+foo2980: () => {},
+foo2981: () => {},
+foo2982: () => {},
+foo2983: () => {},
+foo2984: () => {},
+foo2985: () => {},
+foo2986: () => {},
+foo2987: () => {},
+foo2988: () => {},
+foo2989: () => {},
+foo2990: () => {},
+foo2991: () => {},
+foo2992: () => {},
+foo2993: () => {},
+foo2994: () => {},
+foo2995: () => {},
+foo2996: () => {},
+foo2997: () => {},
+foo2998: () => {},
+foo2999: () => {},
+foo3000: () => {},
+foo3001: () => {},
+foo3002: () => {},
+foo3003: () => {},
+foo3004: () => {},
+foo3005: () => {},
+foo3006: () => {},
+foo3007: () => {},
+foo3008: () => {},
+foo3009: () => {},
+foo3010: () => {},
+foo3011: () => {},
+foo3012: () => {},
+foo3013: () => {},
+foo3014: () => {},
+foo3015: () => {},
+foo3016: () => {},
+foo3017: () => {},
+foo3018: () => {},
+foo3019: () => {},
+foo3020: () => {},
+foo3021: () => {},
+foo3022: () => {},
+foo3023: () => {},
+foo3024: () => {},
+foo3025: () => {},
+foo3026: () => {},
+foo3027: () => {},
+foo3028: () => {},
+foo3029: () => {},
+foo3030: () => {},
+foo3031: () => {},
+foo3032: () => {},
+foo3033: () => {},
+foo3034: () => {},
+foo3035: () => {},
+foo3036: () => {},
+foo3037: () => {},
+foo3038: () => {},
+foo3039: () => {},
+foo3040: () => {},
+foo3041: () => {},
+foo3042: () => {},
+foo3043: () => {},
+foo3044: () => {},
+foo3045: () => {},
+foo3046: () => {},
+foo3047: () => {},
+foo3048: () => {},
+foo3049: () => {},
+foo3050: () => {},
+foo3051: () => {},
+foo3052: () => {},
+foo3053: () => {},
+foo3054: () => {},
+foo3055: () => {},
+foo3056: () => {},
+foo3057: () => {},
+foo3058: () => {},
+foo3059: () => {},
+foo3060: () => {},
+foo3061: () => {},
+foo3062: () => {},
+foo3063: () => {},
+foo3064: () => {},
+foo3065: () => {},
+foo3066: () => {},
+foo3067: () => {},
+foo3068: () => {},
+foo3069: () => {},
+foo3070: () => {},
+foo3071: () => {},
+foo3072: () => {},
+foo3073: () => {},
+foo3074: () => {},
+foo3075: () => {},
+foo3076: () => {},
+foo3077: () => {},
+foo3078: () => {},
+foo3079: () => {},
+foo3080: () => {},
+foo3081: () => {},
+foo3082: () => {},
+foo3083: () => {},
+foo3084: () => {},
+foo3085: () => {},
+foo3086: () => {},
+foo3087: () => {},
+foo3088: () => {},
+foo3089: () => {},
+foo3090: () => {},
+foo3091: () => {},
+foo3092: () => {},
+foo3093: () => {},
+foo3094: () => {},
+foo3095: () => {},
+foo3096: () => {},
+foo3097: () => {},
+foo3098: () => {},
+foo3099: () => {},
+foo3100: () => {},
+foo3101: () => {},
+foo3102: () => {},
+foo3103: () => {},
+foo3104: () => {},
+foo3105: () => {},
+foo3106: () => {},
+foo3107: () => {},
+foo3108: () => {},
+foo3109: () => {},
+foo3110: () => {},
+foo3111: () => {},
+foo3112: () => {},
+foo3113: () => {},
+foo3114: () => {},
+foo3115: () => {},
+foo3116: () => {},
+foo3117: () => {},
+foo3118: () => {},
+foo3119: () => {},
+foo3120: () => {},
+foo3121: () => {},
+foo3122: () => {},
+foo3123: () => {},
+foo3124: () => {},
+foo3125: () => {},
+foo3126: () => {},
+foo3127: () => {},
+foo3128: () => {},
+foo3129: () => {},
+foo3130: () => {},
+foo3131: () => {},
+foo3132: () => {},
+foo3133: () => {},
+foo3134: () => {},
+foo3135: () => {},
+foo3136: () => {},
+foo3137: () => {},
+foo3138: () => {},
+foo3139: () => {},
+foo3140: () => {},
+foo3141: () => {},
+foo3142: () => {},
+foo3143: () => {},
+foo3144: () => {},
+foo3145: () => {},
+foo3146: () => {},
+foo3147: () => {},
+foo3148: () => {},
+foo3149: () => {},
+foo3150: () => {},
+foo3151: () => {},
+foo3152: () => {},
+foo3153: () => {},
+foo3154: () => {},
+foo3155: () => {},
+foo3156: () => {},
+foo3157: () => {},
+foo3158: () => {},
+foo3159: () => {},
+foo3160: () => {},
+foo3161: () => {},
+foo3162: () => {},
+foo3163: () => {},
+foo3164: () => {},
+foo3165: () => {},
+foo3166: () => {},
+foo3167: () => {},
+foo3168: () => {},
+foo3169: () => {},
+foo3170: () => {},
+foo3171: () => {},
+foo3172: () => {},
+foo3173: () => {},
+foo3174: () => {},
+foo3175: () => {},
+foo3176: () => {},
+foo3177: () => {},
+foo3178: () => {},
+foo3179: () => {},
+foo3180: () => {},
+foo3181: () => {},
+foo3182: () => {},
+foo3183: () => {},
+foo3184: () => {},
+foo3185: () => {},
+foo3186: () => {},
+foo3187: () => {},
+foo3188: () => {},
+foo3189: () => {},
+foo3190: () => {},
+foo3191: () => {},
+foo3192: () => {},
+foo3193: () => {},
+foo3194: () => {},
+foo3195: () => {},
+foo3196: () => {},
+foo3197: () => {},
+foo3198: () => {},
+foo3199: () => {},
+foo3200: () => {},
+foo3201: () => {},
+foo3202: () => {},
+foo3203: () => {},
+foo3204: () => {},
+foo3205: () => {},
+foo3206: () => {},
+foo3207: () => {},
+foo3208: () => {},
+foo3209: () => {},
+foo3210: () => {},
+foo3211: () => {},
+foo3212: () => {},
+foo3213: () => {},
+foo3214: () => {},
+foo3215: () => {},
+foo3216: () => {},
+foo3217: () => {},
+foo3218: () => {},
+foo3219: () => {},
+foo3220: () => {},
+foo3221: () => {},
+foo3222: () => {},
+foo3223: () => {},
+foo3224: () => {},
+foo3225: () => {},
+foo3226: () => {},
+foo3227: () => {},
+foo3228: () => {},
+foo3229: () => {},
+foo3230: () => {},
+foo3231: () => {},
+foo3232: () => {},
+foo3233: () => {},
+foo3234: () => {},
+foo3235: () => {},
+foo3236: () => {},
+foo3237: () => {},
+foo3238: () => {},
+foo3239: () => {},
+foo3240: () => {},
+foo3241: () => {},
+foo3242: () => {},
+foo3243: () => {},
+foo3244: () => {},
+foo3245: () => {},
+foo3246: () => {},
+foo3247: () => {},
+foo3248: () => {},
+foo3249: () => {},
+foo3250: () => {},
+foo3251: () => {},
+foo3252: () => {},
+foo3253: () => {},
+foo3254: () => {},
+foo3255: () => {},
+foo3256: () => {},
+foo3257: () => {},
+foo3258: () => {},
+foo3259: () => {},
+foo3260: () => {},
+foo3261: () => {},
+foo3262: () => {},
+foo3263: () => {},
+foo3264: () => {},
+foo3265: () => {},
+foo3266: () => {},
+foo3267: () => {},
+foo3268: () => {},
+foo3269: () => {},
+foo3270: () => {},
+foo3271: () => {},
+foo3272: () => {},
+foo3273: () => {},
+foo3274: () => {},
+foo3275: () => {},
+foo3276: () => {},
+foo3277: () => {},
+foo3278: () => {},
+foo3279: () => {},
+foo3280: () => {},
+foo3281: () => {},
+foo3282: () => {},
+foo3283: () => {},
+foo3284: () => {},
+foo3285: () => {},
+foo3286: () => {},
+foo3287: () => {},
+foo3288: () => {},
+foo3289: () => {},
+foo3290: () => {},
+foo3291: () => {},
+foo3292: () => {},
+foo3293: () => {},
+foo3294: () => {},
+foo3295: () => {},
+foo3296: () => {},
+foo3297: () => {},
+foo3298: () => {},
+foo3299: () => {},
+foo3300: () => {},
+foo3301: () => {},
+foo3302: () => {},
+foo3303: () => {},
+foo3304: () => {},
+foo3305: () => {},
+foo3306: () => {},
+foo3307: () => {},
+foo3308: () => {},
+foo3309: () => {},
+foo3310: () => {},
+foo3311: () => {},
+foo3312: () => {},
+foo3313: () => {},
+foo3314: () => {},
+foo3315: () => {},
+foo3316: () => {},
+foo3317: () => {},
+foo3318: () => {},
+foo3319: () => {},
+foo3320: () => {},
+foo3321: () => {},
+foo3322: () => {},
+foo3323: () => {},
+foo3324: () => {},
+foo3325: () => {},
+foo3326: () => {},
+foo3327: () => {},
+foo3328: () => {},
+foo3329: () => {},
+foo3330: () => {},
+foo3331: () => {},
+foo3332: () => {},
+foo3333: () => {},
+foo3334: () => {},
+foo3335: () => {},
+foo3336: () => {},
+foo3337: () => {},
+foo3338: () => {},
+foo3339: () => {},
+foo3340: () => {},
+foo3341: () => {},
+foo3342: () => {},
+foo3343: () => {},
+foo3344: () => {},
+foo3345: () => {},
+foo3346: () => {},
+foo3347: () => {},
+foo3348: () => {},
+foo3349: () => {},
+foo3350: () => {},
+foo3351: () => {},
+foo3352: () => {},
+foo3353: () => {},
+foo3354: () => {},
+foo3355: () => {},
+foo3356: () => {},
+foo3357: () => {},
+foo3358: () => {},
+foo3359: () => {},
+foo3360: () => {},
+foo3361: () => {},
+foo3362: () => {},
+foo3363: () => {},
+foo3364: () => {},
+foo3365: () => {},
+foo3366: () => {},
+foo3367: () => {},
+foo3368: () => {},
+foo3369: () => {},
+foo3370: () => {},
+foo3371: () => {},
+foo3372: () => {},
+foo3373: () => {},
+foo3374: () => {},
+foo3375: () => {},
+foo3376: () => {},
+foo3377: () => {},
+foo3378: () => {},
+foo3379: () => {},
+foo3380: () => {},
+foo3381: () => {},
+foo3382: () => {},
+foo3383: () => {},
+foo3384: () => {},
+foo3385: () => {},
+foo3386: () => {},
+foo3387: () => {},
+foo3388: () => {},
+foo3389: () => {},
+foo3390: () => {},
+foo3391: () => {},
+foo3392: () => {},
+foo3393: () => {},
+foo3394: () => {},
+foo3395: () => {},
+foo3396: () => {},
+foo3397: () => {},
+foo3398: () => {},
+foo3399: () => {},
+foo3400: () => {},
+foo3401: () => {},
+foo3402: () => {},
+foo3403: () => {},
+foo3404: () => {},
+foo3405: () => {},
+foo3406: () => {},
+foo3407: () => {},
+foo3408: () => {},
+foo3409: () => {},
+foo3410: () => {},
+foo3411: () => {},
+foo3412: () => {},
+foo3413: () => {},
+foo3414: () => {},
+foo3415: () => {},
+foo3416: () => {},
+foo3417: () => {},
+foo3418: () => {},
+foo3419: () => {},
+foo3420: () => {},
+foo3421: () => {},
+foo3422: () => {},
+foo3423: () => {},
+foo3424: () => {},
+foo3425: () => {},
+foo3426: () => {},
+foo3427: () => {},
+foo3428: () => {},
+foo3429: () => {},
+foo3430: () => {},
+foo3431: () => {},
+foo3432: () => {},
+foo3433: () => {},
+foo3434: () => {},
+foo3435: () => {},
+foo3436: () => {},
+foo3437: () => {},
+foo3438: () => {},
+foo3439: () => {},
+foo3440: () => {},
+foo3441: () => {},
+foo3442: () => {},
+foo3443: () => {},
+foo3444: () => {},
+foo3445: () => {},
+foo3446: () => {},
+foo3447: () => {},
+foo3448: () => {},
+foo3449: () => {},
+foo3450: () => {},
+foo3451: () => {},
+foo3452: () => {},
+foo3453: () => {},
+foo3454: () => {},
+foo3455: () => {},
+foo3456: () => {},
+foo3457: () => {},
+foo3458: () => {},
+foo3459: () => {},
+foo3460: () => {},
+foo3461: () => {},
+foo3462: () => {},
+foo3463: () => {},
+foo3464: () => {},
+foo3465: () => {},
+foo3466: () => {},
+foo3467: () => {},
+foo3468: () => {},
+foo3469: () => {},
+foo3470: () => {},
+foo3471: () => {},
+foo3472: () => {},
+foo3473: () => {},
+foo3474: () => {},
+foo3475: () => {},
+foo3476: () => {},
+foo3477: () => {},
+foo3478: () => {},
+foo3479: () => {},
+foo3480: () => {},
+foo3481: () => {},
+foo3482: () => {},
+foo3483: () => {},
+foo3484: () => {},
+foo3485: () => {},
+foo3486: () => {},
+foo3487: () => {},
+foo3488: () => {},
+foo3489: () => {},
+foo3490: () => {},
+foo3491: () => {},
+foo3492: () => {},
+foo3493: () => {},
+foo3494: () => {},
+foo3495: () => {},
+foo3496: () => {},
+foo3497: () => {},
+foo3498: () => {},
+foo3499: () => {},
+foo3500: () => {},
+foo3501: () => {},
+foo3502: () => {},
+foo3503: () => {},
+foo3504: () => {},
+foo3505: () => {},
+foo3506: () => {},
+foo3507: () => {},
+foo3508: () => {},
+foo3509: () => {},
+foo3510: () => {},
+foo3511: () => {},
+foo3512: () => {},
+foo3513: () => {},
+foo3514: () => {},
+foo3515: () => {},
+foo3516: () => {},
+foo3517: () => {},
+foo3518: () => {},
+foo3519: () => {},
+foo3520: () => {},
+foo3521: () => {},
+foo3522: () => {},
+foo3523: () => {},
+foo3524: () => {},
+foo3525: () => {},
+foo3526: () => {},
+foo3527: () => {},
+foo3528: () => {},
+foo3529: () => {},
+foo3530: () => {},
+foo3531: () => {},
+foo3532: () => {},
+foo3533: () => {},
+foo3534: () => {},
+foo3535: () => {},
+foo3536: () => {},
+foo3537: () => {},
+foo3538: () => {},
+foo3539: () => {},
+foo3540: () => {},
+foo3541: () => {},
+foo3542: () => {},
+foo3543: () => {},
+foo3544: () => {},
+foo3545: () => {},
+foo3546: () => {},
+foo3547: () => {},
+foo3548: () => {},
+foo3549: () => {},
+foo3550: () => {},
+foo3551: () => {},
+foo3552: () => {},
+foo3553: () => {},
+foo3554: () => {},
+foo3555: () => {},
+foo3556: () => {},
+foo3557: () => {},
+foo3558: () => {},
+foo3559: () => {},
+foo3560: () => {},
+foo3561: () => {},
+foo3562: () => {},
+foo3563: () => {},
+foo3564: () => {},
+foo3565: () => {},
+foo3566: () => {},
+foo3567: () => {},
+foo3568: () => {},
+foo3569: () => {},
+foo3570: () => {},
+foo3571: () => {},
+foo3572: () => {},
+foo3573: () => {},
+foo3574: () => {},
+foo3575: () => {},
+foo3576: () => {},
+foo3577: () => {},
+foo3578: () => {},
+foo3579: () => {},
+foo3580: () => {},
+foo3581: () => {},
+foo3582: () => {},
+foo3583: () => {},
+foo3584: () => {},
+foo3585: () => {},
+foo3586: () => {},
+foo3587: () => {},
+foo3588: () => {},
+foo3589: () => {},
+foo3590: () => {},
+foo3591: () => {},
+foo3592: () => {},
+foo3593: () => {},
+foo3594: () => {},
+foo3595: () => {},
+foo3596: () => {},
+foo3597: () => {},
+foo3598: () => {},
+foo3599: () => {},
+foo3600: () => {},
+foo3601: () => {},
+foo3602: () => {},
+foo3603: () => {},
+foo3604: () => {},
+foo3605: () => {},
+foo3606: () => {},
+foo3607: () => {},
+foo3608: () => {},
+foo3609: () => {},
+foo3610: () => {},
+foo3611: () => {},
+foo3612: () => {},
+foo3613: () => {},
+foo3614: () => {},
+foo3615: () => {},
+foo3616: () => {},
+foo3617: () => {},
+foo3618: () => {},
+foo3619: () => {},
+foo3620: () => {},
+foo3621: () => {},
+foo3622: () => {},
+foo3623: () => {},
+foo3624: () => {},
+foo3625: () => {},
+foo3626: () => {},
+foo3627: () => {},
+foo3628: () => {},
+foo3629: () => {},
+foo3630: () => {},
+foo3631: () => {},
+foo3632: () => {},
+foo3633: () => {},
+foo3634: () => {},
+foo3635: () => {},
+foo3636: () => {},
+foo3637: () => {},
+foo3638: () => {},
+foo3639: () => {},
+foo3640: () => {},
+foo3641: () => {},
+foo3642: () => {},
+foo3643: () => {},
+foo3644: () => {},
+foo3645: () => {},
+foo3646: () => {},
+foo3647: () => {},
+foo3648: () => {},
+foo3649: () => {},
+foo3650: () => {},
+foo3651: () => {},
+foo3652: () => {},
+foo3653: () => {},
+foo3654: () => {},
+foo3655: () => {},
+foo3656: () => {},
+foo3657: () => {},
+foo3658: () => {},
+foo3659: () => {},
+foo3660: () => {},
+foo3661: () => {},
+foo3662: () => {},
+foo3663: () => {},
+foo3664: () => {},
+foo3665: () => {},
+foo3666: () => {},
+foo3667: () => {},
+foo3668: () => {},
+foo3669: () => {},
+foo3670: () => {},
+foo3671: () => {},
+foo3672: () => {},
+foo3673: () => {},
+foo3674: () => {},
+foo3675: () => {},
+foo3676: () => {},
+foo3677: () => {},
+foo3678: () => {},
+foo3679: () => {},
+foo3680: () => {},
+foo3681: () => {},
+foo3682: () => {},
+foo3683: () => {},
+foo3684: () => {},
+foo3685: () => {},
+foo3686: () => {},
+foo3687: () => {},
+foo3688: () => {},
+foo3689: () => {},
+foo3690: () => {},
+foo3691: () => {},
+foo3692: () => {},
+foo3693: () => {},
+foo3694: () => {},
+foo3695: () => {},
+foo3696: () => {},
+foo3697: () => {},
+foo3698: () => {},
+foo3699: () => {},
+foo3700: () => {},
+foo3701: () => {},
+foo3702: () => {},
+foo3703: () => {},
+foo3704: () => {},
+foo3705: () => {},
+foo3706: () => {},
+foo3707: () => {},
+foo3708: () => {},
+foo3709: () => {},
+foo3710: () => {},
+foo3711: () => {},
+foo3712: () => {},
+foo3713: () => {},
+foo3714: () => {},
+foo3715: () => {},
+foo3716: () => {},
+foo3717: () => {},
+foo3718: () => {},
+foo3719: () => {},
+foo3720: () => {},
+foo3721: () => {},
+foo3722: () => {},
+foo3723: () => {},
+foo3724: () => {},
+foo3725: () => {},
+foo3726: () => {},
+foo3727: () => {},
+foo3728: () => {},
+foo3729: () => {},
+foo3730: () => {},
+foo3731: () => {},
+foo3732: () => {},
+foo3733: () => {},
+foo3734: () => {},
+foo3735: () => {},
+foo3736: () => {},
+foo3737: () => {},
+foo3738: () => {},
+foo3739: () => {},
+foo3740: () => {},
+foo3741: () => {},
+foo3742: () => {},
+foo3743: () => {},
+foo3744: () => {},
+foo3745: () => {},
+foo3746: () => {},
+foo3747: () => {},
+foo3748: () => {},
+foo3749: () => {},
+foo3750: () => {},
+foo3751: () => {},
+foo3752: () => {},
+foo3753: () => {},
+foo3754: () => {},
+foo3755: () => {},
+foo3756: () => {},
+foo3757: () => {},
+foo3758: () => {},
+foo3759: () => {},
+foo3760: () => {},
+foo3761: () => {},
+foo3762: () => {},
+foo3763: () => {},
+foo3764: () => {},
+foo3765: () => {},
+foo3766: () => {},
+foo3767: () => {},
+foo3768: () => {},
+foo3769: () => {},
+foo3770: () => {},
+foo3771: () => {},
+foo3772: () => {},
+foo3773: () => {},
+foo3774: () => {},
+foo3775: () => {},
+foo3776: () => {},
+foo3777: () => {},
+foo3778: () => {},
+foo3779: () => {},
+foo3780: () => {},
+foo3781: () => {},
+foo3782: () => {},
+foo3783: () => {},
+foo3784: () => {},
+foo3785: () => {},
+foo3786: () => {},
+foo3787: () => {},
+foo3788: () => {},
+foo3789: () => {},
+foo3790: () => {},
+foo3791: () => {},
+foo3792: () => {},
+foo3793: () => {},
+foo3794: () => {},
+foo3795: () => {},
+foo3796: () => {},
+foo3797: () => {},
+foo3798: () => {},
+foo3799: () => {},
+foo3800: () => {},
+foo3801: () => {},
+foo3802: () => {},
+foo3803: () => {},
+foo3804: () => {},
+foo3805: () => {},
+foo3806: () => {},
+foo3807: () => {},
+foo3808: () => {},
+foo3809: () => {},
+foo3810: () => {},
+foo3811: () => {},
+foo3812: () => {},
+foo3813: () => {},
+foo3814: () => {},
+foo3815: () => {},
+foo3816: () => {},
+foo3817: () => {},
+foo3818: () => {},
+foo3819: () => {},
+foo3820: () => {},
+foo3821: () => {},
+foo3822: () => {},
+foo3823: () => {},
+foo3824: () => {},
+foo3825: () => {},
+foo3826: () => {},
+foo3827: () => {},
+foo3828: () => {},
+foo3829: () => {},
+foo3830: () => {},
+foo3831: () => {},
+foo3832: () => {},
+foo3833: () => {},
+foo3834: () => {},
+foo3835: () => {},
+foo3836: () => {},
+foo3837: () => {},
+foo3838: () => {},
+foo3839: () => {},
+foo3840: () => {},
+foo3841: () => {},
+foo3842: () => {},
+foo3843: () => {},
+foo3844: () => {},
+foo3845: () => {},
+foo3846: () => {},
+foo3847: () => {},
+foo3848: () => {},
+foo3849: () => {},
+foo3850: () => {},
+foo3851: () => {},
+foo3852: () => {},
+foo3853: () => {},
+foo3854: () => {},
+foo3855: () => {},
+foo3856: () => {},
+foo3857: () => {},
+foo3858: () => {},
+foo3859: () => {},
+foo3860: () => {},
+foo3861: () => {},
+foo3862: () => {},
+foo3863: () => {},
+foo3864: () => {},
+foo3865: () => {},
+foo3866: () => {},
+foo3867: () => {},
+foo3868: () => {},
+foo3869: () => {},
+foo3870: () => {},
+foo3871: () => {},
+foo3872: () => {},
+foo3873: () => {},
+foo3874: () => {},
+foo3875: () => {},
+foo3876: () => {},
+foo3877: () => {},
+foo3878: () => {},
+foo3879: () => {},
+foo3880: () => {},
+foo3881: () => {},
+foo3882: () => {},
+foo3883: () => {},
+foo3884: () => {},
+foo3885: () => {},
+foo3886: () => {},
+foo3887: () => {},
+foo3888: () => {},
+foo3889: () => {},
+foo3890: () => {},
+foo3891: () => {},
+foo3892: () => {},
+foo3893: () => {},
+foo3894: () => {},
+foo3895: () => {},
+foo3896: () => {},
+foo3897: () => {},
+foo3898: () => {},
+foo3899: () => {},
+foo3900: () => {},
+foo3901: () => {},
+foo3902: () => {},
+foo3903: () => {},
+foo3904: () => {},
+foo3905: () => {},
+foo3906: () => {},
+foo3907: () => {},
+foo3908: () => {},
+foo3909: () => {},
+foo3910: () => {},
+foo3911: () => {},
+foo3912: () => {},
+foo3913: () => {},
+foo3914: () => {},
+foo3915: () => {},
+foo3916: () => {},
+foo3917: () => {},
+foo3918: () => {},
+foo3919: () => {},
+foo3920: () => {},
+foo3921: () => {},
+foo3922: () => {},
+foo3923: () => {},
+foo3924: () => {},
+foo3925: () => {},
+foo3926: () => {},
+foo3927: () => {},
+foo3928: () => {},
+foo3929: () => {},
+foo3930: () => {},
+foo3931: () => {},
+foo3932: () => {},
+foo3933: () => {},
+foo3934: () => {},
+foo3935: () => {},
+foo3936: () => {},
+foo3937: () => {},
+foo3938: () => {},
+foo3939: () => {},
+foo3940: () => {},
+foo3941: () => {},
+foo3942: () => {},
+foo3943: () => {},
+foo3944: () => {},
+foo3945: () => {},
+foo3946: () => {},
+foo3947: () => {},
+foo3948: () => {},
+foo3949: () => {},
+foo3950: () => {},
+foo3951: () => {},
+foo3952: () => {},
+foo3953: () => {},
+foo3954: () => {},
+foo3955: () => {},
+foo3956: () => {},
+foo3957: () => {},
+foo3958: () => {},
+foo3959: () => {},
+foo3960: () => {},
+foo3961: () => {},
+foo3962: () => {},
+foo3963: () => {},
+foo3964: () => {},
+foo3965: () => {},
+foo3966: () => {},
+foo3967: () => {},
+foo3968: () => {},
+foo3969: () => {},
+foo3970: () => {},
+foo3971: () => {},
+foo3972: () => {},
+foo3973: () => {},
+foo3974: () => {},
+foo3975: () => {},
+foo3976: () => {},
+foo3977: () => {},
+foo3978: () => {},
+foo3979: () => {},
+foo3980: () => {},
+foo3981: () => {},
+foo3982: () => {},
+foo3983: () => {},
+foo3984: () => {},
+foo3985: () => {},
+foo3986: () => {},
+foo3987: () => {},
+foo3988: () => {},
+foo3989: () => {},
+foo3990: () => {},
+foo3991: () => {},
+foo3992: () => {},
+foo3993: () => {},
+foo3994: () => {},
+foo3995: () => {},
+foo3996: () => {},
+foo3997: () => {},
+foo3998: () => {},
+foo3999: () => {},
+foo4000: () => {},
+foo4001: () => {},
+foo4002: () => {},
+foo4003: () => {},
+foo4004: () => {},
+foo4005: () => {},
+foo4006: () => {},
+foo4007: () => {},
+foo4008: () => {},
+foo4009: () => {},
+foo4010: () => {},
+foo4011: () => {},
+foo4012: () => {},
+foo4013: () => {},
+foo4014: () => {},
+foo4015: () => {},
+foo4016: () => {},
+foo4017: () => {},
+foo4018: () => {},
+foo4019: () => {},
+foo4020: () => {},
+foo4021: () => {},
+foo4022: () => {},
+foo4023: () => {},
+foo4024: () => {},
+foo4025: () => {},
+foo4026: () => {},
+foo4027: () => {},
+foo4028: () => {},
+foo4029: () => {},
+foo4030: () => {},
+foo4031: () => {},
+foo4032: () => {},
+foo4033: () => {},
+foo4034: () => {},
+foo4035: () => {},
+foo4036: () => {},
+foo4037: () => {},
+foo4038: () => {},
+foo4039: () => {},
+foo4040: () => {},
+foo4041: () => {},
+foo4042: () => {},
+foo4043: () => {},
+foo4044: () => {},
+foo4045: () => {},
+foo4046: () => {},
+foo4047: () => {},
+foo4048: () => {},
+foo4049: () => {},
+foo4050: () => {},
+foo4051: () => {},
+foo4052: () => {},
+foo4053: () => {},
+foo4054: () => {},
+foo4055: () => {},
+foo4056: () => {},
+foo4057: () => {},
+foo4058: () => {},
+foo4059: () => {},
+foo4060: () => {},
+foo4061: () => {},
+foo4062: () => {},
+foo4063: () => {},
+foo4064: () => {},
+foo4065: () => {},
+foo4066: () => {},
+foo4067: () => {},
+foo4068: () => {},
+foo4069: () => {},
+foo4070: () => {},
+foo4071: () => {},
+foo4072: () => {},
+foo4073: () => {},
+foo4074: () => {},
+foo4075: () => {},
+foo4076: () => {},
+foo4077: () => {},
+foo4078: () => {},
+foo4079: () => {},
+foo4080: () => {},
+foo4081: () => {},
+foo4082: () => {},
+foo4083: () => {},
+foo4084: () => {},
+foo4085: () => {},
+foo4086: () => {},
+foo4087: () => {},
+foo4088: () => {},
+foo4089: () => {},
+foo4090: () => {},
+foo4091: () => {},
+foo4092: () => {},
+foo4093: () => {},
+foo4094: () => {},
+foo4095: () => {},
+foo4096: () => {},
+foo4097: () => {},
+foo4098: () => {},
+foo4099: () => {},
+foo4100: () => {},
+foo4101: () => {},
+foo4102: () => {},
+foo4103: () => {},
+foo4104: () => {},
+foo4105: () => {},
+foo4106: () => {},
+foo4107: () => {},
+foo4108: () => {},
+foo4109: () => {},
+foo4110: () => {},
+foo4111: () => {},
+foo4112: () => {},
+foo4113: () => {},
+foo4114: () => {},
+foo4115: () => {},
+foo4116: () => {},
+foo4117: () => {},
+foo4118: () => {},
+foo4119: () => {},
+foo4120: () => {},
+foo4121: () => {},
+foo4122: () => {},
+foo4123: () => {},
+foo4124: () => {},
+foo4125: () => {},
+foo4126: () => {},
+foo4127: () => {},
+foo4128: () => {},
+foo4129: () => {},
+foo4130: () => {},
+foo4131: () => {},
+foo4132: () => {},
+foo4133: () => {},
+foo4134: () => {},
+foo4135: () => {},
+foo4136: () => {},
+foo4137: () => {},
+foo4138: () => {},
+foo4139: () => {},
+foo4140: () => {},
+foo4141: () => {},
+foo4142: () => {},
+foo4143: () => {},
+foo4144: () => {},
+foo4145: () => {},
+foo4146: () => {},
+foo4147: () => {},
+foo4148: () => {},
+foo4149: () => {},
+foo4150: () => {},
+foo4151: () => {},
+foo4152: () => {},
+foo4153: () => {},
+foo4154: () => {},
+foo4155: () => {},
+foo4156: () => {},
+foo4157: () => {},
+foo4158: () => {},
+foo4159: () => {},
+foo4160: () => {},
+foo4161: () => {},
+foo4162: () => {},
+foo4163: () => {},
+foo4164: () => {},
+foo4165: () => {},
+foo4166: () => {},
+foo4167: () => {},
+foo4168: () => {},
+foo4169: () => {},
+foo4170: () => {},
+foo4171: () => {},
+foo4172: () => {},
+foo4173: () => {},
+foo4174: () => {},
+foo4175: () => {},
+foo4176: () => {},
+foo4177: () => {},
+foo4178: () => {},
+foo4179: () => {},
+foo4180: () => {},
+foo4181: () => {},
+foo4182: () => {},
+foo4183: () => {},
+foo4184: () => {},
+foo4185: () => {},
+foo4186: () => {},
+foo4187: () => {},
+foo4188: () => {},
+foo4189: () => {},
+foo4190: () => {},
+foo4191: () => {},
+foo4192: () => {},
+foo4193: () => {},
+foo4194: () => {},
+foo4195: () => {},
+foo4196: () => {},
+foo4197: () => {},
+foo4198: () => {},
+foo4199: () => {},
+foo4200: () => {},
+foo4201: () => {},
+foo4202: () => {},
+foo4203: () => {},
+foo4204: () => {},
+foo4205: () => {},
+foo4206: () => {},
+foo4207: () => {},
+foo4208: () => {},
+foo4209: () => {},
+foo4210: () => {},
+foo4211: () => {},
+foo4212: () => {},
+foo4213: () => {},
+foo4214: () => {},
+foo4215: () => {},
+foo4216: () => {},
+foo4217: () => {},
+foo4218: () => {},
+foo4219: () => {},
+foo4220: () => {},
+foo4221: () => {},
+foo4222: () => {},
+foo4223: () => {},
+foo4224: () => {},
+foo4225: () => {},
+foo4226: () => {},
+foo4227: () => {},
+foo4228: () => {},
+foo4229: () => {},
+foo4230: () => {},
+foo4231: () => {},
+foo4232: () => {},
+foo4233: () => {},
+foo4234: () => {},
+foo4235: () => {},
+foo4236: () => {},
+foo4237: () => {},
+foo4238: () => {},
+foo4239: () => {},
+foo4240: () => {},
+foo4241: () => {},
+foo4242: () => {},
+foo4243: () => {},
+foo4244: () => {},
+foo4245: () => {},
+foo4246: () => {},
+foo4247: () => {},
+foo4248: () => {},
+foo4249: () => {},
+foo4250: () => {},
+foo4251: () => {},
+foo4252: () => {},
+foo4253: () => {},
+foo4254: () => {},
+foo4255: () => {},
+foo4256: () => {},
+foo4257: () => {},
+foo4258: () => {},
+foo4259: () => {},
+foo4260: () => {},
+foo4261: () => {},
+foo4262: () => {},
+foo4263: () => {},
+foo4264: () => {},
+foo4265: () => {},
+foo4266: () => {},
+foo4267: () => {},
+foo4268: () => {},
+foo4269: () => {},
+foo4270: () => {},
+foo4271: () => {},
+foo4272: () => {},
+foo4273: () => {},
+foo4274: () => {},
+foo4275: () => {},
+foo4276: () => {},
+foo4277: () => {},
+foo4278: () => {},
+foo4279: () => {},
+foo4280: () => {},
+foo4281: () => {},
+foo4282: () => {},
+foo4283: () => {},
+foo4284: () => {},
+foo4285: () => {},
+foo4286: () => {},
+foo4287: () => {},
+foo4288: () => {},
+foo4289: () => {},
+foo4290: () => {},
+foo4291: () => {},
+foo4292: () => {},
+foo4293: () => {},
+foo4294: () => {},
+foo4295: () => {},
+foo4296: () => {},
+foo4297: () => {},
+foo4298: () => {},
+foo4299: () => {},
+foo4300: () => {},
+foo4301: () => {},
+foo4302: () => {},
+foo4303: () => {},
+foo4304: () => {},
+foo4305: () => {},
+foo4306: () => {},
+foo4307: () => {},
+foo4308: () => {},
+foo4309: () => {},
+foo4310: () => {},
+foo4311: () => {},
+foo4312: () => {},
+foo4313: () => {},
+foo4314: () => {},
+foo4315: () => {},
+foo4316: () => {},
+foo4317: () => {},
+foo4318: () => {},
+foo4319: () => {},
+foo4320: () => {},
+foo4321: () => {},
+foo4322: () => {},
+foo4323: () => {},
+foo4324: () => {},
+foo4325: () => {},
+foo4326: () => {},
+foo4327: () => {},
+foo4328: () => {},
+foo4329: () => {},
+foo4330: () => {},
+foo4331: () => {},
+foo4332: () => {},
+foo4333: () => {},
+foo4334: () => {},
+foo4335: () => {},
+foo4336: () => {},
+foo4337: () => {},
+foo4338: () => {},
+foo4339: () => {},
+foo4340: () => {},
+foo4341: () => {},
+foo4342: () => {},
+foo4343: () => {},
+foo4344: () => {},
+foo4345: () => {},
+foo4346: () => {},
+foo4347: () => {},
+foo4348: () => {},
+foo4349: () => {},
+foo4350: () => {},
+foo4351: () => {},
+foo4352: () => {},
+foo4353: () => {},
+foo4354: () => {},
+foo4355: () => {},
+foo4356: () => {},
+foo4357: () => {},
+foo4358: () => {},
+foo4359: () => {},
+foo4360: () => {},
+foo4361: () => {},
+foo4362: () => {},
+foo4363: () => {},
+foo4364: () => {},
+foo4365: () => {},
+foo4366: () => {},
+foo4367: () => {},
+foo4368: () => {},
+foo4369: () => {},
+foo4370: () => {},
+foo4371: () => {},
+foo4372: () => {},
+foo4373: () => {},
+foo4374: () => {},
+foo4375: () => {},
+foo4376: () => {},
+foo4377: () => {},
+foo4378: () => {},
+foo4379: () => {},
+foo4380: () => {},
+foo4381: () => {},
+foo4382: () => {},
+foo4383: () => {},
+foo4384: () => {},
+foo4385: () => {},
+foo4386: () => {},
+foo4387: () => {},
+foo4388: () => {},
+foo4389: () => {},
+foo4390: () => {},
+foo4391: () => {},
+foo4392: () => {},
+foo4393: () => {},
+foo4394: () => {},
+foo4395: () => {},
+foo4396: () => {},
+foo4397: () => {},
+foo4398: () => {},
+foo4399: () => {},
+foo4400: () => {},
+foo4401: () => {},
+foo4402: () => {},
+foo4403: () => {},
+foo4404: () => {},
+foo4405: () => {},
+foo4406: () => {},
+foo4407: () => {},
+foo4408: () => {},
+foo4409: () => {},
+foo4410: () => {},
+foo4411: () => {},
+foo4412: () => {},
+foo4413: () => {},
+foo4414: () => {},
+foo4415: () => {},
+foo4416: () => {},
+foo4417: () => {},
+foo4418: () => {},
+foo4419: () => {},
+foo4420: () => {},
+foo4421: () => {},
+foo4422: () => {},
+foo4423: () => {},
+foo4424: () => {},
+foo4425: () => {},
+foo4426: () => {},
+foo4427: () => {},
+foo4428: () => {},
+foo4429: () => {},
+foo4430: () => {},
+foo4431: () => {},
+foo4432: () => {},
+foo4433: () => {},
+foo4434: () => {},
+foo4435: () => {},
+foo4436: () => {},
+foo4437: () => {},
+foo4438: () => {},
+foo4439: () => {},
+foo4440: () => {},
+foo4441: () => {},
+foo4442: () => {},
+foo4443: () => {},
+foo4444: () => {},
+foo4445: () => {},
+foo4446: () => {},
+foo4447: () => {},
+foo4448: () => {},
+foo4449: () => {},
+foo4450: () => {},
+foo4451: () => {},
+foo4452: () => {},
+foo4453: () => {},
+foo4454: () => {},
+foo4455: () => {},
+foo4456: () => {},
+foo4457: () => {},
+foo4458: () => {},
+foo4459: () => {},
+foo4460: () => {},
+foo4461: () => {},
+foo4462: () => {},
+foo4463: () => {},
+foo4464: () => {},
+foo4465: () => {},
+foo4466: () => {},
+foo4467: () => {},
+foo4468: () => {},
+foo4469: () => {},
+foo4470: () => {},
+foo4471: () => {},
+foo4472: () => {},
+foo4473: () => {},
+foo4474: () => {},
+foo4475: () => {},
+foo4476: () => {},
+foo4477: () => {},
+foo4478: () => {},
+foo4479: () => {},
+foo4480: () => {},
+foo4481: () => {},
+foo4482: () => {},
+foo4483: () => {},
+foo4484: () => {},
+foo4485: () => {},
+foo4486: () => {},
+foo4487: () => {},
+foo4488: () => {},
+foo4489: () => {},
+foo4490: () => {},
+foo4491: () => {},
+foo4492: () => {},
+foo4493: () => {},
+foo4494: () => {},
+foo4495: () => {},
+foo4496: () => {},
+foo4497: () => {},
+foo4498: () => {},
+foo4499: () => {},
+foo4500: () => {},
+foo4501: () => {},
+foo4502: () => {},
+foo4503: () => {},
+foo4504: () => {},
+foo4505: () => {},
+foo4506: () => {},
+foo4507: () => {},
+foo4508: () => {},
+foo4509: () => {},
+foo4510: () => {},
+foo4511: () => {},
+foo4512: () => {},
+foo4513: () => {},
+foo4514: () => {},
+foo4515: () => {},
+foo4516: () => {},
+foo4517: () => {},
+foo4518: () => {},
+foo4519: () => {},
+foo4520: () => {},
+foo4521: () => {},
+foo4522: () => {},
+foo4523: () => {},
+foo4524: () => {},
+foo4525: () => {},
+foo4526: () => {},
+foo4527: () => {},
+foo4528: () => {},
+foo4529: () => {},
+foo4530: () => {},
+foo4531: () => {},
+foo4532: () => {},
+foo4533: () => {},
+foo4534: () => {},
+foo4535: () => {},
+foo4536: () => {},
+foo4537: () => {},
+foo4538: () => {},
+foo4539: () => {},
+foo4540: () => {},
+foo4541: () => {},
+foo4542: () => {},
+foo4543: () => {},
+foo4544: () => {},
+foo4545: () => {},
+foo4546: () => {},
+foo4547: () => {},
+foo4548: () => {},
+foo4549: () => {},
+foo4550: () => {},
+foo4551: () => {},
+foo4552: () => {},
+foo4553: () => {},
+foo4554: () => {},
+foo4555: () => {},
+foo4556: () => {},
+foo4557: () => {},
+foo4558: () => {},
+foo4559: () => {},
+foo4560: () => {},
+foo4561: () => {},
+foo4562: () => {},
+foo4563: () => {},
+foo4564: () => {},
+foo4565: () => {},
+foo4566: () => {},
+foo4567: () => {},
+foo4568: () => {},
+foo4569: () => {},
+foo4570: () => {},
+foo4571: () => {},
+foo4572: () => {},
+foo4573: () => {},
+foo4574: () => {},
+foo4575: () => {},
+foo4576: () => {},
+foo4577: () => {},
+foo4578: () => {},
+foo4579: () => {},
+foo4580: () => {},
+foo4581: () => {},
+foo4582: () => {},
+foo4583: () => {},
+foo4584: () => {},
+foo4585: () => {},
+foo4586: () => {},
+foo4587: () => {},
+foo4588: () => {},
+foo4589: () => {},
+foo4590: () => {},
+foo4591: () => {},
+foo4592: () => {},
+foo4593: () => {},
+foo4594: () => {},
+foo4595: () => {},
+foo4596: () => {},
+foo4597: () => {},
+foo4598: () => {},
+foo4599: () => {},
+foo4600: () => {},
+foo4601: () => {},
+foo4602: () => {},
+foo4603: () => {},
+foo4604: () => {},
+foo4605: () => {},
+foo4606: () => {},
+foo4607: () => {},
+foo4608: () => {},
+foo4609: () => {},
+foo4610: () => {},
+foo4611: () => {},
+foo4612: () => {},
+foo4613: () => {},
+foo4614: () => {},
+foo4615: () => {},
+foo4616: () => {},
+foo4617: () => {},
+foo4618: () => {},
+foo4619: () => {},
+foo4620: () => {},
+foo4621: () => {},
+foo4622: () => {},
+foo4623: () => {},
+foo4624: () => {},
+foo4625: () => {},
+foo4626: () => {},
+foo4627: () => {},
+foo4628: () => {},
+foo4629: () => {},
+foo4630: () => {},
+foo4631: () => {},
+foo4632: () => {},
+foo4633: () => {},
+foo4634: () => {},
+foo4635: () => {},
+foo4636: () => {},
+foo4637: () => {},
+foo4638: () => {},
+foo4639: () => {},
+foo4640: () => {},
+foo4641: () => {},
+foo4642: () => {},
+foo4643: () => {},
+foo4644: () => {},
+foo4645: () => {},
+foo4646: () => {},
+foo4647: () => {},
+foo4648: () => {},
+foo4649: () => {},
+foo4650: () => {},
+foo4651: () => {},
+foo4652: () => {},
+foo4653: () => {},
+foo4654: () => {},
+foo4655: () => {},
+foo4656: () => {},
+foo4657: () => {},
+foo4658: () => {},
+foo4659: () => {},
+foo4660: () => {},
+foo4661: () => {},
+foo4662: () => {},
+foo4663: () => {},
+foo4664: () => {},
+foo4665: () => {},
+foo4666: () => {},
+foo4667: () => {},
+foo4668: () => {},
+foo4669: () => {},
+foo4670: () => {},
+foo4671: () => {},
+foo4672: () => {},
+foo4673: () => {},
+foo4674: () => {},
+foo4675: () => {},
+foo4676: () => {},
+foo4677: () => {},
+foo4678: () => {},
+foo4679: () => {},
+foo4680: () => {},
+foo4681: () => {},
+foo4682: () => {},
+foo4683: () => {},
+foo4684: () => {},
+foo4685: () => {},
+foo4686: () => {},
+foo4687: () => {},
+foo4688: () => {},
+foo4689: () => {},
+foo4690: () => {},
+foo4691: () => {},
+foo4692: () => {},
+foo4693: () => {},
+foo4694: () => {},
+foo4695: () => {},
+foo4696: () => {},
+foo4697: () => {},
+foo4698: () => {},
+foo4699: () => {},
+foo4700: () => {},
+foo4701: () => {},
+foo4702: () => {},
+foo4703: () => {},
+foo4704: () => {},
+foo4705: () => {},
+foo4706: () => {},
+foo4707: () => {},
+foo4708: () => {},
+foo4709: () => {},
+foo4710: () => {},
+foo4711: () => {},
+foo4712: () => {},
+foo4713: () => {},
+foo4714: () => {},
+foo4715: () => {},
+foo4716: () => {},
+foo4717: () => {},
+foo4718: () => {},
+foo4719: () => {},
+foo4720: () => {},
+foo4721: () => {},
+foo4722: () => {},
+foo4723: () => {},
+foo4724: () => {},
+foo4725: () => {},
+foo4726: () => {},
+foo4727: () => {},
+foo4728: () => {},
+foo4729: () => {},
+foo4730: () => {},
+foo4731: () => {},
+foo4732: () => {},
+foo4733: () => {},
+foo4734: () => {},
+foo4735: () => {},
+foo4736: () => {},
+foo4737: () => {},
+foo4738: () => {},
+foo4739: () => {},
+foo4740: () => {},
+foo4741: () => {},
+foo4742: () => {},
+foo4743: () => {},
+foo4744: () => {},
+foo4745: () => {},
+foo4746: () => {},
+foo4747: () => {},
+foo4748: () => {},
+foo4749: () => {},
+foo4750: () => {},
+foo4751: () => {},
+foo4752: () => {},
+foo4753: () => {},
+foo4754: () => {},
+foo4755: () => {},
+foo4756: () => {},
+foo4757: () => {},
+foo4758: () => {},
+foo4759: () => {},
+foo4760: () => {},
+foo4761: () => {},
+foo4762: () => {},
+foo4763: () => {},
+foo4764: () => {},
+foo4765: () => {},
+foo4766: () => {},
+foo4767: () => {},
+foo4768: () => {},
+foo4769: () => {},
+foo4770: () => {},
+foo4771: () => {},
+foo4772: () => {},
+foo4773: () => {},
+foo4774: () => {},
+foo4775: () => {},
+foo4776: () => {},
+foo4777: () => {},
+foo4778: () => {},
+foo4779: () => {},
+foo4780: () => {},
+foo4781: () => {},
+foo4782: () => {},
+foo4783: () => {},
+foo4784: () => {},
+foo4785: () => {},
+foo4786: () => {},
+foo4787: () => {},
+foo4788: () => {},
+foo4789: () => {},
+foo4790: () => {},
+foo4791: () => {},
+foo4792: () => {},
+foo4793: () => {},
+foo4794: () => {},
+foo4795: () => {},
+foo4796: () => {},
+foo4797: () => {},
+foo4798: () => {},
+foo4799: () => {},
+foo4800: () => {},
+foo4801: () => {},
+foo4802: () => {},
+foo4803: () => {},
+foo4804: () => {},
+foo4805: () => {},
+foo4806: () => {},
+foo4807: () => {},
+foo4808: () => {},
+foo4809: () => {},
+foo4810: () => {},
+foo4811: () => {},
+foo4812: () => {},
+foo4813: () => {},
+foo4814: () => {},
+foo4815: () => {},
+foo4816: () => {},
+foo4817: () => {},
+foo4818: () => {},
+foo4819: () => {},
+foo4820: () => {},
+foo4821: () => {},
+foo4822: () => {},
+foo4823: () => {},
+foo4824: () => {},
+foo4825: () => {},
+foo4826: () => {},
+foo4827: () => {},
+foo4828: () => {},
+foo4829: () => {},
+foo4830: () => {},
+foo4831: () => {},
+foo4832: () => {},
+foo4833: () => {},
+foo4834: () => {},
+foo4835: () => {},
+foo4836: () => {},
+foo4837: () => {},
+foo4838: () => {},
+foo4839: () => {},
+foo4840: () => {},
+foo4841: () => {},
+foo4842: () => {},
+foo4843: () => {},
+foo4844: () => {},
+foo4845: () => {},
+foo4846: () => {},
+foo4847: () => {},
+foo4848: () => {},
+foo4849: () => {},
+foo4850: () => {},
+foo4851: () => {},
+foo4852: () => {},
+foo4853: () => {},
+foo4854: () => {},
+foo4855: () => {},
+foo4856: () => {},
+foo4857: () => {},
+foo4858: () => {},
+foo4859: () => {},
+foo4860: () => {},
+foo4861: () => {},
+foo4862: () => {},
+foo4863: () => {},
+foo4864: () => {},
+foo4865: () => {},
+foo4866: () => {},
+foo4867: () => {},
+foo4868: () => {},
+foo4869: () => {},
+foo4870: () => {},
+foo4871: () => {},
+foo4872: () => {},
+foo4873: () => {},
+foo4874: () => {},
+foo4875: () => {},
+foo4876: () => {},
+foo4877: () => {},
+foo4878: () => {},
+foo4879: () => {},
+foo4880: () => {},
+foo4881: () => {},
+foo4882: () => {},
+foo4883: () => {},
+foo4884: () => {},
+foo4885: () => {},
+foo4886: () => {},
+foo4887: () => {},
+foo4888: () => {},
+foo4889: () => {},
+foo4890: () => {},
+foo4891: () => {},
+foo4892: () => {},
+foo4893: () => {},
+foo4894: () => {},
+foo4895: () => {},
+foo4896: () => {},
+foo4897: () => {},
+foo4898: () => {},
+foo4899: () => {},
+foo4900: () => {},
+foo4901: () => {},
+foo4902: () => {},
+foo4903: () => {},
+foo4904: () => {},
+foo4905: () => {},
+foo4906: () => {},
+foo4907: () => {},
+foo4908: () => {},
+foo4909: () => {},
+foo4910: () => {},
+foo4911: () => {},
+foo4912: () => {},
+foo4913: () => {},
+foo4914: () => {},
+foo4915: () => {},
+foo4916: () => {},
+foo4917: () => {},
+foo4918: () => {},
+foo4919: () => {},
+foo4920: () => {},
+foo4921: () => {},
+foo4922: () => {},
+foo4923: () => {},
+foo4924: () => {},
+foo4925: () => {},
+foo4926: () => {},
+foo4927: () => {},
+foo4928: () => {},
+foo4929: () => {},
+foo4930: () => {},
+foo4931: () => {},
+foo4932: () => {},
+foo4933: () => {},
+foo4934: () => {},
+foo4935: () => {},
+foo4936: () => {},
+foo4937: () => {},
+foo4938: () => {},
+foo4939: () => {},
+foo4940: () => {},
+foo4941: () => {},
+foo4942: () => {},
+foo4943: () => {},
+foo4944: () => {},
+foo4945: () => {},
+foo4946: () => {},
+foo4947: () => {},
+foo4948: () => {},
+foo4949: () => {},
+foo4950: () => {},
+foo4951: () => {},
+foo4952: () => {},
+foo4953: () => {},
+foo4954: () => {},
+foo4955: () => {},
+foo4956: () => {},
+foo4957: () => {},
+foo4958: () => {},
+foo4959: () => {},
+foo4960: () => {},
+foo4961: () => {},
+foo4962: () => {},
+foo4963: () => {},
+foo4964: () => {},
+foo4965: () => {},
+foo4966: () => {},
+foo4967: () => {},
+foo4968: () => {},
+foo4969: () => {},
+foo4970: () => {},
+foo4971: () => {},
+foo4972: () => {},
+foo4973: () => {},
+foo4974: () => {},
+foo4975: () => {},
+foo4976: () => {},
+foo4977: () => {},
+foo4978: () => {},
+foo4979: () => {},
+foo4980: () => {},
+foo4981: () => {},
+foo4982: () => {},
+foo4983: () => {},
+foo4984: () => {},
+foo4985: () => {},
+foo4986: () => {},
+foo4987: () => {},
+foo4988: () => {},
+foo4989: () => {},
+foo4990: () => {},
+foo4991: () => {},
+foo4992: () => {},
+foo4993: () => {},
+foo4994: () => {},
+foo4995: () => {},
+foo4996: () => {},
+foo4997: () => {},
+foo4998: () => {},
+foo4999: () => {},
+foo5000: () => {},
+foo5001: () => {},
+foo5002: () => {},
+foo5003: () => {},
+foo5004: () => {},
+foo5005: () => {},
+foo5006: () => {},
+foo5007: () => {},
+foo5008: () => {},
+foo5009: () => {},
+foo5010: () => {},
+foo5011: () => {},
+foo5012: () => {},
+foo5013: () => {},
+foo5014: () => {},
+foo5015: () => {},
+foo5016: () => {},
+foo5017: () => {},
+foo5018: () => {},
+foo5019: () => {},
+foo5020: () => {},
+foo5021: () => {},
+foo5022: () => {},
+foo5023: () => {},
+foo5024: () => {},
+foo5025: () => {},
+foo5026: () => {},
+foo5027: () => {},
+foo5028: () => {},
+foo5029: () => {},
+foo5030: () => {},
+foo5031: () => {},
+foo5032: () => {},
+foo5033: () => {},
+foo5034: () => {},
+foo5035: () => {},
+foo5036: () => {},
+foo5037: () => {},
+foo5038: () => {},
+foo5039: () => {},
+foo5040: () => {},
+foo5041: () => {},
+foo5042: () => {},
+foo5043: () => {},
+foo5044: () => {},
+foo5045: () => {},
+foo5046: () => {},
+foo5047: () => {},
+foo5048: () => {},
+foo5049: () => {},
+foo5050: () => {},
+foo5051: () => {},
+foo5052: () => {},
+foo5053: () => {},
+foo5054: () => {},
+foo5055: () => {},
+foo5056: () => {},
+foo5057: () => {},
+foo5058: () => {},
+foo5059: () => {},
+foo5060: () => {},
+foo5061: () => {},
+foo5062: () => {},
+foo5063: () => {},
+foo5064: () => {},
+foo5065: () => {},
+foo5066: () => {},
+foo5067: () => {},
+foo5068: () => {},
+foo5069: () => {},
+foo5070: () => {},
+foo5071: () => {},
+foo5072: () => {},
+foo5073: () => {},
+foo5074: () => {},
+foo5075: () => {},
+foo5076: () => {},
+foo5077: () => {},
+foo5078: () => {},
+foo5079: () => {},
+foo5080: () => {},
+foo5081: () => {},
+foo5082: () => {},
+foo5083: () => {},
+foo5084: () => {},
+foo5085: () => {},
+foo5086: () => {},
+foo5087: () => {},
+foo5088: () => {},
+foo5089: () => {},
+foo5090: () => {},
+foo5091: () => {},
+foo5092: () => {},
+foo5093: () => {},
+foo5094: () => {},
+foo5095: () => {},
+foo5096: () => {},
+foo5097: () => {},
+foo5098: () => {},
+foo5099: () => {},
+foo5100: () => {},
+foo5101: () => {},
+foo5102: () => {},
+foo5103: () => {},
+foo5104: () => {},
+foo5105: () => {},
+foo5106: () => {},
+foo5107: () => {},
+foo5108: () => {},
+foo5109: () => {},
+foo5110: () => {},
+foo5111: () => {},
+foo5112: () => {},
+foo5113: () => {},
+foo5114: () => {},
+foo5115: () => {},
+foo5116: () => {},
+foo5117: () => {},
+foo5118: () => {},
+foo5119: () => {},
+foo5120: () => {},
+foo5121: () => {},
+foo5122: () => {},
+foo5123: () => {},
+foo5124: () => {},
+foo5125: () => {},
+foo5126: () => {},
+foo5127: () => {},
+foo5128: () => {},
+foo5129: () => {},
+foo5130: () => {},
+foo5131: () => {},
+foo5132: () => {},
+foo5133: () => {},
+foo5134: () => {},
+foo5135: () => {},
+foo5136: () => {},
+foo5137: () => {},
+foo5138: () => {},
+foo5139: () => {},
+foo5140: () => {},
+foo5141: () => {},
+foo5142: () => {},
+foo5143: () => {},
+foo5144: () => {},
+foo5145: () => {},
+foo5146: () => {},
+foo5147: () => {},
+foo5148: () => {},
+foo5149: () => {},
+foo5150: () => {},
+foo5151: () => {},
+foo5152: () => {},
+foo5153: () => {},
+foo5154: () => {},
+foo5155: () => {},
+foo5156: () => {},
+foo5157: () => {},
+foo5158: () => {},
+foo5159: () => {},
+foo5160: () => {},
+foo5161: () => {},
+foo5162: () => {},
+foo5163: () => {},
+foo5164: () => {},
+foo5165: () => {},
+foo5166: () => {},
+foo5167: () => {},
+foo5168: () => {},
+foo5169: () => {},
+foo5170: () => {},
+foo5171: () => {},
+foo5172: () => {},
+foo5173: () => {},
+foo5174: () => {},
+foo5175: () => {},
+foo5176: () => {},
+foo5177: () => {},
+foo5178: () => {},
+foo5179: () => {},
+foo5180: () => {},
+foo5181: () => {},
+foo5182: () => {},
+foo5183: () => {},
+foo5184: () => {},
+foo5185: () => {},
+foo5186: () => {},
+foo5187: () => {},
+foo5188: () => {},
+foo5189: () => {},
+foo5190: () => {},
+foo5191: () => {},
+foo5192: () => {},
+foo5193: () => {},
+foo5194: () => {},
+foo5195: () => {},
+foo5196: () => {},
+foo5197: () => {},
+foo5198: () => {},
+foo5199: () => {},
+foo5200: () => {},
+foo5201: () => {},
+foo5202: () => {},
+foo5203: () => {},
+foo5204: () => {},
+foo5205: () => {},
+foo5206: () => {},
+foo5207: () => {},
+foo5208: () => {},
+foo5209: () => {},
+foo5210: () => {},
+foo5211: () => {},
+foo5212: () => {},
+foo5213: () => {},
+foo5214: () => {},
+foo5215: () => {},
+foo5216: () => {},
+foo5217: () => {},
+foo5218: () => {},
+foo5219: () => {},
+foo5220: () => {},
+foo5221: () => {},
+foo5222: () => {},
+foo5223: () => {},
+foo5224: () => {},
+foo5225: () => {},
+foo5226: () => {},
+foo5227: () => {},
+foo5228: () => {},
+foo5229: () => {},
+foo5230: () => {},
+foo5231: () => {},
+foo5232: () => {},
+foo5233: () => {},
+foo5234: () => {},
+foo5235: () => {},
+foo5236: () => {},
+foo5237: () => {},
+foo5238: () => {},
+foo5239: () => {},
+foo5240: () => {},
+foo5241: () => {},
+foo5242: () => {},
+foo5243: () => {},
+foo5244: () => {},
+foo5245: () => {},
+foo5246: () => {},
+foo5247: () => {},
+foo5248: () => {},
+foo5249: () => {},
+foo5250: () => {},
+foo5251: () => {},
+foo5252: () => {},
+foo5253: () => {},
+foo5254: () => {},
+foo5255: () => {},
+foo5256: () => {},
+foo5257: () => {},
+foo5258: () => {},
+foo5259: () => {},
+foo5260: () => {},
+foo5261: () => {},
+foo5262: () => {},
+foo5263: () => {},
+foo5264: () => {},
+foo5265: () => {},
+foo5266: () => {},
+foo5267: () => {},
+foo5268: () => {},
+foo5269: () => {},
+foo5270: () => {},
+foo5271: () => {},
+foo5272: () => {},
+foo5273: () => {},
+foo5274: () => {},
+foo5275: () => {},
+foo5276: () => {},
+foo5277: () => {},
+foo5278: () => {},
+foo5279: () => {},
+foo5280: () => {},
+foo5281: () => {},
+foo5282: () => {},
+foo5283: () => {},
+foo5284: () => {},
+foo5285: () => {},
+foo5286: () => {},
+foo5287: () => {},
+foo5288: () => {},
+foo5289: () => {},
+foo5290: () => {},
+foo5291: () => {},
+foo5292: () => {},
+foo5293: () => {},
+foo5294: () => {},
+foo5295: () => {},
+foo5296: () => {},
+foo5297: () => {},
+foo5298: () => {},
+foo5299: () => {},
+foo5300: () => {},
+foo5301: () => {},
+foo5302: () => {},
+foo5303: () => {},
+foo5304: () => {},
+foo5305: () => {},
+foo5306: () => {},
+foo5307: () => {},
+foo5308: () => {},
+foo5309: () => {},
+foo5310: () => {},
+foo5311: () => {},
+foo5312: () => {},
+foo5313: () => {},
+foo5314: () => {},
+foo5315: () => {},
+foo5316: () => {},
+foo5317: () => {},
+foo5318: () => {},
+foo5319: () => {},
+foo5320: () => {},
+foo5321: () => {},
+foo5322: () => {},
+foo5323: () => {},
+foo5324: () => {},
+foo5325: () => {},
+foo5326: () => {},
+foo5327: () => {},
+foo5328: () => {},
+foo5329: () => {},
+foo5330: () => {},
+foo5331: () => {},
+foo5332: () => {},
+foo5333: () => {},
+foo5334: () => {},
+foo5335: () => {},
+foo5336: () => {},
+foo5337: () => {},
+foo5338: () => {},
+foo5339: () => {},
+foo5340: () => {},
+foo5341: () => {},
+foo5342: () => {},
+foo5343: () => {},
+foo5344: () => {},
+foo5345: () => {},
+foo5346: () => {},
+foo5347: () => {},
+foo5348: () => {},
+foo5349: () => {},
+foo5350: () => {},
+foo5351: () => {},
+foo5352: () => {},
+foo5353: () => {},
+foo5354: () => {},
+foo5355: () => {},
+foo5356: () => {},
+foo5357: () => {},
+foo5358: () => {},
+foo5359: () => {},
+foo5360: () => {},
+foo5361: () => {},
+foo5362: () => {},
+foo5363: () => {},
+foo5364: () => {},
+foo5365: () => {},
+foo5366: () => {},
+foo5367: () => {},
+foo5368: () => {},
+foo5369: () => {},
+foo5370: () => {},
+foo5371: () => {},
+foo5372: () => {},
+foo5373: () => {},
+foo5374: () => {},
+foo5375: () => {},
+foo5376: () => {},
+foo5377: () => {},
+foo5378: () => {},
+foo5379: () => {},
+foo5380: () => {},
+foo5381: () => {},
+foo5382: () => {},
+foo5383: () => {},
+foo5384: () => {},
+foo5385: () => {},
+foo5386: () => {},
+foo5387: () => {},
+foo5388: () => {},
+foo5389: () => {},
+foo5390: () => {},
+foo5391: () => {},
+foo5392: () => {},
+foo5393: () => {},
+foo5394: () => {},
+foo5395: () => {},
+foo5396: () => {},
+foo5397: () => {},
+foo5398: () => {},
+foo5399: () => {},
+foo5400: () => {},
+foo5401: () => {},
+foo5402: () => {},
+foo5403: () => {},
+foo5404: () => {},
+foo5405: () => {},
+foo5406: () => {},
+foo5407: () => {},
+foo5408: () => {},
+foo5409: () => {},
+foo5410: () => {},
+foo5411: () => {},
+foo5412: () => {},
+foo5413: () => {},
+foo5414: () => {},
+foo5415: () => {},
+foo5416: () => {},
+foo5417: () => {},
+foo5418: () => {},
+foo5419: () => {},
+foo5420: () => {},
+foo5421: () => {},
+foo5422: () => {},
+foo5423: () => {},
+foo5424: () => {},
+foo5425: () => {},
+foo5426: () => {},
+foo5427: () => {},
+foo5428: () => {},
+foo5429: () => {},
+foo5430: () => {},
+foo5431: () => {},
+foo5432: () => {},
+foo5433: () => {},
+foo5434: () => {},
+foo5435: () => {},
+foo5436: () => {},
+foo5437: () => {},
+foo5438: () => {},
+foo5439: () => {},
+foo5440: () => {},
+foo5441: () => {},
+foo5442: () => {},
+foo5443: () => {},
+foo5444: () => {},
+foo5445: () => {},
+foo5446: () => {},
+foo5447: () => {},
+foo5448: () => {},
+foo5449: () => {},
+foo5450: () => {},
+foo5451: () => {},
+foo5452: () => {},
+foo5453: () => {},
+foo5454: () => {},
+foo5455: () => {},
+foo5456: () => {},
+foo5457: () => {},
+foo5458: () => {},
+foo5459: () => {},
+foo5460: () => {},
+foo5461: () => {},
+foo5462: () => {},
+foo5463: () => {},
+foo5464: () => {},
+foo5465: () => {},
+foo5466: () => {},
+foo5467: () => {},
+foo5468: () => {},
+foo5469: () => {},
+foo5470: () => {},
+foo5471: () => {},
+foo5472: () => {},
+foo5473: () => {},
+foo5474: () => {},
+foo5475: () => {},
+foo5476: () => {},
+foo5477: () => {},
+foo5478: () => {},
+foo5479: () => {},
+foo5480: () => {},
+foo5481: () => {},
+foo5482: () => {},
+foo5483: () => {},
+foo5484: () => {},
+foo5485: () => {},
+foo5486: () => {},
+foo5487: () => {},
+foo5488: () => {},
+foo5489: () => {},
+foo5490: () => {},
+foo5491: () => {},
+foo5492: () => {},
+foo5493: () => {},
+foo5494: () => {},
+foo5495: () => {},
+foo5496: () => {},
+foo5497: () => {},
+foo5498: () => {},
+foo5499: () => {},
+foo5500: () => {},
+foo5501: () => {},
+foo5502: () => {},
+foo5503: () => {},
+foo5504: () => {},
+foo5505: () => {},
+foo5506: () => {},
+foo5507: () => {},
+foo5508: () => {},
+foo5509: () => {},
+foo5510: () => {},
+foo5511: () => {},
+foo5512: () => {},
+foo5513: () => {},
+foo5514: () => {},
+foo5515: () => {},
+foo5516: () => {},
+foo5517: () => {},
+foo5518: () => {},
+foo5519: () => {},
+foo5520: () => {},
+foo5521: () => {},
+foo5522: () => {},
+foo5523: () => {},
+foo5524: () => {},
+foo5525: () => {},
+foo5526: () => {},
+foo5527: () => {},
+foo5528: () => {},
+foo5529: () => {},
+foo5530: () => {},
+foo5531: () => {},
+foo5532: () => {},
+foo5533: () => {},
+foo5534: () => {},
+foo5535: () => {},
+foo5536: () => {},
+foo5537: () => {},
+foo5538: () => {},
+foo5539: () => {},
+foo5540: () => {},
+foo5541: () => {},
+foo5542: () => {},
+foo5543: () => {},
+foo5544: () => {},
+foo5545: () => {},
+foo5546: () => {},
+foo5547: () => {},
+foo5548: () => {},
+foo5549: () => {},
+foo5550: () => {},
+foo5551: () => {},
+foo5552: () => {},
+foo5553: () => {},
+foo5554: () => {},
+foo5555: () => {},
+foo5556: () => {},
+foo5557: () => {},
+foo5558: () => {},
+foo5559: () => {},
+foo5560: () => {},
+foo5561: () => {},
+foo5562: () => {},
+foo5563: () => {},
+foo5564: () => {},
+foo5565: () => {},
+foo5566: () => {},
+foo5567: () => {},
+foo5568: () => {},
+foo5569: () => {},
+foo5570: () => {},
+foo5571: () => {},
+foo5572: () => {},
+foo5573: () => {},
+foo5574: () => {},
+foo5575: () => {},
+foo5576: () => {},
+foo5577: () => {},
+foo5578: () => {},
+foo5579: () => {},
+foo5580: () => {},
+foo5581: () => {},
+foo5582: () => {},
+foo5583: () => {},
+foo5584: () => {},
+foo5585: () => {},
+foo5586: () => {},
+foo5587: () => {},
+foo5588: () => {},
+foo5589: () => {},
+foo5590: () => {},
+foo5591: () => {},
+foo5592: () => {},
+foo5593: () => {},
+foo5594: () => {},
+foo5595: () => {},
+foo5596: () => {},
+foo5597: () => {},
+foo5598: () => {},
+foo5599: () => {},
+foo5600: () => {},
+foo5601: () => {},
+foo5602: () => {},
+foo5603: () => {},
+foo5604: () => {},
+foo5605: () => {},
+foo5606: () => {},
+foo5607: () => {},
+foo5608: () => {},
+foo5609: () => {},
+foo5610: () => {},
+foo5611: () => {},
+foo5612: () => {},
+foo5613: () => {},
+foo5614: () => {},
+foo5615: () => {},
+foo5616: () => {},
+foo5617: () => {},
+foo5618: () => {},
+foo5619: () => {},
+foo5620: () => {},
+foo5621: () => {},
+foo5622: () => {},
+foo5623: () => {},
+foo5624: () => {},
+foo5625: () => {},
+foo5626: () => {},
+foo5627: () => {},
+foo5628: () => {},
+foo5629: () => {},
+foo5630: () => {},
+foo5631: () => {},
+foo5632: () => {},
+foo5633: () => {},
+foo5634: () => {},
+foo5635: () => {},
+foo5636: () => {},
+foo5637: () => {},
+foo5638: () => {},
+foo5639: () => {},
+foo5640: () => {},
+foo5641: () => {},
+foo5642: () => {},
+foo5643: () => {},
+foo5644: () => {},
+foo5645: () => {},
+foo5646: () => {},
+foo5647: () => {},
+foo5648: () => {},
+foo5649: () => {},
+foo5650: () => {},
+foo5651: () => {},
+foo5652: () => {},
+foo5653: () => {},
+foo5654: () => {},
+foo5655: () => {},
+foo5656: () => {},
+foo5657: () => {},
+foo5658: () => {},
+foo5659: () => {},
+foo5660: () => {},
+foo5661: () => {},
+foo5662: () => {},
+foo5663: () => {},
+foo5664: () => {},
+foo5665: () => {},
+foo5666: () => {},
+foo5667: () => {},
+foo5668: () => {},
+foo5669: () => {},
+foo5670: () => {},
+foo5671: () => {},
+foo5672: () => {},
+foo5673: () => {},
+foo5674: () => {},
+foo5675: () => {},
+foo5676: () => {},
+foo5677: () => {},
+foo5678: () => {},
+foo5679: () => {},
+foo5680: () => {},
+foo5681: () => {},
+foo5682: () => {},
+foo5683: () => {},
+foo5684: () => {},
+foo5685: () => {},
+foo5686: () => {},
+foo5687: () => {},
+foo5688: () => {},
+foo5689: () => {},
+foo5690: () => {},
+foo5691: () => {},
+foo5692: () => {},
+foo5693: () => {},
+foo5694: () => {},
+foo5695: () => {},
+foo5696: () => {},
+foo5697: () => {},
+foo5698: () => {},
+foo5699: () => {},
+foo5700: () => {},
+foo5701: () => {},
+foo5702: () => {},
+foo5703: () => {},
+foo5704: () => {},
+foo5705: () => {},
+foo5706: () => {},
+foo5707: () => {},
+foo5708: () => {},
+foo5709: () => {},
+foo5710: () => {},
+foo5711: () => {},
+foo5712: () => {},
+foo5713: () => {},
+foo5714: () => {},
+foo5715: () => {},
+foo5716: () => {},
+foo5717: () => {},
+foo5718: () => {},
+foo5719: () => {},
+foo5720: () => {},
+foo5721: () => {},
+foo5722: () => {},
+foo5723: () => {},
+foo5724: () => {},
+foo5725: () => {},
+foo5726: () => {},
+foo5727: () => {},
+foo5728: () => {},
+foo5729: () => {},
+foo5730: () => {},
+foo5731: () => {},
+foo5732: () => {},
+foo5733: () => {},
+foo5734: () => {},
+foo5735: () => {},
+foo5736: () => {},
+foo5737: () => {},
+foo5738: () => {},
+foo5739: () => {},
+foo5740: () => {},
+foo5741: () => {},
+foo5742: () => {},
+foo5743: () => {},
+foo5744: () => {},
+foo5745: () => {},
+foo5746: () => {},
+foo5747: () => {},
+foo5748: () => {},
+foo5749: () => {},
+foo5750: () => {},
+foo5751: () => {},
+foo5752: () => {},
+foo5753: () => {},
+foo5754: () => {},
+foo5755: () => {},
+foo5756: () => {},
+foo5757: () => {},
+foo5758: () => {},
+foo5759: () => {},
+foo5760: () => {},
+foo5761: () => {},
+foo5762: () => {},
+foo5763: () => {},
+foo5764: () => {},
+foo5765: () => {},
+foo5766: () => {},
+foo5767: () => {},
+foo5768: () => {},
+foo5769: () => {},
+foo5770: () => {},
+foo5771: () => {},
+foo5772: () => {},
+foo5773: () => {},
+foo5774: () => {},
+foo5775: () => {},
+foo5776: () => {},
+foo5777: () => {},
+foo5778: () => {},
+foo5779: () => {},
+foo5780: () => {},
+foo5781: () => {},
+foo5782: () => {},
+foo5783: () => {},
+foo5784: () => {},
+foo5785: () => {},
+foo5786: () => {},
+foo5787: () => {},
+foo5788: () => {},
+foo5789: () => {},
+foo5790: () => {},
+foo5791: () => {},
+foo5792: () => {},
+foo5793: () => {},
+foo5794: () => {},
+foo5795: () => {},
+foo5796: () => {},
+foo5797: () => {},
+foo5798: () => {},
+foo5799: () => {},
+foo5800: () => {},
+foo5801: () => {},
+foo5802: () => {},
+foo5803: () => {},
+foo5804: () => {},
+foo5805: () => {},
+foo5806: () => {},
+foo5807: () => {},
+foo5808: () => {},
+foo5809: () => {},
+foo5810: () => {},
+foo5811: () => {},
+foo5812: () => {},
+foo5813: () => {},
+foo5814: () => {},
+foo5815: () => {},
+foo5816: () => {},
+foo5817: () => {},
+foo5818: () => {},
+foo5819: () => {},
+foo5820: () => {},
+foo5821: () => {},
+foo5822: () => {},
+foo5823: () => {},
+foo5824: () => {},
+foo5825: () => {},
+foo5826: () => {},
+foo5827: () => {},
+foo5828: () => {},
+foo5829: () => {},
+foo5830: () => {},
+foo5831: () => {},
+foo5832: () => {},
+foo5833: () => {},
+foo5834: () => {},
+foo5835: () => {},
+foo5836: () => {},
+foo5837: () => {},
+foo5838: () => {},
+foo5839: () => {},
+foo5840: () => {},
+foo5841: () => {},
+foo5842: () => {},
+foo5843: () => {},
+foo5844: () => {},
+foo5845: () => {},
+foo5846: () => {},
+foo5847: () => {},
+foo5848: () => {},
+foo5849: () => {},
+foo5850: () => {},
+foo5851: () => {},
+foo5852: () => {},
+foo5853: () => {},
+foo5854: () => {},
+foo5855: () => {},
+foo5856: () => {},
+foo5857: () => {},
+foo5858: () => {},
+foo5859: () => {},
+foo5860: () => {},
+foo5861: () => {},
+foo5862: () => {},
+foo5863: () => {},
+foo5864: () => {},
+foo5865: () => {},
+foo5866: () => {},
+foo5867: () => {},
+foo5868: () => {},
+foo5869: () => {},
+foo5870: () => {},
+foo5871: () => {},
+foo5872: () => {},
+foo5873: () => {},
+foo5874: () => {},
+foo5875: () => {},
+foo5876: () => {},
+foo5877: () => {},
+foo5878: () => {},
+foo5879: () => {},
+foo5880: () => {},
+foo5881: () => {},
+foo5882: () => {},
+foo5883: () => {},
+foo5884: () => {},
+foo5885: () => {},
+foo5886: () => {},
+foo5887: () => {},
+foo5888: () => {},
+foo5889: () => {},
+foo5890: () => {},
+foo5891: () => {},
+foo5892: () => {},
+foo5893: () => {},
+foo5894: () => {},
+foo5895: () => {},
+foo5896: () => {},
+foo5897: () => {},
+foo5898: () => {},
+foo5899: () => {},
+foo5900: () => {},
+foo5901: () => {},
+foo5902: () => {},
+foo5903: () => {},
+foo5904: () => {},
+foo5905: () => {},
+foo5906: () => {},
+foo5907: () => {},
+foo5908: () => {},
+foo5909: () => {},
+foo5910: () => {},
+foo5911: () => {},
+foo5912: () => {},
+foo5913: () => {},
+foo5914: () => {},
+foo5915: () => {},
+foo5916: () => {},
+foo5917: () => {},
+foo5918: () => {},
+foo5919: () => {},
+foo5920: () => {},
+foo5921: () => {},
+foo5922: () => {},
+foo5923: () => {},
+foo5924: () => {},
+foo5925: () => {},
+foo5926: () => {},
+foo5927: () => {},
+foo5928: () => {},
+foo5929: () => {},
+foo5930: () => {},
+foo5931: () => {},
+foo5932: () => {},
+foo5933: () => {},
+foo5934: () => {},
+foo5935: () => {},
+foo5936: () => {},
+foo5937: () => {},
+foo5938: () => {},
+foo5939: () => {},
+foo5940: () => {},
+foo5941: () => {},
+foo5942: () => {},
+foo5943: () => {},
+foo5944: () => {},
+foo5945: () => {},
+foo5946: () => {},
+foo5947: () => {},
+foo5948: () => {},
+foo5949: () => {},
+foo5950: () => {},
+foo5951: () => {},
+foo5952: () => {},
+foo5953: () => {},
+foo5954: () => {},
+foo5955: () => {},
+foo5956: () => {},
+foo5957: () => {},
+foo5958: () => {},
+foo5959: () => {},
+foo5960: () => {},
+foo5961: () => {},
+foo5962: () => {},
+foo5963: () => {},
+foo5964: () => {},
+foo5965: () => {},
+foo5966: () => {},
+foo5967: () => {},
+foo5968: () => {},
+foo5969: () => {},
+foo5970: () => {},
+foo5971: () => {},
+foo5972: () => {},
+foo5973: () => {},
+foo5974: () => {},
+foo5975: () => {},
+foo5976: () => {},
+foo5977: () => {},
+foo5978: () => {},
+foo5979: () => {},
+foo5980: () => {},
+foo5981: () => {},
+foo5982: () => {},
+foo5983: () => {},
+foo5984: () => {},
+foo5985: () => {},
+foo5986: () => {},
+foo5987: () => {},
+foo5988: () => {},
+foo5989: () => {},
+foo5990: () => {},
+foo5991: () => {},
+foo5992: () => {},
+foo5993: () => {},
+foo5994: () => {},
+foo5995: () => {},
+foo5996: () => {},
+foo5997: () => {},
+foo5998: () => {},
+foo5999: () => {},
+foo6000: () => {},
+foo6001: () => {},
+foo6002: () => {},
+foo6003: () => {},
+foo6004: () => {},
+foo6005: () => {},
+foo6006: () => {},
+foo6007: () => {},
+foo6008: () => {},
+foo6009: () => {},
+foo6010: () => {},
+foo6011: () => {},
+foo6012: () => {},
+foo6013: () => {},
+foo6014: () => {},
+foo6015: () => {},
+foo6016: () => {},
+foo6017: () => {},
+foo6018: () => {},
+foo6019: () => {},
+foo6020: () => {},
+foo6021: () => {},
+foo6022: () => {},
+foo6023: () => {},
+foo6024: () => {},
+foo6025: () => {},
+foo6026: () => {},
+foo6027: () => {},
+foo6028: () => {},
+foo6029: () => {},
+foo6030: () => {},
+foo6031: () => {},
+foo6032: () => {},
+foo6033: () => {},
+foo6034: () => {},
+foo6035: () => {},
+foo6036: () => {},
+foo6037: () => {},
+foo6038: () => {},
+foo6039: () => {},
+foo6040: () => {},
+foo6041: () => {},
+foo6042: () => {},
+foo6043: () => {},
+foo6044: () => {},
+foo6045: () => {},
+foo6046: () => {},
+foo6047: () => {},
+foo6048: () => {},
+foo6049: () => {},
+foo6050: () => {},
+foo6051: () => {},
+foo6052: () => {},
+foo6053: () => {},
+foo6054: () => {},
+foo6055: () => {},
+foo6056: () => {},
+foo6057: () => {},
+foo6058: () => {},
+foo6059: () => {},
+foo6060: () => {},
+foo6061: () => {},
+foo6062: () => {},
+foo6063: () => {},
+foo6064: () => {},
+foo6065: () => {},
+foo6066: () => {},
+foo6067: () => {},
+foo6068: () => {},
+foo6069: () => {},
+foo6070: () => {},
+foo6071: () => {},
+foo6072: () => {},
+foo6073: () => {},
+foo6074: () => {},
+foo6075: () => {},
+foo6076: () => {},
+foo6077: () => {},
+foo6078: () => {},
+foo6079: () => {},
+foo6080: () => {},
+foo6081: () => {},
+foo6082: () => {},
+foo6083: () => {},
+foo6084: () => {},
+foo6085: () => {},
+foo6086: () => {},
+foo6087: () => {},
+foo6088: () => {},
+foo6089: () => {},
+foo6090: () => {},
+foo6091: () => {},
+foo6092: () => {},
+foo6093: () => {},
+foo6094: () => {},
+foo6095: () => {},
+foo6096: () => {},
+foo6097: () => {},
+foo6098: () => {},
+foo6099: () => {},
+foo6100: () => {},
+foo6101: () => {},
+foo6102: () => {},
+foo6103: () => {},
+foo6104: () => {},
+foo6105: () => {},
+foo6106: () => {},
+foo6107: () => {},
+foo6108: () => {},
+foo6109: () => {},
+foo6110: () => {},
+foo6111: () => {},
+foo6112: () => {},
+foo6113: () => {},
+foo6114: () => {},
+foo6115: () => {},
+foo6116: () => {},
+foo6117: () => {},
+foo6118: () => {},
+foo6119: () => {},
+foo6120: () => {},
+foo6121: () => {},
+foo6122: () => {},
+foo6123: () => {},
+foo6124: () => {},
+foo6125: () => {},
+foo6126: () => {},
+foo6127: () => {},
+foo6128: () => {},
+foo6129: () => {},
+foo6130: () => {},
+foo6131: () => {},
+foo6132: () => {},
+foo6133: () => {},
+foo6134: () => {},
+foo6135: () => {},
+foo6136: () => {},
+foo6137: () => {},
+foo6138: () => {},
+foo6139: () => {},
+foo6140: () => {},
+foo6141: () => {},
+foo6142: () => {},
+foo6143: () => {},
+foo6144: () => {},
+foo6145: () => {},
+foo6146: () => {},
+foo6147: () => {},
+foo6148: () => {},
+foo6149: () => {},
+foo6150: () => {},
+foo6151: () => {},
+foo6152: () => {},
+foo6153: () => {},
+foo6154: () => {},
+foo6155: () => {},
+foo6156: () => {},
+foo6157: () => {},
+foo6158: () => {},
+foo6159: () => {},
+foo6160: () => {},
+foo6161: () => {},
+foo6162: () => {},
+foo6163: () => {},
+foo6164: () => {},
+foo6165: () => {},
+foo6166: () => {},
+foo6167: () => {},
+foo6168: () => {},
+foo6169: () => {},
+foo6170: () => {},
+foo6171: () => {},
+foo6172: () => {},
+foo6173: () => {},
+foo6174: () => {},
+foo6175: () => {},
+foo6176: () => {},
+foo6177: () => {},
+foo6178: () => {},
+foo6179: () => {},
+foo6180: () => {},
+foo6181: () => {},
+foo6182: () => {},
+foo6183: () => {},
+foo6184: () => {},
+foo6185: () => {},
+foo6186: () => {},
+foo6187: () => {},
+foo6188: () => {},
+foo6189: () => {},
+foo6190: () => {},
+foo6191: () => {},
+foo6192: () => {},
+foo6193: () => {},
+foo6194: () => {},
+foo6195: () => {},
+foo6196: () => {},
+foo6197: () => {},
+foo6198: () => {},
+foo6199: () => {},
+foo6200: () => {},
+foo6201: () => {},
+foo6202: () => {},
+foo6203: () => {},
+foo6204: () => {},
+foo6205: () => {},
+foo6206: () => {},
+foo6207: () => {},
+foo6208: () => {},
+foo6209: () => {},
+foo6210: () => {},
+foo6211: () => {},
+foo6212: () => {},
+foo6213: () => {},
+foo6214: () => {},
+foo6215: () => {},
+foo6216: () => {},
+foo6217: () => {},
+foo6218: () => {},
+foo6219: () => {},
+foo6220: () => {},
+foo6221: () => {},
+foo6222: () => {},
+foo6223: () => {},
+foo6224: () => {},
+foo6225: () => {},
+foo6226: () => {},
+foo6227: () => {},
+foo6228: () => {},
+foo6229: () => {},
+foo6230: () => {},
+foo6231: () => {},
+foo6232: () => {},
+foo6233: () => {},
+foo6234: () => {},
+foo6235: () => {},
+foo6236: () => {},
+foo6237: () => {},
+foo6238: () => {},
+foo6239: () => {},
+foo6240: () => {},
+foo6241: () => {},
+foo6242: () => {},
+foo6243: () => {},
+foo6244: () => {},
+foo6245: () => {},
+foo6246: () => {},
+foo6247: () => {},
+foo6248: () => {},
+foo6249: () => {},
+foo6250: () => {},
+foo6251: () => {},
+foo6252: () => {},
+foo6253: () => {},
+foo6254: () => {},
+foo6255: () => {},
+foo6256: () => {},
+foo6257: () => {},
+foo6258: () => {},
+foo6259: () => {},
+foo6260: () => {},
+foo6261: () => {},
+foo6262: () => {},
+foo6263: () => {},
+foo6264: () => {},
+foo6265: () => {},
+foo6266: () => {},
+foo6267: () => {},
+foo6268: () => {},
+foo6269: () => {},
+foo6270: () => {},
+foo6271: () => {},
+foo6272: () => {},
+foo6273: () => {},
+foo6274: () => {},
+foo6275: () => {},
+foo6276: () => {},
+foo6277: () => {},
+foo6278: () => {},
+foo6279: () => {},
+foo6280: () => {},
+foo6281: () => {},
+foo6282: () => {},
+foo6283: () => {},
+foo6284: () => {},
+foo6285: () => {},
+foo6286: () => {},
+foo6287: () => {},
+foo6288: () => {},
+foo6289: () => {},
+foo6290: () => {},
+foo6291: () => {},
+foo6292: () => {},
+foo6293: () => {},
+foo6294: () => {},
+foo6295: () => {},
+foo6296: () => {},
+foo6297: () => {},
+foo6298: () => {},
+foo6299: () => {},
+foo6300: () => {},
+foo6301: () => {},
+foo6302: () => {},
+foo6303: () => {},
+foo6304: () => {},
+foo6305: () => {},
+foo6306: () => {},
+foo6307: () => {},
+foo6308: () => {},
+foo6309: () => {},
+foo6310: () => {},
+foo6311: () => {},
+foo6312: () => {},
+foo6313: () => {},
+foo6314: () => {},
+foo6315: () => {},
+foo6316: () => {},
+foo6317: () => {},
+foo6318: () => {},
+foo6319: () => {},
+foo6320: () => {},
+foo6321: () => {},
+foo6322: () => {},
+foo6323: () => {},
+foo6324: () => {},
+foo6325: () => {},
+foo6326: () => {},
+foo6327: () => {},
+foo6328: () => {},
+foo6329: () => {},
+foo6330: () => {},
+foo6331: () => {},
+foo6332: () => {},
+foo6333: () => {},
+foo6334: () => {},
+foo6335: () => {},
+foo6336: () => {},
+foo6337: () => {},
+foo6338: () => {},
+foo6339: () => {},
+foo6340: () => {},
+foo6341: () => {},
+foo6342: () => {},
+foo6343: () => {},
+foo6344: () => {},
+foo6345: () => {},
+foo6346: () => {},
+foo6347: () => {},
+foo6348: () => {},
+foo6349: () => {},
+foo6350: () => {},
+foo6351: () => {},
+foo6352: () => {},
+foo6353: () => {},
+foo6354: () => {},
+foo6355: () => {},
+foo6356: () => {},
+foo6357: () => {},
+foo6358: () => {},
+foo6359: () => {},
+foo6360: () => {},
+foo6361: () => {},
+foo6362: () => {},
+foo6363: () => {},
+foo6364: () => {},
+foo6365: () => {},
+foo6366: () => {},
+foo6367: () => {},
+foo6368: () => {},
+foo6369: () => {},
+foo6370: () => {},
+foo6371: () => {},
+foo6372: () => {},
+foo6373: () => {},
+foo6374: () => {},
+foo6375: () => {},
+foo6376: () => {},
+foo6377: () => {},
+foo6378: () => {},
+foo6379: () => {},
+foo6380: () => {},
+foo6381: () => {},
+foo6382: () => {},
+foo6383: () => {},
+foo6384: () => {},
+foo6385: () => {},
+foo6386: () => {},
+foo6387: () => {},
+foo6388: () => {},
+foo6389: () => {},
+foo6390: () => {},
+foo6391: () => {},
+foo6392: () => {},
+foo6393: () => {},
+foo6394: () => {},
+foo6395: () => {},
+foo6396: () => {},
+foo6397: () => {},
+foo6398: () => {},
+foo6399: () => {},
+foo6400: () => {},
+foo6401: () => {},
+foo6402: () => {},
+foo6403: () => {},
+foo6404: () => {},
+foo6405: () => {},
+foo6406: () => {},
+foo6407: () => {},
+foo6408: () => {},
+foo6409: () => {},
+foo6410: () => {},
+foo6411: () => {},
+foo6412: () => {},
+foo6413: () => {},
+foo6414: () => {},
+foo6415: () => {},
+foo6416: () => {},
+foo6417: () => {},
+foo6418: () => {},
+foo6419: () => {},
+foo6420: () => {},
+foo6421: () => {},
+foo6422: () => {},
+foo6423: () => {},
+foo6424: () => {},
+foo6425: () => {},
+foo6426: () => {},
+foo6427: () => {},
+foo6428: () => {},
+foo6429: () => {},
+foo6430: () => {},
+foo6431: () => {},
+foo6432: () => {},
+foo6433: () => {},
+foo6434: () => {},
+foo6435: () => {},
+foo6436: () => {},
+foo6437: () => {},
+foo6438: () => {},
+foo6439: () => {},
+foo6440: () => {},
+foo6441: () => {},
+foo6442: () => {},
+foo6443: () => {},
+foo6444: () => {},
+foo6445: () => {},
+foo6446: () => {},
+foo6447: () => {},
+foo6448: () => {},
+foo6449: () => {},
+foo6450: () => {},
+foo6451: () => {},
+foo6452: () => {},
+foo6453: () => {},
+foo6454: () => {},
+foo6455: () => {},
+foo6456: () => {},
+foo6457: () => {},
+foo6458: () => {},
+foo6459: () => {},
+foo6460: () => {},
+foo6461: () => {},
+foo6462: () => {},
+foo6463: () => {},
+foo6464: () => {},
+foo6465: () => {},
+foo6466: () => {},
+foo6467: () => {},
+foo6468: () => {},
+foo6469: () => {},
+foo6470: () => {},
+foo6471: () => {},
+foo6472: () => {},
+foo6473: () => {},
+foo6474: () => {},
+foo6475: () => {},
+foo6476: () => {},
+foo6477: () => {},
+foo6478: () => {},
+foo6479: () => {},
+foo6480: () => {},
+foo6481: () => {},
+foo6482: () => {},
+foo6483: () => {},
+foo6484: () => {},
+foo6485: () => {},
+foo6486: () => {},
+foo6487: () => {},
+foo6488: () => {},
+foo6489: () => {},
+foo6490: () => {},
+foo6491: () => {},
+foo6492: () => {},
+foo6493: () => {},
+foo6494: () => {},
+foo6495: () => {},
+foo6496: () => {},
+foo6497: () => {},
+foo6498: () => {},
+foo6499: () => {},
+foo6500: () => {},
+foo6501: () => {},
+foo6502: () => {},
+foo6503: () => {},
+foo6504: () => {},
+foo6505: () => {},
+foo6506: () => {},
+foo6507: () => {},
+foo6508: () => {},
+foo6509: () => {},
+foo6510: () => {},
+foo6511: () => {},
+foo6512: () => {},
+foo6513: () => {},
+foo6514: () => {},
+foo6515: () => {},
+foo6516: () => {},
+foo6517: () => {},
+foo6518: () => {},
+foo6519: () => {},
+foo6520: () => {},
+foo6521: () => {},
+foo6522: () => {},
+foo6523: () => {},
+foo6524: () => {},
+foo6525: () => {},
+foo6526: () => {},
+foo6527: () => {},
+foo6528: () => {},
+foo6529: () => {},
+foo6530: () => {},
+foo6531: () => {},
+foo6532: () => {},
+foo6533: () => {},
+foo6534: () => {},
+foo6535: () => {},
+foo6536: () => {},
+foo6537: () => {},
+foo6538: () => {},
+foo6539: () => {},
+foo6540: () => {},
+foo6541: () => {},
+foo6542: () => {},
+foo6543: () => {},
+foo6544: () => {},
+foo6545: () => {},
+foo6546: () => {},
+foo6547: () => {},
+foo6548: () => {},
+foo6549: () => {},
+foo6550: () => {},
+foo6551: () => {},
+foo6552: () => {},
+foo6553: () => {},
+foo6554: () => {},
+foo6555: () => {},
+foo6556: () => {},
+foo6557: () => {},
+foo6558: () => {},
+foo6559: () => {},
+foo6560: () => {},
+foo6561: () => {},
+foo6562: () => {},
+foo6563: () => {},
+foo6564: () => {},
+foo6565: () => {},
+foo6566: () => {},
+foo6567: () => {},
+foo6568: () => {},
+foo6569: () => {},
+foo6570: () => {},
+foo6571: () => {},
+foo6572: () => {},
+foo6573: () => {},
+foo6574: () => {},
+foo6575: () => {},
+foo6576: () => {},
+foo6577: () => {},
+foo6578: () => {},
+foo6579: () => {},
+foo6580: () => {},
+foo6581: () => {},
+foo6582: () => {},
+foo6583: () => {},
+foo6584: () => {},
+foo6585: () => {},
+foo6586: () => {},
+foo6587: () => {},
+foo6588: () => {},
+foo6589: () => {},
+foo6590: () => {},
+foo6591: () => {},
+foo6592: () => {},
+foo6593: () => {},
+foo6594: () => {},
+foo6595: () => {},
+foo6596: () => {},
+foo6597: () => {},
+foo6598: () => {},
+foo6599: () => {},
+foo6600: () => {},
+foo6601: () => {},
+foo6602: () => {},
+foo6603: () => {},
+foo6604: () => {},
+foo6605: () => {},
+foo6606: () => {},
+foo6607: () => {},
+foo6608: () => {},
+foo6609: () => {},
+foo6610: () => {},
+foo6611: () => {},
+foo6612: () => {},
+foo6613: () => {},
+foo6614: () => {},
+foo6615: () => {},
+foo6616: () => {},
+foo6617: () => {},
+foo6618: () => {},
+foo6619: () => {},
+foo6620: () => {},
+foo6621: () => {},
+foo6622: () => {},
+foo6623: () => {},
+foo6624: () => {},
+foo6625: () => {},
+foo6626: () => {},
+foo6627: () => {},
+foo6628: () => {},
+foo6629: () => {},
+foo6630: () => {},
+foo6631: () => {},
+foo6632: () => {},
+foo6633: () => {},
+foo6634: () => {},
+foo6635: () => {},
+foo6636: () => {},
+foo6637: () => {},
+foo6638: () => {},
+foo6639: () => {},
+foo6640: () => {},
+foo6641: () => {},
+foo6642: () => {},
+foo6643: () => {},
+foo6644: () => {},
+foo6645: () => {},
+foo6646: () => {},
+foo6647: () => {},
+foo6648: () => {},
+foo6649: () => {},
+foo6650: () => {},
+foo6651: () => {},
+foo6652: () => {},
+foo6653: () => {},
+foo6654: () => {},
+foo6655: () => {},
+foo6656: () => {},
+foo6657: () => {},
+foo6658: () => {},
+foo6659: () => {},
+foo6660: () => {},
+foo6661: () => {},
+foo6662: () => {},
+foo6663: () => {},
+foo6664: () => {},
+foo6665: () => {},
+foo6666: () => {},
+foo6667: () => {},
+foo6668: () => {},
+foo6669: () => {},
+foo6670: () => {},
+foo6671: () => {},
+foo6672: () => {},
+foo6673: () => {},
+foo6674: () => {},
+foo6675: () => {},
+foo6676: () => {},
+foo6677: () => {},
+foo6678: () => {},
+foo6679: () => {},
+foo6680: () => {},
+foo6681: () => {},
+foo6682: () => {},
+foo6683: () => {},
+foo6684: () => {},
+foo6685: () => {},
+foo6686: () => {},
+foo6687: () => {},
+foo6688: () => {},
+foo6689: () => {},
+foo6690: () => {},
+foo6691: () => {},
+foo6692: () => {},
+foo6693: () => {},
+foo6694: () => {},
+foo6695: () => {},
+foo6696: () => {},
+foo6697: () => {},
+foo6698: () => {},
+foo6699: () => {},
+foo6700: () => {},
+foo6701: () => {},
+foo6702: () => {},
+foo6703: () => {},
+foo6704: () => {},
+foo6705: () => {},
+foo6706: () => {},
+foo6707: () => {},
+foo6708: () => {},
+foo6709: () => {},
+foo6710: () => {},
+foo6711: () => {},
+foo6712: () => {},
+foo6713: () => {},
+foo6714: () => {},
+foo6715: () => {},
+foo6716: () => {},
+foo6717: () => {},
+foo6718: () => {},
+foo6719: () => {},
+foo6720: () => {},
+foo6721: () => {},
+foo6722: () => {},
+foo6723: () => {},
+foo6724: () => {},
+foo6725: () => {},
+foo6726: () => {},
+foo6727: () => {},
+foo6728: () => {},
+foo6729: () => {},
+foo6730: () => {},
+foo6731: () => {},
+foo6732: () => {},
+foo6733: () => {},
+foo6734: () => {},
+foo6735: () => {},
+foo6736: () => {},
+foo6737: () => {},
+foo6738: () => {},
+foo6739: () => {},
+foo6740: () => {},
+foo6741: () => {},
+foo6742: () => {},
+foo6743: () => {},
+foo6744: () => {},
+foo6745: () => {},
+foo6746: () => {},
+foo6747: () => {},
+foo6748: () => {},
+foo6749: () => {},
+foo6750: () => {},
+foo6751: () => {},
+foo6752: () => {},
+foo6753: () => {},
+foo6754: () => {},
+foo6755: () => {},
+foo6756: () => {},
+foo6757: () => {},
+foo6758: () => {},
+foo6759: () => {},
+foo6760: () => {},
+foo6761: () => {},
+foo6762: () => {},
+foo6763: () => {},
+foo6764: () => {},
+foo6765: () => {},
+foo6766: () => {},
+foo6767: () => {},
+foo6768: () => {},
+foo6769: () => {},
+foo6770: () => {},
+foo6771: () => {},
+foo6772: () => {},
+foo6773: () => {},
+foo6774: () => {},
+foo6775: () => {},
+foo6776: () => {},
+foo6777: () => {},
+foo6778: () => {},
+foo6779: () => {},
+foo6780: () => {},
+foo6781: () => {},
+foo6782: () => {},
+foo6783: () => {},
+foo6784: () => {},
+foo6785: () => {},
+foo6786: () => {},
+foo6787: () => {},
+foo6788: () => {},
+foo6789: () => {},
+foo6790: () => {},
+foo6791: () => {},
+foo6792: () => {},
+foo6793: () => {},
+foo6794: () => {},
+foo6795: () => {},
+foo6796: () => {},
+foo6797: () => {},
+foo6798: () => {},
+foo6799: () => {},
+foo6800: () => {},
+foo6801: () => {},
+foo6802: () => {},
+foo6803: () => {},
+foo6804: () => {},
+foo6805: () => {},
+foo6806: () => {},
+foo6807: () => {},
+foo6808: () => {},
+foo6809: () => {},
+foo6810: () => {},
+foo6811: () => {},
+foo6812: () => {},
+foo6813: () => {},
+foo6814: () => {},
+foo6815: () => {},
+foo6816: () => {},
+foo6817: () => {},
+foo6818: () => {},
+foo6819: () => {},
+foo6820: () => {},
+foo6821: () => {},
+foo6822: () => {},
+foo6823: () => {},
+foo6824: () => {},
+foo6825: () => {},
+foo6826: () => {},
+foo6827: () => {},
+foo6828: () => {},
+foo6829: () => {},
+foo6830: () => {},
+foo6831: () => {},
+foo6832: () => {},
+foo6833: () => {},
+foo6834: () => {},
+foo6835: () => {},
+foo6836: () => {},
+foo6837: () => {},
+foo6838: () => {},
+foo6839: () => {},
+foo6840: () => {},
+foo6841: () => {},
+foo6842: () => {},
+foo6843: () => {},
+foo6844: () => {},
+foo6845: () => {},
+foo6846: () => {},
+foo6847: () => {},
+foo6848: () => {},
+foo6849: () => {},
+foo6850: () => {},
+foo6851: () => {},
+foo6852: () => {},
+foo6853: () => {},
+foo6854: () => {},
+foo6855: () => {},
+foo6856: () => {},
+foo6857: () => {},
+foo6858: () => {},
+foo6859: () => {},
+foo6860: () => {},
+foo6861: () => {},
+foo6862: () => {},
+foo6863: () => {},
+foo6864: () => {},
+foo6865: () => {},
+foo6866: () => {},
+foo6867: () => {},
+foo6868: () => {},
+foo6869: () => {},
+foo6870: () => {},
+foo6871: () => {},
+foo6872: () => {},
+foo6873: () => {},
+foo6874: () => {},
+foo6875: () => {},
+foo6876: () => {},
+foo6877: () => {},
+foo6878: () => {},
+foo6879: () => {},
+foo6880: () => {},
+foo6881: () => {},
+foo6882: () => {},
+foo6883: () => {},
+foo6884: () => {},
+foo6885: () => {},
+foo6886: () => {},
+foo6887: () => {},
+foo6888: () => {},
+foo6889: () => {},
+foo6890: () => {},
+foo6891: () => {},
+foo6892: () => {},
+foo6893: () => {},
+foo6894: () => {},
+foo6895: () => {},
+foo6896: () => {},
+foo6897: () => {},
+foo6898: () => {},
+foo6899: () => {},
+foo6900: () => {},
+foo6901: () => {},
+foo6902: () => {},
+foo6903: () => {},
+foo6904: () => {},
+foo6905: () => {},
+foo6906: () => {},
+foo6907: () => {},
+foo6908: () => {},
+foo6909: () => {},
+foo6910: () => {},
+foo6911: () => {},
+foo6912: () => {},
+foo6913: () => {},
+foo6914: () => {},
+foo6915: () => {},
+foo6916: () => {},
+foo6917: () => {},
+foo6918: () => {},
+foo6919: () => {},
+foo6920: () => {},
+foo6921: () => {},
+foo6922: () => {},
+foo6923: () => {},
+foo6924: () => {},
+foo6925: () => {},
+foo6926: () => {},
+foo6927: () => {},
+foo6928: () => {},
+foo6929: () => {},
+foo6930: () => {},
+foo6931: () => {},
+foo6932: () => {},
+foo6933: () => {},
+foo6934: () => {},
+foo6935: () => {},
+foo6936: () => {},
+foo6937: () => {},
+foo6938: () => {},
+foo6939: () => {},
+foo6940: () => {},
+foo6941: () => {},
+foo6942: () => {},
+foo6943: () => {},
+foo6944: () => {},
+foo6945: () => {},
+foo6946: () => {},
+foo6947: () => {},
+foo6948: () => {},
+foo6949: () => {},
+foo6950: () => {},
+foo6951: () => {},
+foo6952: () => {},
+foo6953: () => {},
+foo6954: () => {},
+foo6955: () => {},
+foo6956: () => {},
+foo6957: () => {},
+foo6958: () => {},
+foo6959: () => {},
+foo6960: () => {},
+foo6961: () => {},
+foo6962: () => {},
+foo6963: () => {},
+foo6964: () => {},
+foo6965: () => {},
+foo6966: () => {},
+foo6967: () => {},
+foo6968: () => {},
+foo6969: () => {},
+foo6970: () => {},
+foo6971: () => {},
+foo6972: () => {},
+foo6973: () => {},
+foo6974: () => {},
+foo6975: () => {},
+foo6976: () => {},
+foo6977: () => {},
+foo6978: () => {},
+foo6979: () => {},
+foo6980: () => {},
+foo6981: () => {},
+foo6982: () => {},
+foo6983: () => {},
+foo6984: () => {},
+foo6985: () => {},
+foo6986: () => {},
+foo6987: () => {},
+foo6988: () => {},
+foo6989: () => {},
+foo6990: () => {},
+foo6991: () => {},
+foo6992: () => {},
+foo6993: () => {},
+foo6994: () => {},
+foo6995: () => {},
+foo6996: () => {},
+foo6997: () => {},
+foo6998: () => {},
+foo6999: () => {},
+foo7000: () => {},
+foo7001: () => {},
+foo7002: () => {},
+foo7003: () => {},
+foo7004: () => {},
+foo7005: () => {},
+foo7006: () => {},
+foo7007: () => {},
+foo7008: () => {},
+foo7009: () => {},
+foo7010: () => {},
+foo7011: () => {},
+foo7012: () => {},
+foo7013: () => {},
+foo7014: () => {},
+foo7015: () => {},
+foo7016: () => {},
+foo7017: () => {},
+foo7018: () => {},
+foo7019: () => {},
+foo7020: () => {},
+foo7021: () => {},
+foo7022: () => {},
+foo7023: () => {},
+foo7024: () => {},
+foo7025: () => {},
+foo7026: () => {},
+foo7027: () => {},
+foo7028: () => {},
+foo7029: () => {},
+foo7030: () => {},
+foo7031: () => {},
+foo7032: () => {},
+foo7033: () => {},
+foo7034: () => {},
+foo7035: () => {},
+foo7036: () => {},
+foo7037: () => {},
+foo7038: () => {},
+foo7039: () => {},
+foo7040: () => {},
+foo7041: () => {},
+foo7042: () => {},
+foo7043: () => {},
+foo7044: () => {},
+foo7045: () => {},
+foo7046: () => {},
+foo7047: () => {},
+foo7048: () => {},
+foo7049: () => {},
+foo7050: () => {},
+foo7051: () => {},
+foo7052: () => {},
+foo7053: () => {},
+foo7054: () => {},
+foo7055: () => {},
+foo7056: () => {},
+foo7057: () => {},
+foo7058: () => {},
+foo7059: () => {},
+foo7060: () => {},
+foo7061: () => {},
+foo7062: () => {},
+foo7063: () => {},
+foo7064: () => {},
+foo7065: () => {},
+foo7066: () => {},
+foo7067: () => {},
+foo7068: () => {},
+foo7069: () => {},
+foo7070: () => {},
+foo7071: () => {},
+foo7072: () => {},
+foo7073: () => {},
+foo7074: () => {},
+foo7075: () => {},
+foo7076: () => {},
+foo7077: () => {},
+foo7078: () => {},
+foo7079: () => {},
+foo7080: () => {},
+foo7081: () => {},
+foo7082: () => {},
+foo7083: () => {},
+foo7084: () => {},
+foo7085: () => {},
+foo7086: () => {},
+foo7087: () => {},
+foo7088: () => {},
+foo7089: () => {},
+foo7090: () => {},
+foo7091: () => {},
+foo7092: () => {},
+foo7093: () => {},
+foo7094: () => {},
+foo7095: () => {},
+foo7096: () => {},
+foo7097: () => {},
+foo7098: () => {},
+foo7099: () => {},
+foo7100: () => {},
+foo7101: () => {},
+foo7102: () => {},
+foo7103: () => {},
+foo7104: () => {},
+foo7105: () => {},
+foo7106: () => {},
+foo7107: () => {},
+foo7108: () => {},
+foo7109: () => {},
+foo7110: () => {},
+foo7111: () => {},
+foo7112: () => {},
+foo7113: () => {},
+foo7114: () => {},
+foo7115: () => {},
+foo7116: () => {},
+foo7117: () => {},
+foo7118: () => {},
+foo7119: () => {},
+foo7120: () => {},
+foo7121: () => {},
+foo7122: () => {},
+foo7123: () => {},
+foo7124: () => {},
+foo7125: () => {},
+foo7126: () => {},
+foo7127: () => {},
+foo7128: () => {},
+foo7129: () => {},
+foo7130: () => {},
+foo7131: () => {},
+foo7132: () => {},
+foo7133: () => {},
+foo7134: () => {},
+foo7135: () => {},
+foo7136: () => {},
+foo7137: () => {},
+foo7138: () => {},
+foo7139: () => {},
+foo7140: () => {},
+foo7141: () => {},
+foo7142: () => {},
+foo7143: () => {},
+foo7144: () => {},
+foo7145: () => {},
+foo7146: () => {},
+foo7147: () => {},
+foo7148: () => {},
+foo7149: () => {},
+foo7150: () => {},
+foo7151: () => {},
+foo7152: () => {},
+foo7153: () => {},
+foo7154: () => {},
+foo7155: () => {},
+foo7156: () => {},
+foo7157: () => {},
+foo7158: () => {},
+foo7159: () => {},
+foo7160: () => {},
+foo7161: () => {},
+foo7162: () => {},
+foo7163: () => {},
+foo7164: () => {},
+foo7165: () => {},
+foo7166: () => {},
+foo7167: () => {},
+foo7168: () => {},
+foo7169: () => {},
+foo7170: () => {},
+foo7171: () => {},
+foo7172: () => {},
+foo7173: () => {},
+foo7174: () => {},
+foo7175: () => {},
+foo7176: () => {},
+foo7177: () => {},
+foo7178: () => {},
+foo7179: () => {},
+foo7180: () => {},
+foo7181: () => {},
+foo7182: () => {},
+foo7183: () => {},
+foo7184: () => {},
+foo7185: () => {},
+foo7186: () => {},
+foo7187: () => {},
+foo7188: () => {},
+foo7189: () => {},
+foo7190: () => {},
+foo7191: () => {},
+foo7192: () => {},
+foo7193: () => {},
+foo7194: () => {},
+foo7195: () => {},
+foo7196: () => {},
+foo7197: () => {},
+foo7198: () => {},
+foo7199: () => {},
+foo7200: () => {},
+foo7201: () => {},
+foo7202: () => {},
+foo7203: () => {},
+foo7204: () => {},
+foo7205: () => {},
+foo7206: () => {},
+foo7207: () => {},
+foo7208: () => {},
+foo7209: () => {},
+foo7210: () => {},
+foo7211: () => {},
+foo7212: () => {},
+foo7213: () => {},
+foo7214: () => {},
+foo7215: () => {},
+foo7216: () => {},
+foo7217: () => {},
+foo7218: () => {},
+foo7219: () => {},
+foo7220: () => {},
+foo7221: () => {},
+foo7222: () => {},
+foo7223: () => {},
+foo7224: () => {},
+foo7225: () => {},
+foo7226: () => {},
+foo7227: () => {},
+foo7228: () => {},
+foo7229: () => {},
+foo7230: () => {},
+foo7231: () => {},
+foo7232: () => {},
+foo7233: () => {},
+foo7234: () => {},
+foo7235: () => {},
+foo7236: () => {},
+foo7237: () => {},
+foo7238: () => {},
+foo7239: () => {},
+foo7240: () => {},
+foo7241: () => {},
+foo7242: () => {},
+foo7243: () => {},
+foo7244: () => {},
+foo7245: () => {},
+foo7246: () => {},
+foo7247: () => {},
+foo7248: () => {},
+foo7249: () => {},
+foo7250: () => {},
+foo7251: () => {},
+foo7252: () => {},
+foo7253: () => {},
+foo7254: () => {},
+foo7255: () => {},
+foo7256: () => {},
+foo7257: () => {},
+foo7258: () => {},
+foo7259: () => {},
+foo7260: () => {},
+foo7261: () => {},
+foo7262: () => {},
+foo7263: () => {},
+foo7264: () => {},
+foo7265: () => {},
+foo7266: () => {},
+foo7267: () => {},
+foo7268: () => {},
+foo7269: () => {},
+foo7270: () => {},
+foo7271: () => {},
+foo7272: () => {},
+foo7273: () => {},
+foo7274: () => {},
+foo7275: () => {},
+foo7276: () => {},
+foo7277: () => {},
+foo7278: () => {},
+foo7279: () => {},
+foo7280: () => {},
+foo7281: () => {},
+foo7282: () => {},
+foo7283: () => {},
+foo7284: () => {},
+foo7285: () => {},
+foo7286: () => {},
+foo7287: () => {},
+foo7288: () => {},
+foo7289: () => {},
+foo7290: () => {},
+foo7291: () => {},
+foo7292: () => {},
+foo7293: () => {},
+foo7294: () => {},
+foo7295: () => {},
+foo7296: () => {},
+foo7297: () => {},
+foo7298: () => {},
+foo7299: () => {},
+foo7300: () => {},
+foo7301: () => {},
+foo7302: () => {},
+foo7303: () => {},
+foo7304: () => {},
+foo7305: () => {},
+foo7306: () => {},
+foo7307: () => {},
+foo7308: () => {},
+foo7309: () => {},
+foo7310: () => {},
+foo7311: () => {},
+foo7312: () => {},
+foo7313: () => {},
+foo7314: () => {},
+foo7315: () => {},
+foo7316: () => {},
+foo7317: () => {},
+foo7318: () => {},
+foo7319: () => {},
+foo7320: () => {},
+foo7321: () => {},
+foo7322: () => {},
+foo7323: () => {},
+foo7324: () => {},
+foo7325: () => {},
+foo7326: () => {},
+foo7327: () => {},
+foo7328: () => {},
+foo7329: () => {},
+foo7330: () => {},
+foo7331: () => {},
+foo7332: () => {},
+foo7333: () => {},
+foo7334: () => {},
+foo7335: () => {},
+foo7336: () => {},
+foo7337: () => {},
+foo7338: () => {},
+foo7339: () => {},
+foo7340: () => {},
+foo7341: () => {},
+foo7342: () => {},
+foo7343: () => {},
+foo7344: () => {},
+foo7345: () => {},
+foo7346: () => {},
+foo7347: () => {},
+foo7348: () => {},
+foo7349: () => {},
+foo7350: () => {},
+foo7351: () => {},
+foo7352: () => {},
+foo7353: () => {},
+foo7354: () => {},
+foo7355: () => {},
+foo7356: () => {},
+foo7357: () => {},
+foo7358: () => {},
+foo7359: () => {},
+foo7360: () => {},
+foo7361: () => {},
+foo7362: () => {},
+foo7363: () => {},
+foo7364: () => {},
+foo7365: () => {},
+foo7366: () => {},
+foo7367: () => {},
+foo7368: () => {},
+foo7369: () => {},
+foo7370: () => {},
+foo7371: () => {},
+foo7372: () => {},
+foo7373: () => {},
+foo7374: () => {},
+foo7375: () => {},
+foo7376: () => {},
+foo7377: () => {},
+foo7378: () => {},
+foo7379: () => {},
+foo7380: () => {},
+foo7381: () => {},
+foo7382: () => {},
+foo7383: () => {},
+foo7384: () => {},
+foo7385: () => {},
+foo7386: () => {},
+foo7387: () => {},
+foo7388: () => {},
+foo7389: () => {},
+foo7390: () => {},
+foo7391: () => {},
+foo7392: () => {},
+foo7393: () => {},
+foo7394: () => {},
+foo7395: () => {},
+foo7396: () => {},
+foo7397: () => {},
+foo7398: () => {},
+foo7399: () => {},
+foo7400: () => {},
+foo7401: () => {},
+foo7402: () => {},
+foo7403: () => {},
+foo7404: () => {},
+foo7405: () => {},
+foo7406: () => {},
+foo7407: () => {},
+foo7408: () => {},
+foo7409: () => {},
+foo7410: () => {},
+foo7411: () => {},
+foo7412: () => {},
+foo7413: () => {},
+foo7414: () => {},
+foo7415: () => {},
+foo7416: () => {},
+foo7417: () => {},
+foo7418: () => {},
+foo7419: () => {},
+foo7420: () => {},
+foo7421: () => {},
+foo7422: () => {},
+foo7423: () => {},
+foo7424: () => {},
+foo7425: () => {},
+foo7426: () => {},
+foo7427: () => {},
+foo7428: () => {},
+foo7429: () => {},
+foo7430: () => {},
+foo7431: () => {},
+foo7432: () => {},
+foo7433: () => {},
+foo7434: () => {},
+foo7435: () => {},
+foo7436: () => {},
+foo7437: () => {},
+foo7438: () => {},
+foo7439: () => {},
+foo7440: () => {},
+foo7441: () => {},
+foo7442: () => {},
+foo7443: () => {},
+foo7444: () => {},
+foo7445: () => {},
+foo7446: () => {},
+foo7447: () => {},
+foo7448: () => {},
+foo7449: () => {},
+foo7450: () => {},
+foo7451: () => {},
+foo7452: () => {},
+foo7453: () => {},
+foo7454: () => {},
+foo7455: () => {},
+foo7456: () => {},
+foo7457: () => {},
+foo7458: () => {},
+foo7459: () => {},
+foo7460: () => {},
+foo7461: () => {},
+foo7462: () => {},
+foo7463: () => {},
+foo7464: () => {},
+foo7465: () => {},
+foo7466: () => {},
+foo7467: () => {},
+foo7468: () => {},
+foo7469: () => {},
+foo7470: () => {},
+foo7471: () => {},
+foo7472: () => {},
+foo7473: () => {},
+foo7474: () => {},
+foo7475: () => {},
+foo7476: () => {},
+foo7477: () => {},
+foo7478: () => {},
+foo7479: () => {},
+foo7480: () => {},
+foo7481: () => {},
+foo7482: () => {},
+foo7483: () => {},
+foo7484: () => {},
+foo7485: () => {},
+foo7486: () => {},
+foo7487: () => {},
+foo7488: () => {},
+foo7489: () => {},
+foo7490: () => {},
+foo7491: () => {},
+foo7492: () => {},
+foo7493: () => {},
+foo7494: () => {},
+foo7495: () => {},
+foo7496: () => {},
+foo7497: () => {},
+foo7498: () => {},
+foo7499: () => {},
+foo7500: () => {},
+foo7501: () => {},
+foo7502: () => {},
+foo7503: () => {},
+foo7504: () => {},
+foo7505: () => {},
+foo7506: () => {},
+foo7507: () => {},
+foo7508: () => {},
+foo7509: () => {},
+foo7510: () => {},
+foo7511: () => {},
+foo7512: () => {},
+foo7513: () => {},
+foo7514: () => {},
+foo7515: () => {},
+foo7516: () => {},
+foo7517: () => {},
+foo7518: () => {},
+foo7519: () => {},
+foo7520: () => {},
+foo7521: () => {},
+foo7522: () => {},
+foo7523: () => {},
+foo7524: () => {},
+foo7525: () => {},
+foo7526: () => {},
+foo7527: () => {},
+foo7528: () => {},
+foo7529: () => {},
+foo7530: () => {},
+foo7531: () => {},
+foo7532: () => {},
+foo7533: () => {},
+foo7534: () => {},
+foo7535: () => {},
+foo7536: () => {},
+foo7537: () => {},
+foo7538: () => {},
+foo7539: () => {},
+foo7540: () => {},
+foo7541: () => {},
+foo7542: () => {},
+foo7543: () => {},
+foo7544: () => {},
+foo7545: () => {},
+foo7546: () => {},
+foo7547: () => {},
+foo7548: () => {},
+foo7549: () => {},
+foo7550: () => {},
+foo7551: () => {},
+foo7552: () => {},
+foo7553: () => {},
+foo7554: () => {},
+foo7555: () => {},
+foo7556: () => {},
+foo7557: () => {},
+foo7558: () => {},
+foo7559: () => {},
+foo7560: () => {},
+foo7561: () => {},
+foo7562: () => {},
+foo7563: () => {},
+foo7564: () => {},
+foo7565: () => {},
+foo7566: () => {},
+foo7567: () => {},
+foo7568: () => {},
+foo7569: () => {},
+foo7570: () => {},
+foo7571: () => {},
+foo7572: () => {},
+foo7573: () => {},
+foo7574: () => {},
+foo7575: () => {},
+foo7576: () => {},
+foo7577: () => {},
+foo7578: () => {},
+foo7579: () => {},
+foo7580: () => {},
+foo7581: () => {},
+foo7582: () => {},
+foo7583: () => {},
+foo7584: () => {},
+foo7585: () => {},
+foo7586: () => {},
+foo7587: () => {},
+foo7588: () => {},
+foo7589: () => {},
+foo7590: () => {},
+foo7591: () => {},
+foo7592: () => {},
+foo7593: () => {},
+foo7594: () => {},
+foo7595: () => {},
+foo7596: () => {},
+foo7597: () => {},
+foo7598: () => {},
+foo7599: () => {},
+foo7600: () => {},
+foo7601: () => {},
+foo7602: () => {},
+foo7603: () => {},
+foo7604: () => {},
+foo7605: () => {},
+foo7606: () => {},
+foo7607: () => {},
+foo7608: () => {},
+foo7609: () => {},
+foo7610: () => {},
+foo7611: () => {},
+foo7612: () => {},
+foo7613: () => {},
+foo7614: () => {},
+foo7615: () => {},
+foo7616: () => {},
+foo7617: () => {},
+foo7618: () => {},
+foo7619: () => {},
+foo7620: () => {},
+foo7621: () => {},
+foo7622: () => {},
+foo7623: () => {},
+foo7624: () => {},
+foo7625: () => {},
+foo7626: () => {},
+foo7627: () => {},
+foo7628: () => {},
+foo7629: () => {},
+foo7630: () => {},
+foo7631: () => {},
+foo7632: () => {},
+foo7633: () => {},
+foo7634: () => {},
+foo7635: () => {},
+foo7636: () => {},
+foo7637: () => {},
+foo7638: () => {},
+foo7639: () => {},
+foo7640: () => {},
+foo7641: () => {},
+foo7642: () => {},
+foo7643: () => {},
+foo7644: () => {},
+foo7645: () => {},
+foo7646: () => {},
+foo7647: () => {},
+foo7648: () => {},
+foo7649: () => {},
+foo7650: () => {},
+foo7651: () => {},
+foo7652: () => {},
+foo7653: () => {},
+foo7654: () => {},
+foo7655: () => {},
+foo7656: () => {},
+foo7657: () => {},
+foo7658: () => {},
+foo7659: () => {},
+foo7660: () => {},
+foo7661: () => {},
+foo7662: () => {},
+foo7663: () => {},
+foo7664: () => {},
+foo7665: () => {},
+foo7666: () => {},
+foo7667: () => {},
+foo7668: () => {},
+foo7669: () => {},
+foo7670: () => {},
+foo7671: () => {},
+foo7672: () => {},
+foo7673: () => {},
+foo7674: () => {},
+foo7675: () => {},
+foo7676: () => {},
+foo7677: () => {},
+foo7678: () => {},
+foo7679: () => {},
+foo7680: () => {},
+foo7681: () => {},
+foo7682: () => {},
+foo7683: () => {},
+foo7684: () => {},
+foo7685: () => {},
+foo7686: () => {},
+foo7687: () => {},
+foo7688: () => {},
+foo7689: () => {},
+foo7690: () => {},
+foo7691: () => {},
+foo7692: () => {},
+foo7693: () => {},
+foo7694: () => {},
+foo7695: () => {},
+foo7696: () => {},
+foo7697: () => {},
+foo7698: () => {},
+foo7699: () => {},
+foo7700: () => {},
+foo7701: () => {},
+foo7702: () => {},
+foo7703: () => {},
+foo7704: () => {},
+foo7705: () => {},
+foo7706: () => {},
+foo7707: () => {},
+foo7708: () => {},
+foo7709: () => {},
+foo7710: () => {},
+foo7711: () => {},
+foo7712: () => {},
+foo7713: () => {},
+foo7714: () => {},
+foo7715: () => {},
+foo7716: () => {},
+foo7717: () => {},
+foo7718: () => {},
+foo7719: () => {},
+foo7720: () => {},
+foo7721: () => {},
+foo7722: () => {},
+foo7723: () => {},
+foo7724: () => {},
+foo7725: () => {},
+foo7726: () => {},
+foo7727: () => {},
+foo7728: () => {},
+foo7729: () => {},
+foo7730: () => {},
+foo7731: () => {},
+foo7732: () => {},
+foo7733: () => {},
+foo7734: () => {},
+foo7735: () => {},
+foo7736: () => {},
+foo7737: () => {},
+foo7738: () => {},
+foo7739: () => {},
+foo7740: () => {},
+foo7741: () => {},
+foo7742: () => {},
+foo7743: () => {},
+foo7744: () => {},
+foo7745: () => {},
+foo7746: () => {},
+foo7747: () => {},
+foo7748: () => {},
+foo7749: () => {},
+foo7750: () => {},
+foo7751: () => {},
+foo7752: () => {},
+foo7753: () => {},
+foo7754: () => {},
+foo7755: () => {},
+foo7756: () => {},
+foo7757: () => {},
+foo7758: () => {},
+foo7759: () => {},
+foo7760: () => {},
+foo7761: () => {},
+foo7762: () => {},
+foo7763: () => {},
+foo7764: () => {},
+foo7765: () => {},
+foo7766: () => {},
+foo7767: () => {},
+foo7768: () => {},
+foo7769: () => {},
+foo7770: () => {},
+foo7771: () => {},
+foo7772: () => {},
+foo7773: () => {},
+foo7774: () => {},
+foo7775: () => {},
+foo7776: () => {},
+foo7777: () => {},
+foo7778: () => {},
+foo7779: () => {},
+foo7780: () => {},
+foo7781: () => {},
+foo7782: () => {},
+foo7783: () => {},
+foo7784: () => {},
+foo7785: () => {},
+foo7786: () => {},
+foo7787: () => {},
+foo7788: () => {},
+foo7789: () => {},
+foo7790: () => {},
+foo7791: () => {},
+foo7792: () => {},
+foo7793: () => {},
+foo7794: () => {},
+foo7795: () => {},
+foo7796: () => {},
+foo7797: () => {},
+foo7798: () => {},
+foo7799: () => {},
+foo7800: () => {},
+foo7801: () => {},
+foo7802: () => {},
+foo7803: () => {},
+foo7804: () => {},
+foo7805: () => {},
+foo7806: () => {},
+foo7807: () => {},
+foo7808: () => {},
+foo7809: () => {},
+foo7810: () => {},
+foo7811: () => {},
+foo7812: () => {},
+foo7813: () => {},
+foo7814: () => {},
+foo7815: () => {},
+foo7816: () => {},
+foo7817: () => {},
+foo7818: () => {},
+foo7819: () => {},
+foo7820: () => {},
+foo7821: () => {},
+foo7822: () => {},
+foo7823: () => {},
+foo7824: () => {},
+foo7825: () => {},
+foo7826: () => {},
+foo7827: () => {},
+foo7828: () => {},
+foo7829: () => {},
+foo7830: () => {},
+foo7831: () => {},
+foo7832: () => {},
+foo7833: () => {},
+foo7834: () => {},
+foo7835: () => {},
+foo7836: () => {},
+foo7837: () => {},
+foo7838: () => {},
+foo7839: () => {},
+foo7840: () => {},
+foo7841: () => {},
+foo7842: () => {},
+foo7843: () => {},
+foo7844: () => {},
+foo7845: () => {},
+foo7846: () => {},
+foo7847: () => {},
+foo7848: () => {},
+foo7849: () => {},
+foo7850: () => {},
+foo7851: () => {},
+foo7852: () => {},
+foo7853: () => {},
+foo7854: () => {},
+foo7855: () => {},
+foo7856: () => {},
+foo7857: () => {},
+foo7858: () => {},
+foo7859: () => {},
+foo7860: () => {},
+foo7861: () => {},
+foo7862: () => {},
+foo7863: () => {},
+foo7864: () => {},
+foo7865: () => {},
+foo7866: () => {},
+foo7867: () => {},
+foo7868: () => {},
+foo7869: () => {},
+foo7870: () => {},
+foo7871: () => {},
+foo7872: () => {},
+foo7873: () => {},
+foo7874: () => {},
+foo7875: () => {},
+foo7876: () => {},
+foo7877: () => {},
+foo7878: () => {},
+foo7879: () => {},
+foo7880: () => {},
+foo7881: () => {},
+foo7882: () => {},
+foo7883: () => {},
+foo7884: () => {},
+foo7885: () => {},
+foo7886: () => {},
+foo7887: () => {},
+foo7888: () => {},
+foo7889: () => {},
+foo7890: () => {},
+foo7891: () => {},
+foo7892: () => {},
+foo7893: () => {},
+foo7894: () => {},
+foo7895: () => {},
+foo7896: () => {},
+foo7897: () => {},
+foo7898: () => {},
+foo7899: () => {},
+foo7900: () => {},
+foo7901: () => {},
+foo7902: () => {},
+foo7903: () => {},
+foo7904: () => {},
+foo7905: () => {},
+foo7906: () => {},
+foo7907: () => {},
+foo7908: () => {},
+foo7909: () => {},
+foo7910: () => {},
+foo7911: () => {},
+foo7912: () => {},
+foo7913: () => {},
+foo7914: () => {},
+foo7915: () => {},
+foo7916: () => {},
+foo7917: () => {},
+foo7918: () => {},
+foo7919: () => {},
+foo7920: () => {},
+foo7921: () => {},
+foo7922: () => {},
+foo7923: () => {},
+foo7924: () => {},
+foo7925: () => {},
+foo7926: () => {},
+foo7927: () => {},
+foo7928: () => {},
+foo7929: () => {},
+foo7930: () => {},
+foo7931: () => {},
+foo7932: () => {},
+foo7933: () => {},
+foo7934: () => {},
+foo7935: () => {},
+foo7936: () => {},
+foo7937: () => {},
+foo7938: () => {},
+foo7939: () => {},
+foo7940: () => {},
+foo7941: () => {},
+foo7942: () => {},
+foo7943: () => {},
+foo7944: () => {},
+foo7945: () => {},
+foo7946: () => {},
+foo7947: () => {},
+foo7948: () => {},
+foo7949: () => {},
+foo7950: () => {},
+foo7951: () => {},
+foo7952: () => {},
+foo7953: () => {},
+foo7954: () => {},
+foo7955: () => {},
+foo7956: () => {},
+foo7957: () => {},
+foo7958: () => {},
+foo7959: () => {},
+foo7960: () => {},
+foo7961: () => {},
+foo7962: () => {},
+foo7963: () => {},
+foo7964: () => {},
+foo7965: () => {},
+foo7966: () => {},
+foo7967: () => {},
+foo7968: () => {},
+foo7969: () => {},
+foo7970: () => {},
+foo7971: () => {},
+foo7972: () => {},
+foo7973: () => {},
+foo7974: () => {},
+foo7975: () => {},
+foo7976: () => {},
+foo7977: () => {},
+foo7978: () => {},
+foo7979: () => {},
+foo7980: () => {},
+foo7981: () => {},
+foo7982: () => {},
+foo7983: () => {},
+foo7984: () => {},
+foo7985: () => {},
+foo7986: () => {},
+foo7987: () => {},
+foo7988: () => {},
+foo7989: () => {},
+foo7990: () => {},
+foo7991: () => {},
+foo7992: () => {},
+foo7993: () => {},
+foo7994: () => {},
+foo7995: () => {},
+foo7996: () => {},
+foo7997: () => {},
+foo7998: () => {},
+foo7999: () => {},
+foo8000: () => {},
+foo8001: () => {},
+foo8002: () => {},
+foo8003: () => {},
+foo8004: () => {},
+foo8005: () => {},
+foo8006: () => {},
+foo8007: () => {},
+foo8008: () => {},
+foo8009: () => {},
+foo8010: () => {},
+foo8011: () => {},
+foo8012: () => {},
+foo8013: () => {},
+foo8014: () => {},
+foo8015: () => {},
+foo8016: () => {},
+foo8017: () => {},
+foo8018: () => {},
+foo8019: () => {},
+foo8020: () => {},
+foo8021: () => {},
+foo8022: () => {},
+foo8023: () => {},
+foo8024: () => {},
+foo8025: () => {},
+foo8026: () => {},
+foo8027: () => {},
+foo8028: () => {},
+foo8029: () => {},
+foo8030: () => {},
+foo8031: () => {},
+foo8032: () => {},
+foo8033: () => {},
+foo8034: () => {},
+foo8035: () => {},
+foo8036: () => {},
+foo8037: () => {},
+foo8038: () => {},
+foo8039: () => {},
+foo8040: () => {},
+foo8041: () => {},
+foo8042: () => {},
+foo8043: () => {},
+foo8044: () => {},
+foo8045: () => {},
+foo8046: () => {},
+foo8047: () => {},
+foo8048: () => {},
+foo8049: () => {},
+foo8050: () => {},
+foo8051: () => {},
+foo8052: () => {},
+foo8053: () => {},
+foo8054: () => {},
+foo8055: () => {},
+foo8056: () => {},
+foo8057: () => {},
+foo8058: () => {},
+foo8059: () => {},
+foo8060: () => {},
+foo8061: () => {},
+foo8062: () => {},
+foo8063: () => {},
+foo8064: () => {},
+foo8065: () => {},
+foo8066: () => {},
+foo8067: () => {},
+foo8068: () => {},
+foo8069: () => {},
+foo8070: () => {},
+foo8071: () => {},
+foo8072: () => {},
+foo8073: () => {},
+foo8074: () => {},
+foo8075: () => {},
+foo8076: () => {},
+foo8077: () => {},
+foo8078: () => {},
+foo8079: () => {},
+foo8080: () => {},
+foo8081: () => {},
+foo8082: () => {},
+foo8083: () => {},
+foo8084: () => {},
+foo8085: () => {},
+foo8086: () => {},
+foo8087: () => {},
+foo8088: () => {},
+foo8089: () => {},
+foo8090: () => {},
+foo8091: () => {},
+foo8092: () => {},
+foo8093: () => {},
+foo8094: () => {},
+foo8095: () => {},
+foo8096: () => {},
+foo8097: () => {},
+foo8098: () => {},
+foo8099: () => {},
+foo8100: () => {},
+foo8101: () => {},
+foo8102: () => {},
+foo8103: () => {},
+foo8104: () => {},
+foo8105: () => {},
+foo8106: () => {},
+foo8107: () => {},
+foo8108: () => {},
+foo8109: () => {},
+foo8110: () => {},
+foo8111: () => {},
+foo8112: () => {},
+foo8113: () => {},
+foo8114: () => {},
+foo8115: () => {},
+foo8116: () => {},
+foo8117: () => {},
+foo8118: () => {},
+foo8119: () => {},
+foo8120: () => {},
+foo8121: () => {},
+foo8122: () => {},
+foo8123: () => {},
+foo8124: () => {},
+foo8125: () => {},
+foo8126: () => {},
+foo8127: () => {},
+foo8128: () => {},
+foo8129: () => {},
+foo8130: () => {},
+foo8131: () => {},
+foo8132: () => {},
+foo8133: () => {},
+foo8134: () => {},
+foo8135: () => {},
+foo8136: () => {},
+foo8137: () => {},
+foo8138: () => {},
+foo8139: () => {},
+foo8140: () => {},
+foo8141: () => {},
+foo8142: () => {},
+foo8143: () => {},
+foo8144: () => {},
+foo8145: () => {},
+foo8146: () => {},
+foo8147: () => {},
+foo8148: () => {},
+foo8149: () => {},
+foo8150: () => {},
+foo8151: () => {},
+foo8152: () => {},
+foo8153: () => {},
+foo8154: () => {},
+foo8155: () => {},
+foo8156: () => {},
+foo8157: () => {},
+foo8158: () => {},
+foo8159: () => {},
+foo8160: () => {},
+foo8161: () => {},
+foo8162: () => {},
+foo8163: () => {},
+foo8164: () => {},
+foo8165: () => {},
+foo8166: () => {},
+foo8167: () => {},
+foo8168: () => {},
+foo8169: () => {},
+foo8170: () => {},
+foo8171: () => {},
+foo8172: () => {},
+foo8173: () => {},
+foo8174: () => {},
+foo8175: () => {},
+foo8176: () => {},
+foo8177: () => {},
+foo8178: () => {},
+foo8179: () => {},
+foo8180: () => {},
+foo8181: () => {},
+foo8182: () => {},
+foo8183: () => {},
+foo8184: () => {},
+foo8185: () => {},
+foo8186: () => {},
+foo8187: () => {},
+foo8188: () => {},
+foo8189: () => {},
+foo8190: () => {},
+foo8191: () => {},
+foo8192: () => {},
+foo8193: () => {},
+foo8194: () => {},
+foo8195: () => {},
+foo8196: () => {},
+foo8197: () => {},
+foo8198: () => {},
+foo8199: () => {},
+foo8200: () => {},
+foo8201: () => {},
+foo8202: () => {},
+foo8203: () => {},
+foo8204: () => {},
+foo8205: () => {},
+foo8206: () => {},
+foo8207: () => {},
+foo8208: () => {},
+foo8209: () => {},
+foo8210: () => {},
+foo8211: () => {},
+foo8212: () => {},
+foo8213: () => {},
+foo8214: () => {},
+foo8215: () => {},
+foo8216: () => {},
+foo8217: () => {},
+foo8218: () => {},
+foo8219: () => {},
+foo8220: () => {},
+foo8221: () => {},
+foo8222: () => {},
+foo8223: () => {},
+foo8224: () => {},
+foo8225: () => {},
+foo8226: () => {},
+foo8227: () => {},
+foo8228: () => {},
+foo8229: () => {},
+foo8230: () => {},
+foo8231: () => {},
+foo8232: () => {},
+foo8233: () => {},
+foo8234: () => {},
+foo8235: () => {},
+foo8236: () => {},
+foo8237: () => {},
+foo8238: () => {},
+foo8239: () => {},
+foo8240: () => {},
+foo8241: () => {},
+foo8242: () => {},
+foo8243: () => {},
+foo8244: () => {},
+foo8245: () => {},
+foo8246: () => {},
+foo8247: () => {},
+foo8248: () => {},
+foo8249: () => {},
+foo8250: () => {},
+foo8251: () => {},
+foo8252: () => {},
+foo8253: () => {},
+foo8254: () => {},
+foo8255: () => {},
+foo8256: () => {},
+foo8257: () => {},
+foo8258: () => {},
+foo8259: () => {},
+foo8260: () => {},
+foo8261: () => {},
+foo8262: () => {},
+foo8263: () => {},
+foo8264: () => {},
+foo8265: () => {},
+foo8266: () => {},
+foo8267: () => {},
+foo8268: () => {},
+foo8269: () => {},
+foo8270: () => {},
+foo8271: () => {},
+foo8272: () => {},
+foo8273: () => {},
+foo8274: () => {},
+foo8275: () => {},
+foo8276: () => {},
+foo8277: () => {},
+foo8278: () => {},
+foo8279: () => {},
+foo8280: () => {},
+foo8281: () => {},
+foo8282: () => {},
+foo8283: () => {},
+foo8284: () => {},
+foo8285: () => {},
+foo8286: () => {},
+foo8287: () => {},
+foo8288: () => {},
+foo8289: () => {},
+foo8290: () => {},
+foo8291: () => {},
+foo8292: () => {},
+foo8293: () => {},
+foo8294: () => {},
+foo8295: () => {},
+foo8296: () => {},
+foo8297: () => {},
+foo8298: () => {},
+foo8299: () => {},
+foo8300: () => {},
+foo8301: () => {},
+foo8302: () => {},
+foo8303: () => {},
+foo8304: () => {},
+foo8305: () => {},
+foo8306: () => {},
+foo8307: () => {},
+foo8308: () => {},
+foo8309: () => {},
+foo8310: () => {},
+foo8311: () => {},
+foo8312: () => {},
+foo8313: () => {},
+foo8314: () => {},
+foo8315: () => {},
+foo8316: () => {},
+foo8317: () => {},
+foo8318: () => {},
+foo8319: () => {},
+foo8320: () => {},
+foo8321: () => {},
+foo8322: () => {},
+foo8323: () => {},
+foo8324: () => {},
+foo8325: () => {},
+foo8326: () => {},
+foo8327: () => {},
+foo8328: () => {},
+foo8329: () => {},
+foo8330: () => {},
+foo8331: () => {},
+foo8332: () => {},
+foo8333: () => {},
+foo8334: () => {},
+foo8335: () => {},
+foo8336: () => {},
+foo8337: () => {},
+foo8338: () => {},
+foo8339: () => {},
+foo8340: () => {},
+foo8341: () => {},
+foo8342: () => {},
+foo8343: () => {},
+foo8344: () => {},
+foo8345: () => {},
+foo8346: () => {},
+foo8347: () => {},
+foo8348: () => {},
+foo8349: () => {},
+foo8350: () => {},
+foo8351: () => {},
+foo8352: () => {},
+foo8353: () => {},
+foo8354: () => {},
+foo8355: () => {},
+foo8356: () => {},
+foo8357: () => {},
+foo8358: () => {},
+foo8359: () => {},
+foo8360: () => {},
+foo8361: () => {},
+foo8362: () => {},
+foo8363: () => {},
+foo8364: () => {},
+foo8365: () => {},
+foo8366: () => {},
+foo8367: () => {},
+foo8368: () => {},
+foo8369: () => {},
+foo8370: () => {},
+foo8371: () => {},
+foo8372: () => {},
+foo8373: () => {},
+foo8374: () => {},
+foo8375: () => {},
+foo8376: () => {},
+foo8377: () => {},
+foo8378: () => {},
+foo8379: () => {},
+foo8380: () => {},
+foo8381: () => {},
+foo8382: () => {},
+foo8383: () => {},
+foo8384: () => {},
+foo8385: () => {},
+foo8386: () => {},
+foo8387: () => {},
+foo8388: () => {},
+foo8389: () => {},
+foo8390: () => {},
+foo8391: () => {},
+foo8392: () => {},
+foo8393: () => {},
+foo8394: () => {},
+foo8395: () => {},
+foo8396: () => {},
+foo8397: () => {},
+foo8398: () => {},
+foo8399: () => {},
+foo8400: () => {},
+foo8401: () => {},
+foo8402: () => {},
+foo8403: () => {},
+foo8404: () => {},
+foo8405: () => {},
+foo8406: () => {},
+foo8407: () => {},
+foo8408: () => {},
+foo8409: () => {},
+foo8410: () => {},
+foo8411: () => {},
+foo8412: () => {},
+foo8413: () => {},
+foo8414: () => {},
+foo8415: () => {},
+foo8416: () => {},
+foo8417: () => {},
+foo8418: () => {},
+foo8419: () => {},
+foo8420: () => {},
+foo8421: () => {},
+foo8422: () => {},
+foo8423: () => {},
+foo8424: () => {},
+foo8425: () => {},
+foo8426: () => {},
+foo8427: () => {},
+foo8428: () => {},
+foo8429: () => {},
+foo8430: () => {},
+foo8431: () => {},
+foo8432: () => {},
+foo8433: () => {},
+foo8434: () => {},
+foo8435: () => {},
+foo8436: () => {},
+foo8437: () => {},
+foo8438: () => {},
+foo8439: () => {},
+foo8440: () => {},
+foo8441: () => {},
+foo8442: () => {},
+foo8443: () => {},
+foo8444: () => {},
+foo8445: () => {},
+foo8446: () => {},
+foo8447: () => {},
+foo8448: () => {},
+foo8449: () => {},
+foo8450: () => {},
+foo8451: () => {},
+foo8452: () => {},
+foo8453: () => {},
+foo8454: () => {},
+foo8455: () => {},
+foo8456: () => {},
+foo8457: () => {},
+foo8458: () => {},
+foo8459: () => {},
+foo8460: () => {},
+foo8461: () => {},
+foo8462: () => {},
+foo8463: () => {},
+foo8464: () => {},
+foo8465: () => {},
+foo8466: () => {},
+foo8467: () => {},
+foo8468: () => {},
+foo8469: () => {},
+foo8470: () => {},
+foo8471: () => {},
+foo8472: () => {},
+foo8473: () => {},
+foo8474: () => {},
+foo8475: () => {},
+foo8476: () => {},
+foo8477: () => {},
+foo8478: () => {},
+foo8479: () => {},
+foo8480: () => {},
+foo8481: () => {},
+foo8482: () => {},
+foo8483: () => {},
+foo8484: () => {},
+foo8485: () => {},
+foo8486: () => {},
+foo8487: () => {},
+foo8488: () => {},
+foo8489: () => {},
+foo8490: () => {},
+foo8491: () => {},
+foo8492: () => {},
+foo8493: () => {},
+foo8494: () => {},
+foo8495: () => {},
+foo8496: () => {},
+foo8497: () => {},
+foo8498: () => {},
+foo8499: () => {},
+foo8500: () => {},
+foo8501: () => {},
+foo8502: () => {},
+foo8503: () => {},
+foo8504: () => {},
+foo8505: () => {},
+foo8506: () => {},
+foo8507: () => {},
+foo8508: () => {},
+foo8509: () => {},
+foo8510: () => {},
+foo8511: () => {},
+foo8512: () => {},
+foo8513: () => {},
+foo8514: () => {},
+foo8515: () => {},
+foo8516: () => {},
+foo8517: () => {},
+foo8518: () => {},
+foo8519: () => {},
+foo8520: () => {},
+foo8521: () => {},
+foo8522: () => {},
+foo8523: () => {},
+foo8524: () => {},
+foo8525: () => {},
+foo8526: () => {},
+foo8527: () => {},
+foo8528: () => {},
+foo8529: () => {},
+foo8530: () => {},
+foo8531: () => {},
+foo8532: () => {},
+foo8533: () => {},
+foo8534: () => {},
+foo8535: () => {},
+foo8536: () => {},
+foo8537: () => {},
+foo8538: () => {},
+foo8539: () => {},
+foo8540: () => {},
+foo8541: () => {},
+foo8542: () => {},
+foo8543: () => {},
+foo8544: () => {},
+foo8545: () => {},
+foo8546: () => {},
+foo8547: () => {},
+foo8548: () => {},
+foo8549: () => {},
+foo8550: () => {},
+foo8551: () => {},
+foo8552: () => {},
+foo8553: () => {},
+foo8554: () => {},
+foo8555: () => {},
+foo8556: () => {},
+foo8557: () => {},
+foo8558: () => {},
+foo8559: () => {},
+foo8560: () => {},
+foo8561: () => {},
+foo8562: () => {},
+foo8563: () => {},
+foo8564: () => {},
+foo8565: () => {},
+foo8566: () => {},
+foo8567: () => {},
+foo8568: () => {},
+foo8569: () => {},
+foo8570: () => {},
+foo8571: () => {},
+foo8572: () => {},
+foo8573: () => {},
+foo8574: () => {},
+foo8575: () => {},
+foo8576: () => {},
+foo8577: () => {},
+foo8578: () => {},
+foo8579: () => {},
+foo8580: () => {},
+foo8581: () => {},
+foo8582: () => {},
+foo8583: () => {},
+foo8584: () => {},
+foo8585: () => {},
+foo8586: () => {},
+foo8587: () => {},
+foo8588: () => {},
+foo8589: () => {},
+foo8590: () => {},
+foo8591: () => {},
+foo8592: () => {},
+foo8593: () => {},
+foo8594: () => {},
+foo8595: () => {},
+foo8596: () => {},
+foo8597: () => {},
+foo8598: () => {},
+foo8599: () => {},
+foo8600: () => {},
+foo8601: () => {},
+foo8602: () => {},
+foo8603: () => {},
+foo8604: () => {},
+foo8605: () => {},
+foo8606: () => {},
+foo8607: () => {},
+foo8608: () => {},
+foo8609: () => {},
+foo8610: () => {},
+foo8611: () => {},
+foo8612: () => {},
+foo8613: () => {},
+foo8614: () => {},
+foo8615: () => {},
+foo8616: () => {},
+foo8617: () => {},
+foo8618: () => {},
+foo8619: () => {},
+foo8620: () => {},
+foo8621: () => {},
+foo8622: () => {},
+foo8623: () => {},
+foo8624: () => {},
+foo8625: () => {},
+foo8626: () => {},
+foo8627: () => {},
+foo8628: () => {},
+foo8629: () => {},
+foo8630: () => {},
+foo8631: () => {},
+foo8632: () => {},
+foo8633: () => {},
+foo8634: () => {},
+foo8635: () => {},
+foo8636: () => {},
+foo8637: () => {},
+foo8638: () => {},
+foo8639: () => {},
+foo8640: () => {},
+foo8641: () => {},
+foo8642: () => {},
+foo8643: () => {},
+foo8644: () => {},
+foo8645: () => {},
+foo8646: () => {},
+foo8647: () => {},
+foo8648: () => {},
+foo8649: () => {},
+foo8650: () => {},
+foo8651: () => {},
+foo8652: () => {},
+foo8653: () => {},
+foo8654: () => {},
+foo8655: () => {},
+foo8656: () => {},
+foo8657: () => {},
+foo8658: () => {},
+foo8659: () => {},
+foo8660: () => {},
+foo8661: () => {},
+foo8662: () => {},
+foo8663: () => {},
+foo8664: () => {},
+foo8665: () => {},
+foo8666: () => {},
+foo8667: () => {},
+foo8668: () => {},
+foo8669: () => {},
+foo8670: () => {},
+foo8671: () => {},
+foo8672: () => {},
+foo8673: () => {},
+foo8674: () => {},
+foo8675: () => {},
+foo8676: () => {},
+foo8677: () => {},
+foo8678: () => {},
+foo8679: () => {},
+foo8680: () => {},
+foo8681: () => {},
+foo8682: () => {},
+foo8683: () => {},
+foo8684: () => {},
+foo8685: () => {},
+foo8686: () => {},
+foo8687: () => {},
+foo8688: () => {},
+foo8689: () => {},
+foo8690: () => {},
+foo8691: () => {},
+foo8692: () => {},
+foo8693: () => {},
+foo8694: () => {},
+foo8695: () => {},
+foo8696: () => {},
+foo8697: () => {},
+foo8698: () => {},
+foo8699: () => {},
+foo8700: () => {},
+foo8701: () => {},
+foo8702: () => {},
+foo8703: () => {},
+foo8704: () => {},
+foo8705: () => {},
+foo8706: () => {},
+foo8707: () => {},
+foo8708: () => {},
+foo8709: () => {},
+foo8710: () => {},
+foo8711: () => {},
+foo8712: () => {},
+foo8713: () => {},
+foo8714: () => {},
+foo8715: () => {},
+foo8716: () => {},
+foo8717: () => {},
+foo8718: () => {},
+foo8719: () => {},
+foo8720: () => {},
+foo8721: () => {},
+foo8722: () => {},
+foo8723: () => {},
+foo8724: () => {},
+foo8725: () => {},
+foo8726: () => {},
+foo8727: () => {},
+foo8728: () => {},
+foo8729: () => {},
+foo8730: () => {},
+foo8731: () => {},
+foo8732: () => {},
+foo8733: () => {},
+foo8734: () => {},
+foo8735: () => {},
+foo8736: () => {},
+foo8737: () => {},
+foo8738: () => {},
+foo8739: () => {},
+foo8740: () => {},
+foo8741: () => {},
+foo8742: () => {},
+foo8743: () => {},
+foo8744: () => {},
+foo8745: () => {},
+foo8746: () => {},
+foo8747: () => {},
+foo8748: () => {},
+foo8749: () => {},
+foo8750: () => {},
+foo8751: () => {},
+foo8752: () => {},
+foo8753: () => {},
+foo8754: () => {},
+foo8755: () => {},
+foo8756: () => {},
+foo8757: () => {},
+foo8758: () => {},
+foo8759: () => {},
+foo8760: () => {},
+foo8761: () => {},
+foo8762: () => {},
+foo8763: () => {},
+foo8764: () => {},
+foo8765: () => {},
+foo8766: () => {},
+foo8767: () => {},
+foo8768: () => {},
+foo8769: () => {},
+foo8770: () => {},
+foo8771: () => {},
+foo8772: () => {},
+foo8773: () => {},
+foo8774: () => {},
+foo8775: () => {},
+foo8776: () => {},
+foo8777: () => {},
+foo8778: () => {},
+foo8779: () => {},
+foo8780: () => {},
+foo8781: () => {},
+foo8782: () => {},
+foo8783: () => {},
+foo8784: () => {},
+foo8785: () => {},
+foo8786: () => {},
+foo8787: () => {},
+foo8788: () => {},
+foo8789: () => {},
+foo8790: () => {},
+foo8791: () => {},
+foo8792: () => {},
+foo8793: () => {},
+foo8794: () => {},
+foo8795: () => {},
+foo8796: () => {},
+foo8797: () => {},
+foo8798: () => {},
+foo8799: () => {},
+foo8800: () => {},
+foo8801: () => {},
+foo8802: () => {},
+foo8803: () => {},
+foo8804: () => {},
+foo8805: () => {},
+foo8806: () => {},
+foo8807: () => {},
+foo8808: () => {},
+foo8809: () => {},
+foo8810: () => {},
+foo8811: () => {},
+foo8812: () => {},
+foo8813: () => {},
+foo8814: () => {},
+foo8815: () => {},
+foo8816: () => {},
+foo8817: () => {},
+foo8818: () => {},
+foo8819: () => {},
+foo8820: () => {},
+foo8821: () => {},
+foo8822: () => {},
+foo8823: () => {},
+foo8824: () => {},
+foo8825: () => {},
+foo8826: () => {},
+foo8827: () => {},
+foo8828: () => {},
+foo8829: () => {},
+foo8830: () => {},
+foo8831: () => {},
+foo8832: () => {},
+foo8833: () => {},
+foo8834: () => {},
+foo8835: () => {},
+foo8836: () => {},
+foo8837: () => {},
+foo8838: () => {},
+foo8839: () => {},
+foo8840: () => {},
+foo8841: () => {},
+foo8842: () => {},
+foo8843: () => {},
+foo8844: () => {},
+foo8845: () => {},
+foo8846: () => {},
+foo8847: () => {},
+foo8848: () => {},
+foo8849: () => {},
+foo8850: () => {},
+foo8851: () => {},
+foo8852: () => {},
+foo8853: () => {},
+foo8854: () => {},
+foo8855: () => {},
+foo8856: () => {},
+foo8857: () => {},
+foo8858: () => {},
+foo8859: () => {},
+foo8860: () => {},
+foo8861: () => {},
+foo8862: () => {},
+foo8863: () => {},
+foo8864: () => {},
+foo8865: () => {},
+foo8866: () => {},
+foo8867: () => {},
+foo8868: () => {},
+foo8869: () => {},
+foo8870: () => {},
+foo8871: () => {},
+foo8872: () => {},
+foo8873: () => {},
+foo8874: () => {},
+foo8875: () => {},
+foo8876: () => {},
+foo8877: () => {},
+foo8878: () => {},
+foo8879: () => {},
+foo8880: () => {},
+foo8881: () => {},
+foo8882: () => {},
+foo8883: () => {},
+foo8884: () => {},
+foo8885: () => {},
+foo8886: () => {},
+foo8887: () => {},
+foo8888: () => {},
+foo8889: () => {},
+foo8890: () => {},
+foo8891: () => {},
+foo8892: () => {},
+foo8893: () => {},
+foo8894: () => {},
+foo8895: () => {},
+foo8896: () => {},
+foo8897: () => {},
+foo8898: () => {},
+foo8899: () => {},
+foo8900: () => {},
+foo8901: () => {},
+foo8902: () => {},
+foo8903: () => {},
+foo8904: () => {},
+foo8905: () => {},
+foo8906: () => {},
+foo8907: () => {},
+foo8908: () => {},
+foo8909: () => {},
+foo8910: () => {},
+foo8911: () => {},
+foo8912: () => {},
+foo8913: () => {},
+foo8914: () => {},
+foo8915: () => {},
+foo8916: () => {},
+foo8917: () => {},
+foo8918: () => {},
+foo8919: () => {},
+foo8920: () => {},
+foo8921: () => {},
+foo8922: () => {},
+foo8923: () => {},
+foo8924: () => {},
+foo8925: () => {},
+foo8926: () => {},
+foo8927: () => {},
+foo8928: () => {},
+foo8929: () => {},
+foo8930: () => {},
+foo8931: () => {},
+foo8932: () => {},
+foo8933: () => {},
+foo8934: () => {},
+foo8935: () => {},
+foo8936: () => {},
+foo8937: () => {},
+foo8938: () => {},
+foo8939: () => {},
+foo8940: () => {},
+foo8941: () => {},
+foo8942: () => {},
+foo8943: () => {},
+foo8944: () => {},
+foo8945: () => {},
+foo8946: () => {},
+foo8947: () => {},
+foo8948: () => {},
+foo8949: () => {},
+foo8950: () => {},
+foo8951: () => {},
+foo8952: () => {},
+foo8953: () => {},
+foo8954: () => {},
+foo8955: () => {},
+foo8956: () => {},
+foo8957: () => {},
+foo8958: () => {},
+foo8959: () => {},
+foo8960: () => {},
+foo8961: () => {},
+foo8962: () => {},
+foo8963: () => {},
+foo8964: () => {},
+foo8965: () => {},
+foo8966: () => {},
+foo8967: () => {},
+foo8968: () => {},
+foo8969: () => {},
+foo8970: () => {},
+foo8971: () => {},
+foo8972: () => {},
+foo8973: () => {},
+foo8974: () => {},
+foo8975: () => {},
+foo8976: () => {},
+foo8977: () => {},
+foo8978: () => {},
+foo8979: () => {},
+foo8980: () => {},
+foo8981: () => {},
+foo8982: () => {},
+foo8983: () => {},
+foo8984: () => {},
+foo8985: () => {},
+foo8986: () => {},
+foo8987: () => {},
+foo8988: () => {},
+foo8989: () => {},
+foo8990: () => {},
+foo8991: () => {},
+foo8992: () => {},
+foo8993: () => {},
+foo8994: () => {},
+foo8995: () => {},
+foo8996: () => {},
+foo8997: () => {},
+foo8998: () => {},
+foo8999: () => {},
+foo9000: () => {},
+foo9001: () => {},
+foo9002: () => {},
+foo9003: () => {},
+foo9004: () => {},
+foo9005: () => {},
+foo9006: () => {},
+foo9007: () => {},
+foo9008: () => {},
+foo9009: () => {},
+foo9010: () => {},
+foo9011: () => {},
+foo9012: () => {},
+foo9013: () => {},
+foo9014: () => {},
+foo9015: () => {},
+foo9016: () => {},
+foo9017: () => {},
+foo9018: () => {},
+foo9019: () => {},
+foo9020: () => {},
+foo9021: () => {},
+foo9022: () => {},
+foo9023: () => {},
+foo9024: () => {},
+foo9025: () => {},
+foo9026: () => {},
+foo9027: () => {},
+foo9028: () => {},
+foo9029: () => {},
+foo9030: () => {},
+foo9031: () => {},
+foo9032: () => {},
+foo9033: () => {},
+foo9034: () => {},
+foo9035: () => {},
+foo9036: () => {},
+foo9037: () => {},
+foo9038: () => {},
+foo9039: () => {},
+foo9040: () => {},
+foo9041: () => {},
+foo9042: () => {},
+foo9043: () => {},
+foo9044: () => {},
+foo9045: () => {},
+foo9046: () => {},
+foo9047: () => {},
+foo9048: () => {},
+foo9049: () => {},
+foo9050: () => {},
+foo9051: () => {},
+foo9052: () => {},
+foo9053: () => {},
+foo9054: () => {},
+foo9055: () => {},
+foo9056: () => {},
+foo9057: () => {},
+foo9058: () => {},
+foo9059: () => {},
+foo9060: () => {},
+foo9061: () => {},
+foo9062: () => {},
+foo9063: () => {},
+foo9064: () => {},
+foo9065: () => {},
+foo9066: () => {},
+foo9067: () => {},
+foo9068: () => {},
+foo9069: () => {},
+foo9070: () => {},
+foo9071: () => {},
+foo9072: () => {},
+foo9073: () => {},
+foo9074: () => {},
+foo9075: () => {},
+foo9076: () => {},
+foo9077: () => {},
+foo9078: () => {},
+foo9079: () => {},
+foo9080: () => {},
+foo9081: () => {},
+foo9082: () => {},
+foo9083: () => {},
+foo9084: () => {},
+foo9085: () => {},
+foo9086: () => {},
+foo9087: () => {},
+foo9088: () => {},
+foo9089: () => {},
+foo9090: () => {},
+foo9091: () => {},
+foo9092: () => {},
+foo9093: () => {},
+foo9094: () => {},
+foo9095: () => {},
+foo9096: () => {},
+foo9097: () => {},
+foo9098: () => {},
+foo9099: () => {},
+foo9100: () => {},
+foo9101: () => {},
+foo9102: () => {},
+foo9103: () => {},
+foo9104: () => {},
+foo9105: () => {},
+foo9106: () => {},
+foo9107: () => {},
+foo9108: () => {},
+foo9109: () => {},
+foo9110: () => {},
+foo9111: () => {},
+foo9112: () => {},
+foo9113: () => {},
+foo9114: () => {},
+foo9115: () => {},
+foo9116: () => {},
+foo9117: () => {},
+foo9118: () => {},
+foo9119: () => {},
+foo9120: () => {},
+foo9121: () => {},
+foo9122: () => {},
+foo9123: () => {},
+foo9124: () => {},
+foo9125: () => {},
+foo9126: () => {},
+foo9127: () => {},
+foo9128: () => {},
+foo9129: () => {},
+foo9130: () => {},
+foo9131: () => {},
+foo9132: () => {},
+foo9133: () => {},
+foo9134: () => {},
+foo9135: () => {},
+foo9136: () => {},
+foo9137: () => {},
+foo9138: () => {},
+foo9139: () => {},
+foo9140: () => {},
+foo9141: () => {},
+foo9142: () => {},
+foo9143: () => {},
+foo9144: () => {},
+foo9145: () => {},
+foo9146: () => {},
+foo9147: () => {},
+foo9148: () => {},
+foo9149: () => {},
+foo9150: () => {},
+foo9151: () => {},
+foo9152: () => {},
+foo9153: () => {},
+foo9154: () => {},
+foo9155: () => {},
+foo9156: () => {},
+foo9157: () => {},
+foo9158: () => {},
+foo9159: () => {},
+foo9160: () => {},
+foo9161: () => {},
+foo9162: () => {},
+foo9163: () => {},
+foo9164: () => {},
+foo9165: () => {},
+foo9166: () => {},
+foo9167: () => {},
+foo9168: () => {},
+foo9169: () => {},
+foo9170: () => {},
+foo9171: () => {},
+foo9172: () => {},
+foo9173: () => {},
+foo9174: () => {},
+foo9175: () => {},
+foo9176: () => {},
+foo9177: () => {},
+foo9178: () => {},
+foo9179: () => {},
+foo9180: () => {},
+foo9181: () => {},
+foo9182: () => {},
+foo9183: () => {},
+foo9184: () => {},
+foo9185: () => {},
+foo9186: () => {},
+foo9187: () => {},
+foo9188: () => {},
+foo9189: () => {},
+foo9190: () => {},
+foo9191: () => {},
+foo9192: () => {},
+foo9193: () => {},
+foo9194: () => {},
+foo9195: () => {},
+foo9196: () => {},
+foo9197: () => {},
+foo9198: () => {},
+foo9199: () => {},
+foo9200: () => {},
+foo9201: () => {},
+foo9202: () => {},
+foo9203: () => {},
+foo9204: () => {},
+foo9205: () => {},
+foo9206: () => {},
+foo9207: () => {},
+foo9208: () => {},
+foo9209: () => {},
+foo9210: () => {},
+foo9211: () => {},
+foo9212: () => {},
+foo9213: () => {},
+foo9214: () => {},
+foo9215: () => {},
+foo9216: () => {},
+foo9217: () => {},
+foo9218: () => {},
+foo9219: () => {},
+foo9220: () => {},
+foo9221: () => {},
+foo9222: () => {},
+foo9223: () => {},
+foo9224: () => {},
+foo9225: () => {},
+foo9226: () => {},
+foo9227: () => {},
+foo9228: () => {},
+foo9229: () => {},
+foo9230: () => {},
+foo9231: () => {},
+foo9232: () => {},
+foo9233: () => {},
+foo9234: () => {},
+foo9235: () => {},
+foo9236: () => {},
+foo9237: () => {},
+foo9238: () => {},
+foo9239: () => {},
+foo9240: () => {},
+foo9241: () => {},
+foo9242: () => {},
+foo9243: () => {},
+foo9244: () => {},
+foo9245: () => {},
+foo9246: () => {},
+foo9247: () => {},
+foo9248: () => {},
+foo9249: () => {},
+foo9250: () => {},
+foo9251: () => {},
+foo9252: () => {},
+foo9253: () => {},
+foo9254: () => {},
+foo9255: () => {},
+foo9256: () => {},
+foo9257: () => {},
+foo9258: () => {},
+foo9259: () => {},
+foo9260: () => {},
+foo9261: () => {},
+foo9262: () => {},
+foo9263: () => {},
+foo9264: () => {},
+foo9265: () => {},
+foo9266: () => {},
+foo9267: () => {},
+foo9268: () => {},
+foo9269: () => {},
+foo9270: () => {},
+foo9271: () => {},
+foo9272: () => {},
+foo9273: () => {},
+foo9274: () => {},
+foo9275: () => {},
+foo9276: () => {},
+foo9277: () => {},
+foo9278: () => {},
+foo9279: () => {},
+foo9280: () => {},
+foo9281: () => {},
+foo9282: () => {},
+foo9283: () => {},
+foo9284: () => {},
+foo9285: () => {},
+foo9286: () => {},
+foo9287: () => {},
+foo9288: () => {},
+foo9289: () => {},
+foo9290: () => {},
+foo9291: () => {},
+foo9292: () => {},
+foo9293: () => {},
+foo9294: () => {},
+foo9295: () => {},
+foo9296: () => {},
+foo9297: () => {},
+foo9298: () => {},
+foo9299: () => {},
+foo9300: () => {},
+foo9301: () => {},
+foo9302: () => {},
+foo9303: () => {},
+foo9304: () => {},
+foo9305: () => {},
+foo9306: () => {},
+foo9307: () => {},
+foo9308: () => {},
+foo9309: () => {},
+foo9310: () => {},
+foo9311: () => {},
+foo9312: () => {},
+foo9313: () => {},
+foo9314: () => {},
+foo9315: () => {},
+foo9316: () => {},
+foo9317: () => {},
+foo9318: () => {},
+foo9319: () => {},
+foo9320: () => {},
+foo9321: () => {},
+foo9322: () => {},
+foo9323: () => {},
+foo9324: () => {},
+foo9325: () => {},
+foo9326: () => {},
+foo9327: () => {},
+foo9328: () => {},
+foo9329: () => {},
+foo9330: () => {},
+foo9331: () => {},
+foo9332: () => {},
+foo9333: () => {},
+foo9334: () => {},
+foo9335: () => {},
+foo9336: () => {},
+foo9337: () => {},
+foo9338: () => {},
+foo9339: () => {},
+foo9340: () => {},
+foo9341: () => {},
+foo9342: () => {},
+foo9343: () => {},
+foo9344: () => {},
+foo9345: () => {},
+foo9346: () => {},
+foo9347: () => {},
+foo9348: () => {},
+foo9349: () => {},
+foo9350: () => {},
+foo9351: () => {},
+foo9352: () => {},
+foo9353: () => {},
+foo9354: () => {},
+foo9355: () => {},
+foo9356: () => {},
+foo9357: () => {},
+foo9358: () => {},
+foo9359: () => {},
+foo9360: () => {},
+foo9361: () => {},
+foo9362: () => {},
+foo9363: () => {},
+foo9364: () => {},
+foo9365: () => {},
+foo9366: () => {},
+foo9367: () => {},
+foo9368: () => {},
+foo9369: () => {},
+foo9370: () => {},
+foo9371: () => {},
+foo9372: () => {},
+foo9373: () => {},
+foo9374: () => {},
+foo9375: () => {},
+foo9376: () => {},
+foo9377: () => {},
+foo9378: () => {},
+foo9379: () => {},
+foo9380: () => {},
+foo9381: () => {},
+foo9382: () => {},
+foo9383: () => {},
+foo9384: () => {},
+foo9385: () => {},
+foo9386: () => {},
+foo9387: () => {},
+foo9388: () => {},
+foo9389: () => {},
+foo9390: () => {},
+foo9391: () => {},
+foo9392: () => {},
+foo9393: () => {},
+foo9394: () => {},
+foo9395: () => {},
+foo9396: () => {},
+foo9397: () => {},
+foo9398: () => {},
+foo9399: () => {},
+foo9400: () => {},
+foo9401: () => {},
+foo9402: () => {},
+foo9403: () => {},
+foo9404: () => {},
+foo9405: () => {},
+foo9406: () => {},
+foo9407: () => {},
+foo9408: () => {},
+foo9409: () => {},
+foo9410: () => {},
+foo9411: () => {},
+foo9412: () => {},
+foo9413: () => {},
+foo9414: () => {},
+foo9415: () => {},
+foo9416: () => {},
+foo9417: () => {},
+foo9418: () => {},
+foo9419: () => {},
+foo9420: () => {},
+foo9421: () => {},
+foo9422: () => {},
+foo9423: () => {},
+foo9424: () => {},
+foo9425: () => {},
+foo9426: () => {},
+foo9427: () => {},
+foo9428: () => {},
+foo9429: () => {},
+foo9430: () => {},
+foo9431: () => {},
+foo9432: () => {},
+foo9433: () => {},
+foo9434: () => {},
+foo9435: () => {},
+foo9436: () => {},
+foo9437: () => {},
+foo9438: () => {},
+foo9439: () => {},
+foo9440: () => {},
+foo9441: () => {},
+foo9442: () => {},
+foo9443: () => {},
+foo9444: () => {},
+foo9445: () => {},
+foo9446: () => {},
+foo9447: () => {},
+foo9448: () => {},
+foo9449: () => {},
+foo9450: () => {},
+foo9451: () => {},
+foo9452: () => {},
+foo9453: () => {},
+foo9454: () => {},
+foo9455: () => {},
+foo9456: () => {},
+foo9457: () => {},
+foo9458: () => {},
+foo9459: () => {},
+foo9460: () => {},
+foo9461: () => {},
+foo9462: () => {},
+foo9463: () => {},
+foo9464: () => {},
+foo9465: () => {},
+foo9466: () => {},
+foo9467: () => {},
+foo9468: () => {},
+foo9469: () => {},
+foo9470: () => {},
+foo9471: () => {},
+foo9472: () => {},
+foo9473: () => {},
+foo9474: () => {},
+foo9475: () => {},
+foo9476: () => {},
+foo9477: () => {},
+foo9478: () => {},
+foo9479: () => {},
+foo9480: () => {},
+foo9481: () => {},
+foo9482: () => {},
+foo9483: () => {},
+foo9484: () => {},
+foo9485: () => {},
+foo9486: () => {},
+foo9487: () => {},
+foo9488: () => {},
+foo9489: () => {},
+foo9490: () => {},
+foo9491: () => {},
+foo9492: () => {},
+foo9493: () => {},
+foo9494: () => {},
+foo9495: () => {},
+foo9496: () => {},
+foo9497: () => {},
+foo9498: () => {},
+foo9499: () => {},
+foo9500: () => {},
+foo9501: () => {},
+foo9502: () => {},
+foo9503: () => {},
+foo9504: () => {},
+foo9505: () => {},
+foo9506: () => {},
+foo9507: () => {},
+foo9508: () => {},
+foo9509: () => {},
+foo9510: () => {},
+foo9511: () => {},
+foo9512: () => {},
+foo9513: () => {},
+foo9514: () => {},
+foo9515: () => {},
+foo9516: () => {},
+foo9517: () => {},
+foo9518: () => {},
+foo9519: () => {},
+foo9520: () => {},
+foo9521: () => {},
+foo9522: () => {},
+foo9523: () => {},
+foo9524: () => {},
+foo9525: () => {},
+foo9526: () => {},
+foo9527: () => {},
+foo9528: () => {},
+foo9529: () => {},
+foo9530: () => {},
+foo9531: () => {},
+foo9532: () => {},
+foo9533: () => {},
+foo9534: () => {},
+foo9535: () => {},
+foo9536: () => {},
+foo9537: () => {},
+foo9538: () => {},
+foo9539: () => {},
+foo9540: () => {},
+foo9541: () => {},
+foo9542: () => {},
+foo9543: () => {},
+foo9544: () => {},
+foo9545: () => {},
+foo9546: () => {},
+foo9547: () => {},
+foo9548: () => {},
+foo9549: () => {},
+foo9550: () => {},
+foo9551: () => {},
+foo9552: () => {},
+foo9553: () => {},
+foo9554: () => {},
+foo9555: () => {},
+foo9556: () => {},
+foo9557: () => {},
+foo9558: () => {},
+foo9559: () => {},
+foo9560: () => {},
+foo9561: () => {},
+foo9562: () => {},
+foo9563: () => {},
+foo9564: () => {},
+foo9565: () => {},
+foo9566: () => {},
+foo9567: () => {},
+foo9568: () => {},
+foo9569: () => {},
+foo9570: () => {},
+foo9571: () => {},
+foo9572: () => {},
+foo9573: () => {},
+foo9574: () => {},
+foo9575: () => {},
+foo9576: () => {},
+foo9577: () => {},
+foo9578: () => {},
+foo9579: () => {},
+foo9580: () => {},
+foo9581: () => {},
+foo9582: () => {},
+foo9583: () => {},
+foo9584: () => {},
+foo9585: () => {},
+foo9586: () => {},
+foo9587: () => {},
+foo9588: () => {},
+foo9589: () => {},
+foo9590: () => {},
+foo9591: () => {},
+foo9592: () => {},
+foo9593: () => {},
+foo9594: () => {},
+foo9595: () => {},
+foo9596: () => {},
+foo9597: () => {},
+foo9598: () => {},
+foo9599: () => {},
+foo9600: () => {},
+foo9601: () => {},
+foo9602: () => {},
+foo9603: () => {},
+foo9604: () => {},
+foo9605: () => {},
+foo9606: () => {},
+foo9607: () => {},
+foo9608: () => {},
+foo9609: () => {},
+foo9610: () => {},
+foo9611: () => {},
+foo9612: () => {},
+foo9613: () => {},
+foo9614: () => {},
+foo9615: () => {},
+foo9616: () => {},
+foo9617: () => {},
+foo9618: () => {},
+foo9619: () => {},
+foo9620: () => {},
+foo9621: () => {},
+foo9622: () => {},
+foo9623: () => {},
+foo9624: () => {},
+foo9625: () => {},
+foo9626: () => {},
+foo9627: () => {},
+foo9628: () => {},
+foo9629: () => {},
+foo9630: () => {},
+foo9631: () => {},
+foo9632: () => {},
+foo9633: () => {},
+foo9634: () => {},
+foo9635: () => {},
+foo9636: () => {},
+foo9637: () => {},
+foo9638: () => {},
+foo9639: () => {},
+foo9640: () => {},
+foo9641: () => {},
+foo9642: () => {},
+foo9643: () => {},
+foo9644: () => {},
+foo9645: () => {},
+foo9646: () => {},
+foo9647: () => {},
+foo9648: () => {},
+foo9649: () => {},
+foo9650: () => {},
+foo9651: () => {},
+foo9652: () => {},
+foo9653: () => {},
+foo9654: () => {},
+foo9655: () => {},
+foo9656: () => {},
+foo9657: () => {},
+foo9658: () => {},
+foo9659: () => {},
+foo9660: () => {},
+foo9661: () => {},
+foo9662: () => {},
+foo9663: () => {},
+foo9664: () => {},
+foo9665: () => {},
+foo9666: () => {},
+foo9667: () => {},
+foo9668: () => {},
+foo9669: () => {},
+foo9670: () => {},
+foo9671: () => {},
+foo9672: () => {},
+foo9673: () => {},
+foo9674: () => {},
+foo9675: () => {},
+foo9676: () => {},
+foo9677: () => {},
+foo9678: () => {},
+foo9679: () => {},
+foo9680: () => {},
+foo9681: () => {},
+foo9682: () => {},
+foo9683: () => {},
+foo9684: () => {},
+foo9685: () => {},
+foo9686: () => {},
+foo9687: () => {},
+foo9688: () => {},
+foo9689: () => {},
+foo9690: () => {},
+foo9691: () => {},
+foo9692: () => {},
+foo9693: () => {},
+foo9694: () => {},
+foo9695: () => {},
+foo9696: () => {},
+foo9697: () => {},
+foo9698: () => {},
+foo9699: () => {},
+foo9700: () => {},
+foo9701: () => {},
+foo9702: () => {},
+foo9703: () => {},
+foo9704: () => {},
+foo9705: () => {},
+foo9706: () => {},
+foo9707: () => {},
+foo9708: () => {},
+foo9709: () => {},
+foo9710: () => {},
+foo9711: () => {},
+foo9712: () => {},
+foo9713: () => {},
+foo9714: () => {},
+foo9715: () => {},
+foo9716: () => {},
+foo9717: () => {},
+foo9718: () => {},
+foo9719: () => {},
+foo9720: () => {},
+foo9721: () => {},
+foo9722: () => {},
+foo9723: () => {},
+foo9724: () => {},
+foo9725: () => {},
+foo9726: () => {},
+foo9727: () => {},
+foo9728: () => {},
+foo9729: () => {},
+foo9730: () => {},
+foo9731: () => {},
+foo9732: () => {},
+foo9733: () => {},
+foo9734: () => {},
+foo9735: () => {},
+foo9736: () => {},
+foo9737: () => {},
+foo9738: () => {},
+foo9739: () => {},
+foo9740: () => {},
+foo9741: () => {},
+foo9742: () => {},
+foo9743: () => {},
+foo9744: () => {},
+foo9745: () => {},
+foo9746: () => {},
+foo9747: () => {},
+foo9748: () => {},
+foo9749: () => {},
+foo9750: () => {},
+foo9751: () => {},
+foo9752: () => {},
+foo9753: () => {},
+foo9754: () => {},
+foo9755: () => {},
+foo9756: () => {},
+foo9757: () => {},
+foo9758: () => {},
+foo9759: () => {},
+foo9760: () => {},
+foo9761: () => {},
+foo9762: () => {},
+foo9763: () => {},
+foo9764: () => {},
+foo9765: () => {},
+foo9766: () => {},
+foo9767: () => {},
+foo9768: () => {},
+foo9769: () => {},
+foo9770: () => {},
+foo9771: () => {},
+foo9772: () => {},
+foo9773: () => {},
+foo9774: () => {},
+foo9775: () => {},
+foo9776: () => {},
+foo9777: () => {},
+foo9778: () => {},
+foo9779: () => {},
+foo9780: () => {},
+foo9781: () => {},
+foo9782: () => {},
+foo9783: () => {},
+foo9784: () => {},
+foo9785: () => {},
+foo9786: () => {},
+foo9787: () => {},
+foo9788: () => {},
+foo9789: () => {},
+foo9790: () => {},
+foo9791: () => {},
+foo9792: () => {},
+foo9793: () => {},
+foo9794: () => {},
+foo9795: () => {},
+foo9796: () => {},
+foo9797: () => {},
+foo9798: () => {},
+foo9799: () => {},
+foo9800: () => {},
+foo9801: () => {},
+foo9802: () => {},
+foo9803: () => {},
+foo9804: () => {},
+foo9805: () => {},
+foo9806: () => {},
+foo9807: () => {},
+foo9808: () => {},
+foo9809: () => {},
+foo9810: () => {},
+foo9811: () => {},
+foo9812: () => {},
+foo9813: () => {},
+foo9814: () => {},
+foo9815: () => {},
+foo9816: () => {},
+foo9817: () => {},
+foo9818: () => {},
+foo9819: () => {},
+foo9820: () => {},
+foo9821: () => {},
+foo9822: () => {},
+foo9823: () => {},
+foo9824: () => {},
+foo9825: () => {},
+foo9826: () => {},
+foo9827: () => {},
+foo9828: () => {},
+foo9829: () => {},
+foo9830: () => {},
+foo9831: () => {},
+foo9832: () => {},
+foo9833: () => {},
+foo9834: () => {},
+foo9835: () => {},
+foo9836: () => {},
+foo9837: () => {},
+foo9838: () => {},
+foo9839: () => {},
+foo9840: () => {},
+foo9841: () => {},
+foo9842: () => {},
+foo9843: () => {},
+foo9844: () => {},
+foo9845: () => {},
+foo9846: () => {},
+foo9847: () => {},
+foo9848: () => {},
+foo9849: () => {},
+foo9850: () => {},
+foo9851: () => {},
+foo9852: () => {},
+foo9853: () => {},
+foo9854: () => {},
+foo9855: () => {},
+foo9856: () => {},
+foo9857: () => {},
+foo9858: () => {},
+foo9859: () => {},
+foo9860: () => {},
+foo9861: () => {},
+foo9862: () => {},
+foo9863: () => {},
+foo9864: () => {},
+foo9865: () => {},
+foo9866: () => {},
+foo9867: () => {},
+foo9868: () => {},
+foo9869: () => {},
+foo9870: () => {},
+foo9871: () => {},
+foo9872: () => {},
+foo9873: () => {},
+foo9874: () => {},
+foo9875: () => {},
+foo9876: () => {},
+foo9877: () => {},
+foo9878: () => {},
+foo9879: () => {},
+foo9880: () => {},
+foo9881: () => {},
+foo9882: () => {},
+foo9883: () => {},
+foo9884: () => {},
+foo9885: () => {},
+foo9886: () => {},
+foo9887: () => {},
+foo9888: () => {},
+foo9889: () => {},
+foo9890: () => {},
+foo9891: () => {},
+foo9892: () => {},
+foo9893: () => {},
+foo9894: () => {},
+foo9895: () => {},
+foo9896: () => {},
+foo9897: () => {},
+foo9898: () => {},
+foo9899: () => {},
+foo9900: () => {},
+foo9901: () => {},
+foo9902: () => {},
+foo9903: () => {},
+foo9904: () => {},
+foo9905: () => {},
+foo9906: () => {},
+foo9907: () => {},
+foo9908: () => {},
+foo9909: () => {},
+foo9910: () => {},
+foo9911: () => {},
+foo9912: () => {},
+foo9913: () => {},
+foo9914: () => {},
+foo9915: () => {},
+foo9916: () => {},
+foo9917: () => {},
+foo9918: () => {},
+foo9919: () => {},
+foo9920: () => {},
+foo9921: () => {},
+foo9922: () => {},
+foo9923: () => {},
+foo9924: () => {},
+foo9925: () => {},
+foo9926: () => {},
+foo9927: () => {},
+foo9928: () => {},
+foo9929: () => {},
+foo9930: () => {},
+foo9931: () => {},
+foo9932: () => {},
+foo9933: () => {},
+foo9934: () => {},
+foo9935: () => {},
+foo9936: () => {},
+foo9937: () => {},
+foo9938: () => {},
+foo9939: () => {},
+foo9940: () => {},
+foo9941: () => {},
+foo9942: () => {},
+foo9943: () => {},
+foo9944: () => {},
+foo9945: () => {},
+foo9946: () => {},
+foo9947: () => {},
+foo9948: () => {},
+foo9949: () => {},
+foo9950: () => {},
+foo9951: () => {},
+foo9952: () => {},
+foo9953: () => {},
+foo9954: () => {},
+foo9955: () => {},
+foo9956: () => {},
+foo9957: () => {},
+foo9958: () => {},
+foo9959: () => {},
+foo9960: () => {},
+foo9961: () => {},
+foo9962: () => {},
+foo9963: () => {},
+foo9964: () => {},
+foo9965: () => {},
+foo9966: () => {},
+foo9967: () => {},
+foo9968: () => {},
+foo9969: () => {},
+foo9970: () => {},
+foo9971: () => {},
+foo9972: () => {},
+foo9973: () => {},
+foo9974: () => {},
+foo9975: () => {},
+foo9976: () => {},
+foo9977: () => {},
+foo9978: () => {},
+foo9979: () => {},
+foo9980: () => {},
+foo9981: () => {},
+foo9982: () => {},
+foo9983: () => {},
+foo9984: () => {},
+foo9985: () => {},
+foo9986: () => {},
+foo9987: () => {},
+foo9988: () => {},
+foo9989: () => {},
+foo9990: () => {},
+foo9991: () => {},
+foo9992: () => {},
+foo9993: () => {},
+foo9994: () => {},
+foo9995: () => {},
+foo9996: () => {},
+foo9997: () => {},
+foo9998: () => {},
+foo9999: () => {},
+foo10000: () => {},
+}
diff --git a/test/mjsunit/regress/regress-459955.js b/test/mjsunit/regress/regress-459955.js
new file mode 100644
index 0000000..24eff6d
--- /dev/null
+++ b/test/mjsunit/regress/regress-459955.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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 f(x) {
+ var v;
+ if (x) v = 0;
+ return v <= 1;
+}
+assertFalse(f(false));
diff --git a/test/mjsunit/regress/regress-460917.js b/test/mjsunit/regress/regress-460917.js
new file mode 100644
index 0000000..68e1b63
--- /dev/null
+++ b/test/mjsunit/regress/regress-460917.js
@@ -0,0 +1,35 @@
+// Copyright 2015 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 boom(a1, a2) {
+  // Do something with a2 that needs a map check (for DOUBLE_ELEMENTS).
+  var s = a2[0];
+  // Emit a load that transitions a1 to FAST_ELEMENTS.
+  var t = a1[0];
+  // Emit a store to a2 that assumes DOUBLE_ELEMENTS.
+  // The map check is considered redundant and will be eliminated.
+  a2[0] = 0.3;
+}
+
+// Prepare type feedback for the "t = a1[0]" load: fast elements.
+var fast_elem = new Array(1);
+fast_elem[0] = "tagged";
+boom(fast_elem, [1]);
+
+// Prepare type feedback for the "a2[0] = 0.3" store: double elements.
+var double_elem = new Array(1);
+double_elem[0] = 0.1;
+boom(double_elem, double_elem);
+
+// Reset |double_elem| and go have a party.
+double_elem = new Array(10);
+double_elem[0] = 0.1;
+
+%OptimizeFunctionOnNextCall(boom);
+boom(double_elem, double_elem);
+
+assertEquals(0.3, double_elem[0]);
+assertEquals(undefined, double_elem[1]);
diff --git a/test/mjsunit/regress/regress-463028.js b/test/mjsunit/regress/regress-463028.js
new file mode 100644
index 0000000..1454ef1
--- /dev/null
+++ b/test/mjsunit/regress/regress-463028.js
@@ -0,0 +1,18 @@
+// Copyright 2015 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
+
+var o = {}
+Object.defineProperty(o, "z", {
+    set: function() {
+      %DeoptimizeFunction(f);
+    },
+});
+
+function f(o) {
+  return 19 + (void(o.z = 12));
+}
+
+f(o);
diff --git a/test/mjsunit/regress/regress-4640.js b/test/mjsunit/regress/regress-4640.js
new file mode 100644
index 0000000..ed609bb
--- /dev/null
+++ b/test/mjsunit/regress/regress-4640.js
@@ -0,0 +1,19 @@
+// Copyright 2015 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.
+
+// Some surrounding cases which already worked, for good measure
+assertTrue(new Date('275760-10-14') == 'Invalid Date');
+assertTrue(new Date('275760-09-23') == 'Invalid Date');
+assertTrue(new Date('+275760-09-24') == 'Invalid Date');
+assertTrue(new Date('+275760-10-13') == 'Invalid Date');
+
+// The following cases used to throw "illegal access"
+assertTrue(new Date('275760-09-24') == 'Invalid Date');
+assertTrue(new Date('275760-10-13') == 'Invalid Date');
+assertTrue(new Date('+275760-10-13 ') == 'Invalid Date');
+
+// However, dates within the range or valid
+assertTrue(new Date('100000-10-13') != 'Invalid Date');
+assertTrue(new Date('+100000-10-13') != 'Invalid Date');
+assertTrue(new Date('+100000-10-13 ') != 'Invalid Date');
diff --git a/test/mjsunit/regress/regress-4665.js b/test/mjsunit/regress/regress-4665.js
new file mode 100644
index 0000000..9d7307a
--- /dev/null
+++ b/test/mjsunit/regress/regress-4665.js
@@ -0,0 +1,33 @@
+// Copyright 2015 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: --noharmony-species
+
+// First test case
+
+function FirstBuffer () {}
+FirstBuffer.prototype.__proto__ = Uint8Array.prototype
+FirstBuffer.__proto__ = Uint8Array
+
+var buf = new Uint8Array(10)
+buf.__proto__ = FirstBuffer.prototype
+
+var buf2 = buf.subarray(2)
+assertEquals(8, buf2.length);
+
+// Second test case
+
+function SecondBuffer (arg) {
+  var arr = new Uint8Array(arg)
+  arr.__proto__ = SecondBuffer.prototype
+  return arr
+}
+SecondBuffer.prototype.__proto__ = Uint8Array.prototype
+SecondBuffer.__proto__ = Uint8Array
+
+var buf3 = new SecondBuffer(10)
+
+var buf4 = buf3.subarray(2)
+
+assertEquals(8, buf4.length);
diff --git a/test/mjsunit/regress/regress-466993.js b/test/mjsunit/regress/regress-466993.js
new file mode 100644
index 0000000..6bf02bb
--- /dev/null
+++ b/test/mjsunit/regress/regress-466993.js
@@ -0,0 +1,18 @@
+// Copyright 2015 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
+
+var test = function() {
+  var a = {"1": false, "2": false, "3": false, "4": false};
+  assertEquals(false, a[1]);
+  a[1] = true;
+};
+test();
+test();
+test();
+%OptimizeFunctionOnNextCall(test);
+test();
+test();
+test();
diff --git a/test/mjsunit/regress/regress-467481.js b/test/mjsunit/regress/regress-467481.js
new file mode 100644
index 0000000..dcb12d8
--- /dev/null
+++ b/test/mjsunit/regress/regress-467481.js
@@ -0,0 +1,22 @@
+// Copyright 2015 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 f(a1, a2) {
+  var v7 = a2[0];
+  var v8 = a1[0];
+  a2[0] = 0.3;
+}
+v6 = new Array(1);
+v6[0] = "tagged";
+f(v6, [1]);
+v5 = new Array(1);
+v5[0] = 0.1;
+f(v5, v5);
+v5 = new Array(10);
+f(v5, v5);
+%OptimizeFunctionOnNextCall(f);
+f(v5, v5);
+v5[0];
diff --git a/test/mjsunit/regress/regress-4693.js b/test/mjsunit/regress/regress-4693.js
new file mode 100644
index 0000000..ed832e6
--- /dev/null
+++ b/test/mjsunit/regress/regress-4693.js
@@ -0,0 +1,29 @@
+// Copyright 2016 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-sloppy-function
+
+// In sloppy mode we allow function redeclarations within blocks for webcompat.
+(function() {
+  assertEquals(undefined, f);  // Annex B
+  if (true) {
+    assertEquals(2, f());
+    function f() { return 1 }
+    assertEquals(2, f());
+    function f() { return 2 }
+    assertEquals(2, f());
+  }
+  assertEquals(2, f());  // Annex B
+})();
+
+// Should still fail in strict mode
+assertThrows(`
+  (function() {
+    "use strict";
+    if (true) {
+      function f() { return 1 }
+      function f() { return 2 }
+    }
+  })();
+`, SyntaxError);
diff --git a/test/mjsunit/regress/regress-469605.js b/test/mjsunit/regress/regress-469605.js
new file mode 100644
index 0000000..6572511
--- /dev/null
+++ b/test/mjsunit/regress/regress-469605.js
@@ -0,0 +1,43 @@
+// Copyright 2015 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 counter() {
+  var i = 100;
+  return function() {
+    if (i-- > 0) return i;
+    throw "done";
+  }
+}
+
+var c1 = counter();
+var c2 = counter();
+
+var f = (function() {
+  "use asm";
+  return function f(i) {
+    i = i|0;
+    do {
+      if (i > 0) c1();
+      else c2();
+    } while (true);
+  }
+})();
+
+assertThrows(function() { f(0); });
+assertThrows(function() { f(1); });
+
+var c3 = counter();
+
+var g = (function() {
+  "use asm";
+  return function g(i) {
+    i = i + 1;
+    do {
+      i = c3(i);
+    } while (true);
+  }
+})();
+
+assertThrows(function() { g(0); });
+assertThrows(function() { g(1); });
diff --git a/test/mjsunit/regress/regress-469605b.js b/test/mjsunit/regress/regress-469605b.js
new file mode 100644
index 0000000..de17676
--- /dev/null
+++ b/test/mjsunit/regress/regress-469605b.js
@@ -0,0 +1,26 @@
+// Copyright 2015 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 counter() {
+  var i = 10000;
+  return function() {
+    if (i-- > 0) return i;
+    throw "done";
+  }
+}
+
+
+var f = (function() {
+  "use asm";
+  return function f(i, c1, c2) {
+    i = i|0;
+    do {
+      if (i > 0) { while (0 ? this : this) { c1(); } }
+      else c2();
+    } while (true);
+  }
+})();
+
+assertThrows(function() { f(0, counter(), counter()); });
+assertThrows(function() { f(1, counter(), counter()); });
diff --git a/test/mjsunit/regress/regress-470804.js b/test/mjsunit/regress/regress-470804.js
new file mode 100644
index 0000000..cebb91f
--- /dev/null
+++ b/test/mjsunit/regress/regress-470804.js
@@ -0,0 +1,53 @@
+// Copyright 2015 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: --expose-gc
+
+function f() {
+  this.foo00 = 0;
+  this.foo01 = 0;
+  this.foo02 = 0;
+  this.foo03 = 0;
+  this.foo04 = 0;
+  this.foo05 = 0;
+  this.foo06 = 0;
+  this.foo07 = 0;
+  this.foo08 = 0;
+  this.foo09 = 0;
+  this.foo0a = 0;
+  this.foo0b = 0;
+  this.foo0c = 0;
+  this.foo0d = 0;
+  this.foo0e = 0;
+  this.foo0f = 0;
+  this.foo10 = 0;
+  this.foo11 = 0;
+  this.foo12 = 0;
+  this.foo13 = 0;
+  this.foo14 = 0;
+  this.foo15 = 0;
+  this.foo16 = 0;
+  this.foo17 = 0;
+  this.foo18 = 0;
+  this.foo19 = 0;
+  this.foo1a = 0;
+  this.foo1b = 0;
+  this.foo1c = 0;
+  this.foo1d = 0;
+  this.foo1e = 0;
+  this.foo1f = 0;
+  this.d = 1.3;
+  gc();
+  this.boom = 230;
+  this.boom = 1.4;
+}
+
+function g() {
+  return new f();
+}
+g();
+g();
+var o = g();
+assertEquals(0, o.foo00);
+assertEquals(1.4, o.boom);
diff --git a/test/mjsunit/regress/regress-472504.js b/test/mjsunit/regress/regress-472504.js
new file mode 100644
index 0000000..0e956f6
--- /dev/null
+++ b/test/mjsunit/regress/regress-472504.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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.
+
+// Should not crash in ASAN.
+function shouldThrow() {
+    shouldThrow(JSON.parse('{"0":1}'));
+}
+assertThrows("shouldThrow()", RangeError);
diff --git a/test/mjsunit/regress/regress-475705.js b/test/mjsunit/regress/regress-475705.js
new file mode 100644
index 0000000..ff96e04
--- /dev/null
+++ b/test/mjsunit/regress/regress-475705.js
@@ -0,0 +1,63 @@
+// Copyright 2015 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.
+
+// Crankshaft changes the stack usage and messes up the binary search for the
+// stack depth that causes a stack overflow.  The issue only arises without
+// regexp optimization, which can happen on pages that create a lot of regexps.
+// Flags: --nocrankshaft --noregexp-optimization
+
+// Should not crash with a stack overflow in the regexp compiler, even when the
+// JS has used most of the stack.
+function use_space_then_do_test(depth) {
+  try {
+    // The "+ depth" is to avoid the regexp compilation cache.
+    var regexp_src = repeat(".(.)", 12) + depth;
+    use_space(depth, regexp_src);
+    return true;
+  } catch (e) {
+    assertFalse(("" + e).indexOf("tack") == -1);  // Check for [Ss]tack.
+    return false;
+  }
+}
+
+function use_space(n, regexp_src) {
+  if (--n == 0) {
+    do_test(regexp_src);
+    return;
+  }
+  use_space(n, regexp_src);
+}
+
+function repeat(str, n) {
+  var answer = "";
+  while (n-- != 0) {
+    answer += str;
+  }
+  return answer;
+}
+
+var subject = repeat("y", 200);
+
+function do_test(regexp_src) {
+  var re = new RegExp(regexp_src);
+  re.test(subject);
+}
+
+function try_different_stack_limits() {
+  var lower = 100;
+  var higher = 100000;
+  while (lower < higher - 1) {
+    var average = Math.floor((lower + higher) / 2);
+    if (use_space_then_do_test(average)) {
+      lower = average;
+    } else {
+      higher = average;
+    }
+  }
+  for (var i = lower - 5; i < higher + 5; i++) {
+    use_space_then_do_test(i);
+  }
+}
+
+try_different_stack_limits();
diff --git a/test/mjsunit/regress/regress-476488.js b/test/mjsunit/regress/regress-476488.js
new file mode 100644
index 0000000..2db6819
--- /dev/null
+++ b/test/mjsunit/regress/regress-476488.js
@@ -0,0 +1,15 @@
+// Copyright 2015 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 --expose-gc
+
+function __f_0(message, a) {
+  eval(), message;
+  (function blue() {
+    'use strict';
+    eval(), eval(), message;
+    gc();
+  })();
+}
+__f_0();
diff --git a/test/mjsunit/regress/regress-479528.js b/test/mjsunit/regress/regress-479528.js
new file mode 100644
index 0000000..be0dfaf
--- /dev/null
+++ b/test/mjsunit/regress/regress-479528.js
@@ -0,0 +1,13 @@
+// Copyright 2015 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
+
+var __v_7 = {"__proto__": this};
+__v_9 = %CreatePrivateSymbol("__v_9");
+this[__v_9] = "moo";
+function __f_5() {
+    __v_7[__v_9] = "bow-wow";
+}
+__f_5();
diff --git a/test/mjsunit/regress/regress-484544.js b/test/mjsunit/regress/regress-484544.js
new file mode 100644
index 0000000..709a890
--- /dev/null
+++ b/test/mjsunit/regress/regress-484544.js
@@ -0,0 +1,13 @@
+// Copyright 2015 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: --nouse-allocation-folding  --stress-compaction --predictable
+
+function f() {
+  return [[], [], [[], [], []]];
+}
+
+for (var i=0; i<10000; i++) {
+  f();
+}
diff --git a/test/mjsunit/regress/regress-487981.js b/test/mjsunit/regress/regress-487981.js
new file mode 100644
index 0000000..829c25c
--- /dev/null
+++ b/test/mjsunit/regress/regress-487981.js
@@ -0,0 +1,22 @@
+// Copyright 2015 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 --stress-compaction
+
+// To reliably reproduce the crash use --verify-heap --random-seed=-133185440
+
+function __f_2(o) {
+  return o.field.b.x;
+}
+
+try {
+  %OptimizeFunctionOnNextCall(__f_2);
+  __v_1 = __f_2();
+} catch(e) { }
+
+function __f_3() { __f_3(/./.test()); };
+
+try {
+__f_3();
+} catch(e) { }
diff --git a/test/mjsunit/regress/regress-488398.js b/test/mjsunit/regress/regress-488398.js
new file mode 100644
index 0000000..77ea293
--- /dev/null
+++ b/test/mjsunit/regress/regress-488398.js
@@ -0,0 +1,18 @@
+// Copyright 2015 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
+
+var __v_10 = 4294967295;
+__v_0 = [];
+__v_0.__proto__ = [];
+__v_16 = __v_0;
+function __f_17(__v_16, base) {
+  __v_16[base + 1] = 1;
+  __v_16[base + 4] = base + 4;
+}
+__f_17(__v_16, true);
+__f_17(__v_16, 14);
+%OptimizeFunctionOnNextCall(__f_17);
+__f_17(__v_16, 2048);
diff --git a/test/mjsunit/regress/regress-489151.js b/test/mjsunit/regress/regress-489151.js
new file mode 100644
index 0000000..25a6555
--- /dev/null
+++ b/test/mjsunit/regress/regress-489151.js
@@ -0,0 +1,12 @@
+// Copyright 2015 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.
+
+this.__proto__ = Array.prototype;
+Object.freeze(this);
+function __f_0() {
+  for (var __v_0 = 0; __v_0 < 10; __v_0++) {
+    this.length = 1;
+  }
+}
+ __f_0();
diff --git a/test/mjsunit/regress/regress-491481.js b/test/mjsunit/regress/regress-491481.js
new file mode 100644
index 0000000..196b6ae
--- /dev/null
+++ b/test/mjsunit/regress/regress-491481.js
@@ -0,0 +1,15 @@
+// Copyright 2015 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
+
+try {
+%OptimizeFunctionOnNextCall(print);
+try {
+  __f_16();
+} catch(e) { print(e); }
+try {
+  __f_10();
+} catch(e) {; }
+} catch(e) {}
diff --git a/test/mjsunit/regress/regress-491536.js b/test/mjsunit/regress/regress-491536.js
new file mode 100644
index 0000000..6e6e0c6
--- /dev/null
+++ b/test/mjsunit/regress/regress-491536.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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: --expose-debug-as debug
+
+if (this["debug"]) debug.Debug.setListener(function() {});
+var source = "var outer = 0; function test() {'use strict'; outer = 1; } test(); print('ok');";
+function test_function() { eval(source); }
+assertDoesNotThrow(test_function);
diff --git a/test/mjsunit/regress/regress-499790.js b/test/mjsunit/regress/regress-499790.js
new file mode 100644
index 0000000..ce2cd03
--- /dev/null
+++ b/test/mjsunit/regress/regress-499790.js
@@ -0,0 +1,14 @@
+// Copyright 2015 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: --enable-slow-asserts
+
+var a = [1];
+a.foo = "bla";
+delete a.foo;
+a[0] = 1.5;
+
+var a2 = [];
+a2.foo = "bla";
+delete a2.foo;
diff --git a/test/mjsunit/regress/regress-500173.js b/test/mjsunit/regress/regress-500173.js
new file mode 100644
index 0000000..b7083b2
--- /dev/null
+++ b/test/mjsunit/regress/regress-500173.js
@@ -0,0 +1,12 @@
+// Copyright 2015 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 f(a) {
+  a.foo = {};
+  a[0] = 1;
+  a.__defineGetter__('foo', function() {});
+  a[0] = {};
+  a.bar = 0;
+}
+f(new Array());
diff --git a/test/mjsunit/regress/regress-500176.js b/test/mjsunit/regress/regress-500176.js
new file mode 100644
index 0000000..6700ef0
--- /dev/null
+++ b/test/mjsunit/regress/regress-500176.js
@@ -0,0 +1,13 @@
+// Copyright 2015 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 __f_0(p) {
+  var __v_0 = -2147483642;
+  for (var __v_1 = 0; __v_1 < 10; __v_1++) {
+    if (__v_1 > 5) { __v_0 = __v_0 + p; break;}
+  }
+}
+for (var __v_2 = 0; __v_2 < 100000; __v_2++) __f_0(42);
+__v_2 = { f: function () { return x + y; },
+          2: function () { return x - y} };
diff --git a/test/mjsunit/regress/regress-500831.js b/test/mjsunit/regress/regress-500831.js
new file mode 100644
index 0000000..6d8cfaf
--- /dev/null
+++ b/test/mjsunit/regress/regress-500831.js
@@ -0,0 +1,94 @@
+// Copyright 2015 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
+
+// To reproduce reliably use: --random-seed=-2012454635 --nodebug-code
+
+function deepEquals(a, b) {
+  if (a === b) {;
+    return true;
+  }
+  if (typeof a != typeof b) return false;
+  if (typeof a == "number");
+  if (typeof a !== "object" && typeof a !== "function")
+    return false;
+  var objectClass = classOf();
+  if (b) return false;
+  if (objectClass === "RegExp") {;
+  }
+  if (objectClass === "Function") return false;
+  if (objectClass === "Array") {
+    var elementCount = 0;
+    if (a.length != b.length) {
+      return false;
+    }
+    for (var i = 0; i < a.length; i++) {
+      if (a[i][i]) return false;
+    }
+    return true;
+  }
+  if (objectClass == "String" || objectClass == "Number" ||
+      objectClass == "Boolean" || objectClass == "Date") {
+    if (a.valueOf()) return false;
+  };
+}
+function equals(expected, found, name_opt) {
+  if (!deepEquals(found, expected)) {}
+};
+function instof(obj, type) {
+  if (!(obj instanceof type)) {
+    var actualTypeName = null;
+    var actualConstructor = Object.getPrototypeOf().constructor;
+    if (typeof actualConstructor == "function") {;
+    };
+  }
+};
+var __v_0 = 1;
+var __v_6 = {};
+var __v_9 = {};
+
+function __f_4() {
+  return function() {};
+}
+__v_6 = new Uint8ClampedArray(10);
+
+function __f_6() {
+  __v_6[0] = 0.499;
+  instof(__f_4(), Function);
+  equals();
+  __v_6[0] = 0.5;
+  equals();
+  __v_0[0] = 0.501;
+  equals(__v_6[4294967295]);
+  __v_6[0] = 1.499;
+  equals();
+  __v_6[0] = 1.5;
+  equals();
+  __v_6[0] = 1.501;
+  equals();
+  __v_6[0] = 2.5;
+  equals(__v_6[-1073741824]);
+  __v_6[0] = 3.5;
+  equals();
+  __v_6[0] = 252.5;
+  equals();
+  __v_6[0] = 253.5;
+  equals();
+  __v_6[0] = 254.5;
+  equals();
+  __v_6[0] = 256.5;
+  equals();
+  __v_6[0] = -0.5;
+  equals(__v_6[8]);
+  __v_6[0] = -1.5;
+  equals();
+  __v_6[0] = 1000000000000;
+  equals();
+  __v_9[0] = -1000000000000;
+  equals(__v_6[0]);
+}
+__f_6();
+__f_6(); % OptimizeFunctionOnNextCall(__f_6);
+__f_6();
diff --git a/test/mjsunit/regress/regress-500980.js b/test/mjsunit/regress/regress-500980.js
new file mode 100644
index 0000000..841d26a
--- /dev/null
+++ b/test/mjsunit/regress/regress-500980.js
@@ -0,0 +1,7 @@
+// Copyright 2015 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.
+
+var a = "a";
+assertThrows(function() { while (true) a += a; }, RangeError);
+assertThrows(function() { a in a; }, TypeError);
diff --git a/test/mjsunit/regress/regress-503565.js b/test/mjsunit/regress/regress-503565.js
new file mode 100644
index 0000000..9aebe8d
--- /dev/null
+++ b/test/mjsunit/regress/regress-503565.js
@@ -0,0 +1,21 @@
+// Copyright 2015 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.
+
+// Crashes without the fix for bug 503565.
+function f() {}
+function g() {}
+function h() {
+    g()
+}
+(function() {
+    eval("\
+        \"use strict\";\
+        g = (function(x) {\
+            +Math.log(+Math.log((+(+x>0)), f(Math.log())))\
+        })\
+    ")
+})()
+for (var j = 0; j < 999; j++) {
+    h()
+}
diff --git a/test/mjsunit/regress/regress-507980.js b/test/mjsunit/regress/regress-507980.js
new file mode 100644
index 0000000..d1a1f79
--- /dev/null
+++ b/test/mjsunit/regress/regress-507980.js
@@ -0,0 +1,8 @@
+// Copyright 2015 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.
+
+__v_1 = new Float64Array(1);
+__v_8 = { valueOf: function() { __v_13.y = "bar"; return 42; }};
+__v_13 = __v_1;
+__v_13[0] = __v_8;
diff --git a/test/mjsunit/regress/regress-509961.js b/test/mjsunit/regress/regress-509961.js
new file mode 100644
index 0000000..d28bc8a
--- /dev/null
+++ b/test/mjsunit/regress/regress-509961.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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.
+
+var o = { x: 0 };
+delete o.x;
+function store(o, p, v) { o[p] = v; }
+store(o, "x", 1);
+store(o, "x", 1);
+store(o, "0", 1);
diff --git a/test/mjsunit/regress/regress-514362.js b/test/mjsunit/regress/regress-514362.js
new file mode 100644
index 0000000..f69cfec
--- /dev/null
+++ b/test/mjsunit/regress/regress-514362.js
@@ -0,0 +1,21 @@
+// Copyright 2015 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 --expose-debug-as debug
+
+function bar(x) { debugger; }
+function foo() { bar(arguments[0]); }
+function wrap() { return foo(1); }
+
+wrap();
+wrap();
+%OptimizeFunctionOnNextCall(wrap);
+
+var Debug = debug.Debug;
+Debug.setListener(function(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  for (var i = 0; i < exec_state.frameCount(); i++) exec_state.frame(i);
+});
+
+wrap();
diff --git a/test/mjsunit/regress/regress-520029.js b/test/mjsunit/regress/regress-520029.js
new file mode 100644
index 0000000..299dd75
--- /dev/null
+++ b/test/mjsunit/regress/regress-520029.js
@@ -0,0 +1,29 @@
+// Copyright 2015 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-sloppy-let --harmony-sloppy
+
+// Test that hoisting a function out of a lexical scope does not
+// lead to a parsing error
+
+// This used to cause a crash in the parser
+function f(one) { class x { } { class x { } function g() { one; x; } g() } } f()
+
+// This used to lead to a ReferenceError
+function g() { var x = 1; { let x = 2; function g() { x; } g(); } }
+assertEquals(undefined, g());
+
+// This used to cause a crash in the parser
+function __f_4(one) {
+  var __v_10 = one + 1;
+  {
+    let __v_10 = one + 3;
+    function __f_6() {
+ one;
+ __v_10;
+    }
+    __f_6();
+  }
+}
+__f_4();
diff --git a/test/mjsunit/regress/regress-536751.js b/test/mjsunit/regress/regress-536751.js
new file mode 100644
index 0000000..b2d19e4
--- /dev/null
+++ b/test/mjsunit/regress/regress-536751.js
@@ -0,0 +1,11 @@
+// Copyright 2015 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-sloppy --harmony-sloppy-function --harmony-sloppy-let
+
+// At some point, this code led to DCHECK errors in debug mode
+
+for (; false;) function foo() {};
+
+for (x in []) function foo() {};
diff --git a/test/mjsunit/regress/regress-539875.js b/test/mjsunit/regress/regress-539875.js
new file mode 100644
index 0000000..b100c3b
--- /dev/null
+++ b/test/mjsunit/regress/regress-539875.js
@@ -0,0 +1,37 @@
+// Copyright 2015 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 testSeal() {
+  var sloppy = arguments;
+  var sym = Symbol();
+  sloppy[sym] = 123;
+  Object.seal(sloppy);
+  assertTrue(Object.isSealed(sloppy));
+  var desc = Object.getOwnPropertyDescriptor(sloppy, sym);
+  assertEquals(123, desc.value);
+  assertFalse(desc.configurable);
+  assertTrue(desc.writable);
+})();
+
+
+(function testFreeze() {
+  var sloppy = arguments;
+  var sym = Symbol();
+  sloppy[sym] = 123;
+  Object.freeze(sloppy);
+  assertTrue(Object.isFrozen(sloppy));
+  var desc = Object.getOwnPropertyDescriptor(sloppy, sym);
+  assertEquals(123, desc.value);
+  assertFalse(desc.configurable);
+  assertFalse(desc.writable);
+})();
+
+
+(function testIsFrozenAndIsSealed() {
+  var sym = Symbol();
+  var obj = { [sym]: 123 };
+  Object.preventExtensions(obj);
+  assertFalse(Object.isFrozen(obj));
+  assertFalse(Object.isSealed(obj));
+})();
diff --git a/test/mjsunit/regress/regress-542099.js b/test/mjsunit/regress/regress-542099.js
new file mode 100644
index 0000000..f3655da
--- /dev/null
+++ b/test/mjsunit/regress/regress-542099.js
@@ -0,0 +1,18 @@
+// Copyright 2015 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-sloppy --harmony-sloppy-function
+
+// Previously, this caused a CHECK fail in debug mode
+// https://code.google.com/p/chromium/issues/detail?id=542099
+
+var foo = {};
+var bar = foo;
+for (foo.x in {a: 1}) function foo() { return foo; }
+assertEquals("object", typeof bar);
+assertEquals("a", bar.x);
+assertEquals("function", typeof foo);
+assertEquals("function", typeof foo());
+assertSame(foo, foo());
+assertEquals(undefined, foo.x);
diff --git a/test/mjsunit/regress/regress-542100.js b/test/mjsunit/regress/regress-542100.js
new file mode 100644
index 0000000..bc03e6f
--- /dev/null
+++ b/test/mjsunit/regress/regress-542100.js
@@ -0,0 +1,25 @@
+// Copyright 2015 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-sloppy --harmony-sloppy-function
+
+(function() {
+  var x = {a: 1}
+  assertEquals("undefined", typeof f);
+  with (x)
+    function f() { return a; }
+  assertEquals("function", typeof f);
+  assertEquals(1, f());
+  x.a = 2;
+  assertEquals(2, f());
+})();
+
+var y = {b: 1}
+assertEquals("undefined", typeof g);
+with (y)
+  function g() { return b; }
+assertEquals("function", typeof g);
+assertEquals(1, g());
+y.b = 2;
+assertEquals(2, g());
diff --git a/test/mjsunit/regress/regress-542823.js b/test/mjsunit/regress/regress-542823.js
new file mode 100644
index 0000000..d9c2339
--- /dev/null
+++ b/test/mjsunit/regress/regress-542823.js
@@ -0,0 +1,12 @@
+// Copyright 2015 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.
+
+__v_0 = 100000;
+__v_1 = new Array();
+for (var __v_2 = 0; __v_2 < __v_0; __v_2++) {
+  __v_1[__v_2] = 0.5;
+}
+for (var __v_2 = 0; __v_2 < 10; __v_2++) {
+  var __v_0 = __v_1 + 0.5;
+}
diff --git a/test/mjsunit/regress/regress-543994.js b/test/mjsunit/regress/regress-543994.js
new file mode 100644
index 0000000..e0d6010
--- /dev/null
+++ b/test/mjsunit/regress/regress-543994.js
@@ -0,0 +1,19 @@
+// Copyright 2015 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.
+
+// Flass: --allow-natives-syntax --always-opt --gc-interval=163 --stress-compaction
+
+try { a = f();
+} catch(e) {
+}
+var i = 0;
+function f() {
+   try {
+     f();
+   } catch(e) {
+     i++;
+     [];
+   }
+}
+f();
diff --git a/test/mjsunit/regress/regress-544991.js b/test/mjsunit/regress/regress-544991.js
new file mode 100644
index 0000000..911d8ac
--- /dev/null
+++ b/test/mjsunit/regress/regress-544991.js
@@ -0,0 +1,23 @@
+// Copyright 2015 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-species
+
+'use strict';
+
+var typedArray = new Int8Array(1);
+var saved;
+var called;
+class TypedArraySubclass extends Int8Array {
+  constructor(x) {
+    super(x);
+    called = true;
+    saved = x;
+  }
+}
+typedArray.constructor = TypedArraySubclass
+typedArray.map(function(){});
+
+assertTrue(called);
+assertEquals(saved, 1);
diff --git a/test/mjsunit/regress/regress-552302.js b/test/mjsunit/regress/regress-552302.js
new file mode 100644
index 0000000..b9f712a
--- /dev/null
+++ b/test/mjsunit/regress/regress-552302.js
@@ -0,0 +1,7 @@
+// Copyright 2015 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-destructuring-bind --allow-natives-syntax
+
+assertThrows('var %OptimizeFunctionOnNextCall()', SyntaxError);
diff --git a/test/mjsunit/regress/regress-554865.js b/test/mjsunit/regress/regress-554865.js
new file mode 100644
index 0000000..9b66d79
--- /dev/null
+++ b/test/mjsunit/regress/regress-554865.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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-default-parameters
+
+(function() {
+  var x = {};
+  ((y = [42]) => assertEquals(42, y[0]))();
+})();
diff --git a/test/mjsunit/regress/regress-556543.js b/test/mjsunit/regress/regress-556543.js
new file mode 100644
index 0000000..9e9bedd
--- /dev/null
+++ b/test/mjsunit/regress/regress-556543.js
@@ -0,0 +1,17 @@
+// Copyright 2015 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 f() {
+  for (var __v_2 = 0; __v_2 < __v_5; ++__v_2) {
+    for (var __v_5 = 0; __v_3 < 1; ++__v_8) {
+      if (true || 0 > -6) continue;
+      for (var __v_3 = 0; __v_3 < 1; ++__v_3) {
+      }
+    }
+  }
+}
+%OptimizeFunctionOnNextCall(f);
+f();
diff --git a/test/mjsunit/regress/regress-568765.js b/test/mjsunit/regress/regress-568765.js
new file mode 100644
index 0000000..9efd859
--- /dev/null
+++ b/test/mjsunit/regress/regress-568765.js
@@ -0,0 +1,93 @@
+// Copyright 2015 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 --expose-gc --gc-interval=216
+// Flags: --nonative-context-specialization
+
+function PrettyPrint() { return ""; }
+function fail() { }
+assertSame = function assertSame() { if (found === expected) { if (1 / found) return; } else if ((expected !== expected) && (found !== found)) { return; }; }; assertEquals = function assertEquals(expected, found, name_opt) { if ( expected) { fail(PrettyPrint()); } };
+assertTrue = function assertTrue() { assertEquals(); };
+assertThrows = function assertThrows(code, type_opt, cause_opt) { var threwException = true; try { if (typeof code == 'function') { code(); } else {; } threwException = false; } catch (e) { if (typeof type_opt == 'function') {; } if (arguments.length >= 3) {; } return; } };
+assertInstanceof = function assertInstanceof() { if (obj instanceof type) { var actualTypeName = null; var actualConstructor = Object.getPrototypeOf().constructor; if (typeof actualConstructor == "function") {; }; } };
+function modifyPropertyOrValue() { var names; try {; } catch(e) {; return; } if(!names) return; name = names[rand_value % names.length]; if (isNaN()); }
+function nop() {}
+var __v_5 = {};
+var __v_12 = {};
+var __v_13 = {};
+var __v_16 = {};
+function __f_0() {
+}
+(function (){
+  function __f_6() {
+  }
+  a = __f_6();
+  b = __f_6();
+  name = "Array";
+})();
+(function (){
+  function __f_1() {
+    assertTrue();
+  }
+  __f_1();
+})();
+__v_10 = {
+}
+__v_11 = new Object();
+tailee1 = function() {
+  "use strict";
+  if (__v_12-- == 0) {
+  }
+  return nop();
+};
+%OptimizeFunctionOnNextCall(tailee1);
+assertEquals(__v_10, tailee1.call());
+__v_14 = 100000;
+gc();
+tailee2 = function() {
+  "use strict";
+  __v_14 = ((__v_14 | 0) - 1) | 0;
+  if ((__v_14 | 0) === 0) {
+  }
+};
+%OptimizeFunctionOnNextCall(tailee2);
+assertEquals(__v_11, tailee2.call());
+__v_13 = 999999;
+tailee3 = function() {
+  "use strict";
+  if (__v_13-- == 0) {
+  }
+};
+%OptimizeFunctionOnNextCall(tailee3);
+assertEquals(__v_9, tailee3.call(__v_11, __v_9));
+tailee4 = function(px) {
+  return nop(tailee4, this, px, undefined);
+};
+%OptimizeFunctionOnNextCall(tailee4);
+assertThrows(function() { tailee4.call(); });
+tailee5 = function() {
+  return nop();
+};
+%OptimizeFunctionOnNextCall(tailee5);
+assertThrows(function() { tailee5.call(); });
+tailee6 = function() {
+}
+tailee7 = function( py, pz, pa, pb, pc) {
+  return nop();
+};
+%OptimizeFunctionOnNextCall(tailee7);
+ tailee7.call();
+
+(function() {
+  Number.prototype[0] = "a";
+  Number.prototype[1] = "b";
+  Object.defineProperty(Number.prototype, 2, {
+    get: function() {
+    }
+  });
+  Number.prototype.length = 3;
+Array.prototype.includes.call(5);
+})();
+var __v_9 = -8;
+var __v_20 = 0;
diff --git a/test/mjsunit/regress/regress-572589.js b/test/mjsunit/regress/regress-572589.js
new file mode 100644
index 0000000..36092a2
--- /dev/null
+++ b/test/mjsunit/regress/regress-572589.js
@@ -0,0 +1,12 @@
+// Copyright 2016 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 --no-lazy
+// Flags: --harmony-destructuring-bind
+
+"use strict";
+eval();
+var f = ({x}) => { };
+%OptimizeFunctionOnNextCall(f);
+assertThrows(f);
diff --git a/test/mjsunit/regress/regress-575364.js b/test/mjsunit/regress/regress-575364.js
new file mode 100644
index 0000000..f1dc49e
--- /dev/null
+++ b/test/mjsunit/regress/regress-575364.js
@@ -0,0 +1,12 @@
+// Copyright 2015 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:  --expose-wasm
+
+function f() {
+  "use asm";
+
+}
+assertFalse(_WASMEXP_ == undefined);
+assertThrows(function() { _WASMEXP_.asmCompileRun(f.toString()); });
diff --git a/test/mjsunit/regress/regress-578775.js b/test/mjsunit/regress/regress-578775.js
new file mode 100644
index 0000000..afeaf3d
--- /dev/null
+++ b/test/mjsunit/regress/regress-578775.js
@@ -0,0 +1,18 @@
+// Copyright 2016 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.
+
+// https://code.google.com/p/chromium/issues/detail?id=578775
+
+var __v_9 = {};
+for (var __v_0 = 0; __v_0 < 1000; __v_0++) {
+}
+__v_2 = { __v_2: 1 };
+__v_12 = new Proxy({}, {});
+function f() {
+  var __v_10 = new Proxy({}, __v_2);
+  __v_9.__proto__ = __v_10;
+  __v_2.getPrototypeOf = function () { return __v_9 };
+  Object.prototype.isPrototypeOf.call(__v_0, __v_10);
+};
+assertThrows(f, RangeError);
diff --git a/test/mjsunit/regress/regress-581.js b/test/mjsunit/regress/regress-581.js
index 65cd87d..1b40f58 100644
--- a/test/mjsunit/regress/regress-581.js
+++ b/test/mjsunit/regress/regress-581.js
@@ -35,11 +35,12 @@
 assertThrows(function() { a.concat(a); }, RangeError);
 
 var b = [];
-b[pow31 - 2] = 32;
+b[pow31 - 3] = 32;
 var ab = a.concat(b);
 assertEquals(2 * pow31 - 1, ab.length);
 assertEquals(31, ab[pow31]);
-assertEquals(32, ab[2 * pow31 - 1]);
+assertEquals(32, ab[2 * pow31 - 2]);
+assertEquals(undefined, ab[2 * pow31 - 1]);
 
 var c = [];
 c[pow30] = 30;
diff --git a/test/mjsunit/regress/regress-583260.js b/test/mjsunit/regress/regress-583260.js
new file mode 100644
index 0000000..b0c01f6
--- /dev/null
+++ b/test/mjsunit/regress/regress-583260.js
@@ -0,0 +1,12 @@
+// Copyright 2016 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.
+
+__v_1 = {
+  has() { return true }
+};
+__v_2 = new Proxy({}, __v_1);
+function __f_5(object) {
+  with (object) { return delete __v_3; }
+}
+ __f_5(__v_2)
diff --git a/test/mjsunit/regress/regress-585775.js b/test/mjsunit/regress/regress-585775.js
new file mode 100644
index 0000000..8e4346c
--- /dev/null
+++ b/test/mjsunit/regress/regress-585775.js
@@ -0,0 +1,6 @@
+// Copyright 2016 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.
+
+var pattern = /foo/;
+assertEquals(undefined, pattern.compile(pattern));
diff --git a/test/mjsunit/regress/regress-641.js b/test/mjsunit/regress/regress-641.js
index 957caa8..c29b2af 100644
--- a/test/mjsunit/regress/regress-641.js
+++ b/test/mjsunit/regress/regress-641.js
@@ -27,6 +27,8 @@
 
 // Regression test for http://code.google.com/p/v8/issues/detail?id=641.
 
+// Flags: --legacy-const
+
  function f(){
  while (window + 1) {
    const window=[,];
diff --git a/test/mjsunit/regress/regress-70066.js b/test/mjsunit/regress/regress-70066.js
index 01c2f4f..8787b76 100644
--- a/test/mjsunit/regress/regress-70066.js
+++ b/test/mjsunit/regress/regress-70066.js
@@ -120,7 +120,7 @@
 }
 
 assertEquals(true, test8(), "test8");
-assertThrows("x", "test8");  // Global x should be deleted.
+assertThrows("x");  // Global x should be deleted.
 
 
 // Delete on a property that is not found anywhere.
@@ -128,7 +128,7 @@
   with ({}) { return delete x; }
 }
 
-assertThrows("x", "test9");  // Make sure it's not there.
+assertThrows("x");  // Make sure it's not there.
 assertEquals(true, test9(), "test9");
 
 
diff --git a/test/mjsunit/regress/regress-747.js b/test/mjsunit/regress/regress-747.js
index 648c366..a3de131 100644
--- a/test/mjsunit/regress/regress-747.js
+++ b/test/mjsunit/regress/regress-747.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --expose_gc
+// Flags: --expose-gc
 
 // This test makes sure that we do flush code with heap allocated locals.
 // This can be a problem if eval is used within the scope.
diff --git a/test/mjsunit/regress/regress-78270.js b/test/mjsunit/regress/regress-78270.js
index 02c4b14..b9ce286 100644
--- a/test/mjsunit/regress/regress-78270.js
+++ b/test/mjsunit/regress/regress-78270.js
@@ -25,8 +25,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --turbo-deoptimization
-
 for (var i = 0; i < 10000; i++) {
   try {
     var object = { };
diff --git a/test/mjsunit/regress/regress-799761.js b/test/mjsunit/regress/regress-799761.js
index d3be1bd..7d09da5 100644
--- a/test/mjsunit/regress/regress-799761.js
+++ b/test/mjsunit/regress/regress-799761.js
@@ -25,6 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+// Flags: --legacy-const
+
 // const variables should be read-only
 const c = 42;
 c = 87;
diff --git a/test/mjsunit/regress/regress-88591.js b/test/mjsunit/regress/regress-88591.js
index e42570a..e7f410d 100644
--- a/test/mjsunit/regress/regress-88591.js
+++ b/test/mjsunit/regress/regress-88591.js
@@ -25,6 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+// Flags: --legacy-const
+
 // Regression test for a crash.  A data property in the global object's
 // prototype shadowed by a setter in the global object's prototype's
 // prototype would crash or assert when seen by Runtime_DeclareContextSlot.
diff --git a/test/mjsunit/regress/regress-91120.js b/test/mjsunit/regress/regress-91120.js
index 117acac..73f5456 100644
--- a/test/mjsunit/regress/regress-91120.js
+++ b/test/mjsunit/regress/regress-91120.js
@@ -25,24 +25,26 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// We intend that the function declaration for g inside catch is hoisted to
-// function f's scope.  Invoke it before try/catch, in the try block, in the
-// catch block, after try/catch, and outside f, and verify that it has
-// access to the proper binding of x.
+// With ES2015 function hoisting semantics, functions are only "hoisted" out
+// of blocks by writing their values into var-scoped declarations. Therefore,
+// they access the catch binding when it syntactically appears so.
+// This is a potentially breaking change vs the old semantics, which would
+// return 'function' from g() everywhere.
+
 var x = 'global';
 
 function f() {
   var x = 'function';
-  assertEquals('function', g());
+  assertEquals(undefined, g);
   try {
-    assertEquals('function', g());
+    assertEquals(undefined, g);
     throw 'catch';
   } catch (x) {
     function g() { return x; }
-    assertEquals('function', g());
+    assertEquals('catch', g());
   }
-  assertEquals('function', g());
+  assertEquals('catch', g());
   return g;
 }
 
-assertEquals('function', f()());
+assertEquals('catch', f()());
diff --git a/test/mjsunit/regress/regress-95113.js b/test/mjsunit/regress/regress-95113.js
index 468bff8..aa526ae 100644
--- a/test/mjsunit/regress/regress-95113.js
+++ b/test/mjsunit/regress/regress-95113.js
@@ -31,8 +31,8 @@
   var a = new Array(100000);
   var i = 0;
   while (!%HasFastDoubleElements(a)) {
-    a[i] = i;
-    i += 0.5;
+    a[i] = i + 0.1;
+    i += 1;
   }
   assertTrue(%HasFastDoubleElements(a));
   a.length = 1;
diff --git a/test/mjsunit/regress/regress-95920.js b/test/mjsunit/regress/regress-95920.js
index 20e73fb..5584965 100644
--- a/test/mjsunit/regress/regress-95920.js
+++ b/test/mjsunit/regress/regress-95920.js
@@ -28,31 +28,23 @@
 // Tests that objects with external arrays cannot be sealed or have their
 // properties redefined.
 
-(function() {
-  assertThrows(function() {
-    [0].every(function(){ Object.seal((new Int8Array(42))); });
-    assertUnreable();
-    }, TypeError)
-})();
+Object.preventExtensions(new Int8Array(42));
+Object.seal(new Int8Array(42));
 
-(function() {
-  assertThrows(function() {
-    [0].every(function(){ Object.freeze((new Int8Array(42))); });
-    assertUnreable();
-    }, TypeError)
-})();
+// No elements, so should succeed.
+Object.freeze(new Int8Array(0));
 
-(function() {
-  assertThrows(function() {
-    [0].every(function(){ Object.preventExtensions((new Int8Array(42))); });
-    assertUnreable();
-    }, TypeError)
-})();
+var o = new Int8Array(42);
+assertThrows(function() {
+  Object.freeze(o);
+  assertUnreable();
+  }, TypeError);
 
-(function() {
-  assertThrows(function() {
-      Object.defineProperty(new Int8Array(42), "1",
-                            { writable: false, value: "1" });
-      assertUnreable();
-    })
-})();
+// Freeze should still have managed to preventExtensions o.
+assertFalse(Object.isExtensible(o));
+
+assertThrows(function() {
+    Object.defineProperty(new Int8Array(42), "1",
+                          { writable: false, value: "1" });
+    assertUnreable();
+  });
diff --git a/test/mjsunit/regress/regress-995.js b/test/mjsunit/regress/regress-995.js
index 6f3dac1..3f99179 100644
--- a/test/mjsunit/regress/regress-995.js
+++ b/test/mjsunit/regress/regress-995.js
@@ -33,7 +33,7 @@
 
 // HHasInstance.
 function f(value) {
-  if (%_IsSpecObject(value)) {
+  if (%_IsJSReceiver(value)) {
     if ((%_IsArray(value))) assertTrue(false);
   }
 }
diff --git a/test/mjsunit/regress/regress-arg-materialize-store.js b/test/mjsunit/regress/regress-arg-materialize-store.js
new file mode 100644
index 0000000..2a30dc8
--- /dev/null
+++ b/test/mjsunit/regress/regress-arg-materialize-store.js
@@ -0,0 +1,22 @@
+// Copyright 2015 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 f() {
+  return f.arguments;
+}
+
+function g(deopt) {
+  var o = { x : 2 };
+  f();
+  o.x = 1;
+  deopt + 0;
+  return o.x;
+}
+
+g(0);
+g(0);
+%OptimizeFunctionOnNextCall(g);
+assertEquals(1, g({}));
diff --git a/test/mjsunit/regress/regress-arguments-gc.js b/test/mjsunit/regress/regress-arguments-gc.js
index baa4e16..b5ed608 100644
--- a/test/mjsunit/regress/regress-arguments-gc.js
+++ b/test/mjsunit/regress/regress-arguments-gc.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --expose-gc --nocleanup_code_caches_at_gc
+// Flags: --expose-gc --nocleanup-code-caches-at-gc
 
 function f(x) {
   gc();
diff --git a/test/mjsunit/regress/regress-arguments-slice.js b/test/mjsunit/regress/regress-arguments-slice.js
new file mode 100644
index 0000000..f7cd8c6
--- /dev/null
+++ b/test/mjsunit/regress/regress-arguments-slice.js
@@ -0,0 +1,8 @@
+// Copyright 2015 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 f() { return arguments; }
+var o = f();
+o.length = -100;
+Array.prototype.slice.call(o);
diff --git a/test/mjsunit/regress/regress-arm64-spillslots.js b/test/mjsunit/regress/regress-arm64-spillslots.js
new file mode 100644
index 0000000..1791b24
--- /dev/null
+++ b/test/mjsunit/regress/regress-arm64-spillslots.js
@@ -0,0 +1,34 @@
+// Copyright 2015 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
+
+"use strict";
+
+function Message(message) {
+  this.message = message;
+}
+
+function Inlined(input) {
+  var dummy = arguments[1] === undefined;
+  if (input instanceof Message) {
+    return input;
+  }
+  print("unreachable, but we must create register allocation complexity");
+  return [];
+}
+
+function Process(input) {
+  var ret = [];
+  ret.push(Inlined(input[0], 1, 2));
+  return ret;
+}
+
+var input = [new Message("TEST PASS")];
+
+Process(input);
+Process(input);
+%OptimizeFunctionOnNextCall(Process);
+var result = Process(input);
+assertEquals("TEST PASS", result[0].message);
diff --git a/test/mjsunit/regress/regress-assignment-in-test-context.js b/test/mjsunit/regress/regress-assignment-in-test-context.js
index bc40985..61ca220 100644
--- a/test/mjsunit/regress/regress-assignment-in-test-context.js
+++ b/test/mjsunit/regress/regress-assignment-in-test-context.js
@@ -2,8 +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 --always-opt
-// Flags: --turbo-filter=* --turbo-deoptimization
+// Flags: --allow-natives-syntax --always-opt --turbo-filter=*
 
 function assertEquals() {}
 
diff --git a/test/mjsunit/regress/regress-bce-underflow.js b/test/mjsunit/regress/regress-bce-underflow.js
new file mode 100644
index 0000000..daa7760
--- /dev/null
+++ b/test/mjsunit/regress/regress-bce-underflow.js
@@ -0,0 +1,35 @@
+// Copyright 2015 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 f(a, i, bool) {
+  var result;
+  if (bool) {
+    // Make sure i - -0x80000000 doesn't overflow in BCE, missing a check for
+    // x-0 later on.
+    result = f2(a, 0x7fffffff, i, i, -0x80000000);
+  } else {
+    result = f2(a, -3, 4, i, 0);
+  }
+  return result;
+}
+
+function f2(a, c, x, i, d) {
+  return a[x + c] + a[x - 0] + a[i - d];
+}
+
+
+var a = [];
+var i = 0;
+a.push(i++);
+a.push(i++);
+a.push(i++);
+a.push(i++);
+a.push(i++);
+f(a, 0, false);
+f(a, 0, false);
+f(a, 0, false);
+%OptimizeFunctionOnNextCall(f);
+%DebugPrint(f(a, -0x7fffffff, true));
diff --git a/test/mjsunit/regress/regress-binop-nosse2.js b/test/mjsunit/regress/regress-binop-nosse2.js
deleted file mode 100644
index 29c8a04..0000000
--- a/test/mjsunit/regress/regress-binop-nosse2.js
+++ /dev/null
@@ -1,167 +0,0 @@
-// Copyright 2013 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Flags: --allow-natives-syntax --noenable-sse2
-
-// general tests
-var e31 = Math.pow(2, 31);
-
-assertEquals(-e31, -1*e31);
-assertEquals(e31, -1*e31*(-1));
-assertEquals(e31, -1*-e31);
-assertEquals(e31, -e31*(-1));
-
-var x = {toString : function() {return 1}}
-function add(a,b){return a+b;}
-add(1,x);
-add(1,x);
-%OptimizeFunctionOnNextCall(add);
-add(1,x);
-x.toString = function() {return "2"};
-
-assertEquals(add(1,x), "12");
-
-// Test the correct placement of the simulates in TruncateToNumber:
-function Checker() {
-  this.str = "1";
-  var toStringCalled = 0;
-  var toStringExpected = 0;
-  this.toString = function() {
-    toStringCalled++;
-    return this.str;
-  };
-  this.check = function() {
-    toStringExpected++;
-    assertEquals(toStringExpected, toStringCalled);
-  };
-};
-var left = new Checker();
-var right = new Checker();
-
-function test(fun,check_fun,a,b,does_throw) {
-  left.str = a;
-  right.str = b;
-  try {
-    assertEquals(check_fun(a,b), fun(left, right));
-    assertTrue(!does_throw);
-  } catch(e) {
-    if (e instanceof TypeError) {
-      assertTrue(!!does_throw);
-    } else {
-      throw e;
-    }
-  } finally {
-    left.check();
-    if (!does_throw || does_throw>1) {
-      right.check();
-    }
-  }
-}
-
-function minus(a,b) { return a-b };
-function check_minus(a,b) { return a-b };
-function mod(a,b) { return a%b };
-function check_mod(a,b) { return a%b };
-
-test(minus,check_minus,1,2);
-// Bailout on left
-test(minus,check_minus,1<<30,1);
-// Bailout on right
-test(minus,check_minus,1,1<<30);
-// Bailout on result
-test(minus,check_minus,1<<30,-(1<<30));
-
-// Some more interesting things
-test(minus,check_minus,1,1.4);
-test(minus,check_minus,1.3,4);
-test(minus,check_minus,1.3,1.4);
-test(minus,check_minus,1,2);
-test(minus,check_minus,1,undefined);
-test(minus,check_minus,1,2);
-test(minus,check_minus,1,true);
-test(minus,check_minus,1,2);
-test(minus,check_minus,1,null);
-test(minus,check_minus,1,2);
-test(minus,check_minus,1,"");
-test(minus,check_minus,1,2);
-
-// Throw on left
-test(minus,check_minus,{},1,1);
-// Throw on right
-test(minus,check_minus,1,{},2);
-// Throw both
-test(minus,check_minus,{},{},1);
-
-test(minus,check_minus,1,2);
-
-// Now with optimized code
-test(mod,check_mod,1,2);
-%OptimizeFunctionOnNextCall(mod);
-test(mod,check_mod,1,2);
-
-test(mod,check_mod,1<<30,1);
-%OptimizeFunctionOnNextCall(mod);
-test(mod,check_mod,1<<30,1);
-test(mod,check_mod,1,1<<30);
-%OptimizeFunctionOnNextCall(mod);
-test(mod,check_mod,1,1<<30);
-test(mod,check_mod,1<<30,-(1<<30));
-%OptimizeFunctionOnNextCall(mod);
-test(mod,check_mod,1<<30,-(1<<30));
-
-test(mod,check_mod,1,{},2);
-%OptimizeFunctionOnNextCall(mod);
-test(mod,check_mod,1,{},2);
-
-test(mod,check_mod,1,2);
-
-
-// test oddballs
-function t1(a, b) {return a-b}
-assertEquals(t1(1,2), 1-2);
-assertEquals(t1(2,true), 2-1);
-assertEquals(t1(false,2), 0-2);
-assertEquals(t1(1,2.4), 1-2.4);
-assertEquals(t1(1.3,2.4), 1.3-2.4);
-assertEquals(t1(true,2.4), 1-2.4);
-assertEquals(t1(1,undefined), 1-NaN);
-assertEquals(t1(1,1<<30), 1-(1<<30));
-assertEquals(t1(1,2), 1-2);
-
-function t2(a, b) {return a/b}
-assertEquals(t2(1,2), 1/2);
-assertEquals(t2(null,2), 0/2);
-assertEquals(t2(null,-2), 0/-2);
-assertEquals(t2(2,null), 2/0);
-assertEquals(t2(-2,null), -2/0);
-assertEquals(t2(1,2.4), 1/2.4);
-assertEquals(t2(1.3,2.4), 1.3/2.4);
-assertEquals(t2(null,2.4), 0/2.4);
-assertEquals(t2(1.3,null), 1.3/0);
-assertEquals(t2(undefined,2), NaN/2);
-assertEquals(t2(1,1<<30), 1/(1<<30));
-assertEquals(t2(1,2), 1/2);
diff --git a/test/mjsunit/regress/regress-crbug-107996.js b/test/mjsunit/regress/regress-crbug-107996.js
index b4907f3..dfe07e5 100644
--- a/test/mjsunit/regress/regress-crbug-107996.js
+++ b/test/mjsunit/regress/regress-crbug-107996.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --expose-debug-as debug
-// Flags: --turbo-deoptimization
 
 Debug = debug.Debug;
 
diff --git a/test/mjsunit/regress/regress-crbug-109362.js b/test/mjsunit/regress/regress-crbug-109362.js
index b156013..20285f6 100644
--- a/test/mjsunit/regress/regress-crbug-109362.js
+++ b/test/mjsunit/regress/regress-crbug-109362.js
@@ -1,4 +1,4 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
+// Copyright 2015 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.
 
@@ -10,17 +10,50 @@
   } catch (e) {
     stack = e.stack;
   }
-  print(stack);
   assertTrue(stack.indexOf("at eval (evaltest:" + expectation + ")") > 0);
 }
 
-test("1:5", new Function(
+/*
+(function() {
+1 + reference_error //@ sourceURL=evaltest
+})
+*/
+test("2:5", new Function(
     '1 + reference_error //@ sourceURL=evaltest'));
-test("2:6", new Function(
+/*
+(function(x
+/\**\/) {
+
+ 1 + reference_error //@ sourceURL=evaltest
+})
+*/
+test("4:6", new Function(
     'x', '\n 1 + reference_error //@ sourceURL=evaltest'));
-test("2:6", new Function(
+/*
+(function(x
+
+,z//
+,y
+/\**\/) {
+
+ 1 + reference_error //@ sourceURL=evaltest
+})
+*/
+test("7:6", new Function(
     'x\n\n', "z//\n", "y", '\n 1 + reference_error //@ sourceURL=evaltest'));
-test("1:5", new Function(
+/*
+(function(x/\*,z//
+,y*\/
+/\**\/) {
+1 + reference_error //@ sourceURL=evaltest
+})
+*/
+test("4:5", new Function(
     'x/*', "z//\n", "y*/", '1 + reference_error //@ sourceURL=evaltest'));
+/*
+(function () {
+ 1 + reference_error //@ sourceURL=evaltest5
+})
+*/
 test("2:6", eval(
     '(function () {\n 1 + reference_error //@ sourceURL=evaltest\n})'));
diff --git a/test/mjsunit/regress/regress-crbug-119800.js b/test/mjsunit/regress/regress-crbug-119800.js
new file mode 100644
index 0000000..3946fbb
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-119800.js
@@ -0,0 +1,37 @@
+// Copyright 2015 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: --expose-debug-as debug
+
+function f() {
+  1;
+  2;
+  3;
+}
+
+var Debug = debug.Debug;
+var exception = null;
+var breaks = [];
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    Debug.debuggerFlags().breakPointsActive.setValue(false);
+    breaks.push(exec_state.frame().sourceLineText().trimLeft());
+    exec_state.prepareStep(Debug.StepAction.StepIn);
+  } catch (e) {
+    exception = e;
+  }
+}
+
+Debug.setListener(listener);
+Debug.setBreakPoint(f, 0, 0);
+
+f();
+
+Debug.setListener(null);
+Debug.debuggerFlags().breakPointsActive.setValue(true);
+
+assertNull(exception);
+assertEquals(breaks, ["1;", "2;", "3;", "}", "Debug.setListener(null);"]);
diff --git a/test/mjsunit/regress/regress-crbug-150545.js b/test/mjsunit/regress/regress-crbug-150545.js
index 8238d2f..cfee061 100644
--- a/test/mjsunit/regress/regress-crbug-150545.js
+++ b/test/mjsunit/regress/regress-crbug-150545.js
@@ -45,10 +45,7 @@
 
   function outer() {
     inner(1,2,3);
-    // Trigger OSR, if optimization is not disabled.
-    if (%GetOptimizationStatus(outer) != 4) {
-      while (%GetOptimizationCount(outer) == 0) {}
-    }
+    for (var i = 0; i < 3; i++) %OptimizeOsr();
   }
 
   outer();
diff --git a/test/mjsunit/regress/regress-crbug-171715.js b/test/mjsunit/regress/regress-crbug-171715.js
index 309f50a..040c381 100644
--- a/test/mjsunit/regress/regress-crbug-171715.js
+++ b/test/mjsunit/regress/regress-crbug-171715.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --expose-debug-as debug
-// Flags: --turbo-deoptimization
 
 Debug = debug.Debug
 
diff --git a/test/mjsunit/regress/regress-crbug-217858.js b/test/mjsunit/regress/regress-crbug-217858.js
index e61cb9f..d6d6e9f 100644
--- a/test/mjsunit/regress/regress-crbug-217858.js
+++ b/test/mjsunit/regress/regress-crbug-217858.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --noanalyze_environment_liveness
+// Flags: --noanalyze-environment-liveness
 
 var r = /r/;
 function f() {
diff --git a/test/mjsunit/regress/regress-crbug-222893.js b/test/mjsunit/regress/regress-crbug-222893.js
index 75e1728..39363bc 100644
--- a/test/mjsunit/regress/regress-crbug-222893.js
+++ b/test/mjsunit/regress/regress-crbug-222893.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --expose-debug-as debug
-// Flags: --turbo-deoptimization
 
 Debug = debug.Debug
 
diff --git a/test/mjsunit/regress/regress-crbug-245480.js b/test/mjsunit/regress/regress-crbug-245480.js
index 43fa6ba..07e46f8 100644
--- a/test/mjsunit/regress/regress-crbug-245480.js
+++ b/test/mjsunit/regress/regress-crbug-245480.js
@@ -25,8 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax --expose-gc
-// Flags: --noalways-opt
+// Flags: --allow-natives-syntax --expose-gc --noalways-opt
 
 function isHoley(obj) {
   if (%HasFastHoleyElements(obj)) return true;
diff --git a/test/mjsunit/regress/regress-crbug-323936.js b/test/mjsunit/regress/regress-crbug-323936.js
index d896ead..6e75729 100644
--- a/test/mjsunit/regress/regress-crbug-323936.js
+++ b/test/mjsunit/regress/regress-crbug-323936.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: --expose-debug-as debug
+// Flags: --expose-debug-as debug --debug-eval-readonly-locals
 
 Debug = debug.Debug;
 
@@ -14,11 +14,11 @@
   try {
     if (step == 0) {
       assertEquals("error", exec_state.frame(0).evaluate("e").value());
-      exec_state.frame(0).evaluate("e = 'foo'");
-      exec_state.frame(0).evaluate("x = 'modified'");
+      exec_state.frame(0).evaluate("write_0('foo')");
+      exec_state.frame(0).evaluate("write_1('modified')");
     } else {
       assertEquals("argument", exec_state.frame(0).evaluate("e").value());
-      exec_state.frame(0).evaluate("e = 'bar'");
+      exec_state.frame(0).evaluate("write_2('bar')");
     }
     step++;
   } catch (e) {
@@ -33,9 +33,15 @@
   try {
     throw "error";
   } catch(e) {
+    // In ES2015 hoisting semantics, 'x' binds to the argument
+    // and 'e' binds to the exception.
+    function write_0(v) { e = v }
+    function write_1(v) { x = v }
     debugger;
-    assertEquals("foo", e);
+    assertEquals("foo", e);  // overwritten by the debugger
   }
+  assertEquals("argument", e);  // debugger did not overwrite
+  function write_2(v) { e = v }
   debugger;
   assertEquals("bar", e);
   assertEquals("modified", x);
diff --git a/test/mjsunit/regress/regress-crbug-352586.js b/test/mjsunit/regress/regress-crbug-352586.js
index 2210480..18b5390 100644
--- a/test/mjsunit/regress/regress-crbug-352586.js
+++ b/test/mjsunit/regress/regress-crbug-352586.js
@@ -12,4 +12,4 @@
 
 a.__proto__ = Error("");
 a.__defineGetter__('message', getter);
-a.message;
+assertThrows(()=>a.message, RangeError);
diff --git a/test/mjsunit/regress/regress-crbug-364374.js b/test/mjsunit/regress/regress-crbug-364374.js
new file mode 100644
index 0000000..d8ae91f
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-364374.js
@@ -0,0 +1,56 @@
+// Copyright 2015 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.
+
+if (this.Intl) {
+  // chromium:364374
+
+  // Locations with 2 underscores are accepted and normalized.
+  // 'of' and 'es' are always lowercased.
+  df = new Intl.DateTimeFormat('en-US', {'timeZone': 'eUrope/isLe_OF_man'})
+  assertEquals('Europe/Isle_of_Man', df.resolvedOptions().timeZone);
+
+  df = new Intl.DateTimeFormat('en-US', {'timeZone': 'africa/Dar_eS_salaam'})
+  assertEquals('Africa/Dar_es_Salaam', df.resolvedOptions().timeZone);
+
+  df = new Intl.DateTimeFormat('en-US', {'timeZone': 'America/port_of_spain'})
+  assertEquals('America/Port_of_Spain', df.resolvedOptions().timeZone);
+
+  // Zone ids with more than 2 parts are accepted and normalized.
+  df = new Intl.DateTimeFormat('en-US', {'timeZone': 'America/north_Dakota/new_salem'})
+  assertEquals('America/North_Dakota/New_Salem', df.resolvedOptions().timeZone);
+
+  // 3-part zone IDs are accepted and normalized.
+  // Two Buenose Aires aliases are identical.
+  df1 = new Intl.DateTimeFormat('en-US', {'timeZone': 'America/aRgentina/buenos_aIres'})
+  df2 = new Intl.DateTimeFormat('en-US', {'timeZone': 'America/Argentina/Buenos_Aires'})
+  assertEquals(df1.resolvedOptions().timeZone, df2.resolvedOptions().timeZone);
+
+  df2 = new Intl.DateTimeFormat('en-US', {'timeZone': 'America/Buenos_Aires'})
+  assertEquals(df1.resolvedOptions().timeZone, df2.resolvedOptions().timeZone);
+
+  df1 = new Intl.DateTimeFormat('en-US', {'timeZone': 'America/Indiana/Indianapolis'})
+  df2 = new Intl.DateTimeFormat('en-US', {'timeZone': 'America/Indianapolis'})
+  assertEquals(df1.resolvedOptions().timeZone, df2.resolvedOptions().timeZone);
+
+  // ICU does not recognize East-Indiana. Add later when it does.
+  // df2 = new Intl.DateTimeFormat('en-US', {'timeZone': 'America/East-Indiana'})
+  // assertEquals(df1.resolvedOptions().timeZone, df2.resolvedOptions().timeZone);
+
+
+  // Zone IDs with hyphens. 'au' has to be in lowercase.
+  df = new Intl.DateTimeFormat('en-US', {'timeZone': 'America/port-aU-pRince'})
+  assertEquals('America/Port-au-Prince', df.resolvedOptions().timeZone);
+
+  // Accepts Ho_Chi_Minh and treats it as identical to Saigon
+  df1 = new Intl.DateTimeFormat('en-US', {'timeZone': 'Asia/Ho_Chi_Minh'})
+  df2 = new Intl.DateTimeFormat('en-US', {'timeZone': 'Asia/Saigon'})
+  assertEquals(df1.resolvedOptions().timeZone, df2.resolvedOptions().timeZone);
+
+  // Throws for invalid timezone ids.
+  assertThrows(() => Intl.DateTimeFormat(undefined, {timeZone: 'Europe/_Paris'}));
+  assertThrows(() => Intl.DateTimeFormat(undefined, {timeZone: 'America/New__York'}));
+  assertThrows(() => Intl.DateTimeFormat(undefined, {timeZone: 'America//New_York'}));
+  assertThrows(() => Intl.DateTimeFormat(undefined, {timeZone: 'America/New_York_'}));
+  assertThrows(() => Intl.DateTimeFormat(undefined, {timeZone: 'America/New_Y0rk'}));
+}
diff --git a/test/mjsunit/regress/regress-crbug-380671.js b/test/mjsunit/regress/regress-crbug-380671.js
new file mode 100644
index 0000000..891215e
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-380671.js
@@ -0,0 +1,8 @@
+// Copyright 2015 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: --mock-arraybuffer-allocator
+
+var buffer = new ArrayBuffer(0xc0000000);
+assertEquals(0xc0000000, buffer.byteLength);
diff --git a/test/mjsunit/regress/regress-crbug-385002.js b/test/mjsunit/regress/regress-crbug-385002.js
index 34713e2..e9023e1 100644
--- a/test/mjsunit/regress/regress-crbug-385002.js
+++ b/test/mjsunit/regress/regress-crbug-385002.js
@@ -4,7 +4,7 @@
 
 // Flags: --stack-size=200 --allow-natives-syntax
 
-%Break(); // Schedule an interrupt that does not go away.
+%ScheduleBreak(); // Schedule an interrupt that does not go away.
 
 function f() { f(); }
 assertThrows(f, RangeError);
diff --git a/test/mjsunit/regress/regress-crbug-387599.js b/test/mjsunit/regress/regress-crbug-387599.js
index 98750aa..753dcfa 100644
--- a/test/mjsunit/regress/regress-crbug-387599.js
+++ b/test/mjsunit/regress/regress-crbug-387599.js
@@ -8,9 +8,7 @@
 Debug.setListener(function() {});
 
 function f() {
-  for (var i = 0; i < 100; i++) {
-    %OptimizeFunctionOnNextCall(f, "osr");
-  }
+  for (var i = 0; i < 100; i++) %OptimizeOsr();
 }
 
 Debug.setBreakPoint(f, 0, 0);
diff --git a/test/mjsunit/regress/regress-crbug-390925.js b/test/mjsunit/regress/regress-crbug-390925.js
index 24873df..c4d98ad 100644
--- a/test/mjsunit/regress/regress-crbug-390925.js
+++ b/test/mjsunit/regress/regress-crbug-390925.js
@@ -5,5 +5,6 @@
 // Flags: --allow-natives-syntax
 
 var a = new Array();
+var b = new Array();
 Object.freeze(a);
-assertThrows(function() { %LiveEditCheckAndDropActivations(a, true); });
+assertThrows(function() { %LiveEditCheckAndDropActivations(a, b, true); });
diff --git a/test/mjsunit/regress/regress-crbug-401915.js b/test/mjsunit/regress/regress-crbug-401915.js
index 96dce04..67ea191 100644
--- a/test/mjsunit/regress/regress-crbug-401915.js
+++ b/test/mjsunit/regress/regress-crbug-401915.js
@@ -10,7 +10,7 @@
 
 try {
   try {
-    %DebugPushPromise(new Promise(function() {}));
+    %DebugPushPromise(new Promise(function() {}), function() {});
   } catch (e) {
   }
   throw new Error();
diff --git a/test/mjsunit/regress/regress-crbug-405517.js b/test/mjsunit/regress/regress-crbug-405517.js
index 36c3f4f..578e76a 100644
--- a/test/mjsunit/regress/regress-crbug-405517.js
+++ b/test/mjsunit/regress/regress-crbug-405517.js
@@ -6,7 +6,7 @@
 
 function f() {
  var e = [0];
- %PreventExtensions(e);
+ Object.preventExtensions(e);
  for (var i = 0; i < 4; i++) e.shift();
 }
 
diff --git a/test/mjsunit/regress/regress-crbug-405922.js b/test/mjsunit/regress/regress-crbug-405922.js
index 9f76a86..31b432d 100644
--- a/test/mjsunit/regress/regress-crbug-405922.js
+++ b/test/mjsunit/regress/regress-crbug-405922.js
@@ -5,23 +5,26 @@
 // Flags: --allow-natives-syntax --expose-debug-as debug
 
 Debug = debug.Debug
+var exception = null;
 
 function listener(event, exec_state, event_data, data) {
   try {
     if (event == Debug.DebugEvent.Break) {
-      exec_state.prepareStep(Debug.StepAction.StepIn, 3);
+      exec_state.prepareStep(Debug.StepAction.StepIn);
     }
   } catch (e) {
+    exception = e;
   }
 }
 
 Debug.setListener(listener);
 
 function f(x) {
-  if (x > 0) %_CallFunction(null, x-1, f);
+  if (x > 0) %_Call(f, null, x-1);
 }
 
 debugger;
 f(2);
 
 Debug.setListener(null);
+assertNull(exception);
diff --git a/test/mjsunit/regress/regress-crbug-409614.js b/test/mjsunit/regress/regress-crbug-409614.js
index 7b27404..1a9a777 100644
--- a/test/mjsunit/regress/regress-crbug-409614.js
+++ b/test/mjsunit/regress/regress-crbug-409614.js
@@ -10,7 +10,7 @@
 
 function f() {
   return 0;  // Break
-}
+}            // Break
 
 function listener(event, exec_state, event_data, data) {
   if (event != Debug.DebugEvent.Break) return;
@@ -18,7 +18,7 @@
     if (exec_state.frame(0).sourceLineText().indexOf("Break") <0) {
       error_count++;
     }
-    exec_state.prepareStep(Debug.StepAction.StepIn, 2);
+    exec_state.prepareStep(Debug.StepAction.StepIn);
     f();  // We should not break in this call of f().
   } catch (e) {
     print(e + e.stack);
@@ -29,7 +29,7 @@
 Debug.setListener(listener);
 
 debugger;  // Break
-f();
+f();       // Break
 
 Debug.setListener(null);  // Break
 
diff --git a/test/mjsunit/regress/regress-crbug-412319.js b/test/mjsunit/regress/regress-crbug-412319.js
index c597b0d..158fc59 100644
--- a/test/mjsunit/regress/regress-crbug-412319.js
+++ b/test/mjsunit/regress/regress-crbug-412319.js
@@ -6,7 +6,7 @@
 
 function __f_6() {
  var __v_7 = [0];
- %PreventExtensions(__v_7);
+ Object.preventExtensions(__v_7);
  for (var __v_6 = -2; __v_6 < 19; __v_6++) __v_7.shift();
  __f_7(__v_7);
 }
diff --git a/test/mjsunit/regress/regress-crbug-422858.js b/test/mjsunit/regress/regress-crbug-422858.js
new file mode 100644
index 0000000..ba75fc0
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-422858.js
@@ -0,0 +1,23 @@
+// Copyright 2015 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.
+
+var date = new Date("2016/01/02 10:00 GMT-8")
+assertEquals(0, date.getMinutes());
+assertEquals(18, date.getUTCHours());
+
+date = new Date("2016/01/02 10:00 GMT-12")
+assertEquals(0, date.getMinutes());
+assertEquals(22, date.getUTCHours());
+
+date = new Date("2016/01/02 10:00 GMT-123")
+assertEquals(23, date.getMinutes());
+assertEquals(11, date.getUTCHours());
+
+date = new Date("2016/01/02 10:00 GMT-0856")
+assertEquals(56, date.getMinutes());
+assertEquals(18, date.getUTCHours());
+
+date = new Date("2016/01/02 10:00 GMT-08000")
+assertEquals(NaN, date.getMinutes());
+assertEquals(NaN, date.getUTCHours());
diff --git a/test/mjsunit/regress/regress-crbug-424142.js b/test/mjsunit/regress/regress-crbug-424142.js
index 0a370d4..b188565 100644
--- a/test/mjsunit/regress/regress-crbug-424142.js
+++ b/test/mjsunit/regress/regress-crbug-424142.js
@@ -23,6 +23,7 @@
 function sentinel() {}
 
 Debug = debug.Debug;
+Debug.setListener(function(){});
 
 var script = Debug.findScript(sentinel);
 var line = 14;
@@ -34,3 +35,5 @@
 // the break point.
 assertTrue(line_start <= actual);
 assertTrue(actual <= line_end);
+
+Debug.setListener(null);
diff --git a/test/mjsunit/regress/regress-crbug-435825.js b/test/mjsunit/regress/regress-crbug-435825.js
index e10b812..959535b 100644
--- a/test/mjsunit/regress/regress-crbug-435825.js
+++ b/test/mjsunit/regress/regress-crbug-435825.js
@@ -7,5 +7,5 @@
 try {
   /(invalid regexp/;
 } catch (e) {
-  e.stack[0].getThis().toString();
+  assertEquals("[object global]", e.stack[0].getThis().toString());
 }
diff --git a/test/mjsunit/regress/regress-crbug-450642.js b/test/mjsunit/regress/regress-crbug-450642.js
new file mode 100644
index 0000000..7f821e0
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-450642.js
@@ -0,0 +1,5 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+assertThrows(function() { with (undefined) {} }, TypeError);
diff --git a/test/mjsunit/regress/regress-crbug-450960.js b/test/mjsunit/regress/regress-crbug-450960.js
new file mode 100644
index 0000000..28db6df
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-450960.js
@@ -0,0 +1,24 @@
+// Copyright 2015 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: --stack-size=100
+
+"a".replace(/a/g, "");
+
+var count = 0;
+function test() {
+   try {
+     test();
+   } catch(e) {
+     if (count < 50) {
+       count++;
+       "b".replace(/(b)/g, new []);
+     }
+   }
+}
+
+try {
+  test();
+} catch (e) {
+}
diff --git a/test/mjsunit/regress/regress-crbug-451013.js b/test/mjsunit/regress/regress-crbug-451013.js
new file mode 100644
index 0000000..d843d33
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-451013.js
@@ -0,0 +1,11 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+assertThrows(function testDeepArrayLiteral() {
+  testDeepArrayLiteral([], [], [[]]);
+}, RangeError);
+
+assertThrows(function testDeepObjectLiteral() {
+  testDeepObjectLiteral({}, {}, {x:[[]]});
+}, RangeError);
diff --git a/test/mjsunit/regress/regress-crbug-451016.js b/test/mjsunit/regress/regress-crbug-451016.js
new file mode 100644
index 0000000..93152c3
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-451016.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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: --turbo-filter=STRICT_EQUALS
+
+var value = NaN;
+for (i = 0; i < 256; i++) {
+  value === "A" || value === "B";
+}
diff --git a/test/mjsunit/regress/regress-crbug-451770.js b/test/mjsunit/regress/regress-crbug-451770.js
new file mode 100644
index 0000000..770c807
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-451770.js
@@ -0,0 +1,15 @@
+// Copyright 2015 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-sloppy
+
+assertThrows(function f() {
+  var t = { toString: function() { throw new Error(); } };
+  var o = { [t]: 23 };
+}, Error);
+
+assertThrows(function f() {
+  var t = { toString: function() { throw new Error(); } };
+  class C { [t]() { return 23; } };
+}, Error);
diff --git a/test/mjsunit/regress/regress-crbug-454091.js b/test/mjsunit/regress/regress-crbug-454091.js
new file mode 100644
index 0000000..2705e96
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-454091.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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.
+
+this.__proto__ = Array.prototype;
+Object.freeze(this);
+this.length = 1;
+assertThrows('this.__proto__ = {}');
+assertEquals(Array.prototype, this.__proto__);
diff --git a/test/mjsunit/regress/regress-crbug-455644.js b/test/mjsunit/regress/regress-crbug-455644.js
new file mode 100644
index 0000000..4993d85
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-455644.js
@@ -0,0 +1,12 @@
+// Copyright 2015 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 f() {
+  do { return 23; } while(false);
+  with (0) {
+    try {
+      return 42;
+    } finally {}
+  }
+})();
diff --git a/test/mjsunit/regress/regress-crbug-465298.js b/test/mjsunit/regress/regress-crbug-465298.js
new file mode 100644
index 0000000..0c5ab56
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-465298.js
@@ -0,0 +1,55 @@
+// Copyright 2015 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: --noturbo-osr --noturbo-inlining --expose-debug-as debug
+
+var stdlib = this;
+var buffer = new ArrayBuffer(64 * 1024);
+var foreign = { thrower: thrower, debugme: debugme }
+
+// Get the Debug object exposed from the debug context global object.
+Debug = debug.Debug;
+
+var listenerCalled = false;
+function listener(event, exec_state, event_data, data) {
+  try {
+    if (event == Debug.DebugEvent.Break) {
+      var frame = exec_state.frame(1);
+      assertEquals(m.foo, frame.func().value());
+      listenerCalled = true;
+    }
+  } catch (e) {
+    print("Caught: " + e + " " + e.stack);
+  };
+}
+
+function thrower() { throw "boom"; }
+function debugme() { Debug.setListener(listener); debugger; }
+
+function Module(stdlib, foreign, heap) {
+  "use asm";
+  var thrower = foreign.thrower;
+  var debugme = foreign.debugme;
+  function foo(i) {
+    i = i|0;
+    var a = 101;  // Local variables exist ...
+    var b = 102;  // ... to make the debugger ...
+    var c = 103;  // ... inspect them during break.
+    if (i > 0) {
+      debugme();
+      i = 23;
+    } else {
+      thrower();
+      i = 42;
+    }
+    return i|0;
+  }
+  return { foo: foo };
+}
+
+var m = Module(stdlib, foreign, buffer);
+
+assertThrows("m.foo(0)");
+assertEquals(23, m.foo(1));
+assertTrue(listenerCalled);
diff --git a/test/mjsunit/regress/regress-crbug-465564.js b/test/mjsunit/regress/regress-crbug-465564.js
new file mode 100644
index 0000000..ea0c8dc
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-465564.js
@@ -0,0 +1,7 @@
+// Copyright 2014 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 --cache=code
+
+assertEquals(-1, %StringCompare("a", "b"));
diff --git a/test/mjsunit/regress/regress-crbug-467047.js b/test/mjsunit/regress/regress-crbug-467047.js
new file mode 100644
index 0000000..373e984
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-467047.js
@@ -0,0 +1,17 @@
+// Copyright 2015 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: --stack-size=100
+
+function captureMatch(re) {
+  var local_variable = 0;
+  "abcd".replace(re, function() { });
+  assertEquals("abcd", RegExp.input);
+  assertEquals("a", RegExp.leftContext);
+  assertEquals("bc", RegExp.lastMatch);
+  assertEquals("d", RegExp.rightContext);
+  assertEquals("foo", captureMatch(/^bar/));
+}
+
+assertThrows(function() { captureMatch(/(bc)/) }, RangeError);
diff --git a/test/mjsunit/regress/regress-crbug-467180.js b/test/mjsunit/regress/regress-crbug-467180.js
new file mode 100644
index 0000000..a07c6a6
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-467180.js
@@ -0,0 +1,41 @@
+// Copyright 2015 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: --expose-debug-as debug
+
+function f() {
+  for (var i = 10; i < 14; i++) {  // 1
+    i;                             // 2
+  }
+}                                  // 3
+
+var state = "conditional";
+var log = [];
+var exception = null;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var label = +exec_state.frame(0).sourceLineText().substr(-1);
+    log.push(label);
+    if (label == 2) log.push(exec_state.frame(0).evaluate("i").value());
+    exec_state.prepareStep(Debug.StepAction.StepNext);
+  } catch (e) {
+    exception = e;
+    print("Caught something. " + e + " " + e.stack);
+  };
+};
+
+
+var Debug = debug.Debug;
+Debug.setListener(listener);
+
+Debug.setBreakPoint(f, 2, 0, "i == 12");
+
+f();
+
+Debug.setListener(null);  // 4
+
+assertEquals([2,12,1,1,2,13,1,1,3,4], log);
+assertNull(exception);
diff --git a/test/mjsunit/regress/regress-crbug-467531.js b/test/mjsunit/regress/regress-crbug-467531.js
new file mode 100644
index 0000000..73256c7
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-467531.js
@@ -0,0 +1,25 @@
+// Copyright 2015 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: --turbo-filter=* --always-opt
+
+assertThrows(function() {
+  "use strict";
+  try {
+    x = ref_error;
+    let x = 0;
+  } catch (e) {
+    throw e;
+  }
+}, ReferenceError);
+
+assertThrows(function() {
+  "use strict";
+  try {
+    x = ref_error;
+    let x = 0;
+  } finally {
+    // re-throw
+  }
+}, ReferenceError);
diff --git a/test/mjsunit/regress/regress-crbug-469480.js b/test/mjsunit/regress/regress-crbug-469480.js
new file mode 100644
index 0000000..8bb0c52
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-469480.js
@@ -0,0 +1,13 @@
+// Copyright 2015 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 --stress-compaction --verify-heap
+// Flags: --stack-size=100
+
+// Load the debug context to fill up code space.
+%GetDebugContext();
+%GetDebugContext();
+
+// Recurse and run regexp code.
+assertThrows(function f() { f(/./.test("a")); }, RangeError);
diff --git a/test/mjsunit/regress/regress-crbug-469768.js b/test/mjsunit/regress/regress-crbug-469768.js
new file mode 100644
index 0000000..e8a16b0
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-469768.js
@@ -0,0 +1,33 @@
+// Copyright 2015 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.
+
+// Try several different argument counts to make sure none of them
+// sneak through the system of stack checks.
+
+try {
+  Array.prototype.concat.apply([], new Array(100000));
+} catch (e) {
+  // Throwing is fine, just don't crash.
+}
+
+
+try {
+  Array.prototype.concat.apply([], new Array(150000));
+} catch (e) {
+  // Throwing is fine, just don't crash.
+}
+
+
+try {
+  Array.prototype.concat.apply([], new Array(200000));
+} catch (e) {
+  // Throwing is fine, just don't crash.
+}
+
+
+try {
+  Array.prototype.concat.apply([], new Array(248000));
+} catch (e) {
+  // Throwing is fine, just don't crash.
+}
diff --git a/test/mjsunit/regress/regress-crbug-471659.js b/test/mjsunit/regress/regress-crbug-471659.js
new file mode 100644
index 0000000..fa27baa
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-471659.js
@@ -0,0 +1,22 @@
+// Copyright 2015 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: --stack-size=100
+
+var s = "0123456789ABCDEF";
+for (var i = 0; i < 16; i++) s += s;
+
+var count = 0;
+function f() {
+  try {
+    f();
+    if (count < 10) {
+      f();
+    }
+  } catch(e) {
+      s.replace("+", "-");
+  }
+  count++;
+}
+f();
diff --git a/test/mjsunit/regress/regress-crbug-471702.js b/test/mjsunit/regress/regress-crbug-471702.js
new file mode 100644
index 0000000..dcd9f9b
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-471702.js
@@ -0,0 +1,7 @@
+// Copyright 2015 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
+
+assertThrows(function() { JSON.stringify(%DebugGetLoadedScripts()); });
diff --git a/test/mjsunit/regress/regress-crbug-474297.js b/test/mjsunit/regress/regress-crbug-474297.js
new file mode 100644
index 0000000..ce24025
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-474297.js
@@ -0,0 +1,12 @@
+// Copyright 2015 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: --gc-interval=33 --expose-gc --allow-natives-syntax
+
+var Debug = %GetDebugContext().Debug;
+Debug.setListener(function(){});
+
+%DebugGetLoadedScripts();
+
+Debug.setListener(null);
diff --git a/test/mjsunit/regress/regress-crbug-477924.js b/test/mjsunit/regress/regress-crbug-477924.js
new file mode 100644
index 0000000..feaf2d0
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-477924.js
@@ -0,0 +1,16 @@
+// Copyright 2015 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.
+
+var dummy = new ReferenceError("dummy");
+
+constructors = [ ReferenceError, TypeError];
+
+for (var i in constructors) {
+  constructors[i].prototype.__defineGetter__("stack", function() {});
+}
+
+for (var i in constructors) {
+  var obj = new constructors[i];
+  obj.toString();
+}
diff --git a/test/mjsunit/regress/regress-crbug-478011.js b/test/mjsunit/regress/regress-crbug-478011.js
new file mode 100644
index 0000000..fcc0528
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-478011.js
@@ -0,0 +1,7 @@
+// Copyright 2015 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.
+
+var e = {};
+Object.preventExtensions(e);
+assertThrows(function() { Error.captureStackTrace(e) });
diff --git a/test/mjsunit/regress/regress-crbug-478612.js b/test/mjsunit/regress/regress-crbug-478612.js
new file mode 100644
index 0000000..3419722
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-478612.js
@@ -0,0 +1,52 @@
+// Copyright 2015 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
+
+// This is used to force binary operations below to have tagged representation.
+var z = {valueOf: function() { return 3; }};
+
+
+function f() {
+  var y = -2;
+  return (1 & z) - y++;
+}
+
+assertEquals(3, f());
+assertEquals(3, f());
+%OptimizeFunctionOnNextCall(f);
+assertEquals(3, f());
+
+
+function g() {
+  var y = 2;
+  return (1 & z) | y++;
+}
+
+assertEquals(3, g());
+assertEquals(3, g());
+%OptimizeFunctionOnNextCall(g);
+assertEquals(3, g());
+
+
+function h() {
+  var y = 3;
+  return (3 & z) & y++;
+}
+
+assertEquals(3, h());
+assertEquals(3, h());
+%OptimizeFunctionOnNextCall(h);
+assertEquals(3, h());
+
+
+function i() {
+  var y = 2;
+  return (1 & z) ^ y++;
+}
+
+assertEquals(3, i());
+assertEquals(3, i());
+%OptimizeFunctionOnNextCall(i);
+assertEquals(3, i());
diff --git a/test/mjsunit/regress/regress-crbug-480807.js b/test/mjsunit/regress/regress-crbug-480807.js
new file mode 100644
index 0000000..c273f20
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-480807.js
@@ -0,0 +1,22 @@
+// Copyright 2015 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 --use-osr --turbo-osr --noalways-opt
+
+function foo() {
+  var c = 0;
+  for (var e = 0; e < 1; ++e) {
+    for (var a = 1; a > 0; a--) {
+      c += 1;
+    }
+    for (var b = 1; b > 0; b--) {
+      %OptimizeOsr();
+    }
+  }
+  return c;
+}
+try {
+  foo();
+} catch (e) {
+}
diff --git a/test/mjsunit/regress/regress-crbug-480819.js b/test/mjsunit/regress/regress-crbug-480819.js
new file mode 100644
index 0000000..086f6c8
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-480819.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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: --turbo-filter=* --always-opt --noanalyze-environment-liveness
+
+(function() {
+  "use strict";
+  class C1 {}
+})();
diff --git a/test/mjsunit/regress/regress-crbug-481896.js b/test/mjsunit/regress/regress-crbug-481896.js
new file mode 100644
index 0000000..0d5c650
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-481896.js
@@ -0,0 +1,56 @@
+// Copyright 2015 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: --expose-debug-as debug
+
+function static() {
+  print("> static");  // Break
+}
+
+var Debug = debug.Debug;
+var exception = null;
+var break_count = 0;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    print("breakpoint hit at " + exec_state.frame(0).sourceLineText());
+    assertTrue(exec_state.frame(0).sourceLineText().indexOf("// Break") > 0);
+    break_count++;
+  } catch (e) {
+    exception = e;
+  }
+}
+
+Debug.setListener(listener);
+
+function install() {
+  eval("this.dynamic = function dynamic() { \n" +
+       "  print(\"> dynamic\");  // Break\n" +
+       "}\n" +
+       "//@ sourceURL=dynamicScript");
+}
+
+install();
+
+var scripts = Debug.scripts();
+var dynamic_script;
+var static_script;
+for (var script of scripts) {
+  if (script.source_url == "dynamicScript") dynamic_script = script;
+  if (script.source_url == "staticScript") static_script = script;
+}
+
+Debug.setScriptBreakPointById(dynamic_script.id, 1);
+Debug.setScriptBreakPointById(static_script.id, 7);
+
+dynamic();
+static();
+
+Debug.setListener(null);
+
+assertNull(exception);
+assertEquals(2, break_count);
+
+//@ sourceURL=staticScript
diff --git a/test/mjsunit/regress/regress-crbug-482998.js b/test/mjsunit/regress/regress-crbug-482998.js
new file mode 100644
index 0000000..80933a7
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-482998.js
@@ -0,0 +1,23 @@
+// Copyright 2015 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.
+
+// Should not time out.  Running time 0.5s vs. 120s before the change.
+function collapse(flags) {
+  var src = "(?:";
+  for (var i = 128; i < 0x1000; i++) {
+    src += String.fromCharCode(96 + i % 26) + String.fromCharCode(i) + "|";
+  }
+  src += "aa)";
+  var collapsible = new RegExp(src, flags);
+  var subject = "zzzzzzz" + String.fromCharCode(3000);
+  for (var i = 0; i < 1000; i++) {
+    subject += "xxxxxxx";
+  }
+  for (var i = 0; i < 2000; i++) {
+    assertFalse(collapsible.test(subject));
+  }
+}
+
+collapse("i");
+collapse("");
diff --git a/test/mjsunit/regress/regress-crbug-484077.js b/test/mjsunit/regress/regress-crbug-484077.js
new file mode 100644
index 0000000..26fa7a2
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-484077.js
@@ -0,0 +1,7 @@
+// Copyright 2015 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
+
+assertEquals("", %FunctionGetInferredName((function(){}).bind({})));
diff --git a/test/mjsunit/regress/regress-crbug-485410.js b/test/mjsunit/regress/regress-crbug-485410.js
new file mode 100644
index 0000000..bb11c82
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-485410.js
@@ -0,0 +1,23 @@
+// Copyright 2015 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
+
+var doubles = new Float64Array(1);
+function ToHeapNumber(i) {
+  doubles[0] = i;
+  return doubles[0];
+}
+for (var i = 0; i < 3; i++) ToHeapNumber(i);
+%OptimizeFunctionOnNextCall(ToHeapNumber);
+ToHeapNumber(1);
+
+function Fail(a, i, v) {
+  a[i] = v;
+}
+
+for (var i = 0; i < 3; i++) Fail(new Array(1), 1, i);
+%OptimizeFunctionOnNextCall(Fail);
+// 1050 > JSObject::kMaxGap, causing stub failure and runtime call.
+Fail(new Array(1), ToHeapNumber(1050), 3);
diff --git a/test/mjsunit/regress/regress-crbug-485548-1.js b/test/mjsunit/regress/regress-crbug-485548-1.js
new file mode 100644
index 0000000..bbd0f7d
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-485548-1.js
@@ -0,0 +1,33 @@
+// Copyright 2015 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 --expose-gc
+
+var inner = new Array();
+inner.a = {x:1};
+inner[0] = 1.5;
+inner.b = {x:2};
+assertTrue(%HasFastDoubleElements(inner));
+
+function foo(o) {
+  return o.field.a.x;
+}
+
+var outer = {};
+outer.field = inner;
+foo(outer);
+foo(outer);
+foo(outer);
+%OptimizeFunctionOnNextCall(foo);
+foo(outer);
+
+// Generalize representation of field "a" of inner object.
+var v = { get x() { return 0x7fffffff; } };
+inner.a = v;
+
+gc();
+
+var boom = foo(outer);
+print(boom);
+assertEquals(0x7fffffff, boom);
diff --git a/test/mjsunit/regress/regress-crbug-485548-2.js b/test/mjsunit/regress/regress-crbug-485548-2.js
new file mode 100644
index 0000000..7e449a6
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-485548-2.js
@@ -0,0 +1,33 @@
+// Copyright 2015 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 --expose-gc
+
+var inner = new Array();
+inner.a = {x:1};
+inner[0] = 1.5;
+inner.b = {x:2};
+assertTrue(%HasFastDoubleElements(inner));
+
+function foo(o) {
+  return o.field.b.x;
+}
+
+var outer = {};
+outer.field = inner;
+foo(outer);
+foo(outer);
+foo(outer);
+%OptimizeFunctionOnNextCall(foo);
+foo(outer);
+
+// Generalize representation of field "b" of inner object.
+var v = { get x() { return 0x7fffffff; } };
+inner.b = v;
+
+gc();
+
+var boom = foo(outer);
+print(boom);
+assertEquals(0x7fffffff, boom);
diff --git a/test/mjsunit/regress/regress-crbug-487105.js b/test/mjsunit/regress/regress-crbug-487105.js
new file mode 100644
index 0000000..160f9b0
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-487105.js
@@ -0,0 +1,9 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+"use strict";
+function assertThrows() {
+  eval();
+};
+eval("delete this;")
diff --git a/test/mjsunit/regress/regress-crbug-487289.js b/test/mjsunit/regress/regress-crbug-487289.js
new file mode 100644
index 0000000..dbfb404
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-487289.js
@@ -0,0 +1,20 @@
+// Copyright 2015 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: --expose-debug-as debug
+
+var Debug = debug.Debug;
+var receiver = null;
+
+Debug.setListener(function(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  receiver = exec_state.frame(0).evaluate('this').value();
+});
+
+function f() { debugger; }
+
+var expected = {};
+f.call(expected);
+
+assertEquals(expected, receiver);
diff --git a/test/mjsunit/regress/regress-crbug-487322.js b/test/mjsunit/regress/regress-crbug-487322.js
new file mode 100644
index 0000000..6338cf4
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-487322.js
@@ -0,0 +1,25 @@
+// Copyright 2015 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.
+
+if (this.Intl) {
+  // Normalizes Kat{h,}mandu (chromium:487322)
+  // According to the IANA timezone db, Kathmandu is the current canonical
+  // name, but ICU got it backward. To make this test robust against a future
+  // ICU change ( http://bugs.icu-project.org/trac/ticket/12044 ),
+  // just check that Kat(h)mandu is resolved identically.
+  df1 = new Intl.DateTimeFormat('en-US', {'timeZone': 'Asia/Katmandu'})
+  df2 = new Intl.DateTimeFormat('en-US', {'timeZone': 'Asia/Kathmandu'})
+  assertEquals(df1.resolvedOptions().timeZone, df2.resolvedOptions().timeZone);
+
+  // Normalizes Ulan_Bator to Ulaanbaatar. Unlike Kat(h)mandu, ICU got this
+  // right so that we make sure that Ulan_Bator is resolved to Ulaanbaatar.
+  df = new Intl.DateTimeFormat('en-US', {'timeZone': 'Asia/Ulaanbaatar'})
+  assertEquals('Asia/Ulaanbaatar', df.resolvedOptions().timeZone);
+
+  df = new Intl.DateTimeFormat('en-US', {'timeZone': 'Asia/Ulan_Bator'})
+  assertEquals('Asia/Ulaanbaatar', df.resolvedOptions().timeZone);
+
+  // Throws for unsupported time zones.
+  assertThrows(() => Intl.DateTimeFormat(undefined, {timeZone: 'Aurope/Paris'}));
+}
diff --git a/test/mjsunit/regress/regress-crbug-487608.js b/test/mjsunit/regress/regress-crbug-487608.js
new file mode 100644
index 0000000..c1eafce
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-487608.js
@@ -0,0 +1,22 @@
+// Copyright 2015 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 inlined(a, i) {
+  return a[i + 1];
+}
+
+function foo(index) {
+  var a = [0, 1, 2, 3];
+  var result = 0;
+  result += a[index];
+  result += inlined(a, index);
+  return result;
+}
+
+foo(0);
+foo(0);
+%OptimizeFunctionOnNextCall(foo);
+foo(0);
diff --git a/test/mjsunit/regress/regress-crbug-489293.js b/test/mjsunit/regress/regress-crbug-489293.js
new file mode 100644
index 0000000..bcfc702
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-489293.js
@@ -0,0 +1,16 @@
+// Copyright 2015 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 --turbo-filter=f
+// Flags: --noanalyze-environment-liveness
+
+function f() {
+  var x = 0;
+  for (var y = 0; y < 0; ++y) {
+    x = (x + y) | 0;
+  }
+  return unbound;
+}
+%OptimizeFunctionOnNextCall(f);
+assertThrows(f, ReferenceError);
diff --git a/test/mjsunit/regress/regress-crbug-489597.js b/test/mjsunit/regress/regress-crbug-489597.js
new file mode 100644
index 0000000..b10af92
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-489597.js
@@ -0,0 +1,12 @@
+// Copyright 2015 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.
+
+try {
+  load("test/mjsunit/regress/regress-crbug-489597.js-script");
+} catch (e) {
+}
+
+var o = this;
+Error.captureStackTrace(o);
+o.stack;
diff --git a/test/mjsunit/regress/regress-crbug-489597.js-script b/test/mjsunit/regress/regress-crbug-489597.js-script
new file mode 100644
index 0000000..cb4dd84
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-489597.js-script
@@ -0,0 +1,5 @@
+// Copyright 2015 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.
+
+throw new Error("boom");
diff --git a/test/mjsunit/regress/regress-crbug-490021.js b/test/mjsunit/regress/regress-crbug-490021.js
new file mode 100644
index 0000000..745c0a8
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-490021.js
@@ -0,0 +1,15 @@
+// Copyright 2015 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
+
+var global = new Object(3);
+function f() {
+  global[0] = global[0] >>> 15.5;
+}
+
+f();
+f();
+%OptimizeFunctionOnNextCall(f);
+f();
diff --git a/test/mjsunit/regress/regress-crbug-490680.js b/test/mjsunit/regress/regress-crbug-490680.js
new file mode 100644
index 0000000..735f3b7
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-490680.js
@@ -0,0 +1,18 @@
+// Copyright 2015 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.
+
+var sentinel = null;
+
+try {
+  throw { toString: function() { sentinel = "observed"; } };
+} catch (e) {
+}
+
+L: try {
+  throw { toString: function() { sentinel = "observed"; } };
+} finally {
+  break L;
+}
+
+assertNull(sentinel);
diff --git a/test/mjsunit/regress/regress-crbug-491062.js b/test/mjsunit/regress/regress-crbug-491062.js
new file mode 100644
index 0000000..d2cd757
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-491062.js
@@ -0,0 +1,22 @@
+// Copyright 2015 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 --stack-size=100
+
+function g() {}
+
+var count = 0;
+function f() {
+  try {
+    f();
+  } catch(e) {
+    print(e.stack);
+  }
+  if (count < 100) {
+    count++;
+    %DebugGetLoadedScripts();
+  }
+}
+f();
+g();
diff --git a/test/mjsunit/regress/regress-crbug-491943.js b/test/mjsunit/regress/regress-crbug-491943.js
new file mode 100644
index 0000000..c87d130
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-491943.js
@@ -0,0 +1,25 @@
+// Copyright 2015 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: --expose-debug-as debug
+
+var Debug = debug.Debug;
+var receiver = null;
+
+Debug.setListener(function(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  receiver = exec_state.frame(0).evaluate('this').value();
+});
+
+
+function f() {
+  var context_local = 1;
+  (function() { return context_local; })();
+  debugger;
+}
+
+var expected = {};
+f.call(expected);
+
+assertEquals(expected, receiver);
diff --git a/test/mjsunit/regress/regress-crbug-492526.js b/test/mjsunit/regress/regress-crbug-492526.js
new file mode 100644
index 0000000..e8ea298
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-492526.js
@@ -0,0 +1,7 @@
+// Copyright 2015 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
+
+assertThrows(function() { %FormatMessageString(-1, "", "", ""); });
diff --git a/test/mjsunit/regress/regress-crbug-493284.js b/test/mjsunit/regress/regress-crbug-493284.js
new file mode 100644
index 0000000..64f9463
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-493284.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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: --invoke-weak-callbacks --omit-quit --no-test
+
+if (this.Intl) {
+  var coll = new Intl.Collator();
+  assertEquals(-1, coll.compare('a', 'c'));
+}
diff --git a/test/mjsunit/regress/regress-crbug-493290.js b/test/mjsunit/regress/regress-crbug-493290.js
new file mode 100644
index 0000000..6ff9fe1
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-493290.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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 f() {
+  throw "boom";
+  try {} catch (e) {}
+}
+assertThrows(f);
diff --git a/test/mjsunit/regress/regress-crbug-493779.js b/test/mjsunit/regress/regress-crbug-493779.js
new file mode 100644
index 0000000..1071ed2
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-493779.js
@@ -0,0 +1,11 @@
+// Copyright 2015 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: --enable-slow-asserts
+
+var s = "\u1234-------";
+for (var i = 0; i < 17; i++) {
+  s += s;
+}
+s.replace(/[\u1234]/g, "");
diff --git a/test/mjsunit/regress/regress-crbug-498022.js b/test/mjsunit/regress/regress-crbug-498022.js
new file mode 100644
index 0000000..cb8e0a4
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-498022.js
@@ -0,0 +1,15 @@
+// Copyright 2015 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: --debug-code --nouse-gvn
+
+"use strict";
+class Base {
+}
+class Derived extends Base {
+  constructor() {
+    eval();
+  }
+}
+assertThrows("new Derived()", ReferenceError);
diff --git a/test/mjsunit/regress/regress-crbug-498142.js b/test/mjsunit/regress/regress-crbug-498142.js
new file mode 100644
index 0000000..fcec5d1
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-498142.js
@@ -0,0 +1,8 @@
+// Copyright 2015 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 --harmony-sharedarraybuffer
+
+var sab = new SharedArrayBuffer(16);
+assertThrows(function() { %ArrayBufferNeuter(sab); });
diff --git a/test/mjsunit/regress/regress-crbug-498811.js b/test/mjsunit/regress/regress-crbug-498811.js
new file mode 100644
index 0000000..53f57b8
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-498811.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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.
+
+// NO HARNESS
+
+"use strict";
+let l = 0;
+eval("eval('this')");
diff --git a/test/mjsunit/regress/regress-crbug-500435.js b/test/mjsunit/regress/regress-crbug-500435.js
new file mode 100644
index 0000000..acc17ac
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-500435.js
@@ -0,0 +1,22 @@
+// Copyright 2015 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 bar(a) {
+  delete a[1];
+}
+
+function foo(a) {
+  var d;
+  for (d in a) {
+    assertFalse(d === undefined);
+    bar(a);
+  }
+}
+
+foo([1,2]);
+foo([2,3]);
+%OptimizeFunctionOnNextCall(foo);
+foo([1,2]);
diff --git a/test/mjsunit/regress/regress-crbug-500497.js b/test/mjsunit/regress/regress-crbug-500497.js
new file mode 100644
index 0000000..9117440
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-500497.js
@@ -0,0 +1,33 @@
+// Copyright 2015 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.
+
+// New space must be at max capacity to trigger pretenuring decision.
+// Flags: --allow-natives-syntax --verify-heap --max-semi-space-size=1
+
+var global = [];  // Used to keep some objects alive.
+
+function Ctor() {
+  var result = {a: {}, b: {}, c: {}, d: {}, e: {}, f: {}, g: {}};
+  return result;
+}
+
+for (var i = 0; i < 120; i++) {
+  // Make the "a" property long-lived, while everything else is short-lived.
+  global.push(Ctor().a);
+  (function FillNewSpace() { new Array(10000); })();
+}
+
+// The bad situation is only triggered if Ctor wasn't optimized too early.
+assertUnoptimized(Ctor);
+// Optimized code for Ctor will pretenure the "a" property, so it will have
+// three allocations:
+// #1 Allocate the "result" object in new-space.
+// #2 Allocate the object stored in the "a" property in old-space.
+// #3 Allocate the objects for the "b" through "g" properties in new-space.
+%OptimizeFunctionOnNextCall(Ctor);
+for (var i = 0; i < 10000; i++) {
+  // At least one of these calls will run out of new space. The bug is
+  // triggered when it is allocation #3 that triggers GC.
+  Ctor();
+}
diff --git a/test/mjsunit/regress/regress-crbug-500824.js b/test/mjsunit/regress/regress-crbug-500824.js
new file mode 100644
index 0000000..08d0d10
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-500824.js
@@ -0,0 +1,23 @@
+// Copyright 2015 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 get_thrower() {
+  "use strict";
+  return Object.getOwnPropertyDescriptor(arguments, "callee").get;
+}
+
+var f = (function(v) {
+  "use asm";
+  function fun() {
+    switch (v) {}
+  }
+  return {
+    fun: fun
+  };
+})(get_thrower()).fun;
+
+%OptimizeFunctionOnNextCall(f);
+f();
diff --git a/test/mjsunit/regress/regress-crbug-501711.js b/test/mjsunit/regress/regress-crbug-501711.js
new file mode 100644
index 0000000..b253e9c
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-501711.js
@@ -0,0 +1,18 @@
+// Copyright 2015 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: --stack-size=100
+
+function f() {
+  try {
+    f();
+  } catch(e) {
+    try {
+      Realm.create();
+    } catch (e) {
+      quit();
+    }
+  }
+}
+f();
diff --git a/test/mjsunit/regress/regress-crbug-501808.js b/test/mjsunit/regress/regress-crbug-501808.js
new file mode 100644
index 0000000..f9b9784
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-501808.js
@@ -0,0 +1,6 @@
+// Copyright 2015 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.
+
+var r = Realm.create();
+assertEquals(0, "a".localeCompare("a"));
diff --git a/test/mjsunit/regress/regress-crbug-501809.js b/test/mjsunit/regress/regress-crbug-501809.js
new file mode 100644
index 0000000..855b36a
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-501809.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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-sharedarraybuffer
+var sab = new SharedArrayBuffer(8);
+var ta = new Int32Array(sab);
+ta.__defineSetter__('length', function() {;});
+Atomics.compareExchange(ta, 4294967295, 0, 0);
diff --git a/test/mjsunit/regress/regress-crbug-502930.js b/test/mjsunit/regress/regress-crbug-502930.js
new file mode 100644
index 0000000..ef21a1a
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-502930.js
@@ -0,0 +1,27 @@
+// Copyright 2015 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.
+
+
+var accessor_to_data_case = (function() {
+  var v = {};
+  Object.defineProperty(v, "foo", { get: function() { return 42; }, configurable: true});
+
+  var obj = {};
+  obj["boom"] = v;
+
+  Object.defineProperty(v, "foo", { value: 0, writable: true, configurable: true });
+  return obj;
+})();
+
+
+var data_to_accessor_case = (function() {
+  var v = {};
+  Object.defineProperty(v, "bar", { value: 0, writable: true, configurable: true });
+
+  var obj = {};
+  obj["bam"] = v;
+
+  Object.defineProperty(v, "bar", { get: function() { return 42; }, configurable: true});
+  return obj;
+})();
diff --git a/test/mjsunit/regress/regress-crbug-503578.js b/test/mjsunit/regress/regress-crbug-503578.js
new file mode 100644
index 0000000..1274d91
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-503578.js
@@ -0,0 +1,14 @@
+// Copyright 2015 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.
+
+if (this.Worker) {
+  function __f_0(byteLength) {
+    var __v_1 = new ArrayBuffer(byteLength);
+    var __v_5 = new Uint32Array(__v_1);
+    return __v_5;
+  }
+  var __v_6 = new Worker('onmessage = function() {}');
+  var __v_3 = __f_0(16);
+  __v_6.postMessage(__v_3);
+}
diff --git a/test/mjsunit/regress/regress-crbug-503698.js b/test/mjsunit/regress/regress-crbug-503698.js
new file mode 100644
index 0000000..415d1bc
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-503698.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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: --invoke-weak-callbacks
+
+if (this.Worker) {
+  var __v_6 = new Worker('');
+}
diff --git a/test/mjsunit/regress/regress-crbug-503968.js b/test/mjsunit/regress/regress-crbug-503968.js
new file mode 100644
index 0000000..78d1c7b
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-503968.js
@@ -0,0 +1,13 @@
+// Copyright 2015 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.
+
+if (this.Worker) {
+  function __f_0() { this.s = new Object(); }
+  function __f_1() {
+    this.l = [new __f_0, new __f_0];
+  }
+  __v_6 = new __f_1;
+  var __v_9 = new Worker('');
+  __v_9.postMessage(__v_6);
+}
diff --git a/test/mjsunit/regress/regress-crbug-503991.js b/test/mjsunit/regress/regress-crbug-503991.js
new file mode 100644
index 0000000..6a3b0de
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-503991.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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.
+
+if (this.Worker) {
+  __v_3 = "";
+  var __v_6 = new Worker('');
+  __v_6.postMessage(__v_3);
+}
diff --git a/test/mjsunit/regress/regress-crbug-504136.js b/test/mjsunit/regress/regress-crbug-504136.js
new file mode 100644
index 0000000..4ed6843
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-504136.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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.
+
+if (this.Worker) {
+  var __v_10 = new Worker('');
+  __v_10.terminate();
+ __v_10.getMessage();
+}
diff --git a/test/mjsunit/regress/regress-crbug-504727.js b/test/mjsunit/regress/regress-crbug-504727.js
new file mode 100644
index 0000000..16d8ff1
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-504727.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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: --no-test
+
+if (this.Worker) {
+  var __v_2 = new Worker('');
+}
diff --git a/test/mjsunit/regress/regress-crbug-504729.js b/test/mjsunit/regress/regress-crbug-504729.js
new file mode 100644
index 0000000..435cafe
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-504729.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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.
+
+if (this.Worker) {
+  Function.prototype.toString = "foo";
+  function __f_7() {}
+  assertThrows(function() { var __v_5 = new Worker(__f_7.toString()); });
+}
diff --git a/test/mjsunit/regress/regress-crbug-504787.js b/test/mjsunit/regress/regress-crbug-504787.js
new file mode 100644
index 0000000..66274bc
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-504787.js
@@ -0,0 +1,15 @@
+// Copyright 2015 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: --noturbo-osr
+
+function f() {
+  "use asm";
+  function g() {
+    function f() {};
+  }
+  return g;
+}
+
+f()();
diff --git a/test/mjsunit/regress/regress-crbug-505007-1.js b/test/mjsunit/regress/regress-crbug-505007-1.js
new file mode 100644
index 0000000..910f4a6
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-505007-1.js
@@ -0,0 +1,18 @@
+// Copyright 2015 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: --stack-size=100 --allow-natives-syntax
+
+var count = 0;
+function f() {
+  try {
+    f();
+  } catch(e) {
+    if (count < 100) {
+      count++;
+      %GetDebugContext();
+    }
+  }
+}
+f();
diff --git a/test/mjsunit/regress/regress-crbug-505007-2.js b/test/mjsunit/regress/regress-crbug-505007-2.js
new file mode 100644
index 0000000..96014c8
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-505007-2.js
@@ -0,0 +1,20 @@
+// Copyright 2015 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: --stack-size=100 --allow-natives-syntax
+
+function g() {}
+
+var count = 0;
+function f() {
+  try {
+    f();
+  } catch(e) {
+    if (count < 100) {
+      count++;
+      %ExecuteInDebugContext(g);
+    }
+  }
+}
+f();
diff --git a/test/mjsunit/regress/regress-crbug-505354.js b/test/mjsunit/regress/regress-crbug-505354.js
new file mode 100644
index 0000000..61c40c4
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-505354.js
@@ -0,0 +1,14 @@
+// Copyright 2015 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 --turbo-filter=f
+
+function f() {
+  "use strict";
+  try {
+    for (let i = 0; i < 10; i++) {}
+  } catch(e) {}
+}
+%OptimizeFunctionOnNextCall(f);
+f();
diff --git a/test/mjsunit/regress/regress-crbug-505370.js b/test/mjsunit/regress/regress-crbug-505370.js
new file mode 100644
index 0000000..f67d82b
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-505370.js
@@ -0,0 +1,22 @@
+// Copyright 2015 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.
+
+var o = {
+  get 0() { reference_error;  },
+  get length() { return 1; }
+};
+
+var method_name;
+
+try {
+  o[0];
+} catch (e) {
+  thrown = true;
+  Error.prepareStackTrace = function(exception, frames) { return frames; };
+  var frames = e.stack;
+  Error.prepareStackTrace = undefined;
+  method_name = frames[0].getMethodName();
+}
+
+assertEquals("0", method_name);
diff --git a/test/mjsunit/regress/regress-crbug-505778.js b/test/mjsunit/regress/regress-crbug-505778.js
new file mode 100644
index 0000000..74d96ab
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-505778.js
@@ -0,0 +1,8 @@
+// Copyright 2015 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.
+
+if (this.Worker) {
+  var __v_7 = new Worker('onmessage = function() {}');
+  __v_7.postMessage("");
+}
diff --git a/test/mjsunit/regress/regress-crbug-505907.js b/test/mjsunit/regress/regress-crbug-505907.js
new file mode 100644
index 0000000..c8d4bac
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-505907.js
@@ -0,0 +1,14 @@
+// Copyright 2015 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-proxies
+
+try {
+  var p = new Proxy({}, {
+      getPropertyDescriptor: function() { return [] }
+    });
+  var o = Object.create(p);
+  with (o) { unresolved_name() }
+} catch(e) {
+}
diff --git a/test/mjsunit/regress/regress-crbug-506443.js b/test/mjsunit/regress/regress-crbug-506443.js
new file mode 100644
index 0000000..13cbac6
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-506443.js
@@ -0,0 +1,89 @@
+// Copyright 2015 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
+
+assertSame = function assertSame() {
+  if (found === expected) {
+    if (1 / expected) return;
+  } else if ((expected !== expected) && (found !== found)) {
+    return;
+  };
+};
+assertEquals = function assertEquals() {
+  if (expected) {;
+  }
+};
+assertArrayEquals = function assertArrayEquals() {
+  var start = "";
+  if (name_opt) {
+    start = name_opt + " - ";
+  };
+  if (expected.length == found.length) {
+    for (var i = 0; i < expected.length; ++i) {;
+    }
+  }
+};
+assertPropertiesEqual = function assertPropertiesEqual() {
+  if (found) {;
+  }
+};
+assertToStringEquals = function assertToStringEquals() {
+  if (found) {;
+  }
+};
+assertTrue = function assertTrue() {;
+};
+assertFalse = function assertFalse() {;
+};
+assertUnreachable = function assertUnreachable() {
+  var message = "Fail" + "ure: unreachable";
+  if (name_opt) {
+    message += " - " + name_opt;
+  }
+};
+OptimizationStatus = function() {}
+assertUnoptimized = function assertUnoptimized() {;
+}
+assertOptimized = function assertOptimized() {;
+}
+triggerAssertFalse = function() {}
+var __v_2 = {};
+var __v_3 = {};
+var __v_4 = {};
+var __v_5 = {};
+var __v_6 = 1073741823;
+var __v_7 = {};
+var __v_8 = {};
+var __v_9 = {};
+var __v_10 = {};
+var __v_11 = 2147483648;
+var __v_12 = 1073741823;
+var __v_13 = {};
+var __v_14 = {};
+var __v_15 = -2147483648;
+var __v_16 = {};
+var __v_17 = {};
+var __v_19 = {};
+var __v_20 = {};
+var __v_21 = {};
+var __v_22 = {};
+var __v_23 = {};
+var __v_24 = {};
+try {
+  (function() {
+    var Debug = %GetDebugContext().Debug;
+
+    function __f_0() {}
+    for (var __v_0 = 0; __v_0 < 3; __v_0++) {
+      var __v_2 = function() {
+        a = 1;
+      }
+      Debug.setListener(__f_0);
+      if (__v_0 < 2) Debug.setBreakPoint(__v_2);
+    }
+  })();
+} catch (e) {
+  print();
+}
diff --git a/test/mjsunit/regress/regress-crbug-506549.js b/test/mjsunit/regress/regress-crbug-506549.js
new file mode 100644
index 0000000..40e162c
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-506549.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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.
+
+if (this.Worker) {
+  var __v_5 = {};
+  __v_5.__defineGetter__('byteLength', function() {foo();});
+  var __v_8 = new Worker('onmessage = function() {};');
+  assertThrows(function() { __v_8.postMessage(__v_5); });
+}
diff --git a/test/mjsunit/regress/regress-crbug-506956.js b/test/mjsunit/regress/regress-crbug-506956.js
new file mode 100644
index 0000000..73eb2f2
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-506956.js
@@ -0,0 +1,14 @@
+// Copyright 2015 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-proxies
+
+try {
+  var p = new Proxy({}, {
+      getPropertyDescriptor: function() { throw "boom"; }
+  });
+  var o = Object.create(p);
+  with (o) { delete unresolved_name; }
+} catch(e) {
+}
diff --git a/test/mjsunit/regress/regress-crbug-507070.js b/test/mjsunit/regress/regress-crbug-507070.js
new file mode 100644
index 0000000..0cb14b2
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-507070.js
@@ -0,0 +1,20 @@
+// Copyright 2015 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 --cache=code --no-debug-code
+
+try { } catch(e) { }
+try { try { } catch (e) { } } catch(e) { }
+try {
+  var Debug = %GetDebugContext().Debug;
+  Debug.setListener(function(){});
+} catch(e) { }
+(function() {
+  Debug.setBreakPoint(function(){}, 0, 0);
+})();
+
+var a = 1;
+a += a;
+Debug.setListener(null);
+assertEquals(2, a);
diff --git a/test/mjsunit/regress/regress-crbug-510426.js b/test/mjsunit/regress/regress-crbug-510426.js
new file mode 100644
index 0000000..c82dbac
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-510426.js
@@ -0,0 +1,7 @@
+// Copyright 2015 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.
+
+var s = new String('a');
+s[10000000] = 'bente';
+assertEquals(['0', '10000000'], Object.keys(s));
diff --git a/test/mjsunit/regress/regress-crbug-510738.js b/test/mjsunit/regress/regress-crbug-510738.js
new file mode 100644
index 0000000..0e154a9
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-510738.js
@@ -0,0 +1,17 @@
+// Copyright 2015 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 check(f, result) {
+  %OptimizeFunctionOnNextCall(f);
+  assertEquals(result, f());
+}
+
+var x = 17;
+function generic_load() { return x; }
+check(generic_load, 17);
+
+function generic_store() { x = 13; return x; }
+check(generic_store, 13);
diff --git a/test/mjsunit/regress/regress-crbug-511880.js b/test/mjsunit/regress/regress-crbug-511880.js
new file mode 100644
index 0000000..f9b05ff
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-511880.js
@@ -0,0 +1,13 @@
+// Copyright 2015 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.
+
+if (this.Worker) {
+  var __v_8 =
+    `var __v_9 = new Worker('postMessage(42)');
+     onmessage = function(parentMsg) {
+       __v_9.postMessage(parentMsg);
+     };`;
+  var __v_9 = new Worker(__v_8);
+  __v_9.postMessage(9);
+}
diff --git a/test/mjsunit/regress/regress-crbug-513472.js b/test/mjsunit/regress/regress-crbug-513472.js
new file mode 100644
index 0000000..456fe0a
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-513472.js
@@ -0,0 +1,7 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+"use strict";
+this.__proto__ = Error();
+assertThrows(function() { NaN = 1; });
diff --git a/test/mjsunit/regress/regress-crbug-513507.js b/test/mjsunit/regress/regress-crbug-513507.js
new file mode 100644
index 0000000..dbf35c9
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-513507.js
@@ -0,0 +1,24 @@
+// Copyright 2015 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: --noflush-optimized-code-cache --allow-natives-syntax
+
+// The following triggers a GC in SharedFunctionInfo::AddToOptimizedCodeMap.
+// Flags: --gc-interval=1234 --gc-global
+
+function makeFun() {
+  function fun(osr_fuse) {
+    for (var i = 0; i < 3; ++i) {
+      if (i == osr_fuse) %OptimizeOsr();
+    }
+    for (var i = 3; i < 6; ++i) {
+      if (i == osr_fuse) %OptimizeOsr();
+    }
+  }
+  return fun;
+}
+
+makeFun()(7);  // Warm up.
+makeFun()(4);  // Optimize once.
+makeFun()(1);  // Optimize again.
diff --git a/test/mjsunit/regress/regress-crbug-513602.js b/test/mjsunit/regress/regress-crbug-513602.js
new file mode 100644
index 0000000..ae0441c
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-513602.js
@@ -0,0 +1,26 @@
+// Copyright 2015 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 Parent() {}
+
+function Child() {}
+Child.prototype = new Parent();
+var child = new Child();
+
+function crash() {
+  return child.__proto__;
+}
+
+crash();
+crash();
+
+// Trigger a fast->slow->fast dance of Parent.prototype's map...
+Parent.prototype.__defineSetter__("foo", function() { print("A"); });
+Parent.prototype.__defineSetter__("foo", function() { print("B"); });
+// ...and collect more type feedback.
+crash();
+
+// Now modify the prototype chain. The right cell fails to get invalidated.
+delete Object.prototype.__proto__;
+crash();
diff --git a/test/mjsunit/regress/regress-crbug-514081.js b/test/mjsunit/regress/regress-crbug-514081.js
new file mode 100644
index 0000000..1acd831
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-514081.js
@@ -0,0 +1,15 @@
+// Copyright 2015 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.
+
+if (this.Worker) {
+  var __v_7 = new Worker('onmessage = function() {};');
+  try {
+    var ab = new ArrayBuffer(2147483648);
+    // If creating the ArrayBuffer succeeded, then postMessage should fail.
+    assertThrows(function() { __v_7.postMessage(ab); });
+  } catch (e) {
+    // Creating the ArrayBuffer failed.
+    assertInstanceof(e, RangeError);
+  }
+}
diff --git a/test/mjsunit/regress/regress-crbug-516592.js b/test/mjsunit/regress/regress-crbug-516592.js
new file mode 100644
index 0000000..1887824
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-516592.js
@@ -0,0 +1,18 @@
+// Copyright 2015 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.
+
+var i = Math.pow(2, 31);
+var a = [];
+a[i] = 31;
+var b = [];
+b[i - 2] = 33;
+try {
+  // This is supposed to throw a RangeError.
+  var c = a.concat(b);
+  // If it didn't, ObservableSetLength will detect the problem.
+  Object.observe(c, function() {});
+  c.length = 1;
+} catch(e) {
+  assertTrue(e instanceof RangeError);
+}
diff --git a/test/mjsunit/regress/regress-crbug-516775.js b/test/mjsunit/regress/regress-crbug-516775.js
new file mode 100644
index 0000000..25d4d01
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-516775.js
@@ -0,0 +1,53 @@
+// Copyright 2015 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 --harmony-concat-spreadable
+
+function arguments_with_length_getter(f) {
+  arguments.__defineGetter__('length', f);
+  return arguments;
+}
+
+var count = 0;
+function increment_count_return() { count++; return "boom"; }
+function increment_count_throw() { count++; throw "boom"; }
+
+// Do not read the length of an arguments object on the prototype chain of
+// an array.
+var a1 = [];
+%NormalizeElements(a1);
+a1.__proto__ = arguments_with_length_getter(increment_count_return);
+[].concat(a1);
+assertEquals(0, count);
+
+var a2 = [];
+%NormalizeElements(a2);
+a2.__proto__ = arguments_with_length_getter(increment_count_throw);
+[].concat(a2);
+assertEquals(0, count);
+
+// Do read the length of an arguments object if spreadable.
+var a3 = arguments_with_length_getter(increment_count_return);
+a3[Symbol.isConcatSpreadable] = true;
+[].concat(a3);
+assertEquals(1, count);
+
+var a4 = arguments_with_length_getter(increment_count_throw);
+a4[Symbol.isConcatSpreadable] = true;
+assertThrows(function() { [].concat(a4); });
+assertEquals(2, count);
+
+// Do read the length of an arguments object on the prototype chain of
+// an object.
+var a5 = {};
+a5.__proto__ = arguments_with_length_getter(increment_count_return);
+a5[Symbol.isConcatSpreadable] = true;
+[].concat(a5);
+assertEquals(3, count);
+
+var a6 = {};
+a6.__proto__ = arguments_with_length_getter(increment_count_throw);
+a6[Symbol.isConcatSpreadable] = true;
+assertThrows(function() { [].concat(a6); });
+assertEquals(4, count);
diff --git a/test/mjsunit/regress/regress-crbug-517592.js b/test/mjsunit/regress/regress-crbug-517592.js
new file mode 100644
index 0000000..760d892
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-517592.js
@@ -0,0 +1,36 @@
+// Copyright 2015 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: --expose-debug-as debug --min-preparse-length=10
+
+var source =
+  "var foo = function foo() {\n" +
+  "  return 1;\n" +
+  "}\n" +
+  "//@ sourceURL=test";
+
+Debug = debug.Debug;
+Debug.setListener(listener);
+var exception = null;
+var break_count = 0;
+
+function listener(event, exec_state, event_data, data) {
+  if (event == Debug.DebugEvent.Break) break_count++;
+  if (event != Debug.DebugEvent.AfterCompile) return;
+  try {
+    var name = event_data.script().name();
+    var id = event_data.script().id();
+    assertEquals("test", name);
+    Debug.setScriptBreakPointById(id, 2);
+  } catch (e) {
+    exception = e;
+  }
+}
+
+eval(source);
+
+assertEquals(0, break_count);
+foo();
+assertEquals(1, break_count);
+assertNull(exception);
diff --git a/test/mjsunit/regress/regress-crbug-518747.js b/test/mjsunit/regress/regress-crbug-518747.js
new file mode 100644
index 0000000..f1787c4
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-518747.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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.
+
+if (this.Worker) {
+  Worker.prototype = 12;
+  var __v_6 = new Worker('');
+  __v_6.postMessage([]);
+}
diff --git a/test/mjsunit/regress/regress-crbug-522380.js b/test/mjsunit/regress/regress-crbug-522380.js
new file mode 100644
index 0000000..eba07f7
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-522380.js
@@ -0,0 +1,7 @@
+// Copyright 2015 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.
+
+var global = this;
+global.__defineSetter__('x', function(v) { x = v; });
+assertThrows("global.x = 0", RangeError);
diff --git a/test/mjsunit/regress/regress-crbug-522496.js b/test/mjsunit/regress/regress-crbug-522496.js
new file mode 100644
index 0000000..e47e0a0
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-522496.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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.
+
+if (this.Worker) {
+  var worker = new Worker("onmessage = function(){}");
+  var buf = new ArrayBuffer();
+  worker.postMessage(buf, [buf]);
+}
diff --git a/test/mjsunit/regress/regress-crbug-522895.js b/test/mjsunit/regress/regress-crbug-522895.js
new file mode 100644
index 0000000..f28f3a1
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-522895.js
@@ -0,0 +1,22 @@
+// Copyright 2015 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 --use-osr
+
+var body =
+  "function bar1(  )  {" +
+  "  var i = 35;       " +
+  "  while (i-- > 31) {" +
+  "    %OptimizeOsr(); " +
+  "    j = 9;          " +
+  "    while (j-- > 7);" +
+  "  }                 " +
+  "  return i;         " +
+  "}";
+
+function gen() {
+  return eval("(" + body + ")");
+}
+
+gen()();
diff --git a/test/mjsunit/regress/regress-crbug-523213.js b/test/mjsunit/regress/regress-crbug-523213.js
new file mode 100644
index 0000000..15b16bb
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-523213.js
@@ -0,0 +1,21 @@
+// Copyright 2015 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
+
+var v1 = [];
+var v2 = [];
+v1.__proto__ = v2;
+
+function f(){
+  var a = [];
+  for(var i=0; i<2; i++){
+    a.push([]);
+    a = v2;
+  }
+}
+
+f();
+%OptimizeFunctionOnNextCall(f);
+f();
diff --git a/test/mjsunit/regress/regress-crbug-523307.js b/test/mjsunit/regress/regress-crbug-523307.js
new file mode 100644
index 0000000..f290967
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-523307.js
@@ -0,0 +1,16 @@
+// Copyright 2015 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 f(x) {
+  var c = x * x << 366;
+  var a = c + c;
+  return a;
+}
+
+f(1);
+f(1);
+%OptimizeFunctionOnNextCall(f);
+f(1);
diff --git a/test/mjsunit/regress/regress-crbug-523308.js b/test/mjsunit/regress/regress-crbug-523308.js
new file mode 100644
index 0000000..3611479
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-523308.js
@@ -0,0 +1,9 @@
+// Copyright 2015 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.
+
+var error;
+try { reference_error(); } catch (e) { error = e; }
+toString = error.toString;
+error.__proto__ = [];
+assertEquals("Error: reference_error is not defined", toString.call(error));
diff --git a/test/mjsunit/regress/regress-crbug-523919.js b/test/mjsunit/regress/regress-crbug-523919.js
new file mode 100644
index 0000000..4b2a8fe
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-523919.js
@@ -0,0 +1,31 @@
+// Copyright 2015 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: --cache=code
+
+[1.5,
+[2.5,
+[3.5,
+[4.5,
+[5.5,
+[6.5,
+[7.5,
+[8.5,
+[9.5,
+[10.5,
+[11.5,
+[12.5,
+[13.5,
+[14.5,
+[15.5,
+[16.5,
+[17.5,
+[18.5,
+[19.5,
+[20.5,
+[21.5,
+[22.5,
+[23.5,
+[24.5,
+[25.5]]]]]]]]]]]]]]]]]]]]]]]]];
diff --git a/test/mjsunit/regress/regress-crbug-527364.js b/test/mjsunit/regress/regress-crbug-527364.js
new file mode 100644
index 0000000..914bed0
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-527364.js
@@ -0,0 +1,26 @@
+// Copyright 2015 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: --stack-size=100 --allow-natives-syntax
+
+function module() {
+  "use asm";
+  var abs = Math.abs;
+  function f() {
+    return +abs();
+  }
+  return { f:f };
+}
+
+function run_close_to_stack_limit(f) {
+  try {
+    run_close_to_stack_limit(f);
+    f();
+  } catch(e) {
+  }
+}
+
+var boom = module().f;
+%OptimizeFunctionOnNextCall(boom)
+run_close_to_stack_limit(boom);
diff --git a/test/mjsunit/regress/regress-crbug-530598.js b/test/mjsunit/regress/regress-crbug-530598.js
new file mode 100644
index 0000000..f385523
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-530598.js
@@ -0,0 +1,25 @@
+// Copyright 2015 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 --turbo-inlining
+
+var f1 = (function() {
+  "use asm";
+  function g() { throw 0; }
+  function f() { return g(); }
+  return f;
+})();
+assertThrows("f1()");
+%OptimizeFunctionOnNextCall(f1);
+assertThrows("f1()");
+
+var f2 = (function() {
+  "use asm";
+  function g() { for (;;); }
+  function f(a) { return a || g(); }
+  return f;
+})();
+assertTrue(f2(true));
+%OptimizeFunctionOnNextCall(f2);
+assertTrue(f2(true));
diff --git a/test/mjsunit/regress/regress-crbug-538086.js b/test/mjsunit/regress/regress-crbug-538086.js
new file mode 100644
index 0000000..537cbda
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-538086.js
@@ -0,0 +1,6 @@
+// Copyright 2015 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.
+
+this[1]++;
+for (var x in this) {};
diff --git a/test/mjsunit/regress/regress-crbug-542101.js b/test/mjsunit/regress/regress-crbug-542101.js
new file mode 100644
index 0000000..1a4c2b3
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-542101.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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() {
+  Error.prototype.toString.call({
+    get name() { return { __proto__: this }; },
+    get message() { }
+  });
+})();
diff --git a/test/mjsunit/regress/regress-crbug-545364.js b/test/mjsunit/regress/regress-crbug-545364.js
new file mode 100644
index 0000000..4fe99d0
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-545364.js
@@ -0,0 +1,11 @@
+// Copyright 2015 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() {
+  "use asm";
+  return function(x) {
+    for (var i = 0; i < 100000; ++i) {}
+    return x;
+  }
+})()(this + "i");
diff --git a/test/mjsunit/regress/regress-crbug-546968.js b/test/mjsunit/regress/regress-crbug-546968.js
new file mode 100644
index 0000000..51f20c4
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-546968.js
@@ -0,0 +1,14 @@
+// Copyright 2015 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 --harmony-do-expressions
+
+function f() {
+  print(
+    do {
+      for (var i = 0; i < 10; i++) { if (i == 5) %OptimizeOsr(); }
+    }
+  );
+}
+f();
diff --git a/test/mjsunit/regress/regress-crbug-548580.js b/test/mjsunit/regress/regress-crbug-548580.js
new file mode 100644
index 0000000..4a2f5e1
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-548580.js
@@ -0,0 +1,17 @@
+// Copyright 2015 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-regexps
+
+function store(v) {
+  var re = /(?=[d#.])/;
+  re.a = v;
+  return re;
+}
+
+var re1 = store(undefined);
+var re2 = store(42);
+
+assertEquals(re1.a, undefined);
+assertEquals(re2.a, 42);
diff --git a/test/mjsunit/regress/regress-crbug-549162.js b/test/mjsunit/regress/regress-crbug-549162.js
new file mode 100644
index 0000000..072bdd5
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-549162.js
@@ -0,0 +1,11 @@
+// Copyright 2015 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.
+
+var s = Symbol("foo");
+var __v_13 = {}
+Object.defineProperty( __v_13, s, {value: {}, enumerable: true});
+for (var __v_14 in __v_13) {}
+__v_13 = {}
+Object.defineProperty( __v_13, s, {value: {}, enumerable: true});
+var __v_14 = Object.create(Object.prototype, __v_13)
diff --git a/test/mjsunit/regress/regress-crbug-551287.js b/test/mjsunit/regress/regress-crbug-551287.js
new file mode 100644
index 0000000..a85deef
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-551287.js
@@ -0,0 +1,17 @@
+// Copyright 2015 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 f() { do { } while (true); }
+
+function boom(x) {
+  switch(x) {
+    case 1:
+    case f(): return;
+  }
+}
+
+%OptimizeFunctionOnNextCall(boom)
+boom(1);
diff --git a/test/mjsunit/regress/regress-crbug-552304.js b/test/mjsunit/regress/regress-crbug-552304.js
new file mode 100644
index 0000000..fa3baa3
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-552304.js
@@ -0,0 +1,11 @@
+// Copyright 2015 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() {
+  "use asm";
+  return function() {
+    for (var i = 0; i < 100000; delete unresolved_name) {++i}
+    return 0;
+  }
+})()(this + "i");
diff --git a/test/mjsunit/regress/regress-crbug-554831.js b/test/mjsunit/regress/regress-crbug-554831.js
new file mode 100644
index 0000000..f7343e0
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-554831.js
@@ -0,0 +1,15 @@
+// Copyright 2015 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() {
+  var key = "s";
+  function f(object) { return object[key]; };
+  f("");
+  f("");
+  %OptimizeFunctionOnNextCall(f);
+  f("");
+  assertOptimized(f);
+})();
diff --git a/test/mjsunit/regress/regress-crbug-554946.js b/test/mjsunit/regress/regress-crbug-554946.js
new file mode 100644
index 0000000..fbb79f6
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-554946.js
@@ -0,0 +1,61 @@
+// Copyright 2015 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.
+
+var array = [];
+var funky = {
+  toJSON: function() { array.length = 1; return "funky"; }
+};
+for (var i = 0; i < 10; i++) array[i] = i;
+array[0] = funky;
+assertEquals('["funky",null,null,null,null,null,null,null,null,null]',
+             JSON.stringify(array));
+
+array = [];
+funky = {
+  get value() { array.length = 1; return "funky"; }
+};
+for (var i = 0; i < 10; i++) array[i] = i;
+array[3] = funky;
+assertEquals('[0,1,2,{"value":"funky"},null,null,null,null,null,null]',
+             JSON.stringify(array));
+
+array = [];
+funky = {
+  get value() { array.pop(); return "funky"; }
+};
+for (var i = 0; i < 10; i++) array[i] = i;
+array[3] = funky;
+assertEquals('[0,1,2,{"value":"funky"},4,5,6,7,8,null]', JSON.stringify(array));
+
+array = [];
+funky = {
+  get value() { delete array[9]; return "funky"; }
+};
+for (var i = 0; i < 10; i++) array[i] = i;
+array[3] = funky;
+assertEquals('[0,1,2,{"value":"funky"},4,5,6,7,8,null]', JSON.stringify(array));
+
+array = [];
+funky = {
+  get value() { delete array[6]; return "funky"; }
+};
+for (var i = 0; i < 10; i++) array[i] = i;
+array[3] = funky;
+assertEquals('[0,1,2,{"value":"funky"},4,5,null,7,8,9]', JSON.stringify(array));
+
+array = [];
+funky = {
+  get value() { array[12] = 12; return "funky"; }
+};
+for (var i = 0; i < 10; i++) array[i] = i;
+array[3] = funky;
+assertEquals('[0,1,2,{"value":"funky"},4,5,6,7,8,9]', JSON.stringify(array));
+
+array = [];
+funky = {
+  get value() { array[10000000] = 12; return "funky"; }
+};
+for (var i = 0; i < 10; i++) array[i] = i;
+array[3] = funky;
+assertEquals('[0,1,2,{"value":"funky"},4,5,6,7,8,9]', JSON.stringify(array));
diff --git a/test/mjsunit/regress/regress-crbug-557807.js b/test/mjsunit/regress/regress-crbug-557807.js
new file mode 100644
index 0000000..a96bc99
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-557807.js
@@ -0,0 +1,11 @@
+// Copyright 2015 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 bar() { return { __proto__: this }; }
+function foo(a) { a[0] = 0.3; }
+foo(bar());
+%OptimizeFunctionOnNextCall(foo);
+foo(bar());
diff --git a/test/mjsunit/regress/regress-crbug-561973.js b/test/mjsunit/regress/regress-crbug-561973.js
new file mode 100644
index 0000000..51b6e61
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-561973.js
@@ -0,0 +1,7 @@
+// Copyright 2015 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
+
+Date.parse('Sat, 01 Jan 100 08:00:00 UT-59011430400000');
diff --git a/test/mjsunit/regress/regress-crbug-563929.js b/test/mjsunit/regress/regress-crbug-563929.js
new file mode 100644
index 0000000..a9a112d
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-563929.js
@@ -0,0 +1,31 @@
+// Copyright 2015 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.
+
+var x = 0;
+function a() {
+  eval("");
+  return (function() {
+    eval("");
+    return (function() {
+      eval("");
+      return (function() {
+        eval("");
+        return (function() {
+          eval("");
+          return (function() {
+            eval("");
+            return (function() {
+              eval("");
+              return (function() {
+                eval("");
+                return x;
+              })();
+            }) ();
+          })();
+        })();
+      })();
+    })();
+  })();
+}
+assertEquals(a(), 0);
diff --git a/test/mjsunit/regress/regress-crbug-565917.js b/test/mjsunit/regress/regress-crbug-565917.js
new file mode 100644
index 0000000..2cccedf
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-565917.js
@@ -0,0 +1,7 @@
+// Copyright 2015 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.
+
+try {
+} catch(e) {; }
+new ArrayBuffer();
diff --git a/test/mjsunit/regress/regress-crbug-568477-1.js b/test/mjsunit/regress/regress-crbug-568477-1.js
new file mode 100644
index 0000000..ed269a9
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-568477-1.js
@@ -0,0 +1,54 @@
+// Copyright 2015 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: --expose-debug-as debug --allow-natives-syntax
+
+var Debug = debug.Debug;
+var expected = ["debugger;", "var x = y;", "debugger;", "var x = y;"];
+var log = [];
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    log.push(exec_state.frame(0).sourceLineText().trimLeft());
+    exec_state.prepareStep(Debug.StepAction.StepNext);
+  } catch (e) {
+    %AbortJS(e + "\n" + e.stack);
+  }
+}
+
+Debug.setListener(listener);
+
+function f() {
+  var a = 1;
+  debugger;
+  var x = y;
+  print(x);
+}
+
+function call_f_with_deeper_stack() {
+  (() => () => () => f())()()();
+}
+
+Promise.resolve().then(f).catch(call_f_with_deeper_stack);
+
+// Schedule microtask to check against expectation at the end.
+function testDone(iteration) {
+  function checkResult() {
+    try {
+      assertTrue(iteration < 10);
+      if (expected.length == log.length) {
+        assertEquals(expected, log);
+      } else {
+        testDone(iteration + 1);
+      }
+    } catch (e) {
+      %AbortJS(e + "\n" + e.stack);
+    }
+  }
+
+  %EnqueueMicrotask(checkResult);
+}
+
+testDone(0);
diff --git a/test/mjsunit/regress/regress-crbug-568477-2.js b/test/mjsunit/regress/regress-crbug-568477-2.js
new file mode 100644
index 0000000..64dd677
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-568477-2.js
@@ -0,0 +1,39 @@
+// Copyright 2015 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: --expose-debug-as debug --allow-natives-syntax
+
+var Debug = debug.Debug;
+var expected = ["debugger;",
+                "var x = y;",
+                "new Promise(f).catch(call_f_with_deeper_stack);",
+                "var a = 1;", "", "var a = 1;",
+                "debugger;",
+                "var x = y;"];
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    assertEquals(expected.shift(), exec_state.frame(0).sourceLineText().trimLeft());
+    exec_state.prepareStep(Debug.StepAction.StepNext);
+  } catch (e) {
+    %AbortJS(e + "\n" + e.stack);
+  }
+}
+
+Debug.setListener(listener);
+
+function f() {
+  var a = 1;
+  debugger;
+  var x = y;
+  print(x);
+}
+
+function call_f_with_deeper_stack() {
+  (() => () => () => f())()()();
+}
+
+new Promise(f).catch(call_f_with_deeper_stack);
+var a = 1;
diff --git a/test/mjsunit/regress/regress-crbug-568477-3.js b/test/mjsunit/regress/regress-crbug-568477-3.js
new file mode 100644
index 0000000..812db2b
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-568477-3.js
@@ -0,0 +1,56 @@
+// Copyright 2015 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: --expose-debug-as debug --allow-natives-syntax
+
+var Debug = debug.Debug;
+var expected = ["debugger;", "var x = y;", "debugger;", "var x = y;"];
+var log = [];
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    log.push(exec_state.frame(0).sourceLineText().trimLeft());
+    exec_state.prepareStep(Debug.StepAction.StepNext);
+  } catch (e) {
+    %AbortJS(e + "\n" + e.stack);
+  }
+}
+
+Debug.setListener(listener);
+
+function f() {
+  var a = 1;
+  debugger;
+  var x = y;
+  print(x);
+}
+
+function call_f_with_deeper_stack() {
+  (() => () => () => f())()()();
+}
+
+var p = Promise.resolve();
+p.then(f);
+p.then(call_f_with_deeper_stack);
+
+// Schedule microtask to check against expectation at the end.
+function testDone(iteration) {
+  function checkResult() {
+    try {
+      assertTrue(iteration < 10);
+      if (expected.length == log.length) {
+        assertEquals(expected, log);
+      } else {
+        testDone(iteration + 1);
+      }
+    } catch (e) {
+      %AbortJS(e + "\n" + e.stack);
+    }
+  }
+
+  %EnqueueMicrotask(checkResult);
+}
+
+testDone(0);
diff --git a/test/mjsunit/regress/regress-crbug-568477-4.js b/test/mjsunit/regress/regress-crbug-568477-4.js
new file mode 100644
index 0000000..f0e3e90
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-568477-4.js
@@ -0,0 +1,39 @@
+// Copyright 2015 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: --expose-debug-as debug --allow-natives-syntax
+
+var Debug = debug.Debug;
+var expected =
+    ["debugger;", "var x = y;", "var b = 2;", "Debug.setListener(null);"];
+var log = [];
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    log.push(exec_state.frame(0).sourceLineText().trimLeft());
+    exec_state.prepareStep(Debug.StepAction.StepNext);
+  } catch (e) {
+    %AbortJS(e + "\n" + e.stack);
+  }
+}
+
+Debug.setListener(listener);
+
+function f() {
+  var a = 1;
+  debugger;
+  var x = y;
+  print(x);
+}
+
+try {
+  %Call(f, {});
+} catch (e) {
+  var b = 2;
+}
+
+Debug.setListener(null);
+
+assertEquals(expected, log);
diff --git a/test/mjsunit/regress/regress-crbug-568525.js b/test/mjsunit/regress/regress-crbug-568525.js
new file mode 100644
index 0000000..c916bfe
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-568525.js
@@ -0,0 +1,7 @@
+// Copyright 2015 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.
+
+var a = /a/;
+a[4] = 1.5;
+for (var x in a) {}
diff --git a/test/mjsunit/regress/regress-crbug-569534.js b/test/mjsunit/regress/regress-crbug-569534.js
new file mode 100644
index 0000000..e1419ea
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-569534.js
@@ -0,0 +1,7 @@
+// Copyright 2015 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.
+
+var array = [,0.5];
+array.length = 0;
+for (var i in array) {}
diff --git a/test/mjsunit/regress/regress-crbug-570241.js b/test/mjsunit/regress/regress-crbug-570241.js
new file mode 100644
index 0000000..4fecba5
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-570241.js
@@ -0,0 +1,7 @@
+// Copyright 2013 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-regexp-lookbehind
+
+assertTrue(/(?<=12345123451234512345)/.test("12345123451234512345"));
diff --git a/test/mjsunit/regress/regress-crbug-570651.js b/test/mjsunit/regress/regress-crbug-570651.js
new file mode 100644
index 0000000..9860b42
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-570651.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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.
+
+Error.prepareStackTrace = (e,s) => s;
+var __v_3 = Error().stack[0].constructor;
+var __v_4 = {};
+function __f_3() {}
+var __v_5 = __v_3.call(null, __v_4, __f_3, {valueOf() { return 1611877293 }});
+ __v_5.getColumnNumber();
diff --git a/test/mjsunit/regress/regress-crbug-571064.js b/test/mjsunit/regress/regress-crbug-571064.js
new file mode 100644
index 0000000..a28a383
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-571064.js
@@ -0,0 +1,19 @@
+// Copyright 2015 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 --enable-slow-asserts
+
+Array.prototype.__proto__ = null;
+var func = Array.prototype.push;
+var prototype = Array.prototype;
+function CallFunc(a) {
+  func.call(a);
+}
+function CallFuncWithPrototype() {
+  CallFunc(prototype);
+}
+CallFunc([]);
+CallFunc([]);
+%OptimizeFunctionOnNextCall(CallFuncWithPrototype);
+CallFuncWithPrototype();
diff --git a/test/mjsunit/regress/regress-crbug-571370.js b/test/mjsunit/regress/regress-crbug-571370.js
new file mode 100644
index 0000000..5fd9a24
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-571370.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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.
+
+var val = [0.5];
+var arr = [0.5];
+for (var i = -1; i < 1; i++) {
+  arr[i] = val;
+}
+assertEquals(val, arr[-1]);
diff --git a/test/mjsunit/regress/regress-crbug-571517.js b/test/mjsunit/regress/regress-crbug-571517.js
new file mode 100644
index 0000000..03bf76c
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-571517.js
@@ -0,0 +1,36 @@
+// Copyright 2015 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 Receiver() { this.receiver = "receiver"; }
+function Proto() { this.proto = "proto"; }
+
+function f(a) {
+  return a.foo;
+}
+
+var rec = new Receiver();
+
+var proto = rec.__proto__.__proto__;
+
+// Initialize prototype chain dependent IC (nonexistent load).
+assertEquals(undefined, f(rec));
+assertEquals(undefined, f(rec));
+
+// Add a new prototype to the end of the chain.
+var p2 = new Proto();
+p2.__proto__ = null;
+proto.__proto__ = p2;
+
+// Update the IC.
+assertEquals(undefined, f(rec));
+
+// Now modify the most recently added prototype by adding a property...
+p2.foo = "bar";
+assertEquals("bar", f(rec));
+
+// ...and removing it again. Due to missing prototype user registrations,
+// this fails to invalidate the IC.
+delete p2.foo;
+p2.secret = "GAME OVER";
+assertEquals(undefined, f(rec));
diff --git a/test/mjsunit/regress/regress-crbug-572590.js b/test/mjsunit/regress/regress-crbug-572590.js
new file mode 100644
index 0000000..5871005
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-572590.js
@@ -0,0 +1,10 @@
+// Copyright 2015 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: --expose-gc --verify-heap
+
+function g() { }
+var f = g.bind();
+f.__defineGetter__('length', g);
+gc();
diff --git a/test/mjsunit/regress/regress-crbug-573857.js b/test/mjsunit/regress/regress-crbug-573857.js
new file mode 100644
index 0000000..d2892c9
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-573857.js
@@ -0,0 +1,13 @@
+// Copyright 2015 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: --expose-gc --verify-heap
+
+function f() {}
+f = f.bind();
+f.x = f.name;
+f.__defineGetter__('name', function() { return f.x; });
+function g() {}
+g.prototype = f;
+gc();
diff --git a/test/mjsunit/regress/regress-crbug-573858.js b/test/mjsunit/regress/regress-crbug-573858.js
new file mode 100644
index 0000000..37a9eb8
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-573858.js
@@ -0,0 +1,16 @@
+// Copyright 2016 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
+
+var throw_type_error = Object.getOwnPropertyDescriptor(
+    (function() {"use strict"}).__proto__, "caller").get;
+
+function create_initial_map() { this instanceof throw_type_error }
+%OptimizeFunctionOnNextCall(create_initial_map);
+create_initial_map();
+
+function test() { new throw_type_error }
+%OptimizeFunctionOnNextCall(test);
+assertThrows(test);
diff --git a/test/mjsunit/regress/regress-crbug-575080.js b/test/mjsunit/regress/regress-crbug-575080.js
new file mode 100644
index 0000000..c549e9c
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-575080.js
@@ -0,0 +1,16 @@
+// Copyright 2016 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: --es-staging
+
+class A extends Function {
+  constructor(...args) {
+    super(...args);
+    this.a = 42;
+    this.d = 4.2;
+    this.o = 0;
+  }
+}
+var obj = new A("'use strict';");
+obj.o = 0.1;
diff --git a/test/mjsunit/regress/regress-crbug-575082.js b/test/mjsunit/regress/regress-crbug-575082.js
new file mode 100644
index 0000000..d9cc0f9
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-575082.js
@@ -0,0 +1,5 @@
+// Copyright 2015 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.
+
+var y = new Date("-1073741824");
diff --git a/test/mjsunit/regress/regress-crbug-575314.js b/test/mjsunit/regress/regress-crbug-575314.js
new file mode 100644
index 0000000..7a5bd4e
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-575314.js
@@ -0,0 +1,15 @@
+// Copyright 2014 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
+
+// https://code.google.com/p/chromium/issues/detail?id=575314
+
+// Overwriting the constructor of a Promise with something that doesn't have
+// @@species shouldn't result in a rejection, even if that constructor
+// is somewhat bogus.
+
+var test = new Promise(function(){});
+test.constructor = function(){};
+Promise.resolve(test).catch(e => %AbortJS(e + " FAILED!"));
diff --git a/test/mjsunit/regress/regress-crbug-578039-Proxy_construct_prototype_change.js b/test/mjsunit/regress/regress-crbug-578039-Proxy_construct_prototype_change.js
new file mode 100644
index 0000000..30b3f21
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-578039-Proxy_construct_prototype_change.js
@@ -0,0 +1,14 @@
+// Copyright 2016 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 target() {};
+
+var proxy = new Proxy(target, {
+  get() {
+    // Reset the initial map of the target.
+    target.prototype = 123;
+  }});
+
+new proxy();
diff --git a/test/mjsunit/regress/regress-crbug-580934.js b/test/mjsunit/regress/regress-crbug-580934.js
new file mode 100644
index 0000000..02cbfca
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-580934.js
@@ -0,0 +1,18 @@
+// Copyright 2016 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: --min-preparse-length=0
+
+"use strict";
+{
+  let one = () => {
+    return "example.com";
+  };
+
+  let two = () => {
+    return one();
+  };
+
+  assertEquals("example.com", two());
+}
diff --git a/test/mjsunit/regress/regress-debug-code-recompilation.js b/test/mjsunit/regress/regress-debug-code-recompilation.js
index 4723ec1..2f81d0c 100644
--- a/test/mjsunit/regress/regress-debug-code-recompilation.js
+++ b/test/mjsunit/regress/regress-debug-code-recompilation.js
@@ -29,6 +29,7 @@
 // Flags: --expose-debug-as debug
 
 Debug = debug.Debug
+Debug.setListener(function(){});
 
 function f() {a=1;b=2};
 function g() {
@@ -46,3 +47,5 @@
 %OptimizeFunctionOnNextCall(Debug.setBreakPoint);
 bp = Debug.setBreakPoint(f, 0, 0);
 Debug.clearBreakPoint(bp);
+
+Debug.setListener(null);
diff --git a/test/mjsunit/regress/regress-debug-deopt-while-recompile.js b/test/mjsunit/regress/regress-debug-deopt-while-recompile.js
index ce5220a..52c32e9 100644
--- a/test/mjsunit/regress/regress-debug-deopt-while-recompile.js
+++ b/test/mjsunit/regress/regress-debug-deopt-while-recompile.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --expose-debug-as debug --allow-natives-syntax
-// Flags: --turbo-deoptimization
 
 Debug = debug.Debug;
 
diff --git a/test/mjsunit/regress/regress-debugger-redirect.js b/test/mjsunit/regress/regress-debugger-redirect.js
new file mode 100644
index 0000000..daa6fa7
--- /dev/null
+++ b/test/mjsunit/regress/regress-debugger-redirect.js
@@ -0,0 +1,37 @@
+// Copyright 2015 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: --expose-debug-as debug --legacy-const
+
+function f(x) {
+  // This function compiles into code that only throws a redeclaration
+  // error. It contains no stack check and has no function body.
+  const x = 0;
+  return x;
+}
+
+function g() {
+  f(0);
+}
+
+var exception = null;
+var called = false;
+var Debug = debug.Debug;
+Debug.setBreakOnException();
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Exception) return;
+  try {
+    called = true;
+    Debug.setBreakPoint(f, 1);
+  } catch (e) {
+    exception = e;
+  }
+}
+
+Debug.setListener(listener);
+
+assertThrows(g);
+assertNull(exception);
+assertTrue(called);
diff --git a/test/mjsunit/regress/regress-deopt-in-array-literal-spread.js b/test/mjsunit/regress/regress-deopt-in-array-literal-spread.js
new file mode 100644
index 0000000..8bebbe2
--- /dev/null
+++ b/test/mjsunit/regress/regress-deopt-in-array-literal-spread.js
@@ -0,0 +1,12 @@
+// Copyright 2015 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 f(a,b,c,d) { return [a, ...(%DeoptimizeNow(), [b,c]), d]; }
+
+assertEquals([1,2,3,4], f(1,2,3,4));
+assertEquals([1,2,3,4], f(1,2,3,4));
+%OptimizeFunctionOnNextCall(f);
+assertEquals([1,2,3,4], f(1,2,3,4));
diff --git a/test/mjsunit/regress/regress-deoptimize-constant-keyed-load.js b/test/mjsunit/regress/regress-deoptimize-constant-keyed-load.js
new file mode 100644
index 0000000..ed63133
--- /dev/null
+++ b/test/mjsunit/regress/regress-deoptimize-constant-keyed-load.js
@@ -0,0 +1,22 @@
+// Copyright 2015 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
+
+var o = { };
+o.__defineGetter__("progressChanged", function() { %DeoptimizeFunction(f); return 10; })
+
+function g(a, b, c) {
+  return a + b + c;
+}
+
+function f() {
+  var t="progressChanged";
+  return g(1, o[t], 100);
+}
+
+f();
+f();
+%OptimizeFunctionOnNextCall(f);
+assertEquals(111, f());
diff --git a/test/mjsunit/regress/regress-ensure-initial-map.js b/test/mjsunit/regress/regress-ensure-initial-map.js
new file mode 100644
index 0000000..dbd4762
--- /dev/null
+++ b/test/mjsunit/regress/regress-ensure-initial-map.js
@@ -0,0 +1,22 @@
+// Copyright 2015 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
+
+var x = Object.getOwnPropertyDescriptor({get x() {}}, "x").get;
+function f(o, b) {
+  if (b) {
+    return o instanceof x;
+  }
+}
+
+%OptimizeFunctionOnNextCall(f);
+f();
+
+function g() {
+  return new x();
+}
+
+%OptimizeFunctionOnNextCall(g);
+assertThrows(()=>g());
diff --git a/test/mjsunit/regress/regress-eval-context.js b/test/mjsunit/regress/regress-eval-context.js
new file mode 100644
index 0000000..e376282
--- /dev/null
+++ b/test/mjsunit/regress/regress-eval-context.js
@@ -0,0 +1,20 @@
+// Copyright 2015 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() {
+  'use strict';
+  var x = 0;
+
+  {
+    let x = 1;
+    assertEquals(1, eval("x"));
+  }
+
+  {
+    let y = 2;
+    assertEquals(0, eval("x"));
+  }
+
+  assertEquals(0, eval("x"));
+})();
diff --git a/test/mjsunit/regress/regress-existing-shared-function-info.js b/test/mjsunit/regress/regress-existing-shared-function-info.js
new file mode 100644
index 0000000..a53014c
--- /dev/null
+++ b/test/mjsunit/regress/regress-existing-shared-function-info.js
@@ -0,0 +1,18 @@
+// Copyright 2015 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: --expose-gc
+
+function f() {
+  return function g() {
+    return function h() {}
+  }
+}
+
+var h = f()();
+
+// Make sure code has been flushed.
+for (var i of Array(10)) gc();
+
+f()();
diff --git a/test/mjsunit/regress/regress-filter-contexts.js b/test/mjsunit/regress/regress-filter-contexts.js
new file mode 100644
index 0000000..d2abe00
--- /dev/null
+++ b/test/mjsunit/regress/regress-filter-contexts.js
@@ -0,0 +1,14 @@
+// Copyright 2015 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 f() { return f.x; }
+f.__proto__ = null;
+f.prototype = "";
+
+f();
+f();
+%OptimizeFunctionOnNextCall(f);
+f();
diff --git a/test/mjsunit/regress/regress-function-constructor-receiver.js b/test/mjsunit/regress/regress-function-constructor-receiver.js
deleted file mode 100644
index f345435..0000000
--- a/test/mjsunit/regress/regress-function-constructor-receiver.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2014 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.
-
-// Return the raw CallSites array.
-Error.prepareStackTrace = function (a,b) { return b; };
-
-var threw = false;
-try {
-  new Function({toString:0,valueOf:0});
-} catch (e) {
-  threw = true;
-  // Ensure that the receiver during "new Function" is the global proxy.
-  assertEquals(this, e.stack[0].getThis());
-}
-
-assertTrue(threw);
diff --git a/test/mjsunit/regress/regress-function-length-strict.js b/test/mjsunit/regress/regress-function-length-strict.js
index 700f34a..77cca24 100644
--- a/test/mjsunit/regress/regress-function-length-strict.js
+++ b/test/mjsunit/regress/regress-function-length-strict.js
@@ -37,5 +37,5 @@
 assertEquals(3, desc.value);
 assertFalse(desc.writable);
 assertFalse(desc.enumerable);
-assertFalse(desc.configurable);
+assertTrue(desc.configurable);
 assertThrows(function() { foo.length = 2; }, TypeError);
diff --git a/test/mjsunit/regress/regress-handle-illegal-redeclaration.js b/test/mjsunit/regress/regress-handle-illegal-redeclaration.js
index fe04ddb..fc4ba90 100644
--- a/test/mjsunit/regress/regress-handle-illegal-redeclaration.js
+++ b/test/mjsunit/regress/regress-handle-illegal-redeclaration.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: --always-opt
+// Flags: --always-opt --legacy-const
 
 var x = 0;
 
diff --git a/test/mjsunit/regress/regress-indirect-push-unchecked.js b/test/mjsunit/regress/regress-indirect-push-unchecked.js
new file mode 100644
index 0000000..dca7e96
--- /dev/null
+++ b/test/mjsunit/regress/regress-indirect-push-unchecked.js
@@ -0,0 +1,20 @@
+// Copyright 2015 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
+
+var a = [1.5];
+
+function p() {
+  Array.prototype.push.call(a, 1.7);
+}
+
+p();
+p();
+p();
+%OptimizeFunctionOnNextCall(p);
+p();
+a.push({});
+p();
+assertEquals(1.7, a[a.length - 1]);
diff --git a/test/mjsunit/regress/regress-inline-arrow-as-construct.js b/test/mjsunit/regress/regress-inline-arrow-as-construct.js
new file mode 100644
index 0000000..bd8fa31
--- /dev/null
+++ b/test/mjsunit/regress/regress-inline-arrow-as-construct.js
@@ -0,0 +1,19 @@
+// Copyright 2015 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
+
+// This tests that inlining a constructor call to a function which cannot be
+// used as a constructor (e.g. arrow function) still throws correctly.
+
+var g = () => {}
+
+function f() {
+  return new g();
+}
+
+assertThrows(f);
+assertThrows(f);
+%OptimizeFunctionOnNextCall(f);
+assertThrows(f);
diff --git a/test/mjsunit/regress/regress-inline-class-constructor.js b/test/mjsunit/regress/regress-inline-class-constructor.js
new file mode 100644
index 0000000..1d77176
--- /dev/null
+++ b/test/mjsunit/regress/regress-inline-class-constructor.js
@@ -0,0 +1,28 @@
+// Copyright 2015 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
+
+"use strict";
+
+var B = class extends Int32Array { }
+
+function f(b) {
+  if (b) {
+    null instanceof B;
+  }
+}
+
+f();
+f();
+f();
+%OptimizeFunctionOnNextCall(f);
+f();
+
+function f2() {
+  return new B();
+}
+
+%OptimizeFunctionOnNextCall(f2);
+f2();
diff --git a/test/mjsunit/regress/regress-inline-strong-as-construct.js b/test/mjsunit/regress/regress-inline-strong-as-construct.js
new file mode 100644
index 0000000..2fa5001
--- /dev/null
+++ b/test/mjsunit/regress/regress-inline-strong-as-construct.js
@@ -0,0 +1,21 @@
+// Copyright 2015 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 --strong-mode
+
+// This tests that inlining a constructor call to a function which cannot be
+// used as a constructor (e.g. strong mode function) still throws correctly.
+
+function g() {
+  "use strong";
+}
+
+function f() {
+  return new g();
+}
+
+assertThrows(f);
+assertThrows(f);
+%OptimizeFunctionOnNextCall(f);
+assertThrows(f);
diff --git a/test/mjsunit/regress/regress-merge-descriptors.js b/test/mjsunit/regress/regress-merge-descriptors.js
index a84a625..98e2f26 100644
--- a/test/mjsunit/regress/regress-merge-descriptors.js
+++ b/test/mjsunit/regress/regress-merge-descriptors.js
@@ -77,7 +77,7 @@
       }
     });
 
-    // Convert self.copy from CONSTANT to FIELD.
+    // Convert self.copy from DATA_CONSTANT to DATA.
     self.copy = function () { };
 
     return self;
diff --git a/test/mjsunit/regress/regress-observe-map-cache.js b/test/mjsunit/regress/regress-observe-map-cache.js
index 4c7a7e3..c71759c 100644
--- a/test/mjsunit/regress/regress-observe-map-cache.js
+++ b/test/mjsunit/regress/regress-observe-map-cache.js
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// Flags: --harmony-object-observe
 // Flags: --allow-natives-syntax --enable-slow-asserts
 
 function f() {
diff --git a/test/mjsunit/regress/regress-opt-after-debug-deopt.js b/test/mjsunit/regress/regress-opt-after-debug-deopt.js
index 5cbaabc..c637be5 100644
--- a/test/mjsunit/regress/regress-opt-after-debug-deopt.js
+++ b/test/mjsunit/regress/regress-opt-after-debug-deopt.js
@@ -27,7 +27,6 @@
 
 // Flags: --expose-debug-as debug --allow-natives-syntax
 // Flags: --concurrent-recompilation --block-concurrent-recompilation
-// Flags: --turbo-deoptimization
 
 if (!%IsConcurrentRecompilationSupported()) {
   print("Concurrent recompilation is disabled. Skipping this test.");
diff --git a/test/mjsunit/regress/regress-osr-context.js b/test/mjsunit/regress/regress-osr-context.js
new file mode 100644
index 0000000..a739541
--- /dev/null
+++ b/test/mjsunit/regress/regress-osr-context.js
@@ -0,0 +1,20 @@
+// Copyright 2015 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-context-specialization
+// Flags: --turbo-filter=f
+
+(function() {
+  "use strict";
+  var a = 23;
+  function f() {
+    for (let i = 0; i < 5; ++i) {
+      a--;  // Make sure {a} is non-immutable, hence context allocated.
+      function g() { return i }  // Make sure block has a context.
+      if (i == 2) %OptimizeOsr();
+    }
+    return a;
+  }
+  assertEquals(18, f());
+})();
diff --git a/test/mjsunit/regress/regress-osr-in-case-label.js b/test/mjsunit/regress/regress-osr-in-case-label.js
new file mode 100644
index 0000000..3ad9e33
--- /dev/null
+++ b/test/mjsunit/regress/regress-osr-in-case-label.js
@@ -0,0 +1,18 @@
+// Copyright 2015 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 --harmony-do-expressions
+
+function f(x) {
+  switch (x) {
+    case 1: return "one";
+    case 2: return "two";
+    case do { for (var i = 0; i < 10; i++) { if (i == 5) %OptimizeOsr(); } }:
+    case 3: return "WAT";
+  }
+}
+
+assertEquals("one", f(1));
+assertEquals("two", f(2));
+assertEquals("WAT", f(3));
diff --git a/test/mjsunit/regress/regress-osr-in-literal.js b/test/mjsunit/regress/regress-osr-in-literal.js
new file mode 100644
index 0000000..7553b9c
--- /dev/null
+++ b/test/mjsunit/regress/regress-osr-in-literal.js
@@ -0,0 +1,30 @@
+// Copyright 2015 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 --harmony-do-expressions
+
+"use strict";
+
+var p = {};
+var testCases = [
+  { s:"[1, do { _OSR_ 2 }, 3]",                      r:[1, 2, 3] },
+  { s:"[1, ...[2], do { _OSR_ 3 }, 4]",              r:[1, 2, 3, 4] },
+  { s:"[1, ...do { _OSR_ [2,3] }, 4]",               r:[1, 2, 3, 4] },
+  { s:"{ a:do { _OSR_ 1 } }",                        r:{ a:1 } },
+  { s:"{ a:do { _OSR_ 2 }, __proto__:p }",           r:{ a:2, __proto__:p } },
+  { s:"{ a:do { _OSR_ 3 }, get b() { return 4; } }", r:{ a:3, b:4 } },
+  { s:"{ [do { _OSR_ 'b' }]: 3 }",                   r:{ b:3 } },
+  { s:"{ [do { _OSR_ 'b' }]: 3, c: 4 }",             r:{ b:3, c:4 } },
+  { s:"{ [do { _OSR_ 'b' }]: 3, __proto__:p }",      r:{ b:3, __proto__:p } },
+  { s:"{ get [do { _OSR_ 'c' }]() { return 4; } }",  r:{ c:4 } },
+  { s:"class { [do { _OSR_ 'f' }]() {} }" },
+  { s:"class { [do { _OSR_ 'f' }]() {}; g() {} }" },
+];
+
+for (var i = 0; i < testCases.length; ++i) {
+  var source = "(function f" + i + "(x) { return " + testCases[i].s + "})";
+  var osr = "for (var i = 0; i < 10; i++) { if (i == 5) %OptimizeOsr(); }";
+  var result = eval(source.replace("_OSR_", osr))();
+  if (testCases[i].r) assertEquals(testCases[i].r, result);
+}
diff --git a/test/mjsunit/regress/regress-parse-object-literal.js b/test/mjsunit/regress/regress-parse-object-literal.js
deleted file mode 100644
index 93725eb..0000000
--- a/test/mjsunit/regress/regress-parse-object-literal.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2013 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Flags: --noharmony-classes --noharmony-object-literals
-
-// Should throw, not crash.
-assertThrows("var o = { get /*space*/ () {} }");
diff --git a/test/mjsunit/regress/regress-prepare-break-while-recompile.js b/test/mjsunit/regress/regress-prepare-break-while-recompile.js
index 0aedcab..0673220 100644
--- a/test/mjsunit/regress/regress-prepare-break-while-recompile.js
+++ b/test/mjsunit/regress/regress-prepare-break-while-recompile.js
@@ -54,8 +54,10 @@
 // and (shared) unoptimized code on foo, and sets both to lazy-compile builtin.
 // Clear the break point immediately after to deactivate the debugger.
 // Do all of this after compile graph has been created.
+Debug.setListener(function(){});
 Debug.setBreakPoint(bar, 0, 0);
 Debug.clearAllBreakPoints();
+Debug.setListener(null);
 
 // At this point, concurrent recompilation is still blocked.
 assertUnoptimized(foo, "no sync");
diff --git a/test/mjsunit/regress/regress-put-prototype-transition.js b/test/mjsunit/regress/regress-put-prototype-transition.js
index f720bd6..70f0074 100644
--- a/test/mjsunit/regress/regress-put-prototype-transition.js
+++ b/test/mjsunit/regress/regress-put-prototype-transition.js
@@ -35,7 +35,7 @@
     __f_0(__v_1, __v_6);
     assertTrue(%HasFastProperties(__v_1));
     __f_4(__v_1);
-    assertFalse(%HasFastProperties(__v_1));
+    assertTrue(%HasFastProperties(__v_1));
   }
 }
 gc();
diff --git a/test/mjsunit/regress/regress-regexp-codeflush.js b/test/mjsunit/regress/regress-regexp-codeflush.js
index 5fa42bf..8e7b039 100644
--- a/test/mjsunit/regress/regress-regexp-codeflush.js
+++ b/test/mjsunit/regress/regress-regexp-codeflush.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --gc_global
+// Flags: --gc-global
 
 // Regression test for regexp that has multiple matches and which
 // internally calls RegExpImpl::IrregexpExecOnce more than once without
diff --git a/test/mjsunit/regress/regress-smi-scanning.js b/test/mjsunit/regress/regress-smi-scanning.js
new file mode 100644
index 0000000..56cf9f9
--- /dev/null
+++ b/test/mjsunit/regress/regress-smi-scanning.js
@@ -0,0 +1,7 @@
+// Copyright 2015 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.
+
+x = 2
+3;
+assertEquals(2, x);
diff --git a/test/mjsunit/regress/regress-splice-large-index.js b/test/mjsunit/regress/regress-splice-large-index.js
index 5da17ee..1f4eb9c 100644
--- a/test/mjsunit/regress/regress-splice-large-index.js
+++ b/test/mjsunit/regress/regress-splice-large-index.js
@@ -30,6 +30,7 @@
 assertThrows("a.unshift(1);", RangeError);
 assertEquals(0xffffffff, a.length);
 assertEquals(10, a[0xffffffff]);
+assertEquals(0xffffffff, a.length);
 assertEquals(undefined, a[0xfffffffe]);
 
 a = [1,2,3];
diff --git a/test/mjsunit/regress/regress-typedarray-length.js b/test/mjsunit/regress/regress-typedarray-length.js
new file mode 100644
index 0000000..a0b9998
--- /dev/null
+++ b/test/mjsunit/regress/regress-typedarray-length.js
@@ -0,0 +1,149 @@
+// Copyright 2015 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
+
+var a = new Int32Array(100);
+a.__proto__ = null;
+
+function get(a) {
+  return a.length;
+}
+
+assertEquals(undefined, get(a));
+assertEquals(undefined, get(a));
+assertEquals(undefined, get(a));
+%OptimizeFunctionOnNextCall(get);
+assertEquals(undefined, get(a));
+
+get = function(a) {
+  return a.byteLength;
+}
+
+assertEquals(undefined, get(a));
+assertEquals(undefined, get(a));
+assertEquals(undefined, get(a));
+%OptimizeFunctionOnNextCall(get);
+assertEquals(undefined, get(a));
+
+get = function(a) {
+  return a.byteOffset;
+}
+
+assertEquals(undefined, get(a));
+assertEquals(undefined, get(a));
+assertEquals(undefined, get(a));
+%OptimizeFunctionOnNextCall(get);
+assertEquals(undefined, get(a));
+
+(function() {
+  "use strict";
+
+  class MyTypedArray extends Int32Array {
+    get length() {
+      return "length";
+    }
+  }
+
+  a = new MyTypedArray();
+
+  get = function(a) {
+    return a.length;
+  }
+
+  assertEquals("length", get(a));
+  assertEquals("length", get(a));
+  assertEquals("length", get(a));
+  %OptimizeFunctionOnNextCall(get);
+  assertEquals("length", get(a));
+
+  a.__proto__ = null;
+
+  get = function(a) {
+    return a.length;
+  }
+
+  assertEquals(undefined, get(a));
+  assertEquals(undefined, get(a));
+  assertEquals(undefined, get(a));
+  %OptimizeFunctionOnNextCall(get);
+  assertEquals(undefined, get(a));
+})();
+
+(function() {
+  "use strict";
+
+  class MyTypedArray extends Int32Array {
+    constructor(length) {
+      super(length);
+    }
+  }
+
+  a = new MyTypedArray(1024);
+
+  get = function(a) {
+    return a.length;
+  }
+
+  assertEquals(1024, get(a));
+  assertEquals(1024, get(a));
+  assertEquals(1024, get(a));
+  %OptimizeFunctionOnNextCall(get);
+  assertEquals(1024, get(a));
+})();
+
+(function() {
+  "use strict";
+  var a = new Uint8Array(4);
+  Object.defineProperty(a, "length", {get: function() { return "blah"; }});
+  get = function(a) {
+    return a.length;
+  }
+
+  assertEquals("blah", get(a));
+  assertEquals("blah", get(a));
+  assertEquals("blah", get(a));
+  %OptimizeFunctionOnNextCall(get);
+  assertEquals("blah", get(a));
+})();
+
+// Ensure we cannot delete length, byteOffset, byteLength.
+assertTrue(Int32Array.prototype.__proto__.hasOwnProperty("length"));
+assertTrue(Int32Array.prototype.__proto__.hasOwnProperty("byteOffset"));
+assertTrue(Int32Array.prototype.__proto__.hasOwnProperty("byteLength"));
+assertFalse(delete Int32Array.prototype.__proto__.length);
+assertFalse(delete Int32Array.prototype.__proto__.byteOffset);
+assertFalse(delete Int32Array.prototype.__proto__.byteLength);
+
+a = new Int32Array(100);
+
+get = function(a) {
+  return a.length;
+}
+
+assertEquals(100, get(a));
+assertEquals(100, get(a));
+assertEquals(100, get(a));
+%OptimizeFunctionOnNextCall(get);
+assertEquals(100, get(a));
+
+get = function(a) {
+  return a.byteLength;
+}
+
+assertEquals(400, get(a));
+assertEquals(400, get(a));
+assertEquals(400, get(a));
+%OptimizeFunctionOnNextCall(get);
+assertEquals(400, get(a));
+
+get = function(a) {
+  return a.byteOffset;
+}
+
+assertEquals(0, get(a));
+assertEquals(0, get(a));
+assertEquals(0, get(a));
+%OptimizeFunctionOnNextCall(get);
+assertEquals(0, get(a));
diff --git a/test/mjsunit/regress/regress-undefined-nan.js b/test/mjsunit/regress/regress-undefined-nan.js
new file mode 100644
index 0000000..0e9b3d3
--- /dev/null
+++ b/test/mjsunit/regress/regress-undefined-nan.js
@@ -0,0 +1,35 @@
+// Copyright 2015 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 loader(dst, src, i) {
+  dst[i] = src[i];
+}
+
+var ab = new ArrayBuffer(8);
+var i_view = new Int32Array(ab);
+i_view[0] = %GetHoleNaNUpper()
+i_view[1] = %GetHoleNaNLower();
+var f_view = new Float64Array(ab);
+
+var fixed_double_elements = new Float64Array(1);
+
+function opt_store() { fixed_double_elements[0] = f_view[0]; }
+
+opt_store();
+opt_store();
+%OptimizeFunctionOnNextCall(opt_store);
+opt_store();
+
+var i32 = new Int32Array(fixed_double_elements.buffer);
+assertEquals(i_view[0], i32[0]);
+assertEquals(i_view[1], i32[1]);
+
+var doubles = [0.5];
+loader(doubles, fixed_double_elements, 0);
+loader(doubles, fixed_double_elements, 0);
+%OptimizeFunctionOnNextCall(loader);
+loader(doubles, fixed_double_elements, 0);
+assertTrue(doubles[0] !== undefined);
diff --git a/test/mjsunit/regress/regress-undefined-nan2.js b/test/mjsunit/regress/regress-undefined-nan2.js
new file mode 100644
index 0000000..9b0a05f
--- /dev/null
+++ b/test/mjsunit/regress/regress-undefined-nan2.js
@@ -0,0 +1,12 @@
+// Copyright 2015 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 foo(a, i) {
+  var o = [0.5,,1];
+  a[i] = o[i];
+}
+var a1 = [0.1,0.1];
+foo(a1, 0);
+foo(a1, 1);
+assertEquals(undefined, a1[1]);
diff --git a/test/mjsunit/regress/regress-undefined-nan3.js b/test/mjsunit/regress/regress-undefined-nan3.js
new file mode 100644
index 0000000..5a0bc38
--- /dev/null
+++ b/test/mjsunit/regress/regress-undefined-nan3.js
@@ -0,0 +1,32 @@
+// Copyright 2015 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
+
+var ab = new ArrayBuffer(8);
+var i_view = new Int32Array(ab);
+i_view[0] = %GetHoleNaNUpper()
+i_view[1] = %GetHoleNaNLower();
+var f_view = new Float64Array(ab);
+
+var fixed_double_elements = new Float64Array(1);
+fixed_double_elements[0] = f_view[0];
+
+function A(src) { this.x = src[0]; }
+
+new A(fixed_double_elements);
+new A(fixed_double_elements);
+
+%OptimizeFunctionOnNextCall(A);
+
+var obj = new A(fixed_double_elements);
+
+function move_x(dst, obj) { dst[0] = obj.x; }
+
+var doubles = [0.5];
+move_x(doubles, obj);
+move_x(doubles, obj);
+%OptimizeFunctionOnNextCall(move_x);
+move_x(doubles, obj);
+assertTrue(doubles[0] !== undefined);
diff --git a/test/mjsunit/regress/regress-x87.js b/test/mjsunit/regress/regress-x87.js
index 60380a8..c5edb70 100644
--- a/test/mjsunit/regress/regress-x87.js
+++ b/test/mjsunit/regress/regress-x87.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax --noenable-sse2
+// Flags: --allow-natives-syntax
 
 // Regression for register allocation.
 var x;
diff --git a/test/mjsunit/regress/string-fromcharcode-sideeffect.js b/test/mjsunit/regress/string-fromcharcode-sideeffect.js
new file mode 100644
index 0000000..432ba2c
--- /dev/null
+++ b/test/mjsunit/regress/string-fromcharcode-sideeffect.js
@@ -0,0 +1,8 @@
+// Copyright 2015 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.
+
+var counter = 0;
+var a = { valueOf: function() { counter++; return 0x100; } };
+assertEquals("A\u0100\u0100\u0100", String.fromCharCode(65, a, a, a));
+assertEquals(3, counter);
diff --git a/test/mjsunit/regress/string-set-char-deopt.js b/test/mjsunit/regress/string-set-char-deopt.js
index c8e8538..8956e28 100644
--- a/test/mjsunit/regress/string-set-char-deopt.js
+++ b/test/mjsunit/regress/string-set-char-deopt.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax --turbo-deoptimization
+// Flags: --allow-natives-syntax
 
 (function OneByteSeqStringSetCharDeoptOsr() {
   function deopt() {
@@ -36,7 +36,7 @@
     var world = " world";
     %_OneByteSeqStringSetChar(0, (deopt(), 0x48), string);
 
-    if (osr) while (%GetOptimizationStatus(f) == 2) {}
+    for (var i = 0; osr && i < 2; i++) %OptimizeOsr();
 
     return string + world;
   }
diff --git a/test/mjsunit/regress/typed-array-lifetime.js b/test/mjsunit/regress/typed-array-lifetime.js
new file mode 100644
index 0000000..db9a216
--- /dev/null
+++ b/test/mjsunit/regress/typed-array-lifetime.js
@@ -0,0 +1,26 @@
+// Copyright 2015 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 --typed-array-max-size-in-heap=1
+
+var foo = (function () {
+  var y = 0;
+  return function foo(x) {
+    // Needs to be an external array.
+    var a = new Float64Array(32);
+    a[0] = 42;
+    y = x + 0.1;  // This has to allocate.
+    return a[0];
+  }
+})();
+
+foo(1);
+foo(1);
+%OptimizeFunctionOnNextCall(foo);
+foo(1);
+// Try to force a GC during allocation in above marked line.
+for (var i = 0; i < 20; ++i) {
+  %SetAllocationTimeout(i, i, false);
+  assertEquals(42, foo(2));
+}