- From: Daniel Ehrenberg <notifications@github.com>
- Date: Fri, 21 Dec 2018 14:18:52 -0800
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Friday, 21 December 2018 22:19:14 UTC
littledan commented on this pull request.
> Every [=platform object=] is associated with a global environment, just
as the [=initial objects=] are.
It is the responsibility of specifications using Web IDL to state
which global environment (or, by proxy, which global object) each platform
object is associated with.
+<div algorithm>
+ To <dfn>create an object implementing the interface</dfn> |interface|, with optional
+ intenal slots |slots| and |new.target| value |newTarget|, for an interface which is not
+ declared with the [{{Global}}] [=extended attribute=], perform the following steps:
+
+ 1. If |slots| is provided, append \[[PrimaryInterface]] to |slots|.
+ 1. Otherwise, let |slots| be « \[[PrimaryInterface]] ».
+ 1. If |NewTarget| is provided, let |instance| be ? [$OrdinaryCreateFromConstructor$](|newTarget|, "%ObjectPrototype%")
Those directions both seem plausible. The second (WebIDL creates the instance) feels simpler and more JS-like at first glance. The only downside I can think of is that it doesn't map to current spec text very clearly.
--
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/595#discussion_r243704116
Received on Friday, 21 December 2018 22:19:14 UTC