aboutsummaryrefslogtreecommitdiff
path: root/node_modules/core-js/internals/regexp-exec-abstract.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/core-js/internals/regexp-exec-abstract.js')
-rw-r--r--node_modules/core-js/internals/regexp-exec-abstract.js22
1 files changed, 22 insertions, 0 deletions
diff --git a/node_modules/core-js/internals/regexp-exec-abstract.js b/node_modules/core-js/internals/regexp-exec-abstract.js
new file mode 100644
index 0000000..496225f
--- /dev/null
+++ b/node_modules/core-js/internals/regexp-exec-abstract.js
@@ -0,0 +1,22 @@
+var classof = require('./classof-raw');
+var regexpExec = require('./regexp-exec');
+
+// `RegExpExec` abstract operation
+// https://tc39.github.io/ecma262/#sec-regexpexec
+module.exports = function (R, S) {
+ var exec = R.exec;
+ if (typeof exec === 'function') {
+ var result = exec.call(R, S);
+ if (typeof result !== 'object') {
+ throw TypeError('RegExp exec method returned something other than an Object or null');
+ }
+ return result;
+ }
+
+ if (classof(R) !== 'RegExp') {
+ throw TypeError('RegExp#exec called on incompatible receiver');
+ }
+
+ return regexpExec.call(R, S);
+};
+