1/*
2 *  Copyright (C) 1999 Harri Porten (porten@kde.org)
3 *  Copyright (C) 2004, 2006, 2007, 2008 Apple Inc. All rights reserved.
4 *
5 *  This library is free software; you can redistribute it and/or
6 *  modify it under the terms of the GNU Lesser General Public
7 *  License as published by the Free Software Foundation; either
8 *  version 2 of the License, or (at your option) any later version.
9 *
10 *  This library is distributed in the hope that it will be useful,
11 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 *  Lesser General Public License for more details.
14 *
15 *  You should have received a copy of the GNU Lesser General Public
16 *  License along with this library; if not, write to the Free Software
17 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18 */
19
20#ifndef JSImageConstructor_h
21#define JSImageConstructor_h
22
23#include "DOMConstructorWithDocument.h"
24#include "JSDOMBinding.h"
25#include "JSDocument.h"
26
27namespace WebCore {
28
29    class JSImageConstructor : public DOMConstructorWithDocument {
30    public:
31        typedef DOMConstructorWithDocument Base;
32
33        static JSImageConstructor* create(JSC::VM& vm, JSC::Structure* structure, JSDOMGlobalObject* globalObject)
34        {
35            JSImageConstructor* constructor = new (NotNull, JSC::allocateCell<JSImageConstructor>(vm.heap)) JSImageConstructor(structure, globalObject);
36            constructor->finishCreation(vm, globalObject);
37            return constructor;
38        }
39
40        static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
41        {
42            return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
43        }
44
45        DECLARE_INFO;
46
47    private:
48        JSImageConstructor(JSC::Structure*, JSDOMGlobalObject*);
49        void finishCreation(JSC::VM&, JSDOMGlobalObject*);
50        static JSC::ConstructType getConstructData(JSC::JSCell*, JSC::ConstructData&);
51    };
52
53} // namespace WebCore
54
55#endif // JSImageConstructor_h
56