Index: Source/bindings/v8/V8PerIsolateData.cpp |
diff --git a/Source/bindings/v8/V8PerIsolateData.cpp b/Source/bindings/v8/V8PerIsolateData.cpp |
index f9cceceb7ffc7c46e76b34ab90ce6829f63165a2..d08a34c78b526e938308ee4ed49fa11acced75fc 100644 |
--- a/Source/bindings/v8/V8PerIsolateData.cpp |
+++ b/Source/bindings/v8/V8PerIsolateData.cpp |
@@ -127,8 +127,14 @@ void V8PerIsolateData::setDOMTemplate(void* domTemplateKey, v8::Handle<v8::Funct |
v8::Local<v8::Context> V8PerIsolateData::ensureDomInJSContext() |
{ |
- if (!m_blinkInJSScriptState) |
- m_blinkInJSScriptState = NewScriptState::create(v8::Context::New(m_isolate), DOMWrapperWorld::create()); |
+ if (!m_blinkInJSScriptState) { |
+ v8::Local<v8::Context> context(v8::Context::New(m_isolate)); |
+ if (context.IsEmpty()) { |
+ // The script execution has been terminated. |
+ return context; |
+ } |
+ m_blinkInJSScriptState = NewScriptState::create(context, DOMWrapperWorld::create()); |
+ } |
return m_blinkInJSScriptState->context(); |
} |