Reland "[inspector] Consistently format all native accessors as own properties."
This is a reland of ce8cef36aa
Original change's description:
> [inspector] Consistently format all native accessors as own properties.
>
> Previously the V8 inspector would only turn embedder accessors on the
> prototype chain into data properties, but would not do the same for
> ECMAScript builtins, which is kind of inconsistent and weird behavior.
>
> This leaves in the hack that the inspector reports native accessor
> properties as (own) data properties, but now at least the very least
> does so consistently. In the absence of a better solution, we'll go
> with this for now.
>
> Bug: chromium:1076820, chromium:1199247
> Change-Id: I593f909a46cb714dbec629a2944eeb892881ba6f
> Before: https://imgur.com/kPuSldj.png
> After: https://imgur.com/eFau45m.png
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3067319
> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#76059}
Bug: chromium:1076820, chromium:1199247
Change-Id: I11987194b0d0b8b250eda4f8ce0ae5fc743eb27c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3070701
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Kim-Anh Tran <kimanh@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Kim-Anh Tran <kimanh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76084}
This commit is contained in:
parent
d2fd132bcb
commit
fb86158a3b
@ -1201,8 +1201,6 @@ bool ValueMirror::getProperties(v8::Local<v8::Context> context,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool formatAccessorsAsProperties =
|
|
||||||
clientFor(context)->formatAccessorsAsProperties(object);
|
|
||||||
auto iterator = v8::debug::PropertyIterator::Create(context, object);
|
auto iterator = v8::debug::PropertyIterator::Create(context, object);
|
||||||
if (!iterator) {
|
if (!iterator) {
|
||||||
CHECK(tryCatch.HasCaught());
|
CHECK(tryCatch.HasCaught());
|
||||||
@ -1282,8 +1280,7 @@ bool ValueMirror::getProperties(v8::Local<v8::Context> context,
|
|||||||
setterMirror = ValueMirror::create(context, descriptor.set);
|
setterMirror = ValueMirror::create(context, descriptor.set);
|
||||||
}
|
}
|
||||||
isAccessorProperty = getterMirror || setterMirror;
|
isAccessorProperty = getterMirror || setterMirror;
|
||||||
if (formatAccessorsAsProperties && name != "__proto__" &&
|
if (name != "__proto__" && !getterFunction.IsEmpty() &&
|
||||||
!getterFunction.IsEmpty() &&
|
|
||||||
getterFunction->ScriptId() == v8::UnboundScript::kNoScriptId) {
|
getterFunction->ScriptId() == v8::UnboundScript::kNoScriptId) {
|
||||||
v8::TryCatch tryCatch(isolate);
|
v8::TryCatch tryCatch(isolate);
|
||||||
v8::Local<v8::Value> value;
|
v8::Local<v8::Value> value;
|
||||||
|
@ -74,6 +74,11 @@ expression: (function* foo() { yield 1 })()
|
|||||||
|
|
||||||
Running test: entriesInMapAndSet
|
Running test: entriesInMapAndSet
|
||||||
expression: new Map([[1,2]])
|
expression: new Map([[1,2]])
|
||||||
|
{
|
||||||
|
name : size
|
||||||
|
type : number
|
||||||
|
value : 1
|
||||||
|
}
|
||||||
[[Entries]]:
|
[[Entries]]:
|
||||||
[
|
[
|
||||||
[0] : {
|
[0] : {
|
||||||
@ -95,6 +100,11 @@ expression: new Map([[1,2]])
|
|||||||
]
|
]
|
||||||
|
|
||||||
expression: new Set([1])
|
expression: new Set([1])
|
||||||
|
{
|
||||||
|
name : size
|
||||||
|
type : number
|
||||||
|
value : 1
|
||||||
|
}
|
||||||
[[Entries]]:
|
[[Entries]]:
|
||||||
[
|
[
|
||||||
[0] : {
|
[0] : {
|
||||||
|
@ -121,6 +121,27 @@ Running test: testShortTypedArrayPropertiesPreview
|
|||||||
type : number
|
type : number
|
||||||
value : 0
|
value : 0
|
||||||
}
|
}
|
||||||
|
[3] : {
|
||||||
|
name : buffer
|
||||||
|
subtype : arraybuffer
|
||||||
|
type : object
|
||||||
|
value : ArrayBuffer(3)
|
||||||
|
}
|
||||||
|
[4] : {
|
||||||
|
name : byteLength
|
||||||
|
type : number
|
||||||
|
value : 3
|
||||||
|
}
|
||||||
|
[5] : {
|
||||||
|
name : byteOffset
|
||||||
|
type : number
|
||||||
|
value : 0
|
||||||
|
}
|
||||||
|
[6] : {
|
||||||
|
name : length
|
||||||
|
type : number
|
||||||
|
value : 3
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : typedarray
|
subtype : typedarray
|
||||||
type : object
|
type : object
|
||||||
@ -670,6 +691,11 @@ Running test: testSetPropertiesPreview
|
|||||||
]
|
]
|
||||||
overflow : false
|
overflow : false
|
||||||
properties : [
|
properties : [
|
||||||
|
[0] : {
|
||||||
|
name : size
|
||||||
|
type : number
|
||||||
|
value : 3
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : set
|
subtype : set
|
||||||
type : object
|
type : object
|
||||||
@ -727,6 +753,11 @@ Running test: testBigSetPropertiesPreview
|
|||||||
]
|
]
|
||||||
overflow : true
|
overflow : true
|
||||||
properties : [
|
properties : [
|
||||||
|
[0] : {
|
||||||
|
name : size
|
||||||
|
type : number
|
||||||
|
value : 10
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : set
|
subtype : set
|
||||||
type : object
|
type : object
|
||||||
|
@ -623,6 +623,11 @@ Running test: testMap
|
|||||||
description : Map(0)
|
description : Map(0)
|
||||||
overflow : false
|
overflow : false
|
||||||
properties : [
|
properties : [
|
||||||
|
[0] : {
|
||||||
|
name : size
|
||||||
|
type : number
|
||||||
|
value : 0
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : map
|
subtype : map
|
||||||
type : object
|
type : object
|
||||||
@ -659,6 +664,11 @@ Running test: testMap
|
|||||||
]
|
]
|
||||||
overflow : false
|
overflow : false
|
||||||
properties : [
|
properties : [
|
||||||
|
[0] : {
|
||||||
|
name : size
|
||||||
|
type : number
|
||||||
|
value : 1
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : map
|
subtype : map
|
||||||
type : object
|
type : object
|
||||||
@ -681,6 +691,11 @@ Running test: testMap
|
|||||||
description : Map(1)
|
description : Map(1)
|
||||||
overflow : true
|
overflow : true
|
||||||
properties : [
|
properties : [
|
||||||
|
[0] : {
|
||||||
|
name : size
|
||||||
|
type : number
|
||||||
|
value : 1
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : map
|
subtype : map
|
||||||
type : object
|
type : object
|
||||||
@ -689,6 +704,11 @@ Running test: testMap
|
|||||||
description : Map(1)
|
description : Map(1)
|
||||||
overflow : true
|
overflow : true
|
||||||
properties : [
|
properties : [
|
||||||
|
[0] : {
|
||||||
|
name : size
|
||||||
|
type : number
|
||||||
|
value : 1
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : map
|
subtype : map
|
||||||
type : object
|
type : object
|
||||||
@ -697,6 +717,11 @@ Running test: testMap
|
|||||||
]
|
]
|
||||||
overflow : false
|
overflow : false
|
||||||
properties : [
|
properties : [
|
||||||
|
[0] : {
|
||||||
|
name : size
|
||||||
|
type : number
|
||||||
|
value : 1
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : map
|
subtype : map
|
||||||
type : object
|
type : object
|
||||||
@ -777,6 +802,11 @@ Running test: testMap
|
|||||||
type : number
|
type : number
|
||||||
value : 42
|
value : 42
|
||||||
}
|
}
|
||||||
|
[1] : {
|
||||||
|
name : size
|
||||||
|
type : number
|
||||||
|
value : 1
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : map
|
subtype : map
|
||||||
type : object
|
type : object
|
||||||
@ -966,6 +996,11 @@ Running test: testSet
|
|||||||
]
|
]
|
||||||
overflow : false
|
overflow : false
|
||||||
properties : [
|
properties : [
|
||||||
|
[0] : {
|
||||||
|
name : size
|
||||||
|
type : number
|
||||||
|
value : 1
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : set
|
subtype : set
|
||||||
type : object
|
type : object
|
||||||
@ -1039,6 +1074,11 @@ Running test: testSet
|
|||||||
]
|
]
|
||||||
overflow : true
|
overflow : true
|
||||||
properties : [
|
properties : [
|
||||||
|
[0] : {
|
||||||
|
name : size
|
||||||
|
type : number
|
||||||
|
value : 7
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : set
|
subtype : set
|
||||||
type : object
|
type : object
|
||||||
@ -1728,6 +1768,27 @@ Running test: testTypedArray
|
|||||||
type : number
|
type : number
|
||||||
value : 2
|
value : 2
|
||||||
}
|
}
|
||||||
|
[3] : {
|
||||||
|
name : buffer
|
||||||
|
subtype : arraybuffer
|
||||||
|
type : object
|
||||||
|
value : ArrayBuffer(2)
|
||||||
|
}
|
||||||
|
[4] : {
|
||||||
|
name : byteLength
|
||||||
|
type : number
|
||||||
|
value : 2
|
||||||
|
}
|
||||||
|
[5] : {
|
||||||
|
name : byteOffset
|
||||||
|
type : number
|
||||||
|
value : 0
|
||||||
|
}
|
||||||
|
[6] : {
|
||||||
|
name : length
|
||||||
|
type : number
|
||||||
|
value : 2
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : typedarray
|
subtype : typedarray
|
||||||
type : object
|
type : object
|
||||||
@ -2266,6 +2327,11 @@ Running test: testArrayBuffer
|
|||||||
description : ArrayBuffer(0)
|
description : ArrayBuffer(0)
|
||||||
overflow : false
|
overflow : false
|
||||||
properties : [
|
properties : [
|
||||||
|
[0] : {
|
||||||
|
name : byteLength
|
||||||
|
type : number
|
||||||
|
value : 0
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : arraybuffer
|
subtype : arraybuffer
|
||||||
type : object
|
type : object
|
||||||
@ -2284,6 +2350,11 @@ Running test: testArrayBuffer
|
|||||||
description : ArrayBuffer(400)
|
description : ArrayBuffer(400)
|
||||||
overflow : false
|
overflow : false
|
||||||
properties : [
|
properties : [
|
||||||
|
[0] : {
|
||||||
|
name : byteLength
|
||||||
|
type : number
|
||||||
|
value : 400
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : arraybuffer
|
subtype : arraybuffer
|
||||||
type : object
|
type : object
|
||||||
@ -2304,6 +2375,22 @@ Running test: testDataView
|
|||||||
description : DataView(16)
|
description : DataView(16)
|
||||||
overflow : false
|
overflow : false
|
||||||
properties : [
|
properties : [
|
||||||
|
[0] : {
|
||||||
|
name : buffer
|
||||||
|
subtype : arraybuffer
|
||||||
|
type : object
|
||||||
|
value : ArrayBuffer(16)
|
||||||
|
}
|
||||||
|
[1] : {
|
||||||
|
name : byteLength
|
||||||
|
type : number
|
||||||
|
value : 16
|
||||||
|
}
|
||||||
|
[2] : {
|
||||||
|
name : byteOffset
|
||||||
|
type : number
|
||||||
|
value : 0
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : dataview
|
subtype : dataview
|
||||||
type : object
|
type : object
|
||||||
@ -2322,6 +2409,22 @@ Running test: testDataView
|
|||||||
description : DataView(4)
|
description : DataView(4)
|
||||||
overflow : false
|
overflow : false
|
||||||
properties : [
|
properties : [
|
||||||
|
[0] : {
|
||||||
|
name : buffer
|
||||||
|
subtype : arraybuffer
|
||||||
|
type : object
|
||||||
|
value : ArrayBuffer(16)
|
||||||
|
}
|
||||||
|
[1] : {
|
||||||
|
name : byteLength
|
||||||
|
type : number
|
||||||
|
value : 4
|
||||||
|
}
|
||||||
|
[2] : {
|
||||||
|
name : byteOffset
|
||||||
|
type : number
|
||||||
|
value : 12
|
||||||
|
}
|
||||||
]
|
]
|
||||||
subtype : dataview
|
subtype : dataview
|
||||||
type : object
|
type : object
|
||||||
|
Loading…
Reference in New Issue
Block a user