Immediately install handlers in Promise.asDeferred
diff --git a/js/kotlinx-coroutines-core-js/src/main/kotlin/kotlinx/coroutines/experimental/Promise.kt b/js/kotlinx-coroutines-core-js/src/main/kotlin/kotlinx/coroutines/experimental/Promise.kt
index c8d17f3..621a737 100644
--- a/js/kotlinx-coroutines-core-js/src/main/kotlin/kotlinx/coroutines/experimental/Promise.kt
+++ b/js/kotlinx-coroutines-core-js/src/main/kotlin/kotlinx/coroutines/experimental/Promise.kt
@@ -71,7 +71,7 @@
 public fun <T> Promise<T>.asDeferred(): Deferred<T> {
     val deferred = asDynamic().deferred
     @Suppress("UnsafeCastFromDynamic")
-    return deferred ?: async { await() }
+    return deferred ?: async(start = CoroutineStart.UNDISPATCHED) { await() }
 }
 
 /**