123456789101112131415161718192021222324252627282930313233343536 |
- /* 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 = function * (str) {
- let matches, i = 0;
- const regex = RegExtras.mixinRegex(this.regex, 'g');
- while ((matches = regex.exec(str)) !== null) {
- yield [i++, matches];
- }
- };
-
- RegExtras.prototype.values = function * (str) {
- let matches;
- const regex = RegExtras.mixinRegex(this.regex, 'g');
- while ((matches = regex.exec(str)) !== null) {
- yield matches;
- }
- };
-
- RegExtras.prototype.keys = function * (str) {
- let i = 0;
- const regex = RegExtras.mixinRegex(this.regex, 'g');
- while (regex.exec(str) !== null) {
- yield i++;
- }
- };
- }
-
- export default addPrototypeMethods;
|