Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(320)

Unified Diff: pkg/dev_compiler/lib/js/legacy/dart_sdk.js

Issue 2653253002: Use microtasks in dart.async (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
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();
});

Powered by Google App Engine
This is Rietveld 408576698