Open Bug 1663956 Opened 4 years ago Updated 1 year ago

[meta] Stencil Phase 2 Use-Cases

Categories

(Core :: JavaScript Engine, task, P2)

task

Tracking

()

People

(Reporter: tcampbell, Unassigned)

References

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

Details

(Keywords: meta)

For the phase 2 of Stencil we want to want to revisit different use cases of parsing in the browser and reevaluate previous design choices and look for opportunities to use stencil for more interesting things.

Depends on: 1662149
Depends on: 1646494

Part of the complexity of talking about "use-cases" is that there are several different loaders that target different caches. Generally the script loaders will inform the type of changes we want to make with Stencil.

{mozJSSubScriptLoader, mozJSComponentLoader, nsXULPrototypeScript, nsMessageManagerScriptExecutor} -> {StartupCache, ScriptPreloader}
{ScriptLoader} -> {JSBC}

Here is a list of parts of Gecko that evaluate JavaScript:

  • ChromeScriptLoader/AsyncScriptCompiler/PrecompiledScript [CLONE]
  • mozJSSubScriptLoader [CLONE, XDR]
  • nsMessageManagerScriptExecutor [CLONE, XDR]
  • nsXULPrototypeScript/PrototypeDocumentContentSink [CLONE, XDR]
  • mozJSComponentLoader [CLONE, XDR]
  • dom::ScriptLoader [XDR]
  • ECMAScript eval/Function/import [CLONE]
  • EventListenerManager
  • nsJSProtocolHandler
  • nsNPAPIPlugin
  • Worklet
  • xpc::Sandbox
  • ProxyAutoConfig
  • Worker/importScripts
  • {Window,Worker}ScriptTimeoutHandler

Items labelled XDR are existing uses of bytecode caching (based on JSScript-XDR). Items labelled CLONE indirectly may trigger script cloning.

Depends on: 1688787
Depends on: 1688789
You need to log in before you can comment on or make changes to this bug.