- From: Ms2ger <notifications@github.com>
- Date: Wed, 18 Sep 2019 01:11:29 -0700
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <heycam/webidl/pull/797/review/289739015@github.com>
Ms2ger commented on this pull request.
> @@ -11126,13 +11126,18 @@ and is described in more detail in [[#interface-prototype-object]].
Note: Since an [=interface object=] is a [=function object=]
the <code>typeof</code> operator will return "function" when applied to an interface object.
+An interface may have <dfn export>overridden constructor steps</dfn>, which can
+change the behavior of the [=interface object=] when called or constructed. By
+default interfaces do not have such steps.
+
Maybe add a warning like we have a few already for legacy features, saying something like
> In general, constructors are described by defining a [=constructor operation=] and its behavior.
> The [=overridden constructor steps=] are used only for more complicated situations.
> Editors who wish to use this feature are strongly advised to discuss this by filing an issue before proceeding.
> <div algorithm>
The [=interface object=] for a given [=interface=] |I|
with [=identifier=] |id| and in [=Realm=] |realm|
is <dfn lt="create an interface object">created</dfn> as follows:
- 1. Let |steps| be the following steps:
+ 1. Let |steps| be |I|'s [=overriden constructor steps=] if they exist, or
+ the following steps otherwise:
1. If |I| was not declared with a [=constructor operation=],
then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. If {{NewTarget}} is <emu-val>undefined</emu-val>, then
Should we keep the first two steps, even when overriding the rest of the algorithm?
Maybe also the last four steps?
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/heycam/webidl/pull/797#pullrequestreview-289739015
Received on Wednesday, 18 September 2019 08:12:11 UTC