| Index: src/js/regexp.js
|
| diff --git a/src/js/regexp.js b/src/js/regexp.js
|
| index aa531e4e1ab15857c3e8187535467cd16a1db28d..2b4da5898999c5fffab60754342950a4315fc9e0 100644
|
| --- a/src/js/regexp.js
|
| +++ b/src/js/regexp.js
|
| @@ -9,14 +9,6 @@
|
| %CheckIsBootstrapping();
|
|
|
| // -------------------------------------------------------------------
|
| -// Imports
|
| -
|
| -var GlobalRegExp = global.RegExp;
|
| -var GlobalRegExpPrototype = GlobalRegExp.prototype;
|
| -var RegExpExecJS = GlobalRegExp.prototype.exec;
|
| -var matchSymbol = utils.ImportNow("match_symbol");
|
| -
|
| -// -------------------------------------------------------------------
|
|
|
| // Property of the builtins object for recording the result of the last
|
| // regexp match. The property RegExpLastMatchInfo includes the matchIndices
|
| @@ -34,52 +26,6 @@ var RegExpLastMatchInfo = {
|
| CAPTURE1: 0
|
| };
|
|
|
| -// -------------------------------------------------------------------
|
| -
|
| -// ES#sec-isregexp IsRegExp ( argument )
|
| -function IsRegExp(o) {
|
| - if (!IS_RECEIVER(o)) return false;
|
| - var is_regexp = o[matchSymbol];
|
| - if (!IS_UNDEFINED(is_regexp)) return TO_BOOLEAN(is_regexp);
|
| - return IS_REGEXP(o);
|
| -}
|
| -
|
| -
|
| -// ES#sec-regexpinitialize
|
| -// Runtime Semantics: RegExpInitialize ( obj, pattern, flags )
|
| -function RegExpInitialize(object, pattern, flags) {
|
| - pattern = IS_UNDEFINED(pattern) ? '' : TO_STRING(pattern);
|
| - flags = IS_UNDEFINED(flags) ? '' : TO_STRING(flags);
|
| - %RegExpInitializeAndCompile(object, pattern, flags);
|
| - return object;
|
| -}
|
| -
|
| -
|
| -// This is kind of performance sensitive, so we want to avoid unnecessary
|
| -// type checks on inputs. But we also don't want to inline it several times
|
| -// manually, so we use a macro :-)
|
| -macro RETURN_NEW_RESULT_FROM_MATCH_INFO(MATCHINFO, STRING)
|
| - var numResults = NUMBER_OF_CAPTURES(MATCHINFO) >> 1;
|
| - var start = MATCHINFO[CAPTURE0];
|
| - var end = MATCHINFO[CAPTURE1];
|
| - // Calculate the substring of the first match before creating the result array
|
| - // to avoid an unnecessary write barrier storing the first result.
|
| - var first = %_SubString(STRING, start, end);
|
| - var result = %_RegExpConstructResult(numResults, start, STRING);
|
| - result[0] = first;
|
| - if (numResults == 1) return result;
|
| - var j = REGEXP_FIRST_CAPTURE + 2;
|
| - for (var i = 1; i < numResults; i++) {
|
| - start = MATCHINFO[j++];
|
| - if (start != -1) {
|
| - end = MATCHINFO[j];
|
| - result[i] = %_SubString(STRING, start, end);
|
| - }
|
| - j++;
|
| - }
|
| - return result;
|
| -endmacro
|
| -
|
| // ES#sec-getsubstitution
|
| // GetSubstitution(matched, str, position, captures, replacement)
|
| // Expand the $-expressions in the string and return a new string with
|
| @@ -170,39 +116,10 @@ function GetSubstitution(matched, string, position, captures, replacement) {
|
| %InstallToContext(["regexp_last_match_info", RegExpLastMatchInfo]);
|
|
|
| // -------------------------------------------------------------------
|
| -// Internal
|
| -
|
| -var InternalRegExpMatchInfo = {
|
| - REGEXP_NUMBER_OF_CAPTURES: 2,
|
| - REGEXP_LAST_SUBJECT: "",
|
| - REGEXP_LAST_INPUT: UNDEFINED,
|
| - CAPTURE0: 0,
|
| - CAPTURE1: 0
|
| -};
|
| -
|
| -function InternalRegExpMatch(regexp, subject) {
|
| - var matchInfo = %_RegExpExec(regexp, subject, 0, InternalRegExpMatchInfo);
|
| - if (!IS_NULL(matchInfo)) {
|
| - RETURN_NEW_RESULT_FROM_MATCH_INFO(matchInfo, subject);
|
| - }
|
| - return null;
|
| -}
|
| -
|
| -function InternalRegExpReplace(regexp, subject, replacement) {
|
| - return %StringReplaceGlobalRegExpWithString(
|
| - subject, regexp, replacement, InternalRegExpMatchInfo);
|
| -}
|
| -
|
| -// -------------------------------------------------------------------
|
| // Exports
|
|
|
| utils.Export(function(to) {
|
| to.GetSubstitution = GetSubstitution;
|
| - to.InternalRegExpMatch = InternalRegExpMatch;
|
| - to.InternalRegExpReplace = InternalRegExpReplace;
|
| - to.IsRegExp = IsRegExp;
|
| - to.RegExpInitialize = RegExpInitialize;
|
| - to.RegExpLastMatchInfo = RegExpLastMatchInfo;
|
| });
|
|
|
| })
|
|
|