Index: lib/src/js/nodes.dart |
diff --git a/lib/src/js/nodes.dart b/lib/src/js/nodes.dart |
index f5d0ed5d7a4145315793c681835f6dc2849357bd..b8ebd3159e3c319e9e705b4b442c36684ae73ec6 100644 |
--- a/lib/src/js/nodes.dart |
+++ b/lib/src/js/nodes.dart |
@@ -445,8 +445,26 @@ class Return extends Statement { |
} |
Return _clone() => new Return(value); |
+ |
+ static bool foundIn(Node node) { |
+ _returnFinder.found = false; |
+ node.accept(_returnFinder); |
+ return _returnFinder.found; |
+ } |
+} |
+ |
+final _returnFinder = new _ReturnFinder(); |
+class _ReturnFinder extends BaseVisitor { |
+ bool found = false; |
+ visitReturn(Return node) { |
+ found = true; |
+ } |
+ visitNode(Node node) { |
+ if (!found) super.visitNode(node); |
+ } |
} |
+ |
class Throw extends Statement { |
final Expression expression; |