Cleanup run-once-lambda/singleton handling in BCE
Categories
(Core :: JavaScript Engine, task, P1)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox77 | --- | fixed |
People
(Reporter: tcampbell, Assigned: tcampbell)
References
Details
Attachments
(4 files)
The TreatAsRunOnce flag is a source of the BytecodeEmitter reading and writing from live BaseScript instances which we would like to avoid for Project Stencil. These patches also try to unify more of the lazy and non-lazy paths in the BCE.
| Assignee | ||
Comment 1•5 years ago
|
||
Depends on D70726
| Assignee | ||
Comment 2•5 years ago
|
||
Use the same conditions for qualifying an inner function as a run-once-lambda
between the lazy and non-lazy code paths. Use the FunctionBox::immutableFlags
so that this works well with delazification too.
Depends on D70778
| Assignee | ||
Comment 3•5 years ago
|
||
Instead rely on consistent definitions of the TreatAsRunOnce flag on the
SharedContext. Also simplify the BCE::check{RunOnce,Singleton}Context
accessors. Note that the TreatAsRunOnce flag indicates the script is expected
to run-once, but the BCE also checks for isInLoop to decide if current
bytecode location within the script should still be considered run-once.
Depends on D70779
| Assignee | ||
Comment 4•5 years ago
|
||
Move the TI heuristic into BCE::emitFunction where the other special mutation
of inner-functions is happening.
Depends on D70780
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Comment 6•5 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/f7cd6b6c2334
https://hg.mozilla.org/mozilla-central/rev/19a37953cb0d
https://hg.mozilla.org/mozilla-central/rev/2c04486aa1e7
https://hg.mozilla.org/mozilla-central/rev/90bc2f89ea84
Description
•