Combine TraceKind::Script and TraceKind::LazyScript
Categories
(Core :: JavaScript Engine, task, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox75 | --- | fixed |
People
(Reporter: tcampbell, Assigned: tcampbell)
References
Details
Attachments
(3 files)
We can break off a big piece of Bug 1529456 by first eliminating TraceKind::LazyScript. This stack of patches will still have a separate arena for lazy vs non-lazy scripts.
To achieve this, I'll add a IsLazyScript ImmutableFlag to BaseScript. Eventually this flag should be removed because scripts will transform between lazy and non-lazy form more fluidly.
Assignee | ||
Comment 1•5 years ago
|
||
Generalize the code to handle BaseScript types to prepare for eliminating
TraceKind::LazyScript. Also remove JSScript::sizeOfData method in favour of
the equivalent BaseScript::sizeOfExcludingThis.
Assignee | ||
Comment 2•5 years ago
|
||
This patch creates a union field in BaseScript to hold either form of
pointer. An IsLazyScript flag is added to ImmutableFlags to know which union
arm to trace. We are also able to use a single trace function for both.
IsLazyScript flag to disambiguate the union arms.
Note that this field will be removed entirely once the JSScript and
LazyScript instances are merged.
Depends on D62679
Assignee | ||
Comment 3•5 years ago
|
||
Now that JSScript and LazyScript share a trace method, we can use a single
TraceKind within the GC. To acheive this we also must remove eager marking of
LazyScripts.
Depends on D62680
Comment 5•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/97de2c9ab0a1
https://hg.mozilla.org/mozilla-central/rev/06a0f1b9929e
https://hg.mozilla.org/mozilla-central/rev/4db8bac77334
Description
•