Removing Proxy hasOwn() trap (Was: [[Invoke]] and implicit method calls)

Jason Orendorff jason.orendorff at
Tue Sep 24 08:13:23 PDT 2013

On Tue, Sep 24, 2013 at 7:23 AM, Tom Van Cutsem < at> wrote:
> [forking from [[invoke]]-thread for clarity]


> Allen: would the removal of the hasOwn() trap imply that we can drop the
> [[HasOwnProperty]] internal method altogether?

I searched the spec. There are not very many places where
[[HasOwnProperty]] is used; each one can be replaced with a call to an
Abstract Operation defined like this:

----begin spec text----

When the abstract operation HasOwnProperty is called with Object O and
property key P, the following steps are taken:

1. Let desc be the result of calling the [[GetOwnProperty]] internal
method of O with argument P.
2. ReturnIfAbrupt(desc).
3. If desc is undefined, then return false.
4. Return true.

----end spec text----

This allows five or six sections defining [[HasOwnProperty]]
implementations to be deleted. It's a nice simplification.


More information about the es-discuss mailing list