Index: pkg/compiler/lib/src/scanner/listener.dart |
diff --git a/pkg/compiler/lib/src/scanner/listener.dart b/pkg/compiler/lib/src/scanner/listener.dart |
index c3299a3c5eed23f18200e199e261c94cf84b49ea..6cc299822c1ab100c3339b572af0b940e31d37a7 100644 |
--- a/pkg/compiler/lib/src/scanner/listener.dart |
+++ b/pkg/compiler/lib/src/scanner/listener.dart |
@@ -472,7 +472,8 @@ class Listener { |
void handleEmptyStatement(Token token) { |
} |
- void handleAssertStatement(Token assertKeyword, Token semicolonToken) { |
+ void handleAssertStatement(Token assertKeyword, |
+ Token commaToken, Token semicolonToken) { |
} |
/** Called with either the token containing a double literal, or |
@@ -2210,11 +2211,16 @@ class NodeListener extends ElementListener { |
} |
} |
- void handleAssertStatement(Token assertKeyword, Token semicolonToken) { |
- NodeList arguments = popNode(); |
- Node selector = new Identifier(assertKeyword); |
- Node send = new Send(null, selector, arguments); |
- pushNode(new ExpressionStatement(send, semicolonToken)); |
+ void handleAssertStatement(Token assertKeyword, |
+ Token commaToken, Token semicolonToken) { |
+ Node message; |
+ Node condition; |
+ if (commaToken != null) { |
+ message = popNode(); |
+ } |
+ condition = popNode(); |
+ pushNode(new Assert(assertKeyword, condition, |
+ message, semicolonToken)); |
} |
void endUnnamedFunction(Token token) { |