Symbol.toStringTag is incorrectly defined on the global object, rather than on its prototype
Categories
(Core :: DOM: Bindings (WebIDL), defect, P3)
Tracking
()
People
(Reporter: e7358d9c, Assigned: peterv)
References
Details
Attachments
(2 files)
This was discovered while working on wpt#27239.
The Symbol.toStringTag
property is always supposed to be on the interface prototype object, because the class string is specified for the prototype, regardless of whether the interface is a global object.
Updated•3 years ago
|
Assignee | ||
Comment 1•3 years ago
|
||
For [Global] WebIDL interfaces, properties from the property array are installed
on the object itself, instead of on the prototype. To fix the bug I changed how
we install the @@toStringTag property, instead of adding it in the property
array of every interface we'll now instead install the property directly in
CreateInterfaceObject, which is also a codesize win. This does mean that we need
to look up the value dynamically in XrayResolveOwnProperty (we can't resolve it
from the property array anymore), but luckily we can use
NamesOfInterfacesWithProtos for that.
Updated•3 years ago
|
Pushed by pvanderbeken@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/3cc5c27ee349 Symbol.toStringTag is incorrectly defined on the global object, rather than on its prototype. r=edgar.
Comment 3•3 years ago
|
||
bugherder |
Updated•3 years ago
|
Description
•