Who can help explain the concept of Leaking arguments
<script>
Benchmark.prototype.setup = function() {
function otherFunc(a, b) {
return a + b;
}
function withArguments(x) {
var a = arguments;
return otherFunc.apply(x, Array.prototype.slice.call(a, 1));
}
function withCopy(x) {
var a = [];
var i, len = arguments.length;
for (i = 1; i < len; i += 1) {
a[i - 1] = arguments[i];
}
return otherFunc.apply(x, a);
}
Passing
arguments
to any method is calledleaking arguments
withArguments
will not be optimized by V8,withCopy
is recommended for use in online environments, although it is verbose.