Add ShapeProperty and start using it for property lookups
Categories
(Core :: JavaScript Engine, task, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox89 | --- | fixed |
People
(Reporter: jandem, Assigned: jandem)
References
Details
Attachments
(11 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 | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
This bug will add a ShapeProperty
class that stores a property's attributes and slot number. Property lookups will return a ShapeProperty
or Maybe<ShapeProperty>
.
A nice side-effect of this is that PropertyResult
will store a ShapeProperty
instead of the current Shape*
so it will no longer need rooting (because ShapeProperty
is not a GC thing).
Assignee | ||
Comment 1•4 years ago
|
||
At this point it's just a wrapper around the Shape, but that will change in a later
part of this stack.
Assignee | ||
Comment 2•4 years ago
|
||
Depends on D111801
Assignee | ||
Comment 3•4 years ago
|
||
Some callers now need to create a ShapeProperty first. This is a bit ugly but will be
tidied up in later patches when they use ShapeProperty more.
Depends on D111802
Assignee | ||
Comment 4•4 years ago
|
||
This is preparing for moving it to an internal header in the next patch.
Depends on D111803
Assignee | ||
Comment 5•4 years ago
|
||
This way it can use the internal ShapeProperty type in the next patch.
Depends on D111804
Assignee | ||
Comment 6•4 years ago
|
||
Depends on D111805
Assignee | ||
Comment 7•4 years ago
|
||
Depends on D111806
Assignee | ||
Comment 8•4 years ago
|
||
Depends on D111807
Assignee | ||
Comment 9•4 years ago
|
||
Instead pass the HandleId from the callers.
Depends on D111808
Assignee | ||
Comment 10•4 years ago
|
||
This decouples ShapeProperty from Shape. It also no longer stores a GC pointer,
so we can now easily use it in the module bindings map.
Because ShapeProperty does not store the property's jsid, this removes a few assertions
that are now impossible to implement, for example in IsUninitializedLexicalSlot.
When we use ShapeProperty in a few more places we can remove some of the methods on Shape
that are similar to the ones on ShapeProperty.
Depends on D111809
Assignee | ||
Comment 11•4 years ago
|
||
It no longer stores any GC things.
Depends on D111810
Comment 12•4 years ago
|
||
Comment 13•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/1566e6379e49
https://hg.mozilla.org/mozilla-central/rev/ac54f1320ec9
https://hg.mozilla.org/mozilla-central/rev/07409ca0230a
https://hg.mozilla.org/mozilla-central/rev/1f1de8821c81
https://hg.mozilla.org/mozilla-central/rev/c8e1d2e7ee99
https://hg.mozilla.org/mozilla-central/rev/642e059b633f
https://hg.mozilla.org/mozilla-central/rev/c50f3fb04aa3
https://hg.mozilla.org/mozilla-central/rev/9715e3dfb584
https://hg.mozilla.org/mozilla-central/rev/d67ea8672eea
https://hg.mozilla.org/mozilla-central/rev/1d2a20e9fa43
https://hg.mozilla.org/mozilla-central/rev/4560ff4a728b
Description
•