- From: Domenic Denicola <notifications@github.com>
- Date: Sat, 18 Jan 2020 13:01:27 -0800
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Saturday, 18 January 2020 21:01:29 UTC
The Web IDL spec says
> If an object implements more than one interface that defines a given special operation, then it is undefined which (if any) special operation is invoked for that operation.
However we have on the platform
```webidl
[Exposed=Window]
interface HTMLFormControlsCollection : HTMLCollection {
// inherits length and item()
getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem()
};
[Exposed=Window, LegacyUnenumerableNamedProperties]
interface HTMLCollection {
readonly attribute unsigned long length;
getter Element? item(unsigned long index);
getter Element? namedItem(DOMString name);
};
```
Thus instances of `HTMLFormControlsCollection` implement two interface that both defined named getters, and we're in some kind of undefined situation.
We should presumably instead update the Web IDL spec to use the most-derived operation.
The normative text in e.g. [LegacyPlatformObjectGetOwnProperty](https://heycam.github.io/webidl/#LegacyPlatformObjectGetOwnProperty) is pretty unclear right now, talking a lot about running steps but not specifying what interface to run them for.
--
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/833
Received on Saturday, 18 January 2020 21:01:29 UTC