On 2008-05-15, at 18:48 EDT, Garrett Smith wrote:

> That sore thumb propertyIsEnumerable.
>
> propertyIsEnumerable, as a setter, sets the DontEnum flag for the
> object's own property. A value of 'false' makes the prop not show up
> in - for in.
> propertyIsEnumerable, as a getter, gets the value of the negation of
> the DontEnum flag, and does not check the prototype chain. Has nothing
> to do with whether or not the object shows up in - for in.
>
> The addition adds a non-orthogonal aspect, apparently to add some
> needed functionality.
>
> This unituitive behavior is especially problematic to amateur, or
> unskilled developers. The following code example from google
> demonstrates this to be true:

[...]

Is a virtual property (one defined by a getter/setter pair) enumerable?

Is Object.prototype.propertyIsEnumerable required to be generic?  Can  
it be applied to a non-Object (a native DOM object)?

OpenLaszlo struggles with this sore thumb too.  I hadn't even  
considered that someone might replace Object methods.  Check out  
`objectOwnProperties`, the last function in 
(LzDebug)[http://svn.openlaszlo.org/openlaszlo/trunk/WEB-INF/lps/lfc/debugger/LzDebug.lzs
 
].

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

Reply via email to