- From: Anne van Kesteren <notifications@github.com>
- Date: Thu, 31 Jan 2019 14:29:00 +0000 (UTC)
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <heycam/webidl/pull/635/review/198611704@github.com>
annevk commented on this pull request. > @@ -869,6 +870,18 @@ its inheritance hierarchy has a cycle. That is, an interface |A| cannot inherit from itself, nor can it inherit from another interface |B| that inherits from |A|, and so on. +<div algorithm> + The [=list=] of <dfn for=interface>inclusive inherited interfaces</dfn> of an [=interface=] |I| + is defined as follows: + + 1. Let |result| be « ». + 1. Let |interface| be |I|. + 1. While |interface| exists: + 1. [=list/Append=] |interface| to |result|. + 1. Let |interface| be the [=interface=] that |I| [=interface/inherits=] from, if any. Set ... to* I'd use "and null otherwise" here and use an explicit null check in the while statement. Currently it could read as leading to an infinite loop where _interface_ is basically never updated, because "if any" is false. > @@ -12349,6 +12362,48 @@ 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 export lt="new|create|create a new|create an object implementing|create an object + implementing the interface">create an object implementing the interface</dfn> |interface| in the I'd prefer if we encouraged a single style. I suspect "new" is most common, but not sure. > @@ -12370,25 +12425,6 @@ must be the [=qualified name=] of the [=primary interface=] of the platform object. -[=Platform objects=] which implement an [=interface=] which has a [{{Global}}] -[=extended attribute=] have an internal \[[SetPrototypeOf]] method -as defined in [[#platform-object-setprototypeof]]. - -Within a [=Realm=] |realm|, -for each [=interface=] |interface| implemented by a [=platform object=] |obj|, -the following steps must be run as part of |obj|'s creation: - -1. [=Define the unforgeable regular operations=] of |interface| on |obj|, given |realm|. -1. [=Define the unforgeable regular attributes=] of |interface| on |obj|, given |realm|. - -If within a [=Realm=] |realm| a [=platform object=] |obj| implements -an interface which is declared with the [{{Global}}] [=extended attribute=], then It seems you could assert this somehow in the new algorithm? To "prevent" the attempt of creation of objects outside their intended realm? -- 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/635#pullrequestreview-198611704
Received on Thursday, 31 January 2019 14:29:23 UTC