summaryrefslogtreecommitdiffstats
path: root/node_modules/regexp-clone/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/regexp-clone/index.js')
-rw-r--r--node_modules/regexp-clone/index.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/node_modules/regexp-clone/index.js b/node_modules/regexp-clone/index.js
new file mode 100644
index 0000000..19512b3
--- /dev/null
+++ b/node_modules/regexp-clone/index.js
@@ -0,0 +1,27 @@
+
+const toString = Object.prototype.toString;
+
+function isRegExp (o) {
+ return 'object' == typeof o
+ && '[object RegExp]' == toString.call(o);
+}
+
+module.exports = exports = function (regexp) {
+ if (!isRegExp(regexp)) {
+ throw new TypeError('Not a RegExp');
+ }
+
+ const flags = [];
+ if (regexp.global) flags.push('g');
+ if (regexp.multiline) flags.push('m');
+ if (regexp.ignoreCase) flags.push('i');
+ if (regexp.dotAll) flags.push('s');
+ if (regexp.unicode) flags.push('u');
+ if (regexp.sticky) flags.push('y');
+ const result = new RegExp(regexp.source, flags.join(''));
+ if (typeof regexp.lastIndex === 'number') {
+ result.lastIndex = regexp.lastIndex;
+ }
+ return result;
+}
+