On Sep 3, 2009, at 8:48 PM, Allen Wirfs-Brock wrote:
ES3, 15.3.5.2, says the prototype property of function instances is
enumerable.
ES5, 13.2 step 17, says the prototype property of function
instances is not enumerable.
ES5, 15.3.5.2 also says non-enumerable so at least it is internally
consistent.
I don't recall this specific change but tomorrow I'll look at some
back drafts and see if I can identify when/why the change was made.
Non-enumerable seems like the preferable value but I don't think we
would have made an incompatible change unless we both thought the
old definition was "wrong" and the actual web was inconsistent.
Since Chrome wasn't yet around when some of these decisions were
made 3 out of 4 major browser implementations were probably non-
enumerable at the time.
Not something I noticed either, but it gets rid of an annoying
difference between built-in constructors and user-defined functions:
js> for(i in Date)print(i)
js> function MyDate(){}
js> for(i in MyDate)print(i)
prototype
I hope it doesn't break anything on the web. It could, because using
for-in to inspect properties and extend base objects with copies of
them is standard practice (Doug's "Swiss inheritance", search for
"Swiss" in http://www.cosmik.com/aa-october99/stan_freberg.html).
/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss