diff options
Diffstat (limited to 'node_modules/core-js/internals/regexp-exec-abstract.js')
| -rw-r--r-- | node_modules/core-js/internals/regexp-exec-abstract.js | 22 |
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); +}; + |
