@@ -5963,6 +5963,17 @@ which form (or forms) it is in:
5963
5963
<code>[Exposed=(Window,Worker)]</code>
5964
5964
</td>
5965
5965
</tr>
5966
+ <tr>
5967
+ <td>
5968
+ <emu-nt><a href="#prod-ExtendedAttributeIdentList">ExtendedAttributeWildcard</a></emu-nt>
5969
+ </td>
5970
+ <td>
5971
+ <dfn id="dfn-xattr-wildcard" for="extended attribute" export>takes a wildcard</dfn>
5972
+ </td>
5973
+ <td>
5974
+ <code>[Exposed=*]</code>
5975
+ </td>
5976
+ </tr>
5966
5977
5967
5978
</table>
5968
5979
@@ -6024,6 +6035,7 @@ five forms are allowed.
6024
6035
"="
6025
6036
">"
6026
6037
"?"
6038
+ "*"
6027
6039
"ByteString"
6028
6040
"DOMString"
6029
6041
"FrozenArray"
@@ -6083,6 +6095,11 @@ five forms are allowed.
6083
6095
identifier "=" identifier
6084
6096
</pre>
6085
6097
6098
+ <pre class="grammar" id="prod-ExtendedAttributeWildcard">
6099
+ ExtendedAttributeWildcard :
6100
+ identifier "=" "*"
6101
+ </pre>
6102
+
6086
6103
<pre class="grammar" id="prod-ExtendedAttributeIdentList">
6087
6104
ExtendedAttributeIdentList :
6088
6105
identifier "=" "(" IdentifierList ")"
@@ -7984,8 +8001,9 @@ being exposed only on the [=primary global interface=].
7984
8001
The [{{Exposed}}]
7985
8002
[=extended attribute=]
7986
8003
must either
7987
- [=takes an identifier|take an identifier=] or
7988
- [=takes an identifier list|take an identifier list=].
8004
+ [=takes an identifier|take an identifier=],
8005
+ [=takes an identifier list|take an identifier list=] or
8006
+ [=takes a wildcard|take a wildcard=].
7989
8007
Each of the identifiers mentioned must be
7990
8008
a [=global name=].
7991
8009
@@ -7997,9 +8015,18 @@ defining which global environments the construct can be used in.
7997
8015
The [=exposure set=]
7998
8016
for a given construct is defined as follows:
7999
8017
8000
- * If the [{{Exposed}}]
8001
- [=extended attribute=]
8002
- is specified on the construct, then the [=exposure set=]
8018
+ * If the [{{Exposed}}] [=extended attribute=] [=takes a wildcard=], then the
8019
+ [=exposure set=] is the set of all interfaces which have a [{{Global}}]
8020
+ or [{{PrimaryGlobal}}] [=extended attribute=].
8021
+ <p class="advisement">
8022
+ <code>[Exposed=*]</code> should be used with care. It is only appropriate
8023
+ when an interface does not expose significant new capabilities. If the
8024
+ interface may be restricted or disabled in some environments, it is
8025
+ recommended to list the globals explicitly.
8026
+ </p>
8027
+ * If the [{{Exposed}}] [=extended attribute=]
8028
+ is specified on the construct with an identifier or identifier list, then
8029
+ the [=exposure set=]
8003
8030
is the set of all interfaces that have a [=global name=]
8004
8031
that is listed in the extended attribute's argument.
8005
8032
* If the [{{Exposed}}]
0 commit comments