Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/scanner/parser.dart |
| =================================================================== |
| --- sdk/lib/_internal/compiler/implementation/scanner/parser.dart (revision 15894) |
| +++ sdk/lib/_internal/compiler/implementation/scanner/parser.dart (working copy) |
| @@ -1140,8 +1140,6 @@ |
| return parseIfStatement(token); |
| } else if (identical(value, 'for')) { |
| return parseForStatement(token); |
| - } else if (identical(value, 'throw')) { |
| - return parseThrowStatement(token); |
| } else if (identical(value, 'void')) { |
| return parseExpressionStatementOrDeclaration(token); |
| } else if (identical(value, 'while')) { |
| @@ -1494,6 +1492,8 @@ |
| return parseConstExpression(token); |
| } else if (identical(value, 'void')) { |
| return parseFunctionExpression(token); |
| + } else if (identical(value, 'throw')) { |
| + return parseThrow(token); |
| } else if (token.isIdentifier()) { |
| return parseSendOrFunctionLiteral(token); |
| } else { |
| @@ -1970,18 +1970,17 @@ |
| return expect('}', token); |
| } |
| - Token parseThrowStatement(Token token) { |
| + Token parseThrow(Token token) { |
| Token throwToken = token; |
| - listener.beginThrowStatement(throwToken); |
| + listener.beginThrow(throwToken); |
| token = expect('throw', token); |
| if (optional(';', token)) { |
| - listener.endRethrowStatement(throwToken, token); |
| - return token.next; |
| + listener.endRethrow(throwToken, token); |
|
kasperl
2012/12/10 14:50:05
Add a comment that it's important that you aren't
|
| } else { |
| token = parseExpression(token); |
| - listener.endThrowStatement(throwToken, token); |
| - return expectSemicolon(token); |
| + listener.endThrow(throwToken, token); |
| } |
| + return token; |
| } |
| Token parseTryStatement(Token token) { |