9656f3c82379e7a774d0513f3db80ca1f1af510e
[WebKit-https.git] / Source / WebCore / bindings / js / JSDOMWrapper.h
1 /*
2  *  Copyright (C) 1999-2001 Harri Porten (porten@kde.org)
3  *  Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights reserved.
4  *  Copyright (C) 2007 Samuel Weinig <sam@webkit.org>
5  *  Copyright (C) 2009 Google, Inc. All rights reserved.
6  *
7  *  This library is free software; you can redistribute it and/or
8  *  modify it under the terms of the GNU Lesser General Public
9  *  License as published by the Free Software Foundation; either
10  *  version 2 of the License, or (at your option) any later version.
11  *
12  *  This library is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  *  Lesser General Public License for more details.
16  *
17  *  You should have received a copy of the GNU Lesser General Public
18  *  License along with this library; if not, write to the Free Software
19  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20  */
21
22 #ifndef JSDOMWrapper_h
23 #define JSDOMWrapper_h
24
25 #include "JSDOMGlobalObject.h"
26 #include <runtime/JSDestructibleObject.h>
27
28 namespace WebCore {
29
30 class ScriptExecutionContext;
31
32 static const uint8_t JSNodeType = JSC::LastJSCObjectType + 1;
33 static const uint8_t JSElementType = JSC::LastJSCObjectType + 2;
34
35 class JSDOMWrapper : public JSC::JSDestructibleObject {
36 public:
37     typedef JSC::JSDestructibleObject Base;
38
39     JSDOMGlobalObject* globalObject() const { return JSC::jsCast<JSDOMGlobalObject*>(JSC::JSNonFinalObject::globalObject()); }
40     ScriptExecutionContext* scriptExecutionContext() const { return globalObject()->scriptExecutionContext(); }
41
42 protected:
43     JSDOMWrapper(JSC::Structure* structure, JSC::JSGlobalObject* globalObject) 
44         : JSDestructibleObject(globalObject->vm(), structure)
45     {
46         ASSERT(scriptExecutionContext());
47     }
48 };
49
50 } // namespace WebCore
51
52 #endif // JSDOMWrapper_h