123456789101112131415161718192021 |
- 'use strict';
- var call = require('../internals/function-call');
- var anObject = require('../internals/an-object');
- var isCallable = require('../internals/is-callable');
- var classof = require('../internals/classof-raw');
- var regexpExec = require('../internals/regexp-exec');
-
- var $TypeError = TypeError;
-
- // `RegExpExec` abstract operation
- // https://tc39.es/ecma262/#sec-regexpexec
- module.exports = function (R, S) {
- var exec = R.exec;
- if (isCallable(exec)) {
- var result = call(exec, R, S);
- if (result !== null) anObject(result);
- return result;
- }
- if (classof(R) === 'RegExp') return call(regexpExec, R, S);
- throw new $TypeError('RegExp#exec called on incompatible receiver');
- };
|