Evaluate private class member out of class scope in Runtime.evaluate() class Klass { #field = "string"; get #getterOnly() { return "getterOnly"; } set #setterOnly(val) { this.#field = "setterOnlyCalled"; } get #accessor() { return this.#field } set #accessor(val) { this.#field = val; } #method() { return "method"; } } const obj = new Klass(); Running test: evaluatePrivateMembers Checking private fields Runtime.evaluate: `obj.#field` { type : string value : string } Runtime.evaluate: `obj.#field = 1` { description : 1 type : number value : 1 } Runtime.evaluate: `obj.#field` { description : 1 type : number value : 1 } Runtime.evaluate: `obj.#field++` { description : 1 type : number value : 1 } Runtime.evaluate: `obj.#field` { description : 2 type : number value : 2 } Runtime.evaluate: `++obj.#field` { description : 3 type : number value : 3 } Runtime.evaluate: `obj.#field` { description : 3 type : number value : 3 } Runtime.evaluate: `obj.#field -= 3` { description : 0 type : number value : 0 } Runtime.evaluate: `obj.#field` { description : 0 type : number value : 0 } Checking private getter-only accessors Runtime.evaluate: `obj.#getterOnly` { type : string value : getterOnly } Runtime.evaluate: `obj.#getterOnly = 1` { className : Error description : Error: '#getterOnly' was defined without a setter at :1:17 objectId : subtype : error type : object } Runtime.evaluate: `obj.#getterOnly++` { className : Error description : Error: '#getterOnly' was defined without a setter at :1:16 objectId : subtype : error type : object } Runtime.evaluate: `obj.#getterOnly -= 3` { className : Error description : Error: '#getterOnly' was defined without a setter at :1:17 objectId : subtype : error type : object } Runtime.evaluate: `obj.#getterOnly` { type : string value : getterOnly } Checking private setter-only accessors Runtime.evaluate: `obj.#setterOnly` { className : Error description : Error: '#setterOnly' was defined without a getter at :1:1 objectId : subtype : error type : object } Runtime.evaluate: `obj.#setterOnly = 1` { description : 1 type : number value : 1 } Runtime.evaluate: `obj.#setterOnly++` { className : Error description : Error: '#setterOnly' was defined without a getter at :1:1 objectId : subtype : error type : object } Runtime.evaluate: `obj.#setterOnly -= 3` { className : Error description : Error: '#setterOnly' was defined without a getter at :1:1 objectId : subtype : error type : object } Runtime.evaluate: `obj.#field` { type : string value : setterOnlyCalled } Checking private accessors Runtime.evaluate: `obj.#accessor` { type : string value : setterOnlyCalled } Runtime.evaluate: `obj.#accessor = 1` { description : 1 type : number value : 1 } Runtime.evaluate: `obj.#field` { description : 1 type : number value : 1 } Runtime.evaluate: `obj.#accessor++` { description : 1 type : number value : 1 } Runtime.evaluate: `obj.#field` { description : 2 type : number value : 2 } Runtime.evaluate: `++obj.#accessor` { type : undefined } Runtime.evaluate: `obj.#field` { description : 3 type : number value : 3 } Runtime.evaluate: `obj.#accessor -= 3` { description : 0 type : number value : 0 } Runtime.evaluate: `obj.#field` { description : 0 type : number value : 0 } Checking private methods Runtime.evaluate: `obj.#method` { className : Function description : #method() { return "method"; } objectId : type : function } Runtime.evaluate: `obj.#method = 1` { className : Error description : Error: Private method '#method' is not writable at :1:13 objectId : subtype : error type : object } Runtime.evaluate: `obj.#method++` { className : Error description : Error: Private method '#method' is not writable at :1:12 objectId : subtype : error type : object } Runtime.evaluate: `++obj.#method` { className : Error description : Error: Private method '#method' is not writable at :1:7 objectId : subtype : error type : object } Runtime.evaluate: `obj.#method -= 3` { className : Error description : Error: Private method '#method' is not writable at :1:13 objectId : subtype : error type : object }