Re: Web IDL syntax

>> If we are breaking syntax, then it seems more compelling to make
>> “DOMString” be “string”.
>>
>> Maybe we could drop the “in” keyword.  Seems better to stick with
>> plain “in” arguments, for compatibility across language bindings,
>> than to also allow “out” and “inout” ones.
>
> I'd vote for not changing these, because we already have a lot of IDL out
> there and it would be a pain to fix it all.

Can we make "in" optional so that new interfaces can be defined
without using "in"? It seems very easy to forget to specify "in" for
each parameter in Web IDL.

 - Shiki

On Fri, Jun 19, 2009 at 3:09 PM, Ian Hickson<ian@hixie.ch> wrote:
> On Fri, 19 Jun 2009, Cameron McCormack wrote:
>>
>> An alternative would be to reverse the omission of methods, so that
>> “getter” on an operation would always have both the getter.  Then if
>> you wanted to omit the method if getters are supported you could do
>> something like:
>>
>>   interface DOMStringMap {
>>     omittable getter DOMString get(in DOMString name);
>>     omittable setter void set(in DOMString name, in DOMString value);
>>     …
>>   };
>>
>> and getters/setters defined with no operation name would be implicitly
>> omittable.
>
> I prefer "omittable" because it would mean I wouldn't have to say "and the
> setter works like this other method" in prose all the time.
>
>
>> If we are breaking syntax, then it seems more compelling to make
>> “DOMString” be “string”.
>>
>> Maybe we could drop the “in” keyword.  Seems better to stick with
>> plain “in” arguments, for compatibility across language bindings,
>> than to also allow “out” and “inout” ones.
>
> I'd vote for not changing these, because we already have a lot of IDL out
> there and it would be a pain to fix it all.
>
>
>
> Regarding 'implements' (heycam and I talked about this on IRC recently;
> I just wanted to get some notes down on the record):
>
> There are three use cases that need covering:
>
>  - inheritance (e.g. Node -> Element -> HTMLElement -> HTMLAnchorElement)
>
>  - interfaces that are to be implemented by many other objects (e.g.
>   EventTarget)
>
>  - interfaces that are defined across multiple specs (e.g. Window,
>   WorkerUtils, HTMLBodyElement's attributes and methods being separated
>   from its deprecated attributes and methods)
>
> The first is handled by ':', the second is handled by 'implements'. I
> think we need the third also.
>
> --
> Ian Hickson               U+1047E                )\._.,--....,'``.    fL
> http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
> Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

Received on Tuesday, 23 June 2009 03:42:37 UTC