Improve handling of init-operations in SetPropIRGenerator
Categories
(Core :: JavaScript Engine: JIT, enhancement, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox101 | --- | fixed |
People
(Reporter: anba, Assigned: anba)
References
(Blocks 3 open bugs)
Details
Attachments
(10 files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
Init-operations (JSOp::Init{Hidden,Locked}(Prop,Elem)
) in SetPropIRGenerator sometimes perform additionally work which isn't necessary when defining own properties, for example prototype guards are emitted. Let's improve this!
Assignee | ||
Comment 1•3 years ago
|
||
We don't have to guard the prototype chain when adding an own property.
Assignee | ||
Comment 2•3 years ago
|
||
Non-native objects were previously indirectly filtered through LookupOwnPropertyPure
.
Depends on D143293
Assignee | ||
Comment 3•3 years ago
|
||
This change allows to use the add-slot stub when adding a non-writable
property, for example through InitLockedProp
or InitLockedElem
.
Depends on D143294
Assignee | ||
Comment 4•3 years ago
|
||
Use LookupOwnPropertyPure
instead of HasOwnDataPropertyPure
to match
HasPropIRGenerator
.
Depends on D143295
Assignee | ||
Comment 5•3 years ago
|
||
This change is no longer needed after bug 1547129.
Drive-by change:
- Change
InitPropertyOperation()
to acceptjsbytecode*
for consistency with
InitElemOperation()
.
Depends on D143296
Assignee | ||
Comment 6•3 years ago
|
||
Add extra assertions in preparation for part 9.
Depends on D143297
Assignee | ||
Comment 7•3 years ago
|
||
More assertions in preparation for part 9.
Depends on D143298
Assignee | ||
Comment 8•3 years ago
|
||
This allows to attach InitHiddenProp
and InitHiddenElem
when the property is non-enumerable.
Depends on D143299
Assignee | ||
Comment 9•3 years ago
|
||
Parts 6-7 added assertions that init-prop operations aren't used in unsupported
contexts. Part 8 changed CanAttachNativeSetSlot
to check for the correct
enumerable property attribute.
These changes allow to enable attaching stubs for JSOp::InitHiddenElem
.
Depends on D143300
Assignee | ||
Comment 10•3 years ago
|
||
There isn't any good reason to disallow InitLockedElem
ICs in Warp.
Depends on D143301
Updated•3 years ago
|
Comment 11•3 years ago
|
||
Comment 12•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/4b8bdd2cad0d
https://hg.mozilla.org/mozilla-central/rev/e2ced4199c4b
https://hg.mozilla.org/mozilla-central/rev/d623bd962693
https://hg.mozilla.org/mozilla-central/rev/588afdafa8a3
https://hg.mozilla.org/mozilla-central/rev/510c4b98453e
https://hg.mozilla.org/mozilla-central/rev/f8a167e3f8b6
https://hg.mozilla.org/mozilla-central/rev/6f6d0baf8a17
https://hg.mozilla.org/mozilla-central/rev/931a78c9c710
https://hg.mozilla.org/mozilla-central/rev/5f6ff39a2a62
https://hg.mozilla.org/mozilla-central/rev/52c9b0b48530
Description
•