// 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();