[heycam/webidl] Interfaces with named getters inheriting from interfaces with named getters (#833)

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