X-Git-Url: https://git.josue.xyz/?p=dotfiles%2F.git;a=blobdiff_plain;f=.config%2Fcoc%2Fextensions%2Fnode_modules%2Fcoc-prettier%2Fnode_modules%2Fcore-js%2Finternals%2Fregexp-exec.js;h=531f3700314378e663068abc929929a5bafcd8e7;hp=8fecf3751838bdf4dd0fc764c1ae29e59042e391;hb=3be0a9efc698a9570a44456009afc6014812625a;hpb=d2f432cc757f42f0318fdddcab8c00b240d47088 diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/internals/regexp-exec.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/internals/regexp-exec.js index 8fecf375..531f3700 100644 --- a/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/internals/regexp-exec.js +++ b/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/internals/regexp-exec.js @@ -1,50 +1,71 @@ 'use strict'; -var regexpFlags = require('./regexp-flags'); -var stickyHelpers = require('./regexp-sticky-helpers'); +/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ +/* eslint-disable regexp/no-useless-quantifier -- testing */ +var call = require('../internals/function-call'); +var uncurryThis = require('../internals/function-uncurry-this'); +var toString = require('../internals/to-string'); +var regexpFlags = require('../internals/regexp-flags'); +var stickyHelpers = require('../internals/regexp-sticky-helpers'); +var shared = require('../internals/shared'); +var create = require('../internals/object-create'); +var getInternalState = require('../internals/internal-state').get; +var UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all'); +var UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg'); +var nativeReplace = shared('native-string-replace', String.prototype.replace); var nativeExec = RegExp.prototype.exec; -// This always refers to the native implementation, because the -// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, -// which loads this file before patching the method. -var nativeReplace = String.prototype.replace; - var patchedExec = nativeExec; +var charAt = uncurryThis(''.charAt); +var indexOf = uncurryThis(''.indexOf); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); var UPDATES_LAST_INDEX_WRONG = (function () { var re1 = /a/; var re2 = /b*/g; - nativeExec.call(re1, 'a'); - nativeExec.call(re2, 'a'); + call(nativeExec, re1, 'a'); + call(nativeExec, re2, 'a'); return re1.lastIndex !== 0 || re2.lastIndex !== 0; })(); -var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET; +var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; // nonparticipating capturing group, copied from es5-shim's String#split patch. -// eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; -var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y; +var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; if (PATCH) { - patchedExec = function exec(str) { + patchedExec = function exec(string) { var re = this; - var lastIndex, reCopy, match, i; + var state = getInternalState(re); + var str = toString(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = call(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; var sticky = UNSUPPORTED_Y && re.sticky; - var flags = regexpFlags.call(re); + var flags = call(regexpFlags, re); var source = re.source; var charsAdded = 0; var strCopy = str; if (sticky) { - flags = flags.replace('y', ''); - if (flags.indexOf('g') === -1) { + flags = replace(flags, 'y', ''); + if (indexOf(flags, 'g') === -1) { flags += 'g'; } - strCopy = String(str).slice(re.lastIndex); + strCopy = stringSlice(str, re.lastIndex); // Support anchored sticky behavior. - if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) { source = '(?: ' + source + ')'; strCopy = ' ' + strCopy; charsAdded++; @@ -59,12 +80,12 @@ if (PATCH) { } if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; - match = nativeExec.call(sticky ? reCopy : re, strCopy); + match = call(nativeExec, sticky ? reCopy : re, strCopy); if (sticky) { if (match) { - match.input = match.input.slice(charsAdded); - match[0] = match[0].slice(charsAdded); + match.input = stringSlice(match.input, charsAdded); + match[0] = stringSlice(match[0], charsAdded); match.index = re.lastIndex; re.lastIndex += match[0].length; } else re.lastIndex = 0; @@ -74,13 +95,21 @@ if (PATCH) { if (NPCG_INCLUDED && match && match.length > 1) { // Fix browsers whose `exec` methods don't consistently return `undefined` // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ - nativeReplace.call(match[0], reCopy, function () { + call(nativeReplace, match[0], reCopy, function () { for (i = 1; i < arguments.length - 2; i++) { if (arguments[i] === undefined) match[i] = undefined; } }); } + if (match && groups) { + match.groups = object = create(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + return match; }; }