(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = global || self, factory(global.RegExtras = {})); }(this, (function (exports) { 'use strict'; /* 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); }); } exports.default = addPrototypeMethods; Object.defineProperty(exports, '__esModule', { value: true }); })));