Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Unified Diff: sdk/lib/_internal/compiler/implementation/scanner/parser.dart

Issue 11497009: Revive throw as an expression but not for rethrow. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698