Re: [PrototypeRoot]

Cameron McCormack:
> > 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.

Ian Hickson:
> I think it would make sense to exclude [NoPrototypeObject] interfaces from 
> consideration here.

I assume you mean [NoInterfaceObject]?  Is the reasoning for this that
[NoInterfaceObject] inerfaces are nearly always “mixins”, and so
shouldn’t affect the [[Class]]?

Cameron McCormack:
> > 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.

Ian Hickson:
> IMHO this is a problem. I don't think that UA extensions should affect the 
> [[Class]], and I think that other specs should have a way (e.g. 
> [NoPrototypeObject]) of always making sure they don't affect the [[Class]] 
> of existing stuff.

Do you still think it would be bad to use [ProtoypeRoot] on interfaces
like NodeList, to indicate that it is the “main” interface?  That would
be the way, currently, to require a particular [[Class]] that could not
be overridden by having a second interface be implemented.

Thanks,

Cameron

-- 
Cameron McCormack ≝ http://mcc.id.au/

Received on Saturday, 20 June 2009 05:44:10 UTC