v8/test/inspector/regress/regress-crbug-980018-expected.txt
Benedikt Meurer b141fedfed [inspector] Improve class name inference.
Previously having a `Symbol.toStringTag` property holding a string
somewhere in the prototype chain would always take predence over trying
to determine a reasonable name from the "constructor" (in case of
subclassing). This would lead to confusing behavior when diagnosing
objects in DevTools, for example

```js
class A extends URLSearchParams {};
new A()
```

would show `URLSearchParam` as class name for the instance rather than
`A`.

With this CL, we change the lookup logic to explicitly check for
`Symbol.toStringTag` and "constructor" along each step of the prototype
chain (skipping the "constructor" for the leaf object) and pick the
first one that yields a string (that is the function debug name in case
of "constructor").

Fixed: chromium:980018
Change-Id: Ic920b4bae02f965bc383c711f8de89c0de55fcac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3231078
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/main@{#77453}
2021-10-19 11:40:06 +00:00

31 lines
535 B
Plaintext

Regression test for crbug.com/980018
Running test: testClassNames
{
result : {
className : A
description : A(0)
objectId : <objectId>
subtype : map
type : object
}
}
{
result : {
className : ThisIsB
description : ThisIsB(0)
objectId : <objectId>
subtype : map
type : object
}
}
{
result : {
className : ThisIsC
description : ThisIsC(0)
objectId : <objectId>
subtype : map
type : object
}
}