Duplicate property names (was Re: @@new)

Andy Wingo wingo at igalia.com
Wed Jun 25 06:27:02 PDT 2014


On Wed 25 Jun 2014 15:19, Andy Wingo <wingo at igalia.com> writes:

> Hi,
>
> On Fri 20 Jun 2014 15:16, "Mark S. Miller" <erights at google.com> writes:
>
>> On Fri, Jun 20, 2014 at 1:48 AM, Andy Wingo <wingo at igalia.com> wrote:
>> >
>> >     There is one change:
>> >     
>> >     ({ foo: 3, get foo() { return 4 } })
>> >     
>>     This is not allowed with current sloppy mode.
>>
>> Yes, good catch. This is a change, and it is now allowed.
>
> What about:
>
>   ({ get __proto__() {}, __proto__: foo })  // (1)
>
> Does this end up setting the prototype of the result?  Would it if there
> were a setter?
>
> Likewise:
>
>   ({ __proto__: foo, get __proto__() {} })  // (2)
>
> This one is kinda similar:
>
>   ({ ['__proto__']: 34, __proto__: foo })   // (3)

And another one:

  ({ get __proto__() {}, __proto__: foo, set __proto__(x) {} })

Does the resulting accessor have a setter and a getter, or just a
setter?  I would think just a setter, in the same way that this one
would only have a setter:

  ({ get qux() {}, qux: foo, set qux(x) {} })

Andy


More information about the es-discuss mailing list