<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">The error looks correct to me. By freezing Type.proto you make all its own properties "read only". &nbsp;One of those is the constructor that is automatically created on every func.prototype object. &nbsp;When you assign to object.constructor you are trying to over-ride an inherited read-onoy property. &nbsp;ECMAScript has never allowed this. &nbsp;You can say:<div>&nbsp;&nbsp; &nbsp; &nbsp;Object.defineProperty(object,"constructor",{value: function Foo() {}, /* any other attributes you want to set */});</div><div>to over-ride the inherited constructor property.</div><div>Or you can restructure you code so you do the freeze after you do the assignment.</div><div><br><div><div>On Feb 16, 2011, at 5:09 PM, Irakli Gozalishvili wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hi,<br><br>I've run into one issue and even after reading ES5 specs several times it's not clear to me what should be an expected behavior:<br><br>Currently on Firefox nightly following code:<br><br>(function() {<br>

"use strict";<br><br>function Type() {}<br>Object.freeze(Type.prototype);<br>var object = Object.create(Type.prototype);<br>object.constructor = function Foo() {};<br><br>return object<br>})();<br><br>throws TypeError: object.constructor is read-only<br>

while on chrome <br><br>it returns object with constructor Foo<br><br>I would like to know what is an expected behavior to fill a bug to an appropriate project.<br><br><br clear="all">Thanks!<br><span style="color:rgb(153, 153, 153)">--</span><br style="color:rgb(153, 153, 153)">

<span style="color:rgb(153, 153, 153)">Irakli Gozalishvili</span><br style="color:rgb(153, 153, 153)"><span style="color:rgb(153, 153, 153)">Web: <a style="color:rgb(153, 153, 153)" href="http://www.jeditoolkit.com/" target="_blank">http://www.jeditoolkit.com/</a></span><br style="color:rgb(153, 153, 153)">

<span style="color:rgb(153, 153, 153)"></span><span style="color:rgb(153, 153, 153)">Address: <a href="http://goo.gl/maps/3CHu" target="_blank">29 Rue Saint-Georges, 75009 Paris, France</a></span><br>
_______________________________________________<br>es-discuss mailing list<br><a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>https://mail.mozilla.org/listinfo/es-discuss<br></blockquote></div><br></div></body></html>