Le 07/07/2011 13:11, Tom Van Cutsem a écrit :
2011/7/6 Andreas Rossberg <[email protected] <mailto:[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.
The return value of the trap is. The return value of this.getOwnPropertyNames isn't. With a "pure" mapping from internal methods to trap, the trap call and handler.trap (this.trap) are the same. However, with invariant enforcement, they are different. Type coercion is a such an invariant enforcement (that actually could be added to FixedHandler).

David


Cheers,
Tom

    /Andreas
    _______________________________________________
    es-discuss mailing list
    [email protected] <mailto:[email protected]>
    https://mail.mozilla.org/listinfo/es-discuss



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

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

Reply via email to