Updated MDN: <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty#Description">https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty#Description</a><div>
<br></div><div>Hope it's fine, feel fere to edit/add/change that, thanks</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Nov 29, 2012 at 12:23 PM, Andrea Giammarchi <span dir="ltr"><<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I will ... but I still would like to know why other developers are using inheritance for this.<div><br></div><div>No memory, performance, size, benefits and more verbose code, i.e.</div>
<div><br></div><div>Object.defineProperty(o, p, Object.create(null, {value:{value:v}}))</div>
<div><br></div><div>OR</div><div><br></div><div>Object.defineProperty(o, p, new DefaultDescriptor(v));</div><div><br></div><div>VS</div><div><br></div><div>Object.defineProperty(o, p, {value:v})<br></div><div><br></div><div>

So, let's say I am starting evangelizing this here.</div><div><br></div><div>br</div><div class="HOEnZb"><div class="h5"><div><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Nov 29, 2012 at 11:16 AM, Brendan Eich <span dir="ltr"><<a href="mailto:brendan@mozilla.org" target="_blank">brendan@mozilla.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Andrea Giammarchi wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I really don't understand what is exactly the advantage of considering inherited properties for descriptors.<br>
</blockquote>
<br></div>
It's easy to overreact here. Don't mess with Object.prototype still applies, or you will have other WTF moments.<br>
<br>
ES5 shipped this and browsers shipped implementations. David and others use it. I don't think we can change it.<br>
<br>
The ES5 meta-object APIs are pretty much power-tools, with obvious verbosity and usability taxes. Better (more concise and usable) veneer on top has been done and should bubble up on github. This is not to excuse anything, but any process (standardized de-jure or not) that releases platform iterations to millions of developers will face this pain. Node.js is facing it now.<br>


<br>
So I say doc this, evangelize it, and build better APIs on top of ES5. TC39 people are tracking.<span><font color="#888888"><br>
<br>
/be<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div>