Index: pkg/dev_compiler/lib/js/amd/dart_sdk.js |
diff --git a/pkg/dev_compiler/lib/js/amd/dart_sdk.js b/pkg/dev_compiler/lib/js/amd/dart_sdk.js |
index 2b78591de33500ddffa71e811a2709f6a2fba70c..91f2480a00ce8b188fc309788bff077951db2185 100644 |
--- a/pkg/dev_compiler/lib/js/amd/dart_sdk.js |
+++ b/pkg/dev_compiler/lib/js/amd/dart_sdk.js |
@@ -1864,11 +1864,12 @@ define([], function() { |
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(); |
}); |