This document is an attempt to describe ES6 Loaders, to verify my understanding of the specification: http://people.mozilla.org/~jorendorff/es6-draft.html PRELUDE: How legacy HTML stuff interacts with the new JS world ======= When an event loop is created, invoke the algorithm in 8.5 Initialization. Step 7 should obtain zero scripts. This results in 8.4.2 NextJob being invoked. 8.4.2 NextJob is adjusted as follows: The "implementation defined unhandled exception processing" in step 1 must be the "report an error" logic in the HTML spec. The "implementation defined manner" for selecting "a non-empty Job Queue" in step 4 is to return execution to the calling algorithm; subsequent logic in the HTML spec will then resume the NextJob algorithm when a new task has been primed. When a Window or Worker is created, run 8.5 Initialization steps 1-6, except that in 8.5.1 InitializeFirstRealm, "this implementation requires use of an exotic object object to serve as realm’s global object", namely, the Window or WorkerGlobalScope object. Then, suspend the execution context and remove it from the stack of execution contexts. Stash the realm in the script settings object for the Window. When you load a