(function foo(){}).propertyIsEnumerable("prototype"): true or false?

Jeff Walden jwalden+es at MIT.EDU
Thu Sep 3 20:14:50 PDT 2009

On 3.9.09 20:04 , Mark S. Miller wrote:
> I don't remember discussing this. But if we had, our general principle
> is that we first need to be compatible with the cross-browser web, and
> only second with the text of the ES3 standard. A bit of testing
> reveals that 'prototype' is enumerable on Firefox and not on Safari or
> Opera. Someone with Windows should test IE. If it isn't enumerable on
> IE, then the governing principle would be the three of four browsers
> heuristic. If it is, then since the four browsers are split, either
> decision is compatible with the cross browser web so we should codify
> whatever seems most sensible.

Chrome: enumerable
Firefox: enumerable
IE: not enumerable
Safari: not enumerable
Opera: not enumerable

I doubt there's serious reliance on enumerability or lack thereof of prototype on functions, given this.  The results are semi-inconclusive, but given the late date that's a good vote for leaving ES5 as-is, with the incompatible change, in my book.  I'll assume such unless others think this is worth more discussion.


More information about the es-discuss mailing list