diff --git a/index.bs b/index.bs index d25b25ae4..ebc872f42 100644 --- a/index.bs +++ b/index.bs @@ -427,7 +427,7 @@ in [[#es-extended-attributes]].
Definition : - CallbackOrInterface + CallbackOrInterfaceOrMixin Namespace Partial Dictionary @@ -436,12 +436,6 @@ in [[#es-extended-attributes]]. IncludesStatement-
- CallbackOrInterface : - "callback" CallbackRestOrInterface - Interface --
@@ -1023,17 +1017,27 @@ The following extended attributes are applicable to interfaces: [{{PrimaryGlobal}}], and [{{SecureContext}}]. - ++ CallbackOrInterfaceOrMixin : + "callback" CallbackRestOrInterface + "interface" InterfaceOrMixin +CallbackRestOrInterface : CallbackRest - Interface + "interface" InterfaceRest-- Interface : - "interface" identifier Inheritance "{" InterfaceMembers "}" ";" ++ InterfaceOrMixin : + InterfaceRest + MixinRest ++ ++ InterfaceRest : + identifier Inheritance "{" InterfaceMembers "}" ";"@@ -1043,15 +1047,20 @@ The following extended attributes are applicable to interfaces:PartialDefinition : - PartialInterface - PartialMixin + "interface" PartialInterfaceOrPartialMixin PartialDictionary Namespace++ PartialInterfaceOrPartialMixin : + PartialInterface + MixinRest ++PartialInterface : - "interface" identifier "{" InterfaceMembers "}" ";" + identifier "{" InterfaceMembers "}" ";"@@ -1160,12 +1169,12 @@ The following extended attributes are applicable to interfaces:Mixins
-A mixin is a definition (matchingMixin ) +A mixin is a definition (matchinginterface MixinRest ) that declares state and behavior that can be [=included=] by one or more [=interfaces=], and that are exposed by objects that implement an [=interface=] that [=includes=] the [=mixin=].- mixin identifier { + interface mixin identifier { /* mixin_members... */ };@@ -1186,17 +1195,17 @@ as if they were specified on the [=interface=] that [=includes=] them. As with interfaces, the IDL for mixins can be split into multiple parts by using partial mixin definitions -(matchingpartial Mixin ). +(matchingpartial interface MixinRest ). The [=identifier=] of a partial mixin definition must be the same as the identifier of a mixin definition. All of the [=mixin members|members=] that appear on each of the partial mixin definitions are considered to be members of the mixin itself.- mixin SomeMixin { + interface mixin SomeMixin { /* mixin_members... */ }; - partial mixin SomeMixin { + partial interface mixin SomeMixin { /* mixin_members... */ };@@ -1251,7 +1260,7 @@ No [=extended attributes=] defined in this specification are applicable to [=inc // ... }; - mixin Observable { + interface mixin Observable { void addEventListener(DOMString type, EventListener listener, boolean useCapture); @@ -1282,7 +1291,7 @@ No [=extended attributes=] defined in this specification are applicable to [=inc For example, instead of:- mixin WindowSessionStorage { + interface mixin WindowSessionStorage { readonly attribute Storage sessionStorage; }; Window includes WindowSessionStorage; @@ -1304,7 +1313,7 @@ No [=extended attributes=] defined in this specification are applicable to [=inc For example, instead of the common but verbose:- mixin GlobalCrypto { + interface mixin GlobalCrypto { [Throws] readonly attribute Crypto crypto; }; @@ -1315,23 +1324,24 @@ No [=extended attributes=] defined in this specification are applicable to [=inc you can extend the {{WindowOrWorkerGlobalScope}} [=mixin=] using a [=partial mixin|partial=]:- partial mixin WindowOrWorkerGlobalScope { + partial interface mixin WindowOrWorkerGlobalScope { [Throws] readonly attribute Crypto crypto; };
- Mixin : - "mixin" identifier "{" MixinMembers "}" ";" -- -
- PartialMixin : ++ MixinRest : "mixin" identifier "{" MixinMembers "}" ";"@@ -5029,9 +5039,9 @@ be used as the type of a [=constant=]. The following extended attribute is applicable to callback functions: [{{TreatNonObjectAsNull}}]. - + - +CallbackRest : @@ -11292,20 +11302,20 @@ The [=return type=] of the [=default toJSON operation=] must be {{object}}. attribute DOMString c; }; - mixin M1 { + interface mixin M1 { attribute DOMString m1; }; - mixin M2 { + interface mixin M2 { [Default] object toJSON(); attribute DOMString m2; }; - mixin M3 { + interface mixin M3 { attribute DOMString m3; }; - mixin M4 { + interface mixin M4 { attribute DOMString m4; };