A Precedent

Alex Russell slightlyoff at google.com
Fri Apr 12 02:54:20 PDT 2013


Hey Andrea,

Response inline.


On Fri, Apr 12, 2013 at 9:01 AM, Andrea Giammarchi <
andrea.giammarchi at gmail.com> wrote:

> "a principle or rule established in a previous case":
> http://en.wikipedia.org/wiki/Precedent
>
> I should not be here and I will not answer, just my last attempt trying to
> make a point.
>

Lobbing messages onto lists without any intent to follow up seems to me
like it puts this out of the realm of good-faith efforts to fix something
you think is broken.


> Please consider the main developer behind node.js agrees this property
> should never land in JS as it's a minefield game specially when security
> and server side stuff is involved.
>

Assuming "this property" is __proto__, that ship sailed in V8 a long ago
and there's zero chance of it ever being removed. It they want to remove
it, they can simply fork V8 or ask for a build flag for it.


> Current status:
> https://gist.github.com/WebReflection/5370050
>
> // all IE < 10 browsers
>
> *if* (*!*('__proto__' *in* {})) {
>
>   console.log('you gonna have hard time');
>
> }
>
> // all Mobile WebKit browsers
>
> *if* ('__proto__' *in* Object.create(*null*)) {
>
>   console.log('you gonna have hard time');
>
> }
>
> // all not so updated Chrome browsers plus many mobile  browsers
>
> *if* (*!*Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').configurable)
> {
>
>   console.log('you gonna have hard time');
>
> }
>
> // all updated Chrome browsers plus current node.js
>
> *if* (*!*Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set)
> {
>
>   console.log('you gonna have hard time');
>
> }
>
> now ask yourself how good is for the web to promote early adoption of
> broken ideas so that the whole future of the language will get screwed.
>

Early adoption is for early adopters; that is to say, people willing to
take risks knowing they might not pay off. Standardizing things is a way to
remove risks so a larger population can benefit. That there is impl
ambiguity is often *desireable* pre-standardization to ensure that only the
early-adopters bite off features which might otherwise look enticing.


> I think it's called **Butterfly Effect**, and once again this is the best
> time ever to officially drop that property instead of promoting it!
>

Again, the ship sailed.


> P.S. all the community needed/wanted, wasn't a shame like that property in
> the `Object.prototype` but a way to subclass or swap class to native,
> untouchable, instances/constructors such NodeList and all non ArrayLike
> objects: **nothing else**, really!
>
> `Object.setPrototypeOf(obj, proto):obj` is a way better answer for next JS
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20130412/095a5834/attachment.html>


More information about the es-discuss mailing list