Index: src/js/regexp.js |
diff --git a/src/js/regexp.js b/src/js/regexp.js |
index 918450183ee0801757e489fb1ac4efcee96458ac..495ba37fe9a5fdb662b132283cac6d1b1be93960 100644 |
--- a/src/js/regexp.js |
+++ b/src/js/regexp.js |
@@ -2,8 +2,6 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-var $regexpLastMatchInfoOverride; |
- |
(function(global, utils) { |
%CheckIsBootstrapping(); |
@@ -44,12 +42,6 @@ var RegExpLastMatchInfo = new InternalPackedArray( |
0 // REGEXP_FIRST_CAPTURE + 1 |
); |
-// Override last match info with an array of actual substrings. |
-// Used internally by replace regexp with function. |
-// The array has the format of an "apply" argument for a replacement |
-// function. |
-$regexpLastMatchInfoOverride = null; |
- |
// ------------------------------------------------------------------- |
// A recursive descent parser for Patterns according to the grammar of |
@@ -114,7 +106,6 @@ function RegExpCompileJS(pattern, flags) { |
function DoRegExpExec(regexp, string, index) { |
var result = %_RegExpExec(regexp, string, index, RegExpLastMatchInfo); |
- if (result !== null) $regexpLastMatchInfoOverride = null; |
return result; |
} |
@@ -149,7 +140,6 @@ function RegExpExecNoTests(regexp, string, start) { |
// Must be called with RegExp, string and positive integer as arguments. |
var matchInfo = %_RegExpExec(regexp, string, start, RegExpLastMatchInfo); |
if (matchInfo !== null) { |
- $regexpLastMatchInfoOverride = null; |
// ES6 21.2.5.2.2 step 18. |
if (FLAG_harmony_regexps && regexp.sticky) { |
regexp.lastIndex = matchInfo[CAPTURE1]; |
@@ -193,7 +183,6 @@ function RegExpExecJS(string) { |
} |
// Successful match. |
- $regexpLastMatchInfoOverride = null; |
if (updateLastIndex) { |
this.lastIndex = RegExpLastMatchInfo[CAPTURE1]; |
} |
@@ -233,7 +222,6 @@ function RegExpTest(string) { |
this.lastIndex = 0; |
return false; |
} |
- $regexpLastMatchInfoOverride = null; |
this.lastIndex = RegExpLastMatchInfo[CAPTURE1]; |
return true; |
} else { |
@@ -254,7 +242,6 @@ function RegExpTest(string) { |
this.lastIndex = 0; |
return false; |
} |
- $regexpLastMatchInfoOverride = null; |
return true; |
} |
} |
@@ -291,9 +278,6 @@ function RegExpToString() { |
// on the captures array of the last successful match and the subject string |
// of the last successful match. |
function RegExpGetLastMatch() { |
- if ($regexpLastMatchInfoOverride !== null) { |
- return OVERRIDE_MATCH($regexpLastMatchInfoOverride); |
- } |
var regExpSubject = LAST_SUBJECT(RegExpLastMatchInfo); |
return %_SubString(regExpSubject, |
RegExpLastMatchInfo[CAPTURE0], |
@@ -302,11 +286,6 @@ function RegExpGetLastMatch() { |
function RegExpGetLastParen() { |
- if ($regexpLastMatchInfoOverride) { |
- var override = $regexpLastMatchInfoOverride; |
- if (override.length <= 3) return ''; |
- return override[override.length - 3]; |
- } |
var length = NUMBER_OF_CAPTURES(RegExpLastMatchInfo); |
if (length <= 2) return ''; // There were no captures. |
// We match the SpiderMonkey behavior: return the substring defined by the |
@@ -325,14 +304,8 @@ function RegExpGetLastParen() { |
function RegExpGetLeftContext() { |
var start_index; |
var subject; |
- if (!$regexpLastMatchInfoOverride) { |
- start_index = RegExpLastMatchInfo[CAPTURE0]; |
- subject = LAST_SUBJECT(RegExpLastMatchInfo); |
- } else { |
- var override = $regexpLastMatchInfoOverride; |
- start_index = OVERRIDE_POS(override); |
- subject = OVERRIDE_SUBJECT(override); |
- } |
+ start_index = RegExpLastMatchInfo[CAPTURE0]; |
+ subject = LAST_SUBJECT(RegExpLastMatchInfo); |
return %_SubString(subject, 0, start_index); |
} |
@@ -340,15 +313,8 @@ function RegExpGetLeftContext() { |
function RegExpGetRightContext() { |
var start_index; |
var subject; |
- if (!$regexpLastMatchInfoOverride) { |
- start_index = RegExpLastMatchInfo[CAPTURE1]; |
- subject = LAST_SUBJECT(RegExpLastMatchInfo); |
- } else { |
- var override = $regexpLastMatchInfoOverride; |
- subject = OVERRIDE_SUBJECT(override); |
- var match = OVERRIDE_MATCH(override); |
- start_index = OVERRIDE_POS(override) + match.length; |
- } |
+ start_index = RegExpLastMatchInfo[CAPTURE1]; |
+ subject = LAST_SUBJECT(RegExpLastMatchInfo); |
return %_SubString(subject, start_index, subject.length); |
} |
@@ -358,12 +324,6 @@ function RegExpGetRightContext() { |
// called with indices from 1 to 9. |
function RegExpMakeCaptureGetter(n) { |
return function foo() { |
- if ($regexpLastMatchInfoOverride) { |
- if (n < $regexpLastMatchInfoOverride.length - 2) { |
- return OVERRIDE_CAPTURE($regexpLastMatchInfoOverride, n); |
- } |
- return ''; |
- } |
var index = n * 2; |
if (index >= NUMBER_OF_CAPTURES(RegExpLastMatchInfo)) return ''; |
var matchStart = RegExpLastMatchInfo[CAPTURE(index)]; |