Name Description Size
await-ns-define-own-property.js --- description: The [[DefineOwnProperty]] internal method returns `true` if no change is requested, and `false` otherwise. (value from await resolving) esid: sec-finishdynamicimport features: [Symbol.iterator, Reflect, Symbol, Symbol.toStringTag, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 7088
await-ns-delete-exported-init-no-strict.js --- description: The [[Delete]] behavior for a key that describes an initialized exported binding on non strict mode (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, noStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. If Type(P) is Symbol, then a. Return ? OrdinaryDelete(O, P). 3. Let exports be O.[[Exports]]. 4. If P is an element of exports, return false. 5. Return true. --- 5156
await-ns-delete-exported-init-strict-strict.js --- description: The [[Delete]] behavior for a key that describes an initialized exported binding on strict mode (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, onlyStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. If Type(P) is Symbol, then a. Return ? OrdinaryDelete(O, P). 3. Let exports be O.[[Exports]]. 4. If P is an element of exports, return false. 5. Return true. --- 5273
await-ns-delete-non-exported-no-strict.js --- description: The [[Delete]] behavior for a key that does not describe an exported binding (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, noStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. If Type(P) is Symbol, then a. Return ? OrdinaryDelete(O, P). 3. Let exports be O.[[Exports]]. 4. If P is an element of exports, return false. 5. Return true. --- 4759
await-ns-delete-non-exported-strict-strict.js --- description: The [[Delete]] behavior for a key that does not describe an exported binding (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, onlyStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. If Type(P) is Symbol, then a. Return ? OrdinaryDelete(O, P). 3. Let exports be O.[[Exports]]. 4. If P is an element of exports, return false. 5. Return true. --- 4795
await-ns-extensible.js --- description: Module namespace objects are not extensible. (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 3893
await-ns-get-nested-namespace-dflt-direct.js --- description: Direct Default exports are included in an imported module namespace object when a namespace object is created. (value from await resolving) esid: sec-finishdynamicimport features: [export-star-as-namespace-from-module, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 6. Let binding be ! m.ResolveExport(P, « »). 7. Assert: binding is a ResolvedBinding Record. 8. Let targetModule be binding.[[Module]]. 9. Assert: targetModule is not undefined. 10. If binding.[[BindingName]] is "*namespace*", then 11. Return ? GetModuleNamespace(targetModule). Runtime Semantics: GetModuleNamespace [...] 3. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, i. Let resolution be ? module.ResolveExport(name, « », « »). ii. If resolution is null, throw a SyntaxError exception. iii. If resolution is not "ambiguous", append name to unambiguousNames. d. Let namespace be ModuleNamespaceCreate(module, unambiguousNames). [...] --- 6314
await-ns-get-nested-namespace-dflt-indirect.js --- description: Inirect Default exports are included in an imported module namespace object when a namespace object is created. (value from await resolving) esid: sec-finishdynamicimport features: [export-star-as-namespace-from-module, dynamic-import] flags: [generated, module, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 6. Let binding be ! m.ResolveExport(P, « »). 7. Assert: binding is a ResolvedBinding Record. 8. Let targetModule be binding.[[Module]]. 9. Assert: targetModule is not undefined. 10. If binding.[[BindingName]] is "*namespace*", then 11. Return ? GetModuleNamespace(targetModule). Runtime Semantics: GetModuleNamespace [...] 3. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, i. Let resolution be ? module.ResolveExport(name, « », « »). ii. If resolution is null, throw a SyntaxError exception. iii. If resolution is not "ambiguous", append name to unambiguousNames. d. Let namespace be ModuleNamespaceCreate(module, unambiguousNames). [...] --- 6227
await-ns-get-nested-namespace-props-nrml.js --- description: Module namespace object reports properties for all ExportEntries of all dependencies. (value from await resolving) esid: sec-finishdynamicimport features: [export-star-as-namespace-from-module, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 12. For each ImportEntry Record in in module.[[ImportEntries]], do a. Let importedModule be ? HostResolveImportedModule(module, in.[[ModuleRequest]]). b. If in.[[ImportName]] is "*", then i. Let namespace be ? GetModuleNamespace(importedModule). [...] Runtime Semantics: GetModuleNamespace 3. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, i. Let resolution be ? module.ResolveExport(name, « », « »). ii. If resolution is null, throw a SyntaxError exception. iii. If resolution is not "ambiguous", append name to unambiguousNames. d. Let namespace be ModuleNamespaceCreate(module, unambiguousNames). --- 6538
await-ns-get-own-property-str-found-init.js --- description: Behavior of the [[GetOwnProperty]] internal method with a string argument describing an initialized binding (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. If Type(P) is Symbol, return OrdinaryGetOwnProperty(O, P). 2. Let exports be the value of O's [[Exports]] internal slot. 3. If P is not an element of exports, return undefined. 4. Let value be ? O.[[Get]](P, O). 5. Return PropertyDescriptor{[[Value]]: value, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. --- 5887
await-ns-get-own-property-str-not-found.js --- description: Behavior of the [[GetOwnProperty]] internal method with a string argument describing a binding that cannot be found (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. If Type(P) is Symbol, return OrdinaryGetOwnProperty(O, P). 2. Let exports be the value of O's [[Exports]] internal slot. 3. If P is not an element of exports, return undefined. --- 5238
await-ns-get-own-property-sym.js --- description: Behavior of the [[GetOwnProperty]] internal method with a Symbol argument (value from await resolving) esid: sec-finishdynamicimport features: [Symbol, Symbol.toStringTag, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 4600
await-ns-get-str-found.js --- description: Behavior of the [[Get]] internal method with a string argument for exported initialized bindings. (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 12. Let targetEnvRec be targetEnv's EnvironmentRecord. 13. Return ? targetEnvRec.GetBindingValue(binding.[[BindingName]], true). --- 4214
await-ns-get-str-not-found.js --- description: Behavior of the [[Get]] internal method with a string argument for non-exported bindings (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 3. Let exports be the value of O's [[Exports]] internal slot. 4. If P is not an element of exports, return undefined. --- 4309
await-ns-get-sym-found.js --- description: Behavior of the [[Get]] internal method with a symbol argument that can be found (value from await resolving) esid: sec-finishdynamicimport features: [Symbol.toStringTag, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. If Type(P) is Symbol, then a. Return ? OrdinaryGet(O, P, Receiver). --- 4055
await-ns-get-sym-not-found.js --- description: Behavior of the [[Get]] internal method with a symbol argument that cannot be found (value from await resolving) esid: sec-finishdynamicimport features: [Symbol, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. If Type(P) is Symbol, then a. Return ? OrdinaryGet(O, P, Receiver). --- 4062
await-ns-has-property-str-found-init.js --- description: Behavior of the [[HasProperty]] internal method with a string argument for exported initialized bindings. (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. Let exports be the value of O's [[Exports]] internal slot. 3. If P is an element of exports, return true. --- 4481
await-ns-has-property-str-not-found.js --- description: Behavior of the [[HasProperty]] internal method with a string argument for non-exported bindings (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. Let exports be the value of O's [[Exports]] internal slot. 3. If P is an element of exports, return true. 4. Return false. --- 4701
await-ns-has-property-sym-found.js --- description: Behavior of the [[HasProperty]] internal method with a symbol argument that can be found (value from await resolving) esid: sec-finishdynamicimport features: [Symbol.toStringTag, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. If Type(P) is Symbol, return OrdinaryHasProperty(O, P). --- 4128
await-ns-has-property-sym-not-found.js --- description: Behavior of the [[HasProperty]] internal method with a symbol argument that cannot be found (value from await resolving) esid: sec-finishdynamicimport features: [Symbol, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. If Type(P) is Symbol, return OrdinaryHasProperty(O, P). --- 4117
await-ns-no-iterator.js --- description: Module namespace objects lack a Symbol.toStringTag (value from await resolving) esid: sec-finishdynamicimport features: [Symbol.iterator, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 3951
await-ns-own-property-keys-sort.js --- description: The [[OwnPropertyKeys]] internal method reflects the sorted order (value from await resolving) esid: sec-finishdynamicimport features: [Symbol.toStringTag, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. Let exports be a copy of the value of O's [[Exports]] internal slot. 2. Let symbolKeys be ! OrdinaryOwnPropertyKeys(O). 3. Append all the entries of symbolKeys to the end of exports. 4. Return exports. --- 6674
await-ns-prevent-extensions-object.js --- description: The [[PreventExtensions]] internal method returns `true` (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 4007
await-ns-prevent-extensions-reflect.js --- description: The [[PreventExtensions]] internal method returns `true` (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 3920
await-ns-prop-descs.js --- description: imported object properties descriptors (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 5414
await-ns-prototype.js --- description: Module namespace object prototype is null (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 3962
await-ns-set-no-strict.js --- description: The [[Set]] internal method consistently returns `false`, No Strict Mode (value from await resolving) esid: sec-finishdynamicimport features: [Symbol, Symbol.toStringTag, dynamic-import] flags: [generated, noStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. Return false. --- 5146
await-ns-set-prototype-of-null.js --- description: The [[SetPrototypeOf]] internal method returns `true` if passed `null` (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 3993
await-ns-set-prototype-of.js --- description: The [[SetPrototypeOf]] internal method returns `false` (value from await resolving) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 4037
await-ns-set-same-values-no-strict.js --- description: The [[Set]] internal method consistently returns `false` even setting the same value - No Strict Mode (value from await resolving) esid: sec-finishdynamicimport features: [Symbol, Symbol.toStringTag, dynamic-import] flags: [generated, noStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. Return false. --- 4948
await-ns-set-same-values-strict-strict.js --- description: The [[Set]] internal method consistently returns `false` even setting the same value - Strict Mode (value from await resolving) esid: sec-finishdynamicimport features: [Symbol, Symbol.toStringTag, dynamic-import] flags: [generated, onlyStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. Return false. --- 5084
await-ns-set-strict-strict.js --- description: The [[Set]] internal method consistently returns `false`, Strict Mode (value from await resolving) esid: sec-finishdynamicimport features: [Symbol, Symbol.toStringTag, dynamic-import] flags: [generated, onlyStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. Return false. --- 5352
await-ns-Symbol-toStringTag.js --- description: Module namespace objects have a Symbol.toStringTag (value from await resolving) esid: sec-finishdynamicimport features: [Symbol.toStringTag, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. --- 4706
browser.js 0
default-property-not-set-own.js --- description: The default property is not set the if the module doesn't export any default esid: sec-finishdynamicimport features: [dynamic-import] flags: [async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then ... d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. --- 1299
define-own-property_FIXTURE.js 308
empty_FIXTURE.js 163
get-nested-namespace-dflt-skip-named-end_FIXTURE.js 234
get-nested-namespace-dflt-skip-named_FIXTURE.js 250
get-nested-namespace-dflt-skip-prod-end_FIXTURE.js 221
get-nested-namespace-dflt-skip-prod_FIXTURE.js 254
get-nested-namespace-props-nrml-1_FIXTURE.js 243
get-nested-namespace-props-nrml-2_FIXTURE.js 894
get-nested-namespace-props-nrml-3_FIXTURE.js 227
module-code_FIXTURE.js 422
own-keys-sort_FIXTURE.js 508
promise-then-ns-define-own-property.js --- description: The [[DefineOwnProperty]] internal method returns `true` if no change is requested, and `false` otherwise. (value from promise then) esid: sec-finishdynamicimport features: [Symbol.iterator, Reflect, Symbol, Symbol.toStringTag, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 7052
promise-then-ns-delete-exported-init-no-strict.js --- description: The [[Delete]] behavior for a key that describes an initialized exported binding on non strict mode (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, noStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. If Type(P) is Symbol, then a. Return ? OrdinaryDelete(O, P). 3. Let exports be O.[[Exports]]. 4. If P is an element of exports, return false. 5. Return true. --- 5120
promise-then-ns-delete-exported-init-strict-strict.js --- description: The [[Delete]] behavior for a key that describes an initialized exported binding on strict mode (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, onlyStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. If Type(P) is Symbol, then a. Return ? OrdinaryDelete(O, P). 3. Let exports be O.[[Exports]]. 4. If P is an element of exports, return false. 5. Return true. --- 5237
promise-then-ns-delete-non-exported-no-strict.js --- description: The [[Delete]] behavior for a key that does not describe an exported binding (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, noStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. If Type(P) is Symbol, then a. Return ? OrdinaryDelete(O, P). 3. Let exports be O.[[Exports]]. 4. If P is an element of exports, return false. 5. Return true. --- 4723
promise-then-ns-delete-non-exported-strict-strict.js --- description: The [[Delete]] behavior for a key that does not describe an exported binding (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, onlyStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. If Type(P) is Symbol, then a. Return ? OrdinaryDelete(O, P). 3. Let exports be O.[[Exports]]. 4. If P is an element of exports, return false. 5. Return true. --- 4759
promise-then-ns-extensible.js --- description: Module namespace objects are not extensible. (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 3857
promise-then-ns-get-nested-namespace-dflt-direct.js --- description: Direct Default exports are included in an imported module namespace object when a namespace object is created. (value from promise then) esid: sec-finishdynamicimport features: [export-star-as-namespace-from-module, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 6. Let binding be ! m.ResolveExport(P, « »). 7. Assert: binding is a ResolvedBinding Record. 8. Let targetModule be binding.[[Module]]. 9. Assert: targetModule is not undefined. 10. If binding.[[BindingName]] is "*namespace*", then 11. Return ? GetModuleNamespace(targetModule). Runtime Semantics: GetModuleNamespace [...] 3. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, i. Let resolution be ? module.ResolveExport(name, « », « »). ii. If resolution is null, throw a SyntaxError exception. iii. If resolution is not "ambiguous", append name to unambiguousNames. d. Let namespace be ModuleNamespaceCreate(module, unambiguousNames). [...] --- 6278
promise-then-ns-get-nested-namespace-dflt-indirect.js --- description: Inirect Default exports are included in an imported module namespace object when a namespace object is created. (value from promise then) esid: sec-finishdynamicimport features: [export-star-as-namespace-from-module, dynamic-import] flags: [generated, module, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 6. Let binding be ! m.ResolveExport(P, « »). 7. Assert: binding is a ResolvedBinding Record. 8. Let targetModule be binding.[[Module]]. 9. Assert: targetModule is not undefined. 10. If binding.[[BindingName]] is "*namespace*", then 11. Return ? GetModuleNamespace(targetModule). Runtime Semantics: GetModuleNamespace [...] 3. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, i. Let resolution be ? module.ResolveExport(name, « », « »). ii. If resolution is null, throw a SyntaxError exception. iii. If resolution is not "ambiguous", append name to unambiguousNames. d. Let namespace be ModuleNamespaceCreate(module, unambiguousNames). [...] --- 6191
promise-then-ns-get-nested-namespace-props-nrml.js --- description: Module namespace object reports properties for all ExportEntries of all dependencies. (value from promise then) esid: sec-finishdynamicimport features: [export-star-as-namespace-from-module, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 12. For each ImportEntry Record in in module.[[ImportEntries]], do a. Let importedModule be ? HostResolveImportedModule(module, in.[[ModuleRequest]]). b. If in.[[ImportName]] is "*", then i. Let namespace be ? GetModuleNamespace(importedModule). [...] Runtime Semantics: GetModuleNamespace 3. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, i. Let resolution be ? module.ResolveExport(name, « », « »). ii. If resolution is null, throw a SyntaxError exception. iii. If resolution is not "ambiguous", append name to unambiguousNames. d. Let namespace be ModuleNamespaceCreate(module, unambiguousNames). --- 6502
promise-then-ns-get-own-property-str-found-init.js --- description: Behavior of the [[GetOwnProperty]] internal method with a string argument describing an initialized binding (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. If Type(P) is Symbol, return OrdinaryGetOwnProperty(O, P). 2. Let exports be the value of O's [[Exports]] internal slot. 3. If P is not an element of exports, return undefined. 4. Let value be ? O.[[Get]](P, O). 5. Return PropertyDescriptor{[[Value]]: value, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. --- 5851
promise-then-ns-get-own-property-str-not-found.js --- description: Behavior of the [[GetOwnProperty]] internal method with a string argument describing a binding that cannot be found (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. If Type(P) is Symbol, return OrdinaryGetOwnProperty(O, P). 2. Let exports be the value of O's [[Exports]] internal slot. 3. If P is not an element of exports, return undefined. --- 5202
promise-then-ns-get-own-property-sym.js --- description: Behavior of the [[GetOwnProperty]] internal method with a Symbol argument (value from promise then) esid: sec-finishdynamicimport features: [Symbol, Symbol.toStringTag, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 4564
promise-then-ns-get-str-found.js --- description: Behavior of the [[Get]] internal method with a string argument for exported initialized bindings. (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 12. Let targetEnvRec be targetEnv's EnvironmentRecord. 13. Return ? targetEnvRec.GetBindingValue(binding.[[BindingName]], true). --- 4178
promise-then-ns-get-str-not-found.js --- description: Behavior of the [[Get]] internal method with a string argument for non-exported bindings (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 3. Let exports be the value of O's [[Exports]] internal slot. 4. If P is not an element of exports, return undefined. --- 4273
promise-then-ns-get-sym-found.js --- description: Behavior of the [[Get]] internal method with a symbol argument that can be found (value from promise then) esid: sec-finishdynamicimport features: [Symbol.toStringTag, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. If Type(P) is Symbol, then a. Return ? OrdinaryGet(O, P, Receiver). --- 4019
promise-then-ns-get-sym-not-found.js --- description: Behavior of the [[Get]] internal method with a symbol argument that cannot be found (value from promise then) esid: sec-finishdynamicimport features: [Symbol, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. If Type(P) is Symbol, then a. Return ? OrdinaryGet(O, P, Receiver). --- 4026
promise-then-ns-has-property-str-found-init.js --- description: Behavior of the [[HasProperty]] internal method with a string argument for exported initialized bindings. (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. Let exports be the value of O's [[Exports]] internal slot. 3. If P is an element of exports, return true. --- 4445
promise-then-ns-has-property-str-not-found.js --- description: Behavior of the [[HasProperty]] internal method with a string argument for non-exported bindings (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. [...] 2. Let exports be the value of O's [[Exports]] internal slot. 3. If P is an element of exports, return true. 4. Return false. --- 4665
promise-then-ns-has-property-sym-found.js --- description: Behavior of the [[HasProperty]] internal method with a symbol argument that can be found (value from promise then) esid: sec-finishdynamicimport features: [Symbol.toStringTag, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. If Type(P) is Symbol, return OrdinaryHasProperty(O, P). --- 4092
promise-then-ns-has-property-sym-not-found.js --- description: Behavior of the [[HasProperty]] internal method with a symbol argument that cannot be found (value from promise then) esid: sec-finishdynamicimport features: [Symbol, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. If Type(P) is Symbol, return OrdinaryHasProperty(O, P). --- 4081
promise-then-ns-no-iterator.js --- description: Module namespace objects lack a Symbol.toStringTag (value from promise then) esid: sec-finishdynamicimport features: [Symbol.iterator, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 3915
promise-then-ns-own-property-keys-sort.js --- description: The [[OwnPropertyKeys]] internal method reflects the sorted order (value from promise then) esid: sec-finishdynamicimport features: [Symbol.toStringTag, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. Let exports be a copy of the value of O's [[Exports]] internal slot. 2. Let symbolKeys be ! OrdinaryOwnPropertyKeys(O). 3. Append all the entries of symbolKeys to the end of exports. 4. Return exports. --- 6638
promise-then-ns-prevent-extensions-object.js --- description: The [[PreventExtensions]] internal method returns `true` (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 3971
promise-then-ns-prevent-extensions-reflect.js --- description: The [[PreventExtensions]] internal method returns `true` (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 3884
promise-then-ns-prop-descs.js --- description: imported object properties descriptors (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 5378
promise-then-ns-prototype.js --- description: Module namespace object prototype is null (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 3926
promise-then-ns-set-no-strict.js --- description: The [[Set]] internal method consistently returns `false`, No Strict Mode (value from promise then) esid: sec-finishdynamicimport features: [Symbol, Symbol.toStringTag, dynamic-import] flags: [generated, noStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. Return false. --- 5110
promise-then-ns-set-prototype-of-null.js --- description: The [[SetPrototypeOf]] internal method returns `true` if passed `null` (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 3957
promise-then-ns-set-prototype-of.js --- description: The [[SetPrototypeOf]] internal method returns `false` (value from promise then) esid: sec-finishdynamicimport features: [dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. --- 4001
promise-then-ns-set-same-values-no-strict.js --- description: The [[Set]] internal method consistently returns `false` even setting the same value - No Strict Mode (value from promise then) esid: sec-finishdynamicimport features: [Symbol, Symbol.toStringTag, dynamic-import] flags: [generated, noStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. Return false. --- 4912
promise-then-ns-set-same-values-strict-strict.js --- description: The [[Set]] internal method consistently returns `false` even setting the same value - Strict Mode (value from promise then) esid: sec-finishdynamicimport features: [Symbol, Symbol.toStringTag, dynamic-import] flags: [generated, onlyStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. Return false. --- 5048
promise-then-ns-set-strict-strict.js --- description: The [[Set]] internal method consistently returns `false`, Strict Mode (value from promise then) esid: sec-finishdynamicimport features: [Symbol, Symbol.toStringTag, dynamic-import] flags: [generated, onlyStrict, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. 1. Return false. --- 5316
promise-then-ns-Symbol-toStringTag.js --- description: Module namespace objects have a Symbol.toStringTag (value from promise then) esid: sec-finishdynamicimport features: [Symbol.toStringTag, dynamic-import] flags: [generated, async] info: | Runtime Semantics: FinishDynamicImport ( referencingScriptOrModule, specifier, promiseCapability, completion ) 1. If completion is an abrupt completion, ... 2. Otherwise, ... d. Let namespace be GetModuleNamespace(moduleRecord). e. If namespace is an abrupt completion, perform ! Call(promiseCapability.[[Reject]], undefined, « namespace.[[Value]] »). f. Otherwise, perform ! Call(promiseCapability.[[Resolve]], undefined, « namespace.[[Value]] »). Runtime Semantics: GetModuleNamespace ( module ) ... 3. Let namespace be module.[[Namespace]]. 4. If namespace is undefined, then a. Let exportedNames be ? module.GetExportedNames(« »). b. Let unambiguousNames be a new empty List. c. For each name that is an element of exportedNames, do i. Let resolution be ? module.ResolveExport(name, « »). ii. If resolution is a ResolvedBinding Record, append name to unambiguousNames. d. Set namespace to ModuleNamespaceCreate(module, unambiguousNames). 5. Return namespace. ModuleNamespaceCreate ( module, exports ) ... 4. Let M be a newly created object. 5. Set M's essential internal methods to the definitions specified in 9.4.6. 7. Let sortedExports be a new List containing the same values as the list exports where the values are ordered as if an Array of the same values had been sorted using Array.prototype.sort using undefined as comparefn. 8. Set M.[[Exports]] to sortedExports. 9. Create own properties of M corresponding to the definitions in 26.3. 10. Set module.[[Namespace]] to M. 11. Return M. 26.3 Module Namespace Objects A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport. In addition to the properties specified in 9.4.6 each Module Namespace Object has the following own property: 26.3.1 @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Module Namespace Exotic Objects A module namespace object is an exotic object that exposes the bindings exported from an ECMAScript Module (See 15.2.3). There is a one-to-one correspondence between the String-keyed own properties of a module namespace exotic object and the binding names exported by the Module. The exported bindings include any bindings that are indirectly exported using export * export items. Each String-valued own property key is the StringValue of the corresponding exported binding name. These are the only String-keyed properties of a module namespace exotic object. Each such property has the attributes { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }. Module namespace objects are not extensible. @@toStringTag The initial value of the @@toStringTag property is the String value "Module". This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. --- 4670
shell.js 0