Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(255)

Side by Side Diff: sky/engine/bindings/core/v8/V8PerIsolateData.cpp

Issue 727593004: Wire up the Inspector V8 Debugger (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Actually works Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 // currentThread will always be non-null in production, but can be null in C hromium unit tests. 79 // currentThread will always be non-null in production, but can be null in C hromium unit tests.
80 isolate()->AddCallCompletedCallback(&assertV8RecursionScope); 80 isolate()->AddCallCompletedCallback(&assertV8RecursionScope);
81 #endif 81 #endif
82 if (isMainThread()) 82 if (isMainThread())
83 mainThreadPerIsolateData = this; 83 mainThreadPerIsolateData = this;
84 isolate()->SetUseCounterCallback(&useCounterCallback); 84 isolate()->SetUseCounterCallback(&useCounterCallback);
85 } 85 }
86 86
87 V8PerIsolateData::~V8PerIsolateData() 87 V8PerIsolateData::~V8PerIsolateData()
88 { 88 {
89 if (m_scriptRegexpScriptState)
90 m_scriptRegexpScriptState->disposePerContextData();
89 if (isMainThread()) 91 if (isMainThread())
90 mainThreadPerIsolateData = 0; 92 mainThreadPerIsolateData = 0;
91 } 93 }
92 94
93 v8::Isolate* V8PerIsolateData::mainThreadIsolate() 95 v8::Isolate* V8PerIsolateData::mainThreadIsolate()
94 { 96 {
95 ASSERT(isMainThread()); 97 ASSERT(isMainThread());
96 ASSERT(mainThreadPerIsolateData); 98 ASSERT(mainThreadPerIsolateData);
97 return mainThreadPerIsolateData->isolate(); 99 return mainThreadPerIsolateData->isolate();
98 } 100 }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 if (result != domTemplateMap.end()) 151 if (result != domTemplateMap.end())
150 return result->value.Get(isolate()); 152 return result->value.Get(isolate());
151 return v8::Local<v8::FunctionTemplate>(); 153 return v8::Local<v8::FunctionTemplate>();
152 } 154 }
153 155
154 void V8PerIsolateData::setDOMTemplate(void* domTemplateKey, v8::Handle<v8::Funct ionTemplate> templ) 156 void V8PerIsolateData::setDOMTemplate(void* domTemplateKey, v8::Handle<v8::Funct ionTemplate> templ)
155 { 157 {
156 currentDOMTemplateMap().add(domTemplateKey, v8::Eternal<v8::FunctionTemplate >(isolate(), v8::Local<v8::FunctionTemplate>(templ))); 158 currentDOMTemplateMap().add(domTemplateKey, v8::Eternal<v8::FunctionTemplate >(isolate(), v8::Local<v8::FunctionTemplate>(templ)));
157 } 159 }
158 160
161 v8::Local<v8::Context> V8PerIsolateData::ensureScriptRegexpContext()
162 {
163 if (!m_scriptRegexpScriptState) {
164 v8::Local<v8::Context> context(v8::Context::New(isolate()));
165 m_scriptRegexpScriptState = ScriptState::create(context, DOMWrapperWorld ::create());
166 }
167 return m_scriptRegexpScriptState->context();
168 }
169
159 bool V8PerIsolateData::hasInstance(const WrapperTypeInfo* info, v8::Handle<v8::V alue> value) 170 bool V8PerIsolateData::hasInstance(const WrapperTypeInfo* info, v8::Handle<v8::V alue> value)
160 { 171 {
161 return hasInstance(info, value, m_domTemplateMapForMainWorld) 172 return hasInstance(info, value, m_domTemplateMapForMainWorld)
162 || hasInstance(info, value, m_domTemplateMapForNonMainWorld); 173 || hasInstance(info, value, m_domTemplateMapForNonMainWorld);
163 } 174 }
164 175
165 bool V8PerIsolateData::hasInstance(const WrapperTypeInfo* info, v8::Handle<v8::V alue> value, DOMTemplateMap& domTemplateMap) 176 bool V8PerIsolateData::hasInstance(const WrapperTypeInfo* info, v8::Handle<v8::V alue> value, DOMTemplateMap& domTemplateMap)
166 { 177 {
167 DOMTemplateMap::iterator result = domTemplateMap.find(info); 178 DOMTemplateMap::iterator result = domTemplateMap.find(info);
168 if (result == domTemplateMap.end()) 179 if (result == domTemplateMap.end())
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 } 220 }
210 221
211 v8::Handle<v8::FunctionTemplate> V8PerIsolateData::toStringTemplate() 222 v8::Handle<v8::FunctionTemplate> V8PerIsolateData::toStringTemplate()
212 { 223 {
213 if (m_toStringTemplate.isEmpty()) 224 if (m_toStringTemplate.isEmpty())
214 m_toStringTemplate.set(isolate(), v8::FunctionTemplate::New(isolate(), c onstructorOfToString)); 225 m_toStringTemplate.set(isolate(), v8::FunctionTemplate::New(isolate(), c onstructorOfToString));
215 return m_toStringTemplate.newLocal(isolate()); 226 return m_toStringTemplate.newLocal(isolate());
216 } 227 }
217 228
218 } // namespace blink 229 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698