v8::Handle<v8::Object> V8SVGZoomEvent::wrap(SVGZoomEvent* impl) { v8::Handle<v8::Object> wrapper; V8Proxy* proxy = 0; wrapper = getDOMSVGObjectWithContextMap().get(impl); if (!wrapper.IsEmpty()) return wrapper; wrapper = V8DOMWrapper::instantiateV8Object(proxy, &info, impl); if (wrapper.IsEmpty()) return wrapper; impl->ref(); getDOMSVGObjectWithContextMap().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()); }