On 7 July 2011 13:11, Tom Van Cutsem <[email protected]> wrote: > 2011/7/6 Andreas Rossberg <[email protected]> >> >> While putting together some test cases for Object.keys, I wondered: is >> it intended that property names are always passed to traps as strings? > > That is indeed the intent. > >> >> It seems like a reasonable assumption, but is not currently the case >> everywhere (e.g. the default implementation for `keys' can violate >> this assumption when passing names to this.getOwnPropertyDescriptor). > > How so? The default implementation for the keys trap relies on the return > value of the getOwnPropertyNames() trap, whose return value is coerced to an > array of Strings.
Not quite. The coercion is taking place in Object.getOwnPropertyNames, but the default `keys' trap doesn't go through that, but instead calls the trap directly. Moreover, it has to do it like that, because it doesn't even have a reference to the proxy itself. /Andreas _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

