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
						
					
					
				| 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');
 |