summaryrefslogtreecommitdiff
path: root/benchmark/es/restparams-bench.js
diff options
context:
space:
mode:
Diffstat (limited to 'benchmark/es/restparams-bench.js')
-rw-r--r--benchmark/es/restparams-bench.js38
1 files changed, 14 insertions, 24 deletions
diff --git a/benchmark/es/restparams-bench.js b/benchmark/es/restparams-bench.js
index 78299d292c..6ad766f10f 100644
--- a/benchmark/es/restparams-bench.js
+++ b/benchmark/es/restparams-bench.js
@@ -33,49 +33,39 @@ function useArguments() {
assert.strictEqual(arguments[3], 'b');
}
-function runCopyArguments(n) {
-
- var i = 0;
- bench.start();
- for (; i < n; i++)
+function runCopyArguments(millions) {
+ for (var i = 0; i < millions * 1e6; i++)
copyArguments(1, 2, 'a', 'b');
- bench.end(n / 1e6);
}
-function runRestArguments(n) {
-
- var i = 0;
- bench.start();
- for (; i < n; i++)
+function runRestArguments(millions) {
+ for (var i = 0; i < millions * 1e6; i++)
restArguments(1, 2, 'a', 'b');
- bench.end(n / 1e6);
}
-function runUseArguments(n) {
-
- var i = 0;
- bench.start();
- for (; i < n; i++)
+function runUseArguments(millions) {
+ for (var i = 0; i < millions * 1e6; i++)
useArguments(1, 2, 'a', 'b');
- bench.end(n / 1e6);
}
function main({ millions, method }) {
- const n = millions * 1e6;
-
+ var fn;
switch (method) {
case '':
// Empty string falls through to next line as default, mostly for tests.
case 'copy':
- runCopyArguments(n);
+ fn = runCopyArguments;
break;
case 'rest':
- runRestArguments(n);
+ fn = runRestArguments;
break;
case 'arguments':
- runUseArguments(n);
+ fn = runUseArguments;
break;
default:
- throw new Error('Unexpected method');
+ throw new Error(`Unexpected method "${method}"`);
}
+ bench.start();
+ fn(millions);
+ bench.end(millions);
}