Index: src/string.js |
diff --git a/src/string.js b/src/string.js |
index 9798846dc7be3e8e74012fa8be23e259857a162d..e4683b9abff1796c24bf1d33951bc96674747a44 100644 |
--- a/src/string.js |
+++ b/src/string.js |
@@ -16,16 +16,10 @@ |
var MathMax; |
var MathMin; |
-var RegExpExec; |
-var RegExpExecNoTests; |
-var RegExpLastMatchInfo; |
utils.Import(function(from) { |
MathMax = from.MathMax; |
MathMin = from.MathMin; |
- RegExpExec = from.RegExpExec; |
- RegExpExecNoTests = from.RegExpExecNoTests; |
- RegExpLastMatchInfo = from.RegExpLastMatchInfo; |
}); |
//------------------------------------------------------------------- |
@@ -168,15 +162,15 @@ |
// value is discarded. |
var lastIndex = regexp.lastIndex; |
TO_INTEGER_FOR_SIDE_EFFECT(lastIndex); |
- if (!regexp.global) return RegExpExecNoTests(regexp, subject, 0); |
- var result = %StringMatch(subject, regexp, RegExpLastMatchInfo); |
+ if (!regexp.global) return $regexpExecNoTests(regexp, subject, 0); |
+ var result = %StringMatch(subject, regexp, $regexpLastMatchInfo); |
if (result !== null) $regexpLastMatchInfoOverride = null; |
regexp.lastIndex = 0; |
return result; |
} |
// Non-regexp argument. |
regexp = new GlobalRegExp(regexp); |
- return RegExpExecNoTests(regexp, subject, 0); |
+ return $regexpExecNoTests(regexp, subject, 0); |
} |
@@ -201,7 +195,7 @@ |
} |
-// This has the same size as the RegExpLastMatchInfo array, and can be used |
+// This has the same size as the $regexpLastMatchInfo array, and can be used |
// for functions that expect that structure to be returned. It is used when |
// the needle is a string rather than a regexp. In this case we can't update |
// lastMatchArray without erroneously affecting the properties on the global |
@@ -243,7 +237,7 @@ |
if (!search.global) { |
// Non-global regexp search, string replace. |
- var match = RegExpExec(search, subject, 0); |
+ var match = $regexpExec(search, subject, 0); |
if (match == null) { |
search.lastIndex = 0 |
return subject; |
@@ -252,7 +246,7 @@ |
return %_SubString(subject, 0, match[CAPTURE0]) + |
%_SubString(subject, match[CAPTURE1], subject.length) |
} |
- return ExpandReplacement(replace, subject, RegExpLastMatchInfo, |
+ return ExpandReplacement(replace, subject, $regexpLastMatchInfo, |
%_SubString(subject, 0, match[CAPTURE0])) + |
%_SubString(subject, match[CAPTURE1], subject.length); |
} |
@@ -261,17 +255,17 @@ |
search.lastIndex = 0; |
if ($regexpLastMatchInfoOverride == null) { |
return %StringReplaceGlobalRegExpWithString( |
- subject, search, replace, RegExpLastMatchInfo); |
+ subject, search, replace, $regexpLastMatchInfo); |
} else { |
// We use this hack to detect whether StringReplaceRegExpWithString |
// found at least one hit. In that case we need to remove any |
// override. |
- var saved_subject = RegExpLastMatchInfo[LAST_SUBJECT_INDEX]; |
- RegExpLastMatchInfo[LAST_SUBJECT_INDEX] = 0; |
+ var saved_subject = $regexpLastMatchInfo[LAST_SUBJECT_INDEX]; |
+ $regexpLastMatchInfo[LAST_SUBJECT_INDEX] = 0; |
var answer = %StringReplaceGlobalRegExpWithString( |
- subject, search, replace, RegExpLastMatchInfo); |
- if (%_IsSmi(RegExpLastMatchInfo[LAST_SUBJECT_INDEX])) { |
- RegExpLastMatchInfo[LAST_SUBJECT_INDEX] = saved_subject; |
+ subject, search, replace, $regexpLastMatchInfo); |
+ if (%_IsSmi($regexpLastMatchInfo[LAST_SUBJECT_INDEX])) { |
+ $regexpLastMatchInfo[LAST_SUBJECT_INDEX] = saved_subject; |
} else { |
$regexpLastMatchInfoOverride = null; |
} |
@@ -437,7 +431,7 @@ |
} |
var res = %RegExpExecMultiple(regexp, |
subject, |
- RegExpLastMatchInfo, |
+ $regexpLastMatchInfo, |
resultArray); |
regexp.lastIndex = 0; |
if (IS_NULL(res)) { |
@@ -446,7 +440,7 @@ |
return subject; |
} |
var len = res.length; |
- if (NUMBER_OF_CAPTURES(RegExpLastMatchInfo) == 2) { |
+ if (NUMBER_OF_CAPTURES($regexpLastMatchInfo) == 2) { |
// If the number of captures is two then there are no explicit captures in |
// the regexp, just the implicit capture that captures the whole match. In |
// this case we can simplify quite a bit and end up with something faster. |
@@ -500,7 +494,7 @@ |
function StringReplaceNonGlobalRegExpWithFunction(subject, regexp, replace) { |
- var matchInfo = RegExpExec(regexp, subject, 0); |
+ var matchInfo = $regexpExec(regexp, subject, 0); |
if (IS_NULL(matchInfo)) { |
regexp.lastIndex = 0; |
return subject; |
@@ -548,7 +542,7 @@ |
} else { |
regexp = new GlobalRegExp(re); |
} |
- var match = RegExpExec(regexp, TO_STRING_INLINE(this), 0); |
+ var match = $regexpExec(regexp, TO_STRING_INLINE(this), 0); |
if (match) { |
return match[CAPTURE0]; |
} |
@@ -634,7 +628,7 @@ |
function StringSplitOnRegExp(subject, separator, limit, length) { |
if (length === 0) { |
- if (RegExpExec(separator, subject, 0, 0) != null) { |
+ if ($regexpExec(separator, subject, 0, 0) != null) { |
return []; |
} |
return [subject]; |
@@ -653,7 +647,7 @@ |
break; |
} |
- var matchInfo = RegExpExec(separator, subject, startIndex); |
+ var matchInfo = $regexpExec(separator, subject, startIndex); |
if (matchInfo == null || length === (startMatch = matchInfo[CAPTURE0])) { |
result[result.length] = %_SubString(subject, currentIndex, length); |
break; |
@@ -1130,14 +1124,14 @@ |
GlobalString.prototype, "constructor", GlobalString, DONT_ENUM); |
// Set up the non-enumerable functions on the String object. |
-utils.InstallFunctions(GlobalString, DONT_ENUM, [ |
+$installFunctions(GlobalString, DONT_ENUM, [ |
"fromCharCode", StringFromCharCode, |
"fromCodePoint", StringFromCodePoint, |
"raw", StringRaw |
]); |
// Set up the non-enumerable functions on the String prototype object. |
-utils.InstallFunctions(GlobalString.prototype, DONT_ENUM, [ |
+$installFunctions(GlobalString.prototype, DONT_ENUM, [ |
"valueOf", StringValueOf, |
"toString", StringToString, |
"charAt", StringCharAtJS, |