Open danyao opened 7 years ago
Can you work around this by adding all the necessary dependent idl interfaces and throwing away the output of the unnecessary files?
Oh, if you're monkey patching anyways, do you even need the partial Navigator idl at all?
It seems to me that between this and #81 there's room for a "assume existing globals" mode (or "polyfill mode") which makes this sort of thing seamlessly work.
An polyfill mode would be great!
For my use case, I'm using webidl2js to generate JavaScript polyfills for use in a browser. Adding necessary dependent IDL interfaces and throwing away the output can work, but would be tricky to automate into the build process.
The partial Navigator IDL is convenient so I can use the same IDL source for both interface generating using webidl2js and running Web Platform Test idlharness test to cover the entire interface definition.
When a spec defines a partial addition to an existing interface, it will be useful if webidl2js can generate the monkey patch required to implement the addition.
For example, from the Credential Management Level 1 spec:
Currently webild2js assumes that
Navigator
is defined somewhere else in the provided webidl and errors out in parsing as it's not found:What we need is probably something like this:
We might need to also account for the fact that
CredentialsContainer
may be provided natively by the UA, so may not have theinterface
attribute (see https://github.com/jsdom/webidl2js/issues/81).