Index: src/v8natives.js |
diff --git a/src/v8natives.js b/src/v8natives.js |
index c1955cfdf7b71eb41e11af3e312992e0305922f1..3f993a2444951de9791b0008c1177ffd5971177a 100644 |
--- a/src/v8natives.js |
+++ b/src/v8natives.js |
@@ -1906,7 +1906,16 @@ function RunMicrotasks() { |
RunMicrotasks.queue = new InternalArray; |
for (var i = 0; i < microtasks.length; i++) { |
- microtasks[i](); |
+ var microtask = microtasks[i]; |
+ if (typeof microtask === 'function') |
+ microtask(); |
+ else |
+ %RunExternalMicrotask(microtask); |
} |
} |
} |
+ |
+function EnqueueExternalMicrotask(handler) { |
+ %SetMicrotaskPending(true); |
+ RunMicrotasks.queue.push(handler); |
+} |