On Apr 21, 2013, at 11:12 AM, Brendan Eich wrote:

> David Herman wrote:
>> On Apr 21, 2013, at 8:55 AM, Allen Wirfs-Brock<[email protected]>  wrote:
>> 
>>> Deleting Object.prototype.__proto__ will not be be specified as disabling 
>>> {__proto__: foo}.
>> 
>> Was that what we'd agreed to?
> 
> I think what Allen means is, whether or not there's a magic 
> Object.prototype.__proto__, you can define (as in [[DefineOwnProperty]]) a 
> plain old data property (or an accessor, for that matter, just different 
> syntax) whose name is '__proto__' in an object literal.

No, see the spec. strawman I posted.

What I mean is that:
    let obj = {__proto__: null}
will always create an object whose [[Prototype]] is null.  Regardless of 
whether or not anybody has done:
   delete Object.prototype.__proto__.

There is no good reason to link the semantics of __proto__ in an object literal 
to the existence of Dunder proto on Object.prototype.  The standard semantics 
of object literal properties in ES5 have no dependencies upon the shape of 
Object.prototype.

> 
> 
> This is specified by ES5, already.

Doesn't matter because what ES5 specifies is already incompatible with web 
reality when the property name is  __proto__.

Allen

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to