|  | // 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], | 
|  | ]; |