|
|
|
5. Return true . The [[OwnPropertyKeys]] internal method of a module namespace exotic object
O takes no arguments. It performs the following steps when called: 1. Let exports be a copy of O .[[Exports]]. 2. Let symbolKeys be ! O ). 3. Append all the entries of symbolKeys to the end of exports . 4. Return exports . The abstract operation ModuleNamespaceCreate takes arguments module and exports . It is used to specify the creation of new module namespace exotic objects. It performs the following steps when called: 1. : module . 2. : module .[[Namespace]] is undefined . 3. : exports of String values. 4. Let internalSlotsList be the internal slots listed in . 5. Let M be ! internalSlotsList ). 6. Set M 's essential internal methods to the definitions specified in . 7. Set M .[[Prototype]] to null . 8. Set M .[[Module]] to module . 9. Let sortedExports whose elements are the elements of exports ordered as if an Array of the same values had been sorted using %Array.prototype.sort% using undefined as comparefn . 10. Set M .[[Exports]] to sortedExports . 11. Create own properties of M corresponding to the definitions in 12. Set module .[[Namespace]] to M . 13. Return M . immutable prototype exotic object that has a [[Prototype]] internal slot that will not change once it is initialized. An object is an immutable prototype exotic object if its [[SetPrototypeOf]] internal method uses the following implementation. (Its other essential internal methods may use any implementation, depending on the specific immutable prototype exotic object NOTE Unlike other exotic objects, there is not a dedicated creation abstract operation provided for and by environments, and in environments, the relevant objects are potentially exotic in other ways and thus need their own dedicated creation operation. 10.4.6.10 [[OwnPropertyKeys]] ( ) 10.4.6.11 ModuleNamespaceCreate ( module , exports ) 10.4.7 Immutable Prototype Exotic Objects 10.4.7.1 [[SetPrototypeOf]] ( V ) 259 |