// Copyright 2016 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 benchName(bench, setup) { var name = bench.name; if (setup) name += "/" + setup.name; return name; } function slowBenchName(bench, setup) { return benchName(bench, setup) + " (Slow)"; } function slow(setupFunction) { return () => { setupFunction(); // Trigger RegExp slow paths. const regExpExec = re.exec; re.exec = (str) => regExpExec.call(re, str); }; } function createHaystack() { let s = "abCdefgz"; for (let i = 0; i < 3; i++) s += s; return s; } function createBenchmarkSuite(name) { return new BenchmarkSuite( name, [1000], benchmarks.map(([bench, setup]) => new Benchmark(benchName(bench, setup), false, false, 100000, bench, setup))); } function createSlowBenchmarkSuite(name) { return new BenchmarkSuite( "Slow" + name, [1000], benchmarks.map(([bench, setup]) => new Benchmark(slowBenchName(bench, setup), false, false, 0, bench, slow(setup)))); }