Added test to ensure that release notes are parsed properly Updated to latest dependencies to fix security vulnerability Updated GH Actions Workflow to run test before updating tag Updated README.md to reflect proper whatsnew documentation.
40 lines
1000 B
JavaScript
40 lines
1000 B
JavaScript
'use strict';
|
|
|
|
var has = require('has');
|
|
var regexExec = RegExp.prototype.exec;
|
|
var gOPD = Object.getOwnPropertyDescriptor;
|
|
|
|
var tryRegexExecCall = function tryRegexExec(value) {
|
|
try {
|
|
var lastIndex = value.lastIndex;
|
|
value.lastIndex = 0; // eslint-disable-line no-param-reassign
|
|
|
|
regexExec.call(value);
|
|
return true;
|
|
} catch (e) {
|
|
return false;
|
|
} finally {
|
|
value.lastIndex = lastIndex; // eslint-disable-line no-param-reassign
|
|
}
|
|
};
|
|
var toStr = Object.prototype.toString;
|
|
var regexClass = '[object RegExp]';
|
|
var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
|
|
|
|
module.exports = function isRegex(value) {
|
|
if (!value || typeof value !== 'object') {
|
|
return false;
|
|
}
|
|
if (!hasToStringTag) {
|
|
return toStr.call(value) === regexClass;
|
|
}
|
|
|
|
var descriptor = gOPD(value, 'lastIndex');
|
|
var hasLastIndexDataProperty = descriptor && has(descriptor, 'value');
|
|
if (!hasLastIndexDataProperty) {
|
|
return false;
|
|
}
|
|
|
|
return tryRegexExecCall(value);
|
|
};
|