Re: WebIDL extension proposal for [Enumerable] interface attribute

Cameron McCormack:
> >   * Entries in a dictionary interface that don’t correspond to the
> >     attributes declared on them are also exposed as properties on the
> >     host object in ES, and are enumerable (unlike corresponding named
> >     properties for regular interfaces).

Ian Hickson:
> Could you elaborate an what this means?

Corresponding named properties are currently specced to be DontEnum.
(But corresponding indexed properties are enumerable.)  In the above
proposal, properties that are reflecting dictionary entries would be
enumerable.

> >   * Dictionary interfaces are implicitly [Callable,NoInterfaceObject].
> >     [OverrideBuiltins] could be used, which would make dictionary
> >     lookups take precedence over other property lookups, as with
> >     regular interfaces with getters.
> 
> What's the difference between a dictionary lookup and other property 
> lookups?

Sorry, poor choice of wording.  By dictionary lookup I just mean doing
a normal [[Get]] with a name that is that name of a property that
corresponds to a dictionary entry.  So there’s no difference from named
properties, here.

> >   * A “dictionary” (an object that implements one or more dictionary
> >     interfaces) can be designated as “not extensible”, which means
> >     effectively the same thing as not having a creator on a regular
> >     interface.
> 
> In ES, any object has a creator even if it's not explicitly listed, it 
> just doesn't do anything from the host's perspective.

Right.

> Is this different here?

Hadn’t thought of that yet.  I suppose I would make it not different
(i.e., trying to [[Put]] a property that doesn’t exist would succeed and
not affect the underlying dictionary).

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

Received on Monday, 13 July 2009 03:22:33 UTC