b1f5eeabe5
This is a reland of 2b94e5677f
Original change's description:
> [inspector] Report [[Prototype]] as internal property.
>
> Previously the inspector was trying to add a special `__proto__`
> property to every JSObject, which looked and behaved like a real
> data property on the object. But this is confusing to developers
> since `__proto__` is not a real data property, but usually an
> accessor property on the `Object.prototype`.
>
> Additionally all other internal properties are reported using the
> [[Name]] notation, with the [[Prototype]] having been the strange
> outlier.
>
> Drive-by-cleanup: Use an ArrayList to collect the name/value pairs
> inside Runtime::GetInternalProperties(), which makes this function
> more readable and easier to add things.
>
> Bug: chromuium:1162229
> Fixed: chromium:1197019
> Screenshot: https://imgur.com/a/b7TZ32s.png
> Change-Id: Ic4c1e35e2e65f90619fcc12bf3a72806cadb0794
> Doc: http://doc/1Xetnc9s6r0yy4LnPbqeCwsnsOtBlvJsV4OCdXMZ1wCM
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2814565
> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73881}
Bug: chromuium:1162229, chromium:1197019
Screenshot: https://imgur.com/a/b7TZ32s.png
Doc: http://doc/1Xetnc9s6r0yy4LnPbqeCwsnsOtBlvJsV4OCdXMZ1wCM
Change-Id: Ie1e2276b385b18a5f865fdae583d1ce0101157c0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2820970
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73899}
135 lines
3.5 KiB
Plaintext
135 lines
3.5 KiB
Plaintext
Tests Runtime.getProperties.
|
|
|
|
Running test: testObject
|
|
{
|
|
id : <messageId>
|
|
result : {
|
|
internalProperties : [
|
|
[0] : {
|
|
name : [[Prototype]]
|
|
value : {
|
|
className : Object
|
|
description : Object
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
}
|
|
]
|
|
result : [
|
|
[0] : {
|
|
configurable : true
|
|
enumerable : true
|
|
isOwn : true
|
|
name : a
|
|
value : {
|
|
description : 1
|
|
type : number
|
|
value : 1
|
|
}
|
|
writable : true
|
|
}
|
|
]
|
|
}
|
|
}
|
|
{
|
|
id : <messageId>
|
|
result : {
|
|
internalProperties : [
|
|
[0] : {
|
|
name : [[Prototype]]
|
|
value : {
|
|
className : Object
|
|
description : Object
|
|
objectId : <objectId>
|
|
type : object
|
|
}
|
|
}
|
|
]
|
|
result : [
|
|
[0] : {
|
|
configurable : false
|
|
enumerable : true
|
|
isOwn : true
|
|
name : d
|
|
value : {
|
|
description : 42
|
|
type : number
|
|
value : 42
|
|
}
|
|
writable : false
|
|
}
|
|
[1] : {
|
|
configurable : false
|
|
enumerable : false
|
|
isOwn : true
|
|
name : a
|
|
value : {
|
|
description : 42
|
|
type : number
|
|
value : 42
|
|
}
|
|
writable : false
|
|
}
|
|
[2] : {
|
|
configurable : false
|
|
enumerable : false
|
|
isOwn : true
|
|
name : b
|
|
value : {
|
|
description : 42
|
|
type : number
|
|
value : 42
|
|
}
|
|
writable : true
|
|
}
|
|
[3] : {
|
|
configurable : true
|
|
enumerable : false
|
|
isOwn : true
|
|
name : c
|
|
value : {
|
|
description : 42
|
|
type : number
|
|
value : 42
|
|
}
|
|
writable : false
|
|
}
|
|
[4] : {
|
|
configurable : false
|
|
enumerable : false
|
|
get : {
|
|
className : Function
|
|
description : () => 42
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
isOwn : true
|
|
name : e
|
|
set : {
|
|
className : Function
|
|
description : () => 0
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
}
|
|
[5] : {
|
|
configurable : false
|
|
enumerable : false
|
|
isOwn : true
|
|
name : Symbol(42)
|
|
symbol : {
|
|
description : Symbol(42)
|
|
objectId : <objectId>
|
|
type : symbol
|
|
}
|
|
value : {
|
|
description : 239
|
|
type : number
|
|
value : 239
|
|
}
|
|
writable : false
|
|
}
|
|
]
|
|
}
|
|
}
|