| Index: src/js/regexp.js
|
| diff --git a/src/js/regexp.js b/src/js/regexp.js
|
| index f4101556b21dca293fd3c2c87a113bf1f6e4de99..8e27059bcc861047b1b2d377fb2a29c3e3473f59 100644
|
| --- a/src/js/regexp.js
|
| +++ b/src/js/regexp.js
|
| @@ -163,19 +163,6 @@ macro RETURN_NEW_RESULT_FROM_MATCH_INFO(MATCHINFO, STRING)
|
| endmacro
|
|
|
|
|
| -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) {
|
| - // ES6 21.2.5.2.2 step 18.
|
| - if (REGEXP_STICKY(regexp)) regexp.lastIndex = matchInfo[CAPTURE1];
|
| - RETURN_NEW_RESULT_FROM_MATCH_INFO(matchInfo, string);
|
| - }
|
| - regexp.lastIndex = 0;
|
| - return null;
|
| -}
|
| -
|
| -
|
| // ES#sec-regexp.prototype.exec
|
| // RegExp.prototype.exec ( string )
|
| function RegExpSubclassExecJS(string) {
|
| @@ -279,65 +266,6 @@ function RegExpSubclassExec(regexp, string, exec) {
|
| %SetForceInlineFlag(RegExpSubclassExec);
|
|
|
|
|
| -// One-element cache for the simplified test regexp.
|
| -var regexp_key;
|
| -var regexp_val;
|
| -
|
| -// Legacy implementation of RegExp.prototype.test
|
| -// Section 15.10.6.3 doesn't actually make sense, but the intention seems to be
|
| -// that test is defined in terms of String.prototype.exec. However, it probably
|
| -// means the original value of String.prototype.exec, which is what everybody
|
| -// else implements.
|
| -function RegExpTest(string) {
|
| - if (!IS_REGEXP(this)) {
|
| - throw %make_type_error(kIncompatibleMethodReceiver,
|
| - 'RegExp.prototype.test', this);
|
| - }
|
| - string = TO_STRING(string);
|
| -
|
| - var lastIndex = this.lastIndex;
|
| -
|
| - // Conversion is required by the ES2015 specification (RegExpBuiltinExec
|
| - // algorithm, step 4) even if the value is discarded for non-global RegExps.
|
| - var i = TO_LENGTH(lastIndex);
|
| -
|
| - if (REGEXP_GLOBAL(this) || REGEXP_STICKY(this)) {
|
| - if (i < 0 || i > string.length) {
|
| - this.lastIndex = 0;
|
| - return false;
|
| - }
|
| - // matchIndices is either null or the RegExpLastMatchInfo array.
|
| - var matchIndices = %_RegExpExec(this, string, i, RegExpLastMatchInfo);
|
| - if (IS_NULL(matchIndices)) {
|
| - this.lastIndex = 0;
|
| - return false;
|
| - }
|
| - this.lastIndex = RegExpLastMatchInfo[CAPTURE1];
|
| - return true;
|
| - } else {
|
| - // Non-global, non-sticky regexp.
|
| - // Remove irrelevant preceeding '.*' in a test regexp. The expression
|
| - // checks whether this.source starts with '.*' and that the third char is
|
| - // not a '?'. But see https://code.google.com/p/v8/issues/detail?id=3560
|
| - var regexp = this;
|
| - var source = REGEXP_SOURCE(regexp);
|
| - if (source.length >= 3 &&
|
| - %_StringCharCodeAt(source, 0) == 46 && // '.'
|
| - %_StringCharCodeAt(source, 1) == 42 && // '*'
|
| - %_StringCharCodeAt(source, 2) != 63) { // '?'
|
| - regexp = TrimRegExp(regexp);
|
| - }
|
| - // matchIndices is either null or the RegExpLastMatchInfo array.
|
| - var matchIndices = %_RegExpExec(regexp, string, 0, RegExpLastMatchInfo);
|
| - if (IS_NULL(matchIndices)) {
|
| - this.lastIndex = 0;
|
| - return false;
|
| - }
|
| - return true;
|
| - }
|
| -}
|
| -
|
| -
|
| // ES#sec-regexp.prototype.test RegExp.prototype.test ( S )
|
| function RegExpSubclassTest(string) {
|
| if (!IS_RECEIVER(this)) {
|
| @@ -350,18 +278,6 @@ function RegExpSubclassTest(string) {
|
| }
|
| %FunctionRemovePrototype(RegExpSubclassTest);
|
|
|
| -function TrimRegExp(regexp) {
|
| - if (regexp_key !== regexp) {
|
| - regexp_key = regexp;
|
| - regexp_val =
|
| - new GlobalRegExp(
|
| - %_SubString(REGEXP_SOURCE(regexp), 2, REGEXP_SOURCE(regexp).length),
|
| - (REGEXP_IGNORE_CASE(regexp) ? REGEXP_MULTILINE(regexp) ? "im" : "i"
|
| - : REGEXP_MULTILINE(regexp) ? "m" : ""));
|
| - }
|
| - return regexp_val;
|
| -}
|
| -
|
|
|
| function RegExpToString() {
|
| if (!IS_RECEIVER(this)) {
|
| @@ -1225,7 +1141,6 @@ utils.Export(function(to) {
|
| to.RegExpExec = DoRegExpExec;
|
| to.RegExpInitialize = RegExpInitialize;
|
| to.RegExpLastMatchInfo = RegExpLastMatchInfo;
|
| - to.RegExpTest = RegExpTest;
|
| });
|
|
|
| })
|
|
|