JSValue* JSSVGTRefElement::getValueProperty(ExecState* exec, int token) const { switch (token) { case HrefAttrNum: { SVGTRefElement* imp = static_cast<SVGTRefElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedString> obj = imp->hrefAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedString>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedString>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedString>(obj.get(), imp); } } return toJS(exec, obj.get()); } } return 0; }
void TargetListener::handleEvent(ScriptExecutionContext*, Event* event) { if (m_trefElement && event->type() == eventNames().DOMSubtreeModifiedEvent && m_trefElement != event->target()) m_trefElement->updateReferencedText(); if (m_trefElement && event->type() == eventNames().DOMNodeRemovedFromDocumentEvent) m_trefElement->detachTarget(); }
static v8::Handle<v8::Value> hrefAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.SVGTRefElement.href._get"); SVGTRefElement* imp = V8SVGTRefElement::toNative(info.Holder()); SVGElement* context = imp; PassRefPtr<SVGAnimatedString> resultAsPassRefPtr = V8Proxy::withSVGContext(imp->hrefAnimated(), context); return toV8(resultAsPassRefPtr); }
JSValue jsSVGTRefElementHref(ExecState* exec, JSValue slotBase, const Identifier&) { JSSVGTRefElement* castedThis = static_cast<JSSVGTRefElement*>(asObject(slotBase)); UNUSED_PARAM(exec); SVGTRefElement* imp = static_cast<SVGTRefElement*>(castedThis->impl()); RefPtr<SVGAnimatedString> obj = imp->hrefAnimated(); JSValue result = toJS(exec, castedThis->globalObject(), obj.get()); return result; }
void SubtreeModificationEventListener::handleEvent(ScriptExecutionContext*, Event* event) { if (m_trefElement && event->type() == eventNames().DOMSubtreeModifiedEvent && m_trefElement != event->target()) m_trefElement->updateReferencedText(); }
static v8::Handle<v8::Value> hrefAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.SVGTRefElement.href._get"); SVGTRefElement* imp = V8SVGTRefElement::toNative(info.Holder()); return toV8(imp->hrefAnimated()); }