diff --git a/test/js-perf-test/SixSpeed.json b/test/js-perf-test/SixSpeed.json index 417ec89569..746db951f0 100644 --- a/test/js-perf-test/SixSpeed.json +++ b/test/js-perf-test/SixSpeed.json @@ -36,6 +36,20 @@ {"name": "ObjectLiterals-ES6"} ] }, + { + "name": "Defaults", + "path": ["SixSpeed/defaults"], + "main": "run.js", + "resources": [ + "run.js", + "defaults.js" + ], + "results_regexp": "^%s\\(Score\\): (.+)$", + "tests": [ + {"name": "Defaults-ES5"}, + {"name": "Defaults-ES6"} + ] + }, { "name": "Spread", "path": ["SixSpeed/spread"], diff --git a/test/js-perf-test/SixSpeed/defaults/defaults.js b/test/js-perf-test/SixSpeed/defaults/defaults.js new file mode 100644 index 0000000000..b690f8931a --- /dev/null +++ b/test/js-perf-test/SixSpeed/defaults/defaults.js @@ -0,0 +1,47 @@ +// Copyright 2016 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// This benchmark is based on the six-speed benchmark build output. +// Copyright 2014 Kevin Decker + + +new BenchmarkSuite('Defaults-ES5', [1000], [ + new Benchmark('ES5', false, false, 0, ES5), +]); + +new BenchmarkSuite('Defaults-ES6', [1000], [ + new Benchmark('ES6', false, false, 0, ES6), +]); + +// ---------------------------------------------------------------------------- +// Benchmark: ES5 +// ---------------------------------------------------------------------------- + +function ES5() { + "use strict"; + function fn(arg, other) { + arg = arg === undefined ? 1 : arg; + other = other === undefined ? 3 : other; + return other; + } + + fn(); + fn(2); + fn(2, 4); +} + +// ---------------------------------------------------------------------------- +// Benchmark: ES6 +// ---------------------------------------------------------------------------- + +function ES6() { + "use strict"; + function fn(arg = 1, other = 3) { + return other; + } + + fn(); + fn(2); + fn(2, 4); +} diff --git a/test/js-perf-test/SixSpeed/defaults/run.js b/test/js-perf-test/SixSpeed/defaults/run.js new file mode 100644 index 0000000000..f067164afa --- /dev/null +++ b/test/js-perf-test/SixSpeed/defaults/run.js @@ -0,0 +1,25 @@ +// Copyright 2016 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +load('../../base.js'); +load('defaults.js'); + +var success = true; + +function PrintResult(name, result) { + print(name + '(Score): ' + result); +} + + +function PrintError(name, error) { + PrintResult(name, error); + success = false; +} + + +BenchmarkSuite.config.doWarmup = undefined; +BenchmarkSuite.config.doDeterministic = undefined; + +BenchmarkSuite.RunSuites({ NotifyResult: PrintResult, + NotifyError: PrintError });