Files
Kmake/deps/v8/test/inspector/debugger/evaluate-on-call-frame-private-class-member-expected.txt

232 lines
5.7 KiB
Plaintext
Raw Normal View History

2026-05-26 23:36:42 -07:00
Evaluate private class member out of class scope in Debugger.evaluateOnCallFrame()
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();
debugger;
Running test: evaluatePrivateMembers
Checking private fields
Debugger.evaluateOnCallFrame: `obj.#field`
{
type : string
value : string
}
Debugger.evaluateOnCallFrame: `obj.#field = 1`
{
description : 1
type : number
value : 1
}
Debugger.evaluateOnCallFrame: `obj.#field`
{
description : 1
type : number
value : 1
}
Debugger.evaluateOnCallFrame: `obj.#field++`
{
description : 1
type : number
value : 1
}
Debugger.evaluateOnCallFrame: `obj.#field`
{
description : 2
type : number
value : 2
}
Debugger.evaluateOnCallFrame: `++obj.#field`
{
description : 3
type : number
value : 3
}
Debugger.evaluateOnCallFrame: `obj.#field`
{
description : 3
type : number
value : 3
}
Debugger.evaluateOnCallFrame: `obj.#field -= 3`
{
description : 0
type : number
value : 0
}
Debugger.evaluateOnCallFrame: `obj.#field`
{
description : 0
type : number
value : 0
}
Checking private getter-only accessors
Debugger.evaluateOnCallFrame: `obj.#getterOnly`
{
type : string
value : getterOnly
}
Debugger.evaluateOnCallFrame: `obj.#getterOnly = 1`
{
className : Error
description : Error: '#getterOnly' was defined without a setter at eval (eval at <anonymous> (:11:1), <anonymous>:1:17) at <anonymous>:11:1
objectId : <objectId>
subtype : error
type : object
}
Debugger.evaluateOnCallFrame: `obj.#getterOnly++`
{
className : Error
description : Error: '#getterOnly' was defined without a setter at eval (eval at <anonymous> (:11:1), <anonymous>:1:16) at <anonymous>:11:1
objectId : <objectId>
subtype : error
type : object
}
Debugger.evaluateOnCallFrame: `obj.#getterOnly -= 3`
{
className : Error
description : Error: '#getterOnly' was defined without a setter at eval (eval at <anonymous> (:11:1), <anonymous>:1:17) at <anonymous>:11:1
objectId : <objectId>
subtype : error
type : object
}
Debugger.evaluateOnCallFrame: `obj.#getterOnly`
{
type : string
value : getterOnly
}
Checking private setter-only accessors
Debugger.evaluateOnCallFrame: `obj.#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: `obj.#setterOnly = 1`
{
description : 1
type : number
value : 1
}
Debugger.evaluateOnCallFrame: `obj.#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: `obj.#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: `obj.#field`
{
type : string
value : setterOnlyCalled
}
Checking private accessors
Debugger.evaluateOnCallFrame: `obj.#accessor`
{
type : string
value : setterOnlyCalled
}
Debugger.evaluateOnCallFrame: `obj.#accessor = 1`
{
description : 1
type : number
value : 1
}
Debugger.evaluateOnCallFrame: `obj.#field`
{
description : 1
type : number
value : 1
}
Debugger.evaluateOnCallFrame: `obj.#accessor++`
{
description : 1
type : number
value : 1
}
Debugger.evaluateOnCallFrame: `obj.#field`
{
description : 2
type : number
value : 2
}
Debugger.evaluateOnCallFrame: `++obj.#accessor`
{
type : undefined
}
Debugger.evaluateOnCallFrame: `obj.#field`
{
description : 3
type : number
value : 3
}
Debugger.evaluateOnCallFrame: `obj.#accessor -= 3`
{
description : 0
type : number
value : 0
}
Debugger.evaluateOnCallFrame: `obj.#field`
{
description : 0
type : number
value : 0
}
Checking private methods
Debugger.evaluateOnCallFrame: `obj.#method`
{
className : Function
description : #method() { return "method"; }
objectId : <objectId>
type : function
}
Debugger.evaluateOnCallFrame: `obj.#method = 1`
{
className : Error
description : Error: Private method '#method' is not writable at eval (eval at <anonymous> (:11:1), <anonymous>:1:13) at <anonymous>:11:1
objectId : <objectId>
subtype : error
type : object
}
Debugger.evaluateOnCallFrame: `obj.#method++`
{
className : Error
description : Error: Private method '#method' is not writable at eval (eval at <anonymous> (:11:1), <anonymous>:1:12) at <anonymous>:11:1
objectId : <objectId>
subtype : error
type : object
}
Debugger.evaluateOnCallFrame: `++obj.#method`
{
className : Error
description : Error: Private method '#method' is not writable at eval (eval at <anonymous> (:11:1), <anonymous>:1:7) at <anonymous>:11:1
objectId : <objectId>
subtype : error
type : object
}
Debugger.evaluateOnCallFrame: `obj.#method -= 3`
{
className : Error
description : Error: Private method '#method' is not writable at eval (eval at <anonymous> (:11:1), <anonymous>:1:13) at <anonymous>:11:1
objectId : <objectId>
subtype : error
type : object
}