Replace FunctionBox::finish with a system supported by stencil
Categories
(Core :: JavaScript Engine, enhancement, P3)
Tracking
()
People
(Reporter: mgaudet, Assigned: tcampbell)
References
Details
BCEScriptStencil relies on GCThingsList's FunctionBox linked list in order to set enclosing scopes.
This needs to be replaced with a system that doesn't depend on FunctionBoxes, as they're not going to survive the final version of stencil where we move the stencil to another thread.
(An aside: The semantics of stealGCThingList make GCThingList::finish quite confusing. This is because In BCEScriptStencil
's constructor, the vector inside of GCThingList is moved into BCEScriptStencil
, however, the linked list of functionboxes is still stored on the GCthingList; so it seems a bit funny to do that after the backing store of the GCThingList was taken, despite the fact that it just works out.
This is perhaps just a naming issue)
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
Bug 1636795 is a half-step here. It batches the calls until the end of compilation, but still reads off the function box. The long-term will be to have that batch process generate a small vector of updates that can be applied by mutator.
Assignee | ||
Comment 2•4 years ago
|
||
This is no longer a blocker for BCE deferral. We will defer past BCE by using the FunctionBox to hold the bits. This bug will still need to exist to get away from the LifoAlloc lifetime.
Assignee | ||
Comment 3•4 years ago
|
||
The direct concern has been fixed by Bug 1641202. Future enhancements here can be done under Bug 1605101, but they are no longer blockers.
Description
•