// Copyright 2019 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. class Outer { constructor(o) { this.x = o; } } class Inner { constructor(o) { this.y = o; } } class ArrayHolder { constructor(o) { this.array = []; this.array[1] = o; } } const root = {}; const outer = new Outer( new ArrayHolder( new Inner(root) ) ); root.first = new Proxy(outer, outer); JSON.stringify(root);