// Copyright 2020 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 TEST_ITERATIONS = 100000; // This dummy ensures that the feedback for benchmark.run() in the Measure // function from base.js is not monomorphic, thereby preventing the benchmarks // below from being inlined. This ensures consistent behavior and comparable // results. new BenchmarkSuite('Prevent-Inline-Dummy', [100000], [ new Benchmark('Prevent-Inline-Dummy', true, false, 0, () => {}) ]); new BenchmarkSuite('Equal-SmiNumber', [100000], [ new Benchmark('Equal-SmiNumber', true, false, 0, TestEqualSmiNumber, SetUp) ]); new BenchmarkSuite('Equal-SmiOddball', [100000], [ new Benchmark('Equal-SmiOddball', true, false, 0, TestEqualSmiOddball, SetUp) ]); new BenchmarkSuite('Equal-NumberOddball', [100000], [ new Benchmark('Equal-NumberOddball', true, false, 0, TestEqualNumberOddball, SetUp) ]); new BenchmarkSuite('Equal-OddballOddball', [100000], [ new Benchmark('Equal-OddballOddball', true, false, 0, TestEqualOddballOddball, SetUp) ]); let smis = []; let numbers = []; let oddballs = []; function SetUp() { for(let i = 0; i < TEST_ITERATIONS + 1; ++i) { smis[i] = (i % 2 == 0) ? 42 : -42; numbers[i] = (i % 2 == 0) ? 42.3 : -42.3; oddballs[i] = (i % 2 == 0); } } function TestEqualSmiNumber() { let result = false; for(let i = 0; i < TEST_ITERATIONS; ++i) { result = result || (11 == numbers[i]); } return result; } function TestEqualSmiOddball() { let result = false; for(let i = 1; i < TEST_ITERATIONS; ++i) { result = result || (smis[i] == false); } return result; } function TestEqualNumberOddball() { let result = false; for(let i = 1; i < TEST_ITERATIONS; ++i) { result = result || (numbers[i] == false); } return result; } function TestEqualOddballOddball() { let result = false; for(let i = 0; i < TEST_ITERATIONS; ++i) { result = result || (oddballs[i] == oddballs[i+1]); } return result; }