7bb31d9f8a
Bug: v8:6831 Change-Id: I61d4080e11e354fb47d5c79c3c26076488f3fe13 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1656852 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#62156}
60 lines
1.4 KiB
JavaScript
60 lines
1.4 KiB
JavaScript
// Copyright 2019 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.
|
|
|
|
function setupArrayReduce(length) {
|
|
let a = new Array(length);
|
|
for (let i=0;i<length;i++) {
|
|
a[i] = ''+i;
|
|
}
|
|
return Object.freeze(a);
|
|
}
|
|
|
|
const kArraylength = 200;
|
|
const frozenArrayReduce = setupArrayReduce(kArraylength);
|
|
|
|
const reducer = (accumulator, currentValue) => accumulator + Number(currentValue);
|
|
|
|
function driverArrayReduce(n) {
|
|
let result = 0;
|
|
for (let i=0;i<n;i++) {
|
|
result = frozenArrayReduce.reduce(reducer);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
const kIterations = 1e3;
|
|
|
|
function ArrayReduce() {
|
|
driverArrayReduce(kIterations);
|
|
}
|
|
|
|
const kIterationsWarmUp = [1e1, 1e2];
|
|
|
|
function ArrayReduceWarmUp() {
|
|
driverArrayReduce(kIterationsWarmUp[0]);
|
|
driverArrayReduce(kIterationsWarmUp[1]);
|
|
}
|
|
|
|
const kRun = 1e1;
|
|
createSuite('ArrayReduce', kRun, ArrayReduce, ArrayReduceWarmUp);
|
|
|
|
function driverArrayReduceRight(n) {
|
|
let result = 0;
|
|
for (let i=0;i<n;i++) {
|
|
result = frozenArrayReduce.reduceRight(reducer);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
function ArrayReduceRight() {
|
|
driverArrayReduceRight(kIterations);
|
|
}
|
|
|
|
function ArrayReduceRightWarmUp() {
|
|
driverArrayReduceRight(kIterationsWarmUp[0]);
|
|
driverArrayReduceRight(kIterationsWarmUp[1]);
|
|
}
|
|
|
|
createSuite('ArrayReduceRight', kRun, ArrayReduceRight, ArrayReduceRightWarmUp);
|