1'use strict'; 2 3require('../common'); 4 5// This test ensures that util.inspect logs getters 6// which access this. 7 8const assert = require('assert'); 9 10const { inspect } = require('util'); 11 12{ 13 class X { 14 constructor() { 15 this._y = 123; 16 } 17 18 get y() { 19 return this._y; 20 } 21 } 22 23 const result = inspect(new X(), { 24 getters: true, 25 showHidden: true 26 }); 27 28 assert.strictEqual( 29 result, 30 'X { _y: 123, [y]: [Getter: 123] }' 31 ); 32} 33 34// Regression test for https://github.com/nodejs/node/issues/37054 35{ 36 class A { 37 constructor(B) { 38 this.B = B; 39 } 40 get b() { 41 return this.B; 42 } 43 } 44 45 class B { 46 constructor() { 47 this.A = new A(this); 48 } 49 get a() { 50 return this.A; 51 } 52 } 53 54 const result = inspect(new B(), { 55 depth: 1, 56 getters: true, 57 showHidden: true 58 }); 59 60 assert.strictEqual( 61 result, 62 '<ref *1> B {\n' + 63 ' A: A { B: [Circular *1], [b]: [Getter] [Circular *1] },\n' + 64 ' [a]: [Getter] A { B: [Circular *1], [b]: [Getter] [Circular *1] }\n' + 65 '}', 66 ); 67} 68