Closed Bug 1653248 Opened 11 months ago Closed 11 months ago

Cleanup ScopeCreationData stencil structures


(Core :: JavaScript Engine, task, P1)




81 Branch
Tracking Status
firefox81 --- fixed


(Reporter: tcampbell, Assigned: tcampbell)




(6 files)

After Bug 1651880, we allocate the js::Scopes from ScopeCreationData in a bulk operation. This now allows us to simplify the ScopeCreationData type to not have js::Scope point inline.


  • Move scope_ field from ScopeCreationData to CompilationInfo
  • Merge EnvironmentShapeCreationData with ScopeCreationData
  • Replace JSClass* member with enum or make implicit
  • Replace use of AbstractScopePtr if possible
  • Rename to ScopeStencil or similar.
  • Eliminate BindingIter field if possible.
Severity: -- → N/A
Blocks: 1653895
Depends on: 1655052

TODO: Why does this fail tests?

Depends on D84886

Replace this field with a vector on CompilationInfo in a similar way to how
JSFunctions are handled.

Depends on D84887

Replace the enclosing scope field with a Maybe<ScopeIndex> field. When the
enclosing scope is an existing concrete scope, the CompilationInfo data will
be used instead.

Depends on D84888

Depends on D84889

Blocks: 1608195
Pushed by
Add BASESHAPE_FLAGS to EnvironmentObject subclasses r=mgaudet
Add js::BindingIter constructor for environment shape deferral r=mgaudet
Remove ScopeCreationData::scope_ field r=arai
Remove EnvironmentShapeCreationData structure r=arai
Remove AbstractScopePtr from ScopeCreationData r=arai
Rename ScopeCreationData to ScopeStencil r=arai
You need to log in before you can comment on or make changes to this bug.