blob: 8a9a8e53012eab71dc7844879c4b8f6fc5e93193 [file] [log] [blame]
Ben Murdochb8a8cc12014-11-26 15:28:44 +00001// 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
7function Ctor() {
8 this.foo = 1;
9}
10
11var o = new Ctor();
12var p = new Ctor();
13
14
15function 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
26crash(o, 100000);
27crash(o, 100000);
28crash(p, 100000);
29%OptimizeFunctionOnNextCall(crash);
30crash(o, 100000);
31o = null;
32p = null;
33crash({}, 0);