<html><head><style data-externalstyle="true">
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
}

p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst, p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle, p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast {
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
line-height:115%;
}
</style></head><body><div data-externalstyle="false" style="font-family:Calibri,'Segoe UI',Meiryo,'Microsoft YaHei UI','Microsoft JhengHei UI','Malgun Gothic','Khmer UI','Nirmala UI',Tunga,'Lao UI',Ebrima,sans-serif;font-size:16px;"><div>I certainly agree, but it has been decided otherwhise by the TC39 members and I doubt they’re willing to revert their decision.</div><div data-focusfrompointer="true"> </div><div> </div><div data-signatureblock="true"> </div>        <div style="border-top-color: rgb(225, 225, 225); border-top-width: 1px; border-top-style: solid;">             <strong>De :</strong> Andrea Giammarchi<br>         <strong>Envoyé :</strong> ‎18‎ ‎mars‎ ‎2013 ‎17‎:‎08<br>           <strong>À :</strong> Nathan Wall<br>                    <strong>Cc :</strong> es-discuss@mozilla.org<br>            <strong>Objet :</strong> Re: Mutable Proto<br>   </div>    <div> </div><div dir="ltr">I would like to see Object.setPrototypeOf(object, proto) too and a disappeared __proto__ 'till now breaking too much.<div><br></div><div>It would be much easier to implement all shenanigans via Object.defineProperty(Object.prototype, '__proto__', {whatever}); rather than fix current non-standard __proto__ ... </div>
<div><br></div><div>+1</div></div><div class=" gmail_extra"><br><br><div class=" gmail_quote">On Mon, Mar 18, 2013 at 9:04 AM, Nathan Wall <span dir="ltr"><<a tabindex="-1" href="mailto:nathan.wall@live.com" target="_blank">nathan.wall@live.com</a>></span> wrote:<br>
<blockquote class=" gmail_quote" style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;">A previous thread [1] brought to my attention the fact that objects which don't inherit from Object.prototype won't have mutable __proto__.  This was something I had missed and breaks some scripts I'm currently using because I have objects which I don't want to inherit from Object.prototype but for which I do want to have mutable proto.<br>

<br>
Testing in Firefox Nightly I found this workaround:<br>
<br>
    var x = { }, y = { foo: 'bar' };<br>
<br>
    x.__proto__ = y;<br>
    console.log(1, x.foo);<br>
    // => 1 'bar'<br>
<br>
    x.__proto__ = null;<br>
    console.log(2, x.foo);<br>
    // => 2 undefined<br>
<br>
    x.__proto__ = y;<br>
    console.log(3, x.foo);<br>
    // => 3 undefined<br>
<br>
    var _setPrototype = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set,<br>
        setPrototypeOf = Function.prototype.call.bind(_setPrototype);<br>
    setPrototypeOf(x, y);<br>
    console.log(4, x.foo);<br>
    // => 4 'bar'<br>
<br>
Is this workaround a temporary bug in Firefox's current implementation? Or will this be the spec'ed behavior for ES6? Can we use such a method to mutate prototype on objects which don't inherit from Object.prototype?<br>

<br>
<br>
[1] <a tabindex="-1" href="https://mail.mozilla.org/pipermail/es-discuss/2013-March/029176.html" target="_blank">https://mail.mozilla.org/pipermail/es-discuss/2013-March/029176.html</a><br>
_______________________________________________<br>
es-discuss mailing list<br>
<a tabindex="-1" href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
<a tabindex="-1" href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote></div><br></div>
</div></body></html>