/*
    This file is part of the WebKit open source project.
    This file has been generated by generate-bindings.pl. DO NOT MODIFY!

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public
    License as published by the Free Software Foundation; either
    version 2 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Library General Public License for more details.

    You should have received a copy of the GNU Library General Public License
    along with this library; see the file COPYING.LIB.  If not, write to
    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    Boston, MA 02110-1301, USA.
*/

#include "config.h"

#if ENABLE(SVG)

#include "JSSVGElementInstance.h"

#include "EventListener.h"
#include "JSEventListener.h"
#include "JSSVGElement.h"
#include "JSSVGElementInstance.h"
#include "JSSVGElementInstanceList.h"
#include "JSSVGUseElement.h"
#include "SVGElement.h"
#include "SVGElementInstance.h"
#include "SVGElementInstanceList.h"
#include "SVGUseElement.h"
#include <wtf/GetPtr.h>

using namespace JSC;

namespace WebCore {

/* Hash table */

static const HashTableValue JSSVGElementInstanceTableValues[] =
{
    { "correspondingElement", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceCorrespondingElement), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
    { "correspondingUseElement", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceCorrespondingUseElement), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
    { "parentNode", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceParentNode), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
    { "childNodes", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceChildNodes), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
    { "firstChild", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceFirstChild), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
    { "lastChild", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceLastChild), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
    { "previousSibling", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstancePreviousSibling), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
    { "nextSibling", DontDelete | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceNextSibling), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
    { "onabort", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnabort), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnabort) },
    { "onblur", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnblur), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnblur) },
    { "onchange", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnchange), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnchange) },
    { "onclick", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnclick), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnclick) },
    { "oncontextmenu", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOncontextmenu), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOncontextmenu) },
    { "ondblclick", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOndblclick), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOndblclick) },
    { "onerror", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnerror), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnerror) },
    { "onfocus", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnfocus), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnfocus) },
    { "oninput", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOninput), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOninput) },
    { "onkeydown", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnkeydown), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnkeydown) },
    { "onkeypress", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnkeypress), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnkeypress) },
    { "onkeyup", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnkeyup), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnkeyup) },
    { "onload", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnload), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnload) },
    { "onmousedown", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnmousedown), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnmousedown) },
    { "onmouseenter", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnmouseenter), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnmouseenter) },
    { "onmouseleave", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnmouseleave), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnmouseleave) },
    { "onmousemove", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnmousemove), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnmousemove) },
    { "onmouseout", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnmouseout), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnmouseout) },
    { "onmouseover", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnmouseover), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnmouseover) },
    { "onmouseup", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnmouseup), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnmouseup) },
    { "onmousewheel", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnmousewheel), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnmousewheel) },
    { "onwheel", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnwheel), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnwheel) },
    { "onbeforecut", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnbeforecut), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnbeforecut) },
    { "oncut", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOncut), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOncut) },
    { "onbeforecopy", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnbeforecopy), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnbeforecopy) },
    { "oncopy", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOncopy), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOncopy) },
    { "onbeforepaste", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnbeforepaste), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnbeforepaste) },
    { "onpaste", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnpaste), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnpaste) },
    { "ondragenter", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOndragenter), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOndragenter) },
    { "ondragover", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOndragover), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOndragover) },
    { "ondragleave", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOndragleave), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOndragleave) },
    { "ondrop", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOndrop), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOndrop) },
    { "ondragstart", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOndragstart), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOndragstart) },
    { "ondrag", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOndrag), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOndrag) },
    { "ondragend", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOndragend), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOndragend) },
    { "onreset", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnreset), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnreset) },
    { "onresize", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnresize), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnresize) },
    { "onscroll", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnscroll), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnscroll) },
    { "onsearch", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnsearch), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnsearch) },
    { "onselect", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnselect), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnselect) },
    { "onselectstart", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnselectstart), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnselectstart) },
    { "onsubmit", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnsubmit), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnsubmit) },
    { "onunload", DontDelete | DontEnum, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceOnunload), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGElementInstanceOnunload) },
    { "constructor", DontEnum | ReadOnly, NoIntrinsic, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGElementInstanceConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) },
    { 0, 0, NoIntrinsic, 0, 0 }
};

static const HashTable JSSVGElementInstanceTable = { 139, 127, true, JSSVGElementInstanceTableValues, 0 };
/* Hash table for constructor */

static const HashTableValue JSSVGElementInstanceConstructorTableValues[] =
{
    { 0, 0, NoIntrinsic, 0, 0 }
};

static const HashTable JSSVGElementInstanceConstructorTable = { 1, 0, false, JSSVGElementInstanceConstructorTableValues, 0 };
const ClassInfo JSSVGElementInstanceConstructor::s_info = { "SVGElementInstanceConstructor", &Base::s_info, &JSSVGElementInstanceConstructorTable, 0, CREATE_METHOD_TABLE(JSSVGElementInstanceConstructor) };

JSSVGElementInstanceConstructor::JSSVGElementInstanceConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    : DOMConstructorObject(structure, globalObject)
{
}

void JSSVGElementInstanceConstructor::finishCreation(VM& vm, JSDOMGlobalObject* globalObject)
{
    Base::finishCreation(vm);
    ASSERT(inherits(info()));
    putDirect(vm, vm.propertyNames->prototype, JSSVGElementInstancePrototype::self(vm, globalObject), DontDelete | ReadOnly);
    putDirect(vm, vm.propertyNames->length, jsNumber(0), ReadOnly | DontDelete | DontEnum);
}

bool JSSVGElementInstanceConstructor::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
{
    return getStaticValueSlot<JSSVGElementInstanceConstructor, JSDOMWrapper>(exec, JSSVGElementInstanceConstructorTable, jsCast<JSSVGElementInstanceConstructor*>(object), propertyName, slot);
}

/* Hash table for prototype */

static const HashTableValue JSSVGElementInstancePrototypeTableValues[] =
{
    { 0, 0, NoIntrinsic, 0, 0 }
};

static const HashTable JSSVGElementInstancePrototypeTable = { 1, 0, false, JSSVGElementInstancePrototypeTableValues, 0 };
const ClassInfo JSSVGElementInstancePrototype::s_info = { "SVGElementInstancePrototype", &Base::s_info, &JSSVGElementInstancePrototypeTable, 0, CREATE_METHOD_TABLE(JSSVGElementInstancePrototype) };

JSObject* JSSVGElementInstancePrototype::self(VM& vm, JSGlobalObject* globalObject)
{
    return getDOMPrototype<JSSVGElementInstance>(vm, globalObject);
}

const ClassInfo JSSVGElementInstance::s_info = { "SVGElementInstance", &Base::s_info, &JSSVGElementInstanceTable, 0 , CREATE_METHOD_TABLE(JSSVGElementInstance) };

JSSVGElementInstance::JSSVGElementInstance(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<SVGElementInstance> impl)
    : JSEventTarget(structure, globalObject, impl)
{
}

void JSSVGElementInstance::finishCreation(VM& vm)
{
    Base::finishCreation(vm);
    ASSERT(inherits(info()));
}

JSObject* JSSVGElementInstance::createPrototype(VM& vm, JSGlobalObject* globalObject)
{
    return JSSVGElementInstancePrototype::create(vm, globalObject, JSSVGElementInstancePrototype::createStructure(vm, globalObject, JSEventTargetPrototype::self(vm, globalObject)));
}

bool JSSVGElementInstance::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
{
    JSSVGElementInstance* thisObject = jsCast<JSSVGElementInstance*>(object);
    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
    return getStaticValueSlot<JSSVGElementInstance, Base>(exec, JSSVGElementInstanceTable, thisObject, propertyName, slot);
}

EncodedJSValue jsSVGElementInstanceCorrespondingElement(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl.correspondingElement()));
    return JSValue::encode(result);
}


EncodedJSValue jsSVGElementInstanceCorrespondingUseElement(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl.correspondingUseElement()));
    return JSValue::encode(result);
}


EncodedJSValue jsSVGElementInstanceParentNode(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl.parentNode()));
    return JSValue::encode(result);
}


EncodedJSValue jsSVGElementInstanceChildNodes(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl.childNodes()));
    return JSValue::encode(result);
}


EncodedJSValue jsSVGElementInstanceFirstChild(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl.firstChild()));
    return JSValue::encode(result);
}


EncodedJSValue jsSVGElementInstanceLastChild(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl.lastChild()));
    return JSValue::encode(result);
}


EncodedJSValue jsSVGElementInstancePreviousSibling(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl.previousSibling()));
    return JSValue::encode(result);
}


EncodedJSValue jsSVGElementInstanceNextSibling(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl.nextSibling()));
    return JSValue::encode(result);
}


EncodedJSValue jsSVGElementInstanceOnabort(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onabort()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnblur(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onblur()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnchange(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onchange()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnclick(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onclick()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOncontextmenu(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.oncontextmenu()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOndblclick(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.ondblclick()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnerror(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onerror()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnfocus(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onfocus()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOninput(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.oninput()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnkeydown(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onkeydown()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnkeypress(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onkeypress()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnkeyup(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onkeyup()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnload(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onload()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnmousedown(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onmousedown()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnmouseenter(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onmouseenter()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnmouseleave(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onmouseleave()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnmousemove(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onmousemove()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnmouseout(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onmouseout()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnmouseover(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onmouseover()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnmouseup(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onmouseup()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnmousewheel(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onmousewheel()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnwheel(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onwheel()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnbeforecut(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onbeforecut()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOncut(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.oncut()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnbeforecopy(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onbeforecopy()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOncopy(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.oncopy()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnbeforepaste(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onbeforepaste()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnpaste(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onpaste()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOndragenter(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.ondragenter()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOndragover(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.ondragover()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOndragleave(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.ondragleave()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOndrop(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.ondrop()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOndragstart(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.ondragstart()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOndrag(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.ondrag()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOndragend(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.ondragend()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnreset(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onreset()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnresize(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onresize()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnscroll(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onscroll()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnsearch(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onsearch()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnselect(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onselect()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnselectstart(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onselectstart()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnsubmit(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onsubmit()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceOnunload(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue thisValue, PropertyName)
{
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    UNUSED_PARAM(slotBase);
    if (!castedThis)
        return throwVMTypeError(exec);
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    if (EventListener* listener = impl.onunload()) {
        if (const JSEventListener* jsListener = JSEventListener::cast(listener)) {
            if (JSObject* jsFunction = jsListener->jsFunction(impl.scriptExecutionContext()))
                return JSValue::encode(jsFunction);
        }
    }
    return JSValue::encode(jsNull());
}


EncodedJSValue jsSVGElementInstanceConstructor(ExecState* exec, EncodedJSValue thisValue, EncodedJSValue, PropertyName)
{
    JSSVGElementInstance* domObject = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!domObject)
        return throwVMTypeError(exec);
    if (!domObject)
        return throwVMTypeError(exec);
    return JSValue::encode(JSSVGElementInstance::getConstructor(exec->vm(), domObject->globalObject()));
}

void setJSSVGElementInstanceOnabort(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnabort(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnblur(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnblur(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnchange(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnchange(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnclick(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnclick(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOncontextmenu(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOncontextmenu(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOndblclick(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOndblclick(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnerror(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnerror(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnfocus(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnfocus(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOninput(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOninput(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnkeydown(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnkeydown(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnkeypress(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnkeypress(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnkeyup(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnkeyup(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnload(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnload(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnmousedown(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnmousedown(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnmouseenter(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnmouseenter(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnmouseleave(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnmouseleave(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnmousemove(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnmousemove(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnmouseout(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnmouseout(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnmouseover(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnmouseover(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnmouseup(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnmouseup(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnmousewheel(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnmousewheel(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnwheel(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnwheel(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnbeforecut(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnbeforecut(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOncut(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOncut(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnbeforecopy(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnbeforecopy(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOncopy(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOncopy(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnbeforepaste(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnbeforepaste(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnpaste(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnpaste(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOndragenter(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOndragenter(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOndragover(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOndragover(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOndragleave(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOndragleave(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOndrop(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOndrop(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOndragstart(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOndragstart(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOndrag(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOndrag(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOndragend(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOndragend(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnreset(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnreset(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnresize(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnresize(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnscroll(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnscroll(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnsearch(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnsearch(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnselect(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnselect(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnselectstart(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnselectstart(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnsubmit(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnsubmit(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


void setJSSVGElementInstanceOnunload(ExecState* exec, JSObject* /* baseObject */, EncodedJSValue thisValue, EncodedJSValue encodedValue)
{
    JSValue value = JSValue::decode(encodedValue);
    UNUSED_PARAM(exec);
    JSSVGElementInstance* castedThis = jsDynamicCast<JSSVGElementInstance*>(JSValue::decode(thisValue));
    if (!castedThis) {
        throwVMTypeError(exec);
        return;
    }
    UNUSED_PARAM(exec);
    SVGElementInstance& impl = castedThis->impl();
    JSValue correspondingElementWrapper = toJS(exec, castedThis->globalObject(), impl.correspondingElement());
    if (correspondingElementWrapper.isObject())
        impl.setOnunload(createJSAttributeEventListener(exec, value, asObject(correspondingElementWrapper)));
}


JSValue JSSVGElementInstance::getConstructor(VM& vm, JSGlobalObject* globalObject)
{
    return getDOMConstructor<JSSVGElementInstanceConstructor>(vm, jsCast<JSDOMGlobalObject*>(globalObject));
}

#if ENABLE(BINDING_INTEGRITY)
#if PLATFORM(WIN)
#pragma warning(disable: 4483)
extern "C" { extern void (*const __identifier("??_7SVGElementInstance@WebCore@@6B@")[])(); }
#else
extern "C" { extern void* _ZTVN7WebCore18SVGElementInstanceE[]; }
#endif
#endif
JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, SVGElementInstance* impl)
{
    if (!impl)
        return jsNull();
    if (JSValue result = getExistingWrapper<JSSVGElementInstance>(exec, impl))
        return result;

#if ENABLE(BINDING_INTEGRITY)
    void* actualVTablePointer = *(reinterpret_cast<void**>(impl));
#if PLATFORM(WIN)
    void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7SVGElementInstance@WebCore@@6B@"));
#else
    void* expectedVTablePointer = &_ZTVN7WebCore18SVGElementInstanceE[2];
#if COMPILER(CLANG)
    // If this fails SVGElementInstance does not have a vtable, so you need to add the
    // ImplementationLacksVTable attribute to the interface definition
    COMPILE_ASSERT(__is_polymorphic(SVGElementInstance), SVGElementInstance_is_not_polymorphic);
#endif
#endif
    // If you hit this assertion you either have a use after free bug, or
    // SVGElementInstance has subclasses. If SVGElementInstance has subclasses that get passed
    // to toJS() we currently require SVGElementInstance you to opt out of binding hardening
    // by adding the SkipVTableValidation attribute to the interface IDL definition
    RELEASE_ASSERT(actualVTablePointer == expectedVTablePointer);
#endif
    ReportMemoryCost<SVGElementInstance>::reportMemoryCost(exec, impl);
    return createNewWrapper<JSSVGElementInstance>(exec, globalObject, impl);
}

SVGElementInstance* toSVGElementInstance(JSC::JSValue value)
{
    return value.inherits(JSSVGElementInstance::info()) ? &jsCast<JSSVGElementInstance*>(value)->impl() : 0;
}

}

#endif // ENABLE(SVG)
