diff options
Diffstat (limited to 'src/3rdparty/v8/src/preparser.cc')
-rw-r--r-- | src/3rdparty/v8/src/preparser.cc | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/3rdparty/v8/src/preparser.cc b/src/3rdparty/v8/src/preparser.cc index 0c17eec..21da4f8 100644 --- a/src/3rdparty/v8/src/preparser.cc +++ b/src/3rdparty/v8/src/preparser.cc @@ -602,14 +602,17 @@ PreParser::Statement PreParser::ParseSwitchStatement(bool* ok) { if (token == i::Token::CASE) { Expect(i::Token::CASE, CHECK_OK); ParseExpression(true, CHECK_OK); - Expect(i::Token::COLON, CHECK_OK); - } else if (token == i::Token::DEFAULT) { - Expect(i::Token::DEFAULT, CHECK_OK); - Expect(i::Token::COLON, CHECK_OK); } else { - ParseStatement(CHECK_OK); + Expect(i::Token::DEFAULT, CHECK_OK); } + Expect(i::Token::COLON, CHECK_OK); token = peek(); + while (token != i::Token::CASE && + token != i::Token::DEFAULT && + token != i::Token::RBRACE) { + ParseStatement(CHECK_OK); + token = peek(); + } } Expect(i::Token::RBRACE, ok); return Statement::Default(); |