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)); |
} |