[es6] add js-perf-test for rest parameters

BUG=v8:2160
LOG=N
R=adamk, rossberg, wingo

Review URL: https://codereview.chromium.org/1317113007

Cr-Commit-Position: refs/heads/master@{#30647}
This commit is contained in:
caitpotter88 2015-09-08 16:17:00 -07:00 committed by Commit bot
parent e4a8161adb
commit ce95a4db69
3 changed files with 69 additions and 0 deletions

View File

@ -8,6 +8,19 @@
"total": true,
"resources": ["base.js"],
"tests": [
{
"name": "RestParameters",
"path": ["RestParameters"],
"main": "run.js",
"resources": ["rest.js"],
"flags": ["--harmony-rest-parameters"],
"run_count": 5,
"units": "score",
"results_regexp": "^%s\\-RestParameters\\(Score\\): (.+)$",
"tests": [
{"name": "BasicRest1"}
]
},
{
"name": "SpreadCalls",
"path": ["SpreadCalls"],

View File

@ -0,0 +1,30 @@
// Copyright 2015 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.
new BenchmarkSuite('Basic', [1000], [
new Benchmark('BasicRest1', false, false, 0,
BasicRest1, BasicRest1Setup, BasicRest1TearDown)
]);
// ----------------------------------------------------------------------------
var result;
function basic_rest_fn_1(factor, ...values) {
var result = 0;
for (var i = 0; i < values.length; ++i) {
result += (factor * values[i]);
}
return result;
}
function BasicRest1Setup() {}
function BasicRest1() {
result = basic_rest_fn_1(10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
}
function BasicRest1TearDown() {
return result == 550;
}

View File

@ -0,0 +1,26 @@
// Copyright 2015 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('rest.js');
var success = true;
function PrintResult(name, result) {
print(name + '-RestParameters(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 });