summaryrefslogtreecommitdiff
path: root/deps/v8/test/js-perf-test/ObjectFreeze/array-indexof-includes.js
blob: 01e18496343096b435d489d675fc0f3202eeed61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// 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 setupArray(length) {
  var a = new Array(length);
  for (var i=0;i<length;i++) {
    a[i] = ''+i;
  }
  return Object.freeze(a);
}

const frozenArray = setupArray(200);

function driverArrayIndexOf(n) {
  let result = 0;
  for (var i=0;i<n;i++) {
    result += frozenArray.indexOf(''+i)==-1?0:1;
  }
  return result;
}

function ArrayIndexOf() {
  driverArrayIndexOf(1e4);
}

function ArrayIndexOfWarmUp() {
  driverArrayIndexOf(1e1);
  driverArrayIndexOf(1e2);
  driverArrayIndexOf(1e3);
}

createSuite('ArrayIndexOf', 10, ArrayIndexOf, ArrayIndexOfWarmUp);

function driverArrayIncludes(n) {
  let result = 0;
  for (var i=0;i<n;i++) {
    result += frozenArray.includes(''+i)?0:1;
  }
  return result;
}

function ArrayIncludes() {
  driverArrayIncludes(1e4);
}

function ArrayIncludesWarmUp() {
  driverArrayIncludes(1e1);
  driverArrayIncludes(1e2);
  driverArrayIncludes(1e3);
}

createSuite('ArrayIncludes', 10, ArrayIncludes, ArrayIncludesWarmUp);