<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">On Mon, Jun 10, 2013 at 1:18 AM, Tom Van Cutsem <span dir="ltr"><<a href="mailto:tomvc.be@gmail.com" target="_blank">tomvc.be@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div class="h5">2013/6/9 Dmitry Soshnikov <span dir="ltr"><<a href="mailto:dmitry.soshnikov@gmail.com" target="_blank">dmitry.soshnikov@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div><br>
On Jun 8, 2013, at 3:30 AM, Till Schneidereit wrote:<br>
<br>
> At the last TC39 meeting, an agreement was reached for proxies to support an Invoke trap.<br>
<br>
</div>Finally (I remember that long thread 2 years ago when I was advocating for it).<br>
<br>
Curious what was the reasoning behind this now, since as I understand the invoke trap wont' be for "virtual" (non-existing methods), but still for real function objects returned from the invoke trap -- in order to keep extracting to a var invariant working. If the later should be preserved, then the [[Get]] should be called anyways as I see.</blockquote>

<div><br></div></div></div><div>The main reason behind adding invoke() was to make rebinding |this| easy and efficient upon forwarding, essentially to make examples such as the following work:<br></div><div><br></div>
<div>var date = new Date()</div><div>var proxy = new Proxy(date, {</div><div class="im"><div>  invoke: function(target, name, args, rcvr) {</div></div><div>    return target[name].apply(target, args); // note, |this| bound to target inside forwarded method, not to |rcvr| (= the proxy itself)</div>

<div>  }</div><div>});</div><div><br></div><div>proxy.getFullYear() // works fine, no "error: not a Date" exception</div><div><br></div></div></div></div></blockquote><div><br><div>I see, yeah, it makes sense. Thanks, I'll take a detailed look on the updated wiki page.<br>
<br></div>Dmitry<br></div></div><br></div></div>