Show More
Commit Description:
fig bugs in login report
Commit Description:
fig bugs in login report
References:
File last commit:
Show/Diff file:
Action:
node_modules/core-js/modules/_regexp-exec.js
| 58 lines
| 1.7 KiB
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var regexpFlags = require('./_flags'); | ||||
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 LAST_INDEX = 'lastIndex'; | ||||
var UPDATES_LAST_INDEX_WRONG = (function () { | ||||
var re1 = /a/, | ||||
re2 = /b*/g; | ||||
nativeExec.call(re1, 'a'); | ||||
nativeExec.call(re2, 'a'); | ||||
return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0; | ||||
})(); | ||||
// nonparticipating capturing group, copied from es5-shim's String#split patch. | ||||
var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; | ||||
var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED; | ||||
if (PATCH) { | ||||
patchedExec = function exec(str) { | ||||
var re = this; | ||||
var lastIndex, reCopy, match, i; | ||||
if (NPCG_INCLUDED) { | ||||
reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re)); | ||||
} | ||||
if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX]; | ||||
match = nativeExec.call(re, str); | ||||
if (UPDATES_LAST_INDEX_WRONG && match) { | ||||
re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex; | ||||
} | ||||
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 /(.?)?/ | ||||
// eslint-disable-next-line no-loop-func | ||||
nativeReplace.call(match[0], reCopy, function () { | ||||
for (i = 1; i < arguments.length - 2; i++) { | ||||
if (arguments[i] === undefined) match[i] = undefined; | ||||
} | ||||
}); | ||||
} | ||||
return match; | ||||
}; | ||||
} | ||||
module.exports = patchedExec; | ||||