- From: Domenic Denicola <notifications@github.com>
- Date: Mon, 15 May 2017 16:40:32 -0700
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <heycam/webidl/pull/323/review/38260586@github.com>
domenic commented on this pull request.
> +
+ The following [=IDL fragment=] defines a number of [=interfaces=]
+ which are [=inherited interface|inherited=] or [=consequential interfaces=] of `A`,
+ as show in the below inheritance tree.
+
+ <pre>
+ F*
+ |
+ C E - I*
+ | |
+ B* - D*
+ |
+ G* - A - H*
+ </pre>
+
+ Interfaces markes with an asterixk ("*")
"asterisk"
> + attribute DOMString y;
+ };
+
+ interface I {
+ [Default] object toJSON();
+ attribute DOMString z;
+ };
+
+ A implements G;
+ A implements H;
+ B implements D;
+ E implements I;
+ </pre>
+
+ Calling the <code>toJSON</code> method of an object
+ implementing interface `A` defined above
`<code>` instead of backticks
> + E implements I;
+ </pre>
+
+ Calling the <code>toJSON</code> method of an object
+ implementing interface `A` defined above
+ would return the following JSON object:
+
+ <pre highlight=json>
+ {
+ "w": "...",
+ "z": "...",
+ "u": "...",
+ "s": "...",
+ "x": "...",
+ "y": "..."
+ }
OK, so it would be easier to check this if the lowercase property names matched the uppercase interface names.
So, this order is a bit surprising to me. I would the following interface order:
> C, B, F, E, I, D, A, G, H
My reasoning is:
- First go to the most distance ancestor on the JavaScript prototype chain (C).
- Then go to the next-most-distance, B
- Then go B's mixins
- But D has inheritance, so go up its "chain", ending up with F; then E plus its I mixin; then finally D
- Now we can do A, and then its two mixins, G and H.
---
This all might be moot once we simplify interfaces... but I think it'd be good to get right, if possible. We could add a warning that we anticipate such complex inherited/consequential interface chains not being possible in the future, which would make all this less ridiculous. Probably linking to the mixin issue I'm about to open.
--
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/323#pullrequestreview-38260586
Received on Monday, 15 May 2017 23:41:05 UTC