a14c681d5902dda315bd916b77467dd6424557a3
[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
34 class JSDOMWrapper : public JSC::JSDestructibleObject {
35 public:
36     typedef JSC::JSDestructibleObject Base;
37
38     JSDOMGlobalObject* globalObject() const { return JSC::jsCast<JSDOMGlobalObject*>(JSC::JSNonFinalObject::globalObject()); }
39     ScriptExecutionContext* scriptExecutionContext() const { return globalObject()->scriptExecutionContext(); }
40
41 protected:
42     JSDOMWrapper(JSC::Structure* structure, JSC::JSGlobalObject* globalObject) 
43         : JSDestructibleObject(globalObject->vm(), structure)
44     {
45         ASSERT(scriptExecutionContext());
46     }
47 };
48
49 } // namespace WebCore
50
51 #endif // JSDOMWrapper_h