W3C home > Mailing lists > Public > www-dom@w3.org > October to December 2009

Re: Hypothetical WebIDL block for EventTarget

From: Garrett Smith <dhtmlkitchen@gmail.com>
Date: Wed, 14 Oct 2009 13:52:52 -0700
Message-ID: <c9e12660910141352x7cc202b1s2a70d3769278d8f6@mail.gmail.com>
To: Travis Leithead <travil@microsoft.com>
Cc: "www-dom@w3.org" <www-dom@w3.org>, public-script-coord@w3.org
On Wed, Oct 14, 2009 at 12:26 PM, Travis Leithead <travil@microsoft.com> wrote:

(crossposting to public-script-coord@w3.org, as there is some
crossover of standards).

> 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):
>
What is controversial?

Can you please clarify the problem that this proposal solves?

[...]

>
> 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).
>
> For reference:
>

Where is your test code?

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

The expectation of a |true| result would be based on on a few preconditions:
  (1) A global EventTarget property
  (2) The global object has Object.prototype in its prototype chain.
  (3) hasOwnProperty checks the both the Window and the WindowProxy.

ECMA-262 r3, s 15.1 states:
| The values of the [[Prototype]] and [[Class]] properties of the
| global object are implementation-dependent.

Off the top of my head, I'll wager that you are wrong about Firefox
3.5 and Safari.

Opera's global object is a bit different, and so event if it does have
a global EventTarget, then - this.hasOwnProperty("EventTarget") -
would probably result in the same false as:

  this.hasOwnProperty("window"); .// false in Opera.

A program would not care about outcome of whatever it is your test expects.

What is the reason for this proposal?

Garrett
Received on Wednesday, 14 October 2009 20:53:27 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 22 June 2012 06:14:03 GMT