W3C home > Mailing lists > Public > public-webapps@w3.org > January to March 2009

Re: [PrototypeRoot]

From: Cameron McCormack <cam@mcc.id.au>
Date: Sat, 7 Mar 2009 16:48:13 +1100
To: Ian Hickson <ian@hixie.ch>
Cc: Boris Zbarsky <bzbarsky@MIT.EDU>, WebApps WG <public-webapps@w3.org>
Message-ID: <20090307054813.GA19566@arc.mcc.id.au>
Ian Hickson:
> In that case I would like us to do this (specifically, define [[Class]] 
> for objects that have only one non-[NoPrototypeObject] interface), since 
> that's the majority of them, and it would be better than having to 
> sprinkle [PrototypeRoot] all over the place.

Done:

  The value of the internal [[Class]] property of a host object is
  determined as follows:
    * If the host object implements a single interface, then the value
      of the internal [[Class]] property MUST be the identifier of
      that interface. 
    * Otherwise, if the host object has a primary prototype interface,
      then the value of the internal [[Class]] property MUST be the
      identifier of that interface.
    * Otherwise, no particular value is required to be used for the
      value of the internal [[Class]] property.
   — http://dev.w3.org/2006/webapi/WebIDL/#host-objects

Note that this still technically does not mean you can guarantee that
the NodeList returned by querySelectorAll() has [[Class]] == "NodeList",
since it could be that that host object implements another interface,
which might be required by another spec, or perhaps just because the
implementation wants to.  There’s nothing in selectors-api that says
“the object returned from querySelectorAll() must implement the NodeList
interface and no others” (and I don’t think it’d be a good idea to
require that).

-- 
Cameron McCormack ≝ http://mcc.id.au/
Received on Saturday, 7 March 2009 05:49:09 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:30 GMT