diff --git a/index.bs b/index.bs index f39d69e4..2dce955a 100644 --- a/index.bs +++ b/index.bs @@ -5730,6 +5730,7 @@ are known as object types. "async iterable" "<" TypeWithExtendedAttributes ">" Null "object" Null "symbol" Null + "ModuleNamespace" Null BufferRelatedType Null "FrozenArray" "<" TypeWithExtendedAttributes ">" Null "ObservableArray" "<" TypeWithExtendedAttributes ">" Null @@ -6043,6 +6044,18 @@ To denote a type that includes all possible object references plus the null value, use the [=nullable type=] object?. +

ModuleNamespace

+ +The {{ModuleNamespace}} type corresponds to the set of all possible non-null +references to module namespace exotic objects as defined in the ECMAScript +specification. + +There is no way to represent a constant {{ModuleNamespace}} value in IDL. + +To denote a type that includes all possible references to module namespace +objects plus the null value, use the [=nullable type=] +ModuleNamespace?. +

symbol

The {{symbol}} type corresponds to the set of all possible symbol values. Symbol values are opaque, @@ -7795,6 +7808,27 @@ values are represented by JavaScript Object values.

+

ModuleNamespace

+ +IDL {{ModuleNamespace}} values are represented by JavaScript module namespace exotic objects. + +
+ A JavaScript value |V| is [=converted to an IDL value|converted=] to an IDL {{ModuleNamespace}} + value by running the following algorithm: + + 1. If |V| [=is not an Object=], or |V| is not a module namespace exotic object, + then [=JavaScript/throw=] a {{TypeError}}. + 1. Return the IDL {{ModuleNamespace}} value that is a reference + to the same object as |V|. +
+ +

+ The result of [=converted to a JavaScript value|converting=] an IDL {{ModuleNamespace}} value + to a JavaScript value is the Object value that represents a reference to the same object that + the IDL {{ModuleNamespace}} represents. +

+ +

symbol

IDL {{symbol}} values are represented by JavaScript Symbol values.