bool WorkerContextExecutionProxy::forgetV8EventObject(Event* event) { if (getDOMObjectMap().contains(event)) { getDOMObjectMap().forget(event); return true; } return false; }
v8::Handle<v8::Object> V8WebKitAnimationEvent::wrap(WebKitAnimationEvent* impl) { v8::Handle<v8::Object> wrapper; V8Proxy* proxy = 0; wrapper = getDOMObjectMap().get(impl); if (!wrapper.IsEmpty()) return wrapper; wrapper = V8DOMWrapper::instantiateV8Object(proxy, V8ClassIndex::WEBKITANIMATIONEVENT, impl); if (wrapper.IsEmpty()) return wrapper; impl->ref(); getDOMObjectMap().set(impl, v8::Persistent<v8::Object>::New(wrapper)); return wrapper; }
v8::Handle<v8::Object> V8WebGLActiveInfo::wrap(WebGLActiveInfo* impl) { v8::Handle<v8::Object> wrapper; V8Proxy* proxy = 0; wrapper = getDOMObjectMap().get(impl); if (!wrapper.IsEmpty()) return wrapper; wrapper = V8DOMWrapper::instantiateV8Object(proxy, V8ClassIndex::WEBGLACTIVEINFO, impl); if (wrapper.IsEmpty()) return wrapper; impl->ref(); getDOMObjectMap().set(impl, v8::Persistent<v8::Object>::New(wrapper)); return wrapper; }
v8::Handle<v8::Object> V8Rect::wrap(Rect* impl) { v8::Handle<v8::Object> wrapper; V8Proxy* proxy = 0; wrapper = getDOMObjectMap().get(impl); if (!wrapper.IsEmpty()) return wrapper; wrapper = V8DOMWrapper::instantiateV8Object(proxy, V8ClassIndex::RECT, impl); if (wrapper.IsEmpty()) return wrapper; impl->ref(); getDOMObjectMap().set(impl, v8::Persistent<v8::Object>::New(wrapper)); return wrapper; }
v8::Handle<v8::Object> V8CSSFontFaceRule::wrap(CSSFontFaceRule* impl) { v8::Handle<v8::Object> wrapper; V8Proxy* proxy = 0; wrapper = getDOMObjectMap().get(impl); if (!wrapper.IsEmpty()) return wrapper; wrapper = V8DOMWrapper::instantiateV8Object(proxy, V8ClassIndex::CSSFONTFACERULE, impl); if (wrapper.IsEmpty()) return wrapper; impl->ref(); getDOMObjectMap().set(impl, v8::Persistent<v8::Object>::New(wrapper)); return wrapper; }
v8::Handle<v8::Object> V8XMLHttpRequestUpload::wrap(XMLHttpRequestUpload* impl) { v8::Handle<v8::Object> wrapper; V8Proxy* proxy = 0; wrapper = getDOMObjectMap().get(impl); if (!wrapper.IsEmpty()) return wrapper; wrapper = V8DOMWrapper::instantiateV8Object(proxy, V8ClassIndex::XMLHTTPREQUESTUPLOAD, impl); if (wrapper.IsEmpty()) return wrapper; impl->ref(); getDOMObjectMap().set(impl, v8::Persistent<v8::Object>::New(wrapper)); return wrapper; }
v8::Handle<v8::Object> V8ValidityState::wrap(ValidityState* impl) { v8::Handle<v8::Object> wrapper; V8Proxy* proxy = 0; wrapper = getDOMObjectMap().get(impl); if (!wrapper.IsEmpty()) return wrapper; wrapper = V8DOMWrapper::instantiateV8Object(proxy, V8ClassIndex::VALIDITYSTATE, impl); if (wrapper.IsEmpty()) return wrapper; impl->ref(); getDOMObjectMap().set(impl, v8::Persistent<v8::Object>::New(wrapper)); return wrapper; }
v8::Handle<v8::Object> V8InspectorFrontendHost::wrap(InspectorFrontendHost* impl) { v8::Handle<v8::Object> wrapper; V8Proxy* proxy = 0; wrapper = getDOMObjectMap().get(impl); if (!wrapper.IsEmpty()) return wrapper; wrapper = V8DOMWrapper::instantiateV8Object(proxy, V8ClassIndex::INSPECTORFRONTENDHOST, impl); if (wrapper.IsEmpty()) return wrapper; impl->ref(); getDOMObjectMap().set(impl, v8::Persistent<v8::Object>::New(wrapper)); return wrapper; }
v8::Handle<v8::Object> V8MessageChannel::wrap(MessageChannel* impl) { v8::Handle<v8::Object> wrapper; V8Proxy* proxy = 0; wrapper = getDOMObjectMap().get(impl); if (!wrapper.IsEmpty()) return wrapper; wrapper = V8DOMWrapper::instantiateV8Object(proxy, V8ClassIndex::MESSAGECHANNEL, impl); if (wrapper.IsEmpty()) return wrapper; impl->ref(); getDOMObjectMap().set(impl, v8::Persistent<v8::Object>::New(wrapper)); return wrapper; }
v8::Handle<v8::Object> V8EventException::wrap(EventException* impl) { v8::Handle<v8::Object> wrapper; V8Proxy* proxy = 0; wrapper = getDOMObjectMap().get(impl); if (!wrapper.IsEmpty()) return wrapper; wrapper = V8DOMWrapper::instantiateV8Object(proxy, V8ClassIndex::EVENTEXCEPTION, impl); if (wrapper.IsEmpty()) return wrapper; impl->ref(); getDOMObjectMap().set(impl, v8::Persistent<v8::Object>::New(wrapper)); return wrapper; }
v8::Handle<v8::Object> V8WebGLUnsignedIntArray::wrap(WebGLUnsignedIntArray* impl) { v8::Handle<v8::Object> wrapper; V8Proxy* proxy = 0; wrapper = getDOMObjectMap().get(impl); if (!wrapper.IsEmpty()) return wrapper; wrapper = V8DOMWrapper::instantiateV8Object(proxy, V8ClassIndex::WEBGLUNSIGNEDINTARRAY, impl); if (wrapper.IsEmpty()) return wrapper; impl->ref(); getDOMObjectMap().set(impl, v8::Persistent<v8::Object>::New(wrapper)); return wrapper; }
v8::Handle<v8::Object> V8StyleMedia::wrap(StyleMedia* impl) { v8::Handle<v8::Object> wrapper; V8Proxy* proxy = 0; wrapper = getDOMObjectMap().get(impl); if (!wrapper.IsEmpty()) return wrapper; wrapper = V8DOMWrapper::instantiateV8Object(proxy, &info, impl); if (wrapper.IsEmpty()) return wrapper; impl->ref(); getDOMObjectMap().set(impl, v8::Persistent<v8::Object>::New(wrapper)); return wrapper; }
static void removeAllDOMObjectsInCurrentThreadHelper() { v8::HandleScope scope; // Deref all objects in the delayed queue. DOMData::getCurrent()->derefDelayedObjects(); // The DOM objects with the following types only exist on the main thread. if (WTF::isMainThread()) { // Remove all DOM nodes. DOMData::removeObjectsFromWrapperMap<Node>(getDOMNodeMap()); #if ENABLE(SVG) // Remove all SVG element instances in the wrapper map. DOMData::removeObjectsFromWrapperMap<SVGElementInstance>(getDOMSVGElementInstanceMap()); // Remove all SVG objects with context in the wrapper map. DOMData::removeObjectsFromWrapperMap<void>(getDOMSVGObjectWithContextMap()); #endif } // Remove all DOM objects in the wrapper map. DOMData::removeObjectsFromWrapperMap<void>(getDOMObjectMap()); // Remove all active DOM objects in the wrapper map. DOMData::removeObjectsFromWrapperMap<void>(getActiveDOMObjectMap()); }
v8::Handle<v8::Value> toV8(BarInfo* impl) { if (!impl) return v8::Null(); v8::Handle<v8::Object> wrapper = getDOMObjectMap().get(impl); if (wrapper.IsEmpty()) { wrapper = V8BarInfo::wrap(impl); if (!wrapper.IsEmpty()) { Frame* frame = impl->frame(); switch (impl->type()) { case BarInfo::Locationbar: V8DOMWrapper::setHiddenWindowReference(frame, V8DOMWindow::locationbarIndex, wrapper); break; case BarInfo::Menubar: V8DOMWrapper::setHiddenWindowReference(frame, V8DOMWindow::menubarIndex, wrapper); break; case BarInfo::Personalbar: V8DOMWrapper::setHiddenWindowReference(frame, V8DOMWindow::personalbarIndex, wrapper); break; case BarInfo::Scrollbars: V8DOMWrapper::setHiddenWindowReference(frame, V8DOMWindow::scrollbarsIndex, wrapper); break; case BarInfo::Statusbar: V8DOMWrapper::setHiddenWindowReference(frame, V8DOMWindow::statusbarIndex, wrapper); break; case BarInfo::Toolbar: V8DOMWrapper::setHiddenWindowReference(frame, V8DOMWindow::toolbarIndex, wrapper); break; } } } return wrapper; }
v8::Handle<v8::Value> toV8(Location* impl) { if (!impl) return v8::Null(); v8::Handle<v8::Object> wrapper = getDOMObjectMap().get(impl); if (wrapper.IsEmpty()) { wrapper = V8Location::wrap(impl); if (!wrapper.IsEmpty()) V8DOMWrapper::setHiddenWindowReference(impl->frame(), V8DOMWindow::locationIndex, wrapper); } return wrapper; }
static v8::Handle<v8::Value> rulesAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.CSSStyleSheet.rules._get"); CSSStyleSheet* imp = V8CSSStyleSheet::toNative(info.Holder()); RefPtr<CSSRuleList> result = imp->rules(); v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap().get(result.get()) : v8::Handle<v8::Value>(); if (wrapper.IsEmpty()) { wrapper = toV8(result.get()); if (!wrapper.IsEmpty()) V8DOMWrapper::setNamedHiddenReference(info.Holder(), "rules", wrapper); } return wrapper; }
v8::Handle<v8::Object> V8Float32Array::wrapSlow(Float32Array* impl) { v8::Handle<v8::Object> wrapper; V8Proxy* proxy = 0; wrapper = V8DOMWrapper::instantiateV8Object(proxy, &info, impl); if (wrapper.IsEmpty()) return wrapper; impl->ref(); v8::Persistent<v8::Object> wrapperHandle = v8::Persistent<v8::Object>::New(wrapper); getDOMObjectMap().set(impl, wrapperHandle); return wrapper; }
static v8::Handle<v8::Value> dbAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.IDBTransaction.db._get"); IDBTransaction* imp = V8IDBTransaction::toNative(info.Holder()); RefPtr<IDBDatabase> result = imp->db(); v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap().get(result.get()) : v8::Handle<v8::Value>(); if (wrapper.IsEmpty()) { wrapper = toV8(result.get()); if (!wrapper.IsEmpty()) V8DOMWrapper::setNamedHiddenReference(info.Holder(), "db", wrapper); } return wrapper; }
static v8::Handle<v8::Value> gainAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.AudioBufferSourceNode.gain._get"); AudioBufferSourceNode* imp = V8AudioBufferSourceNode::toNative(info.Holder()); RefPtr<AudioGain> result = imp->gain(); v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap().get(result.get()) : v8::Handle<v8::Value>(); if (wrapper.IsEmpty()) { wrapper = toV8(result.get()); if (!wrapper.IsEmpty()) V8DOMWrapper::setNamedHiddenReference(info.Holder(), "gain", wrapper); } return wrapper; }
static v8::Handle<v8::Value> enabledPluginAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.DOMMimeType.enabledPlugin._get"); DOMMimeType* imp = V8DOMMimeType::toNative(info.Holder()); RefPtr<DOMPlugin> result = imp->enabledPlugin(); v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap().get(result.get()) : v8::Handle<v8::Value>(); if (wrapper.IsEmpty()) { wrapper = toV8(result.get()); if (!wrapper.IsEmpty()) V8DOMWrapper::setNamedHiddenReference(info.Holder(), "enabledPlugin", wrapper); } return wrapper; }
static v8::Handle<v8::Value> dataTransferAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.MouseEvent.dataTransfer._get"); MouseEvent* imp = V8MouseEvent::toNative(info.Holder()); RefPtr<Clipboard> result = imp->dataTransfer(); v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap().get(result.get()) : v8::Handle<v8::Value>(); if (wrapper.IsEmpty()) { wrapper = toV8(result.get()); if (!wrapper.IsEmpty()) V8DOMWrapper::setNamedHiddenReference(info.Holder(), "dataTransfer", wrapper); } return wrapper; }
static v8::Handle<v8::Value> dataAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.ImageData.data._get"); ImageData* imp = V8ImageData::toNative(info.Holder()); RefPtr<CanvasPixelArray> result = imp->data(); v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap().get(result.get()) : v8::Handle<v8::Value>(); if (wrapper.IsEmpty()) { wrapper = toV8(result.get()); if (!wrapper.IsEmpty()) V8DOMWrapper::setHiddenReference(info.Holder(), wrapper); } return wrapper; }
static v8::Handle<v8::Value> sourceAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.IDBEvent.source._get"); IDBEvent* imp = V8IDBEvent::toNative(info.Holder()); RefPtr<IDBAny> result = imp->source(); v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap().get(result.get()) : v8::Handle<v8::Value>(); if (wrapper.IsEmpty()) { wrapper = toV8(result.get()); if (!wrapper.IsEmpty()) V8DOMWrapper::setHiddenReference(info.Holder(), wrapper); } return wrapper; }
static v8::Handle<v8::Value> filesAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.Clipboard.files._get"); Clipboard* imp = V8Clipboard::toNative(info.Holder()); RefPtr<FileList> result = imp->files(); v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap().get(result.get()) : v8::Handle<v8::Value>(); if (wrapper.IsEmpty()) { wrapper = toV8(result.get()); if (!wrapper.IsEmpty()) V8DOMWrapper::setHiddenReference(info.Holder(), wrapper); } return wrapper; }
static v8::Handle<v8::Value> navigatorAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.WorkerContext.navigator._get"); WorkerContext* imp = V8WorkerContext::toNative(info.Holder()); RefPtr<WorkerNavigator> result = imp->navigator(); v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap().get(result.get()) : v8::Handle<v8::Value>(); if (wrapper.IsEmpty()) { wrapper = toV8(result.get()); if (!wrapper.IsEmpty()) V8DOMWrapper::setHiddenReference(info.Holder(), wrapper); } return wrapper; }
static v8::Handle<v8::Value> parentRuleAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.CSSVariablesDeclaration.parentRule._get"); CSSVariablesDeclaration* imp = V8CSSVariablesDeclaration::toNative(info.Holder()); RefPtr<CSSRule> result = imp->parentRule(); v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap().get(result.get()) : v8::Handle<v8::Value>(); if (wrapper.IsEmpty()) { wrapper = toV8(result.get()); if (!wrapper.IsEmpty()) V8DOMWrapper::setHiddenReference(info.Holder(), wrapper); } return wrapper; }
static v8::Handle<v8::Value> memoryAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.Console.memory._get"); Console* imp = V8Console::toNative(info.Holder()); RefPtr<MemoryInfo> result = imp->memory(); v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap().get(result.get()) : v8::Handle<v8::Value>(); if (wrapper.IsEmpty()) { wrapper = toV8(result.get()); if (!wrapper.IsEmpty()) V8DOMWrapper::setHiddenReference(info.Holder(), wrapper); } return wrapper; }
static v8::Handle<v8::Value> delayTimeAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.DelayNode.delayTime._get"); DelayNode* imp = V8DelayNode::toNative(info.Holder()); RefPtr<AudioParam> result = imp->delayTime(); v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap().get(result.get()) : v8::Handle<v8::Value>(); if (wrapper.IsEmpty()) { wrapper = toV8(result.get()); if (!wrapper.IsEmpty()) V8DOMWrapper::setNamedHiddenReference(info.Holder(), "delayTime", wrapper); } return wrapper; }
static v8::Handle<v8::Value> mediaAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.StyleSheet.media._get"); StyleSheet* imp = V8StyleSheet::toNative(info.Holder()); RefPtr<MediaList> result = imp->media(); v8::Handle<v8::Value> wrapper = result.get() ? getDOMObjectMap().get(result.get()) : v8::Handle<v8::Value>(); if (wrapper.IsEmpty()) { wrapper = toV8(result.get()); if (!wrapper.IsEmpty()) V8DOMWrapper::setHiddenReference(info.Holder(), wrapper); } return wrapper; }
v8::Handle<v8::Value> toV8(Location* impl) { if (!impl) return v8::Null(); v8::Handle<v8::Object> wrapper = getDOMObjectMap().get(impl); if (wrapper.IsEmpty()) { wrapper = V8Location::wrap(impl); if (!wrapper.IsEmpty()) // 4.2 Merge BEGIN << V8DOMWrapper::setNamedHiddenWindowReference(impl->frame(), "location", wrapper); // 4.2 Merge END >> } return wrapper; }