Re: WebIDL extension proposal for [Enumerable] interface attribute

2009/7/13 Cameron McCormack <cam@mcc.id.au>:
> 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.

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

Ian Hickson:
>> 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.
[...]
>> Is this different here?

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

Does "succeed" mean that a sub-sequent [[Get]] for such a property
will return the value?
And does "not affect the underlying dictionary" effect the
enumerability of such properties?

Basically I don't mind how [[Put]] is dealt with, since that's apart
from the use cases I'm trying to solve, but of course it needs to be
specified.

Kind regards,
Anselm

Received on Tuesday, 14 July 2009 09:37:39 UTC