@@ -6911,6 +6911,17 @@ which form (or forms) it is in:
6911
6911
<code>[Exposed=(Window,Worker)]</code>
6912
6912
</td>
6913
6913
</tr>
6914
+ <tr>
6915
+ <td>
6916
+ <emu-nt><a href="#prod-ExtendedAttributeWildcard">ExtendedAttributeWildcard</a></emu-nt>
6917
+ </td>
6918
+ <td>
6919
+ <dfn id="dfn-xattr-wildcard" for="extended attribute" export>takes a wildcard</dfn>
6920
+ </td>
6921
+ <td>
6922
+ <code>[Exposed=*]</code>
6923
+ </td>
6924
+ </tr>
6914
6925
6915
6926
</table>
6916
6927
@@ -6972,6 +6983,7 @@ five forms are allowed.
6972
6983
"="
6973
6984
">"
6974
6985
"?"
6986
+ "*"
6975
6987
"ByteString"
6976
6988
"DOMString"
6977
6989
"FrozenArray"
@@ -7036,6 +7048,11 @@ five forms are allowed.
7036
7048
identifier "=" identifier
7037
7049
</pre>
7038
7050
7051
+ <pre class="grammar" id="prod-ExtendedAttributeWildcard">
7052
+ ExtendedAttributeWildcard :
7053
+ identifier "=" "*"
7054
+ </pre>
7055
+
7039
7056
<pre class="grammar" id="prod-ExtendedAttributeIdentList">
7040
7057
ExtendedAttributeIdentList :
7041
7058
identifier "=" "(" IdentifierList ")"
@@ -9497,14 +9514,31 @@ it indicates that the construct is exposed
9497
9514
on that particular set of global interfaces.
9498
9515
9499
9516
The [{{Exposed}}] [=extended attribute=] must either
9500
- [=takes an identifier|take an identifier=] or
9501
- [=takes an identifier list|take an identifier list=].
9502
- Each of the identifiers mentioned must be a [=global name=] and be unique.
9503
- This list of identifiers is known as the construct's
9504
- <dfn>own exposure set</dfn>.
9517
+ [=takes an identifier|take an identifier=],
9518
+ [=takes an identifier list|take an identifier list=] or
9519
+ [=takes a wildcard|take a wildcard=].
9520
+ Each of the identifiers mentioned must be a [=global name=] of some [=interface=] and be unique.
9505
9521
9506
- <div algorithm>
9522
+ The <dfn>own exposure set</dfn> is the [=/set=] of identifiers defined as follows:
9507
9523
9524
+ <dl class="switch">
9525
+ : If the [{{Exposed}}] [=extended attribute=] [=takes an identifier=] |I|
9526
+ :: The [=own exposure set=] is the [=/set=] « |I| ».
9527
+ : If the [{{Exposed}}] [=extended attribute=] [=takes an identifier list=] |I|
9528
+ :: The [=own exposure set=] is the [=/set=] |I|.
9529
+ : If the [{{Exposed}}] [=extended attribute=] [=takes a wildcard=]
9530
+ :: The [=own exposure set=] is the [=/set=] of all [=global names=] of all [=interfaces=]
9531
+ which have the [{{Global}}] [=extended attribute=].
9532
+ </dl>
9533
+
9534
+ <p class="advisement">
9535
+ <code>[Exposed=*]</code> is to be used with care.
9536
+ It is only appropriate when an API does not expose significant new capabilities.
9537
+ If the API might be restricted or disabled in some environments,
9538
+ it is preferred to list the globals explicitly.
9539
+ </p>
9540
+
9541
+ <div algorithm>
9508
9542
To get the <dfn id="dfn-exposure-set" export>exposure set</dfn> of a construct |C|,
9509
9543
run the following steps:
9510
9544
0 commit comments