- From: Tobie Langel <notifications@github.com>
- Date: Wed, 04 Oct 2017 10:39:54 -0700
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <heycam/webidl/issues/432/334233518@github.com>
So if we want to define this precisely, here's a proposal so there's some basis for discussion:
1. Let |members| be a new [=ordered set=].
1. Let |stack| be the result of invoking [=create an inheritance stack=] for [=interface=] |I|.
1. [=iteration/While=] |stack| is not [=stack/empty=]:
1. Let |interface| be the result of [=stack/popping=] from |stack|.
1. [=set/Append=] [=For each|each=] |member| of |interface|'s
[=interface member|members=] to |members|.
1. [=For each=] |partialInterface| of |interface| declared in the same specification as |interface|,
in the order in which it appears in the specification:
1. [=set/Append=] [=For each|each=] |member| of |partialInterface|'s
[=interface member|members=] to |members|.
1. [=For each=] |specification| that declares a [=partial interface=] of |interface|,
lexicographically ordered by |specification|'s short name:
1. [=For each=] |partialInterface| of |interface| declared in |specification|,
in the order in which it appears in |specification|:
1. [=set/Append=] [=For each|each=] |member| of |partialInterface|'s
[=interface member|members=] to |members|.
1. [=For each=] |mixin| [=included=] by |interface|, declared in the same specification as |interface|,
in the order in which it appears in the specification:
1. [=set/Append=] [=For each|each=] |member| of |mixin|'s
[=mixin member|members=] to |members|.
1. [=For each=] |partialMixin| of |mixin| declared in the same specification as |mixin|,
in the order in which it appears in the specification:
1. [=set/Append=] [=For each|each=] |member| of |partialMixin|'s
[=mixin member|members=] to |members|.
1. [=For each=] |specification| that declares a [=partial mixin=] of |mixin|,
lexicographically ordered by |specification|'s short name:
1. [=For each=] |partialMixin| of |mixin| declared in |specification|,
in the order in which it appears in |specification|:
1. [=set/Append=] [=For each|each=] |member| of |partialMixin|'s
[=mixin member|members=] to |members|.
1. [=For each=] |specification| that declares a [=mixin=] [=included=] by |interface|,
lexicographically ordered by |specification|'s short name:
1. [=For each=] |mixin| [=included=] by |interface| in |specification|,
in the order in which it appears in |specification|:
1. [=For each=] |member| of |mixin|'s [=mixin member|members=]:
1. [=set/Append=] |member| to |members|.
1. [=For each=] |partialMixin| of |mixin| declared in the same specification as |mixin|,
in the order in which it appears in the specification:
1. [=set/Append=] [=For each|each=] |member| of |mixin|'s
[=mixin member|members=] to |members|.
1. [=For each=] |specification| that declares a [=partial mixin=] of |mixin|,
lexicographically ordered by |specification|'s short name:
1. [=For each=] |partialMixin| of |mixin| declared in |specification|,
in the order in which it appears in |specification|:
1. [=set/Append=] [=For each|each=] |member| of |partialMixin|'s
[=mixin member|members=] to |members|.
1. Return |members|.
--
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/issues/432#issuecomment-334233518
Received on Wednesday, 4 October 2017 17:40:23 UTC