Closed Bug 1535138 Opened 1 year ago Closed 28 days ago

[meta] Revamp JSScript representation


(Core :: JavaScript Engine, enhancement, P2)






(Reporter: tcampbell, Unassigned)


(Depends on 1 open bug, Blocks 1 open bug)


(Keywords: meta)

This is a meta-bug to track a number of changes I'm making to the JSScript data structures and memory layout.

Some rough goals:

  • Use modern C++ to avoid footguns. This includes reducing raw pointers and manual GC barriers. It should be easier to add/move/remove script metadata.
  • Unify JSScript and LazyScript to reduce the number of parts of the engine that need to handle the distinction.
  • Make as much immutable data as possible shareable in XDR. This is useful for Fission now and we have other other ideas for future caching.
  • Simplify data access for JITs (in particular the BaselineInterpreter project).
Depends on: 1535154
Depends on: 1506263
Depends on: 1543211
Depends on: 1543230
Depends on: 1551796
Depends on: 1554080
Depends on: 1561739
Depends on: 1562272
Depends on: 1565556
Depends on: 1589905
Blocks: stencil

The major changes to the JSScript/LazyScript structures are done and all fields are part of js::BaseScript. The remaining work that is planned is all tracked in Bug 1529456.

Closed: 28 days ago
Resolution: --- → FIXED
Depends on: 1626634
You need to log in before you can comment on or make changes to this bug.