| Index: third_party/WebKit/Source/core/dom/Microtask.cpp | 
| diff --git a/third_party/WebKit/Source/core/dom/Microtask.cpp b/third_party/WebKit/Source/core/dom/Microtask.cpp | 
| index 344c9e0181de1aa5f0e4ca1fb1ccbc0eb3210db9..7c3ec6ed7540cddc51fed0809c5873375a2df5be 100644 | 
| --- a/third_party/WebKit/Source/core/dom/Microtask.cpp | 
| +++ b/third_party/WebKit/Source/core/dom/Microtask.cpp | 
| @@ -40,9 +40,13 @@ namespace blink { | 
|  | 
| void Microtask::performCheckpoint(v8::Isolate* isolate) | 
| { | 
| -    if (ScriptForbiddenScope::isScriptForbidden()) | 
| +    V8PerIsolateData* isolateData = V8PerIsolateData::from(isolate); | 
| +    ASSERT(isolateData); | 
| +    if (isolateData->recursionLevel() || isolateData->performingMicrotaskCheckpoint() || isolateData->destructionPending() || ScriptForbiddenScope::isScriptForbidden()) | 
| return; | 
| -    v8::MicrotasksScope::PerformCheckpoint(isolate); | 
| +    isolateData->setPerformingMicrotaskCheckpoint(true); | 
| +    isolate->RunMicrotasks(); | 
| +    isolateData->setPerformingMicrotaskCheckpoint(false); | 
| } | 
|  | 
| static void microtaskFunctionCallback(void* data) | 
|  |