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) { |