| Index: src/regexp.js
|
| diff --git a/src/regexp.js b/src/regexp.js
|
| index 58e620d9ab69f6923eef8d6fdf23eea4966e28c9..fa702b2a8276b078a44f52082b874596763050ce 100644
|
| --- a/src/regexp.js
|
| +++ b/src/regexp.js
|
| @@ -126,7 +126,7 @@ function RegExpCache() {
|
| this.regExp = 0;
|
| this.subject = 0;
|
| this.replaceString = 0;
|
| - this.lastIndex = 0;
|
| + this.lastIndex = 0; // Also used for splitLimit when type is "split"
|
| this.answer = 0;
|
| // answerSaved marks whether the contents of answer is valid for a cache
|
| // hit in RegExpExec, StringMatch and StringSplit.
|
| @@ -194,7 +194,7 @@ function RegExpExec(string) {
|
|
|
| if (%_ObjectEquals(cache.type, 'exec') &&
|
| %_ObjectEquals(cache.lastIndex, this.lastIndex) &&
|
| - %_ObjectEquals(cache.regExp, this) &&
|
| + %_IsRegExpEquivalent(cache.regExp, this) &&
|
| %_ObjectEquals(cache.subject, string)) {
|
| if (cache.answerSaved) {
|
| return CloneRegExpResult(cache.answer);
|
| @@ -290,7 +290,7 @@ function RegExpTest(string) {
|
| var lastIndex = this.lastIndex;
|
| var cache = regExpCache;
|
| if (%_ObjectEquals(cache.type, 'test') &&
|
| - %_ObjectEquals(cache.regExp, this) &&
|
| + %_IsRegExpEquivalent(cache.regExp, this) &&
|
| %_ObjectEquals(cache.subject, string) &&
|
| %_ObjectEquals(cache.lastIndex, lastIndex)) {
|
| return cache.answer;
|
|
|