blob: d06a8536807ce3d5959d95da6d549c55c8e7a668 [file] [log] [blame]
(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 });
})));