- From: Domenic Denicola <notifications@github.com>
- Date: Thu, 09 May 2019 08:08:56 -0700
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <heycam/webidl/pull/722/review/235645108@github.com>
domenic approved this pull request.
LGTM with nits. I will just add a commit fixing the nits, actually.
> @@ -13244,6 +13264,162 @@ the exact steps to take if <dfn>an exception was thrown</dfn>, or by explicitly
</div>
+<h3 id="synthetic-module-records">Synthetic module records</h3>
+
+A <dfn export>Synthetic Module Record</dfn> is used to represent information about a module that is
+defined by specifications.
+Its exports are derived from a pair of lists, of string keys and of ECMAScript values.
This sentence seems wrong; it must have been from an earlier draft I never uploaded.
> +<div algorithm>
+The abstract operation <dfn abstract-op>CreateSyntheticModule</dfn>(|exportNames|, |evaluationSteps|, |realm|, |hostDefined|) creates a [=Synthetic Module Record=] based upon
+the given exported names and evaluation steps.
+It performs the following steps:
+
+ 1. Return [=Synthetic Module Record=] {
+ \[[Realm]]: |realm|,
+ \[[Environment]]: <emu-val>undefined</emu-val>,
+ \[[Namespace]]: <emu-val>undefined</emu-val>,
+ \[[HostDefined]]: |hostDefined|,
+ \[[ExportNames]]: |exportNames|,
+ \[[EvaluationSteps]]: |evaluationSteps|
+ }.
+</div>
+
+Note: It seems we could set up the environment either here or in Instantiate().
Maybe rephrase a bit; the current note is written as more of a note to the reviewer, not to the reader. I'd do
> Note: We could set up the \[[Environment]] either here or in [=Instantiate()=]. It is done in Instantiate() for symmetry with [=Source Text Module Records=], but there is no observable difference.
> @@ -13244,6 +13264,162 @@ the exact steps to take if <dfn>an exception was thrown</dfn>, or by explicitly
</div>
+<h3 id="synthetic-module-records">Synthetic module records</h3>
+
+A <dfn export>Synthetic Module Record</dfn> is used to represent information about a module that is
+defined by specifications.
+Its exports are derived from a pair of lists, of string keys and of ECMAScript values.
+The set of exported names is static, and determined at creation time (as an argument to
+[$CreateSyntheticModule$]), while the set of exported values can be changed over time using
+[$SetSyntheticModuleExport$].
+It has no imports or dependencies.
+
+Note: A [=Synthetic Module Record=] could be used for defining a variety of module types: for
+example, built-in modules, or JSON modules, or CSS modules.
Maybe add something like
> Note: Synthetic Module Records are being developed in concert with the authors of the <cite>JavaScript Standard Library</cite> proposal, and might eventually move to the ECMAScript specification. [[JS-STDLIB]] [[ECMA262]].
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/heycam/webidl/pull/722#pullrequestreview-235645108
Received on Thursday, 9 May 2019 15:09:22 UTC