You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					44 lines
				
				1.6 KiB
			
		
		
			
		
	
	
					44 lines
				
				1.6 KiB
			| 
											3 years ago
										 | var global = require('./_global'); | ||
|  | var inheritIfRequired = require('./_inherit-if-required'); | ||
|  | var dP = require('./_object-dp').f; | ||
|  | var gOPN = require('./_object-gopn').f; | ||
|  | var isRegExp = require('./_is-regexp'); | ||
|  | var $flags = require('./_flags'); | ||
|  | var $RegExp = global.RegExp; | ||
|  | var Base = $RegExp; | ||
|  | var proto = $RegExp.prototype; | ||
|  | var re1 = /a/g; | ||
|  | var re2 = /a/g; | ||
|  | // "new" creates a new object, old webkit buggy here
 | ||
|  | var CORRECT_NEW = new $RegExp(re1) !== re1; | ||
|  | 
 | ||
|  | if (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () { | ||
|  |   re2[require('./_wks')('match')] = false; | ||
|  |   // RegExp constructor can alter flags and IsRegExp works correct with @@match
 | ||
|  |   return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i'; | ||
|  | }))) { | ||
|  |   $RegExp = function RegExp(p, f) { | ||
|  |     var tiRE = this instanceof $RegExp; | ||
|  |     var piRE = isRegExp(p); | ||
|  |     var fiU = f === undefined; | ||
|  |     return !tiRE && piRE && p.constructor === $RegExp && fiU ? p | ||
|  |       : inheritIfRequired(CORRECT_NEW | ||
|  |         ? new Base(piRE && !fiU ? p.source : p, f) | ||
|  |         : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f) | ||
|  |       , tiRE ? this : proto, $RegExp); | ||
|  |   }; | ||
|  |   var proxy = function (key) { | ||
|  |     key in $RegExp || dP($RegExp, key, { | ||
|  |       configurable: true, | ||
|  |       get: function () { return Base[key]; }, | ||
|  |       set: function (it) { Base[key] = it; } | ||
|  |     }); | ||
|  |   }; | ||
|  |   for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]); | ||
|  |   proto.constructor = $RegExp; | ||
|  |   $RegExp.prototype = proto; | ||
|  |   require('./_redefine')(global, 'RegExp', $RegExp); | ||
|  | } | ||
|  | 
 | ||
|  | require('./_set-species')('RegExp'); |