| Index: src/preparser.cc
|
| diff --git a/src/preparser.cc b/src/preparser.cc
|
| index ecf4a950c0ea8e76192e205020de4713bafb5f40..74e11b1d454b3b33a3f6bcadb18f91476a246f37 100644
|
| --- a/src/preparser.cc
|
| +++ b/src/preparser.cc
|
| @@ -1239,6 +1239,23 @@ PreParser::Expression PreParser::ParseV8Intrinsic(bool* ok) {
|
| return Expression::Default();
|
| }
|
|
|
| +
|
| +PreParserExpression PreParser::ParseDoExpression(bool* ok) {
|
| + // AssignmentExpression ::
|
| + // do '{' StatementList '}'
|
| + Expect(Token::DO, CHECK_OK);
|
| + Expect(Token::LBRACE, CHECK_OK);
|
| + Scope* block_scope = NewScope(scope_, BLOCK_SCOPE);
|
| + {
|
| + BlockState block_state(&scope_, block_scope);
|
| + while (peek() != Token::RBRACE) {
|
| + ParseStatementListItem(CHECK_OK);
|
| + }
|
| + Expect(Token::RBRACE, CHECK_OK);
|
| + return PreParserExpression::Default();
|
| + }
|
| +}
|
| +
|
| #undef CHECK_OK
|
|
|
|
|
|
|