Consider disallowing multiple `[LegacyFactoryFunction]` identifiers per interface
Currently, the following is allowed:
[LegacyFactoryFunction=A(),
LegacyFactoryFunction=B(optional DOMString src),
LegacyFactoryFunction=C(optional long width, optional long height)]
interface MultipleLegacyFactoryFunctionInterface {};
But it’s not used anywhere, and Chromium’s WebIDL processor doesn’t support it, and WebIDL2JS doesn’t intend to support it either (https://github.com/jsdom/webidl2js/pull/213#issuecomment-621277733).
This doesn’t intend to deprecate overloaded [LegacyFactoryFunction]s, which share the same identifier:
[LegacyFactoryFunction=Overloaded(),
LegacyFactoryFunction=Overloaded(optional DOMString src),
LegacyFactoryFunction=Overloaded(optional long width, optional long height)]
interface OverloadedLegacyFactoryFunctionInterface {};
See also
Do we need overloaded though? HTML doesn't use it.
Right, I think we should pare down LegacyFactoryFunction to the minimum, probably.
Neither Blink nor Gecko allows multiple NamedConstructors either.
We should in fact deprecate overloaded [LegacyFactoryFunction]s since nothing uses them and nothing will do so.