1591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch/*
2591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    This file is part of the Blink open source project.
3591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    This file has been auto-generated by CodeGeneratorV8.pm. DO NOT MODIFY!
4591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
5591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    This library is free software; you can redistribute it and/or
6591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    modify it under the terms of the GNU Library General Public
7591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    License as published by the Free Software Foundation; either
8591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    version 2 of the License, or (at your option) any later version.
9591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
10591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    This library is distributed in the hope that it will be useful,
11591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    but WITHOUT ANY WARRANTY; without even the implied warranty of
12591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    Library General Public License for more details.
14591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
15591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    You should have received a copy of the GNU Library General Public License
16591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    along with this library; see the file COPYING.LIB.  If not, write to
17591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    Boston, MA 02111-1307, USA.
19591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch*/
20591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
21591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#ifndef V8TestExtendedEvent_h
22591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#define V8TestExtendedEvent_h
23591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
24591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#if ENABLE(TEST)
25591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "V8TestEvent.h"
26591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "bindings/bindings/tests/idls/Event.h"
27591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "bindings/v8/V8Binding.h"
28591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "bindings/v8/V8DOMWrapper.h"
29591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "bindings/v8/WrapperTypeInfo.h"
30591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
31591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochnamespace WebCore {
32591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
33f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles)class Dictionary;
34591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochclass V8TestExtendedEvent {
35591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochpublic:
36591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    static bool HasInstance(v8::Handle<v8::Value>, v8::Isolate*, WrapperWorldType);
37591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    static bool HasInstanceInAnyWorld(v8::Handle<v8::Value>, v8::Isolate*);
38591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    static v8::Handle<v8::FunctionTemplate> GetTemplate(v8::Isolate*, WrapperWorldType);
39591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    static Event* toNative(v8::Handle<v8::Object> object)
40591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    {
41e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch        return fromInternalPointer(object->GetAlignedPointerFromInternalField(v8DOMWrapperObjectIndex));
42591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    }
43591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    static void derefObject(void*);
44591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    static WrapperTypeInfo info;
45f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles)    static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&);
46591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0;
47e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    static inline void* toInternalPointer(Event* impl)
48e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    {
49e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch        return V8TestEvent::toInternalPointer(impl);
50e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    }
51e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch
52e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    static inline Event* fromInternalPointer(void* object)
53e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    {
54e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch        return static_cast<Event*>(V8TestEvent::fromInternalPointer(object));
55e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    }
56591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    static void installPerContextProperties(v8::Handle<v8::Object>, Event*, v8::Isolate*) { }
57591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    static void installPerContextPrototypeProperties(v8::Handle<v8::Object>, v8::Isolate*) { }
58591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochprivate:
59591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    friend v8::Handle<v8::Object> wrap(Event*, v8::Handle<v8::Object> creationContext, v8::Isolate*);
60591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    static v8::Handle<v8::Object> createWrapper(PassRefPtr<Event>, v8::Handle<v8::Object> creationContext, v8::Isolate*);
61591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch};
62591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
63591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochtemplate<>
64591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochclass WrapperTypeTraits<Event > {
65591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochpublic:
66591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    static WrapperTypeInfo* info() { return &V8TestExtendedEvent::info; }
67591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch};
68591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
69591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
70591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochinline v8::Handle<v8::Object> wrap(Event* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
71591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch{
72591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    ASSERT(impl);
73e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    ASSERT(DOMDataStore::getWrapper<V8TestExtendedEvent>(impl, isolate).IsEmpty());
74591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    return V8TestExtendedEvent::createWrapper(impl, creationContext, isolate);
75591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch}
76591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
77591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochinline v8::Handle<v8::Value> toV8(Event* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
78591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch{
79591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    if (UNLIKELY(!impl))
80591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch        return v8NullWithCheck(isolate);
81e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    v8::Handle<v8::Value> wrapper = DOMDataStore::getWrapper<V8TestExtendedEvent>(impl, isolate);
82591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    if (!wrapper.IsEmpty())
83591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch        return wrapper;
84591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    return wrap(impl, creationContext, isolate);
85591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch}
86591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
87591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochinline v8::Handle<v8::Value> toV8ForMainWorld(Event* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
88591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch{
89591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    ASSERT(worldType(isolate) == MainWorld);
90591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    if (UNLIKELY(!impl))
91fff8884795cb540f87cf6e6d67b629519b00eb8bBen Murdoch        return v8::Null(isolate);
92e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    v8::Handle<v8::Value> wrapper = DOMDataStore::getWrapperForMainWorld<V8TestExtendedEvent>(impl);
93591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    if (!wrapper.IsEmpty())
94591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch        return wrapper;
95591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    return wrap(impl, creationContext, isolate);
96591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch}
97591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
98e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdochtemplate<class CallbackInfo, class Wrappable>
99e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdochinline v8::Handle<v8::Value> toV8Fast(Event* impl, const CallbackInfo& callbackInfo, Wrappable* wrappable)
100591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch{
101591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    if (UNLIKELY(!impl))
102e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch        return v8::Null(callbackInfo.GetIsolate());
103e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    v8::Handle<v8::Object> wrapper = DOMDataStore::getWrapperFast<V8TestExtendedEvent>(impl, callbackInfo, wrappable);
104591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    if (!wrapper.IsEmpty())
105591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch        return wrapper;
106e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    return wrap(impl, callbackInfo.Holder(), callbackInfo.GetIsolate());
107591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch}
108591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
10983750176c3ee2cea66c8a9751271026a5901be3aBen Murdochinline v8::Handle<v8::Value> toV8ForMainWorld(PassRefPtr< Event > impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
110591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch{
11183750176c3ee2cea66c8a9751271026a5901be3aBen Murdoch    return toV8ForMainWorld(impl.get(), creationContext, isolate);
112591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch}
113591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
114591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
115e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdochtemplate<class CallbackInfo, class Wrappable>
116e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdochinline v8::Handle<v8::Value> toV8Fast(PassRefPtr< Event > impl, const CallbackInfo& callbackInfo, Wrappable* wrappable)
117591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch{
118e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    return toV8Fast(impl.get(), callbackInfo, wrappable);
119591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch}
120591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
121591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochinline v8::Handle<v8::Value> toV8(PassRefPtr< Event > impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
122591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch{
123591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch    return toV8(impl.get(), creationContext, isolate);
124591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch}
125591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
126f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles)bool fillEventInit(EventInit&, const Dictionary&);
127f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles)
128591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch}
129591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
130591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#endif // ENABLE(TEST)
131591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch
132591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#endif // V8TestExtendedEvent_h
133