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"; |
+ 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)))); |
+} |