- From: Dan Clark <notifications@github.com>
- Date: Wed, 13 Feb 2019 18:58:00 +0000 (UTC)
- To: w3c/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/webcomponents/pull/793@github.com>
I've made significant updates to the HTML Module proposed spec changes doc based on feedback [here](https://github.com/w3c/webcomponents/issues/783) and [here](https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/ewfRSdqcOd8).
Highlights include:
• Rebased the ES changes on https://github.com/tc39/ecma262/pull/1311. The most obvious change here is that HTML Module Record is now a subclass of Cyclic Module Record.
• HTML MR now inherits the concrete implementations of Instantiate() and Evaluate() from Cyclic MR (HTML MR still defines its own InnerModuleInstantiation /InnerModuleEvaluation.
• Updated ResolveExport to return a ResolvedBinding rather than the document itself. HTML MR implementations of InitializeEnvironment() and ExecuteModule() were added to create a binding named “*default*” and set it to the document.
• Corrected GetExportedNames to refer to HTML MR instead of Source Text MR.
• HTML Module on the HTML5 side is now a type of Script called HTML Module Script, and the existing Module Script is renamed to JavaScript Module Script.
• ScriptEntry’s [[ScriptName]] field is renamed to [[ExternalScriptURL]] and [[ModuleRecord]] is renamed to [[InlineModuleRecord]]. The [[IsInline]] field was removed.
• Fixed ResolveExport so that it the HTML Module’s default export doesn’t override a default export specified by an inline script.
• Updated and refactored “create a module script” and ParseHTMLModule to ensure that all fields are initialized for HTML Module Script and HTML MR creation.
• Edited HTML Module proposal doc to state that non-module scripts in an HTML Module will cause a parse error and make the module to fail to create, rather than being silently coerced to `type="module`.
There are still some questions around whether the bulk of HTML Module Record and its algorithms should actually be defined in the HTML5 spec. I expect this document to continue to evolve.
You can view, comment on, or merge this pull request online at:
https://github.com/w3c/webcomponents/pull/793
-- Commit Summary --
* Rebasing ES spec changes on https://github.com/tc39/ecma262/pull/1311. Misc other fixes/refactorings.
* Update ParseHTMLModule to populate missing fields and update HTML MR InitializeEnvironment to create *default* binding for default export of document
* Add plumbing for ES spec to get the HTML Module's default export (the document) and set it to the *document* binding during module Evaluation. Plus some other minor corrections.
* Update proposal to state that non-module scripts in HTML Module will cause error (rather than being silently coerced to type='module'
* Minor wording/typo fixes. Eliminate disclaimer at the top about some parts being handwavy -- we've mostly progressed beyond that, I think.
-- File Changes --
M proposals/html-module-spec-changes.md (185)
M proposals/html-modules-proposal.md (6)
-- Patch Links --
https://github.com/w3c/webcomponents/pull/793.patch
https://github.com/w3c/webcomponents/pull/793.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/webcomponents/pull/793
Received on Wednesday, 13 February 2019 18:58:22 UTC