"use strict"; (function (factory) { if (typeof Benchmark !== "undefined") { factory(Benchmark); } else { factory(require("benchmark")); } })(function (Benchmark) { var suite = new Benchmark.Suite; Benchmark.prototype.setup = function () { var array = []; for (var i = 1000; i-- ;) array.push(i); var sum = 0 function add( n ) { sum += n; } function addFrom( array, i ) { sum += array[i]; } }; suite.add("var foo,", function () { var foo, slice = [].slice; foo = function() { var arr; arr = slice.call(arguments); return arr.reduce(function(x, y) { return x + y; }); }; foo(1,2) }); suite.add("var foo,", function () { var foo, slice = [].slice; foo = function(arr) { return arr.reduce(function(x, y) { return x + y; }); }; foo([1,2]) }); suite.on("cycle", function (evt) { console.log(" - " + evt.target); }); suite.on("complete", function (evt) { console.log(new Array(30).join("-")); var results = evt.currentTarget.sort(function (a, b) { return b.hz - a.hz; }); results.forEach(function (item) { console.log((idx + 1) + ". " + item); }); }); console.log("arguments leakage"); console.log(new Array(30).join("-")); suite.run(); });