18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met:
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1.  Redistributions of source code must retain the above copyright
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     notice, this list of conditions and the following disclaimer.
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2.  Redistributions in binary form must reproduce the above copyright
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     notice, this list of conditions and the following disclaimer in the
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     documentation and/or other materials provided with the distribution.
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     its contributors may be used to endorse or promote products derived
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     from this software without specific prior written permission.
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "config.h"
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSEvent.h"
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "Clipboard.h"
33643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "CompositionEvent.h"
34dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "CustomEvent.h"
35dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "DeviceMotionEvent.h"
36e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block#include "DeviceOrientationEvent.h"
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "Event.h"
38cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block#include "JSBeforeLoadEvent.h"
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSClipboard.h"
40dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "JSCustomEvent.h"
41643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "JSCompositionEvent.h"
42dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "JSDeviceMotionEvent.h"
43e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block#include "JSDeviceOrientationEvent.h"
440bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#include "JSErrorEvent.h"
4568513a70bcd92384395513322f1b801e7bf9c729Steve Block#include "JSHashChangeEvent.h"
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSKeyboardEvent.h"
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSMessageEvent.h"
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSMouseEvent.h"
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSMutationEvent.h"
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSOverflowEvent.h"
51231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "JSPageTransitionEvent.h"
52643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "JSPopStateEvent.h"
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSProgressEvent.h"
544576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#include "JSSpeechInputEvent.h"
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSTextEvent.h"
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSUIEvent.h"
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSWebKitAnimationEvent.h"
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSWebKitTransitionEvent.h"
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSWheelEvent.h"
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSXMLHttpRequestProgressEvent.h"
61cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block#include "BeforeLoadEvent.h"
620bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#include "ErrorEvent.h"
6368513a70bcd92384395513322f1b801e7bf9c729Steve Block#include "HashChangeEvent.h"
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "KeyboardEvent.h"
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "MessageEvent.h"
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "MouseEvent.h"
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "MutationEvent.h"
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "OverflowEvent.h"
69231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "PageTransitionEvent.h"
70643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "PopStateEvent.h"
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "ProgressEvent.h"
724576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#include "SpeechInputEvent.h"
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "TextEvent.h"
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "UIEvent.h"
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "WebKitAnimationEvent.h"
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "WebKitTransitionEvent.h"
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "WheelEvent.h"
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "XMLHttpRequestProgressEvent.h"
798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <runtime/JSLock.h>
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(DOM_STORAGE)
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSStorageEvent.h"
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StorageEvent.h"
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(SVG)
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSSVGZoomEvent.h"
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "SVGZoomEvent.h"
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
91f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#if ENABLE(TOUCH_EVENTS)
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSTouchEvent.h"
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "TouchEvent.h"
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
965af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke#if ENABLE(INDEXED_DATABASE)
9781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include "IDBVersionChangeEvent.h"
9881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include "JSIDBVersionChangeEvent.h"
995af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke#endif
1005af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke
1016b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#if ENABLE(WEB_AUDIO)
1026b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#include "AudioProcessingEvent.h"
1036b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#include "JSAudioProcessingEvent.h"
1042daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#include "JSOfflineAudioCompletionEvent.h"
1052daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#include "OfflineAudioCompletionEvent.h"
1066b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#endif
1076b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectusing namespace JSC;
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore {
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1125f1ab04193ad0130ca8204aadaceae083aca9881Feng QianJSValue JSEvent::clipboardData(ExecState* exec) const
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1140bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    return impl()->isClipboardEvent() ? toJS(exec, globalObject(), impl()->clipboardData()) : jsUndefined();
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben MurdochJSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, Event* event)
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1190bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    JSLock lock(SilenceAssertionsOnly);
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    if (!event)
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        return jsNull();
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1242daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    JSDOMWrapper* wrapper = getCachedWrapper(currentWorld(exec), event);
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    if (wrapper)
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        return wrapper;
1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    if (event->isUIEvent()) {
1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        if (event->isKeyboardEvent())
1300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch            wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, KeyboardEvent, event);
1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        else if (event->isTextEvent())
1320bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch            wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, TextEvent, event);
1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        else if (event->isMouseEvent())
1340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch            wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, MouseEvent, event);
1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        else if (event->isWheelEvent())
1360bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch            wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, WheelEvent, event);
1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(SVG)
1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        else if (event->isSVGZoomEvent())
1390bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch            wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGZoomEvent, event);
1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
141aad6f24e036b3740071bb995b955b18b572067b2Steve Block        else if (event->isCompositionEvent())
142aad6f24e036b3740071bb995b955b18b572067b2Steve Block            wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CompositionEvent, event);
143f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#if ENABLE(TOUCH_EVENTS)
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        else if (event->isTouchEvent())
14572f4ed34e756eaa90b94b74b7a6f43ec33310822Andrei Popescu            wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, TouchEvent, event);
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        else
1480bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch            wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, UIEvent, event);
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    } else if (event->isMutationEvent())
1500bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, MutationEvent, event);
1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    else if (event->isOverflowEvent())
1520bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, OverflowEvent, event);
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    else if (event->isMessageEvent())
1540bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, MessageEvent, event);
155231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    else if (event->isPageTransitionEvent())
156231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, PageTransitionEvent, event);
1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    else if (event->isProgressEvent()) {
1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        if (event->isXMLHttpRequestProgressEvent())
1590bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch            wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, XMLHttpRequestProgressEvent, event);
1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        else
1610bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch            wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, ProgressEvent, event);
162cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block    } else if (event->isBeforeLoadEvent())
163cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, BeforeLoadEvent, event);
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(DOM_STORAGE)
1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    else if (event->isStorageEvent())
1660bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, StorageEvent, event);
1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
1686c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#if ENABLE(INDEXED_DATABASE)
16981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    else if (event->isIDBVersionChangeEvent())
17081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, IDBVersionChangeEvent, event);
1716c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#endif
1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    else if (event->isWebKitAnimationEvent())
1730bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, WebKitAnimationEvent, event);
1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    else if (event->isWebKitTransitionEvent())
1750bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, WebKitTransitionEvent, event);
1760bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#if ENABLE(WORKERS)
1770bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    else if (event->isErrorEvent())
1780bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, ErrorEvent, event);
1790bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#endif
18068513a70bcd92384395513322f1b801e7bf9c729Steve Block    else if (event->isHashChangeEvent())
18168513a70bcd92384395513322f1b801e7bf9c729Steve Block        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, HashChangeEvent, event);
182643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    else if (event->isPopStateEvent())
183643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, PopStateEvent, event);
184dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    else if (event->isCustomEvent())
185dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CustomEvent, event);
186e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block#if ENABLE(DEVICE_ORIENTATION)
187dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    else if (event->isDeviceMotionEvent())
188dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, DeviceMotionEvent, event);
189e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block    else if (event->isDeviceOrientationEvent())
190e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, DeviceOrientationEvent, event);
191e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block#endif
1926b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#if ENABLE(WEB_AUDIO)
1936b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner    else if (event->isAudioProcessingEvent())
1946b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, AudioProcessingEvent, event);
1952daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    else if (event->isOfflineAudioCompletionEvent())
1962daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, OfflineAudioCompletionEvent, event);
1976b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#endif
1984576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#if ENABLE(INPUT_SPEECH)
1994576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang    else if (event->isSpeechInputEvent())
2004576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SpeechInputEvent, event);
2014576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#endif
2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    else
2030bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, Event, event);
2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return wrapper;
2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore
209