Chromium Code Reviews| Index: test/js-perf-test/RegExp/base.js |
| diff --git a/test/js-perf-test/RegExp/base.js b/test/js-perf-test/RegExp/base.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..31f7206f079156dcc104bdba7f3b8aaa3515fa47 |
| --- /dev/null |
| +++ b/test/js-perf-test/RegExp/base.js |
| @@ -0,0 +1,43 @@ |
| +// 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; |
| +} |
| + |
| +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"; |
|
Michael Achenbach
2016/11/24 08:25:47
Will it make a difference if you just return abCde
jgruber
2016/11/24 12:26:20
No, we could just return "abCdefgzabCdefgzabCdefgz
|
| + 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, 0, 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)))); |
| +} |