| Index: sky/engine/bindings/core/v8/V8PerIsolateData.cpp
|
| diff --git a/sky/engine/bindings/core/v8/V8PerIsolateData.cpp b/sky/engine/bindings/core/v8/V8PerIsolateData.cpp
|
| index a0910df7c13aa3cbe3abad1d2f435220c0d49b79..298fd854b4d0bee4c8152c08ac306f176b543f2a 100644
|
| --- a/sky/engine/bindings/core/v8/V8PerIsolateData.cpp
|
| +++ b/sky/engine/bindings/core/v8/V8PerIsolateData.cpp
|
| @@ -86,6 +86,8 @@ V8PerIsolateData::V8PerIsolateData()
|
|
|
| V8PerIsolateData::~V8PerIsolateData()
|
| {
|
| + if (m_scriptRegexpScriptState)
|
| + m_scriptRegexpScriptState->disposePerContextData();
|
| if (isMainThread())
|
| mainThreadPerIsolateData = 0;
|
| }
|
| @@ -156,6 +158,15 @@ void V8PerIsolateData::setDOMTemplate(void* domTemplateKey, v8::Handle<v8::Funct
|
| currentDOMTemplateMap().add(domTemplateKey, v8::Eternal<v8::FunctionTemplate>(isolate(), v8::Local<v8::FunctionTemplate>(templ)));
|
| }
|
|
|
| +v8::Local<v8::Context> V8PerIsolateData::ensureScriptRegexpContext()
|
| +{
|
| + if (!m_scriptRegexpScriptState) {
|
| + v8::Local<v8::Context> context(v8::Context::New(isolate()));
|
| + m_scriptRegexpScriptState = ScriptState::create(context, DOMWrapperWorld::create());
|
| + }
|
| + return m_scriptRegexpScriptState->context();
|
| +}
|
| +
|
| bool V8PerIsolateData::hasInstance(const WrapperTypeInfo* info, v8::Handle<v8::Value> value)
|
| {
|
| return hasInstance(info, value, m_domTemplateMapForMainWorld)
|
|
|