void JSSVGScriptElement::putValueProperty(ExecState* exec, int token, JSValue* value, int /*attr*/) { switch (token) { case TypeAttrNum: { SVGScriptElement* imp = static_cast<SVGScriptElement*>(impl()); imp->setType(valueToStringWithNullCheck(exec, value)); break; } } }
JSValue* JSSVGScriptElement::getValueProperty(ExecState* exec, int token) const { switch (token) { case TypeAttrNum: { SVGScriptElement* imp = static_cast<SVGScriptElement*>(impl()); return jsString(imp->type()); } case HrefAttrNum: { SVGScriptElement* imp = static_cast<SVGScriptElement*>(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()); } case ExternalResourcesRequiredAttrNum: { SVGScriptElement* imp = static_cast<SVGScriptElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedBoolean> obj = imp->externalResourcesRequiredAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedBoolean>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedBoolean>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedBoolean>(obj.get(), imp); } } return toJS(exec, obj.get()); } } return 0; }
void setJSSVGScriptElementType(ExecState* exec, JSObject* thisObject, JSValue value) { SVGScriptElement* imp = static_cast<SVGScriptElement*>(static_cast<JSSVGScriptElement*>(thisObject)->impl()); imp->setType(valueToStringWithNullCheck(exec, value)); }