From cd2e15af146e80e5c7966896c3f81f3b36e4c5cd Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Sat, 6 Apr 2024 21:46:44 -0700 Subject: [PATCH 1/3] sync with upstream PR --- spec.emu | 864 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 829 insertions(+), 35 deletions(-) diff --git a/spec.emu b/spec.emu index 5855539..b4bf17c 100644 --- a/spec.emu +++ b/spec.emu @@ -5,10 +5,794 @@
 title: Source Phase Imports
-stage: 2
+stage: 3
 contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo
 
+ + + + + +

Well-Known Intrinsic Objects

+

Well-known intrinsics are built-in objects that are explicitly referenced by the algorithms of this specification and which usually have realm-specific identities. Unless otherwise specified each intrinsic object actually corresponds to a set of similar objects, one per realm.

+

Within this specification a reference such as %name% means the intrinsic object, associated with the current realm, corresponding to the name. A reference such as %name.a.b% means, as if the *"b"* property of the value of the *"a"* property of the intrinsic object %name% was accessed prior to any ECMAScript code being evaluated. Determination of the current realm and its intrinsics is described in . The well-known intrinsics are listed in .

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Intrinsic Name + + Global Name + + ECMAScript Language Association +
+ %AbstractModuleSource% + + + The %AbstractModuleSource% constructor () +
+ %AggregateError% + + `AggregateError` + + The `AggregateError` constructor () +
+ %Array% + + `Array` + + The Array constructor () +
+ %ArrayBuffer% + + `ArrayBuffer` + + The ArrayBuffer constructor () +
+ %ArrayIteratorPrototype% + + + The prototype of Array iterator objects () +
+ %AsyncFromSyncIteratorPrototype% + + + The prototype of async-from-sync iterator objects () +
+ %AsyncFunction% + + + The constructor of async function objects () +
+ %AsyncGeneratorFunction% + + + The constructor of async generator function objects () +
+ %AsyncGeneratorPrototype% + + + The prototype of async generator objects () +
+ %AsyncIteratorPrototype% + + + An object that all standard built-in async iterator objects indirectly inherit from +
+ %Atomics% + + `Atomics` + + The `Atomics` object () +
+ %BigInt% + + `BigInt` + + The BigInt constructor () +
+ %BigInt64Array% + + `BigInt64Array` + + The BigInt64Array constructor () +
+ %BigUint64Array% + + `BigUint64Array` + + The BigUint64Array constructor () +
+ %Boolean% + + `Boolean` + + The Boolean constructor () +
+ %DataView% + + `DataView` + + The DataView constructor () +
+ %Date% + + `Date` + + The Date constructor () +
+ %decodeURI% + + `decodeURI` + + The `decodeURI` function () +
+ %decodeURIComponent% + + `decodeURIComponent` + + The `decodeURIComponent` function () +
+ %encodeURI% + + `encodeURI` + + The `encodeURI` function () +
+ %encodeURIComponent% + + `encodeURIComponent` + + The `encodeURIComponent` function () +
+ %Error% + + `Error` + + The Error constructor () +
+ %eval% + + `eval` + + The `eval` function () +
+ %EvalError% + + `EvalError` + + The EvalError constructor () +
+ %FinalizationRegistry% + + `FinalizationRegistry` + + The FinalizationRegistry constructor () +
+ %Float32Array% + + `Float32Array` + + The Float32Array constructor () +
+ %Float64Array% + + `Float64Array` + + The Float64Array constructor () +
+ %ForInIteratorPrototype% + + + The prototype of For-In iterator objects () +
+ %Function% + + `Function` + + The Function constructor () +
+ %GeneratorFunction% + + + The constructor of generator function objects () +
+ %GeneratorPrototype% + + + The prototype of generator objects () +
+ %Int8Array% + + `Int8Array` + + The Int8Array constructor () +
+ %Int16Array% + + `Int16Array` + + The Int16Array constructor () +
+ %Int32Array% + + `Int32Array` + + The Int32Array constructor () +
+ %isFinite% + + `isFinite` + + The `isFinite` function () +
+ %isNaN% + + `isNaN` + + The `isNaN` function () +
+ %IteratorPrototype% + + + An object that all standard built-in iterator objects indirectly inherit from +
+ %JSON% + + `JSON` + + The `JSON` object () +
+ %Map% + + `Map` + + The Map constructor () +
+ %MapIteratorPrototype% + + + The prototype of Map iterator objects () +
+ %Math% + + `Math` + + The `Math` object () +
+ %Number% + + `Number` + + The Number constructor () +
+ %Object% + + `Object` + + The Object constructor () +
+ %parseFloat% + + `parseFloat` + + The `parseFloat` function () +
+ %parseInt% + + `parseInt` + + The `parseInt` function () +
+ %Promise% + + `Promise` + + The Promise constructor () +
+ %Proxy% + + `Proxy` + + The Proxy constructor () +
+ %RangeError% + + `RangeError` + + The RangeError constructor () +
+ %ReferenceError% + + `ReferenceError` + + The ReferenceError constructor () +
+ %Reflect% + + `Reflect` + + The `Reflect` object () +
+ %RegExp% + + `RegExp` + + The RegExp constructor () +
+ %RegExpStringIteratorPrototype% + + + The prototype of RegExp String Iterator objects () +
+ %Set% + + `Set` + + The Set constructor () +
+ %SetIteratorPrototype% + + + The prototype of Set iterator objects () +
+ %SharedArrayBuffer% + + `SharedArrayBuffer` + + The SharedArrayBuffer constructor () +
+ %String% + + `String` + + The String constructor () +
+ %StringIteratorPrototype% + + + The prototype of String iterator objects () +
+ %Symbol% + + `Symbol` + + The Symbol constructor () +
+ %SyntaxError% + + `SyntaxError` + + The SyntaxError constructor () +
+ %ThrowTypeError% + + + A function object that unconditionally throws a new instance of %TypeError% +
+ %TypedArray% + + + The super class of all typed Array constructors () +
+ %TypeError% + + `TypeError` + + The TypeError constructor () +
+ %Uint8Array% + + `Uint8Array` + + The Uint8Array constructor () +
+ %Uint8ClampedArray% + + `Uint8ClampedArray` + + The Uint8ClampedArray constructor () +
+ %Uint16Array% + + `Uint16Array` + + The Uint16Array constructor () +
+ %Uint32Array% + + `Uint32Array` + + The Uint32Array constructor () +
+ %URIError% + + `URIError` + + The URIError constructor () +
+ %WeakMap% + + `WeakMap` + + The WeakMap constructor () +
+ %WeakRef% + + `WeakRef` + + The WeakRef constructor () +
+ %WeakSet% + + `WeakSet` + + The WeakSet constructor () +
+
+ +

Additional entries in .

+
+
+
+
+
+

ECMAScript Language: Expressions

@@ -27,9 +811,8 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo

Runtime Semantics: Evaluation

- ImportCall : `import` `(` AssignmentExpression `)` + ImportCall : `import` `(` AssignmentExpression[+In, ?Yield, ?Await] `)` - 1. Return ? EvaluateImportCall(|AssignmentExpression|, ~evaluation~). 1. Let _referrer_ be GetActiveScriptOrModule(). 1. If _referrer_ is *null*, set _referrer_ to the current Realm Record. 1. Let _argRef_ be ? Evaluation of |AssignmentExpression|. @@ -39,6 +822,7 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo 1. IfAbruptRejectPromise(_specifierString_, _promiseCapability_). 1. Perform HostLoadImportedModule(_referrer_, _specifierString_, ~empty~, _promiseCapability_). 1. Return _promiseCapability_.[[Promise]]. + 1. Return ? EvaluateImportCall(|AssignmentExpression|, ~evaluation~). ImportCall : `import` `.` `source` `(` AssignmentExpression[+In, ?Yield, ?Await] `)` @@ -88,11 +872,11 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo 1. Return ~unused~. 1. Let _module_ be _moduleCompletion_.[[Value]]. 1. If _phase_ is ~source~, then - 1. Let _moduleSourceObject_ be Completion(_module_.GetModuleSource()). - 1. If _moduleSourceObject_ is an abrupt completion, then - 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _moduleSourceObject_.[[Value]] »). + 1. Let _moduleSourceCompletion_ be Completion(_module_.GetModuleSource()). + 1. If _moduleSourceCompletion_ is an abrupt completion, then + 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _moduleSourceCompletion_.[[Value]] »). 1. Else, - 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « _moduleSourceObject_.[[Value]] »). + 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « _moduleSourceCompletion_.[[Value]] »). 1. Return ~unused~. 1. Let _loadPromise_ be _module_.LoadRequestedModules(). 1. Let _rejectedClosure_ be a new Abstract Closure with parameters (_reason_) that captures _promiseCapability_ and performs the following steps when called: @@ -153,7 +937,7 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo [[Specifier]] - String + a String The module specifier @@ -376,9 +1160,10 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo GetModuleSource() -

It returns either a normal completion completion for the Module Source Object corresponding to this source Module Record's source phase (), or a throw completion.

- When called multiple times on the same Module Record, if GetModuleSource() returns a normal completion it must always return a normal completion containing the same object. - The returned object should be an instance of a subclass of %AbstractModuleSource%, and it must have an internal slot [[ModuleSourceClassName]]. +

It returns either a normal completion containing the Module Source Object corresponding to this source Module Record's source phase (), or a throw completion.

+

When called multiple times on the same Module Record, if GetModuleSource() returns a normal completion it must always return a normal completion containing the same object.

+

The returned object should be an instance of a subclass of %AbstractModuleSource%, and it must have an internal slot [[ModuleSourceClassName]].

+

For Module Records that do not have a source representation, GetModuleSource() must always return a throw completion whose [[Value]] is a *ReferenceError*.

@@ -455,7 +1240,7 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo a List of StringsModuleRequest Records - A List of all the |ModuleSpecifier| strings used by the module represented by this record to request the importation of a module, along with their maximum associated phase (~source~ or ~evaluation~). The List is in source text occurrence order. + A List of all the |ModuleSpecifier| strings used by the module represented by this record to request the importation of a module, along with their associated phase (~source~ or ~evaluation~). The List is in source text occurrence order. @@ -539,13 +1324,20 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo
description
It populates the [[LoadedModules]] of all the Module Records in the dependency graph of _module_ (most of the work is done by the auxiliary function InnerModuleLoading). It takes an optional _hostDefined_ parameter that is passed to the HostLoadImportedModule hook.
+ + 1. If _hostDefined_ is not present, let _hostDefined_ be ~empty~. + 1. Let _pc_ be ! NewPromiseCapability(%Promise%). + 1. Let _state_ be the GraphLoadingState Record { [[IsLoading]]: *true*, [[PendingModulesCount]]: 1, [[Visited]]: « », [[PromiseCapability]]: _pc_, [[HostDefined]]: _hostDefined_ }. + 1. Perform InnerModuleLoading(_state_, _module_, ~recursive-load~). + 1. Return _pc_.[[Promise]]. +

InnerModuleLoading ( _state_: a GraphLoadingState Record, _module_: a Module Record, - _phase_: ~source~ or ~evaluation~, + _loadType_: ~single~ or ~recursive-load~, ): ~unused~

@@ -555,7 +1347,7 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo 1. Assert: _state_.[[IsLoading]] is *true*. - 1. If _module_ is a Cyclic Module Record, _module_.[[Status]] is ~new~, and _state_.[[Visited]] does not contain _module_, and _phase_ is ~evaluation~, then + 1. If _loadType_ is ~recursive-load~, _module_ is a Cyclic Module Record, _module_.[[Status]] is ~new~, and _state_.[[Visited]] does not contain _module_, then 1. Append _module_ to _state_.[[Visited]]. 1. Let _requestedModulesCount_ be the number of elements in _module_.[[RequestedModules]]. 1. Set _state_.[[PendingModulesCount]] to _state_.[[PendingModulesCount]] + _requestedModulesCount_. @@ -563,7 +1355,8 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo 1. For each ModuleRequest Record _required_ of _module_.[[RequestedModules]], do 1. If _module_.[[LoadedModules]] contains a Record whose [[Specifier]] is _required_.[[Specifier]], then 1. Let _record_ be that Record. - 1. Perform InnerModuleLoading(_state_, _record_.[[Module]], _required_.[[Phase]]). + 1. If _required_.[[Phase]] is ~source~, let _innerLoadType_ be ~single~; otherwise let _innerLoadType_ be ~recursive-load~. + 1. Perform InnerModuleLoading(_state_, _record_.[[Module]], _innerLoadType_). 1. Else, 1. Perform HostLoadImportedModule(_module_, _required_, _state_.[[HostDefined]], _state_). 1. NOTE: HostLoadImportedModule will call FinishLoadingImportedModule, which re-enters the graph loading process through ContinueModuleLoading. @@ -595,7 +1388,8 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo 1. If _state_.[[IsLoading]] is *false*, return ~unused~. 1. If _moduleCompletion_ is a normal completion, then - 1. Perform InnerModuleLoading(_state_, _moduleCompletion_.[[Value]], _phase_). + 1. If _phase_ is ~source~, let _loadType_ be ~single~; otherwise let _loadType_ be ~recursive-load~. + 1. Perform InnerModuleLoading(_state_, _moduleCompletion_.[[Value]], _loadType_). 1. Else, 1. Set _state_.[[IsLoading]] to *false*. 1. Perform ! Call(_state_.[[PromiseCapability]].[[Reject]], *undefined*, « _moduleCompletion_.[[Value]] »). @@ -744,7 +1538,12 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo - + + + +

Source Text Module Records

+ +

GetModuleSource ( ): either a normal completion containing an Object or a throw completion @@ -752,22 +1551,17 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo

for
-
a Cyclic Module Record _module_
+
a Source Text Module Record _module_
description
-

Cyclic Module Record provides a default GetModuleSource implementation with an abrupt completion to provide a standard reference error that a source phase import is not available.

+

Source Text Module Record provides a GetModuleSource implementation that always returns an abrupt completion indicating that a source phase import is not available.

- 1. Let _error_ be a newly created *ReferenceError* object. - 1. Return ThrowCompletion(_error_). + 1. Throw a *ReferenceError* exception.
-
- - -

Source Text Module Records

InitializeEnvironment ( ): either a normal completion containing ~unused~ or a throw completion

@@ -873,7 +1667,7 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo a String or ~namespace-object~, ~namespace-object~ or ~source~ - The name under which the desired binding is exported by the module identified by [[ModuleRequest]]. The value ~namespace-object~ indicates that the import request is for the target module's namespace object. The value ~source~ represents an import of the import phase representation at that phase name. + The name under which the desired binding is exported by the module identified by [[ModuleRequest]]. The value ~namespace-object~ indicates that the import request is for the target module's namespace object. The value ~source~ represents an import at the source phase. @@ -1037,7 +1831,7 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo
1. If _result_ is a normal completion, then - 1. If _referrer_.[[LoadedModules]] contains a Record _record_ such that _record_.[[Specifier]] is _specifier__moduleRequest_.[[Specifier]], then + 1. If _referrer_.[[LoadedModules]] contains a Record whose [[Specifier]] is _specifier__moduleRequest_.[[Specifier]], then 1. Assert: _record_.[[Module]] is _result_.[[Value]]. 1. Else, append the Record { [[Specifier]]: _specifier__moduleRequest_.[[Specifier]], [[Module]]: _result_.[[Value]] } to _referrer_.[[LoadedModules]]. 1. If _payload_ is a GraphLoadingState Record, then @@ -1118,7 +1912,7 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo ImportDeclaration : `import` ImportClause FromClause `;` - 1. Let _module_ be the sole element of ModuleRequests of |FromClause|. + 1. Let _module_ be the sole element of ModuleRequestsSV of |FromClause|. 1. Return ImportEntriesForModule of |ImportClause| with argument _module_. ImportDeclaration : `import` ModuleSpecifier `;` @@ -1127,6 +1921,7 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo ImportDeclaration : `import` `source` ImportedBinding FromClause `;` + 1. Let _module_ be the SV of |FromClause|. 1. Let _localName_ be the sole element of BoundNames of |ImportedBinding|. 1. Let _entry_ be the ImportEntry Record { [[ModuleRequest]]: _module_, [[ImportName]]: ~source~, [[LocalName]]: _localName_ }. 1. Return « _entry_ ». @@ -1140,17 +1935,17 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo

Module Source Objects

Module Source Objects represent modules in their source import phase, which are not linked, instantiated or executed.

-

All Module Source Objects should have a prototype of %AbstractModuleSource%.prototype and define a [[ModuleSourceClassName]] internal slot.

-

Hosts may define their own Module Source subclasses for custom module record types.

+

All Module Source Objects must define a [[ModuleSourceClassName]] internal slot.

+

All Module Source Objects should have a prototype of %AbstractModuleSource%.prototype.

+

Hosts may define their own %AbstractModuleSource% subclasses for custom module types.

The %AbstractModuleSource% Constructor

The %AbstractModuleSource% constructor:

    -
  • is %AbstractModuleSource%.
  • -
  • along with its corresponding prototype object, provides common properties that are inherited by module source constructors and their instances.
  • +
  • along with its corresponding prototype object, provides common properties that are inherited by Module Source constructors and their instances.
  • does not have a global name or appear as a property of the global object.
  • -
  • acts as the abstract superclass of the _ModuleSource_ constructor.
  • +
  • acts as a common superclass of the constructors of Module Source Objects.
  • will throw an error when invoked, because it is an abstract class constructor. The module source constructors do not perform a `super` call to it.
@@ -1186,7 +1981,6 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo
  • has a [[Prototype]] internal slot whose value is %Object.prototype%.
  • is %AbstractModuleSource.prototype%.
  • is an ordinary object.
  • -
  • does not have a global name or appear as a property of the global object.
  • has the following properties:
  • @@ -1196,7 +1990,7 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo
    -

    get %AbstractModuleSource%.prototype [ @@toStringTag ] ( )

    +

    get %AbstractModuleSource%.prototype [ @@toStringTag ]

    %AbstractModuleSource%.prototype `[@@toStringTag]` is an accessor property whose set accessor function is *undefined*. Its get accessor function performs the following steps when called:

    1. Let _O_ be the *this* value. From 1b3a849dfd5c644c22c8fea2883778b72e7c89cf Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Sat, 6 Apr 2024 21:48:43 -0700 Subject: [PATCH 2/3] fixup headings --- spec.emu | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spec.emu b/spec.emu index b4bf17c..68c0a4a 100644 --- a/spec.emu +++ b/spec.emu @@ -10,9 +10,11 @@ contributors: Luca Casonato, Guy Bedford, Nicolò Ribaudo +

    ECMAScript Data Types and Values

    +

    ECMAScript Language Types

    - +

    Object Type

    Well-Known Intrinsic Objects

    Well-known intrinsics are built-in objects that are explicitly referenced by the algorithms of this specification and which usually have realm-specific identities. Unless otherwise specified each intrinsic object actually corresponds to a set of similar objects, one per realm.

    From 71d83933ccb01bacfef60196dd09b62d5325ed74 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sun, 7 Apr 2024 04:49:06 +0000 Subject: [PATCH 3/3] fixup: [spec] `npm run build` --- index.html | 1026 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 907 insertions(+), 119 deletions(-) diff --git a/index.html b/index.html index 3e0c55f..999b192 100644 --- a/index.html +++ b/index.html @@ -1260,7 +1260,7 @@ }); let sdoMap = JSON.parse(`{"prod-uZn3IQfi":{"Evaluation":{"clause":"13.3.10.1","ids":["prod-4N8EtSSM"]}},"prod-WqUZkrPx":{"Evaluation":{"clause":"13.3.10.1","ids":["prod-E9lFAjcF"]}},"prod-WzAgO-V_":{"ModuleRequests":{"clause":"16.1.1.3","ids":["prod-Fii3Jv-w"]},"ImportEntries":{"clause":"16.2.1","ids":["prod-4FL2ok6-"]}},"prod-gQ0CVk3C":{"ModuleRequests":{"clause":"16.1.1.3","ids":["prod-eGLun9tY"]},"ImportEntries":{"clause":"16.2.1","ids":["prod-aTBBdt4A"]}},"prod-hjv695N2":{"ModuleRequests":{"clause":"16.1.1.3","ids":["prod-geKEXfWi"]}},"prod-CDGJVPkq":{"ImportEntries":{"clause":"16.2.1","ids":["prod--ST7ch2j"]}}}`); -let biblio = JSON.parse(`{"refsByClause":{"sec-ContinueDynamicImport":["_ref_0","_ref_15"],"sec-abstract-module-records":["_ref_1","_ref_2","_ref_3","_ref_35","_ref_36","_ref_37","_ref_38","_ref_39","_ref_40","_ref_41"],"sec-cyclic-module-records":["_ref_4","_ref_5","_ref_42","_ref_43","_ref_44","_ref_45","_ref_46","_ref_47","_ref_48","_ref_49","_ref_132"],"sec-module-semantics":["_ref_6","_ref_7","_ref_91","_ref_92","_ref_93","_ref_94","_ref_133","_ref_134"],"sec-HostLoadImportedModule":["_ref_8","_ref_95","_ref_96","_ref_97","_ref_98","_ref_99","_ref_100","_ref_101","_ref_102","_ref_103"],"sec-host-defined-fields-summary":["_ref_9","_ref_121"],"sec-import-call-runtime-semantics-evaluation":["_ref_10","_ref_11","_ref_12"],"sec-evaluate-import-call":["_ref_13","_ref_14"],"sec-modulerequest-record":["_ref_16","_ref_17","_ref_18","_ref_19","_ref_20","_ref_21","_ref_22","_ref_23"],"sec-static-semantics-modulerequests":["_ref_24","_ref_25","_ref_26","_ref_27","_ref_28","_ref_29","_ref_30","_ref_31","_ref_32","_ref_33","_ref_34","_ref_122","_ref_123","_ref_124","_ref_125","_ref_126","_ref_127","_ref_128","_ref_129","_ref_130","_ref_131"],"sec-LoadRequestedModules":["_ref_50","_ref_51","_ref_52","_ref_53"],"sec-InnerModuleLoading":["_ref_54","_ref_55","_ref_56","_ref_57","_ref_58","_ref_59","_ref_60","_ref_61","_ref_62"],"sec-ContinueModuleLoading":["_ref_63","_ref_64","_ref_65"],"sec-moduledeclarationlinking":["_ref_66","_ref_67"],"sec-InnerModuleLinking":["_ref_68","_ref_69","_ref_70","_ref_71","_ref_72","_ref_73","_ref_74","_ref_75"],"sec-moduleevaluation":["_ref_76","_ref_77"],"sec-innermoduleevaluation":["_ref_78","_ref_79","_ref_80","_ref_81","_ref_82","_ref_83","_ref_84","_ref_85","_ref_86"],"sec-getmodulesource":["_ref_87","_ref_88"],"sec-source-text-module-record-initialize-environment":["_ref_89","_ref_90"],"sec-FinishLoadingImportedModule":["_ref_104","_ref_105","_ref_106","_ref_107","_ref_108"],"sec-static-semantics-importentries":["_ref_109","_ref_110","_ref_111","_ref_112","_ref_113","_ref_157","_ref_158","_ref_159","_ref_160","_ref_161","_ref_162","_ref_163","_ref_164"],"sec-module-source-objects":["_ref_114"],"sec-properties-of-the-%abstractmodulesource%-intrinsic-object":["_ref_115"],"sec-%abstractmodulesource%.prototype":["_ref_116","_ref_117"],"sec-%abstractmodulesource%.prototype.constructor":["_ref_118","_ref_119"],"sec-get-%abstractmodulesource%.prototype.@@tostringtag":["_ref_120"],"sec-imports":["_ref_135","_ref_136","_ref_137","_ref_138","_ref_139","_ref_140","_ref_141","_ref_142","_ref_143","_ref_144","_ref_145","_ref_146","_ref_147","_ref_148","_ref_149","_ref_150","_ref_151","_ref_152","_ref_153","_ref_154","_ref_155","_ref_156"]},"entries":[{"type":"production","id":"prod-ImportCall","name":"ImportCall"},{"type":"clause","id":"sec-import-call-runtime-semantics-evaluation","titleHTML":"Runtime Semantics: Evaluation","number":"13.3.10.1"},{"type":"op","aoid":"ContinueDynamicImport","refId":"sec-ContinueDynamicImport"},{"type":"clause","id":"sec-ContinueDynamicImport","title":"ContinueDynamicImport ( promiseCapability, phase, moduleCompletion )","titleHTML":"ContinueDynamicImport ( promiseCapability, phase, moduleCompletion )","number":"13.3.10.2.1","referencingIds":["_ref_108"]},{"type":"op","aoid":"EvaluateImportCall","refId":"sec-evaluate-import-call"},{"type":"clause","id":"sec-evaluate-import-call","title":"EvaluateImportCall ( specifierExpression, phase )","titleHTML":"EvaluateImportCall ( specifierExpression, phase )","number":"13.3.10.2","referencingIds":["_ref_10","_ref_12"]},{"type":"clause","id":"sec-import-calls","titleHTML":"Import Calls","number":"13.3.10","referencingIds":["_ref_0","_ref_8"]},{"type":"clause","id":"sec-left-hand-side-expressions","titleHTML":"Left-Hand-Side Expressions","number":"13.3"},{"type":"clause","id":"sec-ecmascript-language-expressions","titleHTML":"ECMAScript Language: Expressions","number":"13"},{"type":"term","term":"ModuleRequest Record","id":"modulerequest-record","referencingIds":["_ref_13","_ref_16","_ref_17","_ref_19","_ref_21","_ref_23","_ref_24","_ref_28","_ref_29","_ref_31","_ref_32","_ref_34","_ref_47","_ref_56","_ref_71","_ref_82","_ref_96","_ref_105"]},{"type":"table","id":"table-modulerequest-record-fields","number":1,"caption":"Table 1: ModuleRequest Record fields"},{"type":"clause","id":"sec-modulerequest-record","title":"ModuleRequest Records","titleHTML":"ModuleRequest Records","number":"16.1.1.1"},{"type":"op","aoid":"ModuleRequests","refId":"sec-static-semantics-modulerequests"},{"type":"clause","id":"sec-static-semantics-modulerequests","titleHTML":"Static Semantics: ModuleRequests","number":"16.1.1.3","referencingIds":["_ref_18","_ref_25","_ref_26","_ref_27","_ref_30","_ref_33","_ref_112"]},{"type":"term","term":"Module Record","refId":"sec-abstract-module-records"},{"type":"table","id":"table-module-record-fields","number":2,"caption":"Table 2: Module Record Fields","referencingIds":["_ref_1","_ref_4","_ref_9"]},{"type":"table","id":"table-abstract-methods-of-module-records","number":3,"caption":"Table 3: Abstract Methods of Module Records","referencingIds":["_ref_2"]},{"type":"term","term":"ResolvedBinding Record","id":"resolvedbinding-record","referencingIds":["_ref_89"]},{"type":"clause","id":"sec-abstract-module-records","titleHTML":"Abstract Module Records","number":"16.1.1.4","referencingIds":["_ref_15","_ref_36","_ref_37","_ref_38","_ref_39","_ref_40","_ref_43","_ref_51","_ref_54","_ref_63","_ref_68","_ref_75","_ref_78","_ref_86","_ref_98","_ref_102","_ref_103","_ref_106","_ref_121"]},{"type":"term","term":"Cyclic Module Record","id":"cyclic-module-record","referencingIds":["_ref_22","_ref_35","_ref_42","_ref_44","_ref_45","_ref_46","_ref_48","_ref_49","_ref_50","_ref_55","_ref_62","_ref_66","_ref_69","_ref_70","_ref_73","_ref_74","_ref_76","_ref_79","_ref_81","_ref_84","_ref_85","_ref_87","_ref_88","_ref_95","_ref_104"]},{"type":"table","id":"table-cyclic-module-fields","number":4,"caption":"Table 4: Additional Fields of Cyclic Module Records","referencingIds":["_ref_5"]},{"type":"op","aoid":"InnerModuleLoading","refId":"sec-InnerModuleLoading"},{"type":"clause","id":"sec-InnerModuleLoading","title":"InnerModuleLoading ( state, module, phase )","titleHTML":"InnerModuleLoading ( state, module, phase )","number":"16.1.1.5.1.1","referencingIds":["_ref_52","_ref_57","_ref_65"]},{"type":"op","aoid":"ContinueModuleLoading","refId":"sec-ContinueModuleLoading"},{"type":"clause","id":"sec-ContinueModuleLoading","title":"ContinueModuleLoading ( state, phase, moduleCompletion )","titleHTML":"ContinueModuleLoading ( state, phase, moduleCompletion )","number":"16.1.1.5.1.2","referencingIds":["_ref_61","_ref_107"]},{"type":"clause","id":"sec-LoadRequestedModules","title":"LoadRequestedModules ( [ hostDefined ] )","titleHTML":"LoadRequestedModules ( [ hostDefined ] )","number":"16.1.1.5.1"},{"type":"op","aoid":"InnerModuleLinking","refId":"sec-InnerModuleLinking"},{"type":"clause","id":"sec-InnerModuleLinking","title":"InnerModuleLinking ( module, stack, index )","titleHTML":"InnerModuleLinking ( module, stack, index )","number":"16.1.1.5.2.1","referencingIds":["_ref_67","_ref_72","_ref_80"]},{"type":"clause","id":"sec-moduledeclarationlinking","titleHTML":"Link ( )","number":"16.1.1.5.2"},{"type":"op","aoid":"InnerModuleEvaluation","refId":"sec-innermoduleevaluation"},{"type":"clause","id":"sec-innermoduleevaluation","title":"InnerModuleEvaluation ( module, stack, index )","titleHTML":"InnerModuleEvaluation ( module, stack, index )","number":"16.1.1.5.3.1","referencingIds":["_ref_77","_ref_83"]},{"type":"clause","id":"sec-moduleevaluation","titleHTML":"Evaluate ( )","number":"16.1.1.5.3"},{"type":"clause","id":"sec-getmodulesource","title":"GetModuleSource ( )","titleHTML":"GetModuleSource ( )","number":"16.1.1.5.4"},{"type":"clause","id":"sec-cyclic-module-records","titleHTML":"Cyclic Module Records","number":"16.1.1.5"},{"type":"clause","id":"sec-source-text-module-record-initialize-environment","titleHTML":"InitializeEnvironment ( )","number":"16.1.1.6.1"},{"type":"clause","id":"sec-source-text-module-records","titleHTML":"Source Text Module Records","number":"16.1.1.6"},{"type":"term","term":"ImportEntry Record","id":"importentry-record","referencingIds":["_ref_90","_ref_91","_ref_92","_ref_93","_ref_94","_ref_109","_ref_113"]},{"type":"table","id":"table-importentry-record-fields","number":5,"caption":"Table 5: ImportEntry Record Fields","referencingIds":["_ref_6"]},{"type":"table","id":"table-import-forms-mapping-to-importentry-records","number":6,"caption":"Table 6 (Informative): Import Forms Mappings to ImportEntry Records","referencingIds":["_ref_7"]},{"type":"note","id":"note-HostLoadImportedModule-referrer-Realm-Record","number":1},{"type":"op","aoid":"HostLoadImportedModule","refId":"sec-HostLoadImportedModule"},{"type":"clause","id":"sec-HostLoadImportedModule","title":"HostLoadImportedModule ( referrer, specifier, moduleRequest, hostDefined, payload )","titleHTML":"HostLoadImportedModule ( referrer, specifier, moduleRequest, hostDefined, payload )","number":"16.1.1.7","referencingIds":["_ref_11","_ref_14","_ref_53","_ref_58","_ref_59","_ref_64"]},{"type":"op","aoid":"FinishLoadingImportedModule","refId":"sec-FinishLoadingImportedModule"},{"type":"clause","id":"sec-FinishLoadingImportedModule","title":"FinishLoadingImportedModule ( referrer, specifier, moduleRequest, payload, result )","titleHTML":"FinishLoadingImportedModule ( referrer, specifier, moduleRequest, payload, result )","number":"16.1.1.8","referencingIds":["_ref_60","_ref_97","_ref_99","_ref_100","_ref_101"]},{"type":"clause","id":"sec-module-semantics","titleHTML":"Module Semantics","number":"16.1.1"},{"type":"clause","id":"sec-modules","titleHTML":"Modules","number":"16.1"},{"type":"production","id":"prod-ImportDeclaration","name":"ImportDeclaration","referencingIds":["_ref_134"]},{"type":"production","id":"prod-ImportClause","name":"ImportClause","referencingIds":["_ref_122","_ref_135","_ref_157","_ref_160"]},{"type":"production","id":"prod-ImportedDefaultBinding","name":"ImportedDefaultBinding","referencingIds":["_ref_140","_ref_143","_ref_145"]},{"type":"production","id":"prod-NameSpaceImport","name":"NameSpaceImport","referencingIds":["_ref_141","_ref_144"]},{"type":"production","id":"prod-NamedImports","name":"NamedImports","referencingIds":["_ref_142","_ref_146"]},{"type":"production","id":"prod-FromClause","name":"FromClause","referencingIds":["_ref_123","_ref_124","_ref_125","_ref_127","_ref_128","_ref_129","_ref_130","_ref_131","_ref_136","_ref_139","_ref_158","_ref_159","_ref_163"]},{"type":"production","id":"prod-ImportsList","name":"ImportsList","referencingIds":["_ref_149","_ref_150","_ref_153"]},{"type":"production","id":"prod-ImportSpecifier","name":"ImportSpecifier","referencingIds":["_ref_152","_ref_154"]},{"type":"production","id":"prod-ModuleSpecifier","name":"ModuleSpecifier","referencingIds":["_ref_132","_ref_133","_ref_137","_ref_151","_ref_161"]},{"type":"production","id":"prod-ImportedBinding","name":"ImportedBinding","referencingIds":["_ref_126","_ref_138","_ref_147","_ref_148","_ref_155","_ref_156","_ref_162","_ref_164"]},{"type":"op","aoid":"ImportEntries","refId":"sec-static-semantics-importentries"},{"type":"clause","id":"sec-static-semantics-importentries","titleHTML":"Static Semantics: ImportEntries ( )","number":"16.2.1","referencingIds":["_ref_20","_ref_110","_ref_111"]},{"type":"clause","id":"sec-imports","titleHTML":"Imports","number":"16.2"},{"type":"clause","id":"sec-ecmascript-language-scripts-and-modules","titleHTML":"ECMAScript Language: Scripts and Modules","number":"16"},{"type":"term","term":"%AbstractModuleSource%","refId":"sec-%abstractmodulesource%-constructor"},{"type":"clause","id":"sec-%abstractmodulesource%","titleHTML":"%AbstractModuleSource% ( )","number":"28.1.1.1"},{"type":"clause","id":"sec-%abstractmodulesource%-constructor","titleHTML":"The %AbstractModuleSource% Constructor","number":"28.1.1","referencingIds":["_ref_41","_ref_114","_ref_115","_ref_116","_ref_118","_ref_119","_ref_120"]},{"type":"clause","id":"sec-%abstractmodulesource%.prototype","titleHTML":"%AbstractModuleSource%.prototype","number":"28.1.2.1"},{"type":"clause","id":"sec-properties-of-the-%abstractmodulesource%-intrinsic-object","titleHTML":"Properties of the %AbstractModuleSource% Intrinsic Object","number":"28.1.2"},{"type":"term","term":"%AbstractModuleSource% prototype object","refId":"sec-properties-of-the-%abstractmodulesource%-prototype-object"},{"type":"term","term":"%AbstractModuleSource.prototype%","refId":"sec-properties-of-the-%abstractmodulesource%-prototype-object"},{"type":"clause","id":"sec-%abstractmodulesource%.prototype.constructor","titleHTML":"%AbstractModuleSource%.prototype.constructor","number":"28.1.3.1"},{"type":"clause","id":"sec-get-%abstractmodulesource%.prototype.@@tostringtag","titleHTML":"get %AbstractModuleSource%.prototype [ @@toStringTag ] ( )","number":"28.1.3.2"},{"type":"clause","id":"sec-properties-of-the-%abstractmodulesource%-prototype-object","titleHTML":"Properties of the %AbstractModuleSource% Prototype Object","number":"28.1.3","referencingIds":["_ref_117"]},{"type":"clause","id":"sec-module-source-objects","title":"Module Source Objects","titleHTML":"Module Source Objects","number":"28.1","referencingIds":["_ref_3"]},{"type":"clause","id":"sec-reflection","titleHTML":"Reflection","number":"28"},{"type":"clause","id":"sec-host-defined-fields-summary","titleHTML":"Host-defined Fields","number":"A.1"},{"type":"clause","id":"sec-host-layering-points","titleHTML":"Host Layering Points","number":"A"},{"type":"clause","id":"sec-copyright-and-software-license","title":"Copyright & Software License","titleHTML":"Copyright & Software License","number":"B"}]}`); +let biblio = JSON.parse(`{"refsByClause":{"sec-well-known-intrinsic-objects":["_ref_0","_ref_1"],"sec-ContinueDynamicImport":["_ref_2","_ref_17"],"sec-abstract-module-records":["_ref_3","_ref_4","_ref_5","_ref_37","_ref_38","_ref_39","_ref_40","_ref_41","_ref_42","_ref_43"],"sec-cyclic-module-records":["_ref_6","_ref_7","_ref_44","_ref_45","_ref_46","_ref_47","_ref_48","_ref_49","_ref_50","_ref_51","_ref_129"],"sec-module-semantics":["_ref_8","_ref_9","_ref_92","_ref_93","_ref_94","_ref_95","_ref_130","_ref_131"],"sec-HostLoadImportedModule":["_ref_10","_ref_96","_ref_97","_ref_98","_ref_99","_ref_100","_ref_101","_ref_102","_ref_103","_ref_104"],"sec-host-defined-fields-summary":["_ref_11","_ref_118"],"sec-import-call-runtime-semantics-evaluation":["_ref_12","_ref_13","_ref_14"],"sec-evaluate-import-call":["_ref_15","_ref_16"],"sec-modulerequest-record":["_ref_18","_ref_19","_ref_20","_ref_21","_ref_22","_ref_23","_ref_24","_ref_25"],"sec-static-semantics-modulerequests":["_ref_26","_ref_27","_ref_28","_ref_29","_ref_30","_ref_31","_ref_32","_ref_33","_ref_34","_ref_35","_ref_36","_ref_119","_ref_120","_ref_121","_ref_122","_ref_123","_ref_124","_ref_125","_ref_126","_ref_127","_ref_128"],"sec-LoadRequestedModules":["_ref_52","_ref_53","_ref_54","_ref_55","_ref_56"],"sec-InnerModuleLoading":["_ref_57","_ref_58","_ref_59","_ref_60","_ref_61","_ref_62","_ref_63","_ref_64","_ref_65"],"sec-ContinueModuleLoading":["_ref_66","_ref_67","_ref_68"],"sec-moduledeclarationlinking":["_ref_69","_ref_70"],"sec-InnerModuleLinking":["_ref_71","_ref_72","_ref_73","_ref_74","_ref_75","_ref_76","_ref_77","_ref_78"],"sec-moduleevaluation":["_ref_79","_ref_80"],"sec-innermoduleevaluation":["_ref_81","_ref_82","_ref_83","_ref_84","_ref_85","_ref_86","_ref_87","_ref_88","_ref_89"],"sec-source-text-module-record-initialize-environment":["_ref_90","_ref_91"],"sec-FinishLoadingImportedModule":["_ref_105","_ref_106","_ref_107","_ref_108","_ref_109"],"sec-static-semantics-importentries":["_ref_110","_ref_111","_ref_112","_ref_113","_ref_114","_ref_154","_ref_155","_ref_156","_ref_157","_ref_158","_ref_159","_ref_160","_ref_161","_ref_162"],"sec-%abstractmodulesource%.prototype":["_ref_115"],"sec-get-%abstractmodulesource%.prototype.@@tostringtag":["_ref_116","_ref_117"],"sec-imports":["_ref_132","_ref_133","_ref_134","_ref_135","_ref_136","_ref_137","_ref_138","_ref_139","_ref_140","_ref_141","_ref_142","_ref_143","_ref_144","_ref_145","_ref_146","_ref_147","_ref_148","_ref_149","_ref_150","_ref_151","_ref_152","_ref_153"]},"entries":[{"type":"table","id":"table-well-known-intrinsic-objects","number":1,"caption":"Table 1: Well-Known Intrinsic Objects","referencingIds":["_ref_0"]},{"type":"clause","id":"sec-well-known-intrinsic-objects","titleHTML":"Well-Known Intrinsic Objects","number":"1.1.1.1"},{"type":"clause","id":"sec-object-type","titleHTML":"Object Type","number":"1.1.1","referencingIds":["_ref_116","_ref_117"]},{"type":"clause","id":"sec-ecmascript-language-types","titleHTML":"ECMAScript Language Types","number":"1.1"},{"type":"op","aoid":"Type","refId":"sec-ecmascript-data-types-and-values"},{"type":"clause","id":"sec-ecmascript-data-types-and-values","titleHTML":"ECMAScript Data Types and Values","number":"1"},{"type":"production","id":"prod-ImportCall","name":"ImportCall"},{"type":"clause","id":"sec-import-call-runtime-semantics-evaluation","titleHTML":"Runtime Semantics: Evaluation","number":"13.3.10.1"},{"type":"op","aoid":"ContinueDynamicImport","refId":"sec-ContinueDynamicImport"},{"type":"clause","id":"sec-ContinueDynamicImport","title":"ContinueDynamicImport ( promiseCapability, phase, moduleCompletion )","titleHTML":"ContinueDynamicImport ( promiseCapability, phase, moduleCompletion )","number":"13.3.10.2.1","referencingIds":["_ref_109"]},{"type":"op","aoid":"EvaluateImportCall","refId":"sec-evaluate-import-call"},{"type":"clause","id":"sec-evaluate-import-call","title":"EvaluateImportCall ( specifierExpression, phase )","titleHTML":"EvaluateImportCall ( specifierExpression, phase )","number":"13.3.10.2","referencingIds":["_ref_13","_ref_14"]},{"type":"clause","id":"sec-import-calls","titleHTML":"Import Calls","number":"13.3.10","referencingIds":["_ref_2","_ref_10"]},{"type":"clause","id":"sec-left-hand-side-expressions","titleHTML":"Left-Hand-Side Expressions","number":"13.3"},{"type":"clause","id":"sec-ecmascript-language-expressions","titleHTML":"ECMAScript Language: Expressions","number":"13"},{"type":"term","term":"ModuleRequest Record","id":"modulerequest-record","referencingIds":["_ref_15","_ref_18","_ref_19","_ref_21","_ref_23","_ref_25","_ref_26","_ref_30","_ref_31","_ref_33","_ref_34","_ref_36","_ref_49","_ref_59","_ref_74","_ref_85","_ref_97","_ref_106"]},{"type":"table","id":"table-modulerequest-record-fields","number":2,"caption":"Table 2: ModuleRequest Record fields"},{"type":"clause","id":"sec-modulerequest-record","title":"ModuleRequest Records","titleHTML":"ModuleRequest Records","number":"16.1.1.1"},{"type":"op","aoid":"ModuleRequests","refId":"sec-static-semantics-modulerequests"},{"type":"clause","id":"sec-static-semantics-modulerequests","titleHTML":"Static Semantics: ModuleRequests","number":"16.1.1.3","referencingIds":["_ref_20","_ref_27","_ref_28","_ref_29","_ref_32","_ref_35","_ref_113"]},{"type":"term","term":"Module Record","refId":"sec-abstract-module-records"},{"type":"table","id":"table-module-record-fields","number":3,"caption":"Table 3: Module Record Fields","referencingIds":["_ref_3","_ref_6","_ref_11"]},{"type":"table","id":"table-abstract-methods-of-module-records","number":4,"caption":"Table 4: Abstract Methods of Module Records","referencingIds":["_ref_4"]},{"type":"term","term":"ResolvedBinding Record","id":"resolvedbinding-record","referencingIds":["_ref_90"]},{"type":"clause","id":"sec-abstract-module-records","titleHTML":"Abstract Module Records","number":"16.1.1.4","referencingIds":["_ref_17","_ref_38","_ref_39","_ref_40","_ref_41","_ref_42","_ref_43","_ref_45","_ref_53","_ref_57","_ref_66","_ref_71","_ref_78","_ref_81","_ref_89","_ref_99","_ref_103","_ref_104","_ref_107","_ref_118"]},{"type":"term","term":"Cyclic Module Record","id":"cyclic-module-record","referencingIds":["_ref_24","_ref_37","_ref_44","_ref_46","_ref_47","_ref_48","_ref_50","_ref_51","_ref_52","_ref_58","_ref_65","_ref_69","_ref_72","_ref_73","_ref_76","_ref_77","_ref_79","_ref_82","_ref_84","_ref_87","_ref_88","_ref_96","_ref_105"]},{"type":"table","id":"table-cyclic-module-fields","number":5,"caption":"Table 5: Additional Fields of Cyclic Module Records","referencingIds":["_ref_7"]},{"type":"op","aoid":"InnerModuleLoading","refId":"sec-InnerModuleLoading"},{"type":"clause","id":"sec-InnerModuleLoading","title":"InnerModuleLoading ( state, module, loadType )","titleHTML":"InnerModuleLoading ( state, module, loadType )","number":"16.1.1.5.1.1","referencingIds":["_ref_54","_ref_56","_ref_60","_ref_68"]},{"type":"op","aoid":"ContinueModuleLoading","refId":"sec-ContinueModuleLoading"},{"type":"clause","id":"sec-ContinueModuleLoading","title":"ContinueModuleLoading ( state, phase, moduleCompletion )","titleHTML":"ContinueModuleLoading ( state, phase, moduleCompletion )","number":"16.1.1.5.1.2","referencingIds":["_ref_64","_ref_108"]},{"type":"clause","id":"sec-LoadRequestedModules","title":"LoadRequestedModules ( [ hostDefined ] )","titleHTML":"LoadRequestedModules ( [ hostDefined ] )","number":"16.1.1.5.1"},{"type":"op","aoid":"InnerModuleLinking","refId":"sec-InnerModuleLinking"},{"type":"clause","id":"sec-InnerModuleLinking","title":"InnerModuleLinking ( module, stack, index )","titleHTML":"InnerModuleLinking ( module, stack, index )","number":"16.1.1.5.2.1","referencingIds":["_ref_70","_ref_75","_ref_83"]},{"type":"clause","id":"sec-moduledeclarationlinking","titleHTML":"Link ( )","number":"16.1.1.5.2"},{"type":"op","aoid":"InnerModuleEvaluation","refId":"sec-innermoduleevaluation"},{"type":"clause","id":"sec-innermoduleevaluation","title":"InnerModuleEvaluation ( module, stack, index )","titleHTML":"InnerModuleEvaluation ( module, stack, index )","number":"16.1.1.5.3.1","referencingIds":["_ref_80","_ref_86"]},{"type":"clause","id":"sec-moduleevaluation","titleHTML":"Evaluate ( )","number":"16.1.1.5.3"},{"type":"clause","id":"sec-cyclic-module-records","titleHTML":"Cyclic Module Records","number":"16.1.1.5"},{"type":"clause","id":"sec-source-text-module-record-getmodulesource","title":"GetModuleSource ( )","titleHTML":"GetModuleSource ( )","number":"16.1.1.6.1"},{"type":"clause","id":"sec-source-text-module-record-initialize-environment","titleHTML":"InitializeEnvironment ( )","number":"16.1.1.6.2"},{"type":"clause","id":"sec-source-text-module-records","titleHTML":"Source Text Module Records","number":"16.1.1.6"},{"type":"term","term":"ImportEntry Record","id":"importentry-record","referencingIds":["_ref_91","_ref_92","_ref_93","_ref_94","_ref_95","_ref_110","_ref_114"]},{"type":"table","id":"table-importentry-record-fields","number":6,"caption":"Table 6: ImportEntry Record Fields","referencingIds":["_ref_8"]},{"type":"table","id":"table-import-forms-mapping-to-importentry-records","number":7,"caption":"Table 7 (Informative): Import Forms Mappings to ImportEntry Records","referencingIds":["_ref_9"]},{"type":"note","id":"note-HostLoadImportedModule-referrer-Realm-Record","number":1},{"type":"op","aoid":"HostLoadImportedModule","refId":"sec-HostLoadImportedModule"},{"type":"clause","id":"sec-HostLoadImportedModule","title":"HostLoadImportedModule ( referrer, specifier, moduleRequest, hostDefined, payload )","titleHTML":"HostLoadImportedModule ( referrer, specifier, moduleRequest, hostDefined, payload )","number":"16.1.1.7","referencingIds":["_ref_12","_ref_16","_ref_55","_ref_61","_ref_62","_ref_67"]},{"type":"op","aoid":"FinishLoadingImportedModule","refId":"sec-FinishLoadingImportedModule"},{"type":"clause","id":"sec-FinishLoadingImportedModule","title":"FinishLoadingImportedModule ( referrer, specifier, moduleRequest, payload, result )","titleHTML":"FinishLoadingImportedModule ( referrer, specifier, moduleRequest, payload, result )","number":"16.1.1.8","referencingIds":["_ref_63","_ref_98","_ref_100","_ref_101","_ref_102"]},{"type":"clause","id":"sec-module-semantics","titleHTML":"Module Semantics","number":"16.1.1"},{"type":"clause","id":"sec-modules","titleHTML":"Modules","number":"16.1"},{"type":"production","id":"prod-ImportDeclaration","name":"ImportDeclaration","referencingIds":["_ref_131"]},{"type":"production","id":"prod-ImportClause","name":"ImportClause","referencingIds":["_ref_119","_ref_132","_ref_154","_ref_157"]},{"type":"production","id":"prod-ImportedDefaultBinding","name":"ImportedDefaultBinding","referencingIds":["_ref_137","_ref_140","_ref_142"]},{"type":"production","id":"prod-NameSpaceImport","name":"NameSpaceImport","referencingIds":["_ref_138","_ref_141"]},{"type":"production","id":"prod-NamedImports","name":"NamedImports","referencingIds":["_ref_139","_ref_143"]},{"type":"production","id":"prod-FromClause","name":"FromClause","referencingIds":["_ref_120","_ref_121","_ref_122","_ref_124","_ref_125","_ref_126","_ref_127","_ref_128","_ref_133","_ref_136","_ref_155","_ref_156","_ref_160","_ref_161"]},{"type":"production","id":"prod-ImportsList","name":"ImportsList","referencingIds":["_ref_146","_ref_147","_ref_150"]},{"type":"production","id":"prod-ImportSpecifier","name":"ImportSpecifier","referencingIds":["_ref_149","_ref_151"]},{"type":"production","id":"prod-ModuleSpecifier","name":"ModuleSpecifier","referencingIds":["_ref_129","_ref_130","_ref_134","_ref_148","_ref_158"]},{"type":"production","id":"prod-ImportedBinding","name":"ImportedBinding","referencingIds":["_ref_123","_ref_135","_ref_144","_ref_145","_ref_152","_ref_153","_ref_159","_ref_162"]},{"type":"op","aoid":"ImportEntries","refId":"sec-static-semantics-importentries"},{"type":"clause","id":"sec-static-semantics-importentries","titleHTML":"Static Semantics: ImportEntries ( )","number":"16.2.1","referencingIds":["_ref_22","_ref_111","_ref_112"]},{"type":"clause","id":"sec-imports","titleHTML":"Imports","number":"16.2"},{"type":"clause","id":"sec-ecmascript-language-scripts-and-modules","titleHTML":"ECMAScript Language: Scripts and Modules","number":"16"},{"type":"clause","id":"sec-%abstractmodulesource%","titleHTML":"%AbstractModuleSource% ( )","number":"28.1.1.1"},{"type":"clause","id":"sec-%abstractmodulesource%-constructor","titleHTML":"The %AbstractModuleSource% Constructor","number":"28.1.1","referencingIds":["_ref_1"]},{"type":"clause","id":"sec-%abstractmodulesource%.prototype","titleHTML":"%AbstractModuleSource%.prototype","number":"28.1.2.1"},{"type":"clause","id":"sec-properties-of-the-%abstractmodulesource%-intrinsic-object","titleHTML":"Properties of the %AbstractModuleSource% Intrinsic Object","number":"28.1.2"},{"type":"term","term":"%AbstractModuleSource% prototype object","refId":"sec-properties-of-the-%abstractmodulesource%-prototype-object"},{"type":"term","term":"%AbstractModuleSource.prototype%","refId":"sec-properties-of-the-%abstractmodulesource%-prototype-object"},{"type":"clause","id":"sec-%abstractmodulesource%.prototype.constructor","titleHTML":"%AbstractModuleSource%.prototype.constructor","number":"28.1.3.1"},{"type":"clause","id":"sec-get-%abstractmodulesource%.prototype.@@tostringtag","titleHTML":"get %AbstractModuleSource%.prototype [ @@toStringTag ]","number":"28.1.3.2"},{"type":"clause","id":"sec-properties-of-the-%abstractmodulesource%-prototype-object","titleHTML":"Properties of the %AbstractModuleSource% Prototype Object","number":"28.1.3","referencingIds":["_ref_115"]},{"type":"clause","id":"sec-module-source-objects","title":"Module Source Objects","titleHTML":"Module Source Objects","number":"28.1","referencingIds":["_ref_5"]},{"type":"clause","id":"sec-reflection","titleHTML":"Reflection","number":"28"},{"type":"clause","id":"sec-host-defined-fields-summary","titleHTML":"Host-defined Fields","number":"A.1"},{"type":"clause","id":"sec-host-layering-points","titleHTML":"Host Layering Points","number":"A"},{"type":"clause","id":"sec-copyright-and-software-license","title":"Copyright & Software License","titleHTML":"Copyright & Software License","number":"B"}]}`); ;let usesMultipage = false