| Index: pkg/stack_trace/lib/src/chain.dart
|
| diff --git a/pkg/stack_trace/lib/src/chain.dart b/pkg/stack_trace/lib/src/chain.dart
|
| index a097bba343ff0a4bdc21ed4e52a3748fb0df9a9e..78c6ae4014c37c9f7d49d3643f9f3c6ad3648cfa 100644
|
| --- a/pkg/stack_trace/lib/src/chain.dart
|
| +++ b/pkg/stack_trace/lib/src/chain.dart
|
| @@ -90,7 +90,14 @@ class Chain implements StackTrace {
|
| /// [15105]: https://code.google.com/p/dart/issues/detail?id=15105
|
| static capture(callback(), {ChainHandler onError}) {
|
| var spec = new StackZoneSpecification(onError);
|
| - return runZoned(callback, zoneSpecification: spec.toSpec(), zoneValues: {
|
| + return runZoned(() {
|
| + try {
|
| + return callback();
|
| + } catch (error, stackTrace) {
|
| + // TODO(nweiz): Don't special-case this when issue 19566 is fixed.
|
| + return Zone.current.handleUncaughtError(error, stackTrace);
|
| + }
|
| + }, zoneSpecification: spec.toSpec(), zoneValues: {
|
| #stack_trace.stack_zone.spec: spec
|
| });
|
| }
|
|
|