| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | 'use strict';var callBound = require('call-bind/callBound');var hasToStringTag = require('has-tostringtag/shams')();var has;var $exec;var isRegexMarker;var badStringifier;if (hasToStringTag) {	has = callBound('Object.prototype.hasOwnProperty');	$exec = callBound('RegExp.prototype.exec');	isRegexMarker = {};	var throwRegexMarker = function () {		throw isRegexMarker;	};	badStringifier = {		toString: throwRegexMarker,		valueOf: throwRegexMarker	};	if (typeof Symbol.toPrimitive === 'symbol') {		badStringifier[Symbol.toPrimitive] = throwRegexMarker;	}}var $toString = callBound('Object.prototype.toString');var gOPD = Object.getOwnPropertyDescriptor;var regexClass = '[object RegExp]';module.exports = hasToStringTag	// eslint-disable-next-line consistent-return	? function isRegex(value) {		if (!value || typeof value !== 'object') {			return false;		}		var descriptor = gOPD(value, 'lastIndex');		var hasLastIndexDataProperty = descriptor && has(descriptor, 'value');		if (!hasLastIndexDataProperty) {			return false;		}		try {			$exec(value, badStringifier);		} catch (e) {			return e === isRegexMarker;		}	}	: function isRegex(value) {		// In older browsers, typeof regex incorrectly returns 'function'		if (!value || (typeof value !== 'object' && typeof value !== 'function')) {			return false;		}		return $toString(value) === regexClass;	};
 |