зеркало из https://github.com/mozilla/gecko-dev.git
Bug 854124 - Update RegExpStatics on empty match in str_replace_regexp_remove(). r=dvander
This commit is contained in:
Родитель
13df67cf01
Коммит
c23bae185c
|
@ -0,0 +1,8 @@
|
|||
// Don't assert.
|
||||
"p".match(/(p)/);
|
||||
assertEq(RegExp.$1, "p");
|
||||
assertEq(RegExp.$2, "");
|
||||
|
||||
"x\ny\n".replace(/(^\n*)/, "");
|
||||
assertEq(RegExp.$1, "");
|
||||
assertEq(RegExp.$2, "");
|
|
@ -2465,16 +2465,18 @@ str_replace_regexp_remove(JSContext *cx, CallArgs args, HandleString str, RegExp
|
|||
lazyIndex = lastIndex;
|
||||
lastIndex = startIndex;
|
||||
|
||||
if (match.isEmpty())
|
||||
startIndex++;
|
||||
|
||||
/* Non-global removal executes at most once. */
|
||||
if (!re.global())
|
||||
break;
|
||||
|
||||
if (match.isEmpty())
|
||||
startIndex++;
|
||||
}
|
||||
|
||||
/* If unmatched, return the input string. */
|
||||
if (!lastIndex) {
|
||||
if (startIndex > 0)
|
||||
cx->regExpStatics()->updateLazily(cx, stableStr, &re, lazyIndex);
|
||||
args.rval().setString(str);
|
||||
return true;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче