Re: Web IDL syntax

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 Friday, 19 June 2009 06:10:36 UTC