Defer Allocation of RegExp objects in BinAST parsing
Categories
(Core :: JavaScript Engine, task, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox76 | --- | fixed |
People
(Reporter: mgaudet, Assigned: anba)
References
Details
Attachments
(26 files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
Bug 1619001 - Part 20: Remove FunctionBox::object() in favour of FunctionBox::function(). r=mgaudet!
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
BinAST parsing still eagerly allocates its RegExp objects
We should change this to defer the same way the regular parser does
Reporter | ||
Comment 1•5 years ago
|
||
(There's some complexity here about how to get this to work with the binast format)
Updated•5 years ago
|
Assignee | ||
Comment 2•5 years ago
|
||
Updated•5 years ago
|
Assignee | ||
Comment 3•5 years ago
|
||
- Remove
asObjectBox
because it is never called. - Remove
isObjectBox
because it always returnstrue
after the last part.
Depends on D65967
Assignee | ||
Comment 4•5 years ago
|
||
This change allows us to verify that the ObjectBox version of newRegExp() is
indeed only needed for BinAST and makes it possible to remove its support code
from the non-BinAST parser in the next part.
Depends on D65968
Assignee | ||
Comment 5•5 years ago
|
||
After the last part, newObjectBox()
is only called for the BinAST parser,
which allows us to move the method into BinASTParserBase
. And then we can
remove the remaining non-BinAST parser related newObjectBox
functionality.
Depends on D65969
Assignee | ||
Comment 6•5 years ago
|
||
Depends on D65970
Assignee | ||
Comment 7•5 years ago
|
||
Depends on D65971
Assignee | ||
Comment 8•5 years ago
|
||
Depends on D65972
Assignee | ||
Comment 9•5 years ago
|
||
TraceListNode is now only used for JSFunctions via FunctionBox.
Depends on D65973
Assignee | ||
Comment 10•5 years ago
|
||
Depends on D65974
Assignee | ||
Comment 11•5 years ago
|
||
Depends on D65975
Assignee | ||
Comment 12•5 years ago
|
||
Depends on D65976
Assignee | ||
Comment 13•5 years ago
|
||
Change ParserSharedBase::traceListHead_
and TraceListNode::traceLink
to use
FunctionBox*
in preparation to collapse TraceListNode
and ObjectBox
into
FunctionBox
.
Depends on D65977
Assignee | ||
Comment 14•5 years ago
|
||
Depends on D65978
Assignee | ||
Comment 15•5 years ago
|
||
Depends on D65981
Assignee | ||
Comment 16•5 years ago
|
||
Depends on D65982
Assignee | ||
Comment 17•5 years ago
|
||
This code became obsolete after part 6.
Depends on D65984
Assignee | ||
Comment 18•5 years ago
|
||
Depends on D65985
Assignee | ||
Comment 19•5 years ago
|
||
Both functions are no longer used after the last part.
Depends on D65986
Assignee | ||
Comment 20•5 years ago
|
||
Depends on D65987
Assignee | ||
Comment 21•5 years ago
|
||
Most of the current code uses function()
, so keep that method for now, even
though that's slightly inconsistent with the field name and with hasObject()
.
Depends on D65989
Assignee | ||
Comment 22•5 years ago
|
||
Depends on D65990
Assignee | ||
Comment 23•5 years ago
|
||
Depends on D65991
Assignee | ||
Comment 24•5 years ago
|
||
Depends on D65992
Assignee | ||
Comment 25•5 years ago
|
||
Update the #includes after the code changes from the previous parts. The updated
includes are based on IWYU, but aren't exhaustive, for example not all
transitive includes were changed to explicit includes.
Depends on D65993
Assignee | ||
Comment 26•5 years ago
|
||
Depends on D65995
Assignee | ||
Comment 27•5 years ago
|
||
RegExpLiteral::create
is guaranteed to return a new object on each
invocation, so we no longer have to call CloneRegExpObject
.
Drive-by fix:
Add missing OOM handling when creating a BigInt value.
Depends on D65996
Comment 28•5 years ago
|
||
Comment 29•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/d4a68e391c2d
https://hg.mozilla.org/mozilla-central/rev/11f296810eaa
https://hg.mozilla.org/mozilla-central/rev/eb3bc1449e37
https://hg.mozilla.org/mozilla-central/rev/f6406ceba600
https://hg.mozilla.org/mozilla-central/rev/d6b9d858b31a
https://hg.mozilla.org/mozilla-central/rev/9ba489ab3a92
https://hg.mozilla.org/mozilla-central/rev/ff17235a8f7e
https://hg.mozilla.org/mozilla-central/rev/7e60b70fdbd5
https://hg.mozilla.org/mozilla-central/rev/9a90ee5c0bfa
https://hg.mozilla.org/mozilla-central/rev/b4d0b2a3cd0d
https://hg.mozilla.org/mozilla-central/rev/13b6b98884d7
https://hg.mozilla.org/mozilla-central/rev/406c2c828807
https://hg.mozilla.org/mozilla-central/rev/0189e180adc9
https://hg.mozilla.org/mozilla-central/rev/47fea0306941
https://hg.mozilla.org/mozilla-central/rev/161e40eb6917
https://hg.mozilla.org/mozilla-central/rev/5b69b3fcddc6
https://hg.mozilla.org/mozilla-central/rev/0d0e74c683f9
https://hg.mozilla.org/mozilla-central/rev/d9d7a349efb5
https://hg.mozilla.org/mozilla-central/rev/f39eabd355c6
https://hg.mozilla.org/mozilla-central/rev/ec8d746c8e8d
https://hg.mozilla.org/mozilla-central/rev/cd057dbb1648
https://hg.mozilla.org/mozilla-central/rev/1d905835c68f
https://hg.mozilla.org/mozilla-central/rev/fd93c6fcf0f9
https://hg.mozilla.org/mozilla-central/rev/c3282893b4a8
https://hg.mozilla.org/mozilla-central/rev/1a1150770311
https://hg.mozilla.org/mozilla-central/rev/be95fe89099f
Description
•