On Fri, Sep 20, 2013 at 8:50 AM, Tom Van Cutsem <[email protected]> wrote: > To make matters more concrete, consider the has() trap: > > "foo" in proxy // triggers has(target, "foo"), returns a boolean > > Strictly speaking, we could do without the has() trap and instead call the > getOwnPropertyDescriptor() trap, and then test whether it returns a > descriptor or undefined (+ climb the prototype if it returns undefined). But > this interface potentially requires consing a property descriptor only for > it to be tested against undefined. So the has() operation: a) allows more > direct interception of the in-operator and b) with potentially less > allocations.
OK, taking all that at face value, what's the justification for .hasOwn()? a) allows more direct interception of Object.prototype.hasOwnProperty() b) potentially less allocations each time someone calls .hasOwnProperty(). I think .hasOwn() should be removed. > If you think about it, these very same arguments apply to the invoke() trap. It's on the same spectrum, I agree. -j _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

