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

Unified Diff: pkg/compiler/lib/src/parser/node_listener.dart

Issue 3003263002: add support for native methods in class
Patch Set: update listeners Created 3 years, 4 months 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: pkg/compiler/lib/src/parser/node_listener.dart
diff --git a/pkg/compiler/lib/src/parser/node_listener.dart b/pkg/compiler/lib/src/parser/node_listener.dart
index f297808b7058b471752e078cc307485388a419ec..76ee1fac30ecae3aa52fe4f9a4f965a938a993cb 100644
--- a/pkg/compiler/lib/src/parser/node_listener.dart
+++ b/pkg/compiler/lib/src/parser/node_listener.dart
@@ -701,7 +701,8 @@ class NodeListener extends ElementListener {
}
@override
- void endMethod(Token getOrSet, Token beginToken, Token endToken) {
+ void endMethod(
+ Token getOrSet, Token beginToken, Token nativeToken, Token endToken) {
Statement body = popNode();
AsyncModifier asyncModifier = popNode();
NodeList initializers = popNode();
@@ -710,6 +711,9 @@ class NodeListener extends ElementListener {
Expression name = popNode();
TypeAnnotation returnType = popNode();
Modifiers modifiers = popNode();
+ if (nativeToken != null && body is EmptyStatement) {
+ body = new Block(new NodeList(nativeToken, const Link<Node>()));
+ }
pushNode(new FunctionExpression(name, typeVariables, formalParameters, body,
returnType, modifiers, initializers, getOrSet, asyncModifier));
}

Powered by Google App Engine
This is Rietveld 408576698