| /* eslint-disable node/no-unsupported-features/es-syntax */ |
| // We copy the regular expression so as to be able to always |
| // ensure the exec expression is a global one (and thereby prevent recursion) |
| |
| /** |
| * |
| * @param {RegExtras} RegExtras |
| * @returns {void} |
| */ |
| function addPrototypeMethods(RegExtras) { |
| RegExtras.prototype.entries = |
| /*#__PURE__*/ |
| regeneratorRuntime.mark(function _callee(str) { |
| var matches, i, regex; |
| return regeneratorRuntime.wrap(function _callee$(_context) { |
| while (1) { |
| switch (_context.prev = _context.next) { |
| case 0: |
| i = 0; |
| regex = RegExtras.mixinRegex(this.regex, 'g'); |
| |
| case 2: |
| if (!((matches = regex.exec(str)) !== null)) { |
| _context.next = 7; |
| break; |
| } |
| |
| _context.next = 5; |
| return [i++, matches]; |
| |
| case 5: |
| _context.next = 2; |
| break; |
| |
| case 7: |
| case "end": |
| return _context.stop(); |
| } |
| } |
| }, _callee, this); |
| }); |
| RegExtras.prototype.values = |
| /*#__PURE__*/ |
| regeneratorRuntime.mark(function _callee2(str) { |
| var matches, regex; |
| return regeneratorRuntime.wrap(function _callee2$(_context2) { |
| while (1) { |
| switch (_context2.prev = _context2.next) { |
| case 0: |
| regex = RegExtras.mixinRegex(this.regex, 'g'); |
| |
| case 1: |
| if (!((matches = regex.exec(str)) !== null)) { |
| _context2.next = 6; |
| break; |
| } |
| |
| _context2.next = 4; |
| return matches; |
| |
| case 4: |
| _context2.next = 1; |
| break; |
| |
| case 6: |
| case "end": |
| return _context2.stop(); |
| } |
| } |
| }, _callee2, this); |
| }); |
| RegExtras.prototype.keys = |
| /*#__PURE__*/ |
| regeneratorRuntime.mark(function _callee3(str) { |
| var i, regex; |
| return regeneratorRuntime.wrap(function _callee3$(_context3) { |
| while (1) { |
| switch (_context3.prev = _context3.next) { |
| case 0: |
| i = 0; |
| regex = RegExtras.mixinRegex(this.regex, 'g'); |
| |
| case 2: |
| if (!(regex.exec(str) !== null)) { |
| _context3.next = 7; |
| break; |
| } |
| |
| _context3.next = 5; |
| return i++; |
| |
| case 5: |
| _context3.next = 2; |
| break; |
| |
| case 7: |
| case "end": |
| return _context3.stop(); |
| } |
| } |
| }, _callee3, this); |
| }); |
| } |
| |
| export default addPrototypeMethods; |