Replace NativeObject::updateSlotsForSpan with more specialized functions
Categories
(Core :: JavaScript Engine, task, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox106 | --- | fixed |
People
(Reporter: jandem, Assigned: jandem)
Details
Attachments
(7 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 |
updateSlotsForSpan
is very generic: it's used for both adding and removing slots. We can simplify and optimize some code in this area by using more specialized functions for the different cases.
Assignee | ||
Comment 1•3 years ago
|
||
Rename setShapeAndUpdateSlotsForNewSlot
to setShapeAndAddNewSlot
and use a
faster path for the case where we don't need to (re)allocate dynamic slots.
Move more of the growSlots
code out of line.
Assignee | ||
Comment 2•3 years ago
|
||
The goal is to get rid of setShapeAndUpdateSlots
in later patches.
Depends on D156953
Assignee | ||
Comment 3•3 years ago
|
||
Depends on D156954
Assignee | ||
Comment 4•3 years ago
|
||
Rename setShapeAndUpdateSlots
to setShapeAndAddNewSlots
to make it clearer
we're only adding slots.
This duplicates some code from updateSlotsForSpan
, but that function will be
removed in a later patch.
Depends on D156955
Assignee | ||
Comment 5•3 years ago
|
||
ensureSlotsForDictionaryObject
will be removed in a later patch.
Depends on D156956
Assignee | ||
Comment 6•3 years ago
|
||
Depends on D156957
Assignee | ||
Comment 7•3 years ago
|
||
mozilla::Array
has release assertions for bounds checks and they show up
in some hot code paths. This is some of the hottest code in the engine so
switch to plain C++ arrays.
Depends on D156958
Comment 9•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/bb97f5816720
https://hg.mozilla.org/mozilla-central/rev/f9bb1e81d184
https://hg.mozilla.org/mozilla-central/rev/198dbc501dcb
https://hg.mozilla.org/mozilla-central/rev/1f1189d91f59
https://hg.mozilla.org/mozilla-central/rev/760fc689070a
https://hg.mozilla.org/mozilla-central/rev/c459020035cc
https://hg.mozilla.org/mozilla-central/rev/4f53ae8e62ee
Description
•