Home | History | Annotate | Download | only in regress
      1 // Copyright 2014 the V8 project authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Flags: --gc-global --noincremental-marking --allow-natives-syntax
      6 
      7 function Ctor() {
      8   this.foo = 1;
      9 }
     10 
     11 var o = new Ctor();
     12 var p = new Ctor();
     13 
     14 
     15 function crash(o, timeout) {
     16   var s = "4000111222";  // Outside Smi range.
     17   %SetAllocationTimeout(100000, timeout);
     18   // This allocates a heap number, causing a GC, triggering lazy deopt.
     19   var end = s >>> 0;
     20   s = s.substring(0, end);
     21   // This creates a map dependency, which gives the GC a reason to trigger
     22   // a lazy deopt when that map dies.
     23   o.bar = 2;
     24 }
     25 
     26 crash(o, 100000);
     27 crash(o, 100000);
     28 crash(p, 100000);
     29 %OptimizeFunctionOnNextCall(crash);
     30 crash(o, 100000);
     31 o = null;
     32 p = null;
     33 crash({}, 0);
     34