| Index: third_party/WebKit/Source/bindings/core/v8/V8RecursionScope.h
|
| diff --git a/third_party/WebKit/Source/bindings/core/v8/V8RecursionScope.h b/third_party/WebKit/Source/bindings/core/v8/V8RecursionScope.h
|
| index dd9a51fb354f2ce33937587882c6ff849a61cb30..8bbd26cd3dfbc9b2144110a0f174bbe484cd7a28 100644
|
| --- a/third_party/WebKit/Source/bindings/core/v8/V8RecursionScope.h
|
| +++ b/third_party/WebKit/Source/bindings/core/v8/V8RecursionScope.h
|
| @@ -59,63 +59,39 @@ class CORE_EXPORT V8RecursionScope {
|
| STACK_ALLOCATED();
|
| public:
|
| explicit V8RecursionScope(v8::Isolate* isolate)
|
| - : m_isolate(isolate)
|
| + : m_scope(isolate, v8::MicrotasksScope::kRunMicrotasks)
|
| {
|
| - V8PerIsolateData::from(m_isolate)->incrementRecursionLevel();
|
| - // If you want V8 to autorun microtasks, this class needs to have a
|
| - // v8::Isolate::SuppressMicrotaskExecutionScope member.
|
| - ASSERT(!isolate->WillAutorunMicrotasks());
|
| + ASSERT(isolate->GetMicrotasksPolicy() == v8::MicrotasksPolicy::kScoped);
|
| }
|
|
|
| ~V8RecursionScope()
|
| {
|
| - if (!V8PerIsolateData::from(m_isolate)->decrementRecursionLevel())
|
| - didLeaveScriptContext();
|
| }
|
|
|
| static int recursionLevel(v8::Isolate* isolate)
|
| {
|
| - return V8PerIsolateData::from(isolate)->recursionLevel();
|
| + return v8::MicrotasksScope::GetCurrentDepth(isolate);
|
| }
|
|
|
| -#if ENABLE(ASSERT)
|
| - static bool properlyUsed(v8::Isolate* isolate)
|
| - {
|
| - return recursionLevel(isolate) > 0 || V8PerIsolateData::from(isolate)->internalScriptRecursionLevel() > 0;
|
| - }
|
| -#endif
|
| -
|
| class MicrotaskSuppression {
|
| USING_FAST_MALLOC(MicrotaskSuppression);
|
| WTF_MAKE_NONCOPYABLE(MicrotaskSuppression);
|
| public:
|
| - MicrotaskSuppression(v8::Isolate* isolate)
|
| -#if ENABLE(ASSERT)
|
| - : m_isolate(isolate)
|
| -#endif
|
| + explicit MicrotaskSuppression(v8::Isolate* isolate)
|
| + : m_scope(isolate, v8::MicrotasksScope::kDoNotRunMicrotasks)
|
| {
|
| -#if ENABLE(ASSERT)
|
| - V8PerIsolateData::from(m_isolate)->incrementInternalScriptRecursionLevel();
|
| -#endif
|
| }
|
|
|
| ~MicrotaskSuppression()
|
| {
|
| -#if ENABLE(ASSERT)
|
| - V8PerIsolateData::from(m_isolate)->decrementInternalScriptRecursionLevel();
|
| -#endif
|
| }
|
|
|
| private:
|
| -#if ENABLE(ASSERT)
|
| - v8::Isolate* m_isolate;
|
| -#endif
|
| + v8::MicrotasksScope m_scope;
|
| };
|
|
|
| private:
|
| - void didLeaveScriptContext();
|
| -
|
| - v8::Isolate* m_isolate;
|
| + v8::MicrotasksScope m_scope;
|
| };
|
|
|
| } // namespace blink
|
|
|