diff options
author | isaacs <nope@not.real> | 2019-07-03 10:23:19 -0700 |
---|---|---|
committer | Michaƫl Zasso <targos@protonmail.com> | 2019-07-20 11:29:59 +0200 |
commit | 1ce2b5e828bf8b68c4c55387eab5a14f8aac7e10 (patch) | |
tree | 610a82da92bc5b111f5ae238b99ee9549b3eec64 /deps/npm/node_modules/is-regex/index.js | |
parent | b379c0e8b6b1f67fb7985d3c51f6200e2e3f2290 (diff) | |
download | android-node-v8-1ce2b5e828bf8b68c4c55387eab5a14f8aac7e10.tar.gz android-node-v8-1ce2b5e828bf8b68c4c55387eab5a14f8aac7e10.tar.bz2 android-node-v8-1ce2b5e828bf8b68c4c55387eab5a14f8aac7e10.zip |
deps: upgrade npm to 6.10.0
PR-URL: https://github.com/nodejs/node/pull/28525
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
Diffstat (limited to 'deps/npm/node_modules/is-regex/index.js')
-rw-r--r-- | deps/npm/node_modules/is-regex/index.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/deps/npm/node_modules/is-regex/index.js b/deps/npm/node_modules/is-regex/index.js new file mode 100644 index 0000000000..be6513390f --- /dev/null +++ b/deps/npm/node_modules/is-regex/index.js @@ -0,0 +1,39 @@ +'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; + + regexExec.call(value); + return true; + } catch (e) { + return false; + } finally { + value.lastIndex = lastIndex; + } +}; +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); +}; |