<div dir="ltr">On Sun, Dec 23, 2012 at 1:26 PM, Wes Garland <span dir="ltr"><<a href="mailto:wes@page.ca" target="_blank">wes@page.ca</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF"><div>Arguments object is used here to fill the rest void, but also as an argument to apply (after converting into a real array) when writing wrapper functions; eg monkey patches, userspace profiling, etc.</div>

<div><br></div><div>Is there an ES6 way to use apply on rest params? If not, arguments must live on.<br></div></div></blockquote><div><br></div><div>There is something really nice. You can use the ... operator when calling a function. For example, if you're wrapping a function foo:<br>
<br></div><div>  _origFoo = foo;<br></div><div>  foo = function (a, b, ...rest) {<br></div><div>      // ... do something ...<br></div><div>      return _origFoo(a, b, ...rest);<br>  };<br><br></div><div>If you're wrapping a method it's not quite as nice, but:<br>
</div><div><br></div><div>  _origMethod = Bar.prototype.method;<br></div><div>  Bar.prototype.method = function (a, b, ...rest) {<br></div><div>      // ... do something ...<br></div><div>      return _origMethod.call(this, a, b, ...rest);<br>
  };<br><br></div><div>-j<br><br></div></div></div></div>