Index: runtime/observatory/lib/src/elements/eval_link.dart |
diff --git a/runtime/observatory/lib/src/elements/eval_link.dart b/runtime/observatory/lib/src/elements/eval_link.dart |
index e13aed127cc24f3a85afe91959748e1da80904db..aa8be4efd8e374fa43a7289a6838adaa73b52722 100644 |
--- a/runtime/observatory/lib/src/elements/eval_link.dart |
+++ b/runtime/observatory/lib/src/elements/eval_link.dart |
@@ -5,17 +5,19 @@ |
library eval_link_element; |
import 'package:observatory/service.dart'; |
+import 'observatory_element.dart'; |
import 'package:polymer/polymer.dart'; |
@CustomTag('eval-link') |
-class EvalLinkElement extends PolymerElement { |
+class EvalLinkElement extends ObservatoryElement { |
EvalLinkElement.created() : super.created(); |
@observable bool busy = false; |
@published String label = "[evaluate]"; |
@published var callback = null; |
@published var expr = ''; |
- @published ServiceObject result = null; |
+ @published var result = null; |
+ @published var error = null; |
void evalNow(var a, var b, var c) { |
if (busy) { |
@@ -25,10 +27,13 @@ class EvalLinkElement extends PolymerElement { |
busy = true; |
result = null; |
callback(expr).then((ServiceObject obj) { |
- result = obj; |
- }).whenComplete(() { |
- busy = false; |
- }); |
+ result = obj; |
+ }).catchError((e, st) { |
+ error = e.message; |
+ app.handleException(e, st); |
+ }).whenComplete(() { |
+ busy = false; |
+ }); |
} |
} |
} |