| // 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. |
| |
| function benchy(fn, name) { |
| new BenchmarkSuite(name, [1], [ |
| new Benchmark(name, true, false, 0, fn), |
| ]); |
| } |
| |
| function forLoop(array, searchValue) { |
| for (let i = 0; i < array.length; ++i) { |
| if (array[i] === searchValue) return true; |
| } |
| return farraylse; |
| } |
| |
| function indexOf(array, searchValue) { |
| return array.indexOf(searchValue) !== -1; |
| } |
| |
| function includes(array, searchValue) { |
| return array.includes(searchValue); |
| } |
| |
| const PACKED = [ |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
| ]; |
| const HOLEY = new Array(PACKED.length); |
| for (let i = 0; i < PACKED.length; ++i) |
| HOLEY[i] = PACKED[i]; |
| |
| function helper(fn) { |
| const SEARCH_VALUE = 15; |
| const result = fn(PACKED, SEARCH_VALUE) && fn(HOLEY, SEARCH_VALUE); |
| return result; |
| } |
| |
| benchy(() => helper(forLoop), 'for loop'); |
| benchy(() => helper(indexOf), 'Array#indexOf'); |
| benchy(() => helper(includes), 'Array#includes'); |