<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2013/9/24 Brandon Benvie <span dir="ltr"><<a href="mailto:bbenvie@mozilla.com" target="_blank">bbenvie@mozilla.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">It seems unfortunate that we have to rely on a membrane for something as simply as `new Proxy(new Date, {}).getDate()` to work. [[Invoke]] as currently specced gets us somewhere at least.<br></div></blockquote>
<div><br></div><div style>You don't necessarily need a full membrane if you want that specific call to work. If a proxy's "get" trap just returns a bound-function (with |this| bound to target), this will work fine. I would postulate that this solution easily covers the 90% case. Yes, methods can be objects with properties in JS, and bound functions won't proxy those, but that isn't the common case.</div>
<div style><br></div><div style>JS programmers have been using function-wrappers since forever (including bound functions since ES5). Bound functions aren't perfect forwarding wrappers either. People seem to cope.<br>
</div><div style><br></div><div style>Perfect is the enemy of the good and all that ;-)</div></div></div></div>