Use JS::Stencil directly in dom::ScriptLoader
Categories
(Core :: JavaScript Engine, task, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox134 | --- | fixed |
People
(Reporter: tcampbell, Assigned: bthrall)
References
(Blocks 2 open bugs)
Details
Attachments
(24 files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
Now that Stencil is core to all our parsing and caching flows for JS, we should directly use the JS::Stencil type from the dom::ScriptLoader and explicitly calling instantiate. This will allow us to build in-memory caches around JS::Stencil to improve our caching story.
| Reporter | ||
Comment 1•4 years ago
|
||
It might be necessary to fix Bug 1687973 so that this proposed change can also cover the decode case. Even without that, it is still possible to support to do in-memory caching with just the non-decode path.
| Reporter | ||
Updated•3 years ago
|
| Assignee | ||
Comment 2•2 years ago
|
||
No one is actively working on this, so it is unlikely to land before the next release.
Updated•1 year ago
|
| Assignee | ||
Comment 3•1 year ago
|
||
According to :arai:
we'll need to introduce some structure to hold the delazification result. it may be hidden behind current Stencil struct, or maybe exposed as separate struct. if latter, it may be owned by embedding side, and then removing the indirection from JSExecutionContext beforehand would work nicely
| Assignee | ||
Comment 4•1 year ago
|
||
| Assignee | ||
Comment 5•1 year ago
|
||
| Assignee | ||
Comment 6•1 year ago
|
||
| Assignee | ||
Comment 7•1 year ago
|
||
| Assignee | ||
Comment 8•1 year ago
|
||
| Assignee | ||
Comment 9•1 year ago
|
||
| Assignee | ||
Comment 10•1 year ago
|
||
| Assignee | ||
Comment 11•1 year ago
|
||
| Assignee | ||
Comment 12•1 year ago
|
||
| Assignee | ||
Comment 13•1 year ago
|
||
| Assignee | ||
Comment 14•1 year ago
|
||
ExecScript returning a value was only used in one place, and that call always
coerced the return value to a string.
| Assignee | ||
Comment 15•1 year ago
|
||
The remaining Compile(nsAString) could be inlined as well, but it is only used
in nsJSThunk::EvaluateScript and WindowScriptTimeoutHandler::Call. Right now,
I'm just focusing on use by ScriptLoader.
| Assignee | ||
Comment 16•1 year ago
|
||
ScriptLoader is the only place that calls it, and inlining it made the call
site too hard to follow.
| Assignee | ||
Comment 17•1 year ago
|
||
| Assignee | ||
Comment 18•1 year ago
|
||
| Assignee | ||
Comment 19•1 year ago
|
||
| Assignee | ||
Comment 20•1 year ago
|
||
I think the constructor assertions don't need to be preserved, since the
locations where JSExecutionContext was constructed are obviously using a real
global on the main thread. I'm less confident in removing the check for
CycleCollectedJSContext::Get()->MicroTaskLevel(), but it should be ok since the
assertion wasn't failing already.
I'm leaving the profiler label "JSExecutionContext" intact for now so there's
no change in recorded profiles, but we should consider a better name for it in
the future.
| Assignee | ||
Comment 21•1 year ago
|
||
| Assignee | ||
Comment 22•1 year ago
|
||
| Assignee | ||
Comment 23•1 year ago
|
||
| Assignee | ||
Comment 24•1 year ago
|
||
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
| Assignee | ||
Comment 25•1 year ago
|
||
| Assignee | ||
Comment 26•1 year ago
|
||
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
| Assignee | ||
Comment 27•1 year ago
|
||
Comment 28•1 year ago
|
||
Comment 29•1 year ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/5f393558af46
https://hg.mozilla.org/mozilla-central/rev/6b848af68b04
https://hg.mozilla.org/mozilla-central/rev/e639f1a9629f
https://hg.mozilla.org/mozilla-central/rev/1a3d0a484cc7
https://hg.mozilla.org/mozilla-central/rev/a9662e54468c
https://hg.mozilla.org/mozilla-central/rev/a5c8b186811b
https://hg.mozilla.org/mozilla-central/rev/f74774467596
https://hg.mozilla.org/mozilla-central/rev/617a207931b0
https://hg.mozilla.org/mozilla-central/rev/cc1882488435
https://hg.mozilla.org/mozilla-central/rev/7b334fe58713
https://hg.mozilla.org/mozilla-central/rev/71cceb0503ab
https://hg.mozilla.org/mozilla-central/rev/6d67fc5a1f35
https://hg.mozilla.org/mozilla-central/rev/4ca74ab38fb2
https://hg.mozilla.org/mozilla-central/rev/0e62b884ada0
https://hg.mozilla.org/mozilla-central/rev/fea0294e3205
https://hg.mozilla.org/mozilla-central/rev/62b9acbd2a69
https://hg.mozilla.org/mozilla-central/rev/a951b39e3346
https://hg.mozilla.org/mozilla-central/rev/0233a41b9f9c
https://hg.mozilla.org/mozilla-central/rev/fecec3d85af1
https://hg.mozilla.org/mozilla-central/rev/f966c15bbee6
https://hg.mozilla.org/mozilla-central/rev/542fd2b11f0b
https://hg.mozilla.org/mozilla-central/rev/9bbb86e07d45
https://hg.mozilla.org/mozilla-central/rev/75093f3e947c
https://hg.mozilla.org/mozilla-central/rev/ce9f60c59095
Description
•