Brendan Eich (2013-05-08T04:00:51.000Z)
Mark S. Miller wrote:
>
>         2) Object.prototype.__proto__ is moved back to Annex B.
>
>
>     Since __proto__, unlike __defineGetter__, provides functionality
>     that is otherwise unavailable, all JS platforms will treat it as
>     mandatory whether we put it into Appendix B or the main text. At
>     this point, I think moving this back to Appendix B would be an
>     obviously meaningless gesture
>
>
> My "since" is incorrect, as the functionality is available via 
> Object.setPrototypeOf. Nevertheless, I still think this would be a 
> meaningless gesture. OTOH, since it is meaningless, it is also mostly 
> harmless.

Having __proto__ in the main spec be a special form when used as a 
property name in an object literal, but relegating 
Object.prototype.__proto__ to Annex B, seems inconsistent just on that 
basis, too. One place or the other -- main spec or Annex B -- but not both.

/be
github at esdiscuss.org (2013-07-12T02:27:20.760Z)
Mark S. Miller wrote:

>>> 2) `Object.prototype.__proto__` is moved back to Annex B.
>
>> Since `__proto__`, unlike `__defineGetter__`, provides functionality that is otherwise unavailable, all JS platforms will treat it as mandatory whether we put it into Appendix B or the main text. At this point, I think moving this back to Appendix B would be an obviously meaningless gesture
>
> My "since" is incorrect, as the functionality is available via 
> `Object.setPrototypeOf`. Nevertheless, I still think this would be a 
> meaningless gesture. OTOH, since it is meaningless, it is also mostly 
> harmless.

Having `__proto__` in the main spec be a special form when used as a 
property name in an object literal, but relegating 
`Object.prototype.__proto__` to Annex B, seems inconsistent just on that 
basis, too. One place or the other -- main spec or Annex B -- but not both.