diff --git a/README.md b/README.md index e48ae8e..82a3b65 100644 --- a/README.md +++ b/README.md @@ -342,3 +342,36 @@ function Foo() { However, this solution doesn't cover deferring the loading of submodules of a lazy graph, and would not acheive the characteristics we are looking for. + +#### Why `import defer *` gives a different namespace object from `import *`? + +If a deferred module throws while being evaluated, `ns.foo` will throw the evaluation error: + +```js +// module-that-throws1 +export let a = 1; +throw new Error("oops"); +``` +```js +// main1.js +import defer * as ns1 from 'module-that-throws'; +try { ns1.a } catch (e) { console.log('caught', e) } // logs "oops" +``` + +Module namespace objects of modules that are already evaluated do now throw error on +property access: +```js +// module-that-throws2 +import * as ns2 from 'module-that-throws'; +globalThis.ns2 = ns2; +export let a = 1; +throw new Error("oops"); +``` +```js +// main2.js +import("module-that-throws").finally(() => { + try { ns2.a } catch (e) { console.log('caught', e) } // Doesn't throw +}); +``` + +This is not a problem today, because having access to the namespace object of a module that threw during evaluation is incredibly rare. However, it would be incredibly more common with `import defer` declarations. To guarantee that the behavior of `main1.js` is not affected by module previously loaded, `ns2.foo` must throw even if `module-that-throws` is already evaluated, and thus it cannot be the same namespace object as `import *`. diff --git a/index.html b/index.html index ccb1f77..0ee8c68 100644 --- a/index.html +++ b/index.html @@ -1355,7 +1355,7 @@ }); let sdoMap = JSON.parse(`{"prod-uZn3IQfi":{"Evaluation":{"clause":"13.3.10.1","ids":["prod-4N8EtSSM"]}},"prod-RT5EoM-H":{"Evaluation":{"clause":"13.3.10.1","ids":["prod-iSXCyv8Y"]}},"prod-7jzzWh1g":{"ModuleRequests":{"clause":"16.2.1.3","ids":["prod-KwkKYyRj"]},"ImportEntries":{"clause":"16.2.2.2","ids":["prod-65kV3a3C"]},"ExportEntries":{"clause":"16.2.3.4","ids":["prod-VtH9KIhP"]}},"prod-AoB9QhTO":{"ModuleRequests":{"clause":"16.2.1.3","ids":["prod-K1adkbP6"]}},"prod-GXF21Ewo":{"ModuleRequests":{"clause":"16.2.1.3","ids":["prod-9OD1gHQa"]},"ImportEntries":{"clause":"16.2.2.2","ids":["prod-8cqfbQ1C"]},"ExportedNames":{"clause":"16.2.3.3","ids":["prod-Td0h-qi5"]},"ExportEntries":{"clause":"16.2.3.4","ids":["prod-paVpIqc4"]}},"prod-hV3VZEve":{"ModuleRequests":{"clause":"16.2.1.3","ids":["prod-pGkooQP4"]},"ImportEntries":{"clause":"16.2.2.2","ids":["prod-myYDa7qJ"]},"ExportedNames":{"clause":"16.2.3.3","ids":["prod-fa0LziO_"]},"ExportEntries":{"clause":"16.2.3.4","ids":["prod-K7CKbuyc"]}},"prod-iwOZrQKc":{"ModuleRequests":{"clause":"16.2.1.3","ids":["prod-Fii3Jv-w","prod-DS9rqJfO"]},"ImportEntries":{"clause":"16.2.2.2","ids":["prod-qOrVXe0P"]}},"prod-hjv695N2":{"ModuleRequests":{"clause":"16.2.1.3","ids":["prod-geKEXfWi"]}},"prod-xWvkB_EQ":{"ModuleRequests":{"clause":"16.2.1.3","ids":["prod-ShgW98pi"]}},"prod---2Mdo2Q":{"ModuleRequests":{"clause":"16.2.1.3","ids":["prod-x1UQSoBl"]},"ExportEntries":{"clause":"16.2.3.4","ids":["prod-VQKcYkbx"]}},"prod-w_WAVAwX":{"ModuleRequests":{"clause":"16.2.1.3","ids":["prod-vvvIsXz5"]},"ExportedNames":{"clause":"16.2.3.3","ids":["prod-n6JkNQnf"]},"ExportEntries":{"clause":"16.2.3.4","ids":["prod-vHJuGFG0"]}},"prod-60Xh0dpZ":{"ModuleRequests":{"clause":"16.2.1.3","ids":["prod-GV0VESxu"]},"ExportedNames":{"clause":"16.2.3.3","ids":["prod-NjdAgwQZ"]},"ExportEntries":{"clause":"16.2.3.4","ids":["prod-7BCAocpR"]}},"prod-bE4rfMak":{"ModuleRequests":{"clause":"16.2.1.3","ids":["prod-VYqY45eE"]},"ExportedNames":{"clause":"16.2.3.3","ids":["prod-iOoR-XLv"]},"ExportEntries":{"clause":"16.2.3.4","ids":["prod-rg_YnEcS"]}},"prod-KPFnW3Lq":{"ModuleRequests":{"clause":"16.2.1.3","ids":["prod-bcC47tAa"]},"ExportedNames":{"clause":"16.2.3.3","ids":["prod-BuNuTBV9"]},"ExportEntries":{"clause":"16.2.3.4","ids":["prod-A54_tyTm"]}},"prod-GUPXSqcT":{"ModuleRequests":{"clause":"16.2.1.3","ids":["prod-GGFgV72D"]},"ExportedNames":{"clause":"16.2.3.3","ids":["prod-fWfjxGVB"]},"ExportEntries":{"clause":"16.2.3.4","ids":["prod-04PQQ9j2"]}},"prod-IobLK26D":{"ImportEntries":{"clause":"16.2.2.2","ids":["prod-qEXtoziY"]},"ExportedNames":{"clause":"16.2.3.3","ids":["prod-ebSwvFft"]}},"prod-CDGJVPkq":{"ImportEntries":{"clause":"16.2.2.2","ids":["prod--ST7ch2j"]}},"prod-E3Y7C_Ei":{"ExportedNames":{"clause":"16.2.3.3","ids":["prod-Nqbdsw0J"]},"ExportEntries":{"clause":"16.2.3.4","ids":["prod-AebNVOm2"]}},"prod-efW0NtUW":{"ExportedNames":{"clause":"16.2.3.3","ids":["prod-H38kB23_"]}},"prod-N6rwTU5m":{"ExportedNames":{"clause":"16.2.3.3","ids":["prod-2_hHRuoS"]}},"prod-gG1rdVmA":{"ExportedNames":{"clause":"16.2.3.3","ids":["prod-zlltzYPM"]}},"prod-tKOro2Xm":{"ExportedNames":{"clause":"16.2.3.3","ids":["prod-tyOEKkRB"]}},"prod-JgWQiNCe":{"ExportedNames":{"clause":"16.2.3.3","ids":["prod-VeE5fiYD"]}},"prod-GlqP_AXb":{"ExportedNames":{"clause":"16.2.3.3","ids":["prod-KtpQleM7"]}},"prod-ya486nM7":{"ExportedNames":{"clause":"16.2.3.3","ids":["prod-jiop1t1m"]}}}`); -let biblio = JSON.parse(`{"refsByClause":{"sec-module-namespace-exotic-objects":["_ref_0","_ref_1","_ref_21","_ref_22","_ref_23","_ref_24","_ref_25","_ref_161","_ref_162"],"sec-evaluate-import-call":["_ref_2","_ref_38","_ref_39","_ref_40","_ref_163"],"sec-ContinueDynamicImport":["_ref_3","_ref_41","_ref_42"],"sec-cyclic-module-records":["_ref_4","_ref_5","_ref_6","_ref_62","_ref_63","_ref_64","_ref_65","_ref_66","_ref_67","_ref_68","_ref_69","_ref_70","_ref_71","_ref_72","_ref_73","_ref_74","_ref_189"],"sec-example-cyclic-module-record-graphs":["_ref_7","_ref_8","_ref_9","_ref_10","_ref_11","_ref_12","_ref_13","_ref_14","_ref_15","_ref_114","_ref_115","_ref_116","_ref_117","_ref_118","_ref_119","_ref_120","_ref_121","_ref_122","_ref_123","_ref_124","_ref_125","_ref_126","_ref_127","_ref_128","_ref_129","_ref_130","_ref_131","_ref_132","_ref_133"],"sec-example-cyclic-module-record-graphs-deferred-imports":["_ref_16","_ref_17","_ref_18","_ref_19","_ref_20","_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"],"sec-module-namespace-exotic-objects-get-p-receiver":["_ref_26","_ref_27","_ref_28","_ref_29","_ref_30","_ref_31","_ref_32"],"sec-module-namespace-exotic-objects-get-p-receiver-ReadyForSyncExecution":["_ref_33","_ref_34","_ref_35"],"sec-import-call-runtime-semantics-evaluation":["_ref_36","_ref_37"],"sec-modulerequest-record":["_ref_43","_ref_44","_ref_45","_ref_46","_ref_47","_ref_48","_ref_49","_ref_50"],"sec-static-semantics-modulerequests":["_ref_51","_ref_52","_ref_53","_ref_54","_ref_55","_ref_56","_ref_57","_ref_58","_ref_59","_ref_60","_ref_61","_ref_171","_ref_172","_ref_173","_ref_174","_ref_175","_ref_176","_ref_177","_ref_178","_ref_179","_ref_180","_ref_181","_ref_182","_ref_183","_ref_184","_ref_185","_ref_186","_ref_187","_ref_188"],"sec-LoadRequestedModules":["_ref_75","_ref_76","_ref_77","_ref_78"],"sec-InnerModuleLoading":["_ref_79","_ref_80","_ref_81","_ref_82","_ref_83","_ref_84"],"sec-ContinueModuleLoading":["_ref_85","_ref_86"],"sec-moduledeclarationlinking":["_ref_87","_ref_88","_ref_89","_ref_90"],"sec-InnerModuleLinking":["_ref_91","_ref_92","_ref_93","_ref_94","_ref_95","_ref_96"],"sec-moduleevaluation":["_ref_97","_ref_98","_ref_99","_ref_100"],"sec-innermoduleevaluation":["_ref_101","_ref_102","_ref_103","_ref_104","_ref_105","_ref_106","_ref_107","_ref_108","_ref_109"],"sec-EvaluateSync":["_ref_110"],"sec-GatherAsynchronousTransitiveDependencies":["_ref_111","_ref_112","_ref_113"],"sec-static-semantics-importentries":["_ref_150","_ref_151","_ref_152","_ref_217","_ref_218","_ref_219","_ref_220","_ref_221","_ref_222","_ref_223","_ref_224","_ref_225","_ref_226"],"sec-static-semantics-exportednames":["_ref_153","_ref_154","_ref_155","_ref_156","_ref_157","_ref_158","_ref_244","_ref_245","_ref_246","_ref_247","_ref_248","_ref_249","_ref_250","_ref_251","_ref_252","_ref_253","_ref_254","_ref_255","_ref_256","_ref_257","_ref_258","_ref_259","_ref_260","_ref_261","_ref_262","_ref_263","_ref_264"],"sec-static-semantics-exportentries":["_ref_159","_ref_160","_ref_265","_ref_266","_ref_267","_ref_268","_ref_269","_ref_270","_ref_271"],"sec-modules":["_ref_164","_ref_165","_ref_166","_ref_167","_ref_168","_ref_169","_ref_170"],"sec-imports":["_ref_190","_ref_191","_ref_192","_ref_193","_ref_194","_ref_195","_ref_196","_ref_197","_ref_198","_ref_199","_ref_200","_ref_201","_ref_202","_ref_203","_ref_204","_ref_205","_ref_206","_ref_207","_ref_208","_ref_209","_ref_210"],"sec-imports-static-semantics-early-errors":["_ref_211","_ref_212","_ref_213","_ref_214","_ref_215","_ref_216"],"sec-exports":["_ref_227","_ref_228","_ref_229","_ref_230","_ref_231","_ref_232","_ref_233","_ref_234","_ref_235","_ref_236","_ref_237","_ref_238","_ref_239"],"sec-exports-static-semantics-early-errors":["_ref_240","_ref_241","_ref_242","_ref_243"]},"entries":[{"type":"term","term":"module namespace exotic object","id":"module-namespace-exotic-object","referencingIds":["_ref_21","_ref_22","_ref_23","_ref_24","_ref_25","_ref_26","_ref_31"]},{"type":"table","id":"table-internal-slots-of-module-namespace-exotic-objects","number":1,"caption":"Table 1: Internal Slots of Module Namespace Exotic Objects","referencingIds":["_ref_1"]},{"type":"op","aoid":"ReadyForSyncExecution","refId":"sec-module-namespace-exotic-objects-get-p-receiver-ReadyForSyncExecution"},{"type":"clause","id":"sec-module-namespace-exotic-objects-get-p-receiver-ReadyForSyncExecution","title":"ReadyForSyncExecution ( module [ , seen ] )","titleHTML":"ReadyForSyncExecution ( module [ , seen ] )","number":"10.4.6.8.1","referencingIds":["_ref_29","_ref_32","_ref_35"]},{"type":"clause","id":"sec-module-namespace-exotic-objects-get-p-receiver","title":"[[Get]] ( P, Receiver )","titleHTML":"[[Get]] ( P, Receiver )","number":"10.4.6.8"},{"type":"clause","id":"sec-module-namespace-exotic-objects","titleHTML":"Module Namespace Exotic Objects","number":"10.4.6"},{"type":"clause","id":"sec-built-in-exotic-object-internal-methods-and-slots","titleHTML":"Built-in Exotic Object Internal Methods and Slots","number":"10.4"},{"type":"clause","id":"sec-ordinary-and-exotic-objects-behaviours","titleHTML":"Ordinary and Exotic Objects Behaviours","number":"10"},{"type":"production","id":"prod-ImportCall","name":"ImportCall","referencingIds":["_ref_163"]},{"type":"clause","id":"sec-import-call-runtime-semantics-evaluation","titleHTML":"Runtime Semantics: Evaluation","number":"13.3.10.1"},{"type":"term","term":"DynamicImportState Record","id":"dynamicimportstate-record","referencingIds":["_ref_38","_ref_39","_ref_40","_ref_41"]},{"type":"table","id":"table-dynamicimportstate-record-fields","number":2,"caption":"Table 2: DynamicImportState Record Fields","referencingIds":["_ref_2"]},{"type":"op","aoid":"ContinueDynamicImport","refId":"sec-ContinueDynamicImport"},{"type":"clause","id":"sec-ContinueDynamicImport","title":"ContinueDynamicImport ( promiseCapability, payload, moduleCompletion )","titleHTML":"ContinueDynamicImport ( promiseCapability, payload, moduleCompletion )","number":"13.3.10.2.1"},{"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_36","_ref_37"]},{"type":"clause","id":"sec-import-calls","titleHTML":"Import Calls","number":"13.3.10","referencingIds":["_ref_3"]},{"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":"production","id":"prod-Module","name":"Module","referencingIds":["_ref_161","_ref_162","_ref_244"]},{"type":"production","id":"prod-ModuleBody","name":"ModuleBody","referencingIds":["_ref_164"]},{"type":"production","id":"prod-ModuleItemList","name":"ModuleItemList","referencingIds":["_ref_165","_ref_167","_ref_173","_ref_175","_ref_217","_ref_219","_ref_245","_ref_247","_ref_265","_ref_267"]},{"type":"production","id":"prod-ModuleItem","name":"ModuleItem","referencingIds":["_ref_166","_ref_168","_ref_171","_ref_172","_ref_174","_ref_176","_ref_218","_ref_220","_ref_246","_ref_248","_ref_266","_ref_268"]},{"type":"production","id":"prod-ModuleExportName","name":"ModuleExportName","referencingIds":["_ref_209","_ref_230","_ref_237","_ref_238","_ref_239","_ref_252","_ref_253","_ref_260","_ref_261","_ref_262","_ref_263","_ref_264"]},{"type":"term","term":"ModuleRequest Record","id":"modulerequest-record","referencingIds":["_ref_34","_ref_43","_ref_44","_ref_46","_ref_48","_ref_50","_ref_51","_ref_55","_ref_56","_ref_58","_ref_59","_ref_61","_ref_66","_ref_81","_ref_93","_ref_105","_ref_112"]},{"type":"table","id":"table-modulerequest-fields","number":3,"caption":"Table 3: ModuleRequest Record fields"},{"type":"clause","id":"sec-modulerequest-record","title":"ModuleRequest Records","titleHTML":"ModuleRequest Records","number":"16.2.1.1"},{"type":"op","aoid":"ModuleRequests","refId":"sec-static-semantics-modulerequests"},{"type":"clause","id":"sec-static-semantics-modulerequests","titleHTML":"Static Semantics: ModuleRequests","number":"16.2.1.3","referencingIds":["_ref_45","_ref_52","_ref_53","_ref_54","_ref_57","_ref_60","_ref_152"]},{"type":"term","term":"Cyclic Module Record","id":"cyclic-module-record","referencingIds":["_ref_27","_ref_33","_ref_49","_ref_62","_ref_63","_ref_64","_ref_65","_ref_67","_ref_68","_ref_69","_ref_70","_ref_73","_ref_74","_ref_75","_ref_80","_ref_84","_ref_87","_ref_90","_ref_91","_ref_92","_ref_95","_ref_96","_ref_97","_ref_100","_ref_101","_ref_103","_ref_108","_ref_109","_ref_110","_ref_111","_ref_116"]},{"type":"table","id":"table-cyclic-module-fields","number":4,"caption":"Table 4: Additional Fields of Cyclic Module Records","referencingIds":["_ref_4"]},{"type":"table","id":"table-cyclic-module-methods","number":5,"caption":"Table 5: Additional Abstract Methods of Cyclic Module Records","referencingIds":["_ref_5"]},{"type":"term","term":"GraphLoadingState Record","id":"graphloadingstate-record","referencingIds":["_ref_71","_ref_72","_ref_77","_ref_79","_ref_85"]},{"type":"table","id":"table-graphloadingstate-record-fields","number":6,"caption":"Table 6: GraphLoadingState Record Fields","referencingIds":["_ref_6"]},{"type":"op","aoid":"InnerModuleLoading","refId":"sec-InnerModuleLoading"},{"type":"clause","id":"sec-InnerModuleLoading","title":"InnerModuleLoading ( state, module )","titleHTML":"InnerModuleLoading ( state, module )","number":"16.2.1.5.1.1","referencingIds":["_ref_76","_ref_78","_ref_82","_ref_86","_ref_117","_ref_118","_ref_119"]},{"type":"op","aoid":"ContinueModuleLoading","refId":"sec-ContinueModuleLoading"},{"type":"clause","id":"sec-ContinueModuleLoading","title":"ContinueModuleLoading ( state, moduleCompletion )","titleHTML":"ContinueModuleLoading ( state, moduleCompletion )","number":"16.2.1.5.1.2","referencingIds":["_ref_83"]},{"type":"clause","id":"sec-LoadRequestedModules","title":"LoadRequestedModules ( [ hostDefined ] )","titleHTML":"LoadRequestedModules ( [ hostDefined ] )","number":"16.2.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.2.1.5.2.1","referencingIds":["_ref_88","_ref_89","_ref_94","_ref_102","_ref_114","_ref_120","_ref_121","_ref_122","_ref_123","_ref_124","_ref_125"]},{"type":"clause","id":"sec-moduledeclarationlinking","titleHTML":"Link ( )","number":"16.2.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.2.1.5.3.1","referencingIds":["_ref_98","_ref_99","_ref_107","_ref_115","_ref_126","_ref_127","_ref_128","_ref_129","_ref_130","_ref_131","_ref_132","_ref_133","_ref_134","_ref_136","_ref_137","_ref_138","_ref_139","_ref_141","_ref_142","_ref_143","_ref_144","_ref_145","_ref_147","_ref_148","_ref_149"]},{"type":"op","aoid":"EvaluateSync","refId":"sec-EvaluateSync"},{"type":"clause","id":"sec-EvaluateSync","title":"EvaluateSync ( module )","titleHTML":"EvaluateSync ( module )","number":"16.2.1.5.3.2","referencingIds":["_ref_28","_ref_30","_ref_104"]},{"type":"op","aoid":"GatherAsynchronousTransitiveDependencies","refId":"sec-GatherAsynchronousTransitiveDependencies"},{"type":"clause","id":"sec-GatherAsynchronousTransitiveDependencies","title":"GatherAsynchronousTransitiveDependencies ( module, result [ , seen ] )","titleHTML":"GatherAsynchronousTransitiveDependencies ( module, result [ , seen ] )","number":"16.2.1.5.3.3","referencingIds":["_ref_42","_ref_106","_ref_113","_ref_135","_ref_140","_ref_146"]},{"type":"clause","id":"sec-moduleevaluation","titleHTML":"Evaluate ( )","number":"16.2.1.5.3"},{"type":"figure","id":"figure-module-graph-simple","number":1,"caption":"Figure 1: A simple module graph"},{"type":"figure","id":"figure-module-graph-missing","number":2,"caption":"Figure 2: A module graph with an unresolvable module"},{"type":"figure","id":"figure-module-graph-cycle","number":3,"caption":"Figure 3: A cyclic module graph"},{"type":"figure","id":"figure-module-graph-cycle-async","number":4,"caption":"Figure 4: An asynchronous cyclic module graph"},{"type":"table","id":"table-module-graph-cycle-async-fields-1","number":7,"caption":"Table 7: Module fields after the initial Evaluate() call","referencingIds":["_ref_7"]},{"type":"table","id":"table-module-graph-cycle-async-fields-2","number":8,"caption":"Table 8: Module fields after module _E_ finishes executing","referencingIds":["_ref_8"]},{"type":"table","id":"table-module-graph-cycle-async-fields-3","number":9,"caption":"Table 9: Module fields after module _D_ finishes executing","referencingIds":["_ref_9"]},{"type":"table","id":"table-module-graph-cycle-async-fields-4","number":10,"caption":"Table 10: Module fields after module _C_ finishes executing","referencingIds":["_ref_10"]},{"type":"table","id":"table-module-graph-cycle-async-fields-5","number":11,"caption":"Table 11: Module fields after module _B_ finishes executing","referencingIds":["_ref_11"]},{"type":"table","id":"table-module-graph-cycle-async-fields-6","number":12,"caption":"Table 12: Module fields after module _A_ finishes executing","referencingIds":["_ref_12"]},{"type":"table","id":"table-module-graph-cycle-async-fields-7","number":13,"caption":"Table 13: Module fields after module _C_ finishes with an error","referencingIds":["_ref_13"]},{"type":"table","id":"table-module-graph-cycle-async-fields-8","number":14,"caption":"Table 14: Module fields after module _A_ is rejected","referencingIds":["_ref_14"]},{"type":"table","id":"table-module-graph-cycle-async-fields-9","number":15,"caption":"Table 15: Module fields after module _B_ finishes executing in an erroring graph","referencingIds":["_ref_15"]},{"type":"figure","id":"figure-module-graph-deferred-simple","number":5,"caption":"Figure 5: A simple module graph with a deferred import"},{"type":"figure","id":"figure-module-graph-deferred-async","number":6,"caption":"Figure 6: A simple module graph with a deferred import and a transitive asynchronous dependency"},{"type":"table","id":"table-module-graph-deferred-async-fields-1","number":16,"caption":"Table 16: Module fields after the initial Evaluate() call","referencingIds":["_ref_16"]},{"type":"table","id":"table-module-graph-deferred-async-fields-2","number":17,"caption":"Table 17: Module fields after _C_ finishes executing","referencingIds":["_ref_17"]},{"type":"table","id":"table-module-graph-deferred-async-fields-3","number":18,"caption":"Table 18: Module fields after _C_ finishes executing with an exception","referencingIds":["_ref_18"]},{"type":"figure","id":"figure-module-graph-deferred-async-cycle-root","number":7,"caption":"Figure 7: A module graph with a deferred import and a cycle back to the root"},{"type":"table","id":"table-module-graph-deferred-async-cycle-root-fields-1","number":19,"caption":"Table 19: Module fields after the initial Evaluate() call","referencingIds":["_ref_19"]},{"type":"table","id":"table-module-graph-deferred-async-cycle-root-fields-2","number":20,"caption":"Table 20: Module fields after the _B_.ExecuteModule() call","referencingIds":["_ref_20"]},{"type":"clause","id":"sec-example-cyclic-module-record-graphs-deferred-imports","title":"Example Cyclic Module Record Graphs with Deferred Imports","titleHTML":"Example Cyclic Module Record Graphs with Deferred Imports","number":"16.2.1.5.4.1"},{"type":"clause","id":"sec-example-cyclic-module-record-graphs","titleHTML":"Example Cyclic Module Record Graphs","number":"16.2.1.5.4"},{"type":"clause","id":"sec-cyclic-module-records","titleHTML":"Cyclic Module Records","number":"16.2.1.5"},{"type":"clause","id":"sec-module-semantics","titleHTML":"Module Semantics","number":"16.2.1"},{"type":"production","id":"prod-ImportDeclaration","name":"ImportDeclaration","referencingIds":["_ref_169","_ref_211","_ref_212","_ref_251","_ref_269"]},{"type":"production","id":"prod-ImportClause","name":"ImportClause","referencingIds":["_ref_177","_ref_181","_ref_190","_ref_213","_ref_215","_ref_222","_ref_225"]},{"type":"production","id":"prod-ImportedDefaultBinding","name":"ImportedDefaultBinding","referencingIds":["_ref_193","_ref_196","_ref_198"]},{"type":"production","id":"prod-NameSpaceImport","name":"NameSpaceImport","referencingIds":["_ref_194","_ref_197","_ref_216"]},{"type":"production","id":"prod-NamedImports","name":"NamedImports","referencingIds":["_ref_195","_ref_199"]},{"type":"production","id":"prod-FromClause","name":"FromClause","referencingIds":["_ref_178","_ref_179","_ref_180","_ref_182","_ref_183","_ref_185","_ref_186","_ref_187","_ref_191","_ref_214","_ref_223","_ref_224","_ref_228"]},{"type":"production","id":"prod-ImportsList","name":"ImportsList","referencingIds":["_ref_202","_ref_203","_ref_206"]},{"type":"production","id":"prod-ImportSpecifier","name":"ImportSpecifier","referencingIds":["_ref_205","_ref_207"]},{"type":"production","id":"prod-ModuleSpecifier","name":"ModuleSpecifier","referencingIds":["_ref_189","_ref_192","_ref_204","_ref_226"]},{"type":"production","id":"prod-ImportedBinding","name":"ImportedBinding","referencingIds":["_ref_200","_ref_201","_ref_208","_ref_210"]},{"type":"clause","id":"sec-imports-static-semantics-early-errors","titleHTML":"Static Semantics: Early Errors","number":"16.2.2.1"},{"type":"op","aoid":"ImportEntries","refId":"sec-static-semantics-importentries"},{"type":"clause","id":"sec-static-semantics-importentries","titleHTML":"Static Semantics: ImportEntries","number":"16.2.2.2","referencingIds":["_ref_47","_ref_150","_ref_151"]},{"type":"clause","id":"sec-imports","titleHTML":"Imports","number":"16.2.2"},{"type":"production","id":"prod-ExportDeclaration","name":"ExportDeclaration","referencingIds":["_ref_170","_ref_221","_ref_249","_ref_250"]},{"type":"production","id":"prod-ExportFromClause","name":"ExportFromClause","referencingIds":["_ref_184","_ref_227"]},{"type":"production","id":"prod-NamedExports","name":"NamedExports","referencingIds":["_ref_188","_ref_229","_ref_231","_ref_240","_ref_241","_ref_242","_ref_243","_ref_254","_ref_255","_ref_270","_ref_271"]},{"type":"production","id":"prod-ExportsList","name":"ExportsList","referencingIds":["_ref_232","_ref_233","_ref_235","_ref_256","_ref_258"]},{"type":"production","id":"prod-ExportSpecifier","name":"ExportSpecifier","referencingIds":["_ref_234","_ref_236","_ref_257","_ref_259"]},{"type":"clause","id":"sec-exports-static-semantics-early-errors","titleHTML":"Static Semantics: Early Errors","number":"16.2.3.1"},{"type":"op","aoid":"ExportedNames","refId":"sec-static-semantics-exportednames"},{"type":"clause","id":"sec-static-semantics-exportednames","titleHTML":"Static Semantics: ExportedNames","number":"16.2.3.3","referencingIds":["_ref_153","_ref_154","_ref_155","_ref_156","_ref_157","_ref_158"]},{"type":"op","aoid":"ExportEntries","refId":"sec-static-semantics-exportentries"},{"type":"clause","id":"sec-static-semantics-exportentries","titleHTML":"Static Semantics: ExportEntries","number":"16.2.3.4","referencingIds":["_ref_159","_ref_160"]},{"type":"clause","id":"sec-exports","titleHTML":"Exports","number":"16.2.3","referencingIds":["_ref_0"]},{"type":"clause","id":"sec-modules","titleHTML":"Modules","number":"16.2"},{"type":"clause","id":"sec-ecmascript-language-scripts-and-modules","titleHTML":"ECMAScript Language: Scripts and Modules","number":"16"},{"type":"clause","id":"sec-copyright-and-software-license","title":"Copyright & Software License","titleHTML":"Copyright & Software License","number":"A"}]}`); +let biblio = JSON.parse(`{"refsByClause":{"sec-module-namespace-exotic-objects":["_ref_0","_ref_1","_ref_25","_ref_26","_ref_27","_ref_28","_ref_29","_ref_30","_ref_31","_ref_32","_ref_199","_ref_200"],"sec-modulenamespacecreate":["_ref_2","_ref_3","_ref_45","_ref_46","_ref_47"],"sec-evaluate-import-call":["_ref_4","_ref_50","_ref_51","_ref_52","_ref_201"],"sec-ContinueDynamicImport":["_ref_5","_ref_53","_ref_54","_ref_55","_ref_56","_ref_57"],"sec-abstract-module-records":["_ref_6","_ref_77","_ref_78"],"sec-cyclic-module-records":["_ref_7","_ref_8","_ref_9","_ref_10","_ref_79","_ref_80","_ref_81","_ref_82","_ref_83","_ref_84","_ref_85","_ref_86","_ref_87","_ref_88","_ref_89","_ref_90","_ref_91","_ref_92","_ref_93","_ref_94","_ref_227"],"sec-example-cyclic-module-record-graphs":["_ref_11","_ref_12","_ref_13","_ref_14","_ref_15","_ref_16","_ref_17","_ref_18","_ref_19","_ref_146","_ref_147","_ref_148","_ref_149","_ref_150","_ref_151","_ref_152","_ref_153","_ref_154","_ref_155","_ref_156","_ref_157","_ref_158","_ref_159","_ref_160","_ref_161","_ref_162","_ref_163","_ref_164","_ref_165","_ref_166"],"sec-example-cyclic-module-record-graphs-deferred-imports":["_ref_20","_ref_21","_ref_22","_ref_23","_ref_24","_ref_167","_ref_168","_ref_169","_ref_170","_ref_171","_ref_172","_ref_173","_ref_174","_ref_175","_ref_176","_ref_177","_ref_178","_ref_179","_ref_180","_ref_181","_ref_182"],"sec-module-namespace-exotic-objects-get-p-receiver":["_ref_33","_ref_34","_ref_35","_ref_36","_ref_37"],"sec-module-namespace-exotic-objects-get-p-receiver-EnsureDeferredNamespaceEvaluation":["_ref_38","_ref_39","_ref_40"],"sec-module-namespace-exotic-objects-get-p-receiver-ReadyForSyncExecution":["_ref_41","_ref_42","_ref_43","_ref_44"],"sec-import-call-runtime-semantics-evaluation":["_ref_48","_ref_49"],"sec-modulerequest-record":["_ref_58","_ref_59","_ref_60","_ref_61","_ref_62","_ref_63","_ref_64","_ref_65"],"sec-static-semantics-modulerequests":["_ref_66","_ref_67","_ref_68","_ref_69","_ref_70","_ref_71","_ref_72","_ref_73","_ref_74","_ref_75","_ref_76","_ref_209","_ref_210","_ref_211","_ref_212","_ref_213","_ref_214","_ref_215","_ref_216","_ref_217","_ref_218","_ref_219","_ref_220","_ref_221","_ref_222","_ref_223","_ref_224","_ref_225","_ref_226"],"sec-LoadRequestedModules":["_ref_95","_ref_96","_ref_97","_ref_98","_ref_99"],"sec-InnerModuleLoading":["_ref_100","_ref_101","_ref_102","_ref_103","_ref_104","_ref_105","_ref_106"],"sec-ContinueModuleLoading":["_ref_107","_ref_108","_ref_109"],"sec-moduledeclarationlinking":["_ref_110","_ref_111","_ref_112","_ref_113"],"sec-InnerModuleLinking":["_ref_114","_ref_115","_ref_116","_ref_117","_ref_118","_ref_119","_ref_120","_ref_121"],"sec-moduleevaluation":["_ref_122","_ref_123","_ref_124","_ref_125"],"sec-innermoduleevaluation":["_ref_126","_ref_127","_ref_128","_ref_129","_ref_130","_ref_131","_ref_132","_ref_133","_ref_134","_ref_135","_ref_136","_ref_137"],"sec-EvaluateSync":["_ref_138","_ref_139"],"sec-GatherAsynchronousTransitiveDependencies":["_ref_140","_ref_141","_ref_142","_ref_143","_ref_144","_ref_145"],"sec-source-text-module-record-initialize-environment":["_ref_183","_ref_184"],"sec-getmodulenamespace":["_ref_185","_ref_186","_ref_187"],"sec-static-semantics-importentries":["_ref_188","_ref_189","_ref_190","_ref_255","_ref_256","_ref_257","_ref_258","_ref_259","_ref_260","_ref_261","_ref_262","_ref_263","_ref_264"],"sec-static-semantics-exportednames":["_ref_191","_ref_192","_ref_193","_ref_194","_ref_195","_ref_196","_ref_282","_ref_283","_ref_284","_ref_285","_ref_286","_ref_287","_ref_288","_ref_289","_ref_290","_ref_291","_ref_292","_ref_293","_ref_294","_ref_295","_ref_296","_ref_297","_ref_298","_ref_299","_ref_300","_ref_301","_ref_302"],"sec-static-semantics-exportentries":["_ref_197","_ref_198","_ref_303","_ref_304","_ref_305","_ref_306","_ref_307","_ref_308","_ref_309"],"sec-modules":["_ref_202","_ref_203","_ref_204","_ref_205","_ref_206","_ref_207","_ref_208"],"sec-imports":["_ref_228","_ref_229","_ref_230","_ref_231","_ref_232","_ref_233","_ref_234","_ref_235","_ref_236","_ref_237","_ref_238","_ref_239","_ref_240","_ref_241","_ref_242","_ref_243","_ref_244","_ref_245","_ref_246","_ref_247","_ref_248"],"sec-imports-static-semantics-early-errors":["_ref_249","_ref_250","_ref_251","_ref_252","_ref_253","_ref_254"],"sec-exports":["_ref_265","_ref_266","_ref_267","_ref_268","_ref_269","_ref_270","_ref_271","_ref_272","_ref_273","_ref_274","_ref_275","_ref_276","_ref_277"],"sec-exports-static-semantics-early-errors":["_ref_278","_ref_279","_ref_280","_ref_281"]},"entries":[{"type":"term","term":"module namespace exotic object","id":"module-namespace-exotic-object","referencingIds":["_ref_25","_ref_26","_ref_27","_ref_28","_ref_30","_ref_33","_ref_36","_ref_46","_ref_47"]},{"type":"table","id":"table-internal-slots-of-module-namespace-exotic-objects","number":1,"caption":"Table 1: Internal Slots of Module Namespace Exotic Objects","referencingIds":["_ref_1","_ref_2"]},{"type":"op","aoid":"EnsureDeferredNamespaceEvaluation","refId":"sec-module-namespace-exotic-objects-get-p-receiver-EnsureDeferredNamespaceEvaluation"},{"type":"clause","id":"sec-module-namespace-exotic-objects-get-p-receiver-EnsureDeferredNamespaceEvaluation","title":"EnsureDeferredNamespaceEvaluation ( O )","titleHTML":"EnsureDeferredNamespaceEvaluation ( O )","number":"10.4.6.8.1","referencingIds":["_ref_34"]},{"type":"op","aoid":"ReadyForSyncExecution","refId":"sec-module-namespace-exotic-objects-get-p-receiver-ReadyForSyncExecution"},{"type":"clause","id":"sec-module-namespace-exotic-objects-get-p-receiver-ReadyForSyncExecution","title":"ReadyForSyncExecution ( module [ , seen ] )","titleHTML":"ReadyForSyncExecution ( module [ , seen ] )","number":"10.4.6.8.2","referencingIds":["_ref_37","_ref_39","_ref_44"]},{"type":"clause","id":"sec-module-namespace-exotic-objects-get-p-receiver","title":"[[Get]] ( P, Receiver )","titleHTML":"[[Get]] ( P, Receiver )","number":"10.4.6.8"},{"type":"op","aoid":"ModuleNamespaceCreate","refId":"sec-modulenamespacecreate"},{"type":"clause","id":"sec-modulenamespacecreate","title":"ModuleNamespaceCreate ( module, exports, phase )","titleHTML":"ModuleNamespaceCreate ( module, exports, phase )","number":"10.4.6.10","referencingIds":["_ref_29","_ref_187"]},{"type":"clause","id":"sec-module-namespace-exotic-objects","titleHTML":"Module Namespace Exotic Objects","number":"10.4.6","referencingIds":["_ref_3"]},{"type":"clause","id":"sec-built-in-exotic-object-internal-methods-and-slots","titleHTML":"Built-in Exotic Object Internal Methods and Slots","number":"10.4"},{"type":"clause","id":"sec-ordinary-and-exotic-objects-behaviours","titleHTML":"Ordinary and Exotic Objects Behaviours","number":"10"},{"type":"production","id":"prod-ImportCall","name":"ImportCall","referencingIds":["_ref_201"]},{"type":"clause","id":"sec-import-call-runtime-semantics-evaluation","titleHTML":"Runtime Semantics: Evaluation","number":"13.3.10.1"},{"type":"term","term":"DynamicImportState Record","id":"dynamicimportstate-record","referencingIds":["_ref_50","_ref_51","_ref_52","_ref_53"]},{"type":"table","id":"table-dynamicimportstate-record-fields","number":2,"caption":"Table 2: DynamicImportState Record Fields","referencingIds":["_ref_4"]},{"type":"op","aoid":"ContinueDynamicImport","refId":"sec-ContinueDynamicImport"},{"type":"clause","id":"sec-ContinueDynamicImport","title":"ContinueDynamicImport ( promiseCapability, payload, moduleCompletion )","titleHTML":"ContinueDynamicImport ( promiseCapability, payload, moduleCompletion )","number":"13.3.10.2.1"},{"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_48","_ref_49"]},{"type":"clause","id":"sec-import-calls","titleHTML":"Import Calls","number":"13.3.10","referencingIds":["_ref_5"]},{"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":"production","id":"prod-Module","name":"Module","referencingIds":["_ref_199","_ref_200","_ref_282"]},{"type":"production","id":"prod-ModuleBody","name":"ModuleBody","referencingIds":["_ref_202"]},{"type":"production","id":"prod-ModuleItemList","name":"ModuleItemList","referencingIds":["_ref_203","_ref_205","_ref_211","_ref_213","_ref_255","_ref_257","_ref_283","_ref_285","_ref_303","_ref_305"]},{"type":"production","id":"prod-ModuleItem","name":"ModuleItem","referencingIds":["_ref_204","_ref_206","_ref_209","_ref_210","_ref_212","_ref_214","_ref_256","_ref_258","_ref_284","_ref_286","_ref_304","_ref_306"]},{"type":"production","id":"prod-ModuleExportName","name":"ModuleExportName","referencingIds":["_ref_247","_ref_268","_ref_275","_ref_276","_ref_277","_ref_290","_ref_291","_ref_298","_ref_299","_ref_300","_ref_301","_ref_302"]},{"type":"term","term":"ModuleRequest Record","id":"modulerequest-record","referencingIds":["_ref_43","_ref_58","_ref_59","_ref_61","_ref_63","_ref_65","_ref_66","_ref_70","_ref_71","_ref_73","_ref_74","_ref_76","_ref_84","_ref_103","_ref_117","_ref_131","_ref_144"]},{"type":"table","id":"table-modulerequest-fields","number":3,"caption":"Table 3: ModuleRequest Record fields"},{"type":"clause","id":"sec-modulerequest-record","title":"ModuleRequest Records","titleHTML":"ModuleRequest Records","number":"16.2.1.1"},{"type":"op","aoid":"ModuleRequests","refId":"sec-static-semantics-modulerequests"},{"type":"clause","id":"sec-static-semantics-modulerequests","titleHTML":"Static Semantics: ModuleRequests","number":"16.2.1.3","referencingIds":["_ref_60","_ref_67","_ref_68","_ref_69","_ref_72","_ref_75","_ref_190"]},{"type":"term","term":"Module Record","refId":"sec-abstract-module-records"},{"type":"table","id":"table-module-record-fields","number":4,"caption":"Table 4: Module Record Fields","referencingIds":["_ref_6","_ref_7"]},{"type":"clause","id":"sec-abstract-module-records","titleHTML":"Abstract Module Records","number":"16.2.1.4","referencingIds":["_ref_31","_ref_32","_ref_42","_ref_45","_ref_54","_ref_57","_ref_78","_ref_80","_ref_85","_ref_86","_ref_96","_ref_101","_ref_108","_ref_114","_ref_121","_ref_126","_ref_133","_ref_137","_ref_138","_ref_140","_ref_141","_ref_142","_ref_149","_ref_185"]},{"type":"term","term":"Cyclic Module Record","id":"cyclic-module-record","referencingIds":["_ref_38","_ref_41","_ref_64","_ref_77","_ref_79","_ref_81","_ref_82","_ref_83","_ref_87","_ref_88","_ref_89","_ref_90","_ref_93","_ref_94","_ref_95","_ref_102","_ref_106","_ref_110","_ref_113","_ref_115","_ref_116","_ref_119","_ref_120","_ref_122","_ref_125","_ref_127","_ref_129","_ref_135","_ref_136","_ref_139","_ref_143","_ref_148","_ref_186"]},{"type":"table","id":"table-cyclic-module-fields","number":5,"caption":"Table 5: Additional Fields of Cyclic Module Records","referencingIds":["_ref_8"]},{"type":"table","id":"table-cyclic-module-methods","number":6,"caption":"Table 6: Additional Abstract Methods of Cyclic Module Records","referencingIds":["_ref_9"]},{"type":"term","term":"GraphLoadingState Record","id":"graphloadingstate-record","referencingIds":["_ref_91","_ref_92","_ref_98","_ref_100","_ref_107"]},{"type":"table","id":"table-graphloadingstate-record-fields","number":7,"caption":"Table 7: GraphLoadingState Record Fields","referencingIds":["_ref_10"]},{"type":"op","aoid":"InnerModuleLoading","refId":"sec-InnerModuleLoading"},{"type":"clause","id":"sec-InnerModuleLoading","title":"InnerModuleLoading ( state, module )","titleHTML":"InnerModuleLoading ( state, module )","number":"16.2.1.5.1.1","referencingIds":["_ref_97","_ref_99","_ref_104","_ref_109","_ref_150","_ref_151","_ref_152"]},{"type":"op","aoid":"ContinueModuleLoading","refId":"sec-ContinueModuleLoading"},{"type":"clause","id":"sec-ContinueModuleLoading","title":"ContinueModuleLoading ( state, moduleCompletion )","titleHTML":"ContinueModuleLoading ( state, moduleCompletion )","number":"16.2.1.5.1.2","referencingIds":["_ref_105"]},{"type":"clause","id":"sec-LoadRequestedModules","title":"LoadRequestedModules ( [ hostDefined ] )","titleHTML":"LoadRequestedModules ( [ hostDefined ] )","number":"16.2.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.2.1.5.2.1","referencingIds":["_ref_111","_ref_112","_ref_118","_ref_128","_ref_146","_ref_153","_ref_154","_ref_155","_ref_156","_ref_157","_ref_158"]},{"type":"clause","id":"sec-moduledeclarationlinking","titleHTML":"Link ( )","number":"16.2.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.2.1.5.3.1","referencingIds":["_ref_123","_ref_124","_ref_134","_ref_147","_ref_159","_ref_160","_ref_161","_ref_162","_ref_163","_ref_164","_ref_165","_ref_166","_ref_167","_ref_169","_ref_170","_ref_171","_ref_172","_ref_174","_ref_175","_ref_176","_ref_177","_ref_178","_ref_180","_ref_181","_ref_182"]},{"type":"op","aoid":"EvaluateSync","refId":"sec-EvaluateSync"},{"type":"clause","id":"sec-EvaluateSync","title":"EvaluateSync ( module )","titleHTML":"EvaluateSync ( module )","number":"16.2.1.5.3.2","referencingIds":["_ref_40","_ref_130"]},{"type":"op","aoid":"GatherAsynchronousTransitiveDependencies","refId":"sec-GatherAsynchronousTransitiveDependencies"},{"type":"clause","id":"sec-GatherAsynchronousTransitiveDependencies","title":"GatherAsynchronousTransitiveDependencies ( module, result [ , seen ] )","titleHTML":"GatherAsynchronousTransitiveDependencies ( module, result [ , seen ] )","number":"16.2.1.5.3.3","referencingIds":["_ref_56","_ref_132","_ref_145","_ref_168","_ref_173","_ref_179"]},{"type":"clause","id":"sec-moduleevaluation","titleHTML":"Evaluate ( )","number":"16.2.1.5.3"},{"type":"figure","id":"figure-module-graph-simple","number":1,"caption":"Figure 1: A simple module graph"},{"type":"figure","id":"figure-module-graph-missing","number":2,"caption":"Figure 2: A module graph with an unresolvable module"},{"type":"figure","id":"figure-module-graph-cycle","number":3,"caption":"Figure 3: A cyclic module graph"},{"type":"figure","id":"figure-module-graph-cycle-async","number":4,"caption":"Figure 4: An asynchronous cyclic module graph"},{"type":"table","id":"table-module-graph-cycle-async-fields-1","number":8,"caption":"Table 8: Module fields after the initial Evaluate() call","referencingIds":["_ref_11"]},{"type":"table","id":"table-module-graph-cycle-async-fields-2","number":9,"caption":"Table 9: Module fields after module _E_ finishes executing","referencingIds":["_ref_12"]},{"type":"table","id":"table-module-graph-cycle-async-fields-3","number":10,"caption":"Table 10: Module fields after module _D_ finishes executing","referencingIds":["_ref_13"]},{"type":"table","id":"table-module-graph-cycle-async-fields-4","number":11,"caption":"Table 11: Module fields after module _C_ finishes executing","referencingIds":["_ref_14"]},{"type":"table","id":"table-module-graph-cycle-async-fields-5","number":12,"caption":"Table 12: Module fields after module _B_ finishes executing","referencingIds":["_ref_15"]},{"type":"table","id":"table-module-graph-cycle-async-fields-6","number":13,"caption":"Table 13: Module fields after module _A_ finishes executing","referencingIds":["_ref_16"]},{"type":"table","id":"table-module-graph-cycle-async-fields-7","number":14,"caption":"Table 14: Module fields after module _C_ finishes with an error","referencingIds":["_ref_17"]},{"type":"table","id":"table-module-graph-cycle-async-fields-8","number":15,"caption":"Table 15: Module fields after module _A_ is rejected","referencingIds":["_ref_18"]},{"type":"table","id":"table-module-graph-cycle-async-fields-9","number":16,"caption":"Table 16: Module fields after module _B_ finishes executing in an erroring graph","referencingIds":["_ref_19"]},{"type":"figure","id":"figure-module-graph-deferred-simple","number":5,"caption":"Figure 5: A simple module graph with a deferred import"},{"type":"figure","id":"figure-module-graph-deferred-async","number":6,"caption":"Figure 6: A simple module graph with a deferred import and a transitive asynchronous dependency"},{"type":"table","id":"table-module-graph-deferred-async-fields-1","number":17,"caption":"Table 17: Module fields after the initial Evaluate() call","referencingIds":["_ref_20"]},{"type":"table","id":"table-module-graph-deferred-async-fields-2","number":18,"caption":"Table 18: Module fields after _C_ finishes executing","referencingIds":["_ref_21"]},{"type":"table","id":"table-module-graph-deferred-async-fields-3","number":19,"caption":"Table 19: Module fields after _C_ finishes executing with an exception","referencingIds":["_ref_22"]},{"type":"figure","id":"figure-module-graph-deferred-async-cycle-root","number":7,"caption":"Figure 7: A module graph with a deferred import and a cycle back to the root"},{"type":"table","id":"table-module-graph-deferred-async-cycle-root-fields-1","number":20,"caption":"Table 20: Module fields after the initial Evaluate() call","referencingIds":["_ref_23"]},{"type":"table","id":"table-module-graph-deferred-async-cycle-root-fields-2","number":21,"caption":"Table 21: Module fields after the _B_.ExecuteModule() call","referencingIds":["_ref_24"]},{"type":"clause","id":"sec-example-cyclic-module-record-graphs-deferred-imports","title":"Example Cyclic Module Record Graphs with Deferred Imports","titleHTML":"Example Cyclic Module Record Graphs with Deferred Imports","number":"16.2.1.5.4.1"},{"type":"clause","id":"sec-example-cyclic-module-record-graphs","titleHTML":"Example Cyclic Module Record Graphs","number":"16.2.1.5.4"},{"type":"clause","id":"sec-cyclic-module-records","titleHTML":"Cyclic Module Records","number":"16.2.1.5"},{"type":"clause","id":"sec-source-text-module-record-initialize-environment","titleHTML":"InitializeEnvironment ( )","number":"16.2.1.6.4"},{"type":"clause","id":"sec-source-text-module-records","titleHTML":"Source Text Module Records","number":"16.2.1.6"},{"type":"op","aoid":"GetModuleNamespace","refId":"sec-getmodulenamespace"},{"type":"clause","id":"sec-getmodulenamespace","title":"GetModuleNamespace ( module, phase )","titleHTML":"GetModuleNamespace ( module, phase )","number":"16.2.1.10","referencingIds":["_ref_35","_ref_55","_ref_183","_ref_184"]},{"type":"clause","id":"sec-module-semantics","titleHTML":"Module Semantics","number":"16.2.1"},{"type":"production","id":"prod-ImportDeclaration","name":"ImportDeclaration","referencingIds":["_ref_207","_ref_249","_ref_250","_ref_289","_ref_307"]},{"type":"production","id":"prod-ImportClause","name":"ImportClause","referencingIds":["_ref_215","_ref_219","_ref_228","_ref_251","_ref_253","_ref_260","_ref_263"]},{"type":"production","id":"prod-ImportedDefaultBinding","name":"ImportedDefaultBinding","referencingIds":["_ref_231","_ref_234","_ref_236"]},{"type":"production","id":"prod-NameSpaceImport","name":"NameSpaceImport","referencingIds":["_ref_232","_ref_235","_ref_254"]},{"type":"production","id":"prod-NamedImports","name":"NamedImports","referencingIds":["_ref_233","_ref_237"]},{"type":"production","id":"prod-FromClause","name":"FromClause","referencingIds":["_ref_216","_ref_217","_ref_218","_ref_220","_ref_221","_ref_223","_ref_224","_ref_225","_ref_229","_ref_252","_ref_261","_ref_262","_ref_266"]},{"type":"production","id":"prod-ImportsList","name":"ImportsList","referencingIds":["_ref_240","_ref_241","_ref_244"]},{"type":"production","id":"prod-ImportSpecifier","name":"ImportSpecifier","referencingIds":["_ref_243","_ref_245"]},{"type":"production","id":"prod-ModuleSpecifier","name":"ModuleSpecifier","referencingIds":["_ref_227","_ref_230","_ref_242","_ref_264"]},{"type":"production","id":"prod-ImportedBinding","name":"ImportedBinding","referencingIds":["_ref_238","_ref_239","_ref_246","_ref_248"]},{"type":"clause","id":"sec-imports-static-semantics-early-errors","titleHTML":"Static Semantics: Early Errors","number":"16.2.2.1"},{"type":"op","aoid":"ImportEntries","refId":"sec-static-semantics-importentries"},{"type":"clause","id":"sec-static-semantics-importentries","titleHTML":"Static Semantics: ImportEntries","number":"16.2.2.2","referencingIds":["_ref_62","_ref_188","_ref_189"]},{"type":"clause","id":"sec-imports","titleHTML":"Imports","number":"16.2.2"},{"type":"production","id":"prod-ExportDeclaration","name":"ExportDeclaration","referencingIds":["_ref_208","_ref_259","_ref_287","_ref_288"]},{"type":"production","id":"prod-ExportFromClause","name":"ExportFromClause","referencingIds":["_ref_222","_ref_265"]},{"type":"production","id":"prod-NamedExports","name":"NamedExports","referencingIds":["_ref_226","_ref_267","_ref_269","_ref_278","_ref_279","_ref_280","_ref_281","_ref_292","_ref_293","_ref_308","_ref_309"]},{"type":"production","id":"prod-ExportsList","name":"ExportsList","referencingIds":["_ref_270","_ref_271","_ref_273","_ref_294","_ref_296"]},{"type":"production","id":"prod-ExportSpecifier","name":"ExportSpecifier","referencingIds":["_ref_272","_ref_274","_ref_295","_ref_297"]},{"type":"clause","id":"sec-exports-static-semantics-early-errors","titleHTML":"Static Semantics: Early Errors","number":"16.2.3.1"},{"type":"op","aoid":"ExportedNames","refId":"sec-static-semantics-exportednames"},{"type":"clause","id":"sec-static-semantics-exportednames","titleHTML":"Static Semantics: ExportedNames","number":"16.2.3.3","referencingIds":["_ref_191","_ref_192","_ref_193","_ref_194","_ref_195","_ref_196"]},{"type":"op","aoid":"ExportEntries","refId":"sec-static-semantics-exportentries"},{"type":"clause","id":"sec-static-semantics-exportentries","titleHTML":"Static Semantics: ExportEntries","number":"16.2.3.4","referencingIds":["_ref_197","_ref_198"]},{"type":"clause","id":"sec-exports","titleHTML":"Exports","number":"16.2.3","referencingIds":["_ref_0"]},{"type":"clause","id":"sec-modules","titleHTML":"Modules","number":"16.2"},{"type":"clause","id":"sec-ecmascript-language-scripts-and-modules","titleHTML":"ECMAScript Language: Scripts and Modules","number":"16"},{"type":"clause","id":"sec-copyright-and-software-license","title":"Copyright & Software License","titleHTML":"Copyright & Software License","number":"A"}]}`); ;let usesMultipage = false