// This test ensures that util.inspect logs getters which access this. import assert from "assert"; import { inspect } from "util"; test("no assertion failures", () => { { class X { constructor() { this._y = 123; } get y() { return this._y; } } const result = inspect(new X(), { getters: true, showHidden: true, }); assert.strictEqual(result, "X { _y: 123, [y]: [Getter: 123] }"); } // Regression test for https://github.com/nodejs/node/issues/37054 { class A { constructor(B) { this.B = B; } get b() { return this.B; } } class B { constructor() { this.A = new A(this); } get a() { return this.A; } } const result = inspect(new B(), { depth: 1, getters: true, showHidden: true, }); assert.strictEqual( result, " B {\n" + " A: A { B: [Circular *1], [b]: [Getter] [Circular *1] },\n" + " [a]: [Getter] A { B: [Circular *1], [b]: [Getter] [Circular *1] }\n" + "}", ); } });