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.
		
		
		
		
			
				
					31 lines
				
				863 B
			
		
		
			
		
	
	
					31 lines
				
				863 B
			| 
								 
											4 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								// TODO: Remove from `core-js@4` since it's moved to entry points
							 | 
						||
| 
								 | 
							
								require('../modules/es.regexp.exec');
							 | 
						||
| 
								 | 
							
								var $ = require('../internals/export');
							 | 
						||
| 
								 | 
							
								var isObject = require('../internals/is-object');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var DELEGATES_TO_EXEC = function () {
							 | 
						||
| 
								 | 
							
								  var execCalled = false;
							 | 
						||
| 
								 | 
							
								  var re = /[ac]/;
							 | 
						||
| 
								 | 
							
								  re.exec = function () {
							 | 
						||
| 
								 | 
							
								    execCalled = true;
							 | 
						||
| 
								 | 
							
								    return /./.exec.apply(this, arguments);
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								  return re.test('abc') === true && execCalled;
							 | 
						||
| 
								 | 
							
								}();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var nativeTest = /./.test;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {
							 | 
						||
| 
								 | 
							
								  test: function (str) {
							 | 
						||
| 
								 | 
							
								    if (typeof this.exec !== 'function') {
							 | 
						||
| 
								 | 
							
								      return nativeTest.call(this, str);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    var result = this.exec(str);
							 | 
						||
| 
								 | 
							
								    if (result !== null && !isObject(result)) {
							 | 
						||
| 
								 | 
							
								      throw new Error('RegExp exec method returned something other than an Object or null');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return !!result;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								});
							 |