B.3.1 The __proto__ pseudo property
brendan at mozilla.com
Sun Apr 21 20:41:09 PDT 2013
So as my last post said, if there's no observable difference in the
field in switching from [[Put]] to [[SetInheritance]], then you and Mark
are right, and we can do that in ES6 without fear of breaking any code.
This change *is* observable in ES6, though. That's why I summoned Mark:
to make sure there's no SES issue with setting _ab initio_ the
[[Prototype]] (or now I guess it's called [[Inheritance]]) of a fresh
object created via an object literal.
Allen Wirfs-Brock wrote:
>> Triangle died for several reasons, and I'm surprised to hear it here. Grinding an axe?
> Not at all! You frequently have said that standardizing __proto__ takes the wind out of other features that support various use cases of defining/manipulating an object's [[Prototype]]. One of those features is using an object literal as a way to declaratively describe an object that inherits from something other than Object.prototype (including null).
The argument is that anyone code that deletes Object.prototype.__proto__
should not affect object literals wiring up from-birth inheritance is
fair. I shouldn't have mentioned axes, sorry.
The only issue is the ES6 => SES one. If Mark's happy, then we are done
as far as this [[Put]] vs. [[SetInheritance]] argument goes.
The quoted vs. unquoted difference is horrifying to me, I threw up in my
mouth a little. More on that elsewhere.
More information about the es-discuss