- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Wed, 19 Mar 2014 21:51:39 -0400
- To: Ryan Sleevi <sleevi@google.com>, Mark Watson <watsonm@netflix.com>
- CC: "public-webcrypto@w3.org" <public-webcrypto@w3.org>
On 3/19/14 8:57 PM, Ryan Sleevi wrote: > +cc Boris, in the event there are intricacies of WebIDL that are being > overlooked here. I assume the relevant proposal is the one in http://lists.w3.org/Archives/Public/public-webcrypto/2014Mar/0116.html ? The only WebIDL-relevant things I can see are: 1) You can't use two different dictionary types in a union, because they're not distinguishable types. Since as far as WebIDL is concerned any object can be used for any dictionary type, there is no way to tell which type was meant. See http://heycam.github.io/webidl/#idl-union which says: Each pair of flattened member types in a union type, T and U, MUST be distinguishable. You'll probably want to do "object" and manual coercion to dictionary types, as you note in http://lists.w3.org/Archives/Public/public-webcrypto/2014Mar/0118.html 2) IDL array types are not implemented in any UA, and there are no plans by anyone I know of to implement them. Chances are you just want sequence types here instead, unless the pass-by-reference aspect is in fact important somehow. 3) Instead of manually calling [[DefineOwnProperty]], it might be better to just say that an IDL dictionary is set up and then converted to a JS value per <http://heycam.github.io/webidl/#es-dictionary>, if that's feasible in this case. That would allow you to automatically track the ES spec when WebIDL is updated to track it (e.g. [[DefineOwnProperty]] in ES6 does not take a boolean argument). -Boris
Received on Thursday, 20 March 2014 01:52:21 UTC