From cdaf1a3c1dc770d23ff28b2cf4d121bfa3af070c Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Mon, 30 Dec 2024 10:53:54 -0800 Subject: [PATCH 1/2] editorial: update to use source phase upstream [[ModuleSource]] field --- spec.emu | 53 ++++++----------------------------------------------- 1 file changed, 6 insertions(+), 47 deletions(-) diff --git a/spec.emu b/spec.emu index b25f5ea..68473fc 100644 --- a/spec.emu +++ b/spec.emu @@ -963,23 +963,12 @@ contributors: Luca Casonato, Guy Bedford

Link must have completed successfully prior to invoking this method.

- - - GetModuleSource() - - -

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 have a [[Prototype]] internal slot whose value is %AbstractModuleSource.prototype%.

-

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

- - ModuleSourcesEqual(_otherModuleRecord_) -

For Module Records that return a normal completion for GetModuleSource(), allows defining a source equality operation for host registry checks.

+

For Module Records that provide a source representation through their [[ModuleSource]] field, allows defining a source equality operation for host registry checks.

For Module Records that do not have a source representation, ModuleSourcesEqual() is never called.

This concrete method is not currently called from within ECMA-262 but it is defined for hosts in order to ensure well-defined module source equality.

@@ -989,7 +978,7 @@ contributors: Luca Casonato, Guy Bedford GetModuleSourceKind() -

For Module Records that return a normal completion for GetModuleSource(), returns a constant String for each concrete module record that exposes a source representation through `GetModuleSource()`, to be used as the return value of the %Symbol.toStringTag% getter on %AbstractModuleSource%.

+

Returns a constant string for each concrete module record that exposes a source representation through their [[ModuleSource]] field, to be used as the return value of the %Symbol.toStringTag% getter on %AbstractModuleSource%.

For Module Records that do not have a source representation, GetModuleSourceKind() is never called.

@@ -1059,17 +1048,6 @@ contributors: Luca Casonato, Guy Bedford An object exposed through the `import.meta` meta property. It is ~empty~ until it is accessed by ECMAScript code. - - - [[ModuleSource]] - - - an Object or ~empty~ - - - The Module Source Object generated by GetModuleSource(). Empty when no Module Source Object has yet been associated with this module. - - [[ImportEntries]] @@ -1157,35 +1135,16 @@ contributors: Luca Casonato, Guy Bedford 1. Else, 1. Append _ee_ to _indirectExportEntries_. 1. Let _async_ be _body_ Contains `await`. - 1. Return Source Text Module Record { [[Realm]]: _realm_, [[Environment]]: ~empty~, [[Namespace]]: ~empty~, [[CycleRoot]]: ~empty~, [[HasTLA]]: _async_, [[AsyncEvaluation]]: *false*, [[TopLevelCapability]]: ~empty~, [[AsyncParentModules]]: « », [[PendingAsyncDependencies]]: ~empty~, [[Status]]: ~new~, [[EvaluationError]]: ~empty~, [[HostDefined]]: _hostDefined_, [[SourceText]]: _sourceText_, [[ECMAScriptCode]]: _body_, [[Context]]: ~empty~, [[ImportMeta]]: ~empty~, [[ModuleSource]]: ~empty~, [[RequestedModules]]: _requestedModules_, [[LoadedModules]]: « », [[ImportEntries]]: _importEntries_, [[LocalExportEntries]]: _localExportEntries_, [[IndirectExportEntries]]: _indirectExportEntries_, [[StarExportEntries]]: _starExportEntries_, [[DFSIndex]]: ~empty~, [[DFSAncestorIndex]]: ~empty~ }. + 1. Let _moduleSource_ be OrdinaryObjectCreate(%ModuleSource.prototype%, « [[SourceTextModuleRecord]] »). + 1. ReturnLet _module_ be Source Text Module Record { [[Realm]]: _realm_, [[Environment]]: ~empty~, [[Namespace]]: ~empty~, [[CycleRoot]]: ~empty~, [[HasTLA]]: _async_, [[AsyncEvaluation]]: *false*, [[TopLevelCapability]]: ~empty~, [[AsyncParentModules]]: « », [[PendingAsyncDependencies]]: ~empty~, [[Status]]: ~new~, [[EvaluationError]]: ~empty~, [[HostDefined]]: _hostDefined_, [[SourceText]]: _sourceText_, [[ECMAScriptCode]]: _body_, [[Context]]: ~empty~, [[ImportMeta]]: ~empty~, [[ModuleSource]]: _moduleSource_, [[RequestedModules]]: _requestedModules_, [[LoadedModules]]: « », [[ImportEntries]]: _importEntries_, [[LocalExportEntries]]: _localExportEntries_, [[IndirectExportEntries]]: _indirectExportEntries_, [[StarExportEntries]]: _starExportEntries_, [[DFSIndex]]: ~empty~, [[DFSAncestorIndex]]: ~empty~ }. + 1. Set _moduleSource_.[[SourceTextModuleRecord]] to _module_. + 1. Return _module_.

An implementation may parse module source text and analyse it for Early Error conditions prior to the evaluation of ParseModule for that module source text. However, the reporting of any errors must be deferred until the point where this specification actually performs ParseModule upon that source text.

- -

- GetModuleSource ( ): either a normal completion containing an Object or a throw completion -

-
-
for
-
a Source Text Module Record _module_
- -
description
-
-
- - 1. Throw a *SyntaxError* exception. - 1. If _module_.[[ModuleSource]] is not ~empty~, then - 1. Return _module_.[[ModuleSource]]. - 1. Let _moduleSource_ be OrdinaryObjectCreate(%ModuleSource.prototype%, « [[SourceTextModuleRecord]] »). - 1. Set _moduleSource_.[[SourceTextModuleRecord]] to _module_. - 1. Set _module_.[[ModuleSource]] to _moduleSource_. - 1. Return _moduleSource_. - -
-

From dfc9fa2f0041483458f1eec46ba041ea885ff909 Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Mon, 30 Dec 2024 10:55:15 -0800 Subject: [PATCH 2/2] rebuild --- build/index.html | 106 +++++++++++++++++------------------------------ 1 file changed, 39 insertions(+), 67 deletions(-) diff --git a/build/index.html b/build/index.html index 8e5b803..cb53580 100644 --- a/build/index.html +++ b/build/index.html @@ -1423,7 +1423,7 @@ }); let sdoMap = JSON.parse(`{}`); -let biblio = JSON.parse(`{"refsByClause":{"sec-well-known-intrinsic-objects":["_ref_0","_ref_1"],"sec-abstract-module-records":["_ref_2","_ref_10","_ref_11","_ref_12","_ref_13","_ref_14","_ref_15","_ref_16","_ref_17","_ref_18","_ref_19"],"sec-HostLoadImportedModule":["_ref_3","_ref_25","_ref_26","_ref_27","_ref_28","_ref_29","_ref_30","_ref_31","_ref_32","_ref_33","_ref_34"],"sec-evaluate-import-call":["_ref_4","_ref_5","_ref_6","_ref_7","_ref_8","_ref_9"],"sec-source-text-module-records":["_ref_20","_ref_21"],"sec-source-text-module-record-getmodulesource":["_ref_22"],"sec-source-text-module-record-sourceequals":["_ref_23","_ref_24"],"sec-FinishLoadingImportedModule":["_ref_35","_ref_36","_ref_37"],"sec-getmodulesourcemodulerecord":["_ref_38","_ref_39","_ref_40","_ref_41"],"sec-HostGetModuleSourceName":["_ref_42","_ref_43"],"sec-HostGetModuleSourceModuleRecord":["_ref_44","_ref_45","_ref_46"],"sec-module-semantics":["_ref_47","_ref_48"],"sec-module-source-objects":["_ref_49","_ref_50"],"sec-get-%abstractmodulesource%.prototype-%symbol.tostringtag%":["_ref_51","_ref_52","_ref_53","_ref_54"],"sec-properties-of-modulesource-instances":["_ref_55"],"sec-host-hooks-summary":["_ref_56","_ref_57","_ref_58"]},"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_4","_ref_6","_ref_7","_ref_8","_ref_51","_ref_52"]},{"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":"op","aoid":"EvaluateImportCall","refId":"sec-evaluate-import-call"},{"type":"clause","id":"sec-evaluate-import-call","title":"EvaluateImportCall ( specifierExpression, phase [ , optionsExpression ] )","titleHTML":"EvaluateImportCall ( specifierExpression, phase [ , optionsExpression ] )","number":"13.3.10.1"},{"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":"table","id":"table-abstract-methods-of-module-records","number":2,"caption":"Table 2: Abstract Methods of Module Records"},{"type":"term","term":"ResolvedBinding Record","id":"resolvedbinding-record"},{"type":"clause","id":"sec-abstract-module-records","titleHTML":"Abstract Module Records","number":"16.1.1.1","referencingIds":["_ref_10","_ref_11","_ref_13","_ref_14","_ref_15","_ref_16","_ref_17","_ref_18","_ref_19","_ref_23","_ref_25","_ref_27","_ref_30","_ref_33","_ref_34","_ref_35","_ref_36","_ref_37","_ref_38","_ref_39","_ref_41","_ref_44","_ref_45","_ref_46"]},{"type":"table","id":"table-additional-fields-of-source-text-module-records","number":3,"caption":"Table 3: Additional Fields of Source Text Module Records"},{"type":"op","aoid":"ParseModule","refId":"sec-parsemodule"},{"type":"clause","id":"sec-parsemodule","title":"ParseModule ( sourceText, realm, hostDefined )","titleHTML":"ParseModule ( sourceText, realm, hostDefined )","number":"16.1.1.2.1"},{"type":"clause","id":"sec-source-text-module-record-getmodulesource","titleHTML":"GetModuleSource ( )","number":"16.1.1.2.2"},{"type":"clause","id":"sec-source-text-module-record-sourceequals","title":"ModuleSourcesEqual ( otherModule )","titleHTML":"ModuleSourcesEqual ( otherModule )","number":"16.1.1.2.3"},{"type":"clause","id":"sec-source-text-module-record-getmodulesourcename","title":"GetModuleSourceKind ( )","titleHTML":"GetModuleSourceKind ( )","number":"16.1.1.2.4"},{"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, moduleRequest, hostDefined, payload )","titleHTML":"HostLoadImportedModule ( referrer, moduleRequest, hostDefined, payload )","number":"16.1.1.2.5","referencingIds":["_ref_9","_ref_24","_ref_58"]},{"type":"op","aoid":"FinishLoadingImportedModule","refId":"sec-FinishLoadingImportedModule"},{"type":"clause","id":"sec-FinishLoadingImportedModule","title":"FinishLoadingImportedModule ( referrer, moduleRequest, payload, result )","titleHTML":"FinishLoadingImportedModule ( referrer, moduleRequest, payload, result )","number":"16.1.1.2.6","referencingIds":["_ref_26","_ref_28","_ref_29","_ref_32"]},{"type":"clause","id":"sec-source-text-module-records","titleHTML":"Source Text Module Records","number":"16.1.1.2"},{"type":"op","aoid":"GetModuleSourceModuleRecord","refId":"sec-getmodulesourcemodulerecord"},{"type":"clause","id":"sec-getmodulesourcemodulerecord","title":"GetModuleSourceModuleRecord ( specifier )","titleHTML":"GetModuleSourceModuleRecord ( specifier )","number":"16.1.1.3","referencingIds":["_ref_5","_ref_48","_ref_50","_ref_54"]},{"type":"op","aoid":"HostGetModuleSourceName","refId":"sec-HostGetModuleSourceName"},{"type":"clause","id":"sec-HostGetModuleSourceName","title":"HostGetModuleSourceName ( moduleSource )","titleHTML":"HostGetModuleSourceName ( moduleSource )","number":"16.1.1.4","referencingIds":["_ref_49","_ref_53","_ref_56"]},{"type":"op","aoid":"HostGetModuleSourceModuleRecord","refId":"sec-HostGetModuleSourceModuleRecord"},{"type":"clause","id":"sec-HostGetModuleSourceModuleRecord","title":"HostGetModuleSourceModuleRecord ( specifier )","titleHTML":"HostGetModuleSourceModuleRecord ( specifier )","number":"16.1.1.5","referencingIds":["_ref_40","_ref_47","_ref_57"]},{"type":"clause","id":"sec-module-semantics","titleHTML":"Module Semantics","number":"16.1.1"},{"type":"clause","id":"sec-modules","titleHTML":"Modules","number":"16.1"},{"type":"clause","id":"sec-ecmascript-language-scripts-and-modules","titleHTML":"ECMAScript Language: Scripts and Modules","number":"16"},{"type":"term","term":"Module Source Object","refId":"sec-module-source-objects"},{"type":"clause","id":"sec-get-%abstractmodulesource%.prototype-%symbol.tostringtag%","titleHTML":"get %AbstractModuleSource%.prototype [ %Symbol.toStringTag% ]","number":"28.1.1.1"},{"type":"clause","id":"sec-properties-of-the-%abstractmodulesource%-prototype-object","titleHTML":"Properties of the %AbstractModuleSource% Prototype Object","number":"28.1.1"},{"type":"clause","id":"sec-modulesource","titleHTML":"ModuleSource ( )","number":"28.1.2.1"},{"type":"clause","id":"sec-module-source-object","title":"The ModuleSource Constructor","titleHTML":"The ModuleSource Constructor","number":"28.1.2","referencingIds":["_ref_1"]},{"type":"term","term":"%ModuleSource% prototype object","refId":"sec-properties-of-the-%modulesource%-prototype-object"},{"type":"term","term":"%ModuleSource.prototype%","refId":"sec-properties-of-the-%modulesource%-prototype-object"},{"type":"clause","id":"sec-%modulesource%.prototype.constructor","title":"%ModuleSource%.prototype.constructor","titleHTML":"%ModuleSource%.prototype.constructor","number":"28.1.3.1"},{"type":"clause","id":"sec-properties-of-the-%modulesource%-prototype-object","title":"Properties of the %ModuleSource% Prototype Object","titleHTML":"Properties of the %ModuleSource% Prototype Object","number":"28.1.3","referencingIds":["_ref_22","_ref_55"]},{"type":"clause","id":"sec-properties-of-modulesource-instances","title":"Properties of ModuleSource Instances","titleHTML":"Properties of ModuleSource Instances","number":"28.1.4"},{"type":"clause","id":"sec-module-source-objects","titleHTML":"Module Source Objects","number":"28.1","referencingIds":["_ref_2","_ref_12","_ref_20","_ref_21","_ref_31","_ref_42","_ref_43"]},{"type":"clause","id":"sec-reflection","titleHTML":"Reflection","number":"28"},{"type":"clause","id":"sec-host-hooks-summary","titleHTML":"Host Hooks","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-HostLoadImportedModule":["_ref_2","_ref_17","_ref_18","_ref_19","_ref_20","_ref_21","_ref_22","_ref_23","_ref_24","_ref_25","_ref_26"],"sec-evaluate-import-call":["_ref_3","_ref_4","_ref_5","_ref_6","_ref_7","_ref_8"],"sec-abstract-module-records":["_ref_9","_ref_10","_ref_11","_ref_12","_ref_13"],"sec-parsemodule":["_ref_14"],"sec-source-text-module-record-sourceequals":["_ref_15","_ref_16"],"sec-FinishLoadingImportedModule":["_ref_27","_ref_28","_ref_29"],"sec-getmodulesourcemodulerecord":["_ref_30","_ref_31","_ref_32","_ref_33"],"sec-HostGetModuleSourceName":["_ref_34","_ref_35"],"sec-HostGetModuleSourceModuleRecord":["_ref_36","_ref_37","_ref_38"],"sec-module-semantics":["_ref_39","_ref_40"],"sec-module-source-objects":["_ref_41","_ref_42"],"sec-get-%abstractmodulesource%.prototype-%symbol.tostringtag%":["_ref_43","_ref_44","_ref_45","_ref_46"],"sec-properties-of-modulesource-instances":["_ref_47"],"sec-host-hooks-summary":["_ref_48","_ref_49","_ref_50"]},"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_3","_ref_5","_ref_6","_ref_7","_ref_43","_ref_44"]},{"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":"op","aoid":"EvaluateImportCall","refId":"sec-evaluate-import-call"},{"type":"clause","id":"sec-evaluate-import-call","title":"EvaluateImportCall ( specifierExpression, phase [ , optionsExpression ] )","titleHTML":"EvaluateImportCall ( specifierExpression, phase [ , optionsExpression ] )","number":"13.3.10.1"},{"type":"clause","id":"sec-import-calls","titleHTML":"Import Calls","number":"13.3.10","referencingIds":["_ref_2"]},{"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":"table","id":"table-abstract-methods-of-module-records","number":2,"caption":"Table 2: Abstract Methods of Module Records"},{"type":"term","term":"ResolvedBinding Record","id":"resolvedbinding-record"},{"type":"clause","id":"sec-abstract-module-records","titleHTML":"Abstract Module Records","number":"16.1.1.1","referencingIds":["_ref_9","_ref_10","_ref_11","_ref_12","_ref_13","_ref_15","_ref_17","_ref_19","_ref_22","_ref_25","_ref_26","_ref_27","_ref_28","_ref_29","_ref_30","_ref_31","_ref_33","_ref_36","_ref_37","_ref_38"]},{"type":"table","id":"table-additional-fields-of-source-text-module-records","number":3,"caption":"Table 3: Additional Fields of Source Text Module Records"},{"type":"op","aoid":"ParseModule","refId":"sec-parsemodule"},{"type":"clause","id":"sec-parsemodule","title":"ParseModule ( sourceText, realm, hostDefined )","titleHTML":"ParseModule ( sourceText, realm, hostDefined )","number":"16.1.1.2.1"},{"type":"clause","id":"sec-source-text-module-record-sourceequals","title":"ModuleSourcesEqual ( otherModule )","titleHTML":"ModuleSourcesEqual ( otherModule )","number":"16.1.1.2.2"},{"type":"clause","id":"sec-source-text-module-record-getmodulesourcename","title":"GetModuleSourceKind ( )","titleHTML":"GetModuleSourceKind ( )","number":"16.1.1.2.3"},{"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, moduleRequest, hostDefined, payload )","titleHTML":"HostLoadImportedModule ( referrer, moduleRequest, hostDefined, payload )","number":"16.1.1.2.4","referencingIds":["_ref_8","_ref_16","_ref_50"]},{"type":"op","aoid":"FinishLoadingImportedModule","refId":"sec-FinishLoadingImportedModule"},{"type":"clause","id":"sec-FinishLoadingImportedModule","title":"FinishLoadingImportedModule ( referrer, moduleRequest, payload, result )","titleHTML":"FinishLoadingImportedModule ( referrer, moduleRequest, payload, result )","number":"16.1.1.2.5","referencingIds":["_ref_18","_ref_20","_ref_21","_ref_24"]},{"type":"clause","id":"sec-source-text-module-records","titleHTML":"Source Text Module Records","number":"16.1.1.2"},{"type":"op","aoid":"GetModuleSourceModuleRecord","refId":"sec-getmodulesourcemodulerecord"},{"type":"clause","id":"sec-getmodulesourcemodulerecord","title":"GetModuleSourceModuleRecord ( specifier )","titleHTML":"GetModuleSourceModuleRecord ( specifier )","number":"16.1.1.3","referencingIds":["_ref_4","_ref_40","_ref_42","_ref_46"]},{"type":"op","aoid":"HostGetModuleSourceName","refId":"sec-HostGetModuleSourceName"},{"type":"clause","id":"sec-HostGetModuleSourceName","title":"HostGetModuleSourceName ( moduleSource )","titleHTML":"HostGetModuleSourceName ( moduleSource )","number":"16.1.1.4","referencingIds":["_ref_41","_ref_45","_ref_48"]},{"type":"op","aoid":"HostGetModuleSourceModuleRecord","refId":"sec-HostGetModuleSourceModuleRecord"},{"type":"clause","id":"sec-HostGetModuleSourceModuleRecord","title":"HostGetModuleSourceModuleRecord ( specifier )","titleHTML":"HostGetModuleSourceModuleRecord ( specifier )","number":"16.1.1.5","referencingIds":["_ref_32","_ref_39","_ref_49"]},{"type":"clause","id":"sec-module-semantics","titleHTML":"Module Semantics","number":"16.1.1"},{"type":"clause","id":"sec-modules","titleHTML":"Modules","number":"16.1"},{"type":"clause","id":"sec-ecmascript-language-scripts-and-modules","titleHTML":"ECMAScript Language: Scripts and Modules","number":"16"},{"type":"term","term":"Module Source Object","refId":"sec-module-source-objects"},{"type":"clause","id":"sec-get-%abstractmodulesource%.prototype-%symbol.tostringtag%","titleHTML":"get %AbstractModuleSource%.prototype [ %Symbol.toStringTag% ]","number":"28.1.1.1"},{"type":"clause","id":"sec-properties-of-the-%abstractmodulesource%-prototype-object","titleHTML":"Properties of the %AbstractModuleSource% Prototype Object","number":"28.1.1"},{"type":"clause","id":"sec-modulesource","titleHTML":"ModuleSource ( )","number":"28.1.2.1"},{"type":"clause","id":"sec-module-source-object","title":"The ModuleSource Constructor","titleHTML":"The ModuleSource Constructor","number":"28.1.2","referencingIds":["_ref_1"]},{"type":"term","term":"%ModuleSource% prototype object","refId":"sec-properties-of-the-%modulesource%-prototype-object"},{"type":"term","term":"%ModuleSource.prototype%","refId":"sec-properties-of-the-%modulesource%-prototype-object"},{"type":"clause","id":"sec-%modulesource%.prototype.constructor","title":"%ModuleSource%.prototype.constructor","titleHTML":"%ModuleSource%.prototype.constructor","number":"28.1.3.1"},{"type":"clause","id":"sec-properties-of-the-%modulesource%-prototype-object","title":"Properties of the %ModuleSource% Prototype Object","titleHTML":"Properties of the %ModuleSource% Prototype Object","number":"28.1.3","referencingIds":["_ref_14","_ref_47"]},{"type":"clause","id":"sec-properties-of-modulesource-instances","title":"Properties of ModuleSource Instances","titleHTML":"Properties of ModuleSource Instances","number":"28.1.4"},{"type":"clause","id":"sec-module-source-objects","titleHTML":"Module Source Objects","number":"28.1","referencingIds":["_ref_23","_ref_34","_ref_35"]},{"type":"clause","id":"sec-reflection","titleHTML":"Reflection","number":"28"},{"type":"clause","id":"sec-host-hooks-summary","titleHTML":"Host Hooks","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