| Index: sdk/lib/async/future_impl.dart
|
| diff --git a/sdk/lib/async/future_impl.dart b/sdk/lib/async/future_impl.dart
|
| index aaf005efc470f310097ddcd8288238c4b8c272b4..02513781cef70727bddf1b7b38a060483e95b833 100644
|
| --- a/sdk/lib/async/future_impl.dart
|
| +++ b/sdk/lib/async/future_impl.dart
|
| @@ -420,17 +420,16 @@ class _WhenFuture<T> extends _TransformFuture<T, T> {
|
| var result = _action();
|
| if (result is Future) {
|
| Future resultFuture = result;
|
| - result.then((_) {
|
| + resultFuture.then((_) {
|
| _setValue(value);
|
| - }, onError: (AsyncError e) {
|
| - _setError(e);
|
| - });
|
| + }, onError: _setError);
|
| return;
|
| }
|
| } catch (e, s) {
|
| _setError(new AsyncError(e, s));
|
| return;
|
| }
|
| +
|
| _setValue(value);
|
| }
|
|
|
| @@ -439,13 +438,10 @@ class _WhenFuture<T> extends _TransformFuture<T, T> {
|
| var result = _action();
|
| if (result is Future) {
|
| Future resultFuture = result;
|
| - result.then((_) {
|
| + // TODO(lrn): Find a way to combine [error] into [e].
|
| + resultFuture.then((_) {
|
| _setError(error);
|
| - }, onError: (AsyncError e) {
|
| - // TODO(lrn): Find a way to combine error into the
|
| - // resulting error.
|
| - _setError(e);
|
| - });
|
| + }, onError: _setError);
|
| return;
|
| }
|
| } catch (e, s) {
|
| @@ -475,9 +471,9 @@ class _FutureWrapper<T> implements Future<T> {
|
| return _future.catchError(function, test: test);
|
| }
|
|
|
| - Future whenComplete(action()) {
|
| + Future<T> whenComplete(action()) {
|
| return _future.whenComplete(action);
|
| }
|
|
|
| - Stream<T> asStream() => new Stream.fromFuture(this);
|
| + Stream<T> asStream() => new Stream.fromFuture(_future);
|
| }
|
|
|