| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 isolate->AddCallCompletedCallback(&assertV8RecursionScope); | 68 isolate->AddCallCompletedCallback(&assertV8RecursionScope); |
| 69 #endif | 69 #endif |
| 70 if (isMainThread()) { | 70 if (isMainThread()) { |
| 71 mainThreadPerIsolateData = this; | 71 mainThreadPerIsolateData = this; |
| 72 PageScriptDebugServer::setMainThreadIsolate(isolate); | 72 PageScriptDebugServer::setMainThreadIsolate(isolate); |
| 73 } | 73 } |
| 74 } | 74 } |
| 75 | 75 |
| 76 V8PerIsolateData::~V8PerIsolateData() | 76 V8PerIsolateData::~V8PerIsolateData() |
| 77 { | 77 { |
| 78 if (m_blinkInJSScriptState) | 78 if (m_scriptRegexpScriptState) |
| 79 m_blinkInJSScriptState->disposePerContextData(); | 79 m_scriptRegexpScriptState->disposePerContextData(); |
| 80 if (isMainThread()) | 80 if (isMainThread()) |
| 81 mainThreadPerIsolateData = 0; | 81 mainThreadPerIsolateData = 0; |
| 82 } | 82 } |
| 83 | 83 |
| 84 v8::Isolate* V8PerIsolateData::mainThreadIsolate() | 84 v8::Isolate* V8PerIsolateData::mainThreadIsolate() |
| 85 { | 85 { |
| 86 ASSERT(isMainThread()); | 86 ASSERT(isMainThread()); |
| 87 ASSERT(mainThreadPerIsolateData); | 87 ASSERT(mainThreadPerIsolateData); |
| 88 return mainThreadPerIsolateData->isolate(); | 88 return mainThreadPerIsolateData->isolate(); |
| 89 } | 89 } |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 if (result != domTemplateMap.end()) | 141 if (result != domTemplateMap.end()) |
| 142 return result->value.Get(m_isolate); | 142 return result->value.Get(m_isolate); |
| 143 return v8::Local<v8::FunctionTemplate>(); | 143 return v8::Local<v8::FunctionTemplate>(); |
| 144 } | 144 } |
| 145 | 145 |
| 146 void V8PerIsolateData::setDOMTemplate(void* domTemplateKey, v8::Handle<v8::Funct
ionTemplate> templ) | 146 void V8PerIsolateData::setDOMTemplate(void* domTemplateKey, v8::Handle<v8::Funct
ionTemplate> templ) |
| 147 { | 147 { |
| 148 currentDOMTemplateMap().add(domTemplateKey, v8::Eternal<v8::FunctionTemplate
>(m_isolate, v8::Local<v8::FunctionTemplate>(templ))); | 148 currentDOMTemplateMap().add(domTemplateKey, v8::Eternal<v8::FunctionTemplate
>(m_isolate, v8::Local<v8::FunctionTemplate>(templ))); |
| 149 } | 149 } |
| 150 | 150 |
| 151 v8::Local<v8::Context> V8PerIsolateData::ensureDomInJSContext() | 151 v8::Local<v8::Context> V8PerIsolateData::ensureScriptRegexpContext() |
| 152 { | 152 { |
| 153 if (!m_blinkInJSScriptState) { | 153 if (!m_scriptRegexpScriptState) { |
| 154 v8::Local<v8::Context> context(v8::Context::New(m_isolate)); | 154 v8::Local<v8::Context> context(v8::Context::New(m_isolate)); |
| 155 if (!context.IsEmpty()) | 155 m_scriptRegexpScriptState = ScriptState::create(context, DOMWrapperWorld
::create()); |
| 156 m_blinkInJSScriptState = ScriptState::create(context, DOMWrapperWorl
d::create()); | |
| 157 } | 156 } |
| 158 return m_blinkInJSScriptState ? m_blinkInJSScriptState->context() : v8::Loca
l<v8::Context>(); | 157 return m_scriptRegexpScriptState->context(); |
| 159 } | 158 } |
| 160 | 159 |
| 161 bool V8PerIsolateData::hasInstance(const WrapperTypeInfo* info, v8::Handle<v8::V
alue> value) | 160 bool V8PerIsolateData::hasInstance(const WrapperTypeInfo* info, v8::Handle<v8::V
alue> value) |
| 162 { | 161 { |
| 163 return hasInstance(info, value, m_domTemplateMapForMainWorld) | 162 return hasInstance(info, value, m_domTemplateMapForMainWorld) |
| 164 || hasInstance(info, value, m_domTemplateMapForNonMainWorld); | 163 || hasInstance(info, value, m_domTemplateMapForNonMainWorld); |
| 165 } | 164 } |
| 166 | 165 |
| 167 bool V8PerIsolateData::hasInstance(const WrapperTypeInfo* info, v8::Handle<v8::V
alue> value, DOMTemplateMap& domTemplateMap) | 166 bool V8PerIsolateData::hasInstance(const WrapperTypeInfo* info, v8::Handle<v8::V
alue> value, DOMTemplateMap& domTemplateMap) |
| 168 { | 167 { |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 } | 210 } |
| 212 | 211 |
| 213 v8::Handle<v8::FunctionTemplate> V8PerIsolateData::toStringTemplate() | 212 v8::Handle<v8::FunctionTemplate> V8PerIsolateData::toStringTemplate() |
| 214 { | 213 { |
| 215 if (m_toStringTemplate.isEmpty()) | 214 if (m_toStringTemplate.isEmpty()) |
| 216 m_toStringTemplate.set(m_isolate, v8::FunctionTemplate::New(m_isolate, c
onstructorOfToString)); | 215 m_toStringTemplate.set(m_isolate, v8::FunctionTemplate::New(m_isolate, c
onstructorOfToString)); |
| 217 return m_toStringTemplate.newLocal(m_isolate); | 216 return m_toStringTemplate.newLocal(m_isolate); |
| 218 } | 217 } |
| 219 | 218 |
| 220 } // namespace WebCore | 219 } // namespace WebCore |
| OLD | NEW |