121939df44de1705786c545cd1bf519d47250322dBen Murdoch/*
221939df44de1705786c545cd1bf519d47250322dBen Murdoch    This file is part of the WebKit open source project.
321939df44de1705786c545cd1bf519d47250322dBen Murdoch    This file has been generated by generate-bindings.pl. DO NOT MODIFY!
421939df44de1705786c545cd1bf519d47250322dBen Murdoch
521939df44de1705786c545cd1bf519d47250322dBen Murdoch    This library is free software; you can redistribute it and/or
621939df44de1705786c545cd1bf519d47250322dBen Murdoch    modify it under the terms of the GNU Library General Public
721939df44de1705786c545cd1bf519d47250322dBen Murdoch    License as published by the Free Software Foundation; either
821939df44de1705786c545cd1bf519d47250322dBen Murdoch    version 2 of the License, or (at your option) any later version.
921939df44de1705786c545cd1bf519d47250322dBen Murdoch
1021939df44de1705786c545cd1bf519d47250322dBen Murdoch    This library is distributed in the hope that it will be useful,
1121939df44de1705786c545cd1bf519d47250322dBen Murdoch    but WITHOUT ANY WARRANTY; without even the implied warranty of
1221939df44de1705786c545cd1bf519d47250322dBen Murdoch    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1321939df44de1705786c545cd1bf519d47250322dBen Murdoch    Library General Public License for more details.
1421939df44de1705786c545cd1bf519d47250322dBen Murdoch
1521939df44de1705786c545cd1bf519d47250322dBen Murdoch    You should have received a copy of the GNU Library General Public License
1621939df44de1705786c545cd1bf519d47250322dBen Murdoch    along with this library; see the file COPYING.LIB.  If not, write to
1721939df44de1705786c545cd1bf519d47250322dBen Murdoch    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
1821939df44de1705786c545cd1bf519d47250322dBen Murdoch    Boston, MA 02110-1301, USA.
1921939df44de1705786c545cd1bf519d47250322dBen Murdoch*/
2021939df44de1705786c545cd1bf519d47250322dBen Murdoch
2121939df44de1705786c545cd1bf519d47250322dBen Murdoch#ifndef JSTestInterface_h
2221939df44de1705786c545cd1bf519d47250322dBen Murdoch#define JSTestInterface_h
2321939df44de1705786c545cd1bf519d47250322dBen Murdoch
2406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#if ENABLE(Condition1) || ENABLE(Condition2)
2506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
2621939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "JSDOMBinding.h"
2721939df44de1705786c545cd1bf519d47250322dBen Murdoch#include <runtime/JSGlobalObject.h>
285af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke#include <runtime/JSObjectWithGlobalObject.h>
2921939df44de1705786c545cd1bf519d47250322dBen Murdoch#include <runtime/ObjectPrototype.h>
3021939df44de1705786c545cd1bf519d47250322dBen Murdoch
3121939df44de1705786c545cd1bf519d47250322dBen Murdochnamespace WebCore {
3221939df44de1705786c545cd1bf519d47250322dBen Murdoch
3321939df44de1705786c545cd1bf519d47250322dBen Murdochclass TestInterface;
3421939df44de1705786c545cd1bf519d47250322dBen Murdoch
3521939df44de1705786c545cd1bf519d47250322dBen Murdochclass JSTestInterface : public DOMObjectWithGlobalPointer {
3621939df44de1705786c545cd1bf519d47250322dBen Murdoch    typedef DOMObjectWithGlobalPointer Base;
3721939df44de1705786c545cd1bf519d47250322dBen Murdochpublic:
3821939df44de1705786c545cd1bf519d47250322dBen Murdoch    JSTestInterface(NonNullPassRefPtr<JSC::Structure>, JSDOMGlobalObject*, PassRefPtr<TestInterface>);
3921939df44de1705786c545cd1bf519d47250322dBen Murdoch    static JSC::JSObject* createPrototype(JSC::ExecState*, JSC::JSGlobalObject*);
4021939df44de1705786c545cd1bf519d47250322dBen Murdoch    virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
4121939df44de1705786c545cd1bf519d47250322dBen Murdoch    virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertyDescriptor&);
4221939df44de1705786c545cd1bf519d47250322dBen Murdoch    static const JSC::ClassInfo s_info;
4321939df44de1705786c545cd1bf519d47250322dBen Murdoch
442bde8e466a4451c7319e3a072d118917957d6554Steve Block    static PassRefPtr<JSC::Structure> createStructure(JSC::JSGlobalData& globalData, JSC::JSValue prototype)
4521939df44de1705786c545cd1bf519d47250322dBen Murdoch    {
462bde8e466a4451c7319e3a072d118917957d6554Steve Block        return JSC::Structure::create(globalData, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount, &s_info);
4721939df44de1705786c545cd1bf519d47250322dBen Murdoch    }
4821939df44de1705786c545cd1bf519d47250322dBen Murdoch
4921939df44de1705786c545cd1bf519d47250322dBen Murdoch    static JSC::JSValue getConstructor(JSC::ExecState*, JSC::JSGlobalObject*);
5021939df44de1705786c545cd1bf519d47250322dBen Murdoch    TestInterface* impl() const { return m_impl.get(); }
5121939df44de1705786c545cd1bf519d47250322dBen Murdoch
5221939df44de1705786c545cd1bf519d47250322dBen Murdochprivate:
5321939df44de1705786c545cd1bf519d47250322dBen Murdoch    RefPtr<TestInterface> m_impl;
5421939df44de1705786c545cd1bf519d47250322dBen Murdochprotected:
5521939df44de1705786c545cd1bf519d47250322dBen Murdoch    static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
5621939df44de1705786c545cd1bf519d47250322dBen Murdoch};
5721939df44de1705786c545cd1bf519d47250322dBen Murdoch
5821939df44de1705786c545cd1bf519d47250322dBen MurdochJSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestInterface*);
5921939df44de1705786c545cd1bf519d47250322dBen MurdochTestInterface* toTestInterface(JSC::JSValue);
6021939df44de1705786c545cd1bf519d47250322dBen Murdoch
615af96e2c7b73ebc627c6894727826a7576d31758Leon Clarkeclass JSTestInterfacePrototype : public JSC::JSObjectWithGlobalObject {
625af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke    typedef JSC::JSObjectWithGlobalObject Base;
6321939df44de1705786c545cd1bf519d47250322dBen Murdochpublic:
6421939df44de1705786c545cd1bf519d47250322dBen Murdoch    static JSC::JSObject* self(JSC::ExecState*, JSC::JSGlobalObject*);
6521939df44de1705786c545cd1bf519d47250322dBen Murdoch    static const JSC::ClassInfo s_info;
662bde8e466a4451c7319e3a072d118917957d6554Steve Block    static PassRefPtr<JSC::Structure> createStructure(JSC::JSGlobalData& globalData, JSC::JSValue prototype)
6721939df44de1705786c545cd1bf519d47250322dBen Murdoch    {
682bde8e466a4451c7319e3a072d118917957d6554Steve Block        return JSC::Structure::create(globalData, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount, &s_info);
6921939df44de1705786c545cd1bf519d47250322dBen Murdoch    }
705af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke    JSTestInterfacePrototype(JSC::JSGlobalObject* globalObject, NonNullPassRefPtr<JSC::Structure> structure) : JSC::JSObjectWithGlobalObject(globalObject, structure) { }
7121939df44de1705786c545cd1bf519d47250322dBen Murdochprotected:
7221939df44de1705786c545cd1bf519d47250322dBen Murdoch    static const unsigned StructureFlags = Base::StructureFlags;
7321939df44de1705786c545cd1bf519d47250322dBen Murdoch};
7421939df44de1705786c545cd1bf519d47250322dBen Murdoch
7521939df44de1705786c545cd1bf519d47250322dBen Murdoch// Attributes
7621939df44de1705786c545cd1bf519d47250322dBen Murdoch
7721939df44de1705786c545cd1bf519d47250322dBen MurdochJSC::JSValue jsTestInterfaceConstructor(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&);
7821939df44de1705786c545cd1bf519d47250322dBen Murdoch
7921939df44de1705786c545cd1bf519d47250322dBen Murdoch} // namespace WebCore
8021939df44de1705786c545cd1bf519d47250322dBen Murdoch
8106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif // ENABLE(Condition1) || ENABLE(Condition2)
8206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
8321939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif
84