On 05/09/2013 10:12 AM, Brendan Eich wrote: > Adding an equivalent to the main spec does not cordon off the mis-performing > (non-performant?) functionality.
I may have misread, but I had thought there was argument to put Object.setPrototypeOf in Annex B as well. If it's added, that seems like the right place to me. There are somewhat orthogonal concerns here, for __proto__ and an Object.* method. Special-form badness is only in __proto__ the syntax. Prototype mutation after creation, with its erratic performance destabilization, and the impact upon proxies and [[SetInheritance]], is in __proto__ the property and an Object.*. Both aspects raise concerns of varying degree for developers. > Not use Object.setPrototypeOf and do what instead? If people need to make > ad-hoc inheritance relations and Object.create doesn't fit, then what? > > The non-mobile web is being eclipsed by mobile device growth. New content is > written for smaller screens; old content lives on or dies, a flat to > declining proposition. In the next ten years there'll be a lot of JS written > for the web, AKA the mobile web. What should people use to make ad-hoc > inheritance structures where Object.create does not suffice? Simply this: don't make ad-hoc inheritance relations where Object.create doesn't fit. Prototype mutation is extra expressiveness. But it is not *necessary* expressiveness, to write useful programs. There's an incredibly rich set of programs that can be written (have been written) without prototype mutation. I don't think it adds so much value to mandate it for every single embedding, considering its issues. Obviously you disagree to some degree. I suspect we'll have to leave it at that. It's worth reiterating that Annex B would be better for all of this not for mobile or non-mobile web (although I don't think there's anything different about mobile and non-mobile with respect to __proto__'s utility -- its utility on mobile is solely a matter of mobile being dominated by engines with __proto__). It's to not penalize embeddings working on a blank slate. Jeff _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

