| Index: src/regexp.js
|
| diff --git a/src/regexp.js b/src/regexp.js
|
| index 79ac44bb0308ad60f8d122488a2a3ae6cd9ff682..f0945b34594433675edc14d66768e2de56760264 100644
|
| --- a/src/regexp.js
|
| +++ b/src/regexp.js
|
| @@ -197,7 +197,6 @@ function RegExpExec(string) {
|
| %_ObjectEquals(cache.regExp, this) &&
|
| %_ObjectEquals(cache.subject, string)) {
|
| if (cache.answerSaved) {
|
| - if (this.global) this.lastIndex = 0;
|
| return CloneRegExpResult(cache.answer);
|
| } else {
|
| saveAnswer = true;
|
| @@ -231,7 +230,10 @@ function RegExpExec(string) {
|
| var matchIndices = %_RegExpExec(this, s, i, lastMatchInfo);
|
|
|
| if (matchIndices == null) {
|
| - if (this.global) this.lastIndex = 0;
|
| + if (this.global) {
|
| + this.lastIndex = 0;
|
| + if (lastIndex != 0) return matchIndices;
|
| + }
|
| cache.lastIndex = lastIndex;
|
| cache.regExp = this;
|
| cache.subject = s;
|
|
|