B.3.1 The __proto__ pseudo property

Brendan Eich brendan at mozilla.com
Sun Apr 21 20:48:00 PDT 2013

Again, you're inventing something new. Always risky, ignoring the 
throw-up-in-mouth effect :-|.

Now the burden is on someone (who?) to find code on the web that uses 
the quoted form expecting the same results as the unquoted form, which 
is what all implementations I know of indeed provide.

Who will do that search? Finding such code would disprove the hypothesis 
of course, but usually we end up with absence of evidence, which is not 
evidence of absence.


Mark S. Miller wrote:
> Warning: The following is a sickening idea. I would really hate to see 
> us do it. But I feel obliged to post it as it may in fact be the right 
> thing to do.
> Given: Web reality drives us towards recognizing {...., __proto__: 
> ...., ....} as special syntax for initializing [[Prototype]].
> Given: JSON demands that the "__proto__" in JSON.parse('{...., 
> "__proto__": ...., ....}') not be treated as a special case, and 
> causes just the normal [[DefineOwnProperty]].
> Given: Web reality does not make demands on the meaning of {...., 
> "__proto__": ...., ....}
> Given: The ES5 JSON spec demands that JSON.parse('{...., __proto__: 
> ...., ....}') be rejected as an error.
> This suggests that, in JS as well, the "__proto__" in {...., 
> "__proto__": ...., ....} not be treated as a special case. Quoting it 
> turns off the special treatment.

More information about the es-discuss mailing list