Index: sdk/lib/async/future.dart |
diff --git a/sdk/lib/async/future.dart b/sdk/lib/async/future.dart |
index c64e1c5e0316ca6baa5997c9eb131f6b768bb9bd..ff646e0e9e4cd716a1fa0f89c4f6c2233724f836 100644 |
--- a/sdk/lib/async/future.dart |
+++ b/sdk/lib/async/future.dart |
@@ -322,8 +322,11 @@ abstract class Future<T> { |
// The error must have been thrown while iterating over the futures |
// list, or while installing a callback handler on the future. |
if (remaining == 0 || eagerError) { |
- // Just complete the error immediately. |
- result._completeError(e, st); |
+ // Throw a new Future.error. |
+ // Don't just complete the existing `_Future` since that would propagate |
Lasse Reichstein Nielsen
2016/09/06 09:53:27
Drop this comment. If you used _asyncCompleteError
floitsch
2016/09/06 09:57:15
Done.
|
+ // the error too eagerly, not giving the callers time to install |
+ // error handlers. |
+ return new Future.error(e, st); |
} else { |
// Don't allocate a list for values, thus indicating that there was an |
// error. |