On Jun 30, 2010, at 4:24 PM, Jürg Lehni wrote:

> On 30 Jun 2010, at 23:32, Brendan Eich wrote:
> 
>> On Jun 30, 2010, at 2:15 PM, Erik Arvidsson wrote:
>> 
>>> Sorry, Object.create was a mistake.
>> 
>> A bit harsh, but my point is not about tone -- it is that the mistake in 
>> your view is the default values for missing attributes being false, not 
>> true. Right?
> 
> Rather than having missing boolean values default to true which somehow 
> contradicts ES behavior when dealing with undefined boolean values 
> (!undefined == true), I would have preferred if the properties were defined 
> as their opposites, so default to false would make more sense: writable -> 
> readOnly, configurable -> sealed, etc. But I guess it is what it is now.

This was all discussed in the ES3.1 -> ES5 days, indeed. The ES1-3 
"DontDelete", "DontEnum", and "ReadOnly" names are awkward for being negative 
("Dont", "-Only"), resulting in double negative phrasing when documenting and 
discussing.

And you're right that attribute-property-missing -> undefined -> false has an 
effect here. If we had kept the ES3 negative names, we could have defaulted to 
false and Erik (I think) would not find Object.create a mistake -- but then the 
high-integrity-by-default fans would be put out. Those fans should speak up if 
they care to defend against the "mistake" charge.

Anyway, ES5 is done. Life goes on, though, with Harmony. There's not much that 
can be done about the default attribute values and the sense of their names, 
Same for Object.keys vs. Object.getOwnPropertyNames method-naming-style 
disparity. Food for thought, in order to do better in the future.

/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to