Index: pkg/dev_compiler/lib/js/legacy/dart_sdk.js |
diff --git a/pkg/dev_compiler/lib/js/legacy/dart_sdk.js b/pkg/dev_compiler/lib/js/legacy/dart_sdk.js |
index f056e58b355242a8afc6ec59c88a49505e4949b5..c15962df0f4d6840708f81c74b89cae006b26921 100644 |
--- a/pkg/dev_compiler/lib/js/legacy/dart_sdk.js |
+++ b/pkg/dev_compiler/lib/js/legacy/dart_sdk.js |
@@ -1865,11 +1865,12 @@ dart_library.library('dart_sdk', null, /* Imports */[ |
if (ret.done) return ret.value; |
let future = ret.value; |
if (!dart.is(future, dart.getGenericClass(async.Future))) { |
- future = async.Future.value(future); |
+ var result = future; |
+ future = async.Future.microtask(() => result); |
} |
return future.then(dart.dynamic)(onValue, {onError: onError}); |
} |
- return dart.getGenericClass(async.Future)(T).new(function() { |
+ return dart.getGenericClass(async.Future)(T).microtask(function() { |
iter = gen.apply(null, args)[Symbol.iterator](); |
return onValue(); |
}); |