Index: src/isolate.cc |
diff --git a/src/isolate.cc b/src/isolate.cc |
index 1aad57632f4d9bc2593d6df5f08578ef8085e3f4..bf0f533f5162fbca439d0d9b15f3aa00f9f3e8f9 100644 |
--- a/src/isolate.cc |
+++ b/src/isolate.cc |
@@ -2990,7 +2990,11 @@ void Isolate::RunMicrotasks() { |
v8::Isolate::SuppressMicrotaskExecutionScope suppress( |
reinterpret_cast<v8::Isolate*>(this)); |
is_running_microtasks_ = true; |
- RunMicrotasksInternal(); |
+ MaybeHandle<Object> maybe_exception; |
+ MaybeHandle<Object> result = Execution::TryCall( |
+ this, microtask_run(), factory()->undefined_value(), 0, NULL, |
+ &maybe_exception); |
+ //RunMicrotasksInternal(); |
is_running_microtasks_ = false; |
FireMicrotasksCompletedCallback(); |
} |
@@ -3021,7 +3025,6 @@ void Isolate::RunMicrotasksInternal() { |
&maybe_exception); |
handle_scope_implementer_->LeaveMicrotaskContext(); |
// If execution is terminating, just bail out. |
- Handle<Object> exception; |
if (result.is_null() && maybe_exception.is_null()) { |
// Clear out any remaining callbacks in the queue. |
heap()->set_microtask_queue(heap()->empty_fixed_array()); |