Index: lib/src/runner/vm/isolate_listener.dart |
diff --git a/lib/src/runner/vm/isolate_listener.dart b/lib/src/runner/vm/isolate_listener.dart |
index ed23a1d1adfeeb67d6fe2ff89e3fc56d0e1d3f09..a25c9d682401c2243d46909f1574c2e6844d1f30 100644 |
--- a/lib/src/runner/vm/isolate_listener.dart |
+++ b/lib/src/runner/vm/isolate_listener.dart |
@@ -51,19 +51,18 @@ class IsolateListener { |
} |
var declarer = new Declarer(); |
- try { |
- runZoned(main, zoneValues: {#test.declarer: declarer}); |
- } catch (error, stackTrace) { |
+ runZoned(() => new Future.sync(main), zoneValues: { |
+ #test.declarer: declarer |
+ }).then((_) { |
+ var suite = new Suite(declarer.tests, metadata: metadata) |
+ .forPlatform(TestPlatform.vm, os: currentOS); |
+ new IsolateListener._(suite)._listen(sendPort); |
+ }, onError: (error, stackTrace) { |
sendPort.send({ |
"type": "error", |
"error": RemoteException.serialize(error, stackTrace) |
}); |
- return; |
- } |
- |
- var suite = new Suite(declarer.tests, metadata: metadata) |
- .forPlatform(TestPlatform.vm, os: currentOS); |
- new IsolateListener._(suite)._listen(sendPort); |
+ }); |
} |
/// Sends a message over [sendPort] indicating that the tests failed to load. |