| Index: src/parser.cc
|
| diff --git a/src/parser.cc b/src/parser.cc
|
| index 88832087f8fbbabfade19fa9d80c0ec427f05ed8..e1d9b712ce7b5602f9d3729c976b5f4067ecf18d 100644
|
| --- a/src/parser.cc
|
| +++ b/src/parser.cc
|
| @@ -3848,9 +3848,7 @@ RegExpTree* RegExpParser::ReportError(Vector<const char> message) {
|
| // Disjunction
|
| RegExpTree* RegExpParser::ParsePattern() {
|
| RegExpTree* result = ParseDisjunction(CHECK_FAILED);
|
| - if (has_more()) {
|
| - ReportError(CStrVector("Unmatched ')'") CHECK_FAILED);
|
| - }
|
| + ASSERT(!has_more());
|
| // If the result of parsing is a literal string atom, and it has the
|
| // same length as the input, then the atom is identical to the input.
|
| if (result->IsAtom() && result->AsAtom()->length() == in()->length()) {
|
| @@ -3888,7 +3886,7 @@ RegExpTree* RegExpParser::ParseDisjunction() {
|
| return builder->ToRegExp();
|
| case ')': {
|
| if (!stored_state->IsSubexpression()) {
|
| - ReportError(CStrVector("Unexpected ')'") CHECK_FAILED);
|
| + ReportError(CStrVector("Unmatched ')'") CHECK_FAILED);
|
| }
|
| ASSERT_NE(INITIAL, stored_state->group_type());
|
|
|
| @@ -4028,7 +4026,7 @@ RegExpTree* RegExpParser::ParseDisjunction() {
|
| CharacterRange::AddClassEscape(c, ranges);
|
| RegExpTree* atom = new RegExpCharacterClass(ranges, false);
|
| builder->AddAtom(atom);
|
| - goto has_read_atom; // Avoid setting has_character_escapes_.
|
| + break;
|
| }
|
| case '1': case '2': case '3': case '4': case '5': case '6':
|
| case '7': case '8': case '9': {
|
| @@ -4040,11 +4038,11 @@ RegExpTree* RegExpParser::ParseDisjunction() {
|
| }
|
| if (capture == NULL) {
|
| builder->AddEmpty();
|
| - goto has_read_atom;
|
| + break;
|
| }
|
| RegExpTree* atom = new RegExpBackReference(capture);
|
| builder->AddAtom(atom);
|
| - goto has_read_atom; // Avoid setting has_character_escapes_.
|
| + break;
|
| }
|
| uc32 first_digit = Next();
|
| if (first_digit == '8' || first_digit == '9') {
|
| @@ -4129,7 +4127,6 @@ RegExpTree* RegExpParser::ParseDisjunction() {
|
| break;
|
| } // end switch(current())
|
|
|
| - has_read_atom:
|
| int min;
|
| int max;
|
| switch (current()) {
|
|
|