Index: test/js-perf-test/RegExp/base_ctor.js |
diff --git a/test/js-perf-test/RegExp/base_ctor.js b/test/js-perf-test/RegExp/base_ctor.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cacd43af59e45e7c2d3f159db5bca17d83c19dce |
--- /dev/null |
+++ b/test/js-perf-test/RegExp/base_ctor.js |
@@ -0,0 +1,54 @@ |
+// 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 SimpleCtor() { |
+ new RegExp("[Cz]"); |
+} |
+ |
+function FlagsCtor() { |
+ new RegExp("[Cz]", "guiym"); |
+} |
+ |
+function SimpleCtorWithoutNew() { |
+ RegExp("[Cz]"); |
+} |
+ |
+function FlagsCtorWithoutNew() { |
+ RegExp("[Cz]", "guiym"); |
+} |
+ |
+function CtorWithRegExpPattern() { |
+ new RegExp(/[Cz]/); |
+} |
+ |
+function CtorWithRegExpPatternAndFlags() { |
+ new RegExp(/[Cz]/, "guiym"); |
+} |
+ |
+function CtorWithRegExpSubclassPattern() { |
+ class SubRegExp extends RegExp { |
+ get source() { return "[Cz]"; } |
+ get flags() { return "guiym"; } |
+ } |
+ new RegExp(new SubRegExp(/[Cz]/)); |
+} |
+ |
+function CtorWithUndefinedPattern() { |
+ new RegExp(); |
+} |
+ |
+function CtorWithFlagsAndUndefinedPattern() { |
+ new RegExp(undefined, "guiym"); |
+} |
+ |
+var benchmarks = [ [SimpleCtor, undefined], |
+ [FlagsCtor, undefined], |
+ [SimpleCtorWithoutNew, undefined], |
+ [FlagsCtorWithoutNew, undefined], |
+ [CtorWithRegExpPattern, undefined], |
+ [CtorWithRegExpPatternAndFlags, undefined], |
+ [CtorWithRegExpSubclassPattern, undefined], |
+ [CtorWithUndefinedPattern, undefined], |
+ [CtorWithFlagsAndUndefinedPattern, undefined], |
+ ]; |