Re: Hypothetical WebIDL block for EventTarget

On Oct 14, 2009, at 12:26 PM, Travis Leithead wrote:

> I realize I'm touching on a controversial topic, but I was wondering  
> what feedback we might get by proposing that the EventTarget  
> interface in DOM Level 3 Events be marked up with WebIDL as follows  
> (I don't imagine controversy on any other interface):
>
> [NoInterfaceObject]
> interface EventTarget {
>  void               addEventListener(in DOMString type,
>                                      in EventListener listener,
>                                      in boolean useCapture);
>  void               removeEventListener(in DOMString type,
>                                         in EventListener listener,
>                                         in boolean useCapture);
>  // Modified in DOM Level 3:
>  boolean            dispatchEvent(in Event evt)
>                                   raises(EventException,
>                                   DOMException);
> };
>
> Note, this is different from http://dev.w3.org/2006/webapi/WebIDL/dom/dom2events.idl
> The point of contention is whether EventTarget should be bound to an  
> "interface object" in the ECMAScript binding or whether it  
> participates in the mix-in algorithm, however that will end up  
> working (not finalized in WebIDL at the moment).

I think it makes sense that interfaces meant to be used as mixins  
don't produce a prototype object.

> For reference:
>
> Browser     this.hasOwnProperty("EventTarget")

You should use ("EventTarget" in window) as the test. hasOwnProperty  
will miss prototype properties.

> ===============================================
> IE8		false
> FF3.5		false (but EventTarget.prototype exists)?
> Safari4	false
> Opera10	false
>

Received on Wednesday, 14 October 2009 20:59:09 UTC