| // 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"); |
| } |
| |
| class SubRegExp extends RegExp { |
| get source() { return "[Cz]"; } |
| get flags() { return "guiym"; } |
| } |
| |
| function CtorWithRegExpSubclassPattern() { |
| 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], |
| ]; |