'use strict'; require('../common'); // This test ensures that util.inspect logs getters // which access this. const assert = require('assert'); const { inspect } = require('util'); { 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' + '}', ); }