| // 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 --expose-gc --verify-heap |
| |
| function A() {} |
| |
| function g1() { |
| var obj = new A(); |
| obj.v0 = 0; |
| obj.v1 = 0; |
| obj.v2 = 0; |
| obj.v3 = 0; |
| obj.v4 = 0; |
| obj.v5 = 0; |
| obj.v6 = 0; |
| obj.v7 = 0; |
| obj.v8 = 0; |
| obj.v9 = 0; |
| return obj; |
| } |
| |
| function g2() { |
| return new A(); |
| } |
| |
| var o = g1(); |
| %OptimizeFunctionOnNextCall(g2); |
| g2(); |
| o = null; |
| gc(); |
| |
| for (var i = 0; i < 20; i++) { |
| var o = new A(); |
| } |
| g2(); |
| |
| gc(); // Boom! |