Index: pkg/compiler/lib/src/scanner/parser.dart |
diff --git a/pkg/compiler/lib/src/scanner/parser.dart b/pkg/compiler/lib/src/scanner/parser.dart |
index 66d26bdf5cb0ae003c8eaaeeecbd59e0fb01fd59..69d4e62feb4277ad9d4395c98865e910e1361327 100644 |
--- a/pkg/compiler/lib/src/scanner/parser.dart |
+++ b/pkg/compiler/lib/src/scanner/parser.dart |
@@ -2639,10 +2639,20 @@ class Parser { |
Token parseAssertStatement(Token token) { |
Token assertKeyword = token; |
+ Token commaToken = null; |
token = expect('assert', token); |
- expect('(', token); |
- token = parseArguments(token); |
- listener.handleAssertStatement(assertKeyword, token); |
+ token = expect('(', token); |
+ bool old = mayParseFunctionExpressions; |
+ mayParseFunctionExpressions = true; |
+ token = parseExpression(token); |
+ if (optional(',', token)) { |
+ commaToken = token; |
+ token = token.next; |
+ token = parseExpression(token); |
+ } |
+ token = expect(')', token); |
+ mayParseFunctionExpressions = old; |
+ listener.handleAssertStatement(assertKeyword, commaToken, token); |
return expectSemicolon(token); |
} |