mirror of
https://github.com/nodejs/node.git
synced 2025-05-16 21:03:46 +00:00

PR-URL: https://github.com/nodejs/node/pull/47251 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
232 lines
5.8 KiB
Plaintext
232 lines
5.8 KiB
Plaintext
Evaluate static private class member out of class scope in Debugger.evaluateOnCallFrame()
|
|
|
|
class Klass {
|
|
static #field = "string";
|
|
static get #getterOnly() { return "getterOnly"; }
|
|
static set #setterOnly(val) { this.#field = "setterOnlyCalled"; }
|
|
static get #accessor() { return this.#field }
|
|
static set #accessor(val) { this.#field = val; }
|
|
static #method() { return "method"; }
|
|
}
|
|
const obj = new Klass();
|
|
debugger;
|
|
|
|
Running test: evaluatePrivateMembers
|
|
Checking private fields
|
|
Debugger.evaluateOnCallFrame: `Klass.#field`
|
|
{
|
|
type : string
|
|
value : string
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#field = 1`
|
|
{
|
|
description : 1
|
|
type : number
|
|
value : 1
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#field`
|
|
{
|
|
description : 1
|
|
type : number
|
|
value : 1
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#field++`
|
|
{
|
|
description : 1
|
|
type : number
|
|
value : 1
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#field`
|
|
{
|
|
description : 2
|
|
type : number
|
|
value : 2
|
|
}
|
|
Debugger.evaluateOnCallFrame: `++Klass.#field`
|
|
{
|
|
description : 3
|
|
type : number
|
|
value : 3
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#field`
|
|
{
|
|
description : 3
|
|
type : number
|
|
value : 3
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#field -= 3`
|
|
{
|
|
description : 0
|
|
type : number
|
|
value : 0
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#field`
|
|
{
|
|
description : 0
|
|
type : number
|
|
value : 0
|
|
}
|
|
Checking private getter-only accessors
|
|
Debugger.evaluateOnCallFrame: `Klass.#getterOnly`
|
|
{
|
|
type : string
|
|
value : getterOnly
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#getterOnly = 1`
|
|
{
|
|
className : Error
|
|
description : Error: '#getterOnly' was defined without a setter at eval (eval at <anonymous> (:11:1), <anonymous>:1:19) at <anonymous>:11:1
|
|
objectId : <objectId>
|
|
subtype : error
|
|
type : object
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#getterOnly++`
|
|
{
|
|
className : Error
|
|
description : Error: '#getterOnly' was defined without a setter at eval (eval at <anonymous> (:11:1), <anonymous>:1:18) at <anonymous>:11:1
|
|
objectId : <objectId>
|
|
subtype : error
|
|
type : object
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#getterOnly -= 3`
|
|
{
|
|
className : Error
|
|
description : Error: '#getterOnly' was defined without a setter at eval (eval at <anonymous> (:11:1), <anonymous>:1:19) at <anonymous>:11:1
|
|
objectId : <objectId>
|
|
subtype : error
|
|
type : object
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#getterOnly`
|
|
{
|
|
type : string
|
|
value : getterOnly
|
|
}
|
|
Checking private setter-only accessors
|
|
Debugger.evaluateOnCallFrame: `Klass.#setterOnly`
|
|
{
|
|
className : Error
|
|
description : Error: '#setterOnly' was defined without a getter at eval (eval at <anonymous> (:11:1), <anonymous>:1:1) at <anonymous>:11:1
|
|
objectId : <objectId>
|
|
subtype : error
|
|
type : object
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#setterOnly = 1`
|
|
{
|
|
description : 1
|
|
type : number
|
|
value : 1
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#setterOnly++`
|
|
{
|
|
className : Error
|
|
description : Error: '#setterOnly' was defined without a getter at eval (eval at <anonymous> (:11:1), <anonymous>:1:1) at <anonymous>:11:1
|
|
objectId : <objectId>
|
|
subtype : error
|
|
type : object
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#setterOnly -= 3`
|
|
{
|
|
className : Error
|
|
description : Error: '#setterOnly' was defined without a getter at eval (eval at <anonymous> (:11:1), <anonymous>:1:1) at <anonymous>:11:1
|
|
objectId : <objectId>
|
|
subtype : error
|
|
type : object
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#field`
|
|
{
|
|
type : string
|
|
value : setterOnlyCalled
|
|
}
|
|
Checking private accessors
|
|
Debugger.evaluateOnCallFrame: `Klass.#accessor`
|
|
{
|
|
type : string
|
|
value : setterOnlyCalled
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#accessor = 1`
|
|
{
|
|
description : 1
|
|
type : number
|
|
value : 1
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#field`
|
|
{
|
|
description : 1
|
|
type : number
|
|
value : 1
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#accessor++`
|
|
{
|
|
description : 1
|
|
type : number
|
|
value : 1
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#field`
|
|
{
|
|
description : 2
|
|
type : number
|
|
value : 2
|
|
}
|
|
Debugger.evaluateOnCallFrame: `++Klass.#accessor`
|
|
{
|
|
type : undefined
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#field`
|
|
{
|
|
description : 3
|
|
type : number
|
|
value : 3
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#accessor -= 3`
|
|
{
|
|
description : 0
|
|
type : number
|
|
value : 0
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#field`
|
|
{
|
|
description : 0
|
|
type : number
|
|
value : 0
|
|
}
|
|
Checking private methods
|
|
Debugger.evaluateOnCallFrame: `Klass.#method`
|
|
{
|
|
className : Function
|
|
description : #method() { return "method"; }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#method = 1`
|
|
{
|
|
className : Error
|
|
description : Error: Private method '#method' is not writable at eval (eval at <anonymous> (:11:1), <anonymous>:1:15) at <anonymous>:11:1
|
|
objectId : <objectId>
|
|
subtype : error
|
|
type : object
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#method++`
|
|
{
|
|
className : Error
|
|
description : Error: Private method '#method' is not writable at eval (eval at <anonymous> (:11:1), <anonymous>:1:14) at <anonymous>:11:1
|
|
objectId : <objectId>
|
|
subtype : error
|
|
type : object
|
|
}
|
|
Debugger.evaluateOnCallFrame: `++Klass.#method`
|
|
{
|
|
className : Error
|
|
description : Error: Private method '#method' is not writable at eval (eval at <anonymous> (:11:1), <anonymous>:1:9) at <anonymous>:11:1
|
|
objectId : <objectId>
|
|
subtype : error
|
|
type : object
|
|
}
|
|
Debugger.evaluateOnCallFrame: `Klass.#method -= 3`
|
|
{
|
|
className : Error
|
|
description : Error: Private method '#method' is not writable at eval (eval at <anonymous> (:11:1), <anonymous>:1:15) at <anonymous>:11:1
|
|
objectId : <objectId>
|
|
subtype : error
|
|
type : object
|
|
}
|