Closed Bug 911252 Opened 11 years ago Closed 10 years ago

Add support for invoke() method on all proxies

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: jorendorff, Unassigned)

Details

The patch in bug 878605 has this:

>+bool
>+Proxy::invoke(JSContext *cx, HandleObject proxy, HandleObject receiver, HandleId id,
>+              MutableHandleValue vp)
>+{
>+    if (!IsScriptedDirectProxy(proxy))
>+        return Proxy::get(cx, proxy, receiver, id, vp);

This bug is to

  * remove those two lines, so the invoke trap is enabled for all proxies

  * add implementations for our existing proxy handlers, and in particular:

      * for legacy ("indirect") scripted proxies, continue calling .get()

      * for cross-compartment wrappers, maintain the existing behavior
        but make method calls faster

Also we need to change the order of operations so that CALLPROP/CALLELEM happen after the arguments are evaluated. Not sure if that fits in the same bug with the rest.
Support for the invoke trap was removed from ES6. Bug 878605 was WONTFIXed.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.