Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restrict the extended attributes for partial interfaces. #620

Merged
merged 1 commit into from
Jan 28, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 9 additions & 22 deletions index.bs
Original file line number Diff line number Diff line change
Expand Up @@ -1037,28 +1037,6 @@ Note: A partial interface definition cannot specify that the interface
Inheritance must be specified on the original [=interface=]
definition.

[=Extended attributes=] can be specified on
[=partial interface=] definitions, with some
limitations. The following extended attributes must not
be specified on partial interface definitions:
[{{Constructor}}],
[{{LegacyWindowAlias}}],
[{{NamedConstructor}}],
[{{NoInterfaceObject}}].

Note: The above list of [=extended attributes=]
is all of those defined in this document that are applicable to
[=interfaces=] except for
[{{Exposed}}],
[{{Global}}],
[{{OverrideBuiltins}}], and
[{{SecureContext}}].

Any [=extended attribute=] specified
on a [=partial interface=] definition
is considered to appear on the [=interface=]
itself.

The relevant language binding determines how interfaces correspond to constructs
in the language.

Expand All @@ -1072,6 +1050,11 @@ The following extended attributes are applicable to interfaces:
[{{OverrideBuiltins}}], and
[{{SecureContext}}].

The following extended attributes are applicable to [=partial interfaces=]:
[{{Exposed}}],
[{{OverrideBuiltins}}], and
[{{SecureContext}}].

Non-callback [=interfaces=] which are not annotated
with a [{{NoInterfaceObject}}] [=extended attribute=],
and [=callback interfaces=] which declare [=constants=]
Expand Down Expand Up @@ -9563,6 +9546,10 @@ definition, then that partial interface definition must
be the part of the interface definition that defines
the [=named property getter=].

If the [{{OverrideBuiltins}}] extended attribute is specified on a
[=partial interface=] definition, it is considered to appear on the
[=interface=] itself.

See [[#es-legacy-platform-objects]]
and [[#legacy-platform-object-defineownproperty]]
for the specific requirements that the use of
Expand Down