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.
		
		
		
		
		
			
		
			
				
					
					
						
							30 lines
						
					
					
						
							863 B
						
					
					
				
			
		
		
	
	
							30 lines
						
					
					
						
							863 B
						
					
					
				'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; | 
						|
  } | 
						|
});
 | 
						|
 |