v8/test/js-perf-test/Array/slice.js
Sigurd Schneider 6fd25bc6b4 [js-perf-test] Remove flaky perf test from mjsunittest...
...and add a js-perf-test instead.

Bug: v8:7726
Change-Id: I0cd17642c76887a5a24f54792625d62b9cee3667
Reviewed-on: https://chromium-review.googlesource.com/1094637
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Daniel Clifford <danno@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53627}
2018-06-11 09:52:58 +00:00

84 lines
2.0 KiB
JavaScript

// Copyright 2018 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.
(() => {
const A = new Array(1000);
for (let i = 0; i < A.length; i++) {
A[i] = i;
}
function testArraySlice500() {
return A.slice(500);
}
function testArraySlice500_999() {
return A.slice(500, 999);
}
function testArraySliceN500() {
return A.slice(-500);
}
function testArraySlice200_700() {
return A.slice(200, 700);
}
function testArraySlice200_N300() {
return A.slice(200, -300);
}
function testArraySlice4_1() {
return A.slice(200, -300);
}
createSuiteWithWarmup("Array.slice(500)", 1, testArraySlice500);
createSuiteWithWarmup("Array.slice(500,999)", 1, testArraySlice500_999);
createSuiteWithWarmup("Array.slice(-500)", 1, testArraySliceN500);
createSuiteWithWarmup("Array.slice(200,700)", 1, testArraySlice200_700);
createSuiteWithWarmup("Array.slice(200,-300)", 1, testArraySlice200_N300);
createSuiteWithWarmup("Array.slice(4,1)", 1, testArraySlice4_1);
})();
(() => {
function assert(condition, message) {
if (!condition) {
throw Error(message);
}
}
const A = new Array(1000);
for (let i = 0; i < A.length; i++) {
A[i] = i;
}
A[100000] = 255;
assert(%HasDictionaryElements(A), "A should be in dictionary mode for this test");
function testArraySlice500_999() {
return A.slice(500, 999);
}
function testArraySlice200_700() {
return A.slice(200, 700);
}
function testArraySlice200_N300() {
return A.slice(200, -300);
}
function testArraySlice4_1() {
return A.slice(200, -300);
}
createSuiteWithWarmup("Array.slice(500,999)-dict", 1, testArraySlice500_999);
createSuiteWithWarmup("Array.slice(200,700)-dict", 1, testArraySlice200_700);
createSuiteWithWarmup("Array.slice(200,-300)-dict", 1, testArraySlice200_N300);
createSuiteWithWarmup("Array.slice(4,1)-dict", 1, testArraySlice4_1);
})();