<p dir="ltr">V8 now uses an accessor on Object.prototype.</p>
<div class="gmail_quote">On Mar 15, 2013 7:20 PM, "Brendan Eich" <<a href="mailto:brendan@mozilla.com">brendan@mozilla.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Kevin Reid wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I'm doing a little maintenance on SES. Chrome has recently added a new<br>
odd behavior:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
var o = Object.create(null);<br>
Object.getOwnPropertyNames(o)<br>
</blockquote>
[]<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Object.<u></u>getOwnPropertyDescriptor(o, '__proto__');<br>
</blockquote>
Object {value: null, writable: true, enumerable: false, configurable: false}<br>
</blockquote>
<br>
Oh come on! :-P<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The two results are clearly non-conformant, in that gOPN and gOPD<br>
should be consistent with each other. However, the problem that I'm<br>
wanting to record accurately is the fact that Object.create(null) has<br>
(however inconsistently) any properties at all (thus interfering with<br>
table-like uses).<br>
</blockquote>
<br>
ES6 will specify __proto__ as "own" and configurable in Object.prototype. Whether magic data or accessor with censored or poisoned getter and setter I'm not sure at the moment, but the above will definitely not conform to ES6.<br>

<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
15.2.3.5 Object.create refers to 15.2.2.1 which specifies “a newly<br>
created native ECMAScript object”. Where is the initial state of the<br>
collection of properties of a “newly created” object specified? (8.6<br>
defining the Object type doesn't say anything about the existence of<br>
non-internal properties.)<br>
</blockquote>
<br>
Whoa, spec hole. Allen?<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
(I recognize that this behavior may well be a deliberate variance to<br>
reconcile __proto__ and ES5/ES6. This is not a complaint; this is a<br>
request to consult spec-lawyers.)<br>
</blockquote>
<br>
Ok, whew. Sorry for lawyering,<br>
<br>
/be<br>
______________________________<u></u>_________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/<u></u>listinfo/es-discuss</a><br>
</blockquote></div>