summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/js
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bindings/js')
-rw-r--r--WebCore/bindings/js/CachedScriptSourceProvider.h70
-rw-r--r--WebCore/bindings/js/DOMObjectHashTableMap.cpp37
-rw-r--r--WebCore/bindings/js/DOMObjectHashTableMap.h60
-rw-r--r--WebCore/bindings/js/DOMWrapperWorld.cpp85
-rw-r--r--WebCore/bindings/js/DOMWrapperWorld.h97
-rw-r--r--WebCore/bindings/js/GCController.cpp90
-rw-r--r--WebCore/bindings/js/GCController.h55
-rw-r--r--WebCore/bindings/js/IDBBindingUtilities.cpp49
-rw-r--r--WebCore/bindings/js/IDBBindingUtilities.h44
-rw-r--r--WebCore/bindings/js/JSArrayBufferCustom.cpp57
-rw-r--r--WebCore/bindings/js/JSArrayBufferViewHelper.h169
-rw-r--r--WebCore/bindings/js/JSAttrCustom.cpp52
-rw-r--r--WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp47
-rw-r--r--WebCore/bindings/js/JSAudioConstructor.cpp80
-rw-r--r--WebCore/bindings/js/JSAudioConstructor.h52
-rw-r--r--WebCore/bindings/js/JSAudioContextCustom.cpp57
-rw-r--r--WebCore/bindings/js/JSAudioNodeCustom.cpp75
-rw-r--r--WebCore/bindings/js/JSBinding.h51
-rw-r--r--WebCore/bindings/js/JSBindingsAllInOne.cpp163
-rw-r--r--WebCore/bindings/js/JSCDATASectionCustom.cpp43
-rw-r--r--WebCore/bindings/js/JSCSSFontFaceRuleCustom.cpp43
-rw-r--r--WebCore/bindings/js/JSCSSImportRuleCustom.cpp46
-rw-r--r--WebCore/bindings/js/JSCSSMediaRuleCustom.cpp46
-rw-r--r--WebCore/bindings/js/JSCSSPageRuleCustom.cpp43
-rw-r--r--WebCore/bindings/js/JSCSSRuleCustom.cpp102
-rw-r--r--WebCore/bindings/js/JSCSSRuleListCustom.cpp47
-rw-r--r--WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp193
-rw-r--r--WebCore/bindings/js/JSCSSStyleDeclarationCustom.h31
-rw-r--r--WebCore/bindings/js/JSCSSStyleRuleCustom.cpp43
-rw-r--r--WebCore/bindings/js/JSCSSValueCustom.cpp75
-rw-r--r--WebCore/bindings/js/JSCallbackData.cpp87
-rw-r--r--WebCore/bindings/js/JSCallbackData.h97
-rw-r--r--WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp448
-rw-r--r--WebCore/bindings/js/JSCanvasRenderingContextCustom.cpp53
-rw-r--r--WebCore/bindings/js/JSClipboardCustom.cpp131
-rw-r--r--WebCore/bindings/js/JSConsoleCustom.cpp82
-rw-r--r--WebCore/bindings/js/JSConvolverNodeCustom.cpp47
-rw-r--r--WebCore/bindings/js/JSCoordinatesCustom.cpp67
-rw-r--r--WebCore/bindings/js/JSCustomPositionCallback.cpp63
-rw-r--r--WebCore/bindings/js/JSCustomPositionCallback.h55
-rw-r--r--WebCore/bindings/js/JSCustomPositionErrorCallback.cpp64
-rw-r--r--WebCore/bindings/js/JSCustomPositionErrorCallback.h53
-rw-r--r--WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp71
-rw-r--r--WebCore/bindings/js/JSCustomVoidCallback.cpp71
-rw-r--r--WebCore/bindings/js/JSCustomVoidCallback.h61
-rw-r--r--WebCore/bindings/js/JSCustomXPathNSResolver.cpp111
-rw-r--r--WebCore/bindings/js/JSCustomXPathNSResolver.h66
-rw-r--r--WebCore/bindings/js/JSDOMApplicationCacheCustom.cpp90
-rw-r--r--WebCore/bindings/js/JSDOMBinding.cpp798
-rw-r--r--WebCore/bindings/js/JSDOMBinding.h348
-rw-r--r--WebCore/bindings/js/JSDOMFormDataCustom.cpp74
-rw-r--r--WebCore/bindings/js/JSDOMGlobalObject.cpp129
-rw-r--r--WebCore/bindings/js/JSDOMGlobalObject.h116
-rw-r--r--WebCore/bindings/js/JSDOMMimeTypeArrayCustom.cpp42
-rw-r--r--WebCore/bindings/js/JSDOMPluginArrayCustom.cpp42
-rw-r--r--WebCore/bindings/js/JSDOMPluginCustom.cpp41
-rw-r--r--WebCore/bindings/js/JSDOMStringMapCustom.cpp102
-rw-r--r--WebCore/bindings/js/JSDOMStringMapCustom.h31
-rw-r--r--WebCore/bindings/js/JSDOMWindowBase.cpp232
-rw-r--r--WebCore/bindings/js/JSDOMWindowBase.h108
-rw-r--r--WebCore/bindings/js/JSDOMWindowCustom.cpp843
-rw-r--r--WebCore/bindings/js/JSDOMWindowCustom.h83
-rw-r--r--WebCore/bindings/js/JSDOMWindowShell.cpp185
-rw-r--r--WebCore/bindings/js/JSDOMWindowShell.h97
-rw-r--r--WebCore/bindings/js/JSDOMWrapper.cpp51
-rw-r--r--WebCore/bindings/js/JSDOMWrapper.h46
-rw-r--r--WebCore/bindings/js/JSDataGridColumnListCustom.cpp54
-rw-r--r--WebCore/bindings/js/JSDataGridDataSource.cpp55
-rw-r--r--WebCore/bindings/js/JSDataGridDataSource.h76
-rw-r--r--WebCore/bindings/js/JSDataViewCustom.cpp174
-rw-r--r--WebCore/bindings/js/JSDebugWrapperSet.cpp52
-rw-r--r--WebCore/bindings/js/JSDebugWrapperSet.h88
-rw-r--r--WebCore/bindings/js/JSDedicatedWorkerContextCustom.cpp52
-rw-r--r--WebCore/bindings/js/JSDesktopNotificationsCustom.cpp73
-rw-r--r--WebCore/bindings/js/JSDeviceMotionEventCustom.cpp194
-rw-r--r--WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp83
-rw-r--r--WebCore/bindings/js/JSDirectoryEntryCustom.cpp141
-rw-r--r--WebCore/bindings/js/JSDirectoryEntrySyncCustom.cpp101
-rw-r--r--WebCore/bindings/js/JSDocumentCustom.cpp127
-rw-r--r--WebCore/bindings/js/JSElementCustom.cpp89
-rw-r--r--WebCore/bindings/js/JSEntryCustom.cpp61
-rw-r--r--WebCore/bindings/js/JSEntrySyncCustom.cpp61
-rw-r--r--WebCore/bindings/js/JSEventCustom.cpp208
-rw-r--r--WebCore/bindings/js/JSEventListener.cpp158
-rw-r--r--WebCore/bindings/js/JSEventListener.h111
-rw-r--r--WebCore/bindings/js/JSEventSourceCustom.cpp73
-rw-r--r--WebCore/bindings/js/JSEventTarget.cpp233
-rw-r--r--WebCore/bindings/js/JSEventTarget.h45
-rw-r--r--WebCore/bindings/js/JSExceptionBase.cpp72
-rw-r--r--WebCore/bindings/js/JSExceptionBase.h43
-rw-r--r--WebCore/bindings/js/JSFileReaderCustom.cpp55
-rw-r--r--WebCore/bindings/js/JSFloat32ArrayCustom.cpp66
-rw-r--r--WebCore/bindings/js/JSGeolocationCustom.cpp189
-rw-r--r--WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp136
-rw-r--r--WebCore/bindings/js/JSHTMLAppletElementCustom.cpp56
-rw-r--r--WebCore/bindings/js/JSHTMLAppletElementCustom.h31
-rw-r--r--WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp110
-rw-r--r--WebCore/bindings/js/JSHTMLCollectionCustom.cpp157
-rw-r--r--WebCore/bindings/js/JSHTMLDataGridElementCustom.cpp60
-rw-r--r--WebCore/bindings/js/JSHTMLDocumentCustom.cpp171
-rw-r--r--WebCore/bindings/js/JSHTMLElementCustom.cpp51
-rw-r--r--WebCore/bindings/js/JSHTMLEmbedElementCustom.cpp56
-rw-r--r--WebCore/bindings/js/JSHTMLEmbedElementCustom.h31
-rw-r--r--WebCore/bindings/js/JSHTMLFormElementCustom.cpp64
-rw-r--r--WebCore/bindings/js/JSHTMLFrameElementCustom.cpp65
-rw-r--r--WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp64
-rw-r--r--WebCore/bindings/js/JSHTMLInputElementCustom.cpp85
-rw-r--r--WebCore/bindings/js/JSHTMLInputElementCustom.h31
-rw-r--r--WebCore/bindings/js/JSHTMLLinkElementCustom.cpp43
-rw-r--r--WebCore/bindings/js/JSHTMLObjectElementCustom.cpp56
-rw-r--r--WebCore/bindings/js/JSHTMLObjectElementCustom.h31
-rw-r--r--WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp98
-rw-r--r--WebCore/bindings/js/JSHTMLOutputElementCustom.cpp51
-rw-r--r--WebCore/bindings/js/JSHTMLSelectElementCustom.cpp69
-rw-r--r--WebCore/bindings/js/JSHTMLSelectElementCustom.h40
-rw-r--r--WebCore/bindings/js/JSHTMLStyleElementCustom.cpp43
-rw-r--r--WebCore/bindings/js/JSHistoryCustom.cpp213
-rw-r--r--WebCore/bindings/js/JSHistoryCustom.h33
-rw-r--r--WebCore/bindings/js/JSIDBAnyCustom.cpp88
-rw-r--r--WebCore/bindings/js/JSIDBKeyCustom.cpp61
-rw-r--r--WebCore/bindings/js/JSImageConstructor.cpp77
-rw-r--r--WebCore/bindings/js/JSImageConstructor.h40
-rw-r--r--WebCore/bindings/js/JSImageDataCustom.cpp58
-rw-r--r--WebCore/bindings/js/JSInjectedScriptHostCustom.cpp221
-rw-r--r--WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp126
-rw-r--r--WebCore/bindings/js/JSInt16ArrayCustom.cpp66
-rw-r--r--WebCore/bindings/js/JSInt32ArrayCustom.cpp66
-rw-r--r--WebCore/bindings/js/JSInt8ArrayCustom.cpp67
-rw-r--r--WebCore/bindings/js/JSJavaScriptAudioNodeCustom.cpp45
-rw-r--r--WebCore/bindings/js/JSJavaScriptCallFrameCustom.cpp128
-rw-r--r--WebCore/bindings/js/JSLazyEventListener.cpp136
-rw-r--r--WebCore/bindings/js/JSLazyEventListener.h54
-rw-r--r--WebCore/bindings/js/JSLocationCustom.cpp359
-rw-r--r--WebCore/bindings/js/JSLocationCustom.h33
-rw-r--r--WebCore/bindings/js/JSMainThreadExecState.cpp33
-rw-r--r--WebCore/bindings/js/JSMainThreadExecState.h84
-rw-r--r--WebCore/bindings/js/JSMessageChannelCustom.cpp57
-rw-r--r--WebCore/bindings/js/JSMessageEventCustom.cpp79
-rw-r--r--WebCore/bindings/js/JSMessagePortCustom.cpp96
-rw-r--r--WebCore/bindings/js/JSMessagePortCustom.h64
-rw-r--r--WebCore/bindings/js/JSNamedNodeMapCustom.cpp59
-rw-r--r--WebCore/bindings/js/JSNavigatorCustom.cpp79
-rw-r--r--WebCore/bindings/js/JSNodeCustom.cpp233
-rw-r--r--WebCore/bindings/js/JSNodeCustom.h62
-rw-r--r--WebCore/bindings/js/JSNodeFilterCondition.cpp91
-rw-r--r--WebCore/bindings/js/JSNodeFilterCondition.h49
-rw-r--r--WebCore/bindings/js/JSNodeFilterCustom.cpp52
-rw-r--r--WebCore/bindings/js/JSNodeIteratorCustom.cpp40
-rw-r--r--WebCore/bindings/js/JSNodeListCustom.cpp65
-rw-r--r--WebCore/bindings/js/JSOptionConstructor.cpp79
-rw-r--r--WebCore/bindings/js/JSOptionConstructor.h41
-rw-r--r--WebCore/bindings/js/JSPluginElementFunctions.cpp194
-rw-r--r--WebCore/bindings/js/JSPluginElementFunctions.h49
-rw-r--r--WebCore/bindings/js/JSPopStateEventCustom.cpp38
-rw-r--r--WebCore/bindings/js/JSProcessingInstructionCustom.cpp43
-rw-r--r--WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp85
-rw-r--r--WebCore/bindings/js/JSSQLTransactionCustom.cpp121
-rw-r--r--WebCore/bindings/js/JSSQLTransactionSyncCustom.cpp98
-rw-r--r--WebCore/bindings/js/JSSVGElementInstanceCustom.cpp45
-rw-r--r--WebCore/bindings/js/JSSVGLengthCustom.cpp100
-rw-r--r--WebCore/bindings/js/JSSVGPathSegCustom.cpp116
-rw-r--r--WebCore/bindings/js/JSScriptProfileNodeCustom.cpp65
-rw-r--r--WebCore/bindings/js/JSSharedWorkerCustom.cpp83
-rw-r--r--WebCore/bindings/js/JSStorageCustom.cpp102
-rw-r--r--WebCore/bindings/js/JSStorageCustom.h31
-rw-r--r--WebCore/bindings/js/JSStyleSheetCustom.cpp67
-rw-r--r--WebCore/bindings/js/JSStyleSheetListCustom.cpp63
-rw-r--r--WebCore/bindings/js/JSTextCustom.cpp43
-rw-r--r--WebCore/bindings/js/JSTouchCustom.cpp47
-rw-r--r--WebCore/bindings/js/JSTouchListCustom.cpp47
-rw-r--r--WebCore/bindings/js/JSTreeWalkerCustom.cpp40
-rw-r--r--WebCore/bindings/js/JSUint16ArrayCustom.cpp66
-rw-r--r--WebCore/bindings/js/JSUint32ArrayCustom.cpp66
-rw-r--r--WebCore/bindings/js/JSUint8ArrayCustom.cpp66
-rw-r--r--WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp696
-rw-r--r--WebCore/bindings/js/JSWebKitCSSKeyframeRuleCustom.cpp43
-rw-r--r--WebCore/bindings/js/JSWebKitCSSKeyframesRuleCustom.cpp43
-rw-r--r--WebCore/bindings/js/JSWebKitCSSMatrixCustom.cpp48
-rw-r--r--WebCore/bindings/js/JSWebKitPointCustom.cpp52
-rw-r--r--WebCore/bindings/js/JSWebSocketCustom.cpp77
-rw-r--r--WebCore/bindings/js/JSWorkerContextBase.cpp113
-rw-r--r--WebCore/bindings/js/JSWorkerContextBase.h73
-rw-r--r--WebCore/bindings/js/JSWorkerContextCustom.cpp151
-rw-r--r--WebCore/bindings/js/JSWorkerContextErrorHandler.cpp116
-rw-r--r--WebCore/bindings/js/JSWorkerContextErrorHandler.h64
-rw-r--r--WebCore/bindings/js/JSWorkerCustom.cpp73
-rw-r--r--WebCore/bindings/js/JSXMLHttpRequestCustom.cpp221
-rw-r--r--WebCore/bindings/js/JSXMLHttpRequestUploadCustom.cpp54
-rw-r--r--WebCore/bindings/js/JSXSLTProcessorCustom.cpp127
-rw-r--r--WebCore/bindings/js/JavaScriptCallFrame.cpp115
-rw-r--r--WebCore/bindings/js/JavaScriptCallFrame.h88
-rw-r--r--WebCore/bindings/js/OptionsObject.h31
-rw-r--r--WebCore/bindings/js/ScheduledAction.cpp154
-rw-r--r--WebCore/bindings/js/ScheduledAction.h72
-rw-r--r--WebCore/bindings/js/ScriptCachedFrameData.cpp109
-rw-r--r--WebCore/bindings/js/ScriptCachedFrameData.h61
-rw-r--r--WebCore/bindings/js/ScriptCallStackFactory.cpp95
-rw-r--r--WebCore/bindings/js/ScriptCallStackFactory.h51
-rw-r--r--WebCore/bindings/js/ScriptController.cpp520
-rw-r--r--WebCore/bindings/js/ScriptController.h212
-rw-r--r--WebCore/bindings/js/ScriptControllerBrew.cpp47
-rw-r--r--WebCore/bindings/js/ScriptControllerEfl.cpp48
-rw-r--r--WebCore/bindings/js/ScriptControllerGtk.cpp48
-rw-r--r--WebCore/bindings/js/ScriptControllerHaiku.cpp46
-rw-r--r--WebCore/bindings/js/ScriptControllerMac.mm171
-rw-r--r--WebCore/bindings/js/ScriptControllerQt.cpp63
-rw-r--r--WebCore/bindings/js/ScriptControllerWin.cpp45
-rw-r--r--WebCore/bindings/js/ScriptControllerWx.cpp44
-rw-r--r--WebCore/bindings/js/ScriptDebugServer.cpp618
-rw-r--r--WebCore/bindings/js/ScriptDebugServer.h158
-rw-r--r--WebCore/bindings/js/ScriptEventListener.cpp125
-rw-r--r--WebCore/bindings/js/ScriptEventListener.h52
-rw-r--r--WebCore/bindings/js/ScriptFunctionCall.cpp226
-rw-r--r--WebCore/bindings/js/ScriptFunctionCall.h101
-rw-r--r--WebCore/bindings/js/ScriptGCEvent.cpp53
-rw-r--r--WebCore/bindings/js/ScriptGCEvent.h51
-rw-r--r--WebCore/bindings/js/ScriptHeapSnapshot.h61
-rw-r--r--WebCore/bindings/js/ScriptInstance.h44
-rw-r--r--WebCore/bindings/js/ScriptObject.cpp108
-rw-r--r--WebCore/bindings/js/ScriptObject.h70
-rw-r--r--WebCore/bindings/js/ScriptProfile.cpp102
-rw-r--r--WebCore/bindings/js/ScriptProfile.h69
-rw-r--r--WebCore/bindings/js/ScriptProfileNode.h41
-rw-r--r--WebCore/bindings/js/ScriptProfiler.cpp56
-rw-r--r--WebCore/bindings/js/ScriptProfiler.h51
-rw-r--r--WebCore/bindings/js/ScriptSourceCode.h79
-rw-r--r--WebCore/bindings/js/ScriptSourceProvider.h47
-rw-r--r--WebCore/bindings/js/ScriptState.cpp86
-rw-r--r--WebCore/bindings/js/ScriptState.h71
-rw-r--r--WebCore/bindings/js/ScriptValue.cpp162
-rw-r--r--WebCore/bindings/js/ScriptValue.h78
-rw-r--r--WebCore/bindings/js/ScriptWrappable.h62
-rw-r--r--WebCore/bindings/js/SerializedScriptValue.cpp1424
-rw-r--r--WebCore/bindings/js/SerializedScriptValue.h67
-rw-r--r--WebCore/bindings/js/StringSourceProvider.h64
-rw-r--r--WebCore/bindings/js/WebCoreJSClientData.h81
-rw-r--r--WebCore/bindings/js/WorkerScriptController.cpp158
-rw-r--r--WebCore/bindings/js/WorkerScriptController.h90
-rw-r--r--WebCore/bindings/js/specialization/JSBindingState.cpp63
-rw-r--r--WebCore/bindings/js/specialization/JSBindingState.h75
240 files changed, 0 insertions, 24893 deletions
diff --git a/WebCore/bindings/js/CachedScriptSourceProvider.h b/WebCore/bindings/js/CachedScriptSourceProvider.h
deleted file mode 100644
index 809a488..0000000
--- a/WebCore/bindings/js/CachedScriptSourceProvider.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef CachedScriptSourceProvider_h
-#define CachedScriptSourceProvider_h
-
-#include "CachedResourceClient.h"
-#include "CachedResourceHandle.h"
-#include "CachedScript.h"
-#include "JSDOMBinding.h" // for stringToUString
-#include "ScriptSourceProvider.h"
-#include <parser/SourceCode.h>
-
-namespace WebCore {
-
- class CachedScriptSourceProvider : public ScriptSourceProvider, public CachedResourceClient {
- public:
- static PassRefPtr<CachedScriptSourceProvider> create(CachedScript* cachedScript) { return adoptRef(new CachedScriptSourceProvider(cachedScript)); }
-
- virtual ~CachedScriptSourceProvider()
- {
- m_cachedScript->removeClient(this);
- }
-
- JSC::UString getRange(int start, int end) const { return JSC::UString(m_cachedScript->script().characters() + start, end - start); }
- const UChar* data() const { return m_cachedScript->script().characters(); }
- int length() const { return m_cachedScript->script().length(); }
- const String& source() const { return m_cachedScript->script(); }
-
- private:
- CachedScriptSourceProvider(CachedScript* cachedScript)
- : ScriptSourceProvider(stringToUString(cachedScript->url()))
- , m_cachedScript(cachedScript)
- {
- m_cachedScript->addClient(this);
- }
-
- CachedResourceHandle<CachedScript> m_cachedScript;
- };
-
- inline JSC::SourceCode makeSource(CachedScript* cachedScript)
- {
- return JSC::SourceCode(CachedScriptSourceProvider::create(cachedScript));
- }
-
-} // namespace WebCore
-
-#endif // CachedScriptSourceProvider_h
diff --git a/WebCore/bindings/js/DOMObjectHashTableMap.cpp b/WebCore/bindings/js/DOMObjectHashTableMap.cpp
deleted file mode 100644
index bfcab0b..0000000
--- a/WebCore/bindings/js/DOMObjectHashTableMap.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 1999-2001 Harri Porten (porten@kde.org)
- * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2007 Samuel Weinig <sam@webkit.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "DOMObjectHashTableMap.h"
-
-#include "WebCoreJSClientData.h"
-
-using namespace JSC;
-
-namespace WebCore{
-
-DOMObjectHashTableMap& DOMObjectHashTableMap::mapFor(JSGlobalData& globalData)
-{
- JSGlobalData::ClientData* clientData = globalData.clientData;
- ASSERT(clientData);
- return static_cast<WebCoreJSClientData*>(clientData)->hashTableMap;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/DOMObjectHashTableMap.h b/WebCore/bindings/js/DOMObjectHashTableMap.h
deleted file mode 100644
index 4ddacb8..0000000
--- a/WebCore/bindings/js/DOMObjectHashTableMap.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 1999-2001 Harri Porten (porten@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2007 Samuel Weinig <sam@webkit.org>
- * Copyright (C) 2009 Google, Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef DOMObjectHashTableMap_h
-#define DOMObjectHashTableMap_h
-
-#include <runtime/Lookup.h>
-#include <wtf/HashMap.h>
-
-namespace JSC {
- class JSGlobalData;
-}
-
-namespace WebCore {
-
-// Map from static HashTable instances to per-GlobalData ones.
-class DOMObjectHashTableMap {
-public:
- static DOMObjectHashTableMap& mapFor(JSC::JSGlobalData&);
-
- ~DOMObjectHashTableMap()
- {
- HashMap<const JSC::HashTable*, JSC::HashTable>::iterator mapEnd = m_map.end();
- for (HashMap<const JSC::HashTable*, JSC::HashTable>::iterator iter = m_map.begin(); iter != m_map.end(); ++iter)
- iter->second.deleteTable();
- }
-
- const JSC::HashTable* get(const JSC::HashTable* staticTable)
- {
- HashMap<const JSC::HashTable*, JSC::HashTable>::iterator iter = m_map.find(staticTable);
- if (iter != m_map.end())
- return &iter->second;
- return &m_map.set(staticTable, JSC::HashTable(*staticTable)).first->second;
- }
-
-private:
- HashMap<const JSC::HashTable*, JSC::HashTable> m_map;
-};
-
-} // namespace WebCore
-
-#endif // DOMObjectHashTableMap_h
diff --git a/WebCore/bindings/js/DOMWrapperWorld.cpp b/WebCore/bindings/js/DOMWrapperWorld.cpp
deleted file mode 100644
index 10c3fdd..0000000
--- a/WebCore/bindings/js/DOMWrapperWorld.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 1999-2001 Harri Porten (porten@kde.org)
- * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2007 Samuel Weinig <sam@webkit.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "DOMWrapperWorld.h"
-
-#include "JSDOMWindow.h"
-#include "ScriptController.h"
-#include "WebCoreJSClientData.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-DOMWrapperWorld::DOMWrapperWorld(JSC::JSGlobalData* globalData, bool isNormal)
- : m_globalData(globalData)
- , m_isNormal(isNormal)
- , m_isRegistered(false)
-{
- registerWorld();
-}
-
-DOMWrapperWorld::~DOMWrapperWorld()
-{
- unregisterWorld();
-}
-
-void DOMWrapperWorld::registerWorld()
-{
- JSGlobalData::ClientData* clientData = m_globalData->clientData;
- ASSERT(clientData);
- static_cast<WebCoreJSClientData*>(clientData)->rememberWorld(this);
- m_isRegistered = true;
-}
-
-void DOMWrapperWorld::unregisterWorld()
-{
- if (!m_isRegistered)
- return;
- m_isRegistered = false;
-
- JSGlobalData::ClientData* clientData = m_globalData->clientData;
- ASSERT(clientData);
- static_cast<WebCoreJSClientData*>(clientData)->forgetWorld(this);
-
- // These items are created lazily.
- while (!m_documentsWithWrapperCaches.isEmpty())
- (*m_documentsWithWrapperCaches.begin())->destroyWrapperCache(this);
-
- while (!m_scriptControllersWithWindowShells.isEmpty())
- (*m_scriptControllersWithWindowShells.begin())->destroyWindowShell(this);
-}
-
-DOMWrapperWorld* normalWorld(JSC::JSGlobalData& globalData)
-{
- JSGlobalData::ClientData* clientData = globalData.clientData;
- ASSERT(clientData);
- return static_cast<WebCoreJSClientData*>(clientData)->normalWorld();
-}
-
-DOMWrapperWorld* mainThreadNormalWorld()
-{
- ASSERT(isMainThread());
- static DOMWrapperWorld* cachedNormalWorld = normalWorld(*JSDOMWindow::commonJSGlobalData());
- return cachedNormalWorld;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/DOMWrapperWorld.h b/WebCore/bindings/js/DOMWrapperWorld.h
deleted file mode 100644
index 35b68fc..0000000
--- a/WebCore/bindings/js/DOMWrapperWorld.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 1999-2001 Harri Porten (porten@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2007 Samuel Weinig <sam@webkit.org>
- * Copyright (C) 2009 Google, Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef DOMWrapperWorld_h
-#define DOMWrapperWorld_h
-
-#include "Document.h"
-#include "JSDOMGlobalObject.h"
-#include "JSDOMWrapper.h"
-#include <runtime/WeakGCMap.h>
-#include <wtf/Forward.h>
-
-namespace WebCore {
-
-class ScriptController;
-
-typedef JSC::WeakGCMap<void*, DOMObject*> DOMObjectWrapperMap;
-typedef JSC::WeakGCMap<StringImpl*, JSC::JSString*> JSStringCache;
-
-class DOMWrapperWorld : public RefCounted<DOMWrapperWorld> {
-public:
- static PassRefPtr<DOMWrapperWorld> create(JSC::JSGlobalData* globalData, bool isNormal = false)
- {
- return adoptRef(new DOMWrapperWorld(globalData, isNormal));
- }
- ~DOMWrapperWorld();
-
- void registerWorld();
- void unregisterWorld();
-
- void didCreateWrapperCache(Document* document) { m_documentsWithWrapperCaches.add(document); }
- void didDestroyWrapperCache(Document* document) { m_documentsWithWrapperCaches.remove(document); }
-
- void didCreateWindowShell(ScriptController* scriptController) { m_scriptControllersWithWindowShells.add(scriptController); }
- void didDestroyWindowShell(ScriptController* scriptController) { m_scriptControllersWithWindowShells.remove(scriptController); }
-
- // FIXME: can we make this private?
- DOMObjectWrapperMap m_wrappers;
- JSStringCache m_stringCache;
-
- bool isNormal() const { return m_isNormal; }
-
-protected:
- DOMWrapperWorld(JSC::JSGlobalData*, bool isNormal);
-
-private:
- JSC::JSGlobalData* m_globalData;
- HashSet<Document*> m_documentsWithWrapperCaches;
- HashSet<ScriptController*> m_scriptControllersWithWindowShells;
- bool m_isNormal;
- bool m_isRegistered;
-};
-
-DOMWrapperWorld* normalWorld(JSC::JSGlobalData&);
-DOMWrapperWorld* mainThreadNormalWorld();
-inline DOMWrapperWorld* debuggerWorld() { return mainThreadNormalWorld(); }
-inline DOMWrapperWorld* pluginWorld() { return mainThreadNormalWorld(); }
-
-inline DOMWrapperWorld* currentWorld(JSC::ExecState* exec)
-{
- return static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject())->world();
-}
-
-// From Document.h
-
-inline Document::JSWrapperCache* Document::getWrapperCache(DOMWrapperWorld* world)
-{
- if (world->isNormal()) {
- if (Document::JSWrapperCache* wrapperCache = m_normalWorldWrapperCache)
- return wrapperCache;
- ASSERT(!m_wrapperCacheMap.contains(world));
- } else if (Document::JSWrapperCache* wrapperCache = m_wrapperCacheMap.get(world))
- return wrapperCache;
- return createWrapperCache(world);
-}
-
-} // namespace WebCore
-
-#endif // DOMWrapperWorld_h
diff --git a/WebCore/bindings/js/GCController.cpp b/WebCore/bindings/js/GCController.cpp
deleted file mode 100644
index f193b2e..0000000
--- a/WebCore/bindings/js/GCController.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "GCController.h"
-
-#include "JSDOMWindow.h"
-#include <runtime/JSGlobalData.h>
-#include <runtime/JSLock.h>
-#include <runtime/Collector.h>
-#include <wtf/StdLibExtras.h>
-
-#if USE(PTHREADS)
-#include <pthread.h>
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-static void* collect(void*)
-{
- JSLock lock(SilenceAssertionsOnly);
- JSDOMWindow::commonJSGlobalData()->heap.collectAllGarbage();
- return 0;
-}
-
-GCController& gcController()
-{
- DEFINE_STATIC_LOCAL(GCController, staticGCController, ());
- return staticGCController;
-}
-
-GCController::GCController()
- : m_GCTimer(this, &GCController::gcTimerFired)
-{
-}
-
-void GCController::garbageCollectSoon()
-{
- if (!m_GCTimer.isActive())
- m_GCTimer.startOneShot(0);
-}
-
-void GCController::gcTimerFired(Timer<GCController>*)
-{
- collect(0);
-}
-
-void GCController::garbageCollectNow()
-{
- JSLock lock(SilenceAssertionsOnly);
- if (!JSDOMWindow::commonJSGlobalData()->heap.isBusy())
- collect(0);
-}
-
-void GCController::garbageCollectOnAlternateThreadForDebugging(bool waitUntilDone)
-{
-#if USE(PTHREADS)
- pthread_t thread;
- pthread_create(&thread, NULL, collect, NULL);
-
- if (waitUntilDone)
- pthread_join(thread, NULL);
-#endif
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/GCController.h b/WebCore/bindings/js/GCController.h
deleted file mode 100644
index 4c25407..0000000
--- a/WebCore/bindings/js/GCController.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef GCController_h
-#define GCController_h
-
-#include <wtf/Noncopyable.h>
-#include "Timer.h"
-
-namespace WebCore {
-
- class GCController : public Noncopyable {
- friend GCController& gcController();
-
- public:
- void garbageCollectSoon();
- void garbageCollectNow(); // It's better to call garbageCollectSoon, unless you have a specific reason not to.
-
- void garbageCollectOnAlternateThreadForDebugging(bool waitUntilDone); // Used for stress testing.
-
- private:
- GCController(); // Use gcController() instead
- void gcTimerFired(Timer<GCController>*);
-
- Timer<GCController> m_GCTimer;
- };
-
- // Function to obtain the global GC controller.
- GCController& gcController();
-
-} // namespace WebCore
-
-#endif // GCController_h
diff --git a/WebCore/bindings/js/IDBBindingUtilities.cpp b/WebCore/bindings/js/IDBBindingUtilities.cpp
deleted file mode 100644
index 638a23e..0000000
--- a/WebCore/bindings/js/IDBBindingUtilities.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "IDBBindingUtilities.h"
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include "IDBKey.h"
-
-namespace WebCore {
-
-PassRefPtr<IDBKey> createIDBKeyFromValue(JSC::ExecState* exec, JSC::JSValue value)
-{
- if (value.isNull())
- return IDBKey::create();
- if (value.isInt32())
- return IDBKey::create(value.toInt32(exec));
- if (value.isString())
- return IDBKey::create(ustringToString(value.toString(exec)));
- // FIXME: Implement dates.
- return 0;
-}
-
-} // namespace WebCore
-
-#endif
diff --git a/WebCore/bindings/js/IDBBindingUtilities.h b/WebCore/bindings/js/IDBBindingUtilities.h
deleted file mode 100644
index 7e72152..0000000
--- a/WebCore/bindings/js/IDBBindingUtilities.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBBindingUtilities_h
-#define IDBBindingUtilities_h
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include "ScriptValue.h"
-#include <wtf/Forward.h>
-
-namespace WebCore {
-
-class IDBKey;
-
-PassRefPtr<IDBKey> createIDBKeyFromValue(JSC::ExecState*, JSC::JSValue);
-
-}
-
-#endif // ENABLE(INDEXED_DATABASE)
-
-#endif // IDBBindingUtilities_h
diff --git a/WebCore/bindings/js/JSArrayBufferCustom.cpp b/WebCore/bindings/js/JSArrayBufferCustom.cpp
deleted file mode 100644
index 68edc5c..0000000
--- a/WebCore/bindings/js/JSArrayBufferCustom.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
-
-#include "JSArrayBuffer.h"
-
-#include "ArrayBuffer.h"
-#include "ExceptionCode.h"
-#include <runtime/Error.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-EncodedJSValue JSC_HOST_CALL JSArrayBufferConstructor::constructJSArrayBuffer(ExecState* exec)
-{
- JSArrayBufferConstructor* jsConstructor = static_cast<JSArrayBufferConstructor*>(exec->callee());
-
- int length = 0;
- if (exec->argumentCount() > 0)
- length = exec->argument(0).toInt32(exec); // NaN/+inf/-inf returns 0, this is intended by WebIDL
- RefPtr<ArrayBuffer> buffer;
- if (length >= 0)
- buffer = ArrayBuffer::create(static_cast<unsigned>(length), 1);
- if (!buffer.get())
- return throwVMError(exec, createRangeError(exec, "ArrayBuffer size is not a small enough positive integer."));
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), buffer.get())));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(3D_CANVAS) || ENABLE(BLOB)
diff --git a/WebCore/bindings/js/JSArrayBufferViewHelper.h b/WebCore/bindings/js/JSArrayBufferViewHelper.h
deleted file mode 100644
index f34f4b9..0000000
--- a/WebCore/bindings/js/JSArrayBufferViewHelper.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSArrayBufferViewHelper_h
-#define JSArrayBufferViewHelper_h
-
-#include "ArrayBufferView.h"
-#include "ExceptionCode.h"
-#include "JSArrayBuffer.h"
-#include "JSDOMBinding.h"
-#include <interpreter/CallFrame.h>
-#include <runtime/ArgList.h>
-#include <runtime/Error.h>
-#include <runtime/JSObject.h>
-#include <runtime/JSValue.h>
-
-namespace WebCore {
-
-template <class T>
-JSC::JSValue setWebGLArrayHelper(JSC::ExecState* exec, T* impl, T* (*conversionFunc)(JSC::JSValue))
-{
- if (exec->argumentCount() < 1)
- return JSC::throwSyntaxError(exec);
-
- T* array = (*conversionFunc)(exec->argument(0));
- if (array) {
- // void set(in WebGL<T>Array array, [Optional] in unsigned long offset);
- unsigned offset = 0;
- if (exec->argumentCount() == 2)
- offset = exec->argument(1).toInt32(exec);
- ExceptionCode ec = 0;
- impl->set(array, offset, ec);
- setDOMException(exec, ec);
- return JSC::jsUndefined();
- }
-
- if (exec->argument(0).isObject()) {
- // void set(in sequence<long> array, [Optional] in unsigned long offset);
- JSC::JSObject* array = JSC::asObject(exec->argument(0));
- uint32_t offset = 0;
- if (exec->argumentCount() == 2)
- offset = exec->argument(1).toInt32(exec);
- uint32_t length = array->get(exec, JSC::Identifier(exec, "length")).toInt32(exec);
- if (offset > impl->length()
- || offset + length > impl->length()
- || offset + length < offset)
- setDOMException(exec, INDEX_SIZE_ERR);
- else {
- for (uint32_t i = 0; i < length; i++) {
- JSC::JSValue v = array->get(exec, i);
- if (exec->hadException())
- return JSC::jsUndefined();
- impl->set(i + offset, v.toNumber(exec));
- }
- }
-
- return JSC::jsUndefined();
- }
-
- return JSC::throwSyntaxError(exec);
-}
-
-// Template function used by XXXArrayConstructors.
-// If this returns 0, it will already have thrown a JavaScript exception.
-template<class C, typename T>
-PassRefPtr<C> constructArrayBufferViewWithArrayBufferArgument(JSC::ExecState* exec)
-{
- RefPtr<ArrayBuffer> buffer = toArrayBuffer(exec->argument(0));
- if (!buffer)
- return 0;
-
- unsigned offset = (exec->argumentCount() > 1) ? exec->argument(1).toUInt32(exec) : 0;
- if ((buffer->byteLength() - offset) % sizeof(T))
- throwError(exec, createRangeError(exec, "ArrayBuffer length minus the byteOffset is not a multiple of the element size."));
- unsigned int length = (buffer->byteLength() - offset) / sizeof(T);
- if (exec->argumentCount() > 2)
- length = exec->argument(2).toUInt32(exec);
- RefPtr<C> array = C::create(buffer, offset, length);
- if (!array)
- setDOMException(exec, INDEX_SIZE_ERR);
- return array;
-}
-
-template<class C, typename T>
-PassRefPtr<C> constructArrayBufferView(JSC::ExecState* exec)
-{
- // There are 3 constructors:
- //
- // 1) (in int size)
- // 2) (in ArrayBuffer buffer, [Optional] in int offset, [Optional] in unsigned int length)
- // 3) (in sequence<T>) - This ends up being a JS "array-like" object
- //
- // For the 0 args case, just create a zero-length view. We could
- // consider raising a SyntaxError for this case, but not all
- // JavaScript DOM bindings can distinguish between "new
- // <Type>Array()" and what occurs when a previously-constructed
- // ArrayBufferView is returned to JavaScript; e.g., from
- // "array.slice()".
- if (exec->argumentCount() < 1)
- return C::create(0);
-
- if (exec->argument(0).isNull()) {
- // Invalid first argument
- throwTypeError(exec);
- return 0;
- }
-
- if (exec->argument(0).isObject()) {
- RefPtr<C> view = constructArrayBufferViewWithArrayBufferArgument<C, T>(exec);
- if (view)
- return view;
-
- JSC::JSObject* array = asObject(exec->argument(0));
- unsigned length = array->get(exec, JSC::Identifier(exec, "length")).toUInt32(exec);
- void* tempValues;
- if (!tryFastCalloc(length, sizeof(T)).getValue(tempValues)) {
- JSC::throwError(exec, createError(exec, "Error"));
- return 0;
- }
-
- OwnFastMallocPtr<T> values(static_cast<T*>(tempValues));
- for (unsigned i = 0; i < length; ++i) {
- JSC::JSValue v = array->get(exec, i);
- if (exec->hadException())
- return 0;
- values.get()[i] = static_cast<T>(v.toNumber(exec));
- }
-
- RefPtr<C> result = C::create(values.get(), length);
- if (!result)
- setDOMException(exec, INDEX_SIZE_ERR);
- return result;
- }
-
- int length = exec->argument(0).toInt32(exec);
- RefPtr<C> result;
- if (length >= 0)
- result = C::create(static_cast<unsigned>(length));
- if (!result)
- throwError(exec, createRangeError(exec, "ArrayBufferView size is not a small enough positive integer."));
- return result;
-}
-
-} // namespace WebCore
-
-#endif // JSArrayBufferViewHelper_h
diff --git a/WebCore/bindings/js/JSAttrCustom.cpp b/WebCore/bindings/js/JSAttrCustom.cpp
deleted file mode 100644
index 227582d..0000000
--- a/WebCore/bindings/js/JSAttrCustom.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSAttr.h"
-
-#include "Document.h"
-#include "Element.h"
-#include "HTMLNames.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-void JSAttr::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- // Mark the element so that this will work to access the attribute even if the last
- // other reference goes away.
- if (Element* element = impl()->ownerElement())
- markDOMNodeWrapper(markStack, element->document(), element);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp b/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp
deleted file mode 100644
index 8ca7f1f..0000000
--- a/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2010, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(WEB_AUDIO)
-
-#include "AudioBufferSourceNode.h"
-
-#include "AudioBuffer.h"
-#include "JSAudioBuffer.h"
-#include "JSAudioBufferSourceNode.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSAudioBufferSourceNode::setBuffer(ExecState*, JSValue value)
-{
- AudioBufferSourceNode* imp = static_cast<AudioBufferSourceNode*>(impl());
- imp->setBuffer(toAudioBuffer(value));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WEB_AUDIO)
diff --git a/WebCore/bindings/js/JSAudioConstructor.cpp b/WebCore/bindings/js/JSAudioConstructor.cpp
deleted file mode 100644
index 1ea5ae4..0000000
--- a/WebCore/bindings/js/JSAudioConstructor.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(VIDEO)
-
-#include "JSAudioConstructor.h"
-
-#include "HTMLAudioElement.h"
-#include "JSHTMLAudioElement.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-const ClassInfo JSAudioConstructor::s_info = { "AudioConstructor", 0, 0, 0 };
-
-JSAudioConstructor::JSAudioConstructor(ExecState* exec, JSDOMGlobalObject* globalObject)
- : DOMConstructorWithDocument(JSAudioConstructor::createStructure(globalObject->objectPrototype()), globalObject)
-{
- putDirect(exec->propertyNames().prototype, JSHTMLAudioElementPrototype::self(exec, globalObject), None);
- putDirect(exec->propertyNames().length, jsNumber(1), ReadOnly | DontDelete | DontEnum);
-}
-
-static EncodedJSValue JSC_HOST_CALL constructAudio(ExecState* exec)
-{
- JSAudioConstructor* jsConstructor = static_cast<JSAudioConstructor*>(exec->callee());
-
- Document* document = jsConstructor->document();
- if (!document)
- return throwVMError(exec, createReferenceError(exec, "Audio constructor associated document is unavailable"));
-
- // Calling toJS on the document causes the JS document wrapper to be
- // added to the window object. This is done to ensure that JSDocument::markChildren
- // will be called, which will cause the audio element to be marked if necessary.
- toJS(exec, jsConstructor->globalObject(), document);
-
- // FIXME: This converts an undefined argument to the string "undefined", but possibly we
- // should treat it as if no argument was passed instead, by checking the value of exec->argument
- // rather than looking at exec->argumentCount.
- String src;
- if (exec->argumentCount() > 0)
- src = ustringToString(exec->argument(0).toString(exec));
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(),
- HTMLAudioElement::createForJSConstructor(document, src))));
-}
-
-ConstructType JSAudioConstructor::getConstructData(ConstructData& constructData)
-{
- constructData.native.function = constructAudio;
- return ConstructTypeHost;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(VIDEO)
diff --git a/WebCore/bindings/js/JSAudioConstructor.h b/WebCore/bindings/js/JSAudioConstructor.h
deleted file mode 100644
index 3496897..0000000
--- a/WebCore/bindings/js/JSAudioConstructor.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSAudioConstructor_h
-#define JSAudioConstructor_h
-
-#if ENABLE(VIDEO)
-
-#include "JSDOMBinding.h"
-#include "JSDocument.h"
-#include <wtf/RefPtr.h>
-
-namespace WebCore {
-
- class JSAudioConstructor : public DOMConstructorWithDocument {
- public:
- JSAudioConstructor(JSC::ExecState*, JSDOMGlobalObject*);
-
- static const JSC::ClassInfo s_info;
- private:
- virtual JSC::ConstructType getConstructData(JSC::ConstructData&);
-
- virtual const JSC::ClassInfo* classInfo() const { return &s_info; }
- };
-
-} // namespace WebCore
-
-#endif // ENABLE(VIDEO)
-
-#endif // JSAudioConstructor_h
diff --git a/WebCore/bindings/js/JSAudioContextCustom.cpp b/WebCore/bindings/js/JSAudioContextCustom.cpp
deleted file mode 100644
index 04644bc..0000000
--- a/WebCore/bindings/js/JSAudioContextCustom.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2010, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(WEB_AUDIO)
-
-#include "AudioContext.h"
-
-#include "JSAudioContext.h"
-#include <runtime/Error.h>
-
-namespace WebCore {
-
-JSC::EncodedJSValue JSC_HOST_CALL JSAudioContextConstructor::constructJSAudioContext(JSC::ExecState* exec)
-{
- JSAudioContextConstructor* jsConstructor = static_cast<JSAudioContextConstructor*>(exec->callee());
- if (!jsConstructor)
- return throwError(exec, createReferenceError(exec, "AudioContext constructor callee is unavailable"));
-
- ScriptExecutionContext* scriptExecutionContext = jsConstructor->scriptExecutionContext();
- if (!scriptExecutionContext)
- return throwError(exec, createReferenceError(exec, "AudioContext constructor script execution context is unavailable"));
-
- if (!scriptExecutionContext->isDocument())
- return throwError(exec, createReferenceError(exec, "AudioContext constructor called in a script execution context which is not a document"));
-
- Document* document = static_cast<Document*>(scriptExecutionContext);
-
- RefPtr<AudioContext> context = AudioContext::create(document);
- return JSC::JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), context.get())));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WEB_AUDIO)
diff --git a/WebCore/bindings/js/JSAudioNodeCustom.cpp b/WebCore/bindings/js/JSAudioNodeCustom.cpp
deleted file mode 100644
index 67f33f2..0000000
--- a/WebCore/bindings/js/JSAudioNodeCustom.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2010, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(WEB_AUDIO)
-
-#include "JSAudioNode.h"
-
-#include "AudioNode.h"
-#include <runtime/Error.h>
-
-namespace WebCore {
-
-JSC::JSValue JSAudioNode::connect(JSC::ExecState* exec)
-{
- if (exec->argumentCount() < 1)
- return throwError(exec, createSyntaxError(exec, "Not enough arguments"));
-
- unsigned outputIndex = 0;
- unsigned inputIndex = 0;
-
- AudioNode* destinationNode = toAudioNode(exec->argument(0));
- if (!destinationNode)
- return throwError(exec, createSyntaxError(exec, "Invalid destination node"));
-
- if (exec->argumentCount() > 1)
- outputIndex = exec->argument(1).toInt32(exec);
-
- if (exec->argumentCount() > 2)
- inputIndex = exec->argument(2).toInt32(exec);
-
- AudioNode* audioNode = static_cast<AudioNode*>(impl());
- bool success = audioNode->connect(destinationNode, outputIndex, inputIndex);
- if (!success)
- return throwError(exec, createSyntaxError(exec, "Invalid index parameter"));
-
- return JSC::jsUndefined();
-}
-
-JSC::JSValue JSAudioNode::disconnect(JSC::ExecState* exec)
-{
- unsigned outputIndex = 0;
- if (exec->argumentCount() > 0)
- outputIndex = exec->argument(0).toInt32(exec);
-
- AudioNode* audioNode = static_cast<AudioNode*>(impl());
- audioNode->disconnect(outputIndex);
- return JSC::jsUndefined();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WEB_AUDIO)
diff --git a/WebCore/bindings/js/JSBinding.h b/WebCore/bindings/js/JSBinding.h
deleted file mode 100644
index b42c9be..0000000
--- a/WebCore/bindings/js/JSBinding.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSBinding_h
-#define JSBinding_h
-
-#include "BindingFrame.h"
-#include "BindingLocation.h"
-#include "BindingSecurity.h"
-
-namespace WebCore {
-
-// Instantiate binding template classes for JSC.
-class JSBinding {
-public:
- typedef BindingFrame<JSBinding> Frame;
- typedef BindingLocation<JSBinding> Location;
-};
-
-typedef BindingSecurity<JSBinding> JSBindingSecurity;
-
-} // namespace WebCore
-
-#endif // JSBinding_h
diff --git a/WebCore/bindings/js/JSBindingsAllInOne.cpp b/WebCore/bindings/js/JSBindingsAllInOne.cpp
deleted file mode 100644
index 7fc5740..0000000
--- a/WebCore/bindings/js/JSBindingsAllInOne.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (C) 2009, 2010 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// This all-in-one cpp file cuts down on template bloat to allow us to build our Windows release build.
-
-#include "DOMObjectHashTableMap.cpp"
-#include "DOMWrapperWorld.cpp"
-#include "GCController.cpp"
-#include "JSAttrCustom.cpp"
-#include "JSAudioConstructor.cpp"
-#include "JSBindingState.cpp"
-#include "JSCDATASectionCustom.cpp"
-#include "JSCSSFontFaceRuleCustom.cpp"
-#include "JSCSSImportRuleCustom.cpp"
-#include "JSCSSMediaRuleCustom.cpp"
-#include "JSCSSPageRuleCustom.cpp"
-#include "JSCSSRuleCustom.cpp"
-#include "JSCSSRuleListCustom.cpp"
-#include "JSCSSStyleDeclarationCustom.cpp"
-#include "JSCSSStyleRuleCustom.cpp"
-#include "JSCSSValueCustom.cpp"
-#include "JSCallbackData.cpp"
-#include "JSCanvasRenderingContext2DCustom.cpp"
-#include "JSCanvasRenderingContextCustom.cpp"
-#include "JSClipboardCustom.cpp"
-#include "JSConsoleCustom.cpp"
-#include "JSCoordinatesCustom.cpp"
-#include "JSCustomPositionCallback.cpp"
-#include "JSCustomPositionErrorCallback.cpp"
-#include "JSCustomSQLStatementErrorCallback.cpp"
-#include "JSCustomVoidCallback.cpp"
-#include "JSCustomXPathNSResolver.cpp"
-#include "JSDOMApplicationCacheCustom.cpp"
-#include "JSDOMBinding.cpp"
-#include "JSDOMFormDataCustom.cpp"
-#include "JSDOMGlobalObject.cpp"
-#include "JSDOMMimeTypeArrayCustom.cpp"
-#include "JSDOMPluginArrayCustom.cpp"
-#include "JSDOMPluginCustom.cpp"
-#include "JSDOMStringMapCustom.cpp"
-#include "JSDOMWindowBase.cpp"
-#include "JSDOMWindowCustom.cpp"
-#include "JSDOMWindowShell.cpp"
-#include "JSDOMWrapper.cpp"
-#include "JSDataGridColumnListCustom.cpp"
-#include "JSDataGridDataSource.cpp"
-#include "JSDebugWrapperSet.cpp"
-#include "JSDedicatedWorkerContextCustom.cpp"
-#include "JSDesktopNotificationsCustom.cpp"
-#include "JSDeviceOrientationEventCustom.cpp"
-#include "JSDocumentCustom.cpp"
-#include "JSElementCustom.cpp"
-#include "JSEventCustom.cpp"
-#include "JSEventListener.cpp"
-#include "JSEventSourceCustom.cpp"
-#include "JSEventTarget.cpp"
-#include "JSExceptionBase.cpp"
-#include "JSGeolocationCustom.cpp"
-#include "JSHTMLAllCollectionCustom.cpp"
-#include "JSHTMLAppletElementCustom.cpp"
-#include "JSHTMLCanvasElementCustom.cpp"
-#include "JSHTMLCollectionCustom.cpp"
-#include "JSHTMLDataGridElementCustom.cpp"
-#include "JSHTMLDocumentCustom.cpp"
-#include "JSHTMLElementCustom.cpp"
-#include "JSHTMLEmbedElementCustom.cpp"
-#include "JSHTMLFormElementCustom.cpp"
-#include "JSHTMLFrameElementCustom.cpp"
-#include "JSHTMLFrameSetElementCustom.cpp"
-#include "JSHTMLInputElementCustom.cpp"
-#include "JSHTMLLinkElementCustom.cpp"
-#include "JSHTMLObjectElementCustom.cpp"
-#include "JSHTMLOptionsCollectionCustom.cpp"
-#include "JSHTMLOutputElementCustom.cpp"
-#include "JSHTMLSelectElementCustom.cpp"
-#include "JSHTMLStyleElementCustom.cpp"
-#include "JSHistoryCustom.cpp"
-#include "JSImageConstructor.cpp"
-#include "JSImageDataCustom.cpp"
-#include "JSInjectedScriptHostCustom.cpp"
-#include "JSInspectorFrontendHostCustom.cpp"
-#include "JSJavaScriptCallFrameCustom.cpp"
-#include "JSLazyEventListener.cpp"
-#include "JSLocationCustom.cpp"
-#include "JSMainThreadExecState.cpp"
-#include "JSMessageChannelCustom.cpp"
-#include "JSMessageEventCustom.cpp"
-#include "JSMessagePortCustom.cpp"
-#include "JSNamedNodeMapCustom.cpp"
-#include "JSNavigatorCustom.cpp"
-#include "JSNodeCustom.cpp"
-#include "JSNodeFilterCondition.cpp"
-#include "JSNodeFilterCustom.cpp"
-#include "JSNodeIteratorCustom.cpp"
-#include "JSNodeListCustom.cpp"
-#include "JSOptionConstructor.cpp"
-#include "JSPluginElementFunctions.cpp"
-#include "JSPopStateEventCustom.cpp"
-#include "JSProcessingInstructionCustom.cpp"
-#include "JSSQLResultSetRowListCustom.cpp"
-#include "JSSQLTransactionCustom.cpp"
-#include "JSSQLTransactionSyncCustom.cpp"
-#include "JSSVGElementInstanceCustom.cpp"
-#include "JSSVGLengthCustom.cpp"
-#include "JSSVGPathSegCustom.cpp"
-#include "JSScriptProfileNodeCustom.cpp"
-#include "JSSharedWorkerCustom.cpp"
-#include "JSStorageCustom.cpp"
-#include "JSStyleSheetCustom.cpp"
-#include "JSStyleSheetListCustom.cpp"
-#include "JSTextCustom.cpp"
-#include "JSTouchCustom.cpp"
-#include "JSTouchListCustom.cpp"
-#include "JSTreeWalkerCustom.cpp"
-#include "JSWebKitCSSKeyframeRuleCustom.cpp"
-#include "JSWebKitCSSKeyframesRuleCustom.cpp"
-#include "JSWebKitCSSMatrixCustom.cpp"
-#include "JSWebKitPointCustom.cpp"
-#include "JSWebSocketCustom.cpp"
-#include "JSWorkerContextBase.cpp"
-#include "JSWorkerContextCustom.cpp"
-#include "JSWorkerContextErrorHandler.cpp"
-#include "JSWorkerCustom.cpp"
-#include "JSXMLHttpRequestCustom.cpp"
-#include "JSXMLHttpRequestUploadCustom.cpp"
-#include "JSXSLTProcessorCustom.cpp"
-#include "JavaScriptCallFrame.cpp"
-#include "MemoryInfo.cpp"
-#include "ScheduledAction.cpp"
-#include "ScriptCachedFrameData.cpp"
-#include "ScriptCallStackFactory.cpp"
-#include "ScriptController.cpp"
-#include "ScriptControllerWin.cpp"
-#include "ScriptDebugServer.cpp"
-#include "ScriptEventListener.cpp"
-#include "ScriptFunctionCall.cpp"
-#include "ScriptGCEvent.cpp"
-#include "ScriptProfiler.cpp"
-#include "ScriptState.cpp"
-#include "SerializedScriptValue.cpp"
-#include "WorkerScriptController.cpp"
diff --git a/WebCore/bindings/js/JSCDATASectionCustom.cpp b/WebCore/bindings/js/JSCDATASectionCustom.cpp
deleted file mode 100644
index c2738cc..0000000
--- a/WebCore/bindings/js/JSCDATASectionCustom.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCDATASection.h"
-
-#include "CDATASection.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue toJSNewlyCreated(ExecState* exec, JSDOMGlobalObject* globalObject, CDATASection* section)
-{
- if (!section)
- return jsNull();
-
- return CREATE_DOM_NODE_WRAPPER(exec, globalObject, CDATASection, section);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSCSSFontFaceRuleCustom.cpp b/WebCore/bindings/js/JSCSSFontFaceRuleCustom.cpp
deleted file mode 100644
index a08c180..0000000
--- a/WebCore/bindings/js/JSCSSFontFaceRuleCustom.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCSSFontFaceRule.h"
-
-#include "CSSFontFaceRule.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSCSSFontFaceRule::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (CSSMutableStyleDeclaration* style = static_cast<CSSFontFaceRule*>(impl())->style())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), style);
-}
-
-}
diff --git a/WebCore/bindings/js/JSCSSImportRuleCustom.cpp b/WebCore/bindings/js/JSCSSImportRuleCustom.cpp
deleted file mode 100644
index 3db517d..0000000
--- a/WebCore/bindings/js/JSCSSImportRuleCustom.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCSSImportRule.h"
-
-#include "CSSImportRule.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSCSSImportRule::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (CSSStyleSheet* sheet = static_cast<CSSImportRule*>(impl())->styleSheet())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), sheet);
-
- if (MediaList* media = static_cast<CSSImportRule*>(impl())->media())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), media);
-}
-
-}
diff --git a/WebCore/bindings/js/JSCSSMediaRuleCustom.cpp b/WebCore/bindings/js/JSCSSMediaRuleCustom.cpp
deleted file mode 100644
index b5230fc..0000000
--- a/WebCore/bindings/js/JSCSSMediaRuleCustom.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCSSMediaRule.h"
-
-#include "CSSMediaRule.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSCSSMediaRule::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (MediaList* media = static_cast<CSSMediaRule*>(impl())->media())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), media);
-
- if (CSSRuleList* rules = static_cast<CSSMediaRule*>(impl())->cssRules())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), rules);
-}
-
-}
diff --git a/WebCore/bindings/js/JSCSSPageRuleCustom.cpp b/WebCore/bindings/js/JSCSSPageRuleCustom.cpp
deleted file mode 100644
index c7ac04b..0000000
--- a/WebCore/bindings/js/JSCSSPageRuleCustom.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCSSPageRule.h"
-
-#include "CSSPageRule.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSCSSPageRule::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (CSSMutableStyleDeclaration* style = static_cast<CSSPageRule*>(impl())->style())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), style);
-}
-
-}
diff --git a/WebCore/bindings/js/JSCSSRuleCustom.cpp b/WebCore/bindings/js/JSCSSRuleCustom.cpp
deleted file mode 100644
index 4d226d0..0000000
--- a/WebCore/bindings/js/JSCSSRuleCustom.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCSSRule.h"
-
-#include "CSSCharsetRule.h"
-#include "CSSFontFaceRule.h"
-#include "CSSImportRule.h"
-#include "CSSMediaRule.h"
-#include "CSSPageRule.h"
-#include "CSSStyleRule.h"
-#include "JSCSSCharsetRule.h"
-#include "JSCSSFontFaceRule.h"
-#include "JSCSSImportRule.h"
-#include "JSCSSMediaRule.h"
-#include "JSCSSPageRule.h"
-#include "JSCSSStyleRule.h"
-#include "JSWebKitCSSKeyframeRule.h"
-#include "JSWebKitCSSKeyframesRule.h"
-#include "WebKitCSSKeyframeRule.h"
-#include "WebKitCSSKeyframesRule.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSCSSRule::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (CSSStyleSheet* parentStyleSheet = impl()->parentStyleSheet())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), parentStyleSheet);
-
- if (CSSRule* parentRule = impl()->parentRule())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), parentRule);
-}
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, CSSRule* rule)
-{
- if (!rule)
- return jsNull();
-
- DOMObject* wrapper = getCachedDOMObjectWrapper(exec, rule);
- if (wrapper)
- return wrapper;
-
- switch (rule->type()) {
- case CSSRule::STYLE_RULE:
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CSSStyleRule, rule);
- break;
- case CSSRule::MEDIA_RULE:
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CSSMediaRule, rule);
- break;
- case CSSRule::FONT_FACE_RULE:
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CSSFontFaceRule, rule);
- break;
- case CSSRule::PAGE_RULE:
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CSSPageRule, rule);
- break;
- case CSSRule::IMPORT_RULE:
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CSSImportRule, rule);
- break;
- case CSSRule::CHARSET_RULE:
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CSSCharsetRule, rule);
- break;
- case CSSRule::WEBKIT_KEYFRAME_RULE:
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, WebKitCSSKeyframeRule, rule);
- break;
- case CSSRule::WEBKIT_KEYFRAMES_RULE:
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, WebKitCSSKeyframesRule, rule);
- break;
- default:
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CSSRule, rule);
- }
-
- return wrapper;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSCSSRuleListCustom.cpp b/WebCore/bindings/js/JSCSSRuleListCustom.cpp
deleted file mode 100644
index be3a9a2..0000000
--- a/WebCore/bindings/js/JSCSSRuleListCustom.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All right reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCSSRuleList.h"
-
-#include "CSSRuleList.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSCSSRuleList::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- CSSRuleList* list = impl();
- JSGlobalData& globalData = *Heap::heap(this)->globalData();
-
- unsigned length = list->length();
- for (unsigned i = 0; i < length; ++i)
- markDOMObjectWrapper(markStack, globalData, list->item(i));
-}
-
-}
diff --git a/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp b/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp
deleted file mode 100644
index 1a448ee..0000000
--- a/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCSSStyleDeclarationCustom.h"
-
-#include "CSSMutableStyleDeclaration.h"
-#include "CSSPrimitiveValue.h"
-#include "CSSValue.h"
-#include "PlatformString.h"
-#include <runtime/StringObjectThatMasqueradesAsUndefined.h>
-#include <runtime/StringPrototype.h>
-#include <wtf/ASCIICType.h>
-#include <wtf/text/AtomicString.h>
-
-using namespace JSC;
-using namespace WTF;
-
-namespace WebCore {
-
-void JSCSSStyleDeclaration::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- CSSStyleDeclaration* declaration = impl();
- JSGlobalData& globalData = *Heap::heap(this)->globalData();
-
- if (CSSRule* parentRule = declaration->parentRule())
- markDOMObjectWrapper(markStack, globalData, parentRule);
-
- if (declaration->isMutableStyleDeclaration()) {
- CSSMutableStyleDeclaration* mutableDeclaration = static_cast<CSSMutableStyleDeclaration*>(declaration);
- CSSMutableStyleDeclaration::const_iterator end = mutableDeclaration->end();
- for (CSSMutableStyleDeclaration::const_iterator it = mutableDeclaration->begin(); it != end; ++it)
- markDOMObjectWrapper(markStack, globalData, it->value());
- }
-}
-
-// Check for a CSS prefix.
-// Passed prefix is all lowercase.
-// First character of the prefix within the property name may be upper or lowercase.
-// Other characters in the prefix within the property name must be lowercase.
-// The prefix within the property name must be followed by a capital letter.
-static bool hasCSSPropertyNamePrefix(const Identifier& propertyName, const char* prefix)
-{
-#ifndef NDEBUG
- ASSERT(*prefix);
- for (const char* p = prefix; *p; ++p)
- ASSERT(isASCIILower(*p));
- ASSERT(propertyName.length());
-#endif
-
- if (toASCIILower(propertyName.characters()[0]) != prefix[0])
- return false;
-
- unsigned length = propertyName.length();
- for (unsigned i = 1; i < length; ++i) {
- if (!prefix[i])
- return isASCIIUpper(propertyName.characters()[i]);
- if (propertyName.characters()[i] != prefix[i])
- return false;
- }
- return false;
-}
-
-static String cssPropertyName(const Identifier& propertyName, bool* hadPixelOrPosPrefix = 0)
-{
- if (hadPixelOrPosPrefix)
- *hadPixelOrPosPrefix = false;
-
- unsigned length = propertyName.length();
- if (!length)
- return String();
-
- Vector<UChar> name;
- name.reserveInitialCapacity(length);
-
- unsigned i = 0;
-
- if (hasCSSPropertyNamePrefix(propertyName, "css"))
- i += 3;
- else if (hasCSSPropertyNamePrefix(propertyName, "pixel")) {
- i += 5;
- if (hadPixelOrPosPrefix)
- *hadPixelOrPosPrefix = true;
- } else if (hasCSSPropertyNamePrefix(propertyName, "pos")) {
- i += 3;
- if (hadPixelOrPosPrefix)
- *hadPixelOrPosPrefix = true;
- } else if (hasCSSPropertyNamePrefix(propertyName, "webkit")
- || hasCSSPropertyNamePrefix(propertyName, "khtml")
- || hasCSSPropertyNamePrefix(propertyName, "apple"))
- name.append('-');
- else {
- if (isASCIIUpper(propertyName.characters()[0]))
- return String();
- }
-
- name.append(toASCIILower(propertyName.characters()[i++]));
-
- for (; i < length; ++i) {
- UChar c = propertyName.characters()[i];
- if (!isASCIIUpper(c))
- name.append(c);
- else {
- name.append('-');
- name.append(toASCIILower(c));
- }
- }
-
- return String::adopt(name);
-}
-
-static bool isCSSPropertyName(const Identifier& propertyName)
-{
- return CSSStyleDeclaration::isPropertyName(cssPropertyName(propertyName));
-}
-
-bool JSCSSStyleDeclaration::canGetItemsForName(ExecState*, CSSStyleDeclaration*, const Identifier& propertyName)
-{
- return isCSSPropertyName(propertyName);
-}
-
-// FIXME: You can get these properties, and set them (see putDelegate below),
-// but you should also be able to enumerate them.
-JSValue JSCSSStyleDeclaration::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSCSSStyleDeclaration* thisObj = static_cast<JSCSSStyleDeclaration*>(asObject(slotBase));
-
- // Set up pixelOrPos boolean to handle the fact that
- // pixelTop returns "CSS Top" as number value in unit pixels
- // posTop returns "CSS top" as number value in unit pixels _if_ its a
- // positioned element. if it is not a positioned element, return 0
- // from MSIE documentation FIXME: IMPLEMENT THAT (Dirk)
- bool pixelOrPos;
- String prop = cssPropertyName(propertyName, &pixelOrPos);
- RefPtr<CSSValue> v = thisObj->impl()->getPropertyCSSValue(prop);
- if (v) {
- if (pixelOrPos && v->cssValueType() == CSSValue::CSS_PRIMITIVE_VALUE)
- return jsNumber(static_pointer_cast<CSSPrimitiveValue>(v)->getFloatValue(CSSPrimitiveValue::CSS_PX));
- return jsStringOrNull(exec, v->cssText());
- }
-
- // If the property is a shorthand property (such as "padding"),
- // it can only be accessed using getPropertyValue.
-
- // Make the SVG 'filter' attribute undetectable, to avoid confusion with the IE 'filter' attribute.
- if (propertyName == "filter")
- return StringObjectThatMasqueradesAsUndefined::create(exec, stringToUString(thisObj->impl()->getPropertyValue(prop)));
-
- return jsString(exec, thisObj->impl()->getPropertyValue(prop));
-}
-
-
-bool JSCSSStyleDeclaration::putDelegate(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot&)
-{
- if (!isCSSPropertyName(propertyName))
- return false;
-
- bool pixelOrPos;
- String prop = cssPropertyName(propertyName, &pixelOrPos);
- String propValue = valueToStringWithNullCheck(exec, value);
- if (pixelOrPos)
- propValue += "px";
- ExceptionCode ec = 0;
- impl()->setProperty(prop, propValue, ec);
- setDOMException(exec, ec);
- return true;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSCSSStyleDeclarationCustom.h b/WebCore/bindings/js/JSCSSStyleDeclarationCustom.h
deleted file mode 100644
index 32ecbe0..0000000
--- a/WebCore/bindings/js/JSCSSStyleDeclarationCustom.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSCSSStyleDeclarationCustom_h
-#define JSCSSStyleDeclarationCustom_h
-
-#include "JSCSSStyleDeclaration.h"
-
-#endif // JSCSSStyleDeclarationCustom_h
diff --git a/WebCore/bindings/js/JSCSSStyleRuleCustom.cpp b/WebCore/bindings/js/JSCSSStyleRuleCustom.cpp
deleted file mode 100644
index 61745ec..0000000
--- a/WebCore/bindings/js/JSCSSStyleRuleCustom.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCSSStyleRule.h"
-
-#include "CSSStyleRule.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSCSSStyleRule::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (CSSMutableStyleDeclaration* style = static_cast<CSSStyleRule*>(impl())->style())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), style);
-}
-
-}
diff --git a/WebCore/bindings/js/JSCSSValueCustom.cpp b/WebCore/bindings/js/JSCSSValueCustom.cpp
deleted file mode 100644
index 83c1d3a..0000000
--- a/WebCore/bindings/js/JSCSSValueCustom.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCSSValue.h"
-
-#include "CSSPrimitiveValue.h"
-#include "CSSValueList.h"
-#include "JSCSSPrimitiveValue.h"
-#include "JSCSSValueList.h"
-#include "JSWebKitCSSTransformValue.h"
-#include "WebKitCSSTransformValue.h"
-
-#if ENABLE(SVG)
-#include "JSSVGColor.h"
-#include "JSSVGPaint.h"
-#include "SVGColor.h"
-#include "SVGPaint.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, CSSValue* value)
-{
- if (!value)
- return jsNull();
-
- DOMObject* wrapper = getCachedDOMObjectWrapper(exec, value);
-
- if (wrapper)
- return wrapper;
-
- if (value->isWebKitCSSTransformValue())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, WebKitCSSTransformValue, value);
- else if (value->isValueList())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CSSValueList, value);
-#if ENABLE(SVG)
- else if (value->isSVGPaint())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPaint, value);
- else if (value->isSVGColor())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGColor, value);
-#endif
- else if (value->isPrimitiveValue())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CSSPrimitiveValue, value);
- else
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CSSValue, value);
-
- return wrapper;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSCallbackData.cpp b/WebCore/bindings/js/JSCallbackData.cpp
deleted file mode 100644
index 204c348..0000000
--- a/WebCore/bindings/js/JSCallbackData.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCallbackData.h"
-
-#include "Document.h"
-#include "JSDOMBinding.h"
-#include "JSMainThreadExecState.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSCallbackData::deleteData(void* context)
-{
- delete static_cast<JSCallbackData*>(context);
-}
-
-JSValue JSCallbackData::invokeCallback(MarkedArgumentBuffer& args, bool* raisedException)
-{
- ASSERT(callback());
- ASSERT(globalObject());
-
- ExecState* exec = globalObject()->globalExec();
- JSValue function = callback()->get(exec, Identifier(exec, "handleEvent"));
-
- CallData callData;
- CallType callType = getCallData(function, callData);
- if (callType == CallTypeNone) {
- callType = callback()->getCallData(callData);
- if (callType == CallTypeNone)
- return JSValue();
- function = callback();
- }
-
- globalObject()->globalData().timeoutChecker.start();
- ScriptExecutionContext* context = globalObject()->scriptExecutionContext();
- // We will fail to get the context if the frame has been detached.
- if (!context)
- return JSValue();
-
- bool contextIsDocument = context->isDocument();
- JSValue result = contextIsDocument
- ? JSMainThreadExecState::call(exec, function, callType, callData, callback(), args)
- : JSC::call(exec, function, callType, callData, callback(), args);
- globalObject()->globalData().timeoutChecker.stop();
-
- if (contextIsDocument)
- Document::updateStyleForAllDocuments();
-
- if (exec->hadException()) {
- reportCurrentException(exec);
- if (raisedException)
- *raisedException = true;
- return result;
- }
-
- return result;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSCallbackData.h b/WebCore/bindings/js/JSCallbackData.h
deleted file mode 100644
index f7b8bfe..0000000
--- a/WebCore/bindings/js/JSCallbackData.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSCallbackData_h
-#define JSCallbackData_h
-
-#include "JSDOMBinding.h"
-#include "JSDOMGlobalObject.h"
-#include "ScriptExecutionContext.h"
-#include <runtime/JSObject.h>
-#include <runtime/Protect.h>
-#include <wtf/Threading.h>
-
-namespace WebCore {
-
-// We have to clean up this data on the context thread because unprotecting a
-// JSObject on the wrong thread without synchronization would corrupt the heap
-// (and synchronization would be slow).
-
-class JSCallbackData {
-public:
- static void deleteData(void*);
-
- JSCallbackData(JSC::JSObject* callback, JSDOMGlobalObject* globalObject)
- : m_callback(callback)
- , m_globalObject(globalObject)
-#ifndef NDEBUG
- , m_thread(currentThread())
-#endif
- {
- }
-
- ~JSCallbackData()
- {
- ASSERT(m_thread == currentThread());
- }
-
- JSC::JSObject* callback() { return m_callback.get(); }
- JSDOMGlobalObject* globalObject() { return m_globalObject.get(); }
-
- JSC::JSValue invokeCallback(JSC::MarkedArgumentBuffer&, bool* raisedException = 0);
-
-private:
- JSC::ProtectedPtr<JSC::JSObject> m_callback;
- JSC::ProtectedPtr<JSDOMGlobalObject> m_globalObject;
-#ifndef NDEBUG
- ThreadIdentifier m_thread;
-#endif
-};
-
-class DeleteCallbackDataTask : public ScriptExecutionContext::Task {
-public:
- static PassOwnPtr<DeleteCallbackDataTask> create(JSCallbackData* data)
- {
- return new DeleteCallbackDataTask(data);
- }
-
- virtual void performTask(ScriptExecutionContext*)
- {
- delete m_data;
- }
- virtual bool isCleanupTask() const { return true; }
-private:
-
- DeleteCallbackDataTask(JSCallbackData* data) : m_data(data) {}
-
- JSCallbackData* m_data;
-};
-
-} // namespace WebCore
-
-#endif // JSCallbackData_h
diff --git a/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp b/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp
deleted file mode 100644
index 3bbe9c7..0000000
--- a/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp
+++ /dev/null
@@ -1,448 +0,0 @@
-/*
- * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "JSCanvasRenderingContext2D.h"
-
-#include "CanvasGradient.h"
-#include "CanvasPattern.h"
-#include "CanvasRenderingContext2D.h"
-#include "CanvasStyle.h"
-#include "ExceptionCode.h"
-#include "FloatRect.h"
-#include "HTMLCanvasElement.h"
-#include "HTMLImageElement.h"
-#include "HTMLVideoElement.h"
-#include "ImageData.h"
-#include "JSCanvasGradient.h"
-#include "JSCanvasPattern.h"
-#include "JSHTMLCanvasElement.h"
-#include "JSHTMLImageElement.h"
-#include "JSHTMLVideoElement.h"
-#include "JSImageData.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-static JSValue toJS(ExecState* exec, CanvasStyle* style)
-{
- if (style->canvasGradient())
- return toJS(exec, style->canvasGradient());
- if (style->canvasPattern())
- return toJS(exec, style->canvasPattern());
- return jsString(exec, style->color());
-}
-
-static PassRefPtr<CanvasStyle> toHTMLCanvasStyle(ExecState*, JSValue value)
-{
- if (!value.isObject())
- return 0;
- JSObject* object = asObject(value);
- if (object->inherits(&JSCanvasGradient::s_info))
- return CanvasStyle::createFromGradient(static_cast<JSCanvasGradient*>(object)->impl());
- if (object->inherits(&JSCanvasPattern::s_info))
- return CanvasStyle::createFromPattern(static_cast<JSCanvasPattern*>(object)->impl());
- return 0;
-}
-
-JSValue JSCanvasRenderingContext2D::strokeStyle(ExecState* exec) const
-{
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
- return toJS(exec, context->strokeStyle());
-}
-
-void JSCanvasRenderingContext2D::setStrokeStyle(ExecState* exec, JSValue value)
-{
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
- if (value.isString()) {
- context->setStrokeColor(ustringToString(asString(value)->value(exec)));
- return;
- }
- context->setStrokeStyle(toHTMLCanvasStyle(exec, value));
-}
-
-JSValue JSCanvasRenderingContext2D::fillStyle(ExecState* exec) const
-{
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
- return toJS(exec, context->fillStyle());
-}
-
-void JSCanvasRenderingContext2D::setFillStyle(ExecState* exec, JSValue value)
-{
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
- if (value.isString()) {
- context->setFillColor(ustringToString(asString(value)->value(exec)));
- return;
- }
- context->setFillStyle(toHTMLCanvasStyle(exec, value));
-}
-
-JSValue JSCanvasRenderingContext2D::setFillColor(ExecState* exec)
-{
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
-
- // string arg = named color
- // number arg = gray color
- // string arg, number arg = named color, alpha
- // number arg, number arg = gray color, alpha
- // 4 args = r, g, b, a
- // 5 args = c, m, y, k, a
- switch (exec->argumentCount()) {
- case 1:
- if (exec->argument(0).isString())
- context->setFillColor(ustringToString(asString(exec->argument(0))->value(exec)));
- else
- context->setFillColor(exec->argument(0).toFloat(exec));
- break;
- case 2:
- if (exec->argument(0).isString())
- context->setFillColor(ustringToString(asString(exec->argument(0))->value(exec)), exec->argument(1).toFloat(exec));
- else
- context->setFillColor(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec));
- break;
- case 4:
- context->setFillColor(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec),
- exec->argument(2).toFloat(exec), exec->argument(3).toFloat(exec));
- break;
- case 5:
- context->setFillColor(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec),
- exec->argument(2).toFloat(exec), exec->argument(3).toFloat(exec), exec->argument(4).toFloat(exec));
- break;
- default:
- return throwSyntaxError(exec);
- }
- return jsUndefined();
-}
-
-JSValue JSCanvasRenderingContext2D::setStrokeColor(ExecState* exec)
-{
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
-
- // string arg = named color
- // number arg = gray color
- // string arg, number arg = named color, alpha
- // number arg, number arg = gray color, alpha
- // 4 args = r, g, b, a
- // 5 args = c, m, y, k, a
- switch (exec->argumentCount()) {
- case 1:
- if (exec->argument(0).isString())
- context->setStrokeColor(ustringToString(asString(exec->argument(0))->value(exec)));
- else
- context->setStrokeColor(exec->argument(0).toFloat(exec));
- break;
- case 2:
- if (exec->argument(0).isString())
- context->setStrokeColor(ustringToString(asString(exec->argument(0))->value(exec)), exec->argument(1).toFloat(exec));
- else
- context->setStrokeColor(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec));
- break;
- case 4:
- context->setStrokeColor(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec),
- exec->argument(2).toFloat(exec), exec->argument(3).toFloat(exec));
- break;
- case 5:
- context->setStrokeColor(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec),
- exec->argument(2).toFloat(exec), exec->argument(3).toFloat(exec), exec->argument(4).toFloat(exec));
- break;
- default:
- return throwSyntaxError(exec);
- }
-
- return jsUndefined();
-}
-
-JSValue JSCanvasRenderingContext2D::strokeRect(ExecState* exec)
-{
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
-
- if (exec->argumentCount() <= 4)
- context->strokeRect(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec),
- exec->argument(2).toFloat(exec), exec->argument(3).toFloat(exec));
- else
- context->strokeRect(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec),
- exec->argument(2).toFloat(exec), exec->argument(3).toFloat(exec), exec->argument(4).toFloat(exec));
-
- return jsUndefined();
-}
-
-JSValue JSCanvasRenderingContext2D::drawImage(ExecState* exec)
-{
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
-
- // DrawImage has three variants:
- // drawImage(img, dx, dy)
- // drawImage(img, dx, dy, dw, dh)
- // drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh)
- // Composite operation is specified with globalCompositeOperation.
- // The img parameter can be a <img> or <canvas> element.
- JSValue value = exec->argument(0);
- if (value.isNull()) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
- if (!value.isObject())
- return throwTypeError(exec);
-
- JSObject* o = asObject(value);
- ExceptionCode ec = 0;
- if (o->inherits(&JSHTMLImageElement::s_info)) {
- HTMLImageElement* imgElt = static_cast<HTMLImageElement*>(static_cast<JSHTMLElement*>(o)->impl());
- switch (exec->argumentCount()) {
- case 3:
- context->drawImage(imgElt, exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec), ec);
- break;
- case 5:
- context->drawImage(imgElt, exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec),
- exec->argument(3).toFloat(exec), exec->argument(4).toFloat(exec), ec);
- setDOMException(exec, ec);
- break;
- case 9:
- context->drawImage(imgElt, FloatRect(exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec),
- exec->argument(3).toFloat(exec), exec->argument(4).toFloat(exec)),
- FloatRect(exec->argument(5).toFloat(exec), exec->argument(6).toFloat(exec),
- exec->argument(7).toFloat(exec), exec->argument(8).toFloat(exec)), ec);
- setDOMException(exec, ec);
- break;
- default:
- return throwSyntaxError(exec);
- }
- } else if (o->inherits(&JSHTMLCanvasElement::s_info)) {
- HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(static_cast<JSHTMLElement*>(o)->impl());
- switch (exec->argumentCount()) {
- case 3:
- context->drawImage(canvas, exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec), ec);
- setDOMException(exec, ec);
- break;
- case 5:
- context->drawImage(canvas, exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec),
- exec->argument(3).toFloat(exec), exec->argument(4).toFloat(exec), ec);
- setDOMException(exec, ec);
- break;
- case 9:
- context->drawImage(canvas, FloatRect(exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec),
- exec->argument(3).toFloat(exec), exec->argument(4).toFloat(exec)),
- FloatRect(exec->argument(5).toFloat(exec), exec->argument(6).toFloat(exec),
- exec->argument(7).toFloat(exec), exec->argument(8).toFloat(exec)), ec);
- setDOMException(exec, ec);
- break;
- default:
- return throwSyntaxError(exec);
- }
-#if ENABLE(VIDEO)
- } else if (o->inherits(&JSHTMLVideoElement::s_info)) {
- HTMLVideoElement* video = static_cast<HTMLVideoElement*>(static_cast<JSHTMLElement*>(o)->impl());
- switch (exec->argumentCount()) {
- case 3:
- context->drawImage(video, exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec), ec);
- break;
- case 5:
- context->drawImage(video, exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec),
- exec->argument(3).toFloat(exec), exec->argument(4).toFloat(exec), ec);
- setDOMException(exec, ec);
- break;
- case 9:
- context->drawImage(video, FloatRect(exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec),
- exec->argument(3).toFloat(exec), exec->argument(4).toFloat(exec)),
- FloatRect(exec->argument(5).toFloat(exec), exec->argument(6).toFloat(exec),
- exec->argument(7).toFloat(exec), exec->argument(8).toFloat(exec)), ec);
- setDOMException(exec, ec);
- break;
- default:
- return throwSyntaxError(exec);
- }
-#endif
- } else
- return throwTypeError(exec);
-
- return jsUndefined();
-}
-
-JSValue JSCanvasRenderingContext2D::drawImageFromRect(ExecState* exec)
-{
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
-
- JSValue value = exec->argument(0);
- if (!value.isObject())
- return throwTypeError(exec);
- JSObject* o = asObject(value);
-
- if (!o->inherits(&JSHTMLImageElement::s_info))
- return throwTypeError(exec);
- context->drawImageFromRect(static_cast<HTMLImageElement*>(static_cast<JSHTMLElement*>(o)->impl()),
- exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec),
- exec->argument(3).toFloat(exec), exec->argument(4).toFloat(exec),
- exec->argument(5).toFloat(exec), exec->argument(6).toFloat(exec),
- exec->argument(7).toFloat(exec), exec->argument(8).toFloat(exec),
- ustringToString(exec->argument(9).toString(exec)));
- return jsUndefined();
-}
-
-JSValue JSCanvasRenderingContext2D::setShadow(ExecState* exec)
-{
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
-
- switch (exec->argumentCount()) {
- case 3:
- context->setShadow(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec),
- exec->argument(2).toFloat(exec));
- break;
- case 4:
- if (exec->argument(3).isString())
- context->setShadow(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec),
- exec->argument(2).toFloat(exec), ustringToString(asString(exec->argument(3))->value(exec)));
- else
- context->setShadow(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec),
- exec->argument(2).toFloat(exec), exec->argument(3).toFloat(exec));
- break;
- case 5:
- if (exec->argument(3).isString())
- context->setShadow(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec),
- exec->argument(2).toFloat(exec), ustringToString(asString(exec->argument(3))->value(exec)),
- exec->argument(4).toFloat(exec));
- else
- context->setShadow(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec),
- exec->argument(2).toFloat(exec), exec->argument(3).toFloat(exec),
- exec->argument(4).toFloat(exec));
- break;
- case 7:
- context->setShadow(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec),
- exec->argument(2).toFloat(exec), exec->argument(3).toFloat(exec),
- exec->argument(4).toFloat(exec), exec->argument(5).toFloat(exec),
- exec->argument(6).toFloat(exec));
- break;
- case 8:
- context->setShadow(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec),
- exec->argument(2).toFloat(exec), exec->argument(3).toFloat(exec),
- exec->argument(4).toFloat(exec), exec->argument(5).toFloat(exec),
- exec->argument(6).toFloat(exec), exec->argument(7).toFloat(exec));
- break;
- default:
- return throwSyntaxError(exec);
- }
-
- return jsUndefined();
-}
-
-JSValue JSCanvasRenderingContext2D::createPattern(ExecState* exec)
-{
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
-
- JSValue value = exec->argument(0);
- if (!value.isObject()) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
- JSObject* o = asObject(value);
-
- if (o->inherits(&JSHTMLImageElement::s_info)) {
- ExceptionCode ec;
- JSValue pattern = toJS(exec,
- context->createPattern(static_cast<HTMLImageElement*>(static_cast<JSHTMLElement*>(o)->impl()),
- valueToStringWithNullCheck(exec, exec->argument(1)), ec).get());
- setDOMException(exec, ec);
- return pattern;
- }
- if (o->inherits(&JSHTMLCanvasElement::s_info)) {
- ExceptionCode ec;
- JSValue pattern = toJS(exec,
- context->createPattern(static_cast<HTMLCanvasElement*>(static_cast<JSHTMLElement*>(o)->impl()),
- valueToStringWithNullCheck(exec, exec->argument(1)), ec).get());
- setDOMException(exec, ec);
- return pattern;
- }
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
-}
-
-JSValue JSCanvasRenderingContext2D::createImageData(ExecState* exec)
-{
- // createImageData has two variants
- // createImageData(ImageData)
- // createImageData(width, height)
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
- RefPtr<ImageData> imageData = 0;
-
- ExceptionCode ec = 0;
- if (exec->argumentCount() == 1)
- imageData = context->createImageData(toImageData(exec->argument(0)), ec);
- else if (exec->argumentCount() == 2)
- imageData = context->createImageData(exec->argument(0).toFloat(exec), exec->argument(1).toFloat(exec), ec);
-
- setDOMException(exec, ec);
- return toJS(exec, globalObject(), WTF::getPtr(imageData));
-}
-
-JSValue JSCanvasRenderingContext2D::putImageData(ExecState* exec)
-{
- // putImageData has two variants
- // putImageData(ImageData, x, y)
- // putImageData(ImageData, x, y, dirtyX, dirtyY, dirtyWidth, dirtyHeight)
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
-
- ExceptionCode ec = 0;
- if (exec->argumentCount() >= 7)
- context->putImageData(toImageData(exec->argument(0)), exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec),
- exec->argument(3).toFloat(exec), exec->argument(4).toFloat(exec), exec->argument(5).toFloat(exec), exec->argument(6).toFloat(exec), ec);
- else
- context->putImageData(toImageData(exec->argument(0)), exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec), ec);
-
- setDOMException(exec, ec);
- return jsUndefined();
-}
-
-JSValue JSCanvasRenderingContext2D::fillText(ExecState* exec)
-{
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
-
- // string arg = text to draw
- // number arg = x
- // number arg = y
- // optional number arg = maxWidth
- if (exec->argumentCount() < 3 || exec->argumentCount() > 4)
- return throwSyntaxError(exec);
-
- if (exec->argumentCount() == 4)
- context->fillText(ustringToString(exec->argument(0).toString(exec)), exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec), exec->argument(3).toFloat(exec));
- else
- context->fillText(ustringToString(exec->argument(0).toString(exec)), exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec));
- return jsUndefined();
-}
-
-JSValue JSCanvasRenderingContext2D::strokeText(ExecState* exec)
-{
- CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
-
- // string arg = text to draw
- // number arg = x
- // number arg = y
- // optional number arg = maxWidth
- if (exec->argumentCount() < 3 || exec->argumentCount() > 4)
- return throwSyntaxError(exec);
-
- if (exec->argumentCount() == 4)
- context->strokeText(ustringToString(exec->argument(0).toString(exec)), exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec), exec->argument(3).toFloat(exec));
- else
- context->strokeText(ustringToString(exec->argument(0).toString(exec)), exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec));
- return jsUndefined();
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSCanvasRenderingContextCustom.cpp b/WebCore/bindings/js/JSCanvasRenderingContextCustom.cpp
deleted file mode 100644
index df24eb7..0000000
--- a/WebCore/bindings/js/JSCanvasRenderingContextCustom.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCanvasRenderingContext.h"
-
-#include "CanvasRenderingContext2D.h"
-#include "JSCanvasRenderingContext2D.h"
-#if ENABLE(3D_CANVAS)
-#include "WebGLRenderingContext.h"
-#include "JSWebGLRenderingContext.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, CanvasRenderingContext* object)
-{
- if (!object)
- return jsUndefined();
-
-#if ENABLE(3D_CANVAS)
- if (object->is3d())
- return getDOMObjectWrapper<JSWebGLRenderingContext>(exec, globalObject, static_cast<WebGLRenderingContext*>(object));
-#endif
- ASSERT(object->is2d());
- return getDOMObjectWrapper<JSCanvasRenderingContext2D>(exec, globalObject, static_cast<CanvasRenderingContext2D*>(object));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSClipboardCustom.cpp b/WebCore/bindings/js/JSClipboardCustom.cpp
deleted file mode 100644
index 17c6640..0000000
--- a/WebCore/bindings/js/JSClipboardCustom.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSClipboard.h"
-
-#include "Clipboard.h"
-#include "Element.h"
-#include "HTMLImageElement.h"
-#include "HTMLNames.h"
-#include "IntPoint.h"
-#include "JSNode.h"
-#include "Node.h"
-#include "PlatformString.h"
-#include <runtime/ArrayPrototype.h>
-#include <runtime/Error.h>
-#include <wtf/HashSet.h>
-#include <wtf/text/StringHash.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-JSValue JSClipboard::types(ExecState* exec) const
-{
- Clipboard* clipboard = impl();
-
- HashSet<String> types = clipboard->types();
- if (types.isEmpty())
- return jsNull();
-
- MarkedArgumentBuffer list;
- HashSet<String>::const_iterator end = types.end();
- for (HashSet<String>::const_iterator it = types.begin(); it != end; ++it)
- list.append(jsString(exec, stringToUString(*it)));
- return constructArray(exec, list);
-}
-
-JSValue JSClipboard::clearData(ExecState* exec)
-{
- Clipboard* clipboard = impl();
-
- if (!exec->argumentCount()) {
- clipboard->clearAllData();
- return jsUndefined();
- }
-
- if (exec->argumentCount() == 1) {
- clipboard->clearData(ustringToString(exec->argument(0).toString(exec)));
- return jsUndefined();
- }
-
- // FIXME: It does not match the rest of the JS bindings to throw on invalid number of arguments.
- return throwError(exec, createSyntaxError(exec, "clearData: Invalid number of arguments"));
-}
-
-JSValue JSClipboard::getData(ExecState* exec)
-{
- // FIXME: It does not match the rest of the JS bindings to throw on invalid number of arguments.
- if (exec->argumentCount() != 1)
- return throwError(exec, createSyntaxError(exec, "getData: Invalid number of arguments"));
-
- Clipboard* clipboard = impl();
-
- bool success;
- String result = clipboard->getData(ustringToString(exec->argument(0).toString(exec)), success);
- if (!success)
- return jsUndefined();
-
- return jsString(exec, result);
-}
-
-JSValue JSClipboard::setDragImage(ExecState* exec)
-{
- Clipboard* clipboard = impl();
-
- if (!clipboard->isForDragAndDrop())
- return jsUndefined();
-
- // FIXME: It does not match the rest of the JS bindings to throw on invalid number of arguments.
- if (exec->argumentCount() != 3)
- return throwError(exec, createSyntaxError(exec, "setDragImage: Invalid number of arguments"));
-
- int x = exec->argument(1).toInt32(exec);
- int y = exec->argument(2).toInt32(exec);
-
- // See if they passed us a node
- Node* node = toNode(exec->argument(0));
- if (!node)
- return throwTypeError(exec);
-
- // FIXME: This should probably be a TypeError.
- if (!node->isElementNode())
- return throwError(exec, createSyntaxError(exec, "setDragImageFromElement: Invalid first argument"));
-
- if (static_cast<Element*>(node)->hasLocalName(imgTag) && !node->inDocument())
- clipboard->setDragImage(static_cast<HTMLImageElement*>(node)->cachedImage(), IntPoint(x, y));
- else
- clipboard->setDragImageElement(node, IntPoint(x, y));
-
- return jsUndefined();
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSConsoleCustom.cpp b/WebCore/bindings/js/JSConsoleCustom.cpp
deleted file mode 100644
index 6a4fb17..0000000
--- a/WebCore/bindings/js/JSConsoleCustom.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#include "JSConsole.h"
-
-#include "Console.h"
-#include "JSScriptProfile.h"
-#include "ScriptCallStack.h"
-#include "ScriptCallStackFactory.h"
-#include "ScriptProfile.h"
-#include <runtime/JSArray.h>
-#include <wtf/OwnPtr.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-
-typedef Vector<RefPtr<ScriptProfile> > ProfilesArray;
-
-JSValue JSConsole::profiles(ExecState* exec) const
-{
- const ProfilesArray& profiles = impl()->profiles();
- MarkedArgumentBuffer list;
-
- ProfilesArray::const_iterator end = profiles.end();
- for (ProfilesArray::const_iterator iter = profiles.begin(); iter != end; ++iter)
- list.append(toJS(exec, iter->get()));
-
- return constructArray(exec, list);
-}
-
-JSValue JSConsole::profile(ExecState* exec)
-{
- RefPtr<ScriptCallStack> callStack(createScriptCallStack(exec, 1));
- const String& title = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(0));
- if (exec->hadException())
- return jsUndefined();
-
- impl()->profile(title, exec, callStack);
- return jsUndefined();
-}
-
-JSValue JSConsole::profileEnd(ExecState* exec)
-{
- RefPtr<ScriptCallStack> callStack(createScriptCallStack(exec, 1));
- const String& title = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(0));
- if (exec->hadException())
- return jsUndefined();
-
- impl()->profileEnd(title, exec, callStack);
- return jsUndefined();
-}
-
-#endif
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSConvolverNodeCustom.cpp b/WebCore/bindings/js/JSConvolverNodeCustom.cpp
deleted file mode 100644
index db7e244..0000000
--- a/WebCore/bindings/js/JSConvolverNodeCustom.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2010, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(WEB_AUDIO)
-
-#include "ConvolverNode.h"
-
-#include "AudioBuffer.h"
-#include "JSAudioBuffer.h"
-#include "JSConvolverNode.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSConvolverNode::setBuffer(ExecState*, JSValue value)
-{
- ConvolverNode* imp = static_cast<ConvolverNode*>(impl());
- imp->setBuffer(toAudioBuffer(value));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WEB_AUDIO)
diff --git a/WebCore/bindings/js/JSCoordinatesCustom.cpp b/WebCore/bindings/js/JSCoordinatesCustom.cpp
deleted file mode 100644
index 8ef34ad..0000000
--- a/WebCore/bindings/js/JSCoordinatesCustom.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCoordinates.h"
-
-#include "Coordinates.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSCoordinates::altitude(ExecState*) const
-{
- Coordinates* imp = impl();
- if (!imp->canProvideAltitude())
- return jsNull();
- return jsNumber(imp->altitude());
-}
-
-JSValue JSCoordinates::altitudeAccuracy(ExecState*) const
-{
- Coordinates* imp = impl();
- if (!imp->canProvideAltitudeAccuracy())
- return jsNull();
- return jsNumber(imp->altitudeAccuracy());
-}
-
-JSValue JSCoordinates::heading(ExecState*) const
-{
- Coordinates* imp = impl();
- if (!imp->canProvideHeading())
- return jsNull();
- return jsNumber(imp->heading());
-}
-
-JSValue JSCoordinates::speed(ExecState*) const
-{
- Coordinates* imp = impl();
- if (!imp->canProvideSpeed())
- return jsNull();
- return jsNumber(imp->speed());
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSCustomPositionCallback.cpp b/WebCore/bindings/js/JSCustomPositionCallback.cpp
deleted file mode 100644
index 8990520..0000000
--- a/WebCore/bindings/js/JSCustomPositionCallback.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCustomPositionCallback.h"
-
-#if ENABLE(GEOLOCATION)
-
-#include "Frame.h"
-#include "JSGeoposition.h"
-#include "ScriptController.h"
-#include <runtime/JSLock.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-JSCustomPositionCallback::JSCustomPositionCallback(JSObject* callback, JSDOMGlobalObject* globalObject)
- : PositionCallback(globalObject->scriptExecutionContext())
- , m_data(callback, globalObject)
-{
-}
-
-void JSCustomPositionCallback::handleEvent(Geoposition* geoposition)
-{
- // ActiveDOMObject will null our pointer to the ScriptExecutionContext when it goes away.
- if (!scriptExecutionContext())
- return;
-
- RefPtr<JSCustomPositionCallback> protect(this);
-
- JSC::JSLock lock(SilenceAssertionsOnly);
- ExecState* exec = m_data.globalObject()->globalExec();
- MarkedArgumentBuffer args;
- args.append(toJS(exec, deprecatedGlobalObjectForPrototype(exec), geoposition));
- m_data.invokeCallback(args);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(GEOLOCATION)
diff --git a/WebCore/bindings/js/JSCustomPositionCallback.h b/WebCore/bindings/js/JSCustomPositionCallback.h
deleted file mode 100644
index ad5528d..0000000
--- a/WebCore/bindings/js/JSCustomPositionCallback.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSCustomPositionCallback_h
-#define JSCustomPositionCallback_h
-
-#include "JSCallbackData.h"
-#include "PositionCallback.h"
-#include <wtf/Forward.h>
-
-namespace WebCore {
-
-class Geoposition;
-class JSDOMGlobalObject;
-
-class JSCustomPositionCallback : public PositionCallback {
-public:
- static PassRefPtr<JSCustomPositionCallback> create(JSC::JSObject* callback, JSDOMGlobalObject* globalObject)
- {
- return adoptRef(new JSCustomPositionCallback(callback, globalObject));
- }
-
-private:
- JSCustomPositionCallback(JSC::JSObject* callback, JSDOMGlobalObject*);
-
- virtual void handleEvent(Geoposition*);
-
- JSCallbackData m_data;
-};
-
-} // namespace WebCore
-
-#endif // JSCustomPositionCallback_h
diff --git a/WebCore/bindings/js/JSCustomPositionErrorCallback.cpp b/WebCore/bindings/js/JSCustomPositionErrorCallback.cpp
deleted file mode 100644
index 1777387..0000000
--- a/WebCore/bindings/js/JSCustomPositionErrorCallback.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCustomPositionErrorCallback.h"
-
-#if ENABLE(GEOLOCATION)
-
-#include "Frame.h"
-#include "JSPositionError.h"
-#include "ScriptController.h"
-#include <runtime/JSLock.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-JSCustomPositionErrorCallback::JSCustomPositionErrorCallback(JSObject* callback, JSDOMGlobalObject* globalObject)
- : PositionErrorCallback(globalObject->scriptExecutionContext())
- , m_data(callback, globalObject)
-{
-}
-
-void JSCustomPositionErrorCallback::handleEvent(PositionError* positionError)
-{
- // ActiveDOMObject will null our pointer to the ScriptExecutionContext when it goes away.
- if (!scriptExecutionContext())
- return;
-
- RefPtr<JSCustomPositionErrorCallback> protect(this);
-
- JSC::JSLock lock(SilenceAssertionsOnly);
- ExecState* exec = m_data.globalObject()->globalExec();
- MarkedArgumentBuffer args;
- args.append(toJS(exec, deprecatedGlobalObjectForPrototype(exec), positionError));
-
- m_data.invokeCallback(args);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(GEOLOCATION)
diff --git a/WebCore/bindings/js/JSCustomPositionErrorCallback.h b/WebCore/bindings/js/JSCustomPositionErrorCallback.h
deleted file mode 100644
index 59328ca..0000000
--- a/WebCore/bindings/js/JSCustomPositionErrorCallback.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSCustomPositionErrorCallback_h
-#define JSCustomPositionErrorCallback_h
-
-#include "JSCallbackData.h"
-#include "PositionErrorCallback.h"
-#include <wtf/Forward.h>
-
-namespace WebCore {
-
-class PositionError;
-
-class JSCustomPositionErrorCallback : public PositionErrorCallback {
-public:
- static PassRefPtr<JSCustomPositionErrorCallback> create(JSC::JSObject* callback, JSDOMGlobalObject* globalObject)
- {
- return adoptRef(new JSCustomPositionErrorCallback(callback, globalObject));
- }
-
-private:
- JSCustomPositionErrorCallback(JSC::JSObject* callback, JSDOMGlobalObject* globalObject);
- virtual void handleEvent(PositionError*);
-
- JSCallbackData m_data;
-};
-
-} // namespace WebCore
-
-#endif // JSCustomPositionErrorCallback_h
diff --git a/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp b/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp
deleted file mode 100644
index 69c8865..0000000
--- a/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSSQLStatementErrorCallback.h"
-
-#if ENABLE(DATABASE)
-
-#include "JSSQLError.h"
-#include "JSSQLTransaction.h"
-#include "ScriptExecutionContext.h"
-#include <runtime/JSLock.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-bool JSSQLStatementErrorCallback::handleEvent(SQLTransaction* transaction, SQLError* error)
-{
- if (!m_data || !m_data->globalObject() || !canInvokeCallback())
- return true;
-
- RefPtr<JSSQLStatementErrorCallback> protect(this);
-
- JSC::JSLock lock(SilenceAssertionsOnly);
-
- ExecState* exec = m_data->globalObject()->globalExec();
- MarkedArgumentBuffer args;
- args.append(toJS(exec, transaction));
- args.append(toJS(exec, error));
-
- bool raisedException = false;
- JSValue result = m_data->invokeCallback(args, &raisedException);
- if (raisedException) {
- // The spec says:
- // "If the error callback returns false, then move on to the next statement..."
- // "Otherwise, the error callback did not return false, or there was no error callback"
- // Therefore an exception and returning true are the same thing - so, return true on an exception
- return true;
- }
- return result.toBoolean(exec);
-}
-
-}
-
-#endif // ENABLE(DATABASE)
diff --git a/WebCore/bindings/js/JSCustomVoidCallback.cpp b/WebCore/bindings/js/JSCustomVoidCallback.cpp
deleted file mode 100644
index 96b5412..0000000
--- a/WebCore/bindings/js/JSCustomVoidCallback.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCustomVoidCallback.h"
-
-#include "Frame.h"
-#include "JSCallbackData.h"
-#include "JSDOMWindowCustom.h"
-#include "ScriptController.h"
-#include <runtime/JSLock.h>
-#include <wtf/MainThread.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-JSCustomVoidCallback::JSCustomVoidCallback(JSObject* callback, JSDOMGlobalObject* globalObject)
- : m_data(new JSCallbackData(callback, globalObject))
- , m_scriptExecutionContext(globalObject->scriptExecutionContext())
-{
-}
-
-JSCustomVoidCallback::~JSCustomVoidCallback()
-{
- if (m_scriptExecutionContext->isContextThread())
- delete m_data;
- else
- m_scriptExecutionContext->postTask(DeleteCallbackDataTask::create(m_data));
-#ifndef NDEBUG
- m_data = 0;
-#endif
-}
-
-void JSCustomVoidCallback::handleEvent()
-{
- ASSERT(m_data);
-
- RefPtr<JSCustomVoidCallback> protect(this);
-
- JSC::JSLock lock(SilenceAssertionsOnly);
- MarkedArgumentBuffer args;
- m_data->invokeCallback(args);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSCustomVoidCallback.h b/WebCore/bindings/js/JSCustomVoidCallback.h
deleted file mode 100644
index 8ffee48..0000000
--- a/WebCore/bindings/js/JSCustomVoidCallback.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSCustomVoidCallback_h
-#define JSCustomVoidCallback_h
-
-#include "JSDOMGlobalObject.h"
-#include "VoidCallback.h"
-#include <runtime/Protect.h>
-#include <wtf/Forward.h>
-
-namespace WebCore {
-
-class JSCallbackData;
-
-class JSCustomVoidCallback : public VoidCallback {
-public:
- static PassRefPtr<JSCustomVoidCallback> create(JSC::JSObject* callback, JSDOMGlobalObject* globalObject)
- {
- return adoptRef(new JSCustomVoidCallback(callback, globalObject));
- }
-
- virtual ~JSCustomVoidCallback();
-
- virtual void handleEvent();
-
-private:
- JSCustomVoidCallback(JSC::JSObject* callback, JSDOMGlobalObject*);
-
- JSCallbackData* m_data;
- ScriptExecutionContext* m_scriptExecutionContext;
-};
-
-} // namespace WebCore
-
-#endif // JSCustomVoidCallback_h
diff --git a/WebCore/bindings/js/JSCustomXPathNSResolver.cpp b/WebCore/bindings/js/JSCustomXPathNSResolver.cpp
deleted file mode 100644
index e8e1369..0000000
--- a/WebCore/bindings/js/JSCustomXPathNSResolver.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2007 Alexey Proskuryakov (ap@nypop.com)
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSCustomXPathNSResolver.h"
-
-#if ENABLE(XPATH)
-
-#include "Document.h"
-#include "ExceptionCode.h"
-#include "Frame.h"
-#include "JSDOMWindowCustom.h"
-#include "ScriptController.h"
-#include <runtime/JSLock.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-PassRefPtr<JSCustomXPathNSResolver> JSCustomXPathNSResolver::create(JSC::ExecState* exec, JSC::JSValue value)
-{
- if (value.isUndefinedOrNull())
- return 0;
-
- JSObject* resolverObject = value.getObject();
- if (!resolverObject) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return 0;
- }
-
- return adoptRef(new JSCustomXPathNSResolver(resolverObject, asJSDOMWindow(exec->dynamicGlobalObject())));
-}
-
-JSCustomXPathNSResolver::JSCustomXPathNSResolver(JSObject* customResolver, JSDOMWindow* globalObject)
- : m_customResolver(customResolver)
- , m_globalObject(globalObject)
-{
-}
-
-JSCustomXPathNSResolver::~JSCustomXPathNSResolver()
-{
-}
-
-String JSCustomXPathNSResolver::lookupNamespaceURI(const String& prefix)
-{
- ASSERT(m_customResolver);
-
- JSLock lock(SilenceAssertionsOnly);
-
- ExecState* exec = m_globalObject->globalExec();
-
- JSValue function = m_customResolver->get(exec, Identifier(exec, "lookupNamespaceURI"));
- CallData callData;
- CallType callType = getCallData(function, callData);
- if (callType == CallTypeNone) {
- callType = m_customResolver->getCallData(callData);
- if (callType == CallTypeNone) {
- // FIXME: Pass actual line number and source URL.
- m_globalObject->impl()->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, "XPathNSResolver does not have a lookupNamespaceURI method.", 0, String());
- return String();
- }
- function = m_customResolver;
- }
-
- RefPtr<JSCustomXPathNSResolver> selfProtector(this);
-
- MarkedArgumentBuffer args;
- args.append(jsString(exec, prefix));
-
- m_globalObject->globalData().timeoutChecker.start();
- JSValue retval = JSC::call(exec, function, callType, callData, m_customResolver, args);
- m_globalObject->globalData().timeoutChecker.stop();
-
- String result;
- if (exec->hadException())
- reportCurrentException(exec);
- else {
- if (!retval.isUndefinedOrNull())
- result = ustringToString(retval.toString(exec));
- }
-
- Document::updateStyleForAllDocuments();
-
- return result;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(XPATH)
diff --git a/WebCore/bindings/js/JSCustomXPathNSResolver.h b/WebCore/bindings/js/JSCustomXPathNSResolver.h
deleted file mode 100644
index 7d66494..0000000
--- a/WebCore/bindings/js/JSCustomXPathNSResolver.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2007 Alexey Proskuryakov (ap@nypop.com)
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSCustomXPathNSResolver_h
-#define JSCustomXPathNSResolver_h
-
-#if ENABLE(XPATH)
-
-#include "XPathNSResolver.h"
-#include <runtime/JSValue.h>
-#include <wtf/Forward.h>
-#include <wtf/RefPtr.h>
-
-namespace JSC {
- class ExecState;
- class JSObject;
-}
-
-namespace WebCore {
-
- class Frame;
- class JSDOMWindow;
-
- class JSCustomXPathNSResolver : public XPathNSResolver {
- public:
- static PassRefPtr<JSCustomXPathNSResolver> create(JSC::ExecState*, JSC::JSValue);
-
- virtual ~JSCustomXPathNSResolver();
-
- virtual String lookupNamespaceURI(const String& prefix);
-
- private:
- JSCustomXPathNSResolver(JSC::JSObject*, JSDOMWindow*);
-
- // JSCustomXPathNSResolvers are always temporary, thus no need to GC protect the objects.
- JSC::JSObject* m_customResolver;
- JSDOMWindow* m_globalObject;
- };
-
-} // namespace WebCore
-
-#endif // ENABLE(XPATH)
-
-#endif // JSCustomXPathNSResolver_h
diff --git a/WebCore/bindings/js/JSDOMApplicationCacheCustom.cpp b/WebCore/bindings/js/JSDOMApplicationCacheCustom.cpp
deleted file mode 100644
index 263f2f9..0000000
--- a/WebCore/bindings/js/JSDOMApplicationCacheCustom.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSDOMApplicationCache.h"
-
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
-
-#include "DOMApplicationCache.h"
-#include "DOMWindow.h"
-#include "Event.h"
-#include "Frame.h"
-#include "FrameLoader.h"
-#include "JSDOMWindowCustom.h"
-#include "JSEvent.h"
-#include "JSEventListener.h"
-#include <wtf/text/AtomicString.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-#if ENABLE(APPLICATION_CACHE_DYNAMIC_ENTRIES)
-
-JSValue JSDOMApplicationCache::hasItem(ExecState* exec)
-{
- Frame* frame = asJSDOMWindow(exec->dynamicGlobalObject())->impl()->frame();
- if (!frame)
- return jsUndefined();
- const KURL& url = frame->loader()->completeURL(exec->argument(0).toString(exec));
-
- ExceptionCode ec = 0;
- bool result = impl()->hasItem(url, ec);
- setDOMException(exec, ec);
- return jsBoolean(result);
-}
-
-JSValue JSDOMApplicationCache::add(ExecState* exec)
-{
- Frame* frame = asJSDOMWindow(exec->dynamicGlobalObject())->impl()->frame();
- if (!frame)
- return jsUndefined();
- const KURL& url = frame->loader()->completeURL(exec->argument(0).toString(exec));
-
- ExceptionCode ec = 0;
- impl()->add(url, ec);
- setDOMException(exec, ec);
- return jsUndefined();
-}
-
-JSValue JSDOMApplicationCache::remove(ExecState* exec)
-{
- Frame* frame = asJSDOMWindow(exec->dynamicGlobalObject())->impl()->frame();
- if (!frame)
- return jsUndefined();
- const KURL& url = frame->loader()->completeURL(exec->argument(0).toString(exec));
-
- ExceptionCode ec = 0;
- impl()->remove(url, ec);
- setDOMException(exec, ec);
- return jsUndefined();
-}
-
-#endif // ENABLE(APPLICATION_CACHE_DYNAMIC_ENTRIES)
-
-} // namespace WebCore
-
-#endif // ENABLE(OFFLINE_WEB_APPLICATIONS)
diff --git a/WebCore/bindings/js/JSDOMBinding.cpp b/WebCore/bindings/js/JSDOMBinding.cpp
deleted file mode 100644
index ed579d3..0000000
--- a/WebCore/bindings/js/JSDOMBinding.cpp
+++ /dev/null
@@ -1,798 +0,0 @@
-/*
- * Copyright (C) 1999-2001 Harri Porten (porten@kde.org)
- * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2007 Samuel Weinig <sam@webkit.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "JSDOMBinding.h"
-
-#include "debugger/DebuggerCallFrame.h"
-
-#include "ActiveDOMObject.h"
-#include "DOMCoreException.h"
-#include "DOMObjectHashTableMap.h"
-#include "Document.h"
-#include "EventException.h"
-#include "ExceptionBase.h"
-#include "ExceptionCode.h"
-#include "Frame.h"
-#include "HTMLAudioElement.h"
-#include "HTMLCanvasElement.h"
-#include "HTMLFrameElementBase.h"
-#include "HTMLImageElement.h"
-#include "HTMLLinkElement.h"
-#include "HTMLNames.h"
-#include "HTMLScriptElement.h"
-#include "HTMLStyleElement.h"
-#include "JSBinding.h"
-#include "JSBindingState.h"
-#include "JSDOMCoreException.h"
-#include "JSDOMWindowCustom.h"
-#include "JSDebugWrapperSet.h"
-#include "JSEventException.h"
-#include "JSExceptionBase.h"
-#include "JSMainThreadExecState.h"
-#include "JSNode.h"
-#include "JSRangeException.h"
-#include "JSXMLHttpRequestException.h"
-#include "KURL.h"
-#include "MessagePort.h"
-#include "ProcessingInstruction.h"
-#include "RangeException.h"
-#include "ScriptCachedFrameData.h"
-#include "ScriptController.h"
-#include "Settings.h"
-#include "WebCoreJSClientData.h"
-#include "XMLHttpRequestException.h"
-#include <runtime/DateInstance.h>
-#include <runtime/Error.h>
-#include <runtime/JSFunction.h>
-#include <runtime/PrototypeFunction.h>
-#include <wtf/MathExtras.h>
-#include <wtf/StdLibExtras.h>
-
-#if ENABLE(SVG)
-#include "JSSVGException.h"
-#include "SVGException.h"
-#endif
-
-#if ENABLE(XPATH)
-#include "JSXPathException.h"
-#include "XPathException.h"
-#endif
-
-#if ENABLE(DATABASE)
-#include "JSSQLException.h"
-#include "SQLException.h"
-#endif
-
-#if ENABLE(BLOB) || ENABLE(FILE_SYSTEM)
-#include "FileException.h"
-#include "JSFileException.h"
-#endif
-
-#if ENABLE(INDEXED_DATABASE)
-#include "IDBDatabaseException.h"
-#include "JSIDBDatabaseException.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-typedef Document::JSWrapperCache JSWrapperCache;
-typedef Document::JSWrapperCacheMap JSWrapperCacheMap;
-
-class JSGlobalDataWorldIterator {
-public:
- JSGlobalDataWorldIterator(JSGlobalData* globalData)
- : m_pos(static_cast<WebCoreJSClientData*>(globalData->clientData)->m_worldSet.begin())
- , m_end(static_cast<WebCoreJSClientData*>(globalData->clientData)->m_worldSet.end())
- {
- }
-
- operator bool()
- {
- return m_pos != m_end;
- }
-
- DOMWrapperWorld* operator*()
- {
- ASSERT(m_pos != m_end);
- return *m_pos;
- }
-
- DOMWrapperWorld* operator->()
- {
- ASSERT(m_pos != m_end);
- return *m_pos;
- }
-
- JSGlobalDataWorldIterator& operator++()
- {
- ++m_pos;
- return *this;
- }
-
-private:
- HashSet<DOMWrapperWorld*>::iterator m_pos;
- HashSet<DOMWrapperWorld*>::iterator m_end;
-};
-
-const JSC::HashTable* getHashTableForGlobalData(JSGlobalData& globalData, const JSC::HashTable* staticTable)
-{
- return DOMObjectHashTableMap::mapFor(globalData).get(staticTable);
-}
-
-bool hasCachedDOMObjectWrapperUnchecked(JSGlobalData* globalData, void* objectHandle)
-{
- for (JSGlobalDataWorldIterator worldIter(globalData); worldIter; ++worldIter) {
- if (worldIter->m_wrappers.uncheckedGet(objectHandle))
- return true;
- }
- return false;
-}
-
-bool hasCachedDOMObjectWrapper(JSGlobalData* globalData, void* objectHandle)
-{
- for (JSGlobalDataWorldIterator worldIter(globalData); worldIter; ++worldIter) {
- if (worldIter->m_wrappers.get(objectHandle))
- return true;
- }
- return false;
-}
-
-DOMObject* getCachedDOMObjectWrapper(JSC::ExecState* exec, void* objectHandle)
-{
- return domObjectWrapperMapFor(exec).get(objectHandle);
-}
-
-void cacheDOMObjectWrapper(JSC::ExecState* exec, void* objectHandle, DOMObject* wrapper)
-{
- JSDebugWrapperSet::willCacheWrapper(wrapper);
- domObjectWrapperMapFor(exec).set(objectHandle, wrapper);
-}
-
-bool hasCachedDOMNodeWrapperUnchecked(Document* document, Node* node)
-{
- if (!document)
- return hasCachedDOMObjectWrapperUnchecked(JSDOMWindow::commonJSGlobalData(), node);
-
- JSWrapperCacheMap& wrapperCacheMap = document->wrapperCacheMap();
- for (JSWrapperCacheMap::iterator iter = wrapperCacheMap.begin(); iter != wrapperCacheMap.end(); ++iter) {
- if (iter->second->uncheckedGet(node))
- return true;
- }
- return false;
-}
-
-void forgetDOMObject(DOMObject* wrapper, void* objectHandle)
-{
- JSC::JSGlobalData* globalData = Heap::heap(wrapper)->globalData();
-
- // Check the normal world first!
- JSGlobalData::ClientData* clientData = globalData->clientData;
- ASSERT(clientData);
- DOMObjectWrapperMap& wrappers = static_cast<WebCoreJSClientData*>(clientData)->normalWorld()->m_wrappers;
- if (wrappers.uncheckedRemove(objectHandle, wrapper)) {
- JSDebugWrapperSet::didUncacheWrapper(wrapper);
- return;
- }
-
- // We can't guarantee that a wrapper is in the cache when it uncaches itself,
- // since a new wrapper may be cached before the old wrapper's destructor runs.
- for (JSGlobalDataWorldIterator worldIter(globalData); worldIter; ++worldIter) {
- if (worldIter->m_wrappers.uncheckedRemove(objectHandle, wrapper))
- break;
- }
- JSDebugWrapperSet::didUncacheWrapper(wrapper);
-}
-
-void forgetDOMNode(JSNode* wrapper, Node* node, Document* document)
-{
- node->clearWrapper(wrapper);
-
- if (!document) {
- forgetDOMObject(wrapper, node);
- return;
- }
-
- // We can't guarantee that a wrapper is in the cache when it uncaches itself,
- // since a new wrapper may be cached before the old wrapper's destructor runs.
- JSWrapperCacheMap& wrapperCacheMap = document->wrapperCacheMap();
- for (JSWrapperCacheMap::iterator wrappersIter = wrapperCacheMap.begin(); wrappersIter != wrapperCacheMap.end(); ++wrappersIter) {
- if (wrappersIter->second->uncheckedRemove(node, wrapper))
- break;
- }
- JSDebugWrapperSet::didUncacheWrapper(wrapper);
-}
-
-void cacheDOMNodeWrapper(JSC::ExecState* exec, Document* document, Node* node, JSNode* wrapper)
-{
- JSDebugWrapperSet::willCacheWrapper(wrapper);
-
- if (!document)
- domObjectWrapperMapFor(exec).set(node, wrapper);
- else
- document->getWrapperCache(currentWorld(exec))->set(node, wrapper);
-
- if (currentWorld(exec)->isNormal())
- node->setWrapper(wrapper);
-}
-
-static inline bool isObservableThroughDOM(JSNode* jsNode, DOMWrapperWorld* world)
-{
- // Certain conditions implicitly make existence of a JS DOM node wrapper observable
- // through the DOM, even if no explicit reference to it remains.
-
- Node* node = jsNode->impl();
-
- if (node->inDocument()) {
- // If a node is in the document, and its wrapper has custom properties,
- // the wrapper is observable because future access to the node through the
- // DOM must reflect those properties.
- if (jsNode->hasCustomProperties())
- return true;
-
- // If a node is in the document, and has event listeners, its wrapper is
- // observable because its wrapper is responsible for marking those event listeners.
- if (node->hasEventListeners())
- return true; // Technically, we may overzealously mark a wrapper for a node that has only non-JS event listeners. Oh well.
-
- // If a node owns another object with a wrapper with custom properties,
- // the wrapper must be treated as observable, because future access to
- // those objects through the DOM must reflect those properties.
- // FIXME: It would be better if this logic could be in the node next to
- // the custom markChildren functions rather than here.
- // Note that for some compound objects like stylesheets and CSSStyleDeclarations,
- // we don't descend to check children for custom properties, and just conservatively
- // keep the node wrappers protecting them alive.
- if (node->isElementNode()) {
- if (NamedNodeMap* attributes = static_cast<Element*>(node)->attributeMap()) {
- if (DOMObject* wrapper = world->m_wrappers.uncheckedGet(attributes)) {
- // FIXME: This check seems insufficient, because NamedNodeMap items can have custom properties themselves.
- // Maybe it would be OK to just keep the wrapper alive, as it is done for CSSOM objects below.
- if (wrapper->hasCustomProperties())
- return true;
- }
- }
- if (node->isStyledElement()) {
- if (CSSMutableStyleDeclaration* style = static_cast<StyledElement*>(node)->inlineStyleDecl()) {
- if (world->m_wrappers.uncheckedGet(style))
- return true;
- }
- }
- if (static_cast<Element*>(node)->hasTagName(canvasTag)) {
- if (CanvasRenderingContext* context = static_cast<HTMLCanvasElement*>(node)->renderingContext()) {
- if (DOMObject* wrapper = world->m_wrappers.uncheckedGet(context)) {
- if (wrapper->hasCustomProperties())
- return true;
- }
- }
- } else if (static_cast<Element*>(node)->hasTagName(linkTag)) {
- if (StyleSheet* sheet = static_cast<HTMLLinkElement*>(node)->sheet()) {
- if (world->m_wrappers.uncheckedGet(sheet))
- return true;
- }
- } else if (static_cast<Element*>(node)->hasTagName(styleTag)) {
- if (StyleSheet* sheet = static_cast<HTMLStyleElement*>(node)->sheet()) {
- if (world->m_wrappers.uncheckedGet(sheet))
- return true;
- }
- }
- } else if (node->nodeType() == Node::PROCESSING_INSTRUCTION_NODE) {
- if (StyleSheet* sheet = static_cast<ProcessingInstruction*>(node)->sheet()) {
- if (world->m_wrappers.uncheckedGet(sheet))
- return true;
- }
- }
- } else {
- // If a wrapper is the last reference to an image or script element
- // that is loading but not in the document, the wrapper is observable
- // because it is the only thing keeping the image element alive, and if
- // the image element is destroyed, its load event will not fire.
- // FIXME: The DOM should manage this issue without the help of JavaScript wrappers.
- if (node->hasTagName(imgTag) && !static_cast<HTMLImageElement*>(node)->haveFiredLoadEvent())
- return true;
- if (node->hasTagName(scriptTag) && !static_cast<HTMLScriptElement*>(node)->haveFiredLoadEvent())
- return true;
-#if ENABLE(VIDEO)
- if (node->hasTagName(audioTag) && !static_cast<HTMLAudioElement*>(node)->paused())
- return true;
-#endif
- }
-
- // If a node is firing event listeners, its wrapper is observable because
- // its wrapper is responsible for marking those event listeners.
- if (node->isFiringEventListeners())
- return true;
-
- return false;
-}
-
-void markDOMNodesForDocument(MarkStack& markStack, Document* document)
-{
- JSWrapperCacheMap& wrapperCacheMap = document->wrapperCacheMap();
- for (JSWrapperCacheMap::iterator wrappersIter = wrapperCacheMap.begin(); wrappersIter != wrapperCacheMap.end(); ++wrappersIter) {
- DOMWrapperWorld* world = wrappersIter->first;
- JSWrapperCache* nodeDict = wrappersIter->second;
-
- JSWrapperCache::iterator nodeEnd = nodeDict->uncheckedEnd();
- for (JSWrapperCache::iterator nodeIt = nodeDict->uncheckedBegin(); nodeIt != nodeEnd; ++nodeIt) {
- JSNode* jsNode = nodeIt->second;
- if (isObservableThroughDOM(jsNode, world))
- markStack.append(jsNode);
- }
- }
-}
-
-void markActiveObjectsForContext(MarkStack& markStack, JSGlobalData& globalData, ScriptExecutionContext* scriptExecutionContext)
-{
- // If an element has pending activity that may result in event listeners being called
- // (e.g. an XMLHttpRequest), we need to keep JS wrappers alive.
-
- const HashMap<ActiveDOMObject*, void*>& activeObjects = scriptExecutionContext->activeDOMObjects();
- HashMap<ActiveDOMObject*, void*>::const_iterator activeObjectsEnd = activeObjects.end();
- for (HashMap<ActiveDOMObject*, void*>::const_iterator iter = activeObjects.begin(); iter != activeObjectsEnd; ++iter) {
- if (iter->first->hasPendingActivity()) {
- // Generally, an active object with pending activity must have a wrapper to mark its listeners.
- // However, some ActiveDOMObjects don't have JS wrappers.
- markDOMObjectWrapper(markStack, globalData, iter->second);
- }
- }
-
- const HashSet<MessagePort*>& messagePorts = scriptExecutionContext->messagePorts();
- HashSet<MessagePort*>::const_iterator portsEnd = messagePorts.end();
- for (HashSet<MessagePort*>::const_iterator iter = messagePorts.begin(); iter != portsEnd; ++iter) {
- // If the message port is remotely entangled, then always mark it as in-use because we can't determine reachability across threads.
- if (!(*iter)->locallyEntangledPort() || (*iter)->hasPendingActivity())
- markDOMObjectWrapper(markStack, globalData, *iter);
- }
-}
-
-typedef std::pair<JSNode*, DOMWrapperWorld*> WrapperAndWorld;
-typedef WTF::Vector<WrapperAndWorld, 8> WrapperSet;
-
-static inline void takeWrappers(Node* node, Document* document, WrapperSet& wrapperSet)
-{
- if (document) {
- JSWrapperCacheMap& wrapperCacheMap = document->wrapperCacheMap();
- for (JSWrapperCacheMap::iterator iter = wrapperCacheMap.begin(); iter != wrapperCacheMap.end(); ++iter) {
- if (JSNode* wrapper = iter->second->take(node)) {
- JSDebugWrapperSet::didUncacheWrapper(wrapper);
- wrapperSet.append(WrapperAndWorld(wrapper, iter->first));
- }
- }
- } else {
- for (JSGlobalDataWorldIterator worldIter(JSDOMWindow::commonJSGlobalData()); worldIter; ++worldIter) {
- DOMWrapperWorld* world = *worldIter;
- if (JSNode* wrapper = static_cast<JSNode*>(world->m_wrappers.take(node))) {
- JSDebugWrapperSet::didUncacheWrapper(wrapper);
- wrapperSet.append(WrapperAndWorld(wrapper, world));
- }
- }
- }
-}
-
-void updateDOMNodeDocument(Node* node, Document* oldDocument, Document* newDocument)
-{
- ASSERT(oldDocument != newDocument);
-
- WrapperSet wrapperSet;
- takeWrappers(node, oldDocument, wrapperSet);
-
- for (unsigned i = 0; i < wrapperSet.size(); ++i) {
- JSNode* wrapper = wrapperSet[i].first;
- JSDebugWrapperSet::willCacheWrapper(wrapper);
- if (newDocument)
- newDocument->getWrapperCache(wrapperSet[i].second)->set(node, wrapper);
- else
- wrapperSet[i].second->m_wrappers.set(node, wrapper);
- }
-}
-
-void markDOMObjectWrapper(MarkStack& markStack, JSGlobalData& globalData, void* object)
-{
- // FIXME: This could be changed to only mark wrappers that are "observable"
- // as markDOMNodesForDocument does, allowing us to collect more wrappers,
- // but doing this correctly would be challenging.
- if (!object)
- return;
-
- for (JSGlobalDataWorldIterator worldIter(&globalData); worldIter; ++worldIter) {
- if (DOMObject* wrapper = worldIter->m_wrappers.uncheckedGet(object))
- markStack.append(wrapper);
- }
-}
-
-void markDOMNodeWrapper(MarkStack& markStack, Document* document, Node* node)
-{
- if (document) {
- JSWrapperCacheMap& wrapperCacheMap = document->wrapperCacheMap();
- for (JSWrapperCacheMap::iterator iter = wrapperCacheMap.begin(); iter != wrapperCacheMap.end(); ++iter) {
- if (JSNode* wrapper = iter->second->uncheckedGet(node))
- markStack.append(wrapper);
- }
- return;
- }
-
- for (JSGlobalDataWorldIterator worldIter(JSDOMWindow::commonJSGlobalData()); worldIter; ++worldIter) {
- if (DOMObject* wrapper = worldIter->m_wrappers.uncheckedGet(node))
- markStack.append(wrapper);
- }
-}
-
-static void stringWrapperDestroyed(JSString* str, void* context)
-{
- StringImpl* cacheKey = static_cast<StringImpl*>(context);
- JSC::JSGlobalData* globalData = Heap::heap(str)->globalData();
-
- // Check the normal world first!
- JSGlobalData::ClientData* clientData = globalData->clientData;
- ASSERT(clientData);
- JSStringCache& cache = static_cast<WebCoreJSClientData*>(clientData)->normalWorld()->m_stringCache;
- if (cache.uncheckedRemove(cacheKey, str)) {
- cacheKey->deref();
- return;
- }
-
- for (JSGlobalDataWorldIterator worldIter(globalData); worldIter; ++worldIter) {
- if (worldIter->m_stringCache.uncheckedRemove(cacheKey, str))
- break;
- }
-
- cacheKey->deref();
-}
-
-JSValue jsStringSlowCase(ExecState* exec, JSStringCache& stringCache, StringImpl* stringImpl)
-{
- // If there is a stale entry, we have to explicitly remove it to avoid
- // problems down the line.
- if (JSString* wrapper = stringCache.uncheckedGet(stringImpl))
- stringCache.uncheckedRemove(stringImpl, wrapper);
-
- JSString* wrapper = jsStringWithFinalizer(exec, UString(stringImpl), stringWrapperDestroyed, stringImpl);
- stringCache.set(stringImpl, wrapper);
- // ref explicitly instead of using a RefPtr-keyed hashtable because the wrapper can
- // outlive the cache, so the stringImpl has to match the wrapper's lifetime.
- stringImpl->ref();
- return wrapper;
-}
-
-JSValue jsStringOrNull(ExecState* exec, const String& s)
-{
- if (s.isNull())
- return jsNull();
- return jsString(exec, s);
-}
-
-JSValue jsOwnedStringOrNull(ExecState* exec, const String& s)
-{
- if (s.isNull())
- return jsNull();
- return jsOwnedString(exec, stringToUString(s));
-}
-
-JSValue jsOwnedStringOrNull(ExecState* exec, const UString& s)
-{
- if (s.isNull())
- return jsNull();
- return jsOwnedString(exec, s);
-}
-
-JSValue jsStringOrUndefined(ExecState* exec, const String& s)
-{
- if (s.isNull())
- return jsUndefined();
- return jsString(exec, s);
-}
-
-JSValue jsStringOrFalse(ExecState* exec, const String& s)
-{
- if (s.isNull())
- return jsBoolean(false);
- return jsString(exec, s);
-}
-
-JSValue jsString(ExecState* exec, const KURL& url)
-{
- return jsString(exec, url.string());
-}
-
-JSValue jsStringOrNull(ExecState* exec, const KURL& url)
-{
- if (url.isNull())
- return jsNull();
- return jsString(exec, url.string());
-}
-
-JSValue jsStringOrUndefined(ExecState* exec, const KURL& url)
-{
- if (url.isNull())
- return jsUndefined();
- return jsString(exec, url.string());
-}
-
-JSValue jsStringOrFalse(ExecState* exec, const KURL& url)
-{
- if (url.isNull())
- return jsBoolean(false);
- return jsString(exec, url.string());
-}
-
-AtomicStringImpl* findAtomicString(const Identifier& identifier)
-{
- if (identifier.isNull())
- return 0;
- StringImpl* impl = identifier.impl();
- ASSERT(impl->existingHash());
- return AtomicString::find(impl->characters(), impl->length(), impl->existingHash());
-}
-
-String valueToStringWithNullCheck(ExecState* exec, JSValue value)
-{
- if (value.isNull())
- return String();
- return ustringToString(value.toString(exec));
-}
-
-String valueToStringWithUndefinedOrNullCheck(ExecState* exec, JSValue value)
-{
- if (value.isUndefinedOrNull())
- return String();
- return ustringToString(value.toString(exec));
-}
-
-JSValue jsDateOrNull(ExecState* exec, double value)
-{
- if (!isfinite(value))
- return jsNull();
- return new (exec) DateInstance(exec, value);
-}
-
-double valueToDate(ExecState* exec, JSValue value)
-{
- if (value.isNumber())
- return value.uncheckedGetNumber();
- if (!value.inherits(&DateInstance::info))
- return std::numeric_limits<double>::quiet_NaN();
- return static_cast<DateInstance*>(value.toObject(exec))->internalNumber();
-}
-
-void reportException(ExecState* exec, JSValue exception)
-{
- if (exception.isObject() && asObject(exception)->exceptionType() == Terminated)
- return;
-
- UString errorMessage = exception.toString(exec);
- JSObject* exceptionObject = exception.toObject(exec);
- int lineNumber = exceptionObject->get(exec, Identifier(exec, "line")).toInt32(exec);
- UString exceptionSourceURL = exceptionObject->get(exec, Identifier(exec, "sourceURL")).toString(exec);
- exec->clearException();
-
- if (ExceptionBase* exceptionBase = toExceptionBase(exception))
- errorMessage = stringToUString(exceptionBase->message() + ": " + exceptionBase->description());
-
- ScriptExecutionContext* scriptExecutionContext = static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject())->scriptExecutionContext();
- ASSERT(scriptExecutionContext);
-
- // Crash data indicates null-dereference crashes at this point in the Safari 4 Public Beta.
- // It's harmless to return here without reporting the exception to the log and the debugger in this case.
- if (!scriptExecutionContext)
- return;
-
- scriptExecutionContext->reportException(ustringToString(errorMessage), lineNumber, ustringToString(exceptionSourceURL));
-}
-
-void reportCurrentException(ExecState* exec)
-{
- JSValue exception = exec->exception();
- exec->clearException();
- reportException(exec, exception);
-}
-
-void setDOMException(ExecState* exec, ExceptionCode ec)
-{
- if (!ec || exec->hadException())
- return;
-
- // FIXME: All callers to setDOMException need to pass in the right global object
- // for now, we're going to assume the lexicalGlobalObject. Which is wrong in cases like this:
- // frames[0].document.createElement(null, null); // throws an exception which should have the subframes prototypes.
- JSDOMGlobalObject* globalObject = deprecatedGlobalObjectForPrototype(exec);
-
- ExceptionCodeDescription description;
- getExceptionCodeDescription(ec, description);
-
- JSValue errorObject;
- switch (description.type) {
- case DOMExceptionType:
- errorObject = toJS(exec, globalObject, DOMCoreException::create(description));
- break;
- case RangeExceptionType:
- errorObject = toJS(exec, globalObject, RangeException::create(description));
- break;
- case EventExceptionType:
- errorObject = toJS(exec, globalObject, EventException::create(description));
- break;
- case XMLHttpRequestExceptionType:
- errorObject = toJS(exec, globalObject, XMLHttpRequestException::create(description));
- break;
-#if ENABLE(SVG)
- case SVGExceptionType:
- errorObject = toJS(exec, globalObject, SVGException::create(description).get());
- break;
-#endif
-#if ENABLE(XPATH)
- case XPathExceptionType:
- errorObject = toJS(exec, globalObject, XPathException::create(description));
- break;
-#endif
-#if ENABLE(DATABASE)
- case SQLExceptionType:
- errorObject = toJS(exec, globalObject, SQLException::create(description));
- break;
-#endif
-#if ENABLE(BLOB) || ENABLE(FILE_SYSTEM)
- case FileExceptionType:
- errorObject = toJS(exec, globalObject, FileException::create(description));
- break;
-#endif
-#if ENABLE(INDEXED_DATABASE)
- case IDBDatabaseExceptionType:
- errorObject = toJS(exec, globalObject, IDBDatabaseException::create(description));
- break;
-#endif
- }
-
- ASSERT(errorObject);
- throwError(exec, errorObject);
-}
-
-bool checkNodeSecurity(ExecState* exec, Node* node)
-{
- return node && allowsAccessFromFrame(exec, node->document()->frame());
-}
-
-bool allowsAccessFromFrame(ExecState* exec, Frame* frame)
-{
- if (!frame)
- return false;
- JSDOMWindow* window = toJSDOMWindow(frame, currentWorld(exec));
- return window && window->allowsAccessFrom(exec);
-}
-
-bool allowsAccessFromFrame(ExecState* exec, Frame* frame, String& message)
-{
- if (!frame)
- return false;
- JSDOMWindow* window = toJSDOMWindow(frame, currentWorld(exec));
- return window && window->allowsAccessFrom(exec, message);
-}
-
-bool shouldAllowNavigation(ExecState* exec, Frame* frame)
-{
- JSBindingState state(exec);
- return JSBindingSecurity::shouldAllowNavigation(&state, frame);
-}
-
-bool allowSettingSrcToJavascriptURL(ExecState* exec, Element* element, const String& name, const String& value)
-{
- if ((element->hasTagName(iframeTag) || element->hasTagName(frameTag)) && equalIgnoringCase(name, "src") && protocolIsJavaScript(stripLeadingAndTrailingHTMLSpaces(value))) {
- Document* contentDocument = static_cast<HTMLFrameElementBase*>(element)->contentDocument();
- if (contentDocument && !checkNodeSecurity(exec, contentDocument))
- return false;
- }
- return true;
-}
-
-void printErrorMessageForFrame(Frame* frame, const String& message)
-{
- if (!frame)
- return;
- frame->domWindow()->printErrorMessage(message);
-}
-
-Frame* toLexicalFrame(ExecState* exec)
-{
- return JSBindingState(exec).activeFrame();
-}
-
-Frame* toDynamicFrame(ExecState* exec)
-{
- return JSBindingState(exec).firstFrame();
-}
-
-bool processingUserGesture()
-{
- return JSBindingState(JSMainThreadExecState::currentState()).processingUserGesture();
-}
-
-KURL completeURL(ExecState* exec, const String& relativeURL)
-{
- JSBindingState state(exec);
- return completeURL(&state, relativeURL);
-}
-
-JSValue objectToStringFunctionGetter(ExecState* exec, JSValue, const Identifier& propertyName)
-{
- return new (exec) NativeFunctionWrapper(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->prototypeFunctionStructure(), 0, propertyName, objectProtoFuncToString);
-}
-
-Structure* getCachedDOMStructure(JSDOMGlobalObject* globalObject, const ClassInfo* classInfo)
-{
- JSDOMStructureMap& structures = globalObject->structures();
- return structures.get(classInfo).get();
-}
-
-Structure* cacheDOMStructure(JSDOMGlobalObject* globalObject, NonNullPassRefPtr<Structure> structure, const ClassInfo* classInfo)
-{
- JSDOMStructureMap& structures = globalObject->structures();
- ASSERT(!structures.contains(classInfo));
- return structures.set(classInfo, structure).first->second.get();
-}
-
-Structure* getCachedDOMStructure(ExecState* exec, const ClassInfo* classInfo)
-{
- return getCachedDOMStructure(static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject()), classInfo);
-}
-
-Structure* cacheDOMStructure(ExecState* exec, NonNullPassRefPtr<Structure> structure, const ClassInfo* classInfo)
-{
- return cacheDOMStructure(static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject()), structure, classInfo);
-}
-
-JSObject* getCachedDOMConstructor(ExecState* exec, const ClassInfo* classInfo)
-{
- JSDOMConstructorMap& constructors = static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject())->constructors();
- return constructors.get(classInfo);
-}
-
-void cacheDOMConstructor(ExecState* exec, const ClassInfo* classInfo, JSObject* constructor)
-{
- JSDOMConstructorMap& constructors = static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject())->constructors();
- ASSERT(!constructors.contains(classInfo));
- constructors.set(classInfo, constructor);
-}
-
-JSC::JSObject* toJSSequence(ExecState* exec, JSValue value, unsigned& length)
-{
- JSObject* object = value.getObject();
- if (!object) {
- throwTypeError(exec);
- return 0;
- }
- JSValue lengthValue = object->get(exec, exec->propertyNames().length);
- if (exec->hadException())
- return 0;
-
- if (lengthValue.isUndefinedOrNull()) {
- throwTypeError(exec);
- return 0;
- }
-
- length = lengthValue.toUInt32(exec);
- if (exec->hadException())
- return 0;
-
- return object;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSDOMBinding.h b/WebCore/bindings/js/JSDOMBinding.h
deleted file mode 100644
index 54e9cf6..0000000
--- a/WebCore/bindings/js/JSDOMBinding.h
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * Copyright (C) 1999-2001 Harri Porten (porten@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2007 Samuel Weinig <sam@webkit.org>
- * Copyright (C) 2009 Google, Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef JSDOMBinding_h
-#define JSDOMBinding_h
-
-#include "JSDOMGlobalObject.h"
-#include "JSDOMWrapper.h"
-#include "DOMWrapperWorld.h"
-#include "Document.h"
-#include <runtime/Completion.h>
-#include <runtime/Lookup.h>
-#include <runtime/WeakGCMap.h>
-#include <wtf/Forward.h>
-#include <wtf/Noncopyable.h>
-
-namespace JSC {
- class JSGlobalData;
- class DebuggerCallFrame;
-}
-
-namespace WebCore {
-
- class Document;
- class Frame;
- class JSNode;
- class KURL;
- class Node;
- class ScriptController;
- class ScriptCachedFrameData;
-
- typedef int ExceptionCode;
-
- // FIXME: This class should collapse into DOMObject once all DOMObjects are
- // updated to store a globalObject pointer.
- class DOMObjectWithGlobalPointer : public DOMObject {
- public:
- JSDOMGlobalObject* globalObject() const
- {
- return static_cast<JSDOMGlobalObject*>(DOMObject::globalObject());
- }
-
- ScriptExecutionContext* scriptExecutionContext() const
- {
- // FIXME: Should never be 0, but can be due to bug 27640.
- return globalObject()->scriptExecutionContext();
- }
-
- static PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
- {
- return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount);
- }
-
- protected:
- DOMObjectWithGlobalPointer(NonNullPassRefPtr<JSC::Structure> structure, JSDOMGlobalObject* globalObject)
- : DOMObject(globalObject, structure)
- {
- // FIXME: This ASSERT is valid, but fires in fast/dom/gc-6.html when trying to create
- // new JavaScript objects on detached windows due to DOMWindow::document()
- // needing to reach through the frame to get to the Document*. See bug 27640.
- // ASSERT(globalObject->scriptExecutionContext());
- }
- };
-
- // Base class for all constructor objects in the JSC bindings.
- class DOMConstructorObject : public DOMObjectWithGlobalPointer {
- public:
- static PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
- {
- return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount);
- }
-
- protected:
- static const unsigned StructureFlags = JSC::ImplementsHasInstance | JSC::OverridesMarkChildren | DOMObjectWithGlobalPointer::StructureFlags;
- DOMConstructorObject(NonNullPassRefPtr<JSC::Structure> structure, JSDOMGlobalObject* globalObject)
- : DOMObjectWithGlobalPointer(structure, globalObject)
- {
- }
- };
-
- // Constructors using this base class depend on being in a Document and
- // can never be used from a WorkerContext.
- class DOMConstructorWithDocument : public DOMConstructorObject {
- public:
- Document* document() const
- {
- return static_cast<Document*>(scriptExecutionContext());
- }
-
- protected:
- DOMConstructorWithDocument(NonNullPassRefPtr<JSC::Structure> structure, JSDOMGlobalObject* globalObject)
- : DOMConstructorObject(structure, globalObject)
- {
- ASSERT(globalObject->scriptExecutionContext()->isDocument());
- }
- };
-
- DOMObject* getCachedDOMObjectWrapper(JSC::ExecState*, void* objectHandle);
- bool hasCachedDOMObjectWrapper(JSC::JSGlobalData*, void* objectHandle);
- void cacheDOMObjectWrapper(JSC::ExecState*, void* objectHandle, DOMObject* wrapper);
- void forgetDOMNode(JSNode* wrapper, Node* node, Document* document);
- void forgetDOMObject(DOMObject* wrapper, void* objectHandle);
-
- JSNode* getCachedDOMNodeWrapper(JSC::ExecState*, Document*, Node*);
- void cacheDOMNodeWrapper(JSC::ExecState*, Document*, Node*, JSNode* wrapper);
- void updateDOMNodeDocument(Node*, Document* oldDocument, Document* newDocument);
-
- void markDOMNodesForDocument(JSC::MarkStack&, Document*);
- void markActiveObjectsForContext(JSC::MarkStack&, JSC::JSGlobalData&, ScriptExecutionContext*);
- void markDOMObjectWrapper(JSC::MarkStack&, JSC::JSGlobalData& globalData, void* object);
- void markDOMNodeWrapper(JSC::MarkStack& markStack, Document* document, Node* node);
- bool hasCachedDOMObjectWrapperUnchecked(JSC::JSGlobalData*, void* objectHandle);
- bool hasCachedDOMNodeWrapperUnchecked(Document*, Node*);
-
- JSC::Structure* getCachedDOMStructure(JSDOMGlobalObject*, const JSC::ClassInfo*);
- JSC::Structure* cacheDOMStructure(JSDOMGlobalObject*, NonNullPassRefPtr<JSC::Structure>, const JSC::ClassInfo*);
- JSC::Structure* getCachedDOMStructure(JSC::ExecState*, const JSC::ClassInfo*);
- JSC::Structure* cacheDOMStructure(JSC::ExecState*, NonNullPassRefPtr<JSC::Structure>, const JSC::ClassInfo*);
-
- JSC::JSObject* getCachedDOMConstructor(JSC::ExecState*, const JSC::ClassInfo*);
- void cacheDOMConstructor(JSC::ExecState*, const JSC::ClassInfo*, JSC::JSObject* constructor);
-
- inline JSDOMGlobalObject* deprecatedGlobalObjectForPrototype(JSC::ExecState* exec)
- {
- // FIXME: Callers to this function should be using the global object
- // from which the object is being created, instead of assuming the lexical one.
- // e.g. subframe.document.body should use the subframe's global object, not the lexical one.
- return static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject());
- }
-
- template<class WrapperClass> inline JSC::Structure* getDOMStructure(JSC::ExecState* exec, JSDOMGlobalObject* globalObject)
- {
- if (JSC::Structure* structure = getCachedDOMStructure(globalObject, &WrapperClass::s_info))
- return structure;
- return cacheDOMStructure(globalObject, WrapperClass::createStructure(WrapperClass::createPrototype(exec, globalObject)), &WrapperClass::s_info);
- }
- template<class WrapperClass> inline JSC::Structure* deprecatedGetDOMStructure(JSC::ExecState* exec)
- {
- // FIXME: This function is wrong. It uses the wrong global object for creating the prototype structure.
- return getDOMStructure<WrapperClass>(exec, deprecatedGlobalObjectForPrototype(exec));
- }
- template<class WrapperClass> inline JSC::JSObject* getDOMPrototype(JSC::ExecState* exec, JSC::JSGlobalObject* globalObject)
- {
- return static_cast<JSC::JSObject*>(asObject(getDOMStructure<WrapperClass>(exec, static_cast<JSDOMGlobalObject*>(globalObject))->storedPrototype()));
- }
- #define CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, className, object) createDOMObjectWrapper<JS##className>(exec, globalObject, static_cast<className*>(object))
- template<class WrapperClass, class DOMClass> inline DOMObject* createDOMObjectWrapper(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, DOMClass* object)
- {
- ASSERT(object);
- ASSERT(!getCachedDOMObjectWrapper(exec, object));
- // FIXME: new (exec) could use a different globalData than the globalData this wrapper is cached on.
- WrapperClass* wrapper = new (exec) WrapperClass(getDOMStructure<WrapperClass>(exec, globalObject), globalObject, object);
- cacheDOMObjectWrapper(exec, object, wrapper);
- return wrapper;
- }
- template<class WrapperClass, class DOMClass> inline JSC::JSValue getDOMObjectWrapper(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, DOMClass* object)
- {
- if (!object)
- return JSC::jsNull();
- if (DOMObject* wrapper = getCachedDOMObjectWrapper(exec, object))
- return wrapper;
- return createDOMObjectWrapper<WrapperClass>(exec, globalObject, object);
- }
-
- #define CREATE_DOM_NODE_WRAPPER(exec, globalObject, className, object) createDOMNodeWrapper<JS##className>(exec, globalObject, static_cast<className*>(object))
- template<class WrapperClass, class DOMClass> inline JSNode* createDOMNodeWrapper(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, DOMClass* node)
- {
- ASSERT(node);
- ASSERT(!getCachedDOMNodeWrapper(exec, node->document(), node));
- WrapperClass* wrapper = new (exec) WrapperClass(getDOMStructure<WrapperClass>(exec, globalObject), globalObject, node);
- // FIXME: The entire function can be removed, once we fix caching.
- // This function is a one-off hack to make Nodes cache in the right global object.
- cacheDOMNodeWrapper(exec, node->document(), node, wrapper);
- return wrapper;
- }
- template<class WrapperClass, class DOMClass> inline JSC::JSValue getDOMNodeWrapper(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, DOMClass* node)
- {
- if (!node)
- return JSC::jsNull();
- if (JSC::JSCell* wrapper = getCachedDOMNodeWrapper(exec, node->document(), node))
- return wrapper;
- return createDOMNodeWrapper<WrapperClass>(exec, globalObject, node);
- }
-
- const JSC::HashTable* getHashTableForGlobalData(JSC::JSGlobalData&, const JSC::HashTable* staticTable);
-
- void reportException(JSC::ExecState*, JSC::JSValue exception);
- void reportCurrentException(JSC::ExecState*);
-
- // Convert a DOM implementation exception code into a JavaScript exception in the execution state.
- void setDOMException(JSC::ExecState*, ExceptionCode);
-
- JSC::JSValue jsString(JSC::ExecState*, const String&); // empty if the string is null
- JSC::JSValue jsStringSlowCase(JSC::ExecState*, JSStringCache&, StringImpl*);
- JSC::JSValue jsString(JSC::ExecState*, const KURL&); // empty if the URL is null
- inline JSC::JSValue jsString(JSC::ExecState* exec, const AtomicString& s)
- {
- return jsString(exec, s.string());
- }
-
- JSC::JSValue jsStringOrNull(JSC::ExecState*, const String&); // null if the string is null
- JSC::JSValue jsStringOrNull(JSC::ExecState*, const KURL&); // null if the URL is null
-
- JSC::JSValue jsStringOrUndefined(JSC::ExecState*, const String&); // undefined if the string is null
- JSC::JSValue jsStringOrUndefined(JSC::ExecState*, const KURL&); // undefined if the URL is null
-
- JSC::JSValue jsStringOrFalse(JSC::ExecState*, const String&); // boolean false if the string is null
- JSC::JSValue jsStringOrFalse(JSC::ExecState*, const KURL&); // boolean false if the URL is null
-
- // See JavaScriptCore for explanation: Should be used for any UString that is already owned by another
- // object, to let the engine know that collecting the JSString wrapper is unlikely to save memory.
- JSC::JSValue jsOwnedStringOrNull(JSC::ExecState*, const String&);
- JSC::JSValue jsOwnedStringOrNull(JSC::ExecState*, const JSC::UString&);
-
- String identifierToString(const JSC::Identifier&);
- String ustringToString(const JSC::UString&);
- JSC::UString stringToUString(const String&);
-
- AtomicString identifierToAtomicString(const JSC::Identifier&);
- AtomicString ustringToAtomicString(const JSC::UString&);
- AtomicStringImpl* findAtomicString(const JSC::Identifier&);
-
- String valueToStringWithNullCheck(JSC::ExecState*, JSC::JSValue); // null if the value is null
- String valueToStringWithUndefinedOrNullCheck(JSC::ExecState*, JSC::JSValue); // null if the value is null or undefined
-
- inline int32_t finiteInt32Value(JSC::JSValue value, JSC::ExecState* exec, bool& okay)
- {
- double number = value.toNumber(exec);
- okay = isfinite(number);
- return JSC::toInt32(number);
- }
-
- // Returns a Date instance for the specified value, or null if the value is NaN or infinity.
- JSC::JSValue jsDateOrNull(JSC::ExecState*, double);
- // NaN if the value can't be converted to a date.
- double valueToDate(JSC::ExecState*, JSC::JSValue);
-
- // FIXME: These are a stop-gap until all toJS calls can be converted to pass a globalObject
- template <typename T>
- inline JSC::JSValue toJS(JSC::ExecState* exec, T* ptr)
- {
- return toJS(exec, deprecatedGlobalObjectForPrototype(exec), ptr);
- }
- template <typename T>
- inline JSC::JSValue toJS(JSC::ExecState* exec, PassRefPtr<T> ptr)
- {
- return toJS(exec, deprecatedGlobalObjectForPrototype(exec), ptr.get());
- }
- template <typename T>
- inline JSC::JSValue toJSNewlyCreated(JSC::ExecState* exec, T* ptr)
- {
- return toJSNewlyCreated(exec, deprecatedGlobalObjectForPrototype(exec), ptr);
- }
-
- template <typename T>
- inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, PassRefPtr<T> ptr)
- {
- return toJS(exec, globalObject, ptr.get());
- }
-
- // Validates that the passed object is a sequence type per section 4.1.13 of the WebIDL spec.
- JSC::JSObject* toJSSequence(JSC::ExecState*, JSC::JSValue, unsigned&);
-
- bool checkNodeSecurity(JSC::ExecState*, Node*);
-
- // Helpers for Window, History, and Location classes to implement cross-domain policy.
- // Besides the cross-domain check, they need non-caching versions of staticFunctionGetter for
- // because we do not want current property values involved at all.
- bool allowsAccessFromFrame(JSC::ExecState*, Frame*);
- bool allowsAccessFromFrame(JSC::ExecState*, Frame*, String& message);
- bool shouldAllowNavigation(JSC::ExecState*, Frame*);
- bool allowSettingSrcToJavascriptURL(JSC::ExecState*, Element*, const String&, const String&);
-
- void printErrorMessageForFrame(Frame*, const String& message);
- JSC::JSValue objectToStringFunctionGetter(JSC::ExecState*, JSC::JSValue, const JSC::Identifier& propertyName);
-
- Frame* toLexicalFrame(JSC::ExecState*);
- Frame* toDynamicFrame(JSC::ExecState*);
- bool processingUserGesture();
- KURL completeURL(JSC::ExecState*, const String& relativeURL);
-
- inline JSC::JSValue jsString(JSC::ExecState* exec, const String& s)
- {
- StringImpl* stringImpl = s.impl();
- if (!stringImpl || !stringImpl->length())
- return jsEmptyString(exec);
-
- if (stringImpl->length() == 1 && stringImpl->characters()[0] <= 0xFF)
- return jsString(exec, stringToUString(s));
-
- JSStringCache& stringCache = currentWorld(exec)->m_stringCache;
- if (JSC::JSString* wrapper = stringCache.get(stringImpl))
- return wrapper;
-
- return jsStringSlowCase(exec, stringCache, stringImpl);
- }
-
- inline DOMObjectWrapperMap& domObjectWrapperMapFor(JSC::ExecState* exec)
- {
- return currentWorld(exec)->m_wrappers;
- }
-
- inline String ustringToString(const JSC::UString& u)
- {
- return u.impl();
- }
-
- inline JSC::UString stringToUString(const String& s)
- {
- return JSC::UString(s.impl());
- }
-
- inline String identifierToString(const JSC::Identifier& i)
- {
- return i.impl();
- }
-
- inline AtomicString ustringToAtomicString(const JSC::UString& u)
- {
- return AtomicString(u.impl());
- }
-
- inline AtomicString identifierToAtomicString(const JSC::Identifier& identifier)
- {
- return AtomicString(identifier.impl());
- }
-
-} // namespace WebCore
-
-#endif // JSDOMBinding_h
diff --git a/WebCore/bindings/js/JSDOMFormDataCustom.cpp b/WebCore/bindings/js/JSDOMFormDataCustom.cpp
deleted file mode 100644
index 2559e96..0000000
--- a/WebCore/bindings/js/JSDOMFormDataCustom.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSDOMFormData.h"
-
-#include "DOMFormData.h"
-#include "HTMLFormElement.h"
-#include "JSBlob.h"
-#include "JSHTMLFormElement.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-static HTMLFormElement* toHTMLFormElement(JSC::JSValue value)
-{
- return value.inherits(&JSHTMLFormElement::s_info) ? static_cast<HTMLFormElement*>(static_cast<JSHTMLFormElement*>(asObject(value))->impl()) : 0;
-}
-
-EncodedJSValue JSC_HOST_CALL JSDOMFormDataConstructor::constructJSDOMFormData(ExecState* exec)
-{
- JSDOMFormDataConstructor* jsConstructor = static_cast<JSDOMFormDataConstructor*>(exec->callee());
-
- HTMLFormElement* form = 0;
- if (exec->argumentCount() > 0)
- form = toHTMLFormElement(exec->argument(0));
- RefPtr<DOMFormData> domFormData = DOMFormData::create(form);
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), domFormData.get())));
-}
-
-JSValue JSDOMFormData::append(ExecState* exec)
-{
- if (exec->argumentCount() >= 2) {
- String name = ustringToString(exec->argument(0).toString(exec));
- JSValue value = exec->argument(1);
- if (value.inherits(&JSBlob::s_info))
- impl()->append(name, toBlob(value));
- else
- impl()->append(name, ustringToString(value.toString(exec)));
- }
-
- return jsUndefined();
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSDOMGlobalObject.cpp b/WebCore/bindings/js/JSDOMGlobalObject.cpp
deleted file mode 100644
index e0b5b89..0000000
--- a/WebCore/bindings/js/JSDOMGlobalObject.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include "config.h"
-#include "JSDOMGlobalObject.h"
-
-#include "Document.h"
-#include "JSDOMWindow.h"
-#include "JSEventListener.h"
-
-#if ENABLE(WORKERS)
-#include "JSWorkerContext.h"
-#include "WorkerContext.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-const ClassInfo JSDOMGlobalObject::s_info = { "DOMGlobalObject", 0, 0, 0 };
-
-JSDOMGlobalObject::JSDOMGlobalObject(NonNullPassRefPtr<Structure> structure, JSDOMGlobalObject::JSDOMGlobalObjectData* data, JSObject* thisValue)
- : JSGlobalObject(structure, data, thisValue)
-{
-}
-
-void JSDOMGlobalObject::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- JSDOMStructureMap::iterator end = structures().end();
- for (JSDOMStructureMap::iterator it = structures().begin(); it != end; ++it)
- markStack.append(it->second->storedPrototype());
-
- JSDOMConstructorMap::iterator end2 = constructors().end();
- for (JSDOMConstructorMap::iterator it2 = constructors().begin(); it2 != end2; ++it2)
- markStack.append(it2->second);
-
- if (d()->m_injectedScript)
- markStack.append(d()->m_injectedScript);
-}
-
-void JSDOMGlobalObject::setCurrentEvent(Event* evt)
-{
- d()->evt = evt;
-}
-
-Event* JSDOMGlobalObject::currentEvent() const
-{
- return d()->evt;
-}
-
-void JSDOMGlobalObject::setInjectedScript(JSObject* injectedScript)
-{
- d()->m_injectedScript = injectedScript;
-}
-
-JSObject* JSDOMGlobalObject::injectedScript() const
-{
- return d()->m_injectedScript;
-}
-
-void JSDOMGlobalObject::destroyJSDOMGlobalObjectData(void* jsDOMGlobalObjectData)
-{
- delete static_cast<JSDOMGlobalObjectData*>(jsDOMGlobalObjectData);
-}
-
-JSDOMGlobalObject* toJSDOMGlobalObject(Document* document, JSC::ExecState* exec)
-{
- return toJSDOMWindow(document->frame(), currentWorld(exec));
-}
-
-JSDOMGlobalObject* toJSDOMGlobalObject(ScriptExecutionContext* scriptExecutionContext, JSC::ExecState* exec)
-{
- if (scriptExecutionContext->isDocument())
- return toJSDOMGlobalObject(static_cast<Document*>(scriptExecutionContext), exec);
-
-#if ENABLE(WORKERS)
- if (scriptExecutionContext->isWorkerContext())
- return static_cast<WorkerContext*>(scriptExecutionContext)->script()->workerContextWrapper();
-#endif
-
- ASSERT_NOT_REACHED();
- return 0;
-}
-
-JSDOMGlobalObject* toJSDOMGlobalObject(Document* document, DOMWrapperWorld* world)
-{
- return toJSDOMWindow(document->frame(), world);
-}
-
-JSDOMGlobalObject* toJSDOMGlobalObject(ScriptExecutionContext* scriptExecutionContext, DOMWrapperWorld* world)
-{
- if (scriptExecutionContext->isDocument())
- return toJSDOMGlobalObject(static_cast<Document*>(scriptExecutionContext), world);
-
-#if ENABLE(WORKERS)
- if (scriptExecutionContext->isWorkerContext())
- return static_cast<WorkerContext*>(scriptExecutionContext)->script()->workerContextWrapper();
-#endif
-
- ASSERT_NOT_REACHED();
- return 0;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSDOMGlobalObject.h b/WebCore/bindings/js/JSDOMGlobalObject.h
deleted file mode 100644
index 8eb55c1..0000000
--- a/WebCore/bindings/js/JSDOMGlobalObject.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#ifndef JSDOMGlobalObject_h
-#define JSDOMGlobalObject_h
-
-#include <runtime/JSGlobalObject.h>
-
-namespace WebCore {
-
- class Document;
- class Event;
- class DOMWrapperWorld;
- class JSLazyEventListener;
- class JSEventListener;
- class ScriptExecutionContext;
-
- typedef HashMap<const JSC::ClassInfo*, RefPtr<JSC::Structure> > JSDOMStructureMap;
- typedef HashMap<const JSC::ClassInfo*, JSC::JSObject*> JSDOMConstructorMap;
-
- class JSDOMGlobalObject : public JSC::JSGlobalObject {
- typedef JSC::JSGlobalObject Base;
- protected:
- struct JSDOMGlobalObjectData;
-
- JSDOMGlobalObject(NonNullPassRefPtr<JSC::Structure>, JSDOMGlobalObjectData*, JSC::JSObject* thisValue);
-
- public:
- JSDOMStructureMap& structures() { return d()->structures; }
- JSDOMConstructorMap& constructors() const { return d()->constructors; }
-
- virtual ScriptExecutionContext* scriptExecutionContext() const = 0;
-
- // Make binding code generation easier.
- JSDOMGlobalObject* globalObject() { return this; }
-
- void setCurrentEvent(Event*);
- Event* currentEvent() const;
-
- void setInjectedScript(JSObject*);
- JSObject* injectedScript() const;
-
- virtual void markChildren(JSC::MarkStack&);
-
- DOMWrapperWorld* world() { return d()->m_world.get(); }
-
- virtual const JSC::ClassInfo* classInfo() const { return &s_info; }
- static const JSC::ClassInfo s_info;
-
- protected:
- struct JSDOMGlobalObjectData : public JSC::JSGlobalObject::JSGlobalObjectData {
- JSDOMGlobalObjectData(DOMWrapperWorld* world, Destructor destructor = destroyJSDOMGlobalObjectData)
- : JSGlobalObjectData(destructor)
- , evt(0)
- , m_world(world)
- , m_injectedScript(0)
- {
- }
-
- JSDOMStructureMap structures;
- JSDOMConstructorMap constructors;
-
- Event* evt;
- RefPtr<DOMWrapperWorld> m_world;
- JSObject* m_injectedScript;
- };
-
- private:
- static void destroyJSDOMGlobalObjectData(void*);
-
- JSDOMGlobalObjectData* d() const { return static_cast<JSDOMGlobalObjectData*>(JSC::JSVariableObject::d); }
- };
-
- template<class ConstructorClass>
- inline JSC::JSObject* getDOMConstructor(JSC::ExecState* exec, const JSDOMGlobalObject* globalObject)
- {
- if (JSC::JSObject* constructor = globalObject->constructors().get(&ConstructorClass::s_info))
- return constructor;
- JSC::JSObject* constructor = new (exec) ConstructorClass(exec, const_cast<JSDOMGlobalObject*>(globalObject));
- ASSERT(!globalObject->constructors().contains(&ConstructorClass::s_info));
- globalObject->constructors().set(&ConstructorClass::s_info, constructor);
- return constructor;
- }
-
- JSDOMGlobalObject* toJSDOMGlobalObject(Document*, JSC::ExecState*);
- JSDOMGlobalObject* toJSDOMGlobalObject(ScriptExecutionContext*, JSC::ExecState*);
-
- JSDOMGlobalObject* toJSDOMGlobalObject(Document*, DOMWrapperWorld*);
- JSDOMGlobalObject* toJSDOMGlobalObject(ScriptExecutionContext*, DOMWrapperWorld*);
-
-} // namespace WebCore
-
-#endif // JSDOMGlobalObject_h
diff --git a/WebCore/bindings/js/JSDOMMimeTypeArrayCustom.cpp b/WebCore/bindings/js/JSDOMMimeTypeArrayCustom.cpp
deleted file mode 100644
index 0194962..0000000
--- a/WebCore/bindings/js/JSDOMMimeTypeArrayCustom.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "JSDOMMimeTypeArray.h"
-
-#include "DOMMimeTypeArray.h"
-#include "JSDOMMimeType.h"
-#include <wtf/text/AtomicString.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-bool JSDOMMimeTypeArray::canGetItemsForName(ExecState*, DOMMimeTypeArray* mimeTypeArray, const Identifier& propertyName)
-{
- return mimeTypeArray->canGetItemsForName(identifierToAtomicString(propertyName));
-}
-
-JSValue JSDOMMimeTypeArray::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSDOMMimeTypeArray* thisObj = static_cast<JSDOMMimeTypeArray*>(asObject(slotBase));
- return toJS(exec, thisObj->impl()->namedItem(identifierToAtomicString(propertyName)));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSDOMPluginArrayCustom.cpp b/WebCore/bindings/js/JSDOMPluginArrayCustom.cpp
deleted file mode 100644
index 20ce5e5..0000000
--- a/WebCore/bindings/js/JSDOMPluginArrayCustom.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "JSDOMPluginArray.h"
-
-#include "DOMPluginArray.h"
-#include "JSDOMPlugin.h"
-#include <wtf/text/AtomicString.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-bool JSDOMPluginArray::canGetItemsForName(ExecState*, DOMPluginArray* pluginArray, const Identifier& propertyName)
-{
- return pluginArray->canGetItemsForName(identifierToAtomicString(propertyName));
-}
-
-JSValue JSDOMPluginArray::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSDOMPluginArray* thisObj = static_cast<JSDOMPluginArray*>(asObject(slotBase));
- return toJS(exec, thisObj->impl()->namedItem(identifierToAtomicString(propertyName)));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSDOMPluginCustom.cpp b/WebCore/bindings/js/JSDOMPluginCustom.cpp
deleted file mode 100644
index 319cb3c..0000000
--- a/WebCore/bindings/js/JSDOMPluginCustom.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "JSDOMPlugin.h"
-
-#include "DOMPlugin.h"
-#include "JSDOMMimeType.h"
-#include <wtf/text/AtomicString.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-bool JSDOMPlugin::canGetItemsForName(ExecState*, DOMPlugin* plugin, const Identifier& propertyName)
-{
- return plugin->canGetItemsForName(identifierToAtomicString(propertyName));
-}
-
-JSValue JSDOMPlugin::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSDOMPlugin* thisObj = static_cast<JSDOMPlugin*>(asObject(slotBase));
- return toJS(exec, thisObj->impl()->namedItem(identifierToAtomicString(propertyName)));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSDOMStringMapCustom.cpp b/WebCore/bindings/js/JSDOMStringMapCustom.cpp
deleted file mode 100644
index d1c1d69..0000000
--- a/WebCore/bindings/js/JSDOMStringMapCustom.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSDOMStringMap.h"
-
-#include "DOMStringMap.h"
-#include <wtf/text/AtomicString.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-bool JSDOMStringMap::canGetItemsForName(ExecState*, DOMStringMap* impl, const Identifier& propertyName)
-{
- return impl->contains(identifierToAtomicString(propertyName));
-}
-
-JSValue JSDOMStringMap::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSDOMStringMap* thisObj = static_cast<JSDOMStringMap*>(asObject(slotBase));
- return jsString(exec, thisObj->impl()->item(identifierToAtomicString(propertyName)));
-}
-
-void JSDOMStringMap::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode)
-{
- Vector<String> names;
- m_impl->getNames(names);
- size_t length = names.size();
- for (size_t i = 0; i < length; ++i)
- propertyNames.add(Identifier(exec, stringToUString(names[i])));
-
- Base::getOwnPropertyNames(exec, propertyNames, mode);
-}
-
-bool JSDOMStringMap::deleteProperty(ExecState* exec, const Identifier& propertyName)
-{
- // Only perform the custom delete if the object doesn't have a native property by this name.
- // Since hasProperty() would end up calling canGetItemsForName() and be fooled, we need to check
- // the native property slots manually.
- PropertySlot slot;
- if (getStaticValueSlot<JSDOMStringMap, Base>(exec, s_info.propHashTable(exec), this, propertyName, slot))
- return false;
-
- JSValue prototype = this->prototype();
- if (prototype.isObject() && asObject(prototype)->hasProperty(exec, propertyName))
- return false;
-
- ExceptionCode ec = 0;
- m_impl->deleteItem(identifierToString(propertyName), ec);
- setDOMException(exec, ec);
-
- return true;
-}
-
-bool JSDOMStringMap::putDelegate(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot&)
-{
- // Only perform the custom put if the object doesn't have a native property by this name.
- // Since hasProperty() would end up calling canGetItemsForName() and be fooled, we need to check
- // the native property slots manually.
- PropertySlot slot;
- if (getStaticValueSlot<JSDOMStringMap, Base>(exec, s_info.propHashTable(exec), this, propertyName, slot))
- return false;
-
- JSValue prototype = this->prototype();
- if (prototype.isObject() && asObject(prototype)->hasProperty(exec, propertyName))
- return false;
-
- String stringValue = ustringToString(value.toString(exec));
- if (exec->hadException())
- return true;
-
- ExceptionCode ec = 0;
- impl()->setItem(identifierToString(propertyName), stringValue, ec);
- setDOMException(exec, ec);
-
- return true;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSDOMStringMapCustom.h b/WebCore/bindings/js/JSDOMStringMapCustom.h
deleted file mode 100644
index 095fd21..0000000
--- a/WebCore/bindings/js/JSDOMStringMapCustom.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSDOMStringMapCustom_h
-#define JSDOMStringMapCustom_h
-
-#include "JSDOMStringMap.h"
-
-#endif // JSDOMStringMapCustom_h
diff --git a/WebCore/bindings/js/JSDOMWindowBase.cpp b/WebCore/bindings/js/JSDOMWindowBase.cpp
deleted file mode 100644
index 68c0088..0000000
--- a/WebCore/bindings/js/JSDOMWindowBase.cpp
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright (C) 2000 Harri Porten (porten@kde.org)
- * Copyright (C) 2006 Jon Shier (jshier@iastate.edu)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reseved.
- * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
- * USA
- */
-
-#include "config.h"
-#include "JSDOMWindowBase.h"
-
-#include "Chrome.h"
-#include "Console.h"
-#include "DOMWindow.h"
-#include "Frame.h"
-#include "InspectorController.h"
-#include "JSDOMWindowCustom.h"
-#include "JSNode.h"
-#include "Logging.h"
-#include "Page.h"
-#include "ScriptController.h"
-#include "SecurityOrigin.h"
-#include "Settings.h"
-#include "WebCoreJSClientData.h"
-#include <wtf/Threading.h>
-#include <wtf/text/StringConcatenate.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-const ClassInfo JSDOMWindowBase::s_info = { "Window", &JSDOMGlobalObject::s_info, 0, 0 };
-
-JSDOMWindowBase::JSDOMWindowBaseData::JSDOMWindowBaseData(PassRefPtr<DOMWindow> window, JSDOMWindowShell* shell)
- : JSDOMGlobalObjectData(shell->world(), destroyJSDOMWindowBaseData)
- , impl(window)
- , shell(shell)
-{
-}
-
-JSDOMWindowBase::JSDOMWindowBase(NonNullPassRefPtr<Structure> structure, PassRefPtr<DOMWindow> window, JSDOMWindowShell* shell)
- : JSDOMGlobalObject(structure, new JSDOMWindowBaseData(window, shell), shell)
-{
- GlobalPropertyInfo staticGlobals[] = {
- GlobalPropertyInfo(Identifier(globalExec(), "document"), jsNull(), DontDelete | ReadOnly),
- GlobalPropertyInfo(Identifier(globalExec(), "window"), d()->shell, DontDelete | ReadOnly)
- };
-
- addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));
-}
-
-void JSDOMWindowBase::updateDocument()
-{
- ASSERT(d()->impl->document());
- ExecState* exec = globalExec();
- symbolTablePutWithAttributes(Identifier(exec, "document"), toJS(exec, this, d()->impl->document()), DontDelete | ReadOnly);
-}
-
-ScriptExecutionContext* JSDOMWindowBase::scriptExecutionContext() const
-{
- return d()->impl->document();
-}
-
-String JSDOMWindowBase::crossDomainAccessErrorMessage(const JSGlobalObject* other) const
-{
- return d()->shell->window()->impl()->crossDomainAccessErrorMessage(asJSDOMWindow(other)->impl());
-}
-
-void JSDOMWindowBase::printErrorMessage(const String& message) const
-{
- printErrorMessageForFrame(impl()->frame(), message);
-}
-
-ExecState* JSDOMWindowBase::globalExec()
-{
- // We need to make sure that any script execution happening in this
- // frame does not destroy it
- if (Frame *frame = impl()->frame())
- frame->keepAlive();
- return Base::globalExec();
-}
-
-bool JSDOMWindowBase::supportsProfiling() const
-{
-#if !ENABLE(JAVASCRIPT_DEBUGGER) || !ENABLE(INSPECTOR)
- return false;
-#else
- Frame* frame = impl()->frame();
- if (!frame)
- return false;
-
- Page* page = frame->page();
- if (!page)
- return false;
-
- return page->inspectorController()->profilerEnabled();
-#endif
-}
-
-bool JSDOMWindowBase::supportsRichSourceInfo() const
-{
-#if PLATFORM(ANDROID)
- return true;
-#elif !ENABLE(JAVASCRIPT_DEBUGGER) || !ENABLE(INSPECTOR)
- return false;
-#else
- Frame* frame = impl()->frame();
- if (!frame)
- return false;
-
- Page* page = frame->page();
- if (!page)
- return false;
-
- bool enabled = page->inspectorController()->enabled();
- ASSERT(enabled || !debugger());
- ASSERT(enabled || !supportsProfiling());
- return enabled;
-#endif
-}
-
-bool JSDOMWindowBase::shouldInterruptScript() const
-{
- ASSERT(impl()->frame());
- Page* page = impl()->frame()->page();
-
- // See <rdar://problem/5479443>. We don't think that page can ever be NULL
- // in this case, but if it is, we've gotten into a state where we may have
- // hung the UI, with no way to ask the client whether to cancel execution.
- // For now, our solution is just to cancel execution no matter what,
- // ensuring that we never hang. We might want to consider other solutions
- // if we discover problems with this one.
- ASSERT(page);
- if (!page)
- return true;
-
- return page->chrome()->shouldInterruptJavaScript();
-}
-
-void JSDOMWindowBase::willRemoveFromWindowShell()
-{
- setCurrentEvent(0);
-}
-
-JSObject* JSDOMWindowBase::toThisObject(ExecState*) const
-{
- return shell();
-}
-
-JSValue JSDOMWindowBase::toStrictThisObject(ExecState*) const
-{
- return shell();
-}
-
-JSDOMWindowShell* JSDOMWindowBase::shell() const
-{
- return d()->shell;
-}
-
-JSGlobalData* JSDOMWindowBase::commonJSGlobalData()
-{
- ASSERT(isMainThread());
-
- static JSGlobalData* globalData = 0;
- if (!globalData) {
- globalData = JSGlobalData::createLeaked(ThreadStackTypeLarge).releaseRef();
- globalData->timeoutChecker.setTimeoutInterval(10000); // 10 seconds
-#ifndef NDEBUG
- globalData->exclusiveThread = currentThread();
-#endif
- initNormalWorldClientData(globalData);
- }
-
- return globalData;
-}
-
-void JSDOMWindowBase::destroyJSDOMWindowBaseData(void* jsDOMWindowBaseData)
-{
- delete static_cast<JSDOMWindowBaseData*>(jsDOMWindowBaseData);
-}
-
-// JSDOMGlobalObject* is ignored, accessing a window in any context will
-// use that DOMWindow's prototype chain.
-JSValue toJS(ExecState* exec, JSDOMGlobalObject*, DOMWindow* domWindow)
-{
- return toJS(exec, domWindow);
-}
-
-JSValue toJS(ExecState* exec, DOMWindow* domWindow)
-{
- if (!domWindow)
- return jsNull();
- Frame* frame = domWindow->frame();
- if (!frame)
- return jsNull();
- return frame->script()->windowShell(currentWorld(exec));
-}
-
-JSDOMWindow* toJSDOMWindow(Frame* frame, DOMWrapperWorld* world)
-{
- if (!frame)
- return 0;
- return frame->script()->windowShell(world)->window();
-}
-
-JSDOMWindow* toJSDOMWindow(JSValue value)
-{
- if (!value.isObject())
- return 0;
- const ClassInfo* classInfo = asObject(value)->classInfo();
- if (classInfo == &JSDOMWindow::s_info)
- return static_cast<JSDOMWindow*>(asObject(value));
- if (classInfo == &JSDOMWindowShell::s_info)
- return static_cast<JSDOMWindowShell*>(asObject(value))->window();
- return 0;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSDOMWindowBase.h b/WebCore/bindings/js/JSDOMWindowBase.h
deleted file mode 100644
index fbef808..0000000
--- a/WebCore/bindings/js/JSDOMWindowBase.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (C) 2000 Harri Porten (porten@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reseved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef JSDOMWindowBase_h
-#define JSDOMWindowBase_h
-
-#include "PlatformString.h"
-#include "JSDOMBinding.h"
-#include <runtime/Protect.h>
-#include <wtf/Forward.h>
-#include <wtf/HashMap.h>
-#include <wtf/OwnPtr.h>
-
-namespace WebCore {
-
- class DOMWindow;
- class Event;
- class Frame;
- class DOMWrapperWorld;
- class JSDOMWindow;
- class JSDOMWindowShell;
- class JSLocation;
- class JSEventListener;
- class SecurityOrigin;
-
- class JSDOMWindowBasePrivate;
-
- class JSDOMWindowBase : public JSDOMGlobalObject {
- typedef JSDOMGlobalObject Base;
- protected:
- JSDOMWindowBase(NonNullPassRefPtr<JSC::Structure>, PassRefPtr<DOMWindow>, JSDOMWindowShell*);
-
- public:
- void updateDocument();
-
- DOMWindow* impl() const { return d()->impl.get(); }
- virtual ScriptExecutionContext* scriptExecutionContext() const;
-
- // Called just before removing this window from the JSDOMWindowShell.
- void willRemoveFromWindowShell();
-
- virtual const JSC::ClassInfo* classInfo() const { return &s_info; }
- static const JSC::ClassInfo s_info;
-
- virtual JSC::ExecState* globalExec();
- virtual bool supportsProfiling() const;
- virtual bool supportsRichSourceInfo() const;
- virtual bool shouldInterruptScript() const;
-
- bool allowsAccessFrom(JSC::ExecState*) const;
- bool allowsAccessFromNoErrorMessage(JSC::ExecState*) const;
- bool allowsAccessFrom(JSC::ExecState*, String& message) const;
- void printErrorMessage(const String&) const;
-
- // Don't call this version of allowsAccessFrom -- it's a slightly incorrect implementation used only by WebScriptObject
- virtual bool allowsAccessFrom(const JSC::JSGlobalObject*) const;
-
- virtual JSC::JSObject* toThisObject(JSC::ExecState*) const;
- virtual JSC::JSValue toStrictThisObject(JSC::ExecState*) const;
- JSDOMWindowShell* shell() const;
-
- static JSC::JSGlobalData* commonJSGlobalData();
-
- private:
- struct JSDOMWindowBaseData : public JSDOMGlobalObjectData {
- JSDOMWindowBaseData(PassRefPtr<DOMWindow> window, JSDOMWindowShell* shell);
-
- RefPtr<DOMWindow> impl;
- JSDOMWindowShell* shell;
- };
-
- bool allowsAccessFromPrivate(const JSC::JSGlobalObject*) const;
- String crossDomainAccessErrorMessage(const JSC::JSGlobalObject*) const;
-
- static void destroyJSDOMWindowBaseData(void*);
-
- JSDOMWindowBaseData* d() const { return static_cast<JSDOMWindowBaseData*>(JSC::JSVariableObject::d); }
- };
-
- // Returns a JSDOMWindow or jsNull()
- // JSDOMGlobalObject* is ignored, accessing a window in any context will
- // use that DOMWindow's prototype chain.
- JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, DOMWindow*);
- JSC::JSValue toJS(JSC::ExecState*, DOMWindow*);
-
- // Returns JSDOMWindow or 0
- JSDOMWindow* toJSDOMWindow(Frame*, DOMWrapperWorld*);
- JSDOMWindow* toJSDOMWindow(JSC::JSValue);
-
-} // namespace WebCore
-
-#endif // JSDOMWindowBase_h
diff --git a/WebCore/bindings/js/JSDOMWindowCustom.cpp b/WebCore/bindings/js/JSDOMWindowCustom.cpp
deleted file mode 100644
index 5b16ff5..0000000
--- a/WebCore/bindings/js/JSDOMWindowCustom.cpp
+++ /dev/null
@@ -1,843 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "JSDOMWindowCustom.h"
-
-#include "Chrome.h"
-#include "DOMWindow.h"
-#include "Document.h"
-#include "ExceptionCode.h"
-#include "FloatRect.h"
-#include "Frame.h"
-#include "FrameLoadRequest.h"
-#include "FrameLoader.h"
-#include "FrameTree.h"
-#include "FrameView.h"
-#include "HTMLCollection.h"
-#include "HTMLDocument.h"
-#include "History.h"
-#include "JSAudioConstructor.h"
-#include "JSDOMWindowShell.h"
-#include "JSEvent.h"
-#include "JSEventListener.h"
-#include "JSEventSource.h"
-#include "JSHTMLCollection.h"
-#include "JSHistory.h"
-#include "JSImageConstructor.h"
-#include "JSLocation.h"
-#include "JSMessageChannel.h"
-#include "JSMessagePort.h"
-#include "JSMessagePortCustom.h"
-#include "JSOptionConstructor.h"
-#include "JSWebKitCSSMatrix.h"
-#include "JSWebKitPoint.h"
-#include "JSWorker.h"
-#include "JSXMLHttpRequest.h"
-#include "JSXSLTProcessor.h"
-#include "Location.h"
-#include "MediaPlayer.h"
-#include "MessagePort.h"
-#include "NotificationCenter.h"
-#include "Page.h"
-#include "PlatformScreen.h"
-#include "RegisteredEventListener.h"
-#include "ScheduledAction.h"
-#include "ScriptController.h"
-#include "SerializedScriptValue.h"
-#include "Settings.h"
-#include "SharedWorkerRepository.h"
-#include "WindowFeatures.h"
-#include <runtime/Error.h>
-#include <runtime/JSFunction.h>
-#include <runtime/JSObject.h>
-#include <runtime/PrototypeFunction.h>
-#include <wtf/text/AtomicString.h>
-
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
-#include "JSArrayBuffer.h"
-#include "JSDataView.h"
-#include "JSFloat32Array.h"
-#include "JSInt16Array.h"
-#include "JSInt32Array.h"
-#include "JSInt8Array.h"
-#include "JSUint16Array.h"
-#include "JSUint32Array.h"
-#include "JSUint8Array.h"
-#endif
-
-#if ENABLE(SHARED_WORKERS)
-#include "JSSharedWorker.h"
-#endif
-
-#if ENABLE(WEB_AUDIO)
-#include "JSAudioContext.h"
-#endif
-
-#if ENABLE(WEB_SOCKETS)
-#include "JSWebSocket.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSDOMWindow::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- impl()->markJSEventListeners(markStack);
-
- JSGlobalData& globalData = *Heap::heap(this)->globalData();
-
- markDOMObjectWrapper(markStack, globalData, impl()->optionalConsole());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalHistory());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalLocationbar());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalMenubar());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalNavigator());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalPersonalbar());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalScreen());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalScrollbars());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalSelection());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalStatusbar());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalToolbar());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalLocation());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalMedia());
-#if ENABLE(DOM_STORAGE)
- markDOMObjectWrapper(markStack, globalData, impl()->optionalSessionStorage());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalLocalStorage());
-#endif
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
- markDOMObjectWrapper(markStack, globalData, impl()->optionalApplicationCache());
-#endif
-}
-
-template<NativeFunction nativeFunction, int length>
-JSValue nonCachingStaticFunctionGetter(ExecState* exec, JSValue, const Identifier& propertyName)
-{
- return new (exec) NativeFunctionWrapper(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->prototypeFunctionStructure(), length, propertyName, nativeFunction);
-}
-
-static JSValue childFrameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- return toJS(exec, static_cast<JSDOMWindow*>(asObject(slotBase))->impl()->frame()->tree()->child(identifierToAtomicString(propertyName))->domWindow());
-}
-
-static JSValue indexGetter(ExecState* exec, JSValue slotBase, unsigned index)
-{
- return toJS(exec, static_cast<JSDOMWindow*>(asObject(slotBase))->impl()->frame()->tree()->child(index)->domWindow());
-}
-
-static JSValue namedItemGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSDOMWindowBase* thisObj = static_cast<JSDOMWindow*>(asObject(slotBase));
- Document* document = thisObj->impl()->frame()->document();
-
- ASSERT(thisObj->allowsAccessFrom(exec));
- ASSERT(document);
- ASSERT(document->isHTMLDocument());
-
- RefPtr<HTMLCollection> collection = document->windowNamedItems(identifierToString(propertyName));
- if (collection->length() == 1)
- return toJS(exec, collection->firstItem());
- return toJS(exec, collection.get());
-}
-
-bool JSDOMWindow::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
-{
- // When accessing a Window cross-domain, functions are always the native built-in ones, and they
- // are not affected by properties changed on the Window or anything in its prototype chain.
- // This is consistent with the behavior of Firefox.
-
- const HashEntry* entry;
-
- // We don't want any properties other than "close" and "closed" on a closed window.
- if (!impl()->frame()) {
- // The following code is safe for cross-domain and same domain use.
- // It ignores any custom properties that might be set on the DOMWindow (including a custom prototype).
- entry = s_info.propHashTable(exec)->entry(exec, propertyName);
- if (entry && !(entry->attributes() & Function) && entry->propertyGetter() == jsDOMWindowClosed) {
- slot.setCustom(this, entry->propertyGetter());
- return true;
- }
- entry = JSDOMWindowPrototype::s_info.propHashTable(exec)->entry(exec, propertyName);
- if (entry && (entry->attributes() & Function) && entry->function() == jsDOMWindowPrototypeFunctionClose) {
- slot.setCustom(this, nonCachingStaticFunctionGetter<jsDOMWindowPrototypeFunctionClose, 0>);
- return true;
- }
-
- // FIXME: We should have a message here that explains why the property access/function call was
- // not allowed.
- slot.setUndefined();
- return true;
- }
-
- // We need to check for cross-domain access here without printing the generic warning message
- // because we always allow access to some function, just different ones depending whether access
- // is allowed.
- String errorMessage;
- bool allowsAccess = allowsAccessFrom(exec, errorMessage);
-
- // Look for overrides before looking at any of our own properties, but ignore overrides completely
- // if this is cross-domain access.
- if (allowsAccess && JSGlobalObject::getOwnPropertySlot(exec, propertyName, slot))
- return true;
-
- // We need this code here because otherwise JSDOMWindowBase will stop the search before we even get to the
- // prototype due to the blanket same origin (allowsAccessFrom) check at the end of getOwnPropertySlot.
- // Also, it's important to get the implementation straight out of the DOMWindow prototype regardless of
- // what prototype is actually set on this object.
- entry = JSDOMWindowPrototype::s_info.propHashTable(exec)->entry(exec, propertyName);
- if (entry) {
- if (entry->attributes() & Function) {
- if (entry->function() == jsDOMWindowPrototypeFunctionBlur) {
- if (!allowsAccess) {
- slot.setCustom(this, nonCachingStaticFunctionGetter<jsDOMWindowPrototypeFunctionBlur, 0>);
- return true;
- }
- } else if (entry->function() == jsDOMWindowPrototypeFunctionClose) {
- if (!allowsAccess) {
- slot.setCustom(this, nonCachingStaticFunctionGetter<jsDOMWindowPrototypeFunctionClose, 0>);
- return true;
- }
- } else if (entry->function() == jsDOMWindowPrototypeFunctionFocus) {
- if (!allowsAccess) {
- slot.setCustom(this, nonCachingStaticFunctionGetter<jsDOMWindowPrototypeFunctionFocus, 0>);
- return true;
- }
- } else if (entry->function() == jsDOMWindowPrototypeFunctionPostMessage) {
- if (!allowsAccess) {
- slot.setCustom(this, nonCachingStaticFunctionGetter<jsDOMWindowPrototypeFunctionPostMessage, 2>);
- return true;
- }
- } else if (entry->function() == jsDOMWindowPrototypeFunctionShowModalDialog) {
- if (!DOMWindow::canShowModalDialog(impl()->frame())) {
- slot.setUndefined();
- return true;
- }
- }
- }
- } else {
- // Allow access to toString() cross-domain, but always Object.prototype.toString.
- if (propertyName == exec->propertyNames().toString) {
- if (!allowsAccess) {
- slot.setCustom(this, objectToStringFunctionGetter);
- return true;
- }
- }
- }
-
- entry = JSDOMWindow::s_info.propHashTable(exec)->entry(exec, propertyName);
- if (entry) {
- slot.setCustom(this, entry->propertyGetter());
- return true;
- }
-
- // Check for child frames by name before built-in properties to
- // match Mozilla. This does not match IE, but some sites end up
- // naming frames things that conflict with window properties that
- // are in Moz but not IE. Since we have some of these, we have to do
- // it the Moz way.
- if (impl()->frame()->tree()->child(identifierToAtomicString(propertyName))) {
- slot.setCustom(this, childFrameGetter);
- return true;
- }
-
- // Do prototype lookup early so that functions and attributes in the prototype can have
- // precedence over the index and name getters.
- JSValue proto = prototype();
- if (proto.isObject()) {
- if (asObject(proto)->getPropertySlot(exec, propertyName, slot)) {
- if (!allowsAccess) {
- printErrorMessage(errorMessage);
- slot.setUndefined();
- }
- return true;
- }
- }
-
- // FIXME: Search the whole frame hierarchy somewhere around here.
- // We need to test the correct priority order.
-
- // allow window[1] or parent[1] etc. (#56983)
- bool ok;
- unsigned i = propertyName.toArrayIndex(ok);
- if (ok && i < impl()->frame()->tree()->childCount()) {
- slot.setCustomIndex(this, i, indexGetter);
- return true;
- }
-
- if (!allowsAccess) {
- printErrorMessage(errorMessage);
- slot.setUndefined();
- return true;
- }
-
- // Allow shortcuts like 'Image1' instead of document.images.Image1
- Document* document = impl()->frame()->document();
- if (document->isHTMLDocument()) {
- AtomicStringImpl* atomicPropertyName = findAtomicString(propertyName);
- if (atomicPropertyName && (static_cast<HTMLDocument*>(document)->hasNamedItem(atomicPropertyName) || document->hasElementWithId(atomicPropertyName))) {
- slot.setCustom(this, namedItemGetter);
- return true;
- }
- }
-
- return Base::getOwnPropertySlot(exec, propertyName, slot);
-}
-
-bool JSDOMWindow::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
-{
- // Never allow cross-domain getOwnPropertyDescriptor
- if (!allowsAccessFrom(exec))
- return false;
-
- const HashEntry* entry;
-
- // We don't want any properties other than "close" and "closed" on a closed window.
- if (!impl()->frame()) {
- // The following code is safe for cross-domain and same domain use.
- // It ignores any custom properties that might be set on the DOMWindow (including a custom prototype).
- entry = s_info.propHashTable(exec)->entry(exec, propertyName);
- if (entry && !(entry->attributes() & Function) && entry->propertyGetter() == jsDOMWindowClosed) {
- descriptor.setDescriptor(jsBoolean(true), ReadOnly | DontDelete | DontEnum);
- return true;
- }
- entry = JSDOMWindowPrototype::s_info.propHashTable(exec)->entry(exec, propertyName);
- if (entry && (entry->attributes() & Function) && entry->function() == jsDOMWindowPrototypeFunctionClose) {
- PropertySlot slot;
- slot.setCustom(this, nonCachingStaticFunctionGetter<jsDOMWindowPrototypeFunctionClose, 0>);
- descriptor.setDescriptor(slot.getValue(exec, propertyName), ReadOnly | DontDelete | DontEnum);
- return true;
- }
- descriptor.setUndefined();
- return true;
- }
-
- entry = JSDOMWindow::s_info.propHashTable(exec)->entry(exec, propertyName);
- if (entry) {
- PropertySlot slot;
- slot.setCustom(this, entry->propertyGetter());
- descriptor.setDescriptor(slot.getValue(exec, propertyName), entry->attributes());
- return true;
- }
-
- // Check for child frames by name before built-in properties to
- // match Mozilla. This does not match IE, but some sites end up
- // naming frames things that conflict with window properties that
- // are in Moz but not IE. Since we have some of these, we have to do
- // it the Moz way.
- if (impl()->frame()->tree()->child(identifierToAtomicString(propertyName))) {
- PropertySlot slot;
- slot.setCustom(this, childFrameGetter);
- descriptor.setDescriptor(slot.getValue(exec, propertyName), ReadOnly | DontDelete | DontEnum);
- return true;
- }
-
- bool ok;
- unsigned i = propertyName.toArrayIndex(ok);
- if (ok && i < impl()->frame()->tree()->childCount()) {
- PropertySlot slot;
- slot.setCustomIndex(this, i, indexGetter);
- descriptor.setDescriptor(slot.getValue(exec, propertyName), ReadOnly | DontDelete | DontEnum);
- return true;
- }
-
- // Allow shortcuts like 'Image1' instead of document.images.Image1
- Document* document = impl()->frame()->document();
- if (document->isHTMLDocument()) {
- AtomicStringImpl* atomicPropertyName = findAtomicString(propertyName);
- if (atomicPropertyName && (static_cast<HTMLDocument*>(document)->hasNamedItem(atomicPropertyName) || document->hasElementWithId(atomicPropertyName))) {
- PropertySlot slot;
- slot.setCustom(this, namedItemGetter);
- descriptor.setDescriptor(slot.getValue(exec, propertyName), ReadOnly | DontDelete | DontEnum);
- return true;
- }
- }
-
- return Base::getOwnPropertyDescriptor(exec, propertyName, descriptor);
-}
-
-void JSDOMWindow::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
-{
- if (!impl()->frame())
- return;
-
- // Optimization: access JavaScript global variables directly before involving the DOM.
- if (JSGlobalObject::hasOwnPropertyForWrite(exec, propertyName)) {
- if (allowsAccessFrom(exec))
- JSGlobalObject::put(exec, propertyName, value, slot);
- return;
- }
-
- if (lookupPut<JSDOMWindow>(exec, propertyName, value, s_info.propHashTable(exec), this))
- return;
-
- if (allowsAccessFrom(exec))
- Base::put(exec, propertyName, value, slot);
-}
-
-bool JSDOMWindow::deleteProperty(ExecState* exec, const Identifier& propertyName)
-{
- // Only allow deleting properties by frames in the same origin.
- if (!allowsAccessFrom(exec))
- return false;
- return Base::deleteProperty(exec, propertyName);
-}
-
-void JSDOMWindow::getPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode)
-{
- // Only allow the window to enumerated by frames in the same origin.
- if (!allowsAccessFrom(exec))
- return;
- Base::getPropertyNames(exec, propertyNames, mode);
-}
-
-void JSDOMWindow::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode)
-{
- // Only allow the window to enumerated by frames in the same origin.
- if (!allowsAccessFrom(exec))
- return;
- Base::getOwnPropertyNames(exec, propertyNames, mode);
-}
-
-void JSDOMWindow::defineGetter(ExecState* exec, const Identifier& propertyName, JSObject* getterFunction, unsigned attributes)
-{
- // Only allow defining getters by frames in the same origin.
- if (!allowsAccessFrom(exec))
- return;
-
- // Don't allow shadowing location using defineGetter.
- if (propertyName == "location")
- return;
-
- Base::defineGetter(exec, propertyName, getterFunction, attributes);
-}
-
-void JSDOMWindow::defineSetter(ExecState* exec, const Identifier& propertyName, JSObject* setterFunction, unsigned attributes)
-{
- // Only allow defining setters by frames in the same origin.
- if (!allowsAccessFrom(exec))
- return;
- Base::defineSetter(exec, propertyName, setterFunction, attributes);
-}
-
-bool JSDOMWindow::defineOwnProperty(JSC::ExecState* exec, const JSC::Identifier& propertyName, JSC::PropertyDescriptor& descriptor, bool shouldThrow)
-{
- // Only allow defining properties in this way by frames in the same origin, as it allows setters to be introduced.
- if (!allowsAccessFrom(exec))
- return false;
- return Base::defineOwnProperty(exec, propertyName, descriptor, shouldThrow);
-}
-
-JSValue JSDOMWindow::lookupGetter(ExecState* exec, const Identifier& propertyName)
-{
- // Only allow looking-up getters by frames in the same origin.
- if (!allowsAccessFrom(exec))
- return jsUndefined();
- return Base::lookupGetter(exec, propertyName);
-}
-
-JSValue JSDOMWindow::lookupSetter(ExecState* exec, const Identifier& propertyName)
-{
- // Only allow looking-up setters by frames in the same origin.
- if (!allowsAccessFrom(exec))
- return jsUndefined();
- return Base::lookupSetter(exec, propertyName);
-}
-
-// Custom Attributes
-
-JSValue JSDOMWindow::history(ExecState* exec) const
-{
- History* history = impl()->history();
- if (DOMObject* wrapper = getCachedDOMObjectWrapper(exec, history))
- return wrapper;
-
- JSDOMWindow* window = const_cast<JSDOMWindow*>(this);
- JSHistory* jsHistory = new (exec) JSHistory(getDOMStructure<JSHistory>(exec, window), window, history);
- cacheDOMObjectWrapper(exec, history, jsHistory);
- return jsHistory;
-}
-
-JSValue JSDOMWindow::location(ExecState* exec) const
-{
- Location* location = impl()->location();
- if (DOMObject* wrapper = getCachedDOMObjectWrapper(exec, location))
- return wrapper;
-
- JSDOMWindow* window = const_cast<JSDOMWindow*>(this);
- JSLocation* jsLocation = new (exec) JSLocation(getDOMStructure<JSLocation>(exec, window), window, location);
- cacheDOMObjectWrapper(exec, location, jsLocation);
- return jsLocation;
-}
-
-void JSDOMWindow::setLocation(ExecState* exec, JSValue value)
-{
- DOMWindow* activeWindow = asJSDOMWindow(exec->lexicalGlobalObject())->impl();
- DOMWindow* firstWindow = asJSDOMWindow(exec->dynamicGlobalObject())->impl();
-
-#if ENABLE(DASHBOARD_SUPPORT)
- // To avoid breaking old widgets, make "var location =" in a top-level frame create
- // a property named "location" instead of performing a navigation (<rdar://problem/5688039>).
- if (Frame* activeFrame = activeWindow->frame()) {
- if (Settings* settings = activeFrame->settings()) {
- if (settings->usesDashboardBackwardCompatibilityMode() && !activeFrame->tree()->parent()) {
- if (allowsAccessFrom(exec))
- putDirect(Identifier(exec, "location"), value);
- return;
- }
- }
- }
-#endif
-
- UString locationString = value.toString(exec);
- if (exec->hadException())
- return;
-
- impl()->setLocation(ustringToString(locationString), activeWindow, firstWindow);
-}
-
-JSValue JSDOMWindow::crypto(ExecState*) const
-{
- return jsUndefined();
-}
-
-JSValue JSDOMWindow::event(ExecState* exec) const
-{
- Event* event = currentEvent();
- if (!event)
- return jsUndefined();
- return toJS(exec, event);
-}
-
-#if ENABLE(EVENTSOURCE)
-JSValue JSDOMWindow::eventSource(ExecState* exec) const
-{
- return getDOMConstructor<JSEventSourceConstructor>(exec, this);
-}
-#endif
-
-JSValue JSDOMWindow::image(ExecState* exec) const
-{
- return getDOMConstructor<JSImageConstructor>(exec, this);
-}
-
-JSValue JSDOMWindow::option(ExecState* exec) const
-{
- return getDOMConstructor<JSOptionConstructor>(exec, this);
-}
-
-#if ENABLE(VIDEO)
-JSValue JSDOMWindow::audio(ExecState* exec) const
-{
- if (!MediaPlayer::isAvailable())
- return jsUndefined();
- return getDOMConstructor<JSAudioConstructor>(exec, this);
-}
-#endif
-
-JSValue JSDOMWindow::webKitPoint(ExecState* exec) const
-{
- return getDOMConstructor<JSWebKitPointConstructor>(exec, this);
-}
-
-JSValue JSDOMWindow::webKitCSSMatrix(ExecState* exec) const
-{
- return getDOMConstructor<JSWebKitCSSMatrixConstructor>(exec, this);
-}
-
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
-JSValue JSDOMWindow::arrayBuffer(ExecState* exec) const
-{
- return getDOMConstructor<JSArrayBufferConstructor>(exec, this);
-}
-
-JSValue JSDOMWindow::int8Array(ExecState* exec) const
-{
- return getDOMConstructor<JSInt8ArrayConstructor>(exec, this);
-}
-
-JSValue JSDOMWindow::uint8Array(ExecState* exec) const
-{
- return getDOMConstructor<JSUint8ArrayConstructor>(exec, this);
-}
-
-JSValue JSDOMWindow::int32Array(ExecState* exec) const
-{
- return getDOMConstructor<JSInt32ArrayConstructor>(exec, this);
-}
-
-JSValue JSDOMWindow::uint32Array(ExecState* exec) const
-{
- return getDOMConstructor<JSUint32ArrayConstructor>(exec, this);
-}
-
-JSValue JSDOMWindow::int16Array(ExecState* exec) const
-{
- return getDOMConstructor<JSInt16ArrayConstructor>(exec, this);
-}
-
-JSValue JSDOMWindow::uint16Array(ExecState* exec) const
-{
- return getDOMConstructor<JSUint16ArrayConstructor>(exec, this);
-}
-
-JSValue JSDOMWindow::float32Array(ExecState* exec) const
-{
- return getDOMConstructor<JSFloat32ArrayConstructor>(exec, this);
-}
-
-JSValue JSDOMWindow::dataView(ExecState* exec) const
-{
- return getDOMConstructor<JSDataViewConstructor>(exec, this);
-}
-#endif
-
-JSValue JSDOMWindow::xmlHttpRequest(ExecState* exec) const
-{
- return getDOMConstructor<JSXMLHttpRequestConstructor>(exec, this);
-}
-
-#if ENABLE(XSLT)
-JSValue JSDOMWindow::xsltProcessor(ExecState* exec) const
-{
- return getDOMConstructor<JSXSLTProcessorConstructor>(exec, this);
-}
-#endif
-
-#if ENABLE(CHANNEL_MESSAGING)
-JSValue JSDOMWindow::messageChannel(ExecState* exec) const
-{
- return getDOMConstructor<JSMessageChannelConstructor>(exec, this);
-}
-#endif
-
-#if ENABLE(WORKERS)
-JSValue JSDOMWindow::worker(ExecState* exec) const
-{
- return getDOMConstructor<JSWorkerConstructor>(exec, this);
-}
-#endif
-
-#if ENABLE(SHARED_WORKERS)
-JSValue JSDOMWindow::sharedWorker(ExecState* exec) const
-{
- if (SharedWorkerRepository::isAvailable())
- return getDOMConstructor<JSSharedWorkerConstructor>(exec, this);
- return jsUndefined();
-}
-#endif
-
-#if ENABLE(WEB_AUDIO)
-JSValue JSDOMWindow::webkitAudioContext(ExecState* exec) const
-{
- return getDOMConstructor<JSAudioContextConstructor>(exec, this);
-}
-#endif
-
-#if ENABLE(WEB_SOCKETS)
-JSValue JSDOMWindow::webSocket(ExecState* exec) const
-{
- Frame* frame = impl()->frame();
- if (!frame)
- return jsUndefined();
- Settings* settings = frame->settings();
- if (!settings)
- return jsUndefined();
- return getDOMConstructor<JSWebSocketConstructor>(exec, this);
-}
-#endif
-
-// Custom functions
-
-JSValue JSDOMWindow::open(ExecState* exec)
-{
- DOMWindow* activeWindow = asJSDOMWindow(exec->lexicalGlobalObject())->impl();
- DOMWindow* firstWindow = asJSDOMWindow(exec->dynamicGlobalObject())->impl();
-
- String urlString = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(0));
- if (exec->hadException())
- return jsUndefined();
- AtomicString frameName = exec->argument(1).isUndefinedOrNull() ? "_blank" : ustringToAtomicString(exec->argument(1).toString(exec));
- if (exec->hadException())
- return jsUndefined();
- String windowFeaturesString = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(2));
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<DOMWindow> openedWindow = impl()->open(urlString, frameName, windowFeaturesString, activeWindow, firstWindow);
- if (!openedWindow)
- return jsUndefined();
- return toJS(exec, openedWindow.get());
-}
-
-class DialogHandler {
-public:
- explicit DialogHandler(ExecState* exec)
- : m_exec(exec)
- , m_globalObject(0)
- {
- }
-
- void dialogCreated(DOMWindow*);
- JSValue returnValue() const;
-
-private:
- ExecState* m_exec;
- JSDOMWindow* m_globalObject;
-};
-
-inline void DialogHandler::dialogCreated(DOMWindow* dialog)
-{
- m_globalObject = toJSDOMWindow(dialog->frame(), normalWorld(m_exec->globalData()));
- if (JSValue dialogArguments = m_exec->argument(1))
- m_globalObject->putDirect(Identifier(m_exec, "dialogArguments"), dialogArguments);
-}
-
-inline JSValue DialogHandler::returnValue() const
-{
- if (!m_globalObject)
- return jsUndefined();
- Identifier identifier(m_exec, "returnValue");
- PropertySlot slot;
- if (!m_globalObject->JSGlobalObject::getOwnPropertySlot(m_exec, identifier, slot))
- return jsUndefined();
- return slot.getValue(m_exec, identifier);
-}
-
-static void setUpDialog(DOMWindow* dialog, void* context)
-{
- static_cast<DialogHandler*>(context)->dialogCreated(dialog);
-}
-
-JSValue JSDOMWindow::showModalDialog(ExecState* exec)
-{
- DOMWindow* activeWindow = asJSDOMWindow(exec->lexicalGlobalObject())->impl();
- DOMWindow* firstWindow = asJSDOMWindow(exec->dynamicGlobalObject())->impl();
-
- String urlString = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(0));
- if (exec->hadException())
- return jsUndefined();
- String dialogFeaturesString = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(2));
- if (exec->hadException())
- return jsUndefined();
-
- DialogHandler handler(exec);
-
- impl()->showModalDialog(urlString, dialogFeaturesString, activeWindow, firstWindow, setUpDialog, &handler);
-
- return handler.returnValue();
-}
-
-JSValue JSDOMWindow::postMessage(ExecState* exec)
-{
- DOMWindow* activeWindow = asJSDOMWindow(exec->lexicalGlobalObject())->impl();
-
- PassRefPtr<SerializedScriptValue> message = SerializedScriptValue::create(exec, exec->argument(0));
-
- if (exec->hadException())
- return jsUndefined();
-
- MessagePortArray messagePorts;
- if (exec->argumentCount() > 2)
- fillMessagePortArray(exec, exec->argument(1), messagePorts);
- if (exec->hadException())
- return jsUndefined();
-
- String targetOrigin = valueToStringWithUndefinedOrNullCheck(exec, exec->argument((exec->argumentCount() == 2) ? 1 : 2));
- if (exec->hadException())
- return jsUndefined();
-
- ExceptionCode ec = 0;
- impl()->postMessage(message, &messagePorts, targetOrigin, activeWindow, ec);
- setDOMException(exec, ec);
-
- return jsUndefined();
-}
-
-JSValue JSDOMWindow::setTimeout(ExecState* exec)
-{
- OwnPtr<ScheduledAction> action = ScheduledAction::create(exec, currentWorld(exec));
- if (exec->hadException())
- return jsUndefined();
- int delay = exec->argument(1).toInt32(exec);
-
- ExceptionCode ec = 0;
- int result = impl()->setTimeout(action.release(), delay, ec);
- setDOMException(exec, ec);
-
- return jsNumber(result);
-}
-
-JSValue JSDOMWindow::setInterval(ExecState* exec)
-{
- OwnPtr<ScheduledAction> action = ScheduledAction::create(exec, currentWorld(exec));
- if (exec->hadException())
- return jsUndefined();
- int delay = exec->argument(1).toInt32(exec);
-
- ExceptionCode ec = 0;
- int result = impl()->setInterval(action.release(), delay, ec);
- setDOMException(exec, ec);
-
- return jsNumber(result);
-}
-
-JSValue JSDOMWindow::addEventListener(ExecState* exec)
-{
- Frame* frame = impl()->frame();
- if (!frame)
- return jsUndefined();
-
- JSValue listener = exec->argument(1);
- if (!listener.isObject())
- return jsUndefined();
-
- impl()->addEventListener(ustringToAtomicString(exec->argument(0).toString(exec)), JSEventListener::create(asObject(listener), this, false, currentWorld(exec)), exec->argument(2).toBoolean(exec));
- return jsUndefined();
-}
-
-JSValue JSDOMWindow::removeEventListener(ExecState* exec)
-{
- Frame* frame = impl()->frame();
- if (!frame)
- return jsUndefined();
-
- JSValue listener = exec->argument(1);
- if (!listener.isObject())
- return jsUndefined();
-
- impl()->removeEventListener(ustringToAtomicString(exec->argument(0).toString(exec)), JSEventListener::create(asObject(listener), this, false, currentWorld(exec)).get(), exec->argument(2).toBoolean(exec));
- return jsUndefined();
-}
-
-DOMWindow* toDOMWindow(JSValue value)
-{
- if (!value.isObject())
- return 0;
- JSObject* object = asObject(value);
- if (object->inherits(&JSDOMWindow::s_info))
- return static_cast<JSDOMWindow*>(object)->impl();
- if (object->inherits(&JSDOMWindowShell::s_info))
- return static_cast<JSDOMWindowShell*>(object)->impl();
- return 0;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSDOMWindowCustom.h b/WebCore/bindings/js/JSDOMWindowCustom.h
deleted file mode 100644
index a0e1b8f..0000000
--- a/WebCore/bindings/js/JSDOMWindowCustom.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All rights reseved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef JSDOMWindowCustom_h
-#define JSDOMWindowCustom_h
-
-#include "JSDOMWindow.h"
-#include "JSDOMWindowShell.h"
-#include <wtf/AlwaysInline.h>
-
-namespace WebCore {
-
-inline JSDOMWindow* asJSDOMWindow(JSC::JSGlobalObject* globalObject)
-{
- return static_cast<JSDOMWindow*>(globalObject);
-}
-
-inline const JSDOMWindow* asJSDOMWindow(const JSC::JSGlobalObject* globalObject)
-{
- return static_cast<const JSDOMWindow*>(globalObject);
-}
-
-inline bool JSDOMWindowBase::allowsAccessFrom(const JSGlobalObject* other) const
-{
- if (allowsAccessFromPrivate(other))
- return true;
- printErrorMessage(crossDomainAccessErrorMessage(other));
- return false;
-}
-
-inline bool JSDOMWindowBase::allowsAccessFrom(JSC::ExecState* exec) const
-{
- if (allowsAccessFromPrivate(exec->lexicalGlobalObject()))
- return true;
- printErrorMessage(crossDomainAccessErrorMessage(exec->lexicalGlobalObject()));
- return false;
-}
-
-inline bool JSDOMWindowBase::allowsAccessFromNoErrorMessage(JSC::ExecState* exec) const
-{
- return allowsAccessFromPrivate(exec->lexicalGlobalObject());
-}
-
-inline bool JSDOMWindowBase::allowsAccessFrom(JSC::ExecState* exec, String& message) const
-{
- if (allowsAccessFromPrivate(exec->lexicalGlobalObject()))
- return true;
- message = crossDomainAccessErrorMessage(exec->lexicalGlobalObject());
- return false;
-}
-
-ALWAYS_INLINE bool JSDOMWindowBase::allowsAccessFromPrivate(const JSGlobalObject* other) const
-{
- const JSDOMWindow* originWindow = asJSDOMWindow(other);
- const JSDOMWindow* targetWindow = d()->shell->window();
-
- if (originWindow == targetWindow)
- return true;
-
- const SecurityOrigin* originSecurityOrigin = originWindow->impl()->securityOrigin();
- const SecurityOrigin* targetSecurityOrigin = targetWindow->impl()->securityOrigin();
-
- return originSecurityOrigin->canAccess(targetSecurityOrigin);
-}
-
-}
-
-#endif // JSDOMWindowCustom_h
diff --git a/WebCore/bindings/js/JSDOMWindowShell.cpp b/WebCore/bindings/js/JSDOMWindowShell.cpp
deleted file mode 100644
index 65096b9..0000000
--- a/WebCore/bindings/js/JSDOMWindowShell.cpp
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSDOMWindowShell.h"
-
-#include "Frame.h"
-#include "JSDOMWindow.h"
-#include "DOMWindow.h"
-#include "ScriptController.h"
-#include <runtime/JSObject.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-ASSERT_CLASS_FITS_IN_CELL(JSDOMWindowShell);
-
-const ClassInfo JSDOMWindowShell::s_info = { "JSDOMWindowShell", 0, 0, 0 };
-
-JSDOMWindowShell::JSDOMWindowShell(PassRefPtr<DOMWindow> window, DOMWrapperWorld* world)
- : Base(JSDOMWindowShell::createStructure(jsNull()))
- , m_window(0)
- , m_world(world)
-{
- setWindow(window);
-}
-
-JSDOMWindowShell::~JSDOMWindowShell()
-{
-}
-
-void JSDOMWindowShell::setWindow(PassRefPtr<DOMWindow> domWindow)
-{
- // Explicitly protect the global object's prototype so it isn't collected
- // when we allocate the global object. (Once the global object is fully
- // constructed, it can mark its own prototype.)
- RefPtr<Structure> prototypeStructure = JSDOMWindowPrototype::createStructure(jsNull());
- ProtectedPtr<JSDOMWindowPrototype> prototype = new JSDOMWindowPrototype(0, prototypeStructure.release());
-
- RefPtr<Structure> structure = JSDOMWindow::createStructure(prototype);
- JSDOMWindow* jsDOMWindow = new (JSDOMWindow::commonJSGlobalData()) JSDOMWindow(structure.release(), domWindow, this);
- prototype->putAnonymousValue(0, jsDOMWindow);
- setWindow(jsDOMWindow);
-}
-
-// ----
-// JSObject methods
-// ----
-
-void JSDOMWindowShell::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
- if (m_window)
- markStack.append(m_window);
-}
-
-UString JSDOMWindowShell::className() const
-{
- return m_window->className();
-}
-
-bool JSDOMWindowShell::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
-{
- return m_window->getOwnPropertySlot(exec, propertyName, slot);
-}
-
-bool JSDOMWindowShell::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
-{
- return m_window->getOwnPropertyDescriptor(exec, propertyName, descriptor);
-}
-
-void JSDOMWindowShell::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
-{
- m_window->put(exec, propertyName, value, slot);
-}
-
-void JSDOMWindowShell::putWithAttributes(ExecState* exec, const Identifier& propertyName, JSValue value, unsigned attributes)
-{
- m_window->putWithAttributes(exec, propertyName, value, attributes);
-}
-
-bool JSDOMWindowShell::defineOwnProperty(JSC::ExecState* exec, const JSC::Identifier& propertyName, JSC::PropertyDescriptor& descriptor, bool shouldThrow)
-{
- return m_window->defineOwnProperty(exec, propertyName, descriptor, shouldThrow);
-}
-
-bool JSDOMWindowShell::deleteProperty(ExecState* exec, const Identifier& propertyName)
-{
- return m_window->deleteProperty(exec, propertyName);
-}
-
-void JSDOMWindowShell::getPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode)
-{
- m_window->getPropertyNames(exec, propertyNames, mode);
-}
-
-void JSDOMWindowShell::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode)
-{
- m_window->getOwnPropertyNames(exec, propertyNames, mode);
-}
-
-void JSDOMWindowShell::defineGetter(ExecState* exec, const Identifier& propertyName, JSObject* getterFunction, unsigned attributes)
-{
- m_window->defineGetter(exec, propertyName, getterFunction, attributes);
-}
-
-void JSDOMWindowShell::defineSetter(ExecState* exec, const Identifier& propertyName, JSObject* setterFunction, unsigned attributes)
-{
- m_window->defineSetter(exec, propertyName, setterFunction, attributes);
-}
-
-JSValue JSDOMWindowShell::lookupGetter(ExecState* exec, const Identifier& propertyName)
-{
- return m_window->lookupGetter(exec, propertyName);
-}
-
-JSValue JSDOMWindowShell::lookupSetter(ExecState* exec, const Identifier& propertyName)
-{
- return m_window->lookupSetter(exec, propertyName);
-}
-
-JSObject* JSDOMWindowShell::unwrappedObject()
-{
- return m_window;
-}
-
-// ----
-// JSDOMWindow methods
-// ----
-
-DOMWindow* JSDOMWindowShell::impl() const
-{
- return m_window->impl();
-}
-
-void* JSDOMWindowShell::operator new(size_t size)
-{
- return JSDOMWindow::commonJSGlobalData()->heap.allocate(size);
-}
-
-// ----
-// Conversion methods
-// ----
-
-JSValue toJS(ExecState* exec, Frame* frame)
-{
- if (!frame)
- return jsNull();
- return frame->script()->windowShell(currentWorld(exec));
-}
-
-JSDOMWindowShell* toJSDOMWindowShell(Frame* frame, DOMWrapperWorld* isolatedWorld)
-{
- if (!frame)
- return 0;
- return frame->script()->windowShell(isolatedWorld);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSDOMWindowShell.h b/WebCore/bindings/js/JSDOMWindowShell.h
deleted file mode 100644
index 888325d..0000000
--- a/WebCore/bindings/js/JSDOMWindowShell.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSDOMWindowShell_h
-#define JSDOMWindowShell_h
-
-#include "JSDOMWindow.h"
-#include "JSDOMBinding.h"
-
-namespace WebCore {
-
- class DOMWindow;
- class Frame;
-
- class JSDOMWindowShell : public JSC::JSObject {
- typedef JSC::JSObject Base;
- public:
- JSDOMWindowShell(PassRefPtr<DOMWindow>, DOMWrapperWorld* world);
- virtual ~JSDOMWindowShell();
-
- JSDOMWindow* window() const { return m_window; }
- void setWindow(JSDOMWindow* window)
- {
- ASSERT_ARG(window, window);
- m_window = window;
- setPrototype(window->prototype());
- }
- void setWindow(PassRefPtr<DOMWindow>);
-
- static const JSC::ClassInfo s_info;
-
- DOMWindow* impl() const;
-
- void* operator new(size_t);
-
- static PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
- {
- return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount);
- }
-
- DOMWrapperWorld* world() { return m_world.get(); }
-
- private:
- static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::OverridesMarkChildren | JSC::OverridesGetPropertyNames | Base::StructureFlags;
-
- virtual void markChildren(JSC::MarkStack&);
- virtual JSC::UString className() const;
- virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
- virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertyDescriptor&);
- virtual void put(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
- virtual void putWithAttributes(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, unsigned attributes);
- virtual bool deleteProperty(JSC::ExecState*, const JSC::Identifier& propertyName);
- virtual void getPropertyNames(JSC::ExecState*, JSC::PropertyNameArray&, JSC::EnumerationMode mode = JSC::ExcludeDontEnumProperties);
- virtual void getOwnPropertyNames(JSC::ExecState*, JSC::PropertyNameArray&, JSC::EnumerationMode mode = JSC::ExcludeDontEnumProperties);
- virtual void defineGetter(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSObject* getterFunction, unsigned attributes);
- virtual void defineSetter(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSObject* setterFunction, unsigned attributes);
- virtual bool defineOwnProperty(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertyDescriptor&, bool shouldThrow);
- virtual JSC::JSValue lookupGetter(JSC::ExecState*, const JSC::Identifier& propertyName);
- virtual JSC::JSValue lookupSetter(JSC::ExecState*, const JSC::Identifier& propertyName);
- virtual JSC::JSObject* unwrappedObject();
- virtual const JSC::ClassInfo* classInfo() const { return &s_info; }
-
- JSDOMWindow* m_window;
- RefPtr<DOMWrapperWorld> m_world;
- };
-
- JSC::JSValue toJS(JSC::ExecState*, Frame*);
- JSDOMWindowShell* toJSDOMWindowShell(Frame*, DOMWrapperWorld*);
-
-} // namespace WebCore
-
-#endif // JSDOMWindowShell_h
diff --git a/WebCore/bindings/js/JSDOMWrapper.cpp b/WebCore/bindings/js/JSDOMWrapper.cpp
deleted file mode 100644
index 9548f2f..0000000
--- a/WebCore/bindings/js/JSDOMWrapper.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSDOMWrapper.h"
-
-#include "JSDebugWrapperSet.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-#ifndef NDEBUG
-
-DOMObject::~DOMObject()
-{
- ASSERT(!JSDebugWrapperSet::shared().contains(this));
-}
-
-#endif
-
-bool DOMObject::defineOwnProperty(ExecState* exec, const Identifier&, PropertyDescriptor&, bool)
-{
- throwError(exec, createTypeError(exec, "defineProperty is not supported on DOM Objects"));
- return false;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSDOMWrapper.h b/WebCore/bindings/js/JSDOMWrapper.h
deleted file mode 100644
index 2d09f01..0000000
--- a/WebCore/bindings/js/JSDOMWrapper.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 1999-2001 Harri Porten (porten@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2007 Samuel Weinig <sam@webkit.org>
- * Copyright (C) 2009 Google, Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef JSDOMWrapper_h
-#define JSDOMWrapper_h
-
-#include <runtime/JSObjectWithGlobalObject.h>
-
-namespace WebCore {
-
-// FIXME: Rename to JSDOMWrapper.
-class DOMObject : public JSC::JSObjectWithGlobalObject {
-protected:
- explicit DOMObject(JSC::JSGlobalObject* globalObject, NonNullPassRefPtr<JSC::Structure> structure)
- : JSObjectWithGlobalObject(globalObject, structure)
- {
- }
-
- virtual bool defineOwnProperty(JSC::ExecState*, const JSC::Identifier&, JSC::PropertyDescriptor&, bool);
-
-#ifndef NDEBUG
- virtual ~DOMObject();
-#endif
-};
-
-} // namespace WebCore
-
-#endif // JSDOMWrapper_h
diff --git a/WebCore/bindings/js/JSDataGridColumnListCustom.cpp b/WebCore/bindings/js/JSDataGridColumnListCustom.cpp
deleted file mode 100644
index cc41093..0000000
--- a/WebCore/bindings/js/JSDataGridColumnListCustom.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(DATAGRID)
-
-#include "JSDataGridColumnList.h"
-
-#include "DataGridColumn.h"
-#include "DataGridColumnList.h"
-#include "JSDataGridColumn.h"
-#include <wtf/text/AtomicString.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-bool JSDataGridColumnList::canGetItemsForName(ExecState*, DataGridColumnList* impl, const Identifier& propertyName)
-{
- return impl->itemWithName(identifierToAtomicString(propertyName));
-}
-
-JSValue JSDataGridColumnList::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSDataGridColumnList* thisObj = static_cast<JSDataGridColumnList*>(asObject(slotBase));
- return toJS(exec, thisObj->globalObject(), thisObj->impl()->itemWithName(identifierToAtomicString(propertyName)));
-}
-
-} // namespace WebCore
-
-#endif
diff --git a/WebCore/bindings/js/JSDataGridDataSource.cpp b/WebCore/bindings/js/JSDataGridDataSource.cpp
deleted file mode 100644
index 02b4214..0000000
--- a/WebCore/bindings/js/JSDataGridDataSource.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(DATAGRID)
-
-#include "JSDataGridDataSource.h"
-
-#include "Document.h"
-#include "Frame.h"
-#include "HTMLDataGridElement.h"
-#include "JSHTMLDataGridElement.h"
-#include "JSDOMWindowBase.h"
-#include <runtime/JSLock.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSDataGridDataSource::JSDataGridDataSource(JSC::JSValue dataSource, Frame* frame)
- : m_dataSource(dataSource)
- , m_frame(frame)
-{
-}
-
-JSDataGridDataSource::~JSDataGridDataSource()
-{
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(DATAGRID)
diff --git a/WebCore/bindings/js/JSDataGridDataSource.h b/WebCore/bindings/js/JSDataGridDataSource.h
deleted file mode 100644
index 077ef8f..0000000
--- a/WebCore/bindings/js/JSDataGridDataSource.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSDataGridDataSource_h
-#define JSDataGridDataSource_h
-
-#if ENABLE(DATAGRID)
-
-#include "DataGridDataSource.h"
-#include <runtime/JSValue.h>
-#include <runtime/Protect.h>
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefPtr.h>
-
-namespace WebCore {
-
-class Frame;
-class HTMLDataGridElement;
-
-class JSDataGridDataSource : public DataGridDataSource {
-public:
- static PassRefPtr<JSDataGridDataSource> create(JSC::JSValue dataSource, Frame* frame)
- {
- return adoptRef(new JSDataGridDataSource(dataSource, frame));
- }
-
- virtual ~JSDataGridDataSource();
-
- virtual bool isJSDataGridDataSource() const { return true; }
- JSC::JSValue jsDataSource() const { return m_dataSource.get(); }
-
-private:
- JSDataGridDataSource(JSC::JSValue, Frame*);
-
- JSC::ProtectedJSValue m_dataSource;
- RefPtr<Frame> m_frame;
-};
-
-inline JSDataGridDataSource* asJSDataGridDataSource(DataGridDataSource* dataSource)
-{
- ASSERT(dataSource->isJSDataGridDataSource());
- return static_cast<JSDataGridDataSource*>(dataSource);
-}
-
-inline const JSDataGridDataSource* asJSDataGridDataSource(const DataGridDataSource* dataSource)
-{
- ASSERT(dataSource->isJSDataGridDataSource());
- return static_cast<const JSDataGridDataSource*>(dataSource);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(DATAGRID)
-#endif // JSDataGridDataSource_h
diff --git a/WebCore/bindings/js/JSDataViewCustom.cpp b/WebCore/bindings/js/JSDataViewCustom.cpp
deleted file mode 100644
index f17e0e1..0000000
--- a/WebCore/bindings/js/JSDataViewCustom.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
-
-#include "JSDataView.h"
-
-#include "DataView.h"
-#include "ExceptionCode.h"
-#include "JSArrayBufferViewHelper.h"
-#include <wtf/MathExtras.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-enum DataViewAccessType {
- AccessDataViewMemberAsInt8,
- AccessDataViewMemberAsUint8,
- AccessDataViewMemberAsFloat32,
- AccessDataViewMemberAsFloat64
-};
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, DataView* object)
-{
- return getDOMObjectWrapper<JSDataView>(exec, globalObject, object);
-}
-
-EncodedJSValue JSC_HOST_CALL JSDataViewConstructor::constructJSDataView(ExecState* exec)
-{
- if (exec->argument(0).isNull() || !exec->argument(0).isObject())
- return throwVMTypeError(exec);
-
- RefPtr<DataView> view = constructArrayBufferViewWithArrayBufferArgument<DataView, char>(exec);
- if (!view.get()) {
- setDOMException(exec, INDEX_SIZE_ERR);
- return JSValue::encode(jsUndefined());
- }
-
- JSDataViewConstructor* jsConstructor = static_cast<JSDataViewConstructor*>(exec->callee());
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), view.get())));
-}
-
-static JSValue getDataViewMember(ExecState* exec, DataViewAccessType type)
-{
- JSValue thisValue = exec->hostThisValue();
- if (!thisValue.inherits(&JSDataView::s_info))
- return throwTypeError(exec);
- JSDataView* castedThis = static_cast<JSDataView*>(asObject(thisValue));
- DataView* imp = static_cast<DataView*>(castedThis->impl());
- if (exec->argumentCount() < 1)
- return throwError(exec, createSyntaxError(exec, "Not enough arguments"));
- ExceptionCode ec = 0;
- unsigned byteOffset = exec->argument(0).toUInt32(exec);
- if (exec->hadException())
- return jsUndefined();
-
- bool littleEndian = false;
- if (exec->argumentCount() > 1 && (type == AccessDataViewMemberAsFloat32 || type == AccessDataViewMemberAsFloat64)) {
- littleEndian = exec->argument(1).toBoolean(exec);
- if (exec->hadException())
- return jsUndefined();
- }
-
- JSC::JSValue result;
- switch (type) {
- case AccessDataViewMemberAsInt8:
- result = jsNumber(imp->getInt8(byteOffset, ec));
- break;
- case AccessDataViewMemberAsUint8:
- result = jsNumber(imp->getUint8(byteOffset, ec));
- break;
- case AccessDataViewMemberAsFloat32:
- case AccessDataViewMemberAsFloat64: {
- double value = (type == AccessDataViewMemberAsFloat32) ? imp->getFloat32(byteOffset, littleEndian, ec) : imp->getFloat64(byteOffset, littleEndian, ec);
- result = isnan(value) ? JSValue(nonInlineNaN()) : jsNumber(value);
- break;
- } default:
- ASSERT_NOT_REACHED();
- break;
- }
- setDOMException(exec, ec);
- return result;
-}
-
-JSValue JSC_HOST_CALL JSDataView::getInt8(ExecState* exec)
-{
- return getDataViewMember(exec, AccessDataViewMemberAsInt8);
-}
-
-JSValue JSC_HOST_CALL JSDataView::getUint8(ExecState* exec)
-{
- return getDataViewMember(exec, AccessDataViewMemberAsUint8);
-}
-
-JSValue JSC_HOST_CALL JSDataView::getFloat32(ExecState* exec)
-{
- return getDataViewMember(exec, AccessDataViewMemberAsFloat32);
-}
-
-JSValue JSC_HOST_CALL JSDataView::getFloat64(ExecState* exec)
-{
- return getDataViewMember(exec, AccessDataViewMemberAsFloat64);
-}
-
-static JSValue setDataViewMember(ExecState* exec, DataViewAccessType type)
-{
- JSValue thisValue = exec->hostThisValue();
- if (!thisValue.inherits(&JSDataView::s_info))
- return throwTypeError(exec);
- JSDataView* castedThis = static_cast<JSDataView*>(asObject(thisValue));
- DataView* imp = static_cast<DataView*>(castedThis->impl());
- if (exec->argumentCount() < 2)
- return throwError(exec, createSyntaxError(exec, "Not enough arguments"));
- ExceptionCode ec = 0;
- unsigned byteOffset = exec->argument(0).toUInt32(exec);
- if (exec->hadException())
- return jsUndefined();
- int value = exec->argument(1).toInt32(exec);
- if (exec->hadException())
- return jsUndefined();
-
- switch (type) {
- case AccessDataViewMemberAsInt8:
- imp->setInt8(byteOffset, static_cast<char>(value), ec);
- break;
- case AccessDataViewMemberAsUint8:
- imp->setUint8(byteOffset, static_cast<unsigned char>(value), ec);
- break;
- default:
- ASSERT_NOT_REACHED();
- break;
- }
- setDOMException(exec, ec);
- return jsUndefined();
-}
-
-JSValue JSC_HOST_CALL JSDataView::setInt8(ExecState* exec)
-{
- return setDataViewMember(exec, AccessDataViewMemberAsInt8);
-}
-
-JSValue JSC_HOST_CALL JSDataView::setUint8(ExecState* exec)
-{
- return setDataViewMember(exec, AccessDataViewMemberAsUint8);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(3D_CANVAS) || ENABLE(BLOB)
diff --git a/WebCore/bindings/js/JSDebugWrapperSet.cpp b/WebCore/bindings/js/JSDebugWrapperSet.cpp
deleted file mode 100644
index b0d6ca9..0000000
--- a/WebCore/bindings/js/JSDebugWrapperSet.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSDebugWrapperSet.h"
-
-#include <wtf/StdLibExtras.h>
-
-#if ENABLE(WORKERS)
-#include <wtf/ThreadSpecific.h>
-#endif
-
-namespace WebCore {
-
-JSDebugWrapperSet& JSDebugWrapperSet::shared()
-{
-#if ENABLE(WORKERS)
- DEFINE_STATIC_LOCAL(WTF::ThreadSpecific<JSDebugWrapperSet>, staticWrapperSet, ());
- return *staticWrapperSet;
-#else
- DEFINE_STATIC_LOCAL(JSDebugWrapperSet, staticWrapperSet, ());
- return staticWrapperSet;
-#endif
-}
-
-JSDebugWrapperSet::JSDebugWrapperSet()
-{
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSDebugWrapperSet.h b/WebCore/bindings/js/JSDebugWrapperSet.h
deleted file mode 100644
index 94b6f78..0000000
--- a/WebCore/bindings/js/JSDebugWrapperSet.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSDebugWrapperSet_h
-#define JSDebugWrapperSet_h
-
-#include "JSDOMWrapper.h"
-#include <wtf/HashSet.h>
-#include <wtf/Noncopyable.h>
-
-namespace WebCore {
-
-// For debugging, keep a set of wrappers currently cached, and check that
-// all are uncached before they are destroyed. This helps us catch bugs like:
-// - wrappers being deleted without being removed from the cache
-// - wrappers being cached twice
-
-class JSDebugWrapperSet : public Noncopyable {
- friend class WTF::ThreadSpecific<JSDebugWrapperSet>;
-public:
- static JSDebugWrapperSet& shared();
-
- void add(DOMObject* object) { m_wrapperSet.add(object); }
- void remove(DOMObject* object) { m_wrapperSet.remove(object); }
- bool contains(DOMObject* object) const { return m_wrapperSet.contains(object); }
-
- static void willCacheWrapper(DOMObject*);
- static void didUncacheWrapper(DOMObject*);
-
-private:
- JSDebugWrapperSet();
-
- HashSet<DOMObject*> m_wrapperSet;
-};
-
-#ifdef NDEBUG
-
-inline void JSDebugWrapperSet::willCacheWrapper(DOMObject*)
-{
-}
-
-inline void JSDebugWrapperSet::didUncacheWrapper(DOMObject*)
-{
-}
-
-#else
-
-inline void JSDebugWrapperSet::willCacheWrapper(DOMObject* wrapper)
-{
- ASSERT(!JSDebugWrapperSet::shared().contains(wrapper));
- JSDebugWrapperSet::shared().add(wrapper);
-}
-
-inline void JSDebugWrapperSet::didUncacheWrapper(DOMObject* wrapper)
-{
- if (!wrapper)
- return;
- ASSERT(JSDebugWrapperSet::shared().contains(wrapper));
- JSDebugWrapperSet::shared().remove(wrapper);
-}
-
-#endif
-
-} // namespace WebCore
-
-#endif // JSDebugWrapperSet_h
diff --git a/WebCore/bindings/js/JSDedicatedWorkerContextCustom.cpp b/WebCore/bindings/js/JSDedicatedWorkerContextCustom.cpp
deleted file mode 100644
index 2222353..0000000
--- a/WebCore/bindings/js/JSDedicatedWorkerContextCustom.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- * Copyright (C) 2009 Apple, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(WORKERS)
-
-#include "JSDedicatedWorkerContext.h"
-
-#include "JSDOMBinding.h"
-#include "JSMessagePortCustom.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSC::JSValue JSDedicatedWorkerContext::postMessage(JSC::ExecState* exec)
-{
- return handlePostMessage(exec, impl());
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WORKERS)
diff --git a/WebCore/bindings/js/JSDesktopNotificationsCustom.cpp b/WebCore/bindings/js/JSDesktopNotificationsCustom.cpp
deleted file mode 100644
index 38334b9..0000000
--- a/WebCore/bindings/js/JSDesktopNotificationsCustom.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(NOTIFICATIONS)
-
-#include "Document.h"
-#include "JSCustomVoidCallback.h"
-#include "JSEventListener.h"
-#include "JSNotification.h"
-#include "JSNotificationCenter.h"
-#include "Notification.h"
-#include "NotificationCenter.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSNotificationCenter::requestPermission(ExecState* exec)
-{
- ScriptExecutionContext* context = impl()->context();
-
- // Make sure that script execution context is valid.
- if (!context) {
- setDOMException(exec, INVALID_STATE_ERR);
- return jsUndefined();
- }
-
- // Permission request is only valid from page context.
- if (context->isWorkerContext())
- return throwSyntaxError(exec);
-
- if (!exec->argument(0).isObject())
- return throwTypeError(exec);
-
- PassRefPtr<JSCustomVoidCallback> callback = JSCustomVoidCallback::create(exec->argument(0).getObject(), toJSDOMGlobalObject(static_cast<Document*>(context), exec));
-
- impl()->requestPermission(callback);
- return jsUndefined();
-}
-
-} // namespace
-
-#endif // ENABLE(NOTIFICATIONS)
diff --git a/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp b/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp
deleted file mode 100644
index 503d64f..0000000
--- a/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSDeviceMotionEvent.h"
-
-#if ENABLE(DEVICE_ORIENTATION)
-
-#include "DeviceMotionData.h"
-#include "DeviceMotionEvent.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-static PassRefPtr<DeviceMotionData::Acceleration> readAccelerationArgument(JSValue value, ExecState* exec)
-{
- if (value.isUndefinedOrNull())
- return 0;
-
- // Given the above test, this will always yield an object.
- JSObject* object = value.toObject(exec);
-
- JSValue xValue = object->get(exec, Identifier(exec, "x"));
- if (exec->hadException())
- return 0;
- bool canProvideX = !xValue.isUndefinedOrNull();
- double x = xValue.toNumber(exec);
- if (exec->hadException())
- return 0;
-
- JSValue yValue = object->get(exec, Identifier(exec, "y"));
- if (exec->hadException())
- return 0;
- bool canProvideY = !yValue.isUndefinedOrNull();
- double y = yValue.toNumber(exec);
- if (exec->hadException())
- return 0;
-
- JSValue zValue = object->get(exec, Identifier(exec, "z"));
- if (exec->hadException())
- return 0;
- bool canProvideZ = !zValue.isUndefinedOrNull();
- double z = zValue.toNumber(exec);
- if (exec->hadException())
- return 0;
-
- if (!canProvideX && !canProvideY && !canProvideZ)
- return 0;
-
- return DeviceMotionData::Acceleration::create(canProvideX, x, canProvideY, y, canProvideZ, z);
-}
-
-static PassRefPtr<DeviceMotionData::RotationRate> readRotationRateArgument(JSValue value, ExecState* exec)
-{
- if (value.isUndefinedOrNull())
- return 0;
-
- // Given the above test, this will always yield an object.
- JSObject* object = value.toObject(exec);
-
- JSValue alphaValue = object->get(exec, Identifier(exec, "alpha"));
- if (exec->hadException())
- return 0;
- bool canProvideAlpha = !alphaValue.isUndefinedOrNull();
- double alpha = alphaValue.toNumber(exec);
- if (exec->hadException())
- return 0;
-
- JSValue betaValue = object->get(exec, Identifier(exec, "beta"));
- if (exec->hadException())
- return 0;
- bool canProvideBeta = !betaValue.isUndefinedOrNull();
- double beta = betaValue.toNumber(exec);
- if (exec->hadException())
- return 0;
-
- JSValue gammaValue = object->get(exec, Identifier(exec, "gamma"));
- if (exec->hadException())
- return 0;
- bool canProvideGamma = !gammaValue.isUndefinedOrNull();
- double gamma = gammaValue.toNumber(exec);
- if (exec->hadException())
- return 0;
-
- if (!canProvideAlpha && !canProvideBeta && !canProvideGamma)
- return 0;
-
- return DeviceMotionData::RotationRate::create(canProvideAlpha, alpha, canProvideBeta, beta, canProvideGamma, gamma);
-}
-
-static JSObject* createAccelerationObject(const DeviceMotionData::Acceleration* acceleration, ExecState* exec)
-{
- JSObject* object = constructEmptyObject(exec);
- object->putDirect(Identifier(exec, "x"), acceleration->canProvideX() ? jsNumber(acceleration->x()) : jsNull());
- object->putDirect(Identifier(exec, "y"), acceleration->canProvideY() ? jsNumber(acceleration->y()) : jsNull());
- object->putDirect(Identifier(exec, "z"), acceleration->canProvideZ() ? jsNumber(acceleration->z()) : jsNull());
- return object;
-}
-
-static JSObject* createRotationRateObject(const DeviceMotionData::RotationRate* rotationRate, ExecState* exec)
-{
- JSObject* object = constructEmptyObject(exec);
- object->putDirect(Identifier(exec, "alpha"), rotationRate->canProvideAlpha() ? jsNumber(rotationRate->alpha()) : jsNull());
- object->putDirect(Identifier(exec, "beta"), rotationRate->canProvideBeta() ? jsNumber(rotationRate->beta()) : jsNull());
- object->putDirect(Identifier(exec, "gamma"), rotationRate->canProvideGamma() ? jsNumber(rotationRate->gamma()) : jsNull());
- return object;
-}
-
-JSValue JSDeviceMotionEvent::acceleration(ExecState* exec) const
-{
- DeviceMotionEvent* imp = static_cast<DeviceMotionEvent*>(impl());
- if (!imp->deviceMotionData()->acceleration())
- return jsNull();
- return createAccelerationObject(imp->deviceMotionData()->acceleration(), exec);
-}
-
-JSValue JSDeviceMotionEvent::accelerationIncludingGravity(ExecState* exec) const
-{
- DeviceMotionEvent* imp = static_cast<DeviceMotionEvent*>(impl());
- if (!imp->deviceMotionData()->accelerationIncludingGravity())
- return jsNull();
- return createAccelerationObject(imp->deviceMotionData()->accelerationIncludingGravity(), exec);
-}
-
-JSValue JSDeviceMotionEvent::rotationRate(ExecState* exec) const
-{
- DeviceMotionEvent* imp = static_cast<DeviceMotionEvent*>(impl());
- if (!imp->deviceMotionData()->rotationRate())
- return jsNull();
- return createRotationRateObject(imp->deviceMotionData()->rotationRate(), exec);
-}
-
-JSValue JSDeviceMotionEvent::interval(ExecState*) const
-{
- DeviceMotionEvent* imp = static_cast<DeviceMotionEvent*>(impl());
- if (!imp->deviceMotionData()->canProvideInterval())
- return jsNull();
- return jsNumber(imp->deviceMotionData()->interval());
-}
-
-JSValue JSDeviceMotionEvent::initDeviceMotionEvent(ExecState* exec)
-{
- const String& type = ustringToString(exec->argument(0).toString(exec));
- bool bubbles = exec->argument(1).toBoolean(exec);
- bool cancelable = exec->argument(2).toBoolean(exec);
-
- // If any of the parameters are null or undefined, mark them as not provided.
- // Otherwise, use the standard JavaScript conversion.
- RefPtr<DeviceMotionData::Acceleration> acceleration = readAccelerationArgument(exec->argument(3), exec);
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<DeviceMotionData::Acceleration> accelerationIncludingGravity = readAccelerationArgument(exec->argument(4), exec);
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<DeviceMotionData::RotationRate> rotationRate = readRotationRateArgument(exec->argument(5), exec);
- if (exec->hadException())
- return jsUndefined();
-
- bool intervalProvided = !exec->argument(6).isUndefinedOrNull();
- double interval = exec->argument(6).toNumber(exec);
- RefPtr<DeviceMotionData> deviceMotionData = DeviceMotionData::create(acceleration, accelerationIncludingGravity, rotationRate, intervalProvided, interval);
- DeviceMotionEvent* imp = static_cast<DeviceMotionEvent*>(impl());
- imp->initDeviceMotionEvent(type, bubbles, cancelable, deviceMotionData.get());
- return jsUndefined();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(DEVICE_ORIENTATION)
diff --git a/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp b/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp
deleted file mode 100644
index c71364a..0000000
--- a/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSDeviceOrientationEvent.h"
-
-#if ENABLE(DEVICE_ORIENTATION)
-
-#include "DeviceOrientation.h"
-#include "DeviceOrientationEvent.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSDeviceOrientationEvent::alpha(ExecState*) const
-{
- DeviceOrientationEvent* imp = static_cast<DeviceOrientationEvent*>(impl());
- if (!imp->orientation()->canProvideAlpha())
- return jsNull();
- return jsNumber(imp->orientation()->alpha());
-}
-
-JSValue JSDeviceOrientationEvent::beta(ExecState*) const
-{
- DeviceOrientationEvent* imp = static_cast<DeviceOrientationEvent*>(impl());
- if (!imp->orientation()->canProvideBeta())
- return jsNull();
- return jsNumber(imp->orientation()->beta());
-}
-
-JSValue JSDeviceOrientationEvent::gamma(ExecState*) const
-{
- DeviceOrientationEvent* imp = static_cast<DeviceOrientationEvent*>(impl());
- if (!imp->orientation()->canProvideGamma())
- return jsNull();
- return jsNumber(imp->orientation()->gamma());
-}
-
-JSValue JSDeviceOrientationEvent::initDeviceOrientationEvent(ExecState* exec)
-{
- const String& type = ustringToString(exec->argument(0).toString(exec));
- bool bubbles = exec->argument(1).toBoolean(exec);
- bool cancelable = exec->argument(2).toBoolean(exec);
- // If alpha, beta or gamma are null or undefined, mark them as not provided.
- // Otherwise, use the standard JavaScript conversion.
- bool alphaProvided = !exec->argument(3).isUndefinedOrNull();
- double alpha = exec->argument(3).toNumber(exec);
- bool betaProvided = !exec->argument(4).isUndefinedOrNull();
- double beta = exec->argument(4).toNumber(exec);
- bool gammaProvided = !exec->argument(5).isUndefinedOrNull();
- double gamma = exec->argument(5).toNumber(exec);
- RefPtr<DeviceOrientation> orientation = DeviceOrientation::create(alphaProvided, alpha, betaProvided, beta, gammaProvided, gamma);
- DeviceOrientationEvent* imp = static_cast<DeviceOrientationEvent*>(impl());
- imp->initDeviceOrientationEvent(type, bubbles, cancelable, orientation.get());
- return jsUndefined();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(DEVICE_ORIENTATION)
diff --git a/WebCore/bindings/js/JSDirectoryEntryCustom.cpp b/WebCore/bindings/js/JSDirectoryEntryCustom.cpp
deleted file mode 100644
index a0e0455..0000000
--- a/WebCore/bindings/js/JSDirectoryEntryCustom.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(FILE_SYSTEM)
-
-#include "JSDirectoryEntry.h"
-
-#include "JSDOMBinding.h"
-#include "JSEntryCallback.h"
-#include "JSErrorCallback.h"
-#include "JSFlags.h"
-#include <wtf/Assertions.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSDirectoryEntry::getFile(ExecState* exec)
-{
- DirectoryEntry* imp = static_cast<DirectoryEntry*>(impl());
- const String& path = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(0));
- if (exec->hadException())
- return jsUndefined();
-
- int argsCount = exec->argumentCount();
- if (argsCount <= 1) {
- imp->getFile(path);
- return jsUndefined();
- }
-
- RefPtr<Flags> flags;
- if (!exec->argument(1).isNull() && !exec->argument(1).isUndefined() && exec->argument(1).isObject() && !exec->argument(1).inherits(&JSFlags::s_info)) {
- JSObject* object = exec->argument(1).getObject();
- flags = Flags::create();
- JSValue jsCreate = object->get(exec, Identifier(exec, "create"));
- flags->setCreate(jsCreate.toBoolean(exec));
- JSValue jsExclusive = object->get(exec, Identifier(exec, "exclusive"));
- flags->setExclusive(jsExclusive.toBoolean(exec));
- } else
- flags = toFlags(exec->argument(1));
- if (exec->hadException())
- return jsUndefined();
- RefPtr<EntryCallback> successCallback;
- if (exec->argumentCount() > 2 && !exec->argument(2).isNull() && !exec->argument(2).isUndefined()) {
- if (!exec->argument(2).isObject()) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
- successCallback = JSEntryCallback::create(asObject(exec->argument(2)), globalObject());
- }
- RefPtr<ErrorCallback> errorCallback;
- if (exec->argumentCount() > 3 && !exec->argument(3).isNull() && !exec->argument(3).isUndefined()) {
- if (!exec->argument(3).isObject()) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
- errorCallback = JSErrorCallback::create(asObject(exec->argument(3)), globalObject());
- }
-
- imp->getFile(path, flags, successCallback, errorCallback);
- return jsUndefined();
-}
-
-JSValue JSDirectoryEntry::getDirectory(ExecState* exec)
-{
- DirectoryEntry* imp = static_cast<DirectoryEntry*>(impl());
- const String& path = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(0));
- if (exec->hadException())
- return jsUndefined();
-
- int argsCount = exec->argumentCount();
- if (argsCount <= 1) {
- imp->getDirectory(path);
- return jsUndefined();
- }
-
- RefPtr<Flags> flags;
- if (!exec->argument(1).isNull() && !exec->argument(1).isUndefined() && exec->argument(1).isObject() && !exec->argument(1).inherits(&JSFlags::s_info)) {
- JSObject* object = exec->argument(1).getObject();
- flags = Flags::create();
- JSValue jsCreate = object->get(exec, Identifier(exec, "create"));
- flags->setCreate(jsCreate.toBoolean(exec));
- JSValue jsExclusive = object->get(exec, Identifier(exec, "exclusive"));
- flags->setExclusive(jsExclusive.toBoolean(exec));
- } else
- flags = toFlags(exec->argument(1));
- if (exec->hadException())
- return jsUndefined();
- RefPtr<EntryCallback> successCallback;
- if (exec->argumentCount() > 2 && !exec->argument(2).isNull() && !exec->argument(2).isUndefined()) {
- if (!exec->argument(2).isObject()) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
- successCallback = JSEntryCallback::create(asObject(exec->argument(2)), globalObject());
- }
- RefPtr<ErrorCallback> errorCallback;
- if (exec->argumentCount() > 3 && !exec->argument(3).isNull() && !exec->argument(3).isUndefined()) {
- if (!exec->argument(3).isObject()) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
- errorCallback = JSErrorCallback::create(asObject(exec->argument(3)), globalObject());
- }
-
- imp->getDirectory(path, flags, successCallback, errorCallback);
- return jsUndefined();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(FILE_SYSTEM)
diff --git a/WebCore/bindings/js/JSDirectoryEntrySyncCustom.cpp b/WebCore/bindings/js/JSDirectoryEntrySyncCustom.cpp
deleted file mode 100644
index ef14b79..0000000
--- a/WebCore/bindings/js/JSDirectoryEntrySyncCustom.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(FILE_SYSTEM)
-
-#include "JSDirectoryEntrySync.h"
-
-#include "JSDOMBinding.h"
-#include "JSEntryCallback.h"
-#include "JSErrorCallback.h"
-#include "JSFileEntrySync.h"
-#include "JSFlags.h"
-#include <wtf/Assertions.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-static PassRefPtr<Flags> getFlags(ExecState* exec, const JSValue& argument)
-{
- if (argument.isNull() || argument.isUndefined() || !argument.isObject())
- return 0;
- if (argument.inherits(&JSFlags::s_info))
- return toFlags(argument);
-
- RefPtr<Flags> flags;
- JSObject* object = argument.getObject();
- flags = Flags::create();
- JSValue jsCreate = object->get(exec, Identifier(exec, "create"));
- flags->setCreate(jsCreate.toBoolean(exec));
- JSValue jsExclusive = object->get(exec, Identifier(exec, "exclusive"));
- flags->setExclusive(jsExclusive.toBoolean(exec));
- return flags;
-}
-
-JSValue JSDirectoryEntrySync::getFile(ExecState* exec)
-{
- DirectoryEntrySync* imp = static_cast<DirectoryEntrySync*>(impl());
- const String& path = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(0));
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<Flags> flags = getFlags(exec, exec->argument(1));
- if (exec->hadException())
- return jsUndefined();
-
- ExceptionCode ec = 0;
- JSC::JSValue result = toJS(exec, this->globalObject(), WTF::getPtr(imp->getFile(path, flags, ec)));
- setDOMException(exec, ec);
- return result;
-}
-
-JSValue JSDirectoryEntrySync::getDirectory(ExecState* exec)
-{
- DirectoryEntrySync* imp = static_cast<DirectoryEntrySync*>(impl());
- const String& path = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(0));
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<Flags> flags = getFlags(exec, exec->argument(1));
- if (exec->hadException())
- return jsUndefined();
-
- ExceptionCode ec = 0;
- JSC::JSValue result = toJS(exec, this->globalObject(), WTF::getPtr(imp->getDirectory(path, flags, ec)));
- setDOMException(exec, ec);
- return result;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(FILE_SYSTEM)
diff --git a/WebCore/bindings/js/JSDocumentCustom.cpp b/WebCore/bindings/js/JSDocumentCustom.cpp
deleted file mode 100644
index 5f61e2a..0000000
--- a/WebCore/bindings/js/JSDocumentCustom.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "JSDocument.h"
-
-#include "ExceptionCode.h"
-#include "Frame.h"
-#include "FrameLoader.h"
-#include "HTMLDocument.h"
-#include "JSCanvasRenderingContext2D.h"
-#if ENABLE(3D_CANVAS)
-#include "JSWebGLRenderingContext.h"
-#endif
-#include "JSDOMWindowCustom.h"
-#include "JSHTMLDocument.h"
-#include "JSLocation.h"
-#include "Location.h"
-#include "ScriptController.h"
-
-#if ENABLE(SVG)
-#include "JSSVGDocument.h"
-#include "SVGDocument.h"
-#endif
-
-#include <wtf/GetPtr.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSDocument::markChildren(MarkStack& markStack)
-{
- JSNode::markChildren(markStack);
-
- Document* document = impl();
- JSGlobalData& globalData = *Heap::heap(this)->globalData();
-
- markDOMNodesForDocument(markStack, document);
- markActiveObjectsForContext(markStack, globalData, document);
- markDOMObjectWrapper(markStack, globalData, document->implementation());
- markDOMObjectWrapper(markStack, globalData, document->styleSheets());
- document->markCachedNodeLists(markStack, globalData);
-}
-
-JSValue JSDocument::location(ExecState* exec) const
-{
- Frame* frame = static_cast<Document*>(impl())->frame();
- if (!frame)
- return jsNull();
-
- Location* location = frame->domWindow()->location();
- if (DOMObject* wrapper = getCachedDOMObjectWrapper(exec, location))
- return wrapper;
-
- JSLocation* jsLocation = new (exec) JSLocation(getDOMStructure<JSLocation>(exec, globalObject()), globalObject(), location);
- cacheDOMObjectWrapper(exec, location, jsLocation);
- return jsLocation;
-}
-
-void JSDocument::setLocation(ExecState* exec, JSValue value)
-{
- Frame* frame = static_cast<Document*>(impl())->frame();
- if (!frame)
- return;
-
- String str = ustringToString(value.toString(exec));
-
- Frame* lexicalFrame = asJSDOMWindow(exec->lexicalGlobalObject())->impl()->frame();
-
- // IE and Mozilla both resolve the URL relative to the source frame,
- // not the target frame.
- Frame* activeFrame = asJSDOMWindow(exec->dynamicGlobalObject())->impl()->frame();
- str = activeFrame->document()->completeURL(str).string();
-
- frame->navigationScheduler()->scheduleLocationChange(lexicalFrame->document()->securityOrigin(),
- str, activeFrame->loader()->outgoingReferrer(), !activeFrame->script()->anyPageIsProcessingUserGesture(), false);
-}
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, Document* document)
-{
- if (!document)
- return jsNull();
-
- DOMObject* wrapper = getCachedDOMNodeWrapper(exec, document, document);
- if (wrapper)
- return wrapper;
-
- if (document->isHTMLDocument())
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, HTMLDocument, document);
-#if ENABLE(SVG)
- else if (document->isSVGDocument())
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, SVGDocument, document);
-#endif
- else
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, Document, document);
-
- // Make sure the document is kept around by the window object, and works right with the
- // back/forward cache.
- if (!document->frame()) {
- size_t nodeCount = 0;
- for (Node* n = document; n; n = n->traverseNextNode())
- nodeCount++;
-
- exec->heap()->reportExtraMemoryCost(nodeCount * sizeof(Node));
- }
-
- return wrapper;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSElementCustom.cpp b/WebCore/bindings/js/JSElementCustom.cpp
deleted file mode 100644
index 3bfe110..0000000
--- a/WebCore/bindings/js/JSElementCustom.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-#include "config.h"
-#include "JSElement.h"
-
-#include "Document.h"
-#include "ExceptionCode.h"
-#include "HTMLFrameElementBase.h"
-#include "HTMLNames.h"
-#include "JSAttr.h"
-#include "JSDOMBinding.h"
-#include "JSHTMLElementWrapperFactory.h"
-#include "JSNodeList.h"
-#include "NodeList.h"
-
-#if ENABLE(SVG)
-#include "JSSVGElementWrapperFactory.h"
-#include "SVGElement.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-void JSElement::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- Element* element = impl();
- JSGlobalData& globalData = *Heap::heap(this)->globalData();
-
- markDOMObjectWrapper(markStack, globalData, element->attributeMap());
- markDOMObjectWrapper(markStack, globalData, element->optionalClassList());
- markDOMObjectWrapper(markStack, globalData, element->optionalDataset());
-
- if (element->isStyledElement())
- markDOMObjectWrapper(markStack, globalData, static_cast<StyledElement*>(element)->inlineStyleDecl());
-}
-
-JSValue toJSNewlyCreated(ExecState* exec, JSDOMGlobalObject* globalObject, Element* element)
-{
- if (!element)
- return jsNull();
-
- ASSERT(!getCachedDOMNodeWrapper(exec, element->document(), element));
-
- JSNode* wrapper;
- if (element->isHTMLElement())
- wrapper = createJSHTMLWrapper(exec, globalObject, static_cast<HTMLElement*>(element));
-#if ENABLE(SVG)
- else if (element->isSVGElement())
- wrapper = createJSSVGWrapper(exec, globalObject, static_cast<SVGElement*>(element));
-#endif
- else
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, Element, element);
-
- return wrapper;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSEntryCustom.cpp b/WebCore/bindings/js/JSEntryCustom.cpp
deleted file mode 100644
index 59d7e3c..0000000
--- a/WebCore/bindings/js/JSEntryCustom.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(FILE_SYSTEM)
-
-#include "JSEntry.h"
-
-#include "Entry.h"
-#include "JSDOMBinding.h"
-#include "JSDirectoryEntry.h"
-#include "JSFileEntry.h"
-#include <wtf/Assertions.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, Entry* entry)
-{
- if (!entry)
- return jsNull();
-
- if (entry->isFile())
- return getDOMObjectWrapper<JSFileEntry>(exec, globalObject, static_cast<FileEntry*>(entry));
-
- ASSERT(entry->isDirectory());
- return getDOMObjectWrapper<JSDirectoryEntry>(exec, globalObject, static_cast<DirectoryEntry*>(entry));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(FILE_SYSTEM)
diff --git a/WebCore/bindings/js/JSEntrySyncCustom.cpp b/WebCore/bindings/js/JSEntrySyncCustom.cpp
deleted file mode 100644
index 22f96ad..0000000
--- a/WebCore/bindings/js/JSEntrySyncCustom.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(FILE_SYSTEM)
-
-#include "JSEntrySync.h"
-
-#include "EntrySync.h"
-#include "JSDOMBinding.h"
-#include "JSDirectoryEntrySync.h"
-#include "JSFileEntrySync.h"
-#include <wtf/Assertions.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, EntrySync* entry)
-{
- if (!entry)
- return jsNull();
-
- if (entry->isFile())
- return getDOMObjectWrapper<JSFileEntrySync>(exec, globalObject, static_cast<FileEntrySync*>(entry));
-
- ASSERT(entry->isDirectory());
- return getDOMObjectWrapper<JSDirectoryEntrySync>(exec, globalObject, static_cast<DirectoryEntrySync*>(entry));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(FILE_SYSTEM)
diff --git a/WebCore/bindings/js/JSEventCustom.cpp b/WebCore/bindings/js/JSEventCustom.cpp
deleted file mode 100644
index fd80360..0000000
--- a/WebCore/bindings/js/JSEventCustom.cpp
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSEvent.h"
-
-#include "Clipboard.h"
-#include "CompositionEvent.h"
-#include "CustomEvent.h"
-#include "DeviceMotionEvent.h"
-#include "DeviceOrientationEvent.h"
-#include "Event.h"
-#include "JSBeforeLoadEvent.h"
-#include "JSClipboard.h"
-#include "JSCustomEvent.h"
-#include "JSCompositionEvent.h"
-#include "JSDeviceMotionEvent.h"
-#include "JSDeviceOrientationEvent.h"
-#include "JSErrorEvent.h"
-#include "JSHashChangeEvent.h"
-#include "JSKeyboardEvent.h"
-#include "JSMessageEvent.h"
-#include "JSMouseEvent.h"
-#include "JSMutationEvent.h"
-#include "JSOverflowEvent.h"
-#include "JSPageTransitionEvent.h"
-#include "JSPopStateEvent.h"
-#include "JSProgressEvent.h"
-#include "JSSpeechInputEvent.h"
-#include "JSTextEvent.h"
-#include "JSUIEvent.h"
-#include "JSWebKitAnimationEvent.h"
-#include "JSWebKitTransitionEvent.h"
-#include "JSWheelEvent.h"
-#include "JSXMLHttpRequestProgressEvent.h"
-#include "BeforeLoadEvent.h"
-#include "ErrorEvent.h"
-#include "HashChangeEvent.h"
-#include "KeyboardEvent.h"
-#include "MessageEvent.h"
-#include "MouseEvent.h"
-#include "MutationEvent.h"
-#include "OverflowEvent.h"
-#include "PageTransitionEvent.h"
-#include "PopStateEvent.h"
-#include "ProgressEvent.h"
-#include "SpeechInputEvent.h"
-#include "TextEvent.h"
-#include "UIEvent.h"
-#include "WebKitAnimationEvent.h"
-#include "WebKitTransitionEvent.h"
-#include "WheelEvent.h"
-#include "XMLHttpRequestProgressEvent.h"
-#include <runtime/JSLock.h>
-
-#if ENABLE(DOM_STORAGE)
-#include "JSStorageEvent.h"
-#include "StorageEvent.h"
-#endif
-
-#if ENABLE(SVG)
-#include "JSSVGZoomEvent.h"
-#include "SVGZoomEvent.h"
-#endif
-
-#if ENABLE(TOUCH_EVENTS)
-#include "JSTouchEvent.h"
-#include "TouchEvent.h"
-#endif
-
-#if ENABLE(INDEXED_DATABASE)
-#include "IDBErrorEvent.h"
-#include "IDBSuccessEvent.h"
-#include "JSIDBErrorEvent.h"
-#include "JSIDBSuccessEvent.h"
-#endif
-
-#if ENABLE(WEB_AUDIO)
-#include "AudioProcessingEvent.h"
-#include "JSAudioProcessingEvent.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSEvent::clipboardData(ExecState* exec) const
-{
- return impl()->isClipboardEvent() ? toJS(exec, globalObject(), impl()->clipboardData()) : jsUndefined();
-}
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, Event* event)
-{
- JSLock lock(SilenceAssertionsOnly);
-
- if (!event)
- return jsNull();
-
- DOMObject* wrapper = getCachedDOMObjectWrapper(exec, event);
- if (wrapper)
- return wrapper;
-
- if (event->isUIEvent()) {
- if (event->isKeyboardEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, KeyboardEvent, event);
- else if (event->isTextEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, TextEvent, event);
- else if (event->isMouseEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, MouseEvent, event);
- else if (event->isWheelEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, WheelEvent, event);
-#if ENABLE(SVG)
- else if (event->isSVGZoomEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGZoomEvent, event);
-#endif
- else if (event->isCompositionEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CompositionEvent, event);
-#if ENABLE(TOUCH_EVENTS)
- else if (event->isTouchEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, TouchEvent, event);
-#endif
- else
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, UIEvent, event);
- } else if (event->isMutationEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, MutationEvent, event);
- else if (event->isOverflowEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, OverflowEvent, event);
- else if (event->isMessageEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, MessageEvent, event);
- else if (event->isPageTransitionEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, PageTransitionEvent, event);
- else if (event->isProgressEvent()) {
- if (event->isXMLHttpRequestProgressEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, XMLHttpRequestProgressEvent, event);
- else
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, ProgressEvent, event);
- } else if (event->isBeforeLoadEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, BeforeLoadEvent, event);
-#if ENABLE(DOM_STORAGE)
- else if (event->isStorageEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, StorageEvent, event);
-#endif
-#if ENABLE(INDEXED_DATABASE)
- else if (event->isIDBErrorEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, IDBErrorEvent, event);
- else if (event->isIDBSuccessEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, IDBSuccessEvent, event);
-#endif
- else if (event->isWebKitAnimationEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, WebKitAnimationEvent, event);
- else if (event->isWebKitTransitionEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, WebKitTransitionEvent, event);
-#if ENABLE(WORKERS)
- else if (event->isErrorEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, ErrorEvent, event);
-#endif
- else if (event->isHashChangeEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, HashChangeEvent, event);
- else if (event->isPopStateEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, PopStateEvent, event);
- else if (event->isCustomEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CustomEvent, event);
-#if ENABLE(DEVICE_ORIENTATION)
- else if (event->isDeviceMotionEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, DeviceMotionEvent, event);
- else if (event->isDeviceOrientationEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, DeviceOrientationEvent, event);
-#endif
-#if ENABLE(WEB_AUDIO)
- else if (event->isAudioProcessingEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, AudioProcessingEvent, event);
-#endif
-#if ENABLE(INPUT_SPEECH)
- else if (event->isSpeechInputEvent())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SpeechInputEvent, event);
-#endif
- else
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, Event, event);
-
- return wrapper;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSEventListener.cpp b/WebCore/bindings/js/JSEventListener.cpp
deleted file mode 100644
index 5604374..0000000
--- a/WebCore/bindings/js/JSEventListener.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (C) 2001 Peter Kelly (pmk@post.com)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All Rights Reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "JSEventListener.h"
-
-#include "Event.h"
-#include "Frame.h"
-#include "JSEvent.h"
-#include "JSEventTarget.h"
-#include "JSMainThreadExecState.h"
-#include <runtime/JSLock.h>
-#include <wtf/RefCountedLeakCounter.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSEventListener::JSEventListener(JSObject* function, JSObject* wrapper, bool isAttribute, DOMWrapperWorld* isolatedWorld)
- : EventListener(JSEventListenerType)
- , m_jsFunction(function)
- , m_isAttribute(isAttribute)
- , m_isolatedWorld(isolatedWorld)
-{
- if (wrapper)
- m_wrapper = wrapper;
-}
-
-JSEventListener::~JSEventListener()
-{
-}
-
-JSObject* JSEventListener::initializeJSFunction(ScriptExecutionContext*) const
-{
- ASSERT_NOT_REACHED();
- return 0;
-}
-
-void JSEventListener::markJSFunction(MarkStack& markStack)
-{
- if (m_jsFunction)
- markStack.append(m_jsFunction);
-}
-
-void JSEventListener::handleEvent(ScriptExecutionContext* scriptExecutionContext, Event* event)
-{
- ASSERT(scriptExecutionContext);
- if (!scriptExecutionContext || scriptExecutionContext->isJSExecutionTerminated())
- return;
-
- JSLock lock(SilenceAssertionsOnly);
-
- JSObject* jsFunction = this->jsFunction(scriptExecutionContext);
- if (!jsFunction)
- return;
-
- JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(scriptExecutionContext, m_isolatedWorld.get());
- if (!globalObject)
- return;
-
- if (scriptExecutionContext->isDocument()) {
- JSDOMWindow* window = static_cast<JSDOMWindow*>(globalObject);
- Frame* frame = window->impl()->frame();
- if (!frame)
- return;
- // The window must still be active in its frame. See <https://bugs.webkit.org/show_bug.cgi?id=21921>.
- // FIXME: A better fix for this may be to change DOMWindow::frame() to not return a frame the detached window used to be in.
- if (frame->domWindow() != window->impl())
- return;
- // FIXME: Is this check needed for other contexts?
- ScriptController* script = frame->script();
- if (!script->canExecuteScripts(AboutToExecuteScript) || script->isPaused())
- return;
- }
-
- ExecState* exec = globalObject->globalExec();
- JSValue handleEventFunction = jsFunction->get(exec, Identifier(exec, "handleEvent"));
-
- CallData callData;
- CallType callType = getCallData(handleEventFunction, callData);
- if (callType == CallTypeNone) {
- handleEventFunction = JSValue();
- callType = jsFunction->getCallData(callData);
- }
-
- if (callType != CallTypeNone) {
- ref();
-
- MarkedArgumentBuffer args;
- args.append(toJS(exec, globalObject, event));
-
- Event* savedEvent = globalObject->currentEvent();
- globalObject->setCurrentEvent(event);
-
- JSGlobalData& globalData = globalObject->globalData();
- DynamicGlobalObjectScope globalObjectScope(exec, globalData.dynamicGlobalObject ? globalData.dynamicGlobalObject : globalObject);
-
- globalData.timeoutChecker.start();
- JSValue retval;
- if (handleEventFunction) {
- retval = scriptExecutionContext->isDocument()
- ? JSMainThreadExecState::call(exec, handleEventFunction, callType, callData, jsFunction, args)
- : JSC::call(exec, handleEventFunction, callType, callData, jsFunction, args);
- } else {
- JSValue currentTarget = toJS(exec, globalObject, event->currentTarget());
- retval = scriptExecutionContext->isDocument()
- ? JSMainThreadExecState::call(exec, jsFunction, callType, callData, currentTarget, args)
- : JSC::call(exec, jsFunction, callType, callData, currentTarget, args);
- }
- globalData.timeoutChecker.stop();
-
- globalObject->setCurrentEvent(savedEvent);
-
- if (exec->hadException())
- reportCurrentException(exec);
- else {
- if (!retval.isUndefinedOrNull() && event->storesResultAsString())
- event->storeResult(ustringToString(retval.toString(exec)));
- if (m_isAttribute) {
- bool retvalbool;
- if (retval.getBoolean(retvalbool) && !retvalbool)
- event->preventDefault();
- }
- }
-
- deref();
- }
-}
-
-bool JSEventListener::virtualisAttribute() const
-{
- return m_isAttribute;
-}
-
-bool JSEventListener::operator==(const EventListener& listener)
-{
- if (const JSEventListener* jsEventListener = JSEventListener::cast(&listener))
- return m_jsFunction == jsEventListener->m_jsFunction && m_isAttribute == jsEventListener->m_isAttribute;
- return false;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSEventListener.h b/WebCore/bindings/js/JSEventListener.h
deleted file mode 100644
index b15c589..0000000
--- a/WebCore/bindings/js/JSEventListener.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2001 Peter Kelly (pmk@post.com)
- * Copyright (C) 2003, 2008, 2009 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef JSEventListener_h
-#define JSEventListener_h
-
-#include "EventListener.h"
-#include "JSDOMWindow.h"
-#include <runtime/WeakGCPtr.h>
-
-namespace WebCore {
-
- class JSDOMGlobalObject;
-
- class JSEventListener : public EventListener {
- public:
- static PassRefPtr<JSEventListener> create(JSC::JSObject* listener, JSC::JSObject* wrapper, bool isAttribute, DOMWrapperWorld* isolatedWorld)
- {
- return adoptRef(new JSEventListener(listener, wrapper, isAttribute, isolatedWorld));
- }
-
- static const JSEventListener* cast(const EventListener* listener)
- {
- return listener->type() == JSEventListenerType
- ? static_cast<const JSEventListener*>(listener)
- : 0;
- }
-
- virtual ~JSEventListener();
-
- virtual bool operator==(const EventListener& other);
-
- // Returns true if this event listener was created for an event handler attribute, like "onload" or "onclick".
- bool isAttribute() const { return m_isAttribute; }
-
- JSC::JSObject* jsFunction(ScriptExecutionContext*) const;
- DOMWrapperWorld* isolatedWorld() const { return m_isolatedWorld.get(); }
-
- JSC::JSObject* wrapper() const { return m_wrapper.get(); }
- void setWrapper(JSC::JSObject* wrapper) const { m_wrapper = wrapper; }
-
- private:
- virtual JSC::JSObject* initializeJSFunction(ScriptExecutionContext*) const;
- virtual void markJSFunction(JSC::MarkStack&);
- virtual void invalidateJSFunction(JSC::JSObject*);
- virtual void handleEvent(ScriptExecutionContext*, Event*);
- virtual bool virtualisAttribute() const;
-
- protected:
- JSEventListener(JSC::JSObject* function, JSC::JSObject* wrapper, bool isAttribute, DOMWrapperWorld* isolatedWorld);
-
- private:
- mutable JSC::JSObject* m_jsFunction;
- mutable JSC::WeakGCPtr<JSC::JSObject> m_wrapper;
-
- bool m_isAttribute;
- RefPtr<DOMWrapperWorld> m_isolatedWorld;
- };
-
- inline JSC::JSObject* JSEventListener::jsFunction(ScriptExecutionContext* scriptExecutionContext) const
- {
- if (!m_jsFunction)
- m_jsFunction = initializeJSFunction(scriptExecutionContext);
-
- // Verify that we have a valid wrapper protecting our function from
- // garbage collection.
- ASSERT(m_wrapper || !m_jsFunction);
- if (!m_wrapper)
- return 0;
-
- // Try to verify that m_jsFunction wasn't recycled. (Not exact, since an
- // event listener can be almost anything, but this makes test-writing easier).
- ASSERT(!m_jsFunction || static_cast<JSC::JSCell*>(m_jsFunction)->isObject());
-
- return m_jsFunction;
- }
-
- inline void JSEventListener::invalidateJSFunction(JSC::JSObject* wrapper)
- {
- m_wrapper.clear(wrapper);
- }
-
- // Creates a JS EventListener for an "onXXX" event attribute.
- inline PassRefPtr<JSEventListener> createJSAttributeEventListener(JSC::ExecState* exec, JSC::JSValue listener, JSC::JSObject* wrapper)
- {
- if (!listener.isObject())
- return 0;
-
- return JSEventListener::create(asObject(listener), wrapper, true, currentWorld(exec));
- }
-
-
-} // namespace WebCore
-
-#endif // JSEventListener_h
diff --git a/WebCore/bindings/js/JSEventSourceCustom.cpp b/WebCore/bindings/js/JSEventSourceCustom.cpp
deleted file mode 100644
index aa991dd..0000000
--- a/WebCore/bindings/js/JSEventSourceCustom.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2009 Ericsson AB. All rights reserved.
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name of Ericsson nor the names of its contributors
- * may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(EVENTSOURCE)
-
-#include "JSEventSource.h"
-
-#include "EventSource.h"
-#include "ExceptionCode.h"
-#include "ScriptExecutionContext.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-EncodedJSValue JSC_HOST_CALL JSEventSourceConstructor::constructJSEventSource(ExecState* exec)
-{
- if (exec->argumentCount() < 1)
- return throwVMError(exec, createSyntaxError(exec, "Not enough arguments"));
-
- UString url = exec->argument(0).toString(exec);
- if (exec->hadException())
- return JSValue::encode(JSValue());
-
- JSEventSourceConstructor* jsConstructor = static_cast<JSEventSourceConstructor*>(exec->callee());
- ScriptExecutionContext* context = jsConstructor->scriptExecutionContext();
- if (!context)
- return throwVMError(exec, createReferenceError(exec, "EventSource constructor associated document is unavailable"));
-
- ExceptionCode ec = 0;
- RefPtr<EventSource> eventSource = EventSource::create(ustringToString(url), context, ec);
- if (ec) {
- setDOMException(exec, ec);
- return JSValue::encode(JSValue());
- }
-
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), eventSource.release())));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(EVENTSOURCE)
diff --git a/WebCore/bindings/js/JSEventTarget.cpp b/WebCore/bindings/js/JSEventTarget.cpp
deleted file mode 100644
index 04be175..0000000
--- a/WebCore/bindings/js/JSEventTarget.cpp
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSEventTarget.h"
-
-#include "DOMWindow.h"
-#include "Document.h"
-#include "JSDOMWindow.h"
-#include "JSDOMWindowShell.h"
-#include "JSEventListener.h"
-#include "JSMessagePort.h"
-#include "JSNode.h"
-#if ENABLE(SHARED_WORKERS)
-
-#include "JSSharedWorker.h"
-#include "JSSharedWorkerContext.h"
-#endif
-
-#include "JSXMLHttpRequest.h"
-#include "JSXMLHttpRequestUpload.h"
-#include "MessagePort.h"
-
-#if ENABLE(SHARED_WORKERS)
-#include "SharedWorker.h"
-#include "SharedWorkerContext.h"
-#endif
-
-#include "XMLHttpRequest.h"
-#include "XMLHttpRequestUpload.h"
-
-#if ENABLE(EVENTSOURCE)
-#include "EventSource.h"
-#include "JSEventSource.h"
-#endif
-
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
-#include "DOMApplicationCache.h"
-#include "JSDOMApplicationCache.h"
-#endif
-
-#if ENABLE(SVG)
-#include "SVGElementInstance.h"
-#include "JSSVGElementInstance.h"
-#endif
-
-#if ENABLE(WORKERS)
-#include "DedicatedWorkerContext.h"
-#include "JSDedicatedWorkerContext.h"
-#include "JSWorker.h"
-#include "Worker.h"
-#endif
-
-#if ENABLE(NOTIFICATIONS)
-#include "JSNotification.h"
-#include "Notification.h"
-#endif
-
-#if ENABLE(INDEXED_DATABASE)
-#include "IDBRequest.h"
-#include "JSIDBRequest.h"
-#endif
-
-#if ENABLE(WEB_AUDIO)
-#include "JSJavaScriptAudioNode.h"
-#include "JavaScriptAudioNode.h"
-#endif
-
-#if ENABLE(WEB_SOCKETS)
-#include "JSWebSocket.h"
-#include "WebSocket.h"
-#endif
-
-#if ENABLE(BLOB)
-#include "JSFileReader.h"
-#include "FileReader.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, EventTarget* target)
-{
- if (!target)
- return jsNull();
-
-#if ENABLE(EVENTSOURCE)
- if (EventSource* eventSource = target->toEventSource())
- return toJS(exec, globalObject, eventSource);
-#endif
-
-#if ENABLE(SVG)
- // SVGElementInstance supports both toSVGElementInstance and toNode since so much mouse handling code depends on toNode returning a valid node.
- if (SVGElementInstance* instance = target->toSVGElementInstance())
- return toJS(exec, globalObject, instance);
-#endif
-
- if (Node* node = target->toNode())
- return toJS(exec, globalObject, node);
-
- if (DOMWindow* domWindow = target->toDOMWindow())
- return toJS(exec, globalObject, domWindow);
-
- if (XMLHttpRequest* xhr = target->toXMLHttpRequest())
- return toJS(exec, globalObject, xhr);
-
- if (XMLHttpRequestUpload* upload = target->toXMLHttpRequestUpload())
- return toJS(exec, globalObject, upload);
-
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
- if (DOMApplicationCache* cache = target->toDOMApplicationCache())
- return toJS(exec, globalObject, cache);
-#endif
-
- if (MessagePort* messagePort = target->toMessagePort())
- return toJS(exec, globalObject, messagePort);
-
-#if ENABLE(WORKERS)
- if (Worker* worker = target->toWorker())
- return toJS(exec, globalObject, worker);
-
- if (DedicatedWorkerContext* workerContext = target->toDedicatedWorkerContext())
- return toJSDOMGlobalObject(workerContext, exec);
-#endif
-
-#if ENABLE(SHARED_WORKERS)
- if (SharedWorker* sharedWorker = target->toSharedWorker())
- return toJS(exec, globalObject, sharedWorker);
-
- if (SharedWorkerContext* workerContext = target->toSharedWorkerContext())
- return toJSDOMGlobalObject(workerContext, exec);
-#endif
-
-#if ENABLE(NOTIFICATIONS)
- if (Notification* notification = target->toNotification())
- return toJS(exec, notification);
-#endif
-
-#if ENABLE(INDEXED_DATABASE)
- if (IDBRequest* idbRequest = target->toIDBRequest())
- return toJS(exec, idbRequest);
-#endif
-
-#if ENABLE(WEB_AUDIO)
- if (JavaScriptAudioNode* jsAudioNode = target->toJavaScriptAudioNode())
- return toJS(exec, globalObject, jsAudioNode);
-#endif
-
-#if ENABLE(WEB_SOCKETS)
- if (WebSocket* webSocket = target->toWebSocket())
- return toJS(exec, webSocket);
-#endif
-
-#if ENABLE(BLOB)
- if (FileReader* fileReader = target->toFileReader())
- return toJS(exec, globalObject, fileReader);
-#endif
-
- ASSERT_NOT_REACHED();
- return jsNull();
-}
-
-EventTarget* toEventTarget(JSC::JSValue value)
-{
- #define CONVERT_TO_EVENT_TARGET(type) \
- if (value.inherits(&JS##type::s_info)) \
- return static_cast<JS##type*>(asObject(value))->impl();
-
- CONVERT_TO_EVENT_TARGET(Node)
- CONVERT_TO_EVENT_TARGET(XMLHttpRequest)
- CONVERT_TO_EVENT_TARGET(XMLHttpRequestUpload)
- CONVERT_TO_EVENT_TARGET(MessagePort)
-
- if (value.inherits(&JSDOMWindowShell::s_info))
- return static_cast<JSDOMWindowShell*>(asObject(value))->impl();
-
-#if ENABLE(EVENTSOURCE)
- CONVERT_TO_EVENT_TARGET(EventSource)
-#endif
-
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
- CONVERT_TO_EVENT_TARGET(DOMApplicationCache)
-#endif
-
-#if ENABLE(SVG)
- CONVERT_TO_EVENT_TARGET(SVGElementInstance)
-#endif
-
-#if ENABLE(WORKERS)
- CONVERT_TO_EVENT_TARGET(Worker)
- CONVERT_TO_EVENT_TARGET(DedicatedWorkerContext)
-#endif
-
-#if ENABLE(SHARED_WORKERS)
- CONVERT_TO_EVENT_TARGET(SharedWorker)
- CONVERT_TO_EVENT_TARGET(SharedWorkerContext)
-#endif
-
-#if ENABLE(NOTIFICATIONS)
- CONVERT_TO_EVENT_TARGET(Notification)
-#endif
-
-#if ENABLE(WEB_SOCKETS)
- CONVERT_TO_EVENT_TARGET(WebSocket)
-#endif
-
- return 0;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSEventTarget.h b/WebCore/bindings/js/JSEventTarget.h
deleted file mode 100644
index ddd8232..0000000
--- a/WebCore/bindings/js/JSEventTarget.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSEventTarget_h
-#define JSEventTarget_h
-
-#include <runtime/JSValue.h>
-
-namespace JSC {
- class ExecState;
-}
-
-namespace WebCore {
-
- class EventTarget;
- class JSDOMGlobalObject;
-
- JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, EventTarget*);
- EventTarget* toEventTarget(JSC::JSValue);
-
-} // namespace WebCore
-
-#endif // JSEventTarget_h
diff --git a/WebCore/bindings/js/JSExceptionBase.cpp b/WebCore/bindings/js/JSExceptionBase.cpp
deleted file mode 100644
index 44b38ec..0000000
--- a/WebCore/bindings/js/JSExceptionBase.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSExceptionBase.h"
-
-#include "JSDOMCoreException.h"
-#include "JSEventException.h"
-#include "JSRangeException.h"
-#include "JSXMLHttpRequestException.h"
-#if ENABLE(DATABASE)
-#include "SQLException.h"
-#include "JSSQLException.h"
-#endif
-#if ENABLE(SVG)
-#include "JSSVGException.h"
-#endif
-#if ENABLE(XPATH)
-#include "JSXPathException.h"
-#endif
-
-namespace WebCore {
-
-ExceptionBase* toExceptionBase(JSC::JSValue value)
-{
- if (DOMCoreException* domException = toDOMCoreException(value))
- return reinterpret_cast<ExceptionBase*>(domException);
- if (RangeException* rangeException = toRangeException(value))
- return reinterpret_cast<ExceptionBase*>(rangeException);
- if (EventException* eventException = toEventException(value))
- return reinterpret_cast<ExceptionBase*>(eventException);
- if (XMLHttpRequestException* xmlHttpException = toXMLHttpRequestException(value))
- return reinterpret_cast<ExceptionBase*>(xmlHttpException);
-#if ENABLE(SVG)
- if (SVGException* svgException = toSVGException(value))
- return reinterpret_cast<ExceptionBase*>(svgException);
-#endif
-#if ENABLE(XPATH)
- if (XPathException* pathException = toXPathException(value))
- return reinterpret_cast<ExceptionBase*>(pathException);
-#endif
-#if ENABLE(DATABASE)
- if (SQLException* pathException = toSQLException(value))
- return reinterpret_cast<ExceptionBase*>(pathException);
-#endif
-
- return 0;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSExceptionBase.h b/WebCore/bindings/js/JSExceptionBase.h
deleted file mode 100644
index 01c6ac2..0000000
--- a/WebCore/bindings/js/JSExceptionBase.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSExceptionBase_h
-#define JSExceptionBase_h
-
-namespace JSC {
-
-class JSValue;
-
-} // namespace JSC
-
-namespace WebCore {
-
-class ExceptionBase;
-
-ExceptionBase* toExceptionBase(JSC::JSValue);
-
-} // namespace WebCore
-
-#endif // JSExceptionBase_h
diff --git a/WebCore/bindings/js/JSFileReaderCustom.cpp b/WebCore/bindings/js/JSFileReaderCustom.cpp
deleted file mode 100644
index c771b63..0000000
--- a/WebCore/bindings/js/JSFileReaderCustom.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(BLOB)
-
-#include "JSFileReader.h"
-
-#include "ArrayBuffer.h"
-#include "FileReader.h"
-#include "JSArrayBuffer.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSFileReader::result(ExecState* exec) const
-{
- FileReader* imp = impl();
- if (imp->readType() == FileReaderLoader::ReadAsArrayBuffer)
- return toJS(exec, globalObject(), WTF::getPtr(imp->arrayBufferResult()));
- return jsOwnedStringOrNull(exec, imp->stringResult());
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(BLOB)
diff --git a/WebCore/bindings/js/JSFloat32ArrayCustom.cpp b/WebCore/bindings/js/JSFloat32ArrayCustom.cpp
deleted file mode 100644
index 880d68c..0000000
--- a/WebCore/bindings/js/JSFloat32ArrayCustom.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
-
-#include "JSFloat32Array.h"
-
-#include "Float32Array.h"
-#include "JSArrayBufferViewHelper.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSFloat32Array::indexSetter(JSC::ExecState* exec, unsigned index, JSC::JSValue value)
-{
- impl()->set(index, static_cast<float>(value.toNumber(exec)));
-}
-
-JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, Float32Array* object)
-{
- return getDOMObjectWrapper<JSFloat32Array>(exec, globalObject, object);
-}
-
-JSC::JSValue JSFloat32Array::set(JSC::ExecState* exec)
-{
- return setWebGLArrayHelper(exec, impl(), toFloat32Array);
-}
-
-EncodedJSValue JSC_HOST_CALL JSFloat32ArrayConstructor::constructJSFloat32Array(ExecState* exec)
-{
- JSFloat32ArrayConstructor* jsConstructor = static_cast<JSFloat32ArrayConstructor*>(exec->callee());
- RefPtr<Float32Array> array = constructArrayBufferView<Float32Array, float>(exec);
- if (!array.get())
- // Exception has already been thrown.
- return JSValue::encode(JSValue());
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), array.get())));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(3D_CANVAS) || ENABLE(BLOB)
diff --git a/WebCore/bindings/js/JSGeolocationCustom.cpp b/WebCore/bindings/js/JSGeolocationCustom.cpp
deleted file mode 100644
index 1e40f86..0000000
--- a/WebCore/bindings/js/JSGeolocationCustom.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSGeolocation.h"
-
-#if ENABLE(GEOLOCATION)
-
-#include "DOMWindow.h"
-#include "ExceptionCode.h"
-#include "Geolocation.h"
-#include "JSCustomPositionCallback.h"
-#include "JSCustomPositionErrorCallback.h"
-#include "JSDOMWindow.h"
-#include "PositionOptions.h"
-#include <runtime/JSFunction.h>
-
-#if !ENABLE(CLIENT_BASED_GEOLOCATION)
-#include "GeolocationService.h"
-#endif
-
-using namespace JSC;
-using namespace std;
-
-namespace WebCore {
-
-static PassRefPtr<PositionCallback> createPositionCallback(ExecState* exec, JSDOMGlobalObject* globalObject, JSValue value)
-{
- // The spec specifies 'FunctionOnly' for this object.
- // FIXME: This check disallows callable objects created via JSC API. It's not clear what exactly the specification intends to allow.
- if (!value.inherits(&JSFunction::info)) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return 0;
- }
-
- JSObject* object = asObject(value);
- return JSCustomPositionCallback::create(object, globalObject);
-}
-
-static PassRefPtr<PositionErrorCallback> createPositionErrorCallback(ExecState* exec, JSDOMGlobalObject* globalObject, JSValue value)
-{
- // Argument is optional (hence undefined is allowed), and null is allowed.
- if (value.isUndefinedOrNull())
- return 0;
-
- // The spec specifies 'FunctionOnly' for this object.
- // FIXME: This check disallows callable objects created via JSC API. It's not clear what exactly the specification intends to allow.
- if (!value.inherits(&JSFunction::info)) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return 0;
- }
-
- JSObject* object = asObject(value);
- return JSCustomPositionErrorCallback::create(object, globalObject);
-}
-
-static PassRefPtr<PositionOptions> createPositionOptions(ExecState* exec, JSValue value)
-{
- // Create default options.
- RefPtr<PositionOptions> options = PositionOptions::create();
-
- // Argument is optional (hence undefined is allowed), and null is allowed.
- if (value.isUndefinedOrNull()) {
- // Use default options.
- return options.release();
- }
-
- // Given the above test, this will always yield an object.
- JSObject* object = value.toObject(exec);
-
- // For all three properties, we apply the following ...
- // - If the getter or the property's valueOf method throws an exception, we
- // quit so as not to risk overwriting the exception.
- // - If the value is absent or undefined, we don't override the default.
- JSValue enableHighAccuracyValue = object->get(exec, Identifier(exec, "enableHighAccuracy"));
- if (exec->hadException())
- return 0;
- if (!enableHighAccuracyValue.isUndefined()) {
- options->setEnableHighAccuracy(enableHighAccuracyValue.toBoolean(exec));
- if (exec->hadException())
- return 0;
- }
-
- JSValue timeoutValue = object->get(exec, Identifier(exec, "timeout"));
- if (exec->hadException())
- return 0;
- if (!timeoutValue.isUndefined()) {
- double timeoutNumber = timeoutValue.toNumber(exec);
- if (exec->hadException())
- return 0;
- // If the value is positive infinity, there's nothing to do.
- if (!(isinf(timeoutNumber) && (timeoutNumber > 0))) {
- // Wrap to int32 and force non-negative to match behavior of window.setTimeout.
- options->setTimeout(max(0, timeoutValue.toInt32(exec)));
- if (exec->hadException())
- return 0;
- }
- }
-
- JSValue maximumAgeValue = object->get(exec, Identifier(exec, "maximumAge"));
- if (exec->hadException())
- return 0;
- if (!maximumAgeValue.isUndefined()) {
- double maximumAgeNumber = maximumAgeValue.toNumber(exec);
- if (exec->hadException())
- return 0;
- if (isinf(maximumAgeNumber) && (maximumAgeNumber > 0)) {
- // If the value is positive infinity, clear maximumAge.
- options->clearMaximumAge();
- } else {
- // Wrap to int32 and force non-negative to match behavior of window.setTimeout.
- options->setMaximumAge(max(0, maximumAgeValue.toInt32(exec)));
- if (exec->hadException())
- return 0;
- }
- }
-
- return options.release();
-}
-
-JSValue JSGeolocation::getCurrentPosition(ExecState* exec)
-{
- // Arguments: PositionCallback, (optional)PositionErrorCallback, (optional)PositionOptions
-
- RefPtr<PositionCallback> positionCallback = createPositionCallback(exec, static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject()), exec->argument(0));
- if (exec->hadException())
- return jsUndefined();
- ASSERT(positionCallback);
-
- RefPtr<PositionErrorCallback> positionErrorCallback = createPositionErrorCallback(exec, static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject()), exec->argument(1));
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<PositionOptions> positionOptions = createPositionOptions(exec, exec->argument(2));
- if (exec->hadException())
- return jsUndefined();
- ASSERT(positionOptions);
-
- m_impl->getCurrentPosition(positionCallback.release(), positionErrorCallback.release(), positionOptions.release());
- return jsUndefined();
-}
-
-JSValue JSGeolocation::watchPosition(ExecState* exec)
-{
- // Arguments: PositionCallback, (optional)PositionErrorCallback, (optional)PositionOptions
-
- RefPtr<PositionCallback> positionCallback = createPositionCallback(exec, static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject()), exec->argument(0));
- if (exec->hadException())
- return jsUndefined();
- ASSERT(positionCallback);
-
- RefPtr<PositionErrorCallback> positionErrorCallback = createPositionErrorCallback(exec, static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject()), exec->argument(1));
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<PositionOptions> positionOptions = createPositionOptions(exec, exec->argument(2));
- if (exec->hadException())
- return jsUndefined();
- ASSERT(positionOptions);
-
- int watchID = m_impl->watchPosition(positionCallback.release(), positionErrorCallback.release(), positionOptions.release());
- return jsNumber(watchID);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(GEOLOCATION)
diff --git a/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp b/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp
deleted file mode 100644
index 64615b9..0000000
--- a/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLAllCollection.h"
-
-#include "HTMLAllCollection.h"
-#include "JSDOMBinding.h"
-#include "JSHTMLAllCollection.h"
-#include "JSNode.h"
-#include "JSNodeList.h"
-#include "Node.h"
-#include "StaticNodeList.h"
-#include <runtime/JSValue.h>
-#include <wtf/Vector.h>
-#include <wtf/text/AtomicString.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-static JSValue getNamedItems(ExecState* exec, JSHTMLAllCollection* collection, const Identifier& propertyName)
-{
- Vector<RefPtr<Node> > namedItems;
- collection->impl()->namedItems(identifierToAtomicString(propertyName), namedItems);
-
- if (namedItems.isEmpty())
- return jsUndefined();
- if (namedItems.size() == 1)
- return toJS(exec, collection->globalObject(), namedItems[0].get());
-
- // FIXME: HTML5 specifies that this should be a DynamicNodeList.
- // FIXME: HTML5 specifies that non-HTMLOptionsCollection collections should return
- // the first matching item instead of a NodeList.
- return toJS(exec, collection->globalObject(), StaticNodeList::adopt(namedItems).get());
-}
-
-// HTMLCollections are strange objects, they support both get and call,
-// so that document.forms.item(0) and document.forms(0) both work.
-static EncodedJSValue JSC_HOST_CALL callHTMLAllCollection(ExecState* exec)
-{
- if (exec->argumentCount() < 1)
- return JSValue::encode(jsUndefined());
-
- // Do not use thisObj here. It can be the JSHTMLDocument, in the document.forms(i) case.
- JSHTMLAllCollection* jsCollection = static_cast<JSHTMLAllCollection*>(exec->callee());
- HTMLAllCollection* collection = static_cast<HTMLAllCollection*>(jsCollection->impl());
-
- // Also, do we need the TypeError test here ?
-
- if (exec->argumentCount() == 1) {
- // Support for document.all(<index>) etc.
- bool ok;
- UString string = exec->argument(0).toString(exec);
- unsigned index = Identifier::toUInt32(string, ok);
- if (ok)
- return JSValue::encode(toJS(exec, jsCollection->globalObject(), collection->item(index)));
-
- // Support for document.images('<name>') etc.
- return JSValue::encode(getNamedItems(exec, jsCollection, Identifier(exec, string)));
- }
-
- // The second arg, if set, is the index of the item we want
- bool ok;
- UString string = exec->argument(0).toString(exec);
- unsigned index = Identifier::toUInt32(exec->argument(1).toString(exec), ok);
- if (ok) {
- String pstr = ustringToString(string);
- Node* node = collection->namedItem(pstr);
- while (node) {
- if (!index)
- return JSValue::encode(toJS(exec, jsCollection->globalObject(), node));
- node = collection->nextNamedItem(pstr);
- --index;
- }
- }
-
- return JSValue::encode(jsUndefined());
-}
-
-CallType JSHTMLAllCollection::getCallData(CallData& callData)
-{
- callData.native.function = callHTMLAllCollection;
- return CallTypeHost;
-}
-
-bool JSHTMLAllCollection::canGetItemsForName(ExecState*, HTMLAllCollection* collection, const Identifier& propertyName)
-{
- Vector<RefPtr<Node> > namedItems;
- collection->namedItems(identifierToAtomicString(propertyName), namedItems);
- return !namedItems.isEmpty();
-}
-
-JSValue JSHTMLAllCollection::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSHTMLAllCollection* thisObj = static_cast<JSHTMLAllCollection*>(asObject(slotBase));
- return getNamedItems(exec, thisObj, propertyName);
-}
-
-JSValue JSHTMLAllCollection::item(ExecState* exec)
-{
- bool ok;
- uint32_t index = Identifier::toUInt32(exec->argument(0).toString(exec), ok);
- if (ok)
- return toJS(exec, globalObject(), impl()->item(index));
- return getNamedItems(exec, this, Identifier(exec, exec->argument(0).toString(exec)));
-}
-
-JSValue JSHTMLAllCollection::namedItem(ExecState* exec)
-{
- return getNamedItems(exec, this, Identifier(exec, exec->argument(0).toString(exec)));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSHTMLAppletElementCustom.cpp b/WebCore/bindings/js/JSHTMLAppletElementCustom.cpp
deleted file mode 100644
index 2bff01a..0000000
--- a/WebCore/bindings/js/JSHTMLAppletElementCustom.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLAppletElementCustom.h"
-
-#include "HTMLAppletElement.h"
-#include "JSPluginElementFunctions.h"
-
-namespace WebCore {
-
-using namespace JSC;
-
-bool JSHTMLAppletElement::getOwnPropertySlotDelegate(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
-{
- return runtimeObjectCustomGetOwnPropertySlot(exec, propertyName, slot, this);
-}
-
-bool JSHTMLAppletElement::getOwnPropertyDescriptorDelegate(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
-{
- return runtimeObjectCustomGetOwnPropertyDescriptor(exec, propertyName, descriptor, this);
-}
-
-bool JSHTMLAppletElement::putDelegate(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
-{
- return runtimeObjectCustomPut(exec, propertyName, value, this, slot);
-}
-
-CallType JSHTMLAppletElement::getCallData(CallData& callData)
-{
- return runtimeObjectGetCallData(this, callData);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSHTMLAppletElementCustom.h b/WebCore/bindings/js/JSHTMLAppletElementCustom.h
deleted file mode 100644
index 5df9a66..0000000
--- a/WebCore/bindings/js/JSHTMLAppletElementCustom.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSHTMLAppletElementCustom_h
-#define JSHTMLAppletElementCustom_h
-
-#include "JSHTMLAppletElement.h"
-
-#endif // JSHTMLAppletElementCustom_h
diff --git a/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp b/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp
deleted file mode 100644
index ae9115e..0000000
--- a/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLCanvasElement.h"
-
-#include "CanvasContextAttributes.h"
-#include "HTMLCanvasElement.h"
-#include "JSCanvasRenderingContext2D.h"
-#if ENABLE(3D_CANVAS)
-#include "JSWebGLRenderingContext.h"
-#include "WebGLContextAttributes.h"
-#endif
-#include <wtf/GetPtr.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSHTMLCanvasElement::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(impl());
- JSGlobalData& globalData = *Heap::heap(this)->globalData();
-
- markDOMObjectWrapper(markStack, globalData, canvas->renderingContext());
-}
-
-JSValue JSHTMLCanvasElement::getContext(ExecState* exec)
-{
- HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(impl());
- const UString& contextId = exec->argument(0).toString(exec);
- RefPtr<CanvasContextAttributes> attrs;
-#if ENABLE(3D_CANVAS)
- if (contextId == "experimental-webgl" || contextId == "webkit-3d") {
- attrs = WebGLContextAttributes::create();
- WebGLContextAttributes* webGLAttrs = static_cast<WebGLContextAttributes*>(attrs.get());
- if (exec->argumentCount() > 1 && exec->argument(1).isObject()) {
- JSObject* jsAttrs = exec->argument(1).getObject();
- Identifier alpha(exec, "alpha");
- if (jsAttrs->hasProperty(exec, alpha))
- webGLAttrs->setAlpha(jsAttrs->get(exec, alpha).toBoolean(exec));
- Identifier depth(exec, "depth");
- if (jsAttrs->hasProperty(exec, depth))
- webGLAttrs->setDepth(jsAttrs->get(exec, depth).toBoolean(exec));
- Identifier stencil(exec, "stencil");
- if (jsAttrs->hasProperty(exec, stencil))
- webGLAttrs->setStencil(jsAttrs->get(exec, stencil).toBoolean(exec));
- Identifier antialias(exec, "antialias");
- if (jsAttrs->hasProperty(exec, antialias))
- webGLAttrs->setAntialias(jsAttrs->get(exec, antialias).toBoolean(exec));
- Identifier premultipliedAlpha(exec, "premultipliedAlpha");
- if (jsAttrs->hasProperty(exec, premultipliedAlpha))
- webGLAttrs->setPremultipliedAlpha(jsAttrs->get(exec, premultipliedAlpha).toBoolean(exec));
- }
- }
-#endif
- CanvasRenderingContext* context = canvas->getContext(ustringToString(contextId), attrs.get());
- if (!context)
- return jsNull();
- return toJS(exec, globalObject(), WTF::getPtr(context));
-}
-
-JSValue JSHTMLCanvasElement::toDataURL(ExecState* exec)
-{
- const String& type = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(0));
- HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(impl());
- ExceptionCode ec = 0;
-
- JSC::JSValue result;
- double quality;
- double* qualityPtr = 0;
- if (exec->argumentCount() > 1) {
- JSValue v = exec->argument(1);
- if (v.isNumber()) {
- quality = v.toNumber(exec);
- qualityPtr = &quality;
- }
- }
-
- result = jsString(exec, canvas->toDataURL(type, qualityPtr, ec));
- setDOMException(exec, ec);
- return result;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSHTMLCollectionCustom.cpp b/WebCore/bindings/js/JSHTMLCollectionCustom.cpp
deleted file mode 100644
index 6b2f350..0000000
--- a/WebCore/bindings/js/JSHTMLCollectionCustom.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "JSHTMLCollection.h"
-
-#include "HTMLCollection.h"
-#include "HTMLOptionsCollection.h"
-#include "HTMLAllCollection.h"
-#include "JSDOMBinding.h"
-#include "JSHTMLAllCollection.h"
-#include "JSHTMLOptionsCollection.h"
-#include "JSNode.h"
-#include "JSNodeList.h"
-#include "Node.h"
-#include "StaticNodeList.h"
-#include <wtf/Vector.h>
-#include <wtf/text/AtomicString.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-static JSValue getNamedItems(ExecState* exec, JSHTMLCollection* collection, const Identifier& propertyName)
-{
- Vector<RefPtr<Node> > namedItems;
- collection->impl()->namedItems(identifierToAtomicString(propertyName), namedItems);
-
- if (namedItems.isEmpty())
- return jsUndefined();
- if (namedItems.size() == 1)
- return toJS(exec, collection->globalObject(), namedItems[0].get());
-
- // FIXME: HTML5 specifies that this should be a DynamicNodeList.
- // FIXME: HTML5 specifies that non-HTMLOptionsCollection collections should return
- // the first matching item instead of a NodeList.
- return toJS(exec, collection->globalObject(), StaticNodeList::adopt(namedItems).get());
-}
-
-// HTMLCollections are strange objects, they support both get and call,
-// so that document.forms.item(0) and document.forms(0) both work.
-static EncodedJSValue JSC_HOST_CALL callHTMLCollection(ExecState* exec)
-{
- if (exec->argumentCount() < 1)
- return JSValue::encode(jsUndefined());
-
- // Do not use thisObj here. It can be the JSHTMLDocument, in the document.forms(i) case.
- JSHTMLCollection* jsCollection = static_cast<JSHTMLCollection*>(exec->callee());
- HTMLCollection* collection = jsCollection->impl();
-
- // Also, do we need the TypeError test here ?
-
- if (exec->argumentCount() == 1) {
- // Support for document.all(<index>) etc.
- bool ok;
- UString string = exec->argument(0).toString(exec);
- unsigned index = Identifier::toUInt32(string, ok);
- if (ok)
- return JSValue::encode(toJS(exec, jsCollection->globalObject(), collection->item(index)));
-
- // Support for document.images('<name>') etc.
- return JSValue::encode(getNamedItems(exec, jsCollection, Identifier(exec, string)));
- }
-
- // The second arg, if set, is the index of the item we want
- bool ok;
- UString string = exec->argument(0).toString(exec);
- unsigned index = Identifier::toUInt32(exec->argument(1).toString(exec), ok);
- if (ok) {
- String pstr = ustringToString(string);
- Node* node = collection->namedItem(pstr);
- while (node) {
- if (!index)
- return JSValue::encode(toJS(exec, jsCollection->globalObject(), node));
- node = collection->nextNamedItem(pstr);
- --index;
- }
- }
-
- return JSValue::encode(jsUndefined());
-}
-
-CallType JSHTMLCollection::getCallData(CallData& callData)
-{
- callData.native.function = callHTMLCollection;
- return CallTypeHost;
-}
-
-bool JSHTMLCollection::canGetItemsForName(ExecState*, HTMLCollection* collection, const Identifier& propertyName)
-{
- Vector<RefPtr<Node> > namedItems;
- collection->namedItems(identifierToAtomicString(propertyName), namedItems);
- return !namedItems.isEmpty();
-}
-
-JSValue JSHTMLCollection::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSHTMLCollection* thisObj = static_cast<JSHTMLCollection*>(asObject(slotBase));
- return getNamedItems(exec, thisObj, propertyName);
-}
-
-JSValue JSHTMLCollection::item(ExecState* exec)
-{
- bool ok;
- uint32_t index = Identifier::toUInt32(exec->argument(0).toString(exec), ok);
- if (ok)
- return toJS(exec, globalObject(), impl()->item(index));
- return getNamedItems(exec, this, Identifier(exec, exec->argument(0).toString(exec)));
-}
-
-JSValue JSHTMLCollection::namedItem(ExecState* exec)
-{
- return getNamedItems(exec, this, Identifier(exec, exec->argument(0).toString(exec)));
-}
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, HTMLCollection* collection)
-{
- if (!collection)
- return jsNull();
-
- DOMObject* wrapper = getCachedDOMObjectWrapper(exec, collection);
-
- if (wrapper)
- return wrapper;
-
- switch (collection->type()) {
- case SelectOptions:
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, HTMLOptionsCollection, collection);
- break;
- case DocAll:
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, HTMLAllCollection, collection);
- break;
- default:
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, HTMLCollection, collection);
- break;
- }
-
- return wrapper;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSHTMLDataGridElementCustom.cpp b/WebCore/bindings/js/JSHTMLDataGridElementCustom.cpp
deleted file mode 100644
index a30f5e4..0000000
--- a/WebCore/bindings/js/JSHTMLDataGridElementCustom.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(DATAGRID)
-
-#include "JSHTMLDataGridElement.h"
-
-#include "Document.h"
-#include "HTMLDataGridElement.h"
-#include "JSDataGridDataSource.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSHTMLDataGridElement::dataSource(ExecState*) const
-{
- DataGridDataSource* dataSource = static_cast<HTMLDataGridElement*>(impl())->dataSource();
- if (dataSource && dataSource->isJSDataGridDataSource())
- return asJSDataGridDataSource(dataSource)->jsDataSource();
- return jsNull();
-}
-
-void JSHTMLDataGridElement::setDataSource(ExecState*, JSValue value)
-{
- if (value.isNull()) {
- static_cast<HTMLDataGridElement*>(impl())->setDataSource(0);
- return;
- }
-
- static_cast<HTMLDataGridElement*>(impl())->setDataSource(JSDataGridDataSource::create(value, impl()->document()->frame()));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(DATAGRID)
diff --git a/WebCore/bindings/js/JSHTMLDocumentCustom.cpp b/WebCore/bindings/js/JSHTMLDocumentCustom.cpp
deleted file mode 100644
index 0b40ef0..0000000
--- a/WebCore/bindings/js/JSHTMLDocumentCustom.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLDocument.h"
-
-#include "CharacterNames.h"
-#include "Frame.h"
-#include "HTMLAllCollection.h"
-#include "HTMLBodyElement.h"
-#include "HTMLCollection.h"
-#include "HTMLDocument.h"
-#include "HTMLElement.h"
-#include "HTMLIFrameElement.h"
-#include "HTMLNames.h"
-#include "JSDOMWindow.h"
-#include "JSDOMWindowCustom.h"
-#include "JSDOMWindowShell.h"
-#include "JSHTMLCollection.h"
-#include "SegmentedString.h"
-#include "DocumentParser.h"
-#include <runtime/Error.h>
-#include <runtime/JSCell.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-bool JSHTMLDocument::canGetItemsForName(ExecState*, HTMLDocument* document, const Identifier& propertyName)
-{
- AtomicStringImpl* atomicPropertyName = findAtomicString(propertyName);
- return atomicPropertyName && (document->hasNamedItem(atomicPropertyName) || document->hasExtraNamedItem(atomicPropertyName));
-}
-
-JSValue JSHTMLDocument::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSHTMLDocument* thisObj = static_cast<JSHTMLDocument*>(asObject(slotBase));
- HTMLDocument* document = static_cast<HTMLDocument*>(thisObj->impl());
-
- String name = identifierToString(propertyName);
- RefPtr<HTMLCollection> collection = document->documentNamedItems(name);
-
- unsigned length = collection->length();
- if (!length)
- return jsUndefined();
-
- if (length == 1) {
- Node* node = collection->firstItem();
-
- Frame* frame;
- if (node->hasTagName(iframeTag) && (frame = static_cast<HTMLIFrameElement*>(node)->contentFrame()))
- return toJS(exec, frame);
-
- return toJS(exec, node);
- }
-
- return toJS(exec, collection.get());
-}
-
-// Custom attributes
-
-JSValue JSHTMLDocument::all(ExecState* exec) const
-{
- // If "all" has been overwritten, return the overwritten value
- JSValue v = getDirect(Identifier(exec, "all"));
- if (v)
- return v;
-
- return toJS(exec, static_cast<HTMLDocument*>(impl())->all().get());
-}
-
-void JSHTMLDocument::setAll(ExecState* exec, JSValue value)
-{
- // Add "all" to the property map.
- putDirect(Identifier(exec, "all"), value);
-}
-
-// Custom functions
-
-JSValue JSHTMLDocument::open(ExecState* exec)
-{
- // For compatibility with other browsers, pass open calls with more than 2 parameters to the window.
- if (exec->argumentCount() > 2) {
- Frame* frame = static_cast<HTMLDocument*>(impl())->frame();
- if (frame) {
- JSDOMWindowShell* wrapper = toJSDOMWindowShell(frame, currentWorld(exec));
- if (wrapper) {
- JSValue function = wrapper->get(exec, Identifier(exec, "open"));
- CallData callData;
- CallType callType = ::getCallData(function, callData);
- if (callType == CallTypeNone)
- return throwTypeError(exec);
- return JSC::call(exec, function, callType, callData, wrapper, ArgList(exec));
- }
- }
- return jsUndefined();
- }
-
- // document.open clobbers the security context of the document and
- // aliases it with the active security context.
- Document* activeDocument = asJSDOMWindow(exec->lexicalGlobalObject())->impl()->document();
-
- // In the case of two parameters or fewer, do a normal document open.
- static_cast<HTMLDocument*>(impl())->open(activeDocument);
- return this;
-}
-
-enum NewlineRequirement { DoNotAddNewline, DoAddNewline };
-
-static inline void documentWrite(ExecState* exec, HTMLDocument* document, NewlineRequirement addNewline)
-{
- // DOM only specifies single string argument, but browsers allow multiple or no arguments.
-
- size_t size = exec->argumentCount();
-
- UString firstString = exec->argument(0).toString(exec);
- SegmentedString segmentedString = ustringToString(firstString);
- if (size != 1) {
- if (!size)
- segmentedString.clear();
- else {
- for (size_t i = 1; i < size; ++i) {
- UString subsequentString = exec->argument(i).toString(exec);
- segmentedString.append(SegmentedString(ustringToString(subsequentString)));
- }
- }
- }
- if (addNewline)
- segmentedString.append(SegmentedString(String(&newlineCharacter, 1)));
-
- Document* activeDocument = asJSDOMWindow(exec->lexicalGlobalObject())->impl()->document();
- document->write(segmentedString, activeDocument);
-}
-
-JSValue JSHTMLDocument::write(ExecState* exec)
-{
- documentWrite(exec, static_cast<HTMLDocument*>(impl()), DoNotAddNewline);
- return jsUndefined();
-}
-
-JSValue JSHTMLDocument::writeln(ExecState* exec)
-{
- documentWrite(exec, static_cast<HTMLDocument*>(impl()), DoAddNewline);
- return jsUndefined();
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSHTMLElementCustom.cpp b/WebCore/bindings/js/JSHTMLElementCustom.cpp
deleted file mode 100644
index 4194657..0000000
--- a/WebCore/bindings/js/JSHTMLElementCustom.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLElement.h"
-
-#include "Document.h"
-#include "HTMLFormElement.h"
-
-namespace WebCore {
-
-using namespace JSC;
-
-void JSHTMLElement::pushEventHandlerScope(ExecState* exec, ScopeChain& scope) const
-{
- HTMLElement* element = impl();
-
- // The document is put on first, fall back to searching it only after the element and form.
- scope.push(asObject(toJS(exec, globalObject(), element->ownerDocument())));
-
- // The form is next, searched before the document, but after the element itself.
- if (HTMLFormElement* form = element->form())
- scope.push(asObject(toJS(exec, globalObject(), form)));
-
- // The element is on top, searched first.
- scope.push(asObject(toJS(exec, globalObject(), element)));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSHTMLEmbedElementCustom.cpp b/WebCore/bindings/js/JSHTMLEmbedElementCustom.cpp
deleted file mode 100644
index 72e695b..0000000
--- a/WebCore/bindings/js/JSHTMLEmbedElementCustom.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLEmbedElementCustom.h"
-
-#include "HTMLEmbedElement.h"
-#include "JSPluginElementFunctions.h"
-
-namespace WebCore {
-
-using namespace JSC;
-
-bool JSHTMLEmbedElement::getOwnPropertySlotDelegate(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
-{
- return runtimeObjectCustomGetOwnPropertySlot(exec, propertyName, slot, this);
-}
-
-bool JSHTMLEmbedElement::getOwnPropertyDescriptorDelegate(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
-{
- return runtimeObjectCustomGetOwnPropertyDescriptor(exec, propertyName, descriptor, this);
-}
-
-bool JSHTMLEmbedElement::putDelegate(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
-{
- return runtimeObjectCustomPut(exec, propertyName, value, this, slot);
-}
-
-CallType JSHTMLEmbedElement::getCallData(CallData& callData)
-{
- return runtimeObjectGetCallData(this, callData);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSHTMLEmbedElementCustom.h b/WebCore/bindings/js/JSHTMLEmbedElementCustom.h
deleted file mode 100644
index 58833ae..0000000
--- a/WebCore/bindings/js/JSHTMLEmbedElementCustom.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSHTMLEmbedElementCustom_h
-#define JSHTMLEmbedElementCustom_h
-
-#include "JSHTMLEmbedElement.h"
-
-#endif // JSHTMLEmbedElementCustom_h
diff --git a/WebCore/bindings/js/JSHTMLFormElementCustom.cpp b/WebCore/bindings/js/JSHTMLFormElementCustom.cpp
deleted file mode 100644
index 4dd0b81..0000000
--- a/WebCore/bindings/js/JSHTMLFormElementCustom.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLFormElement.h"
-
-#include "Frame.h"
-#include "HTMLCollection.h"
-#include "HTMLFormElement.h"
-#include "JSDOMWindowCustom.h"
-#include "JSNodeList.h"
-#include "StaticNodeList.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-bool JSHTMLFormElement::canGetItemsForName(ExecState*, HTMLFormElement* form, const Identifier& propertyName)
-{
- Vector<RefPtr<Node> > namedItems;
- form->getNamedElements(identifierToAtomicString(propertyName), namedItems);
- return namedItems.size();
-}
-
-JSValue JSHTMLFormElement::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSHTMLElement* jsForm = static_cast<JSHTMLFormElement*>(asObject(slotBase));
- HTMLFormElement* form = static_cast<HTMLFormElement*>(jsForm->impl());
-
- Vector<RefPtr<Node> > namedItems;
- form->getNamedElements(identifierToAtomicString(propertyName), namedItems);
-
- if (namedItems.isEmpty())
- return jsUndefined();
- if (namedItems.size() == 1)
- return toJS(exec, namedItems[0].get());
-
- // FIXME: HTML5 specifies that this should be a RadioNodeList.
- return toJS(exec, jsForm->globalObject(), StaticNodeList::adopt(namedItems).get());
-}
-
-}
diff --git a/WebCore/bindings/js/JSHTMLFrameElementCustom.cpp b/WebCore/bindings/js/JSHTMLFrameElementCustom.cpp
deleted file mode 100644
index 5994167..0000000
--- a/WebCore/bindings/js/JSHTMLFrameElementCustom.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLFrameElement.h"
-
-#include "Document.h"
-#include "HTMLFrameElement.h"
-#include "HTMLNames.h"
-#include "HTMLParserIdioms.h"
-#include "JSDOMBinding.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-static inline bool allowSettingJavascriptURL(ExecState* exec, HTMLFrameElement* imp, const String& value)
-{
- if (protocolIsJavaScript(stripLeadingAndTrailingHTMLSpaces(value))) {
- Document* contentDocument = imp->contentDocument();
- if (contentDocument && !checkNodeSecurity(exec, contentDocument))
- return false;
- }
- return true;
-}
-
-void JSHTMLFrameElement::setLocation(ExecState* exec, JSValue value)
-{
- HTMLFrameElement* imp = static_cast<HTMLFrameElement*>(impl());
- String locationValue = valueToStringWithNullCheck(exec, value);
-
- if (!allowSettingJavascriptURL(exec, imp, locationValue))
- return;
-
- imp->setLocation(locationValue);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp b/WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp
deleted file mode 100644
index 617aaff..0000000
--- a/WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLFrameSetElement.h"
-
-#include "Document.h"
-#include "HTMLCollection.h"
-#include "HTMLFrameElement.h"
-#include "HTMLFrameSetElement.h"
-#include "HTMLNames.h"
-#include "JSDOMWindow.h"
-#include "JSDOMWindowShell.h"
-#include "JSDOMBinding.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-bool JSHTMLFrameSetElement::canGetItemsForName(ExecState*, HTMLFrameSetElement* frameSet, const Identifier& propertyName)
-{
- Node* frame = frameSet->children()->namedItem(identifierToAtomicString(propertyName));
- return frame && frame->hasTagName(frameTag);
-}
-
-JSValue JSHTMLFrameSetElement::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSHTMLElement* thisObj = static_cast<JSHTMLElement*>(asObject(slotBase));
- HTMLElement* element = static_cast<HTMLElement*>(thisObj->impl());
-
- Node* frame = element->children()->namedItem(identifierToAtomicString(propertyName));
- if (Document* doc = static_cast<HTMLFrameElement*>(frame)->contentDocument()) {
- if (JSDOMWindowShell* window = toJSDOMWindowShell(doc->frame(), currentWorld(exec)))
- return window;
- }
-
- return jsUndefined();
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSHTMLInputElementCustom.cpp b/WebCore/bindings/js/JSHTMLInputElementCustom.cpp
deleted file mode 100644
index 171a1f9..0000000
--- a/WebCore/bindings/js/JSHTMLInputElementCustom.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLInputElement.h"
-
-#include "HTMLInputElement.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSHTMLInputElement::selectionStart(ExecState* exec) const
-{
- HTMLInputElement* input = static_cast<HTMLInputElement*>(impl());
- if (!input->canHaveSelection())
- return throwTypeError(exec);
-
- return jsNumber(input->selectionStart());
-}
-
-void JSHTMLInputElement::setSelectionStart(ExecState* exec, JSValue value)
-{
- HTMLInputElement* input = static_cast<HTMLInputElement*>(impl());
- if (!input->canHaveSelection())
- throwTypeError(exec);
-
- input->setSelectionStart(value.toInt32(exec));
-}
-
-JSValue JSHTMLInputElement::selectionEnd(ExecState* exec) const
-{
- HTMLInputElement* input = static_cast<HTMLInputElement*>(impl());
- if (!input->canHaveSelection())
- return throwTypeError(exec);
-
- return jsNumber(input->selectionEnd());
-}
-
-void JSHTMLInputElement::setSelectionEnd(ExecState* exec, JSValue value)
-{
- HTMLInputElement* input = static_cast<HTMLInputElement*>(impl());
- if (!input->canHaveSelection())
- throwTypeError(exec);
-
- input->setSelectionEnd(value.toInt32(exec));
-}
-
-JSValue JSHTMLInputElement::setSelectionRange(ExecState* exec)
-{
- HTMLInputElement* input = static_cast<HTMLInputElement*>(impl());
- if (!input->canHaveSelection())
- return throwTypeError(exec);
-
- int start = exec->argument(0).toInt32(exec);
- int end = exec->argument(1).toInt32(exec);
-
- input->setSelectionRange(start, end);
- return jsUndefined();
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSHTMLInputElementCustom.h b/WebCore/bindings/js/JSHTMLInputElementCustom.h
deleted file mode 100644
index f5222d2..0000000
--- a/WebCore/bindings/js/JSHTMLInputElementCustom.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSHTMLInputElementCustom_h
-#define JSHTMLInputElementCustom_h
-
-#include "JSHTMLInputElement.h"
-
-#endif // JSHTMLInputElementCustom_h
diff --git a/WebCore/bindings/js/JSHTMLLinkElementCustom.cpp b/WebCore/bindings/js/JSHTMLLinkElementCustom.cpp
deleted file mode 100644
index 8cc8d5f..0000000
--- a/WebCore/bindings/js/JSHTMLLinkElementCustom.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLLinkElement.h"
-
-#include "HTMLLinkElement.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSHTMLLinkElement::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (StyleSheet* sheet = static_cast<HTMLLinkElement*>(impl())->sheet())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), sheet);
-}
-
-}
diff --git a/WebCore/bindings/js/JSHTMLObjectElementCustom.cpp b/WebCore/bindings/js/JSHTMLObjectElementCustom.cpp
deleted file mode 100644
index c87b932..0000000
--- a/WebCore/bindings/js/JSHTMLObjectElementCustom.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLObjectElementCustom.h"
-
-#include "HTMLObjectElement.h"
-#include "JSPluginElementFunctions.h"
-
-namespace WebCore {
-
-using namespace JSC;
-
-bool JSHTMLObjectElement::getOwnPropertySlotDelegate(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
-{
- return runtimeObjectCustomGetOwnPropertySlot(exec, propertyName, slot, this);
-}
-
-bool JSHTMLObjectElement::getOwnPropertyDescriptorDelegate(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
-{
- return runtimeObjectCustomGetOwnPropertyDescriptor(exec, propertyName, descriptor, this);
-}
-
-bool JSHTMLObjectElement::putDelegate(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
-{
- return runtimeObjectCustomPut(exec, propertyName, value, this, slot);
-}
-
-CallType JSHTMLObjectElement::getCallData(CallData& callData)
-{
- return runtimeObjectGetCallData(this, callData);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSHTMLObjectElementCustom.h b/WebCore/bindings/js/JSHTMLObjectElementCustom.h
deleted file mode 100644
index 38659f9..0000000
--- a/WebCore/bindings/js/JSHTMLObjectElementCustom.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSHTMLObjectElementCustom_h
-#define JSHTMLObjectElementCustom_h
-
-#include "JSHTMLObjectElement.h"
-
-#endif // JSHTMLObjectElementCustom_h
diff --git a/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp b/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp
deleted file mode 100644
index d169bc4..0000000
--- a/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "JSHTMLOptionsCollection.h"
-
-#include "ExceptionCode.h"
-#include "HTMLNames.h"
-#include "HTMLOptionElement.h"
-#include "HTMLOptionsCollection.h"
-#include "HTMLSelectElement.h"
-#include "JSHTMLOptionElement.h"
-#include "JSHTMLSelectElement.h"
-#include "JSHTMLSelectElementCustom.h"
-
-#include <wtf/MathExtras.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSHTMLOptionsCollection::length(ExecState*) const
-{
- HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(impl());
- return jsNumber(imp->length());
-}
-
-void JSHTMLOptionsCollection::setLength(ExecState* exec, JSValue value)
-{
- HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(impl());
- ExceptionCode ec = 0;
- unsigned newLength = 0;
- double lengthValue = value.toNumber(exec);
- if (!isnan(lengthValue) && !isinf(lengthValue)) {
- if (lengthValue < 0.0)
- ec = INDEX_SIZE_ERR;
- else if (lengthValue > static_cast<double>(UINT_MAX))
- newLength = UINT_MAX;
- else
- newLength = static_cast<unsigned>(lengthValue);
- }
- if (!ec)
- imp->setLength(newLength, ec);
- setDOMException(exec, ec);
-}
-
-void JSHTMLOptionsCollection::indexSetter(ExecState* exec, unsigned index, JSValue value)
-{
- HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(impl());
- HTMLSelectElement* base = static_cast<HTMLSelectElement*>(imp->base());
- selectIndexSetter(base, exec, index, value);
-}
-
-JSValue JSHTMLOptionsCollection::add(ExecState* exec)
-{
- HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(impl());
- HTMLOptionElement* option = toHTMLOptionElement(exec->argument(0));
- ExceptionCode ec = 0;
- if (exec->argumentCount() < 2)
- imp->add(option, ec);
- else {
- bool ok;
- int index = finiteInt32Value(exec->argument(1), exec, ok);
- if (exec->hadException())
- return jsUndefined();
- if (!ok)
- ec = TYPE_MISMATCH_ERR;
- else
- imp->add(option, index, ec);
- }
- setDOMException(exec, ec);
- return jsUndefined();
-}
-
-JSValue JSHTMLOptionsCollection::remove(ExecState* exec)
-{
- HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(impl());
- JSHTMLSelectElement* base = static_cast<JSHTMLSelectElement*>(asObject(toJS(exec, globalObject(), imp->base())));
- return base->remove(exec);
-}
-
-}
diff --git a/WebCore/bindings/js/JSHTMLOutputElementCustom.cpp b/WebCore/bindings/js/JSHTMLOutputElementCustom.cpp
deleted file mode 100644
index 248a08e..0000000
--- a/WebCore/bindings/js/JSHTMLOutputElementCustom.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLOutputElement.h"
-
-#include "HTMLOutputElement.h"
-#include "JSDOMBinding.h"
-#include "JSDOMSettableTokenList.h"
-#include <wtf/GetPtr.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSHTMLOutputElement::htmlFor(ExecState* exec) const
-{
- HTMLOutputElement* output = static_cast<HTMLOutputElement*>(impl());
- JSValue result = toJS(exec, globalObject(), WTF::getPtr(output->htmlFor()));
- return result;
-}
-
-void JSHTMLOutputElement::setHtmlFor(ExecState* exec, JSValue value)
-{
- HTMLOutputElement* output = static_cast<HTMLOutputElement*>(impl());
- output->setFor(valueToStringWithNullCheck(exec, value));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp b/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp
deleted file mode 100644
index 5c462c1..0000000
--- a/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2007 Apple, Inc.
- * Copyright (C) 2007 Alexey Proskuryakov (ap@webkit.org)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "JSHTMLSelectElementCustom.h"
-
-#include "ExceptionCode.h"
-#include "HTMLNames.h"
-#include "HTMLOptionElement.h"
-#include "HTMLSelectElement.h"
-#include "JSHTMLOptionElement.h"
-
-namespace WebCore {
-
-using namespace JSC;
-using namespace HTMLNames;
-
-JSValue JSHTMLSelectElement::remove(ExecState* exec)
-{
- HTMLSelectElement& select = *static_cast<HTMLSelectElement*>(impl());
-
- // we support both options index and options objects
- HTMLElement* element = toHTMLElement(exec->argument(0));
- if (element && element->hasTagName(optionTag))
- select.remove(static_cast<HTMLOptionElement*>(element)->index());
- else
- select.remove(exec->argument(0).toInt32(exec));
-
- return jsUndefined();
-}
-
-void selectIndexSetter(HTMLSelectElement* select, JSC::ExecState* exec, unsigned index, JSC::JSValue value)
-{
- if (value.isUndefinedOrNull())
- select->remove(index);
- else {
- ExceptionCode ec = 0;
- HTMLOptionElement* option = toHTMLOptionElement(value);
- if (!option)
- ec = TYPE_MISMATCH_ERR;
- else
- select->setOption(index, option, ec);
- setDOMException(exec, ec);
- }
-}
-
-void JSHTMLSelectElement::indexSetter(JSC::ExecState* exec, unsigned index, JSC::JSValue value)
-{
- selectIndexSetter(static_cast<HTMLSelectElement*>(impl()), exec, index, value);
-}
-
-}
diff --git a/WebCore/bindings/js/JSHTMLSelectElementCustom.h b/WebCore/bindings/js/JSHTMLSelectElementCustom.h
deleted file mode 100644
index a449038..0000000
--- a/WebCore/bindings/js/JSHTMLSelectElementCustom.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSHTMLSelectElementCustom_h
-#define JSHTMLSelectElementCustom_h
-
-#include "JSHTMLSelectElement.h"
-
-namespace WebCore {
-
-void selectIndexSetter(HTMLSelectElement*, JSC::ExecState*, unsigned index, JSC::JSValue);
-
-}
-
-#endif
diff --git a/WebCore/bindings/js/JSHTMLStyleElementCustom.cpp b/WebCore/bindings/js/JSHTMLStyleElementCustom.cpp
deleted file mode 100644
index 9b0d1a7..0000000
--- a/WebCore/bindings/js/JSHTMLStyleElementCustom.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHTMLStyleElement.h"
-
-#include "HTMLStyleElement.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSHTMLStyleElement::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (StyleSheet* sheet = static_cast<HTMLStyleElement*>(impl())->sheet())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), sheet);
-}
-
-}
diff --git a/WebCore/bindings/js/JSHistoryCustom.cpp b/WebCore/bindings/js/JSHistoryCustom.cpp
deleted file mode 100644
index 6a2f614..0000000
--- a/WebCore/bindings/js/JSHistoryCustom.cpp
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSHistoryCustom.h"
-
-#include "Frame.h"
-#include "History.h"
-#include <runtime/JSFunction.h>
-#include <runtime/PrototypeFunction.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-static JSValue nonCachingStaticBackFunctionGetter(ExecState* exec, JSValue, const Identifier& propertyName)
-{
- return new (exec) NativeFunctionWrapper(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->prototypeFunctionStructure(), 0, propertyName, jsHistoryPrototypeFunctionBack);
-}
-
-static JSValue nonCachingStaticForwardFunctionGetter(ExecState* exec, JSValue, const Identifier& propertyName)
-{
- return new (exec) NativeFunctionWrapper(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->prototypeFunctionStructure(), 0, propertyName, jsHistoryPrototypeFunctionForward);
-}
-
-static JSValue nonCachingStaticGoFunctionGetter(ExecState* exec, JSValue, const Identifier& propertyName)
-{
- return new (exec) NativeFunctionWrapper(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->prototypeFunctionStructure(), 1, propertyName, jsHistoryPrototypeFunctionGo);
-}
-
-bool JSHistory::getOwnPropertySlotDelegate(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
-{
- // When accessing History cross-domain, functions are always the native built-in ones.
- // See JSDOMWindow::getOwnPropertySlotDelegate for additional details.
-
- // Our custom code is only needed to implement the Window cross-domain scheme, so if access is
- // allowed, return false so the normal lookup will take place.
- String message;
- if (allowsAccessFromFrame(exec, impl()->frame(), message))
- return false;
-
- // Check for the few functions that we allow, even when called cross-domain.
- const HashEntry* entry = JSHistoryPrototype::s_info.propHashTable(exec)->entry(exec, propertyName);
- if (entry) {
- // Allow access to back(), forward() and go() from any frame.
- if (entry->attributes() & Function) {
- if (entry->function() == jsHistoryPrototypeFunctionBack) {
- slot.setCustom(this, nonCachingStaticBackFunctionGetter);
- return true;
- } else if (entry->function() == jsHistoryPrototypeFunctionForward) {
- slot.setCustom(this, nonCachingStaticForwardFunctionGetter);
- return true;
- } else if (entry->function() == jsHistoryPrototypeFunctionGo) {
- slot.setCustom(this, nonCachingStaticGoFunctionGetter);
- return true;
- }
- }
- } else {
- // Allow access to toString() cross-domain, but always Object.toString.
- if (propertyName == exec->propertyNames().toString) {
- slot.setCustom(this, objectToStringFunctionGetter);
- return true;
- }
- }
-
- printErrorMessageForFrame(impl()->frame(), message);
- slot.setUndefined();
- return true;
-}
-
-bool JSHistory::getOwnPropertyDescriptorDelegate(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
-{
- if (!impl()->frame()) {
- descriptor.setUndefined();
- return true;
- }
-
- // Throw out all cross domain access
- if (!allowsAccessFromFrame(exec, impl()->frame()))
- return true;
-
- // Check for the few functions that we allow, even when called cross-domain.
- const HashEntry* entry = JSHistoryPrototype::s_info.propHashTable(exec)->entry(exec, propertyName);
- if (entry) {
- PropertySlot slot;
- // Allow access to back(), forward() and go() from any frame.
- if (entry->attributes() & Function) {
- if (entry->function() == jsHistoryPrototypeFunctionBack) {
- slot.setCustom(this, nonCachingStaticBackFunctionGetter);
- descriptor.setDescriptor(slot.getValue(exec, propertyName), entry->attributes());
- return true;
- } else if (entry->function() == jsHistoryPrototypeFunctionForward) {
- slot.setCustom(this, nonCachingStaticForwardFunctionGetter);
- descriptor.setDescriptor(slot.getValue(exec, propertyName), entry->attributes());
- return true;
- } else if (entry->function() == jsHistoryPrototypeFunctionGo) {
- slot.setCustom(this, nonCachingStaticGoFunctionGetter);
- descriptor.setDescriptor(slot.getValue(exec, propertyName), entry->attributes());
- return true;
- }
- }
- } else {
- // Allow access to toString() cross-domain, but always Object.toString.
- if (propertyName == exec->propertyNames().toString) {
- PropertySlot slot;
- slot.setCustom(this, objectToStringFunctionGetter);
- descriptor.setDescriptor(slot.getValue(exec, propertyName), entry->attributes());
- return true;
- }
- }
-
- descriptor.setUndefined();
- return true;
-}
-
-bool JSHistory::putDelegate(ExecState* exec, const Identifier&, JSValue, PutPropertySlot&)
-{
- // Only allow putting by frames in the same origin.
- if (!allowsAccessFromFrame(exec, impl()->frame()))
- return true;
- return false;
-}
-
-bool JSHistory::deleteProperty(ExecState* exec, const Identifier& propertyName)
-{
- // Only allow deleting by frames in the same origin.
- if (!allowsAccessFromFrame(exec, impl()->frame()))
- return false;
- return Base::deleteProperty(exec, propertyName);
-}
-
-void JSHistory::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode)
-{
- // Only allow the history object to enumerated by frames in the same origin.
- if (!allowsAccessFromFrame(exec, impl()->frame()))
- return;
- Base::getOwnPropertyNames(exec, propertyNames, mode);
-}
-
-JSValue JSHistory::pushState(ExecState* exec)
-{
- RefPtr<SerializedScriptValue> historyState = SerializedScriptValue::create(exec, exec->argument(0));
- if (exec->hadException())
- return jsUndefined();
-
- String title = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(1));
- if (exec->hadException())
- return jsUndefined();
-
- String url;
- if (exec->argumentCount() > 2) {
- url = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(2));
- if (exec->hadException())
- return jsUndefined();
- }
-
- ExceptionCode ec = 0;
- impl()->stateObjectAdded(historyState.release(), title, url, History::StateObjectPush, ec);
- setDOMException(exec, ec);
-
- return jsUndefined();
-}
-
-JSValue JSHistory::replaceState(ExecState* exec)
-{
- RefPtr<SerializedScriptValue> historyState = SerializedScriptValue::create(exec, exec->argument(0));
- if (exec->hadException())
- return jsUndefined();
-
- String title = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(1));
- if (exec->hadException())
- return jsUndefined();
-
- String url;
- if (exec->argumentCount() > 2) {
- url = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(2));
- if (exec->hadException())
- return jsUndefined();
- }
-
- ExceptionCode ec = 0;
- impl()->stateObjectAdded(historyState.release(), title, url, History::StateObjectReplace, ec);
- setDOMException(exec, ec);
-
- return jsUndefined();
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSHistoryCustom.h b/WebCore/bindings/js/JSHistoryCustom.h
deleted file mode 100644
index 40edc6f..0000000
--- a/WebCore/bindings/js/JSHistoryCustom.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSHistoryCustom_h
-#define JSHistoryCustom_h
-
-#include "JSHistory.h"
-
-#endif // JSHistoryCustom_h
-
-
diff --git a/WebCore/bindings/js/JSIDBAnyCustom.cpp b/WebCore/bindings/js/JSIDBAnyCustom.cpp
deleted file mode 100644
index 506f15f..0000000
--- a/WebCore/bindings/js/JSIDBAnyCustom.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(INDEXED_DATABASE)
-
-#include "JSIDBAny.h"
-
-#include "IDBAny.h"
-#include "IDBCursor.h"
-#include "IDBDatabase.h"
-#include "IDBFactory.h"
-#include "IDBIndex.h"
-#include "IDBKey.h"
-#include "IDBObjectStore.h"
-#include "JSIDBCursor.h"
-#include "JSIDBDatabase.h"
-#include "JSIDBFactory.h"
-#include "JSIDBIndex.h"
-#include "JSIDBKey.h"
-#include "JSIDBObjectStore.h"
-#include "JSIDBTransaction.h"
-#include "SerializedScriptValue.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, IDBAny* idbAny)
-{
- if (!idbAny)
- return jsNull();
-
- switch (idbAny->type()) {
- case IDBAny::UndefinedType:
- return jsUndefined();
- case IDBAny::NullType:
- return jsNull();
- case IDBAny::IDBCursorType:
- return toJS(exec, globalObject, idbAny->idbCursor());
- case IDBAny::IDBDatabaseType:
- return toJS(exec, globalObject, idbAny->idbDatabase());
- case IDBAny::IDBFactoryType:
- return toJS(exec, globalObject, idbAny->idbFactory());
- case IDBAny::IDBIndexType:
- return toJS(exec, globalObject, idbAny->idbIndex());
- case IDBAny::IDBKeyType:
- return toJS(exec, globalObject, idbAny->idbKey());
- case IDBAny::IDBObjectStoreType:
- return toJS(exec, globalObject, idbAny->idbObjectStore());
- case IDBAny::IDBTransactionType:
- return toJS(exec, globalObject, idbAny->idbTransaction());
- case IDBAny::SerializedScriptValueType:
- return idbAny->serializedScriptValue()->deserialize(exec, globalObject);
- }
-
- ASSERT_NOT_REACHED();
- return jsUndefined();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebCore/bindings/js/JSIDBKeyCustom.cpp b/WebCore/bindings/js/JSIDBKeyCustom.cpp
deleted file mode 100644
index f0faef5..0000000
--- a/WebCore/bindings/js/JSIDBKeyCustom.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(INDEXED_DATABASE)
-#include "JSIDBKey.h"
-
-#include "IDBBindingUtilities.h"
-#include "IDBKey.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject*, IDBKey* key)
-{
- if (!key)
- return jsNull();
-
- switch (key->type()) {
- case IDBKey::NullType:
- return jsNull();
- case IDBKey::NumberType:
- return jsNumber(key->number());
- case IDBKey::StringType:
- return jsString(exec, key->string());
- // FIXME: Implement dates.
- }
-
- ASSERT_NOT_REACHED();
- return jsUndefined();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebCore/bindings/js/JSImageConstructor.cpp b/WebCore/bindings/js/JSImageConstructor.cpp
deleted file mode 100644
index f2ad803..0000000
--- a/WebCore/bindings/js/JSImageConstructor.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
- * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "JSImageConstructor.h"
-
-#include "HTMLImageElement.h"
-#include "HTMLNames.h"
-#include "JSHTMLImageElement.h"
-#include "JSNode.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-ASSERT_CLASS_FITS_IN_CELL(JSImageConstructor);
-
-const ClassInfo JSImageConstructor::s_info = { "ImageConstructor", 0, 0, 0 };
-
-JSImageConstructor::JSImageConstructor(ExecState* exec, JSDOMGlobalObject* globalObject)
- : DOMConstructorWithDocument(JSImageConstructor::createStructure(globalObject->objectPrototype()), globalObject)
-{
- putDirect(exec->propertyNames().prototype, JSHTMLImageElementPrototype::self(exec, globalObject), None);
-}
-
-static EncodedJSValue JSC_HOST_CALL constructImage(ExecState* exec)
-{
- JSImageConstructor* jsConstructor = static_cast<JSImageConstructor*>(exec->callee());
- Document* document = jsConstructor->document();
- if (!document)
- return throwVMError(exec, createReferenceError(exec, "Image constructor associated document is unavailable"));
-
- // Calling toJS on the document causes the JS document wrapper to be
- // added to the window object. This is done to ensure that JSDocument::markChildren
- // will be called, which will cause the image element to be marked if necessary.
- toJS(exec, jsConstructor->globalObject(), document);
- int width;
- int height;
- int* optionalWidth = 0;
- int* optionalHeight = 0;
- if (exec->argumentCount() > 0) {
- width = exec->argument(0).toInt32(exec);
- optionalWidth = &width;
- }
- if (exec->argumentCount() > 1) {
- height = exec->argument(1).toInt32(exec);
- optionalHeight = &height;
- }
-
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(),
- HTMLImageElement::createForJSConstructor(document, optionalWidth, optionalHeight))));
-}
-
-ConstructType JSImageConstructor::getConstructData(ConstructData& constructData)
-{
- constructData.native.function = constructImage;
- return ConstructTypeHost;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSImageConstructor.h b/WebCore/bindings/js/JSImageConstructor.h
deleted file mode 100644
index 0525f5e..0000000
--- a/WebCore/bindings/js/JSImageConstructor.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 1999 Harri Porten (porten@kde.org)
- * Copyright (C) 2004, 2006, 2007, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef JSImageConstructor_h
-#define JSImageConstructor_h
-
-#include "JSDOMBinding.h"
-#include "JSDocument.h"
-
-namespace WebCore {
-
- class JSImageConstructor : public DOMConstructorWithDocument {
- public:
- JSImageConstructor(JSC::ExecState*, JSDOMGlobalObject*);
-
- static const JSC::ClassInfo s_info;
- private:
- virtual JSC::ConstructType getConstructData(JSC::ConstructData&);
- virtual const JSC::ClassInfo* classInfo() const { return &s_info; }
- };
-
-} // namespace WebCore
-
-#endif // JSImageConstructor_h
diff --git a/WebCore/bindings/js/JSImageDataCustom.cpp b/WebCore/bindings/js/JSImageDataCustom.cpp
deleted file mode 100644
index 61c5112..0000000
--- a/WebCore/bindings/js/JSImageDataCustom.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSImageData.h"
-
-#include "ImageData.h"
-#include "PlatformString.h"
-
-#include <runtime/JSByteArray.h>
-#include <wtf/StdLibExtras.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, ImageData* imageData)
-{
- if (!imageData)
- return jsNull();
-
- DOMObject* wrapper = getCachedDOMObjectWrapper(exec, imageData);
- if (wrapper)
- return wrapper;
-
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, ImageData, imageData);
- Identifier dataName(exec, "data");
- DEFINE_STATIC_LOCAL(RefPtr<Structure>, cpaStructure, (JSByteArray::createStructure(jsNull())));
- static const ClassInfo cpaClassInfo = { "CanvasPixelArray", 0, 0, 0 };
- wrapper->putDirect(dataName, new (exec) JSByteArray(exec, cpaStructure, imageData->data()->data(), &cpaClassInfo), DontDelete | ReadOnly);
- exec->heap()->reportExtraMemoryCost(imageData->data()->length());
-
- return wrapper;
-}
-
-}
diff --git a/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp b/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
deleted file mode 100644
index de72dea..0000000
--- a/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
- * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSInjectedScriptHost.h"
-
-#if ENABLE(INSPECTOR)
-
-#include "Console.h"
-#include "JSMainThreadExecState.h"
-#if ENABLE(DATABASE)
-#include "Database.h"
-#include "JSDatabase.h"
-#endif
-#include "ExceptionCode.h"
-#include "Frame.h"
-#include "FrameLoader.h"
-#include "InjectedScript.h"
-#include "InjectedScriptHost.h"
-#include "InspectorController.h"
-#include "InspectorValues.h"
-#include "JSDOMWindow.h"
-#include "JSDOMWindowCustom.h"
-#include "JSNode.h"
-#include "JSRange.h"
-#include "Node.h"
-#include "Page.h"
-#if ENABLE(DOM_STORAGE)
-#include "Storage.h"
-#include "JSStorage.h"
-#endif
-#include "TextIterator.h"
-#include "VisiblePosition.h"
-#include <parser/SourceCode.h>
-#include <runtime/JSArray.h>
-#include <runtime/JSLock.h>
-#include <wtf/RefPtr.h>
-#include <wtf/Vector.h>
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-#include "JavaScriptCallFrame.h"
-#include "JSJavaScriptCallFrame.h"
-#include "ScriptDebugServer.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-ScriptObject InjectedScriptHost::createInjectedScript(const String& source, ScriptState* scriptState, long id)
-{
- SourceCode sourceCode = makeSource(stringToUString(source));
- JSLock lock(SilenceAssertionsOnly);
- JSDOMGlobalObject* globalObject = static_cast<JSDOMGlobalObject*>(scriptState->lexicalGlobalObject());
- JSValue globalThisValue = scriptState->globalThisValue();
- Completion comp = JSMainThreadExecState::evaluate(scriptState, globalObject->globalScopeChain(), sourceCode, globalThisValue);
- if (comp.complType() != JSC::Normal && comp.complType() != JSC::ReturnValue)
- return ScriptObject();
- JSValue functionValue = comp.value();
- CallData callData;
- CallType callType = getCallData(functionValue, callData);
- if (callType == CallTypeNone)
- return ScriptObject();
-
- MarkedArgumentBuffer args;
- args.append(toJS(scriptState, globalObject, this));
- args.append(globalThisValue);
- args.append(jsNumber(id));
- JSValue result = JSC::call(scriptState, functionValue, callType, callData, globalThisValue, args);
- if (result.isObject())
- return ScriptObject(scriptState, result.getObject());
- return ScriptObject();
-}
-
-void InjectedScriptHost::discardInjectedScript(ScriptState* scriptState)
-{
- JSDOMGlobalObject* globalObject = static_cast<JSDOMGlobalObject*>(scriptState->lexicalGlobalObject());
- globalObject->setInjectedScript(0);
-}
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-JSValue JSInjectedScriptHost::currentCallFrame(ExecState* exec)
-{
- JavaScriptCallFrame* callFrame = ScriptDebugServer::shared().currentCallFrame();
- if (!callFrame || !callFrame->isValid())
- return jsUndefined();
-
- JSLock lock(SilenceAssertionsOnly);
- return toJS(exec, callFrame);
-}
-#endif
-
-JSValue JSInjectedScriptHost::nodeForId(ExecState* exec)
-{
- if (exec->argumentCount() < 1)
- return jsUndefined();
-
- Node* node = impl()->nodeForId(exec->argument(0).toInt32(exec));
- if (!node)
- return jsUndefined();
-
- InspectorController* ic = impl()->inspectorController();
- if (!ic)
- return jsUndefined();
-
- JSLock lock(SilenceAssertionsOnly);
- return toJS(exec, node);
-}
-
-JSValue JSInjectedScriptHost::internalConstructorName(ExecState* exec)
-{
- if (exec->argumentCount() < 1)
- return jsUndefined();
-
- UString result = exec->argument(0).toThisObject(exec)->className();
- return jsString(exec, result);
-}
-
-JSValue JSInjectedScriptHost::pushNodePathToFrontend(ExecState* exec)
-{
- if (exec->argumentCount() < 3)
- return jsUndefined();
-
- Node* node = toNode(exec->argument(0));
- if (!node)
- return jsUndefined();
-
- bool withChildren = exec->argument(1).toBoolean(exec);
- bool selectInUI = exec->argument(2).toBoolean(exec);
- return jsNumber(impl()->pushNodePathToFrontend(node, withChildren, selectInUI));
-}
-
-#if ENABLE(DATABASE)
-JSValue JSInjectedScriptHost::selectDatabase(ExecState* exec)
-{
- if (exec->argumentCount() < 1)
- return jsUndefined();
-
- Database* database = toDatabase(exec->argument(0));
- if (database)
- impl()->selectDatabase(database);
- return jsUndefined();
-}
-#endif
-
-#if ENABLE(DOM_STORAGE)
-JSValue JSInjectedScriptHost::selectDOMStorage(ExecState* exec)
-{
- if (exec->argumentCount() < 1)
- return jsUndefined();
- InspectorController* ic = impl()->inspectorController();
- if (!ic)
- return jsUndefined();
-
- Storage* storage = toStorage(exec->argument(0));
- if (storage)
- impl()->selectDOMStorage(storage);
- return jsUndefined();
-}
-#endif
-
-InjectedScript InjectedScriptHost::injectedScriptFor(ScriptState* scriptState)
-{
- JSLock lock(SilenceAssertionsOnly);
- JSDOMGlobalObject* globalObject = static_cast<JSDOMGlobalObject*>(scriptState->lexicalGlobalObject());
- JSObject* injectedScript = globalObject->injectedScript();
- if (injectedScript)
- return InjectedScript(ScriptObject(scriptState, injectedScript));
-
- if (!canAccessInspectedWindow(scriptState))
- return InjectedScript();
-
- ASSERT(!m_injectedScriptSource.isEmpty());
- pair<long, ScriptObject> injectedScriptObject = injectScript(m_injectedScriptSource, scriptState);
- globalObject->setInjectedScript(injectedScriptObject.second.jsObject());
- InjectedScript result(injectedScriptObject.second);
- m_idToInjectedScript.set(injectedScriptObject.first, result);
- return result;
-}
-
-bool InjectedScriptHost::canAccessInspectedWindow(ScriptState* scriptState)
-{
- JSLock lock(SilenceAssertionsOnly);
- JSDOMWindow* inspectedWindow = toJSDOMWindow(scriptState->lexicalGlobalObject());
- if (!inspectedWindow)
- return false;
- return inspectedWindow->allowsAccessFromNoErrorMessage(scriptState);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INSPECTOR)
diff --git a/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp b/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp
deleted file mode 100644
index ee79a38..0000000
--- a/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
- * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSInspectorFrontendHost.h"
-
-#if ENABLE(INSPECTOR)
-
-#include "ContextMenuItem.h"
-#include "InspectorController.h"
-#include "InspectorFrontendHost.h"
-#include "JSEvent.h"
-#include "MouseEvent.h"
-#include "PlatformString.h"
-#include <runtime/JSArray.h>
-#include <runtime/JSLock.h>
-#include <runtime/JSObject.h>
-#include <wtf/Vector.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSInspectorFrontendHost::platform(ExecState* execState)
-{
-#if PLATFORM(MAC)
- DEFINE_STATIC_LOCAL(const String, platform, ("mac"));
-#elif OS(WINDOWS)
- DEFINE_STATIC_LOCAL(const String, platform, ("windows"));
-#elif OS(LINUX)
- DEFINE_STATIC_LOCAL(const String, platform, ("linux"));
-#elif OS(FREEBSD)
- DEFINE_STATIC_LOCAL(const String, platform, ("freebsd"));
-#else
- DEFINE_STATIC_LOCAL(const String, platform, ("unknown"));
-#endif
- return jsString(execState, platform);
-}
-
-JSValue JSInspectorFrontendHost::port(ExecState* execState)
-{
-#if PLATFORM(QT)
- DEFINE_STATIC_LOCAL(const String, port, ("qt"));
-#elif PLATFORM(GTK)
- DEFINE_STATIC_LOCAL(const String, port, ("gtk"));
-#elif PLATFORM(WX)
- DEFINE_STATIC_LOCAL(const String, port, ("wx"));
-#else
- DEFINE_STATIC_LOCAL(const String, port, ("unknown"));
-#endif
- return jsString(execState, port);
-}
-
-JSValue JSInspectorFrontendHost::showContextMenu(ExecState* exec)
-{
- if (exec->argumentCount() < 2)
- return jsUndefined();
-#if ENABLE(CONTEXT_MENUS)
- Event* event = toEvent(exec->argument(0));
-
- JSArray* array = asArray(exec->argument(1));
- Vector<ContextMenuItem*> items;
-
- for (size_t i = 0; i < array->length(); ++i) {
- JSObject* item = asObject(array->getIndex(i));
- JSValue label = item->get(exec, Identifier(exec, "label"));
- JSValue type = item->get(exec, Identifier(exec, "type"));
- JSValue id = item->get(exec, Identifier(exec, "id"));
- JSValue enabled = item->get(exec, Identifier(exec, "enabled"));
- JSValue checked = item->get(exec, Identifier(exec, "checked"));
- if (!type.isString())
- continue;
-
- String typeString = ustringToString(type.toString(exec));
- if (typeString == "separator") {
- items.append(new ContextMenuItem(SeparatorType,
- ContextMenuItemCustomTagNoAction,
- String()));
- } else {
- ContextMenuAction typedId = static_cast<ContextMenuAction>(ContextMenuItemBaseCustomTag + id.toInt32(exec));
- ContextMenuItem* menuItem = new ContextMenuItem((typeString == "checkbox" ? CheckableActionType : ActionType), typedId, ustringToString(label.toString(exec)));
- if (!enabled.isUndefined())
- menuItem->setEnabled(enabled.toBoolean(exec));
- if (!checked.isUndefined())
- menuItem->setChecked(checked.toBoolean(exec));
- items.append(menuItem);
- }
- }
-
- impl()->showContextMenu(event, items);
-#endif
- return jsUndefined();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INSPECTOR)
diff --git a/WebCore/bindings/js/JSInt16ArrayCustom.cpp b/WebCore/bindings/js/JSInt16ArrayCustom.cpp
deleted file mode 100644
index e08da8a..0000000
--- a/WebCore/bindings/js/JSInt16ArrayCustom.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
-
-#include "JSInt16Array.h"
-
-#include "Int16Array.h"
-#include "JSArrayBufferViewHelper.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSInt16Array::indexSetter(JSC::ExecState* exec, unsigned index, JSC::JSValue value)
-{
- impl()->set(index, static_cast<signed short>(value.toInt32(exec)));
-}
-
-JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, Int16Array* object)
-{
- return getDOMObjectWrapper<JSInt16Array>(exec, globalObject, object);
-}
-
-JSC::JSValue JSInt16Array::set(JSC::ExecState* exec)
-{
- return setWebGLArrayHelper(exec, impl(), toInt16Array);
-}
-
-EncodedJSValue JSC_HOST_CALL JSInt16ArrayConstructor::constructJSInt16Array(ExecState* exec)
-{
- JSInt16ArrayConstructor* jsConstructor = static_cast<JSInt16ArrayConstructor*>(exec->callee());
- RefPtr<Int16Array> array = constructArrayBufferView<Int16Array, short>(exec);
- if (!array.get())
- // Exception has already been thrown.
- return JSValue::encode(JSValue());
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), array.get())));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(3D_CANVAS) || ENABLE(BLOB)
diff --git a/WebCore/bindings/js/JSInt32ArrayCustom.cpp b/WebCore/bindings/js/JSInt32ArrayCustom.cpp
deleted file mode 100644
index 5aa64bb..0000000
--- a/WebCore/bindings/js/JSInt32ArrayCustom.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
-
-#include "JSInt32Array.h"
-
-#include "Int32Array.h"
-#include "JSArrayBufferViewHelper.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSInt32Array::indexSetter(JSC::ExecState* exec, unsigned index, JSC::JSValue value)
-{
- impl()->set(index, static_cast<signed int>(value.toInt32(exec)));
-}
-
-JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, Int32Array* object)
-{
- return getDOMObjectWrapper<JSInt32Array>(exec, globalObject, object);
-}
-
-JSC::JSValue JSInt32Array::set(JSC::ExecState* exec)
-{
- return setWebGLArrayHelper(exec, impl(), toInt32Array);
-}
-
-EncodedJSValue JSC_HOST_CALL JSInt32ArrayConstructor::constructJSInt32Array(ExecState* exec)
-{
- JSInt32ArrayConstructor* jsConstructor = static_cast<JSInt32ArrayConstructor*>(exec->callee());
- RefPtr<Int32Array> array = constructArrayBufferView<Int32Array, int>(exec);
- if (!array.get())
- // Exception has already been thrown.
- return JSValue::encode(JSValue());
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), array.get())));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(3D_CANVAS) || ENABLE(BLOB)
diff --git a/WebCore/bindings/js/JSInt8ArrayCustom.cpp b/WebCore/bindings/js/JSInt8ArrayCustom.cpp
deleted file mode 100644
index b63de54..0000000
--- a/WebCore/bindings/js/JSInt8ArrayCustom.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
-
-#include "JSInt8Array.h"
-
-#include "Int8Array.h"
-#include "JSArrayBufferViewHelper.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSInt8Array::indexSetter(JSC::ExecState* exec, unsigned index, JSC::JSValue value)
-{
- impl()->set(index, static_cast<signed char>(value.toInt32(exec)));
-}
-
-JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, Int8Array* object)
-{
- return getDOMObjectWrapper<JSInt8Array>(exec, globalObject, object);
-}
-
-JSC::JSValue JSInt8Array::set(JSC::ExecState* exec)
-{
- return setWebGLArrayHelper(exec, impl(), toInt8Array);
-}
-
-EncodedJSValue JSC_HOST_CALL JSInt8ArrayConstructor::constructJSInt8Array(ExecState* exec)
-{
- JSInt8ArrayConstructor* jsConstructor = static_cast<JSInt8ArrayConstructor*>(exec->callee());
- RefPtr<Int8Array> array = constructArrayBufferView<Int8Array, signed char>(exec);
- if (!array.get())
- // Exception has already been thrown.
- return JSValue::encode(JSValue());
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), array.get())));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(3D_CANVAS) || ENABLE(BLOB)
diff --git a/WebCore/bindings/js/JSJavaScriptAudioNodeCustom.cpp b/WebCore/bindings/js/JSJavaScriptAudioNodeCustom.cpp
deleted file mode 100644
index 9acabf3..0000000
--- a/WebCore/bindings/js/JSJavaScriptAudioNodeCustom.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2010, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(WEB_AUDIO)
-
-#include "JavaScriptAudioNode.h"
-
-#include "JSJavaScriptAudioNode.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSJavaScriptAudioNode::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
- static_cast<JavaScriptAudioNode*>(impl())->markJSEventListeners(markStack);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WEB_AUDIO)
diff --git a/WebCore/bindings/js/JSJavaScriptCallFrameCustom.cpp b/WebCore/bindings/js/JSJavaScriptCallFrameCustom.cpp
deleted file mode 100644
index 0f47b7b..0000000
--- a/WebCore/bindings/js/JSJavaScriptCallFrameCustom.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSJavaScriptCallFrame.h"
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-
-#include "JavaScriptCallFrame.h"
-#include <runtime/ArrayPrototype.h>
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSJavaScriptCallFrame::evaluate(ExecState* exec)
-{
- JSValue exception;
- JSValue result = impl()->evaluate(exec->argument(0).toString(exec), exception);
-
- if (exception)
- throwError(exec, exception);
-
- return result;
-}
-
-JSValue JSJavaScriptCallFrame::thisObject(ExecState*) const
-{
- return impl()->thisObject() ? impl()->thisObject() : jsNull();
-}
-
-JSValue JSJavaScriptCallFrame::type(ExecState* exec) const
-{
- switch (impl()->type()) {
- case DebuggerCallFrame::FunctionType:
- return jsString(exec, UString("function"));
- case DebuggerCallFrame::ProgramType:
- return jsString(exec, UString("program"));
- }
-
- ASSERT_NOT_REACHED();
- return jsNull();
-}
-
-JSValue JSJavaScriptCallFrame::scopeChain(ExecState* exec) const
-{
- if (!impl()->scopeChain())
- return jsNull();
-
- const ScopeChainNode* scopeChain = impl()->scopeChain();
- ScopeChainIterator iter = scopeChain->begin();
- ScopeChainIterator end = scopeChain->end();
-
- // we must always have something in the scope chain
- ASSERT(iter != end);
-
- MarkedArgumentBuffer list;
- do {
- list.append(*iter);
- ++iter;
- } while (iter != end);
-
- return constructArray(exec, list);
-}
-
-JSValue JSJavaScriptCallFrame::scopeType(ExecState* exec)
-{
- if (!impl()->scopeChain())
- return jsUndefined();
-
- if (!exec->argument(0).isInt32())
- return jsUndefined();
- int index = exec->argument(0).asInt32();
-
- const ScopeChainNode* scopeChain = impl()->scopeChain();
- ScopeChainIterator end = scopeChain->end();
-
- bool foundLocalScope = false;
- for (ScopeChainIterator iter = scopeChain->begin(); iter != end; ++iter) {
- JSObject* scope = *iter;
- if (scope->isActivationObject()) {
- if (!foundLocalScope) {
- // First activation object is local scope, each successive activation object is closure.
- if (!index)
- return jsJavaScriptCallFrameLOCAL_SCOPE(exec, JSValue(), Identifier());
- foundLocalScope = true;
- } else if (!index)
- return jsJavaScriptCallFrameCLOSURE_SCOPE(exec, JSValue(), Identifier());
- }
-
- if (!index) {
- // Last in the chain is global scope.
- if (++iter == end)
- return jsJavaScriptCallFrameGLOBAL_SCOPE(exec, JSValue(), Identifier());
- return jsJavaScriptCallFrameWITH_SCOPE(exec, JSValue(), Identifier());
- }
-
- --index;
- }
- return jsUndefined();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(JAVASCRIPT_DEBUGGER)
diff --git a/WebCore/bindings/js/JSLazyEventListener.cpp b/WebCore/bindings/js/JSLazyEventListener.cpp
deleted file mode 100644
index 1aad7df..0000000
--- a/WebCore/bindings/js/JSLazyEventListener.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2001 Peter Kelly (pmk@post.com)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All Rights Reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "JSLazyEventListener.h"
-
-#include "Frame.h"
-#include "JSNode.h"
-#include <runtime/FunctionConstructor.h>
-#include <runtime/JSFunction.h>
-#include <runtime/JSLock.h>
-#include <wtf/RefCountedLeakCounter.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-#ifndef NDEBUG
-static WTF::RefCountedLeakCounter eventListenerCounter("JSLazyEventListener");
-#endif
-
-JSLazyEventListener::JSLazyEventListener(const String& functionName, const String& eventParameterName, const String& code, Node* node, const String& sourceURL, int lineNumber, JSObject* wrapper, DOMWrapperWorld* isolatedWorld)
- : JSEventListener(0, wrapper, true, isolatedWorld)
- , m_functionName(functionName)
- , m_eventParameterName(eventParameterName)
- , m_code(code)
- , m_sourceURL(sourceURL)
- , m_lineNumber(lineNumber)
- , m_originalNode(node)
-{
- // We don't retain the original node because we assume it
- // will stay alive as long as this handler object is around
- // and we need to avoid a reference cycle. If JS transfers
- // this handler to another node, initializeJSFunction will
- // be called and then originalNode is no longer needed.
-
- // A JSLazyEventListener can be created with a line number of zero when it is created with
- // a setAttribute call from JavaScript, so make the line number 1 in that case.
- if (m_lineNumber == 0)
- m_lineNumber = 1;
-
-#ifndef NDEBUG
- eventListenerCounter.increment();
-#endif
-}
-
-JSLazyEventListener::~JSLazyEventListener()
-{
-#ifndef NDEBUG
- eventListenerCounter.decrement();
-#endif
-}
-
-JSObject* JSLazyEventListener::initializeJSFunction(ScriptExecutionContext* executionContext) const
-{
- ASSERT(executionContext);
- ASSERT(executionContext->isDocument());
- if (!executionContext)
- return 0;
-
- Frame* frame = static_cast<Document*>(executionContext)->frame();
- if (!frame)
- return 0;
-
- ScriptController* scriptController = frame->script();
- if (!scriptController->canExecuteScripts(AboutToExecuteScript))
- return 0;
-
- JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(executionContext, isolatedWorld());
- if (!globalObject)
- return 0;
-
- if (executionContext->isDocument()) {
- JSDOMWindow* window = static_cast<JSDOMWindow*>(globalObject);
- Frame* frame = window->impl()->frame();
- if (!frame)
- return 0;
- // FIXME: Is this check needed for non-Document contexts?
- ScriptController* script = frame->script();
- if (!script->canExecuteScripts(AboutToExecuteScript) || script->isPaused())
- return 0;
- }
-
- ExecState* exec = globalObject->globalExec();
-
- MarkedArgumentBuffer args;
- args.append(jsNontrivialString(exec, stringToUString(m_eventParameterName)));
- args.append(jsString(exec, m_code));
-
- JSObject* jsFunction = constructFunction(exec, args, Identifier(exec, stringToUString(m_functionName)), stringToUString(m_sourceURL), m_lineNumber); // FIXME: is globalExec ok?
- if (exec->hadException()) {
- exec->clearException();
- return 0;
- }
-
- JSFunction* listenerAsFunction = static_cast<JSFunction*>(jsFunction);
- if (m_originalNode) {
- if (!wrapper()) {
- // Ensure that 'node' has a JavaScript wrapper to mark the event listener we're creating.
- JSLock lock(SilenceAssertionsOnly);
- // FIXME: Should pass the global object associated with the node
- setWrapper(asObject(toJS(globalObject->globalExec(), globalObject, m_originalNode)));
- }
-
- // Add the event's home element to the scope
- // (and the document, and the form - see JSHTMLElement::eventHandlerScope)
- ScopeChain scope = listenerAsFunction->scope();
- static_cast<JSNode*>(wrapper())->pushEventHandlerScope(exec, scope);
- listenerAsFunction->setScope(scope);
- }
-
- // Since we only parse once, there's no need to keep data used for parsing around anymore.
- m_functionName = String();
- m_code = String();
- m_eventParameterName = String();
- m_sourceURL = String();
- return jsFunction;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSLazyEventListener.h b/WebCore/bindings/js/JSLazyEventListener.h
deleted file mode 100644
index 1b00b75..0000000
--- a/WebCore/bindings/js/JSLazyEventListener.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2001 Peter Kelly (pmk@post.com)
- * Copyright (C) 2003, 2008, 2009 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef JSLazyEventListener_h
-#define JSLazyEventListener_h
-
-#include "JSEventListener.h"
-#include "PlatformString.h"
-
-namespace WebCore {
-
- class Node;
-
- class JSLazyEventListener : public JSEventListener {
- public:
- static PassRefPtr<JSLazyEventListener> create(const String& functionName, const String& eventParameterName, const String& code, Node* node, const String& sourceURL, int lineNumber, JSC::JSObject* wrapper, DOMWrapperWorld* isolatedWorld)
- {
- return adoptRef(new JSLazyEventListener(functionName, eventParameterName, code, node, sourceURL, lineNumber, wrapper, isolatedWorld));
- }
- virtual ~JSLazyEventListener();
-
- private:
- JSLazyEventListener(const String& functionName, const String& eventParameterName, const String& code, Node*, const String& sourceURL, int lineNumber, JSC::JSObject* wrapper, DOMWrapperWorld* isolatedWorld);
-
- virtual JSC::JSObject* initializeJSFunction(ScriptExecutionContext*) const;
- virtual bool wasCreatedFromMarkup() const { return true; }
-
- mutable String m_functionName;
- mutable String m_eventParameterName;
- mutable String m_code;
- mutable String m_sourceURL;
- int m_lineNumber;
- Node* m_originalNode;
- };
-
-} // namespace WebCore
-
-#endif // JSEventListener_h
diff --git a/WebCore/bindings/js/JSLocationCustom.cpp b/WebCore/bindings/js/JSLocationCustom.cpp
deleted file mode 100644
index b00249f..0000000
--- a/WebCore/bindings/js/JSLocationCustom.cpp
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- * Copyright (C) 2000 Harri Porten (porten@kde.org)
- * Copyright (C) 2006 Jon Shier (jshier@iastate.edu)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reseved.
- * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
- * USA
- */
-
-#include "config.h"
-#include "JSLocationCustom.h"
-
-#include "DOMWindow.h"
-#include "ExceptionCode.h"
-#include "Frame.h"
-#include "FrameLoader.h"
-#include "JSBinding.h"
-#include "JSBindingState.h"
-#include "JSDOMBinding.h"
-#include "JSDOMWindowCustom.h"
-#include "KURL.h"
-#include "Location.h"
-#include "ScriptController.h"
-#include <runtime/JSFunction.h>
-#include <runtime/PrototypeFunction.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-static JSValue nonCachingStaticReplaceFunctionGetter(ExecState* exec, JSValue, const Identifier& propertyName)
-{
- return new (exec) NativeFunctionWrapper(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->prototypeFunctionStructure(), 1, propertyName, jsLocationPrototypeFunctionReplace);
-}
-
-static JSValue nonCachingStaticReloadFunctionGetter(ExecState* exec, JSValue, const Identifier& propertyName)
-{
- return new (exec) NativeFunctionWrapper(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->prototypeFunctionStructure(), 0, propertyName, jsLocationPrototypeFunctionReload);
-}
-
-static JSValue nonCachingStaticAssignFunctionGetter(ExecState* exec, JSValue, const Identifier& propertyName)
-{
- return new (exec) NativeFunctionWrapper(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->prototypeFunctionStructure(), 1, propertyName, jsLocationPrototypeFunctionAssign);
-}
-
-bool JSLocation::getOwnPropertySlotDelegate(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
-{
- Frame* frame = impl()->frame();
- if (!frame) {
- slot.setUndefined();
- return true;
- }
-
- // When accessing Location cross-domain, functions are always the native built-in ones.
- // See JSDOMWindow::getOwnPropertySlotDelegate for additional details.
-
- // Our custom code is only needed to implement the Window cross-domain scheme, so if access is
- // allowed, return false so the normal lookup will take place.
- String message;
- if (allowsAccessFromFrame(exec, frame, message))
- return false;
-
- // Check for the few functions that we allow, even when called cross-domain.
- const HashEntry* entry = JSLocationPrototype::s_info.propHashTable(exec)->entry(exec, propertyName);
- if (entry && (entry->attributes() & Function)) {
- if (entry->function() == jsLocationPrototypeFunctionReplace) {
- slot.setCustom(this, nonCachingStaticReplaceFunctionGetter);
- return true;
- } else if (entry->function() == jsLocationPrototypeFunctionReload) {
- slot.setCustom(this, nonCachingStaticReloadFunctionGetter);
- return true;
- } else if (entry->function() == jsLocationPrototypeFunctionAssign) {
- slot.setCustom(this, nonCachingStaticAssignFunctionGetter);
- return true;
- }
- }
-
- // FIXME: Other implementers of the Window cross-domain scheme (Window, History) allow toString,
- // but for now we have decided not to, partly because it seems silly to return "[Object Location]" in
- // such cases when normally the string form of Location would be the URL.
-
- printErrorMessageForFrame(frame, message);
- slot.setUndefined();
- return true;
-}
-
-bool JSLocation::getOwnPropertyDescriptorDelegate(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
-{
- Frame* frame = impl()->frame();
- if (!frame) {
- descriptor.setUndefined();
- return true;
- }
-
- // throw out all cross domain access
- if (!allowsAccessFromFrame(exec, frame))
- return true;
-
- // Check for the few functions that we allow, even when called cross-domain.
- const HashEntry* entry = JSLocationPrototype::s_info.propHashTable(exec)->entry(exec, propertyName);
- PropertySlot slot;
- if (entry && (entry->attributes() & Function)) {
- if (entry->function() == jsLocationPrototypeFunctionReplace) {
- slot.setCustom(this, nonCachingStaticReplaceFunctionGetter);
- descriptor.setDescriptor(slot.getValue(exec, propertyName), entry->attributes());
- return true;
- } else if (entry->function() == jsLocationPrototypeFunctionReload) {
- slot.setCustom(this, nonCachingStaticReloadFunctionGetter);
- descriptor.setDescriptor(slot.getValue(exec, propertyName), entry->attributes());
- return true;
- } else if (entry->function() == jsLocationPrototypeFunctionAssign) {
- slot.setCustom(this, nonCachingStaticAssignFunctionGetter);
- descriptor.setDescriptor(slot.getValue(exec, propertyName), entry->attributes());
- return true;
- }
- }
-
- // FIXME: Other implementers of the Window cross-domain scheme (Window, History) allow toString,
- // but for now we have decided not to, partly because it seems silly to return "[Object Location]" in
- // such cases when normally the string form of Location would be the URL.
-
- descriptor.setUndefined();
- return true;
-}
-
-bool JSLocation::putDelegate(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
-{
- Frame* frame = impl()->frame();
- if (!frame)
- return true;
-
- if (propertyName == exec->propertyNames().toString || propertyName == exec->propertyNames().valueOf)
- return true;
-
- bool sameDomainAccess = allowsAccessFromFrame(exec, frame);
-
- const HashEntry* entry = JSLocation::s_info.propHashTable(exec)->entry(exec, propertyName);
- if (!entry) {
- if (sameDomainAccess)
- JSObject::put(exec, propertyName, value, slot);
- return true;
- }
-
- // Cross-domain access to the location is allowed when assigning the whole location,
- // but not when assigning the individual pieces, since that might inadvertently
- // disclose other parts of the original location.
- if (entry->propertyPutter() != setJSLocationHref && !sameDomainAccess)
- return true;
-
- return false;
-}
-
-bool JSLocation::deleteProperty(ExecState* exec, const Identifier& propertyName)
-{
- // Only allow deleting by frames in the same origin.
- if (!allowsAccessFromFrame(exec, impl()->frame()))
- return false;
- return Base::deleteProperty(exec, propertyName);
-}
-
-void JSLocation::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode)
-{
- // Only allow the location object to enumerated by frames in the same origin.
- if (!allowsAccessFromFrame(exec, impl()->frame()))
- return;
- Base::getOwnPropertyNames(exec, propertyNames, mode);
-}
-
-void JSLocation::defineGetter(ExecState* exec, const Identifier& propertyName, JSObject* getterFunction, unsigned attributes)
-{
- if (propertyName == exec->propertyNames().toString || propertyName == exec->propertyNames().valueOf)
- return;
- Base::defineGetter(exec, propertyName, getterFunction, attributes);
-}
-
-static void navigateIfAllowed(ExecState* exec, Frame* frame, const KURL& url, bool lockHistory, bool lockBackForwardList)
-{
- JSBindingState state(exec);
- JSBinding::Frame::navigateIfAllowed(&state, frame, url, lockHistory, lockBackForwardList);
-}
-
-void JSLocation::setHref(ExecState* exec, JSValue value)
-{
- Frame* frame = impl()->frame();
- ASSERT(frame);
-
- KURL url = completeURL(exec, ustringToString(value.toString(exec)));
- if (url.isNull())
- return;
-
- if (!shouldAllowNavigation(exec, frame))
- return;
-
- navigateIfAllowed(exec, frame, url, !frame->script()->anyPageIsProcessingUserGesture(), false);
-}
-
-void JSLocation::setProtocol(ExecState* exec, JSValue value)
-{
- Frame* frame = impl()->frame();
- ASSERT(frame);
-
- KURL url = frame->loader()->url();
- if (!url.setProtocol(ustringToString(value.toString(exec)))) {
- setDOMException(exec, SYNTAX_ERR);
- return;
- }
-
- navigateIfAllowed(exec, frame, url, !frame->script()->anyPageIsProcessingUserGesture(), false);
-}
-
-void JSLocation::setHost(ExecState* exec, JSValue value)
-{
- Frame* frame = impl()->frame();
- ASSERT(frame);
-
- KURL url = frame->loader()->url();
- url.setHostAndPort(ustringToString(value.toString(exec)));
-
- navigateIfAllowed(exec, frame, url, !frame->script()->anyPageIsProcessingUserGesture(), false);
-}
-
-void JSLocation::setHostname(ExecState* exec, JSValue value)
-{
- Frame* frame = impl()->frame();
- ASSERT(frame);
-
- KURL url = frame->loader()->url();
- url.setHost(ustringToString(value.toString(exec)));
-
- navigateIfAllowed(exec, frame, url, !frame->script()->anyPageIsProcessingUserGesture(), false);
-}
-
-void JSLocation::setPort(ExecState* exec, JSValue value)
-{
- Frame* frame = impl()->frame();
- ASSERT(frame);
-
- KURL url = frame->loader()->url();
- // FIXME: Could make this a little less ugly if String provided a toUnsignedShort function.
- const UString& portString = value.toString(exec);
- int port = charactersToInt(portString.characters(), portString.length());
- if (port < 0 || port > 0xFFFF)
- url.removePort();
- else
- url.setPort(port);
-
- navigateIfAllowed(exec, frame, url, !frame->script()->anyPageIsProcessingUserGesture(), false);
-}
-
-void JSLocation::setPathname(ExecState* exec, JSValue value)
-{
- Frame* frame = impl()->frame();
- ASSERT(frame);
-
- KURL url = frame->loader()->url();
- url.setPath(ustringToString(value.toString(exec)));
-
- navigateIfAllowed(exec, frame, url, !frame->script()->anyPageIsProcessingUserGesture(), false);
-}
-
-void JSLocation::setSearch(ExecState* exec, JSValue value)
-{
- Frame* frame = impl()->frame();
- ASSERT(frame);
-
- KURL url = frame->loader()->url();
- url.setQuery(ustringToString(value.toString(exec)));
-
- navigateIfAllowed(exec, frame, url, !frame->script()->anyPageIsProcessingUserGesture(), false);
-}
-
-void JSLocation::setHash(ExecState* exec, JSValue value)
-{
- Frame* frame = impl()->frame();
- ASSERT(frame);
-
- KURL url = frame->loader()->url();
- String oldFragmentIdentifier = url.fragmentIdentifier();
- String str = ustringToString(value.toString(exec));
- if (str.startsWith("#"))
- str = str.substring(1);
- if (equalIgnoringNullity(oldFragmentIdentifier, str))
- return;
- url.setFragmentIdentifier(str);
-
- navigateIfAllowed(exec, frame, url, !frame->script()->anyPageIsProcessingUserGesture(), false);
-}
-
-JSValue JSLocation::replace(ExecState* exec)
-{
- JSBindingState state(exec);
- JSBinding::Location::replace(&state, impl(), ustringToString(exec->argument(0).toString(exec)));
- return jsUndefined();
-}
-
-JSValue JSLocation::reload(ExecState* exec)
-{
- Frame* frame = impl()->frame();
- if (!frame || !allowsAccessFromFrame(exec, frame))
- return jsUndefined();
-
- if (!protocolIsJavaScript(frame->loader()->url()))
- frame->navigationScheduler()->scheduleRefresh();
- return jsUndefined();
-}
-
-JSValue JSLocation::assign(ExecState* exec)
-{
- Frame* frame = impl()->frame();
- if (!frame)
- return jsUndefined();
-
- KURL url = completeURL(exec, ustringToString(exec->argument(0).toString(exec)));
- if (url.isNull())
- return jsUndefined();
-
- if (!shouldAllowNavigation(exec, frame))
- return jsUndefined();
-
- // We want a new history item if this JS was called via a user gesture
- navigateIfAllowed(exec, frame, url, !frame->script()->anyPageIsProcessingUserGesture(), false);
- return jsUndefined();
-}
-
-JSValue JSLocation::toString(ExecState* exec)
-{
- Frame* frame = impl()->frame();
- if (!frame || !allowsAccessFromFrame(exec, frame))
- return jsUndefined();
-
- return jsString(exec, impl()->toString());
-}
-
-bool JSLocationPrototype::putDelegate(ExecState* exec, const Identifier& propertyName, JSValue, PutPropertySlot&)
-{
- return (propertyName == exec->propertyNames().toString || propertyName == exec->propertyNames().valueOf);
-}
-
-void JSLocationPrototype::defineGetter(ExecState* exec, const Identifier& propertyName, JSObject* getterFunction, unsigned attributes)
-{
- if (propertyName == exec->propertyNames().toString || propertyName == exec->propertyNames().valueOf)
- return;
- Base::defineGetter(exec, propertyName, getterFunction, attributes);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSLocationCustom.h b/WebCore/bindings/js/JSLocationCustom.h
deleted file mode 100644
index 127871e..0000000
--- a/WebCore/bindings/js/JSLocationCustom.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSLocationCustom_h
-#define JSLocationCustom_h
-
-#include "JSLocation.h"
-
-#endif // JSLocationCustom_h
-
-
diff --git a/WebCore/bindings/js/JSMainThreadExecState.cpp b/WebCore/bindings/js/JSMainThreadExecState.cpp
deleted file mode 100644
index d679a58..0000000
--- a/WebCore/bindings/js/JSMainThreadExecState.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSMainThreadExecState.h"
-
-namespace WebCore {
-
-JSC::ExecState* JSMainThreadExecState::s_mainThreadState = 0;
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSMainThreadExecState.h b/WebCore/bindings/js/JSMainThreadExecState.h
deleted file mode 100644
index 8193d7c..0000000
--- a/WebCore/bindings/js/JSMainThreadExecState.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSMainThreadExecState_h
-#define JSMainThreadExecState_h
-
-#include <JSDOMBinding.h>
-#ifndef NDEBUG
-#include <wtf/MainThread.h>
-#endif
-#include <wtf/Noncopyable.h>
-
-namespace WebCore {
-
-class JSMainThreadExecState : public Noncopyable {
-public:
- static JSC::ExecState* currentState()
- {
- ASSERT(WTF::isMainThread());
- return s_mainThreadState;
- };
-
- static JSC::JSValue call(JSC::ExecState* exec, JSC::JSValue functionObject, JSC::CallType callType, const JSC::CallData& callData, JSC::JSValue thisValue, const JSC::ArgList& args)
- {
- JSMainThreadExecState currentState(exec);
- return JSC::call(exec, functionObject, callType, callData, thisValue, args);
- };
-
- static JSC::Completion evaluate(JSC::ExecState* exec, JSC::ScopeChain& chain, const JSC::SourceCode& source, JSC::JSValue thisValue)
- {
- JSMainThreadExecState currentState(exec);
- return JSC::evaluate(exec, chain, source, thisValue);
- };
-
-protected:
- explicit JSMainThreadExecState(JSC::ExecState* exec)
- : m_previousState(s_mainThreadState)
- {
- ASSERT(WTF::isMainThread());
- s_mainThreadState = exec;
- };
-
- ~JSMainThreadExecState()
- {
- ASSERT(WTF::isMainThread());
- s_mainThreadState = m_previousState;
- }
-
-private:
- static JSC::ExecState* s_mainThreadState;
- JSC::ExecState* m_previousState;
-};
-
-// Null state prevents origin security checks.
-class JSMainThreadNullState : private JSMainThreadExecState {
-public:
- explicit JSMainThreadNullState() : JSMainThreadExecState(0) {};
-};
-
-} // namespace WebCore
-
-#endif // JSMainThreadExecState_h
diff --git a/WebCore/bindings/js/JSMessageChannelCustom.cpp b/WebCore/bindings/js/JSMessageChannelCustom.cpp
deleted file mode 100644
index c2f5779..0000000
--- a/WebCore/bindings/js/JSMessageChannelCustom.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSMessageChannel.h"
-
-#include "MessageChannel.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSMessageChannel::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (MessagePort* port = m_impl->port1())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), port);
-
- if (MessagePort* port = m_impl->port2())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), port);
-}
-
-EncodedJSValue JSC_HOST_CALL JSMessageChannelConstructor::constructJSMessageChannel(ExecState* exec)
-{
- JSMessageChannelConstructor* jsConstructor = static_cast<JSMessageChannelConstructor*>(exec->callee());
- ScriptExecutionContext* context = jsConstructor->scriptExecutionContext();
- if (!context)
- return throwVMError(exec, createReferenceError(exec, "MessageChannel constructor associated document is unavailable"));
-
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), MessageChannel::create(context))));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSMessageEventCustom.cpp b/WebCore/bindings/js/JSMessageEventCustom.cpp
deleted file mode 100644
index b3dabae..0000000
--- a/WebCore/bindings/js/JSMessageEventCustom.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSMessageEvent.h"
-
-#include "JSDOMBinding.h"
-#include "JSDOMWindow.h"
-#include "JSEventTarget.h"
-#include "JSMessagePortCustom.h"
-#include "MessageEvent.h"
-#include <runtime/JSArray.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSMessageEvent::ports(ExecState* exec) const
-{
- MessagePortArray* ports = static_cast<MessageEvent*>(impl())->ports();
- if (!ports || ports->isEmpty())
- return jsNull();
-
- MarkedArgumentBuffer list;
- for (size_t i = 0; i < ports->size(); i++)
- list.append(toJS(exec, globalObject(), (*ports)[i].get()));
- return constructArray(exec, list);
-}
-
-JSC::JSValue JSMessageEvent::initMessageEvent(JSC::ExecState* exec)
-{
- const UString& typeArg = exec->argument(0).toString(exec);
- bool canBubbleArg = exec->argument(1).toBoolean(exec);
- bool cancelableArg = exec->argument(2).toBoolean(exec);
- PassRefPtr<SerializedScriptValue> dataArg = SerializedScriptValue::create(exec, exec->argument(3));
- const UString& originArg = exec->argument(4).toString(exec);
- const UString& lastEventIdArg = exec->argument(5).toString(exec);
- DOMWindow* sourceArg = toDOMWindow(exec->argument(6));
- OwnPtr<MessagePortArray> messagePorts;
- if (!exec->argument(7).isUndefinedOrNull()) {
- messagePorts = new MessagePortArray();
- fillMessagePortArray(exec, exec->argument(7), *messagePorts);
- if (exec->hadException())
- return jsUndefined();
- }
-
- MessageEvent* event = static_cast<MessageEvent*>(this->impl());
- event->initMessageEvent(ustringToAtomicString(typeArg), canBubbleArg, cancelableArg, dataArg, ustringToString(originArg), ustringToString(lastEventIdArg), sourceArg, messagePorts.release());
- return jsUndefined();
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSMessagePortCustom.cpp b/WebCore/bindings/js/JSMessagePortCustom.cpp
deleted file mode 100644
index 06b4178..0000000
--- a/WebCore/bindings/js/JSMessagePortCustom.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSMessagePort.h"
-
-#include "Event.h"
-#include "ExceptionCode.h"
-#include "Frame.h"
-#include "JSDOMGlobalObject.h"
-#include "JSEvent.h"
-#include "JSEventListener.h"
-#include "JSMessagePortCustom.h"
-#include "MessagePort.h"
-#include <runtime/Error.h>
-#include <wtf/text/AtomicString.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSMessagePort::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- // If we have a locally entangled port, we can directly mark it as reachable. Ports that are remotely entangled are marked in-use by markActiveObjectsForContext().
- if (MessagePort* entangledPort = m_impl->locallyEntangledPort())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), entangledPort);
-
- m_impl->markJSEventListeners(markStack);
-}
-
-JSC::JSValue JSMessagePort::postMessage(JSC::ExecState* exec)
-{
- return handlePostMessage(exec, impl());
-}
-
-void fillMessagePortArray(JSC::ExecState* exec, JSC::JSValue value, MessagePortArray& portArray)
-{
- // Convert from the passed-in JS array-like object to a MessagePortArray.
- // Also validates the elements per sections 4.1.13 and 4.1.15 of the WebIDL spec and section 8.3.3 of the HTML5 spec.
- if (value.isUndefinedOrNull()) {
- portArray.resize(0);
- return;
- }
-
- // Validation of sequence types, per WebIDL spec 4.1.13.
- unsigned length;
- JSObject* object = toJSSequence(exec, value, length);
- if (exec->hadException())
- return;
-
- portArray.resize(length);
- for (unsigned i = 0 ; i < length; ++i) {
- JSValue value = object->get(exec, i);
- if (exec->hadException())
- return;
- // Validation of non-null objects, per HTML5 spec 8.3.3.
- if (value.isUndefinedOrNull()) {
- setDOMException(exec, INVALID_STATE_ERR);
- return;
- }
-
- // Validation of Objects implementing an interface, per WebIDL spec 4.1.15.
- RefPtr<MessagePort> port = toMessagePort(value);
- if (!port) {
- throwTypeError(exec);
- return;
- }
- portArray[i] = port.release();
- }
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSMessagePortCustom.h b/WebCore/bindings/js/JSMessagePortCustom.h
deleted file mode 100644
index 8396ae1..0000000
--- a/WebCore/bindings/js/JSMessagePortCustom.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSMessagePortCustom_h
-#define JSMessagePortCustom_h
-
-#include "MessagePort.h"
-#include <runtime/JSValue.h>
-#include <wtf/Forward.h>
-
-namespace WebCore {
-
- typedef int ExceptionCode;
-
- // Helper function which pulls the values out of a JS sequence and into a MessagePortArray.
- // Also validates the elements per sections 4.1.13 and 4.1.15 of the WebIDL spec and section 8.3.3 of the HTML5 spec.
- // May generate an exception via the passed ExecState.
- void fillMessagePortArray(JSC::ExecState*, JSC::JSValue, MessagePortArray&);
-
- // Helper function to convert from JS postMessage arguments to WebCore postMessage arguments.
- template <typename T>
- inline JSC::JSValue handlePostMessage(JSC::ExecState* exec, T* impl)
- {
- PassRefPtr<SerializedScriptValue> message = SerializedScriptValue::create(exec, exec->argument(0));
- MessagePortArray portArray;
- fillMessagePortArray(exec, exec->argument(1), portArray);
- if (exec->hadException())
- return JSC::jsUndefined();
-
- ExceptionCode ec = 0;
- impl->postMessage(message, &portArray, ec);
- setDOMException(exec, ec);
- return JSC::jsUndefined();
- }
-
-}
-#endif // JSMessagePortCustom_h
diff --git a/WebCore/bindings/js/JSNamedNodeMapCustom.cpp b/WebCore/bindings/js/JSNamedNodeMapCustom.cpp
deleted file mode 100644
index 8df9304..0000000
--- a/WebCore/bindings/js/JSNamedNodeMapCustom.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSNamedNodeMap.h"
-
-#include "JSNode.h"
-
-#include "Element.h"
-#include "NamedNodeMap.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-bool JSNamedNodeMap::canGetItemsForName(ExecState*, NamedNodeMap* impl, const Identifier& propertyName)
-{
- return impl->getNamedItem(identifierToString(propertyName));
-}
-
-JSValue JSNamedNodeMap::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSNamedNodeMap* thisObj = static_cast<JSNamedNodeMap*>(asObject(slotBase));
- return toJS(exec, thisObj->impl()->getNamedItem(identifierToString(propertyName)));
-}
-
-void JSNamedNodeMap::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- // Mark the element so that this will work to access the attribute even if the last
- // other reference goes away.
- if (Element* element = impl()->element())
- markDOMNodeWrapper(markStack, element->document(), element);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSNavigatorCustom.cpp b/WebCore/bindings/js/JSNavigatorCustom.cpp
deleted file mode 100644
index a190b60..0000000
--- a/WebCore/bindings/js/JSNavigatorCustom.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2000 Harri Porten (porten@kde.org)
- * Copyright (c) 2000 Daniel Molkentin (molkentin@kde.org)
- * Copyright (c) 2000 Stefan Schimanski (schimmi@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All Rights Reserved.
- * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "JSNavigator.h"
-
-#include "ExceptionCode.h"
-#include "Navigator.h"
-#include <runtime/InternalFunction.h>
-
-#if PLATFORM(ANDROID)
-#include "JSCustomApplicationInstalledCallback.h"
-#endif
-
-namespace WebCore {
-
-using namespace JSC;
-
-void JSNavigator::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- JSGlobalData& globalData = *Heap::heap(this)->globalData();
-
- markDOMObjectWrapper(markStack, globalData, impl()->optionalGeolocation());
-}
-
-#if PLATFORM(ANDROID) && ENABLE(APPLICATION_INSTALLED)
-
-JSC::JSValue WebCore::JSNavigator::isApplicationInstalled(JSC::ExecState* exec)
-{
- if (exec->argumentCount() < 2) {
- setDOMException(exec, SYNTAX_ERR);
- return jsUndefined();
- }
-
- if (!exec->argument(1).inherits(&InternalFunction::info)) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- String appName = ustringToString(exec->argument(0).toString(exec));
-
- JSObject* object;
- if (!(object = exec->argument(1).getObject())) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- RefPtr<ApplicationInstalledCallback> callback(JSCustomApplicationInstalledCallback::create(
- object, static_cast<JSDOMGlobalObject*>(exec->dynamicGlobalObject())));
-
- if (!m_impl->isApplicationInstalled(appName, callback.release()))
- setDOMException(exec, INVALID_STATE_ERR);
- return jsUndefined();
-}
-
-#endif
-
-}
diff --git a/WebCore/bindings/js/JSNodeCustom.cpp b/WebCore/bindings/js/JSNodeCustom.cpp
deleted file mode 100644
index a0963b8..0000000
--- a/WebCore/bindings/js/JSNodeCustom.cpp
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Copyright (C) 2007, 2009, 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSNode.h"
-
-#include "Attr.h"
-#include "CDATASection.h"
-#include "Comment.h"
-#include "Document.h"
-#include "DocumentFragment.h"
-#include "DocumentType.h"
-#include "Entity.h"
-#include "EntityReference.h"
-#include "ExceptionCode.h"
-#include "HTMLElement.h"
-#include "JSAttr.h"
-#include "JSCDATASection.h"
-#include "JSComment.h"
-#include "JSDOMBinding.h"
-#include "JSDocument.h"
-#include "JSDocumentFragment.h"
-#include "JSDocumentType.h"
-#include "JSEntity.h"
-#include "JSEntityReference.h"
-#include "JSEventListener.h"
-#include "JSHTMLElement.h"
-#include "JSHTMLElementWrapperFactory.h"
-#include "JSNotation.h"
-#include "JSProcessingInstruction.h"
-#include "JSText.h"
-#include "Node.h"
-#include "Notation.h"
-#include "ProcessingInstruction.h"
-#include "RegisteredEventListener.h"
-#include "Text.h"
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefPtr.h>
-
-#if ENABLE(SVG)
-#include "JSSVGElementWrapperFactory.h"
-#include "SVGElement.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSNode::insertBefore(ExecState* exec)
-{
- Node* imp = static_cast<Node*>(impl());
- ExceptionCode ec = 0;
- bool ok = imp->insertBefore(toNode(exec->argument(0)), toNode(exec->argument(1)), ec, true);
- setDOMException(exec, ec);
- if (ok)
- return exec->argument(0);
- return jsNull();
-}
-
-JSValue JSNode::replaceChild(ExecState* exec)
-{
- Node* imp = static_cast<Node*>(impl());
- ExceptionCode ec = 0;
- bool ok = imp->replaceChild(toNode(exec->argument(0)), toNode(exec->argument(1)), ec, true);
- setDOMException(exec, ec);
- if (ok)
- return exec->argument(1);
- return jsNull();
-}
-
-JSValue JSNode::removeChild(ExecState* exec)
-{
- Node* imp = static_cast<Node*>(impl());
- ExceptionCode ec = 0;
- bool ok = imp->removeChild(toNode(exec->argument(0)), ec);
- setDOMException(exec, ec);
- if (ok)
- return exec->argument(0);
- return jsNull();
-}
-
-JSValue JSNode::appendChild(ExecState* exec)
-{
- Node* imp = static_cast<Node*>(impl());
- ExceptionCode ec = 0;
- bool ok = imp->appendChild(toNode(exec->argument(0)), ec, true);
- setDOMException(exec, ec);
- if (ok)
- return exec->argument(0);
- return jsNull();
-}
-
-void JSNode::pushEventHandlerScope(ExecState*, ScopeChain&) const
-{
-}
-
-void JSNode::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- Node* node = m_impl.get();
- node->markJSEventListeners(markStack);
-
- // Nodes in the document are kept alive by JSDocument::mark, so, if we're in
- // the document, we need to mark the document, but we don't need to explicitly
- // mark any other nodes.
- if (node->inDocument()) {
- // FIXME: Do we really want to call a virtual function, ownerDocument here,
- // when the non-virtual inline function, document, is so much faster?!
- if (Document* doc = node->ownerDocument())
- markDOMNodeWrapper(markStack, doc, doc);
- return;
- }
-
- // This is a node outside the document.
- // Find the the root, and the highest ancestor with a wrapper.
- Node* root = node;
- Node* outermostNodeWithWrapper = node;
- for (Node* current = m_impl.get(); current; current = current->parentNode()) {
- root = current;
- if (hasCachedDOMNodeWrapperUnchecked(current->document(), current))
- outermostNodeWithWrapper = current;
- }
-
- // Only nodes that have no ancestors with wrappers mark the subtree. In the common
- // case, the root of the detached subtree has a wrapper, so the tree will only
- // get marked once. Nodes that aren't outermost need to mark the outermost
- // in case it is otherwise unreachable.
- // FIXME: In the non-common case of root not having a wrapper, this is still an O(n^2) algorithm,
- // as we will traverse the whole tree as many times as there are nodes with wrappers in it.
- if (node != outermostNodeWithWrapper) {
- markDOMNodeWrapper(markStack, m_impl->document(), outermostNodeWithWrapper);
- return;
- }
-
- // Mark the whole tree subtree.
- for (Node* nodeToMark = root; nodeToMark; nodeToMark = nodeToMark->traverseNextNode())
- markDOMNodeWrapper(markStack, m_impl->document(), nodeToMark);
-}
-
-static ALWAYS_INLINE JSValue createWrapperInline(ExecState* exec, JSDOMGlobalObject* globalObject, Node* node)
-{
- ASSERT(node);
- ASSERT(!getCachedDOMNodeWrapper(exec, node->document(), node));
-
- JSNode* wrapper;
- switch (node->nodeType()) {
- case Node::ELEMENT_NODE:
- if (node->isHTMLElement())
- wrapper = createJSHTMLWrapper(exec, globalObject, static_cast<HTMLElement*>(node));
-#if ENABLE(SVG)
- else if (node->isSVGElement())
- wrapper = createJSSVGWrapper(exec, globalObject, static_cast<SVGElement*>(node));
-#endif
- else
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, Element, node);
- break;
- case Node::ATTRIBUTE_NODE:
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, Attr, node);
- break;
- case Node::TEXT_NODE:
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, Text, node);
- break;
- case Node::CDATA_SECTION_NODE:
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, CDATASection, node);
- break;
- case Node::ENTITY_NODE:
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, Entity, node);
- break;
- case Node::PROCESSING_INSTRUCTION_NODE:
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, ProcessingInstruction, node);
- break;
- case Node::COMMENT_NODE:
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, Comment, node);
- break;
- case Node::DOCUMENT_NODE:
- // we don't want to cache the document itself in the per-document dictionary
- return toJS(exec, globalObject, static_cast<Document*>(node));
- case Node::DOCUMENT_TYPE_NODE:
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, DocumentType, node);
- break;
- case Node::NOTATION_NODE:
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, Notation, node);
- break;
- case Node::DOCUMENT_FRAGMENT_NODE:
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, DocumentFragment, node);
- break;
- case Node::ENTITY_REFERENCE_NODE:
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, EntityReference, node);
- break;
- default:
- wrapper = CREATE_DOM_NODE_WRAPPER(exec, globalObject, Node, node);
- }
-
- return wrapper;
-}
-
-JSValue createWrapper(ExecState* exec, JSDOMGlobalObject* globalObject, Node* node)
-{
- return createWrapperInline(exec, globalObject, node);
-}
-
-JSValue toJSNewlyCreated(ExecState* exec, JSDOMGlobalObject* globalObject, Node* node)
-{
- if (!node)
- return jsNull();
-
- return createWrapperInline(exec, globalObject, node);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSNodeCustom.h b/WebCore/bindings/js/JSNodeCustom.h
deleted file mode 100644
index 9d06ae6..0000000
--- a/WebCore/bindings/js/JSNodeCustom.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2007, 2009, 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSNodeCustom_h
-#define JSNodeCustom_h
-
-#include "JSDOMBinding.h"
-#include <wtf/AlwaysInline.h>
-
-namespace WebCore {
-
-inline JSNode* getCachedDOMNodeWrapper(JSC::ExecState* exec, Document* document, Node* node)
-{
- if (currentWorld(exec)->isNormal()) {
- ASSERT(node->wrapper() == (document ? document->getWrapperCache(currentWorld(exec))->get(node) : domObjectWrapperMapFor(exec).get(node)));
- return static_cast<JSNode*>(node->wrapper());
- }
-
- if (document)
- return document->getWrapperCache(currentWorld(exec))->get(node);
- return static_cast<JSNode*>(domObjectWrapperMapFor(exec).get(node));
-}
-
-JSC::JSValue createWrapper(JSC::ExecState*, JSDOMGlobalObject*, Node*);
-
-inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, Node* node)
-{
- if (!node)
- return JSC::jsNull();
-
- JSNode* wrapper = getCachedDOMNodeWrapper(exec, node->document(), node);
- if (wrapper)
- return wrapper;
-
- return createWrapper(exec, globalObject, node);
-}
-
-}
-
-#endif // JSDOMNodeCustom_h
diff --git a/WebCore/bindings/js/JSNodeFilterCondition.cpp b/WebCore/bindings/js/JSNodeFilterCondition.cpp
deleted file mode 100644
index b269e5f..0000000
--- a/WebCore/bindings/js/JSNodeFilterCondition.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2001 Peter Kelly (pmk@post.com)
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "JSNodeFilterCondition.h"
-
-#include "JSNode.h"
-#include "JSNodeFilter.h"
-#include "NodeFilter.h"
-#include <runtime/Error.h>
-#include <runtime/JSLock.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-ASSERT_CLASS_FITS_IN_CELL(JSNodeFilterCondition);
-
-JSNodeFilterCondition::JSNodeFilterCondition(JSValue filter)
- : m_filter(filter)
-{
-}
-
-void JSNodeFilterCondition::markAggregate(MarkStack& markStack)
-{
- markStack.append(m_filter);
-}
-
-short JSNodeFilterCondition::acceptNode(JSC::ExecState* exec, Node* filterNode) const
-{
- JSLock lock(SilenceAssertionsOnly);
-
- if (!m_filter.isObject())
- return NodeFilter::FILTER_ACCEPT;
-
- // The exec argument here should only be null if this was called from a
- // non-JavaScript language, and this is a JavaScript filter, and the document
- // in question is not associated with the frame. In that case, we're going to
- // behave incorrectly, and just reject nodes instead of calling the filter function.
- // To fix that we'd need to come up with a way to find a suitable JavaScript
- // execution context for the filter function to run in.
- if (!exec)
- return NodeFilter::FILTER_REJECT;
-
- JSValue function = m_filter;
- CallData callData;
- CallType callType = getCallData(function, callData);
- if (callType == CallTypeNone) {
- function = m_filter.get(exec, Identifier(exec, "acceptNode"));
- callType = getCallData(function, callData);
- if (callType == CallTypeNone) {
- throwError(exec, createTypeError(exec, "NodeFilter object does not have an acceptNode function"));
- return NodeFilter::FILTER_REJECT;
- }
- }
-
- MarkedArgumentBuffer args;
- // FIXME: The node should have the prototype chain that came from its document, not
- // whatever prototype chain might be on the window this filter came from. Bug 27662
- args.append(toJS(exec, deprecatedGlobalObjectForPrototype(exec), filterNode));
- if (exec->hadException())
- return NodeFilter::FILTER_REJECT;
-
- JSValue result = JSC::call(exec, function, callType, callData, m_filter, args);
- if (exec->hadException())
- return NodeFilter::FILTER_REJECT;
-
- int intResult = result.toInt32(exec);
- if (exec->hadException())
- return NodeFilter::FILTER_REJECT;
-
- return intResult;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSNodeFilterCondition.h b/WebCore/bindings/js/JSNodeFilterCondition.h
deleted file mode 100644
index b96534a..0000000
--- a/WebCore/bindings/js/JSNodeFilterCondition.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2001 Peter Kelly (pmk@post.com)
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef JSNodeFilterCondition_h
-#define JSNodeFilterCondition_h
-
-#include "NodeFilterCondition.h"
-#include <runtime/JSValue.h>
-#include <wtf/PassRefPtr.h>
-
-namespace WebCore {
-
- class Node;
-
- class JSNodeFilterCondition : public NodeFilterCondition {
- public:
- static PassRefPtr<JSNodeFilterCondition> create(JSC::JSValue filter)
- {
- return adoptRef(new JSNodeFilterCondition(filter));
- }
-
- private:
- JSNodeFilterCondition(JSC::JSValue filter);
-
- virtual short acceptNode(ScriptState*, Node*) const;
- virtual void markAggregate(JSC::MarkStack&);
-
- mutable JSC::JSValue m_filter;
- };
-
-} // namespace WebCore
-
-#endif // JSNodeFilterCondition_h
diff --git a/WebCore/bindings/js/JSNodeFilterCustom.cpp b/WebCore/bindings/js/JSNodeFilterCustom.cpp
deleted file mode 100644
index bb90c4f..0000000
--- a/WebCore/bindings/js/JSNodeFilterCustom.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSNodeFilter.h"
-
-#include "JSNode.h"
-#include "JSNodeFilterCondition.h"
-#include "NodeFilter.h"
-#include "JSDOMBinding.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSNodeFilter::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
- impl()->markAggregate(markStack);
-}
-
-PassRefPtr<NodeFilter> toNodeFilter(JSValue value)
-{
- if (value.inherits(&JSNodeFilter::s_info))
- return static_cast<JSNodeFilter*>(asObject(value))->impl();
-
- return NodeFilter::create(JSNodeFilterCondition::create(value));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSNodeIteratorCustom.cpp b/WebCore/bindings/js/JSNodeIteratorCustom.cpp
deleted file mode 100644
index 7c858e5..0000000
--- a/WebCore/bindings/js/JSNodeIteratorCustom.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2006, 2008, 2009 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "JSNodeIterator.h"
-
-#include "JSNode.h"
-#include "Node.h"
-#include "NodeFilter.h"
-#include "NodeIterator.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSNodeIterator::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (NodeFilter* filter = m_impl->filter())
- filter->markAggregate(markStack);
-}
-
-}
diff --git a/WebCore/bindings/js/JSNodeListCustom.cpp b/WebCore/bindings/js/JSNodeListCustom.cpp
deleted file mode 100644
index c81914c..0000000
--- a/WebCore/bindings/js/JSNodeListCustom.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSNodeList.h"
-
-#include "JSNode.h"
-#include "Node.h"
-#include "NodeList.h"
-#include <wtf/text/AtomicString.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-// Need to support call so that list(0) works.
-static EncodedJSValue JSC_HOST_CALL callNodeList(ExecState* exec)
-{
- bool ok;
- unsigned index = Identifier::toUInt32(exec->argument(0).toString(exec), ok);
- if (!ok)
- return JSValue::encode(jsUndefined());
- return JSValue::encode(toJS(exec, static_cast<JSNodeList*>(exec->callee())->impl()->item(index)));
-}
-
-CallType JSNodeList::getCallData(CallData& callData)
-{
- callData.native.function = callNodeList;
- return CallTypeHost;
-}
-
-bool JSNodeList::canGetItemsForName(ExecState*, NodeList* impl, const Identifier& propertyName)
-{
- return impl->itemWithName(identifierToAtomicString(propertyName));
-}
-
-JSValue JSNodeList::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSNodeList* thisObj = static_cast<JSNodeList*>(asObject(slotBase));
- return toJS(exec, thisObj->impl()->itemWithName(identifierToAtomicString(propertyName)));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSOptionConstructor.cpp b/WebCore/bindings/js/JSOptionConstructor.cpp
deleted file mode 100644
index 4ecfe58..0000000
--- a/WebCore/bindings/js/JSOptionConstructor.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "JSOptionConstructor.h"
-
-#include "HTMLNames.h"
-#include "HTMLOptionElement.h"
-#include "JSHTMLOptionElement.h"
-#include "ScriptExecutionContext.h"
-#include "Text.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-ASSERT_CLASS_FITS_IN_CELL(JSOptionConstructor);
-
-const ClassInfo JSOptionConstructor::s_info = { "OptionConstructor", 0, 0, 0 };
-
-JSOptionConstructor::JSOptionConstructor(ExecState* exec, JSDOMGlobalObject* globalObject)
- : DOMConstructorWithDocument(JSOptionConstructor::createStructure(globalObject->objectPrototype()), globalObject)
-{
- putDirect(exec->propertyNames().prototype, JSHTMLOptionElementPrototype::self(exec, globalObject), None);
- putDirect(exec->propertyNames().length, jsNumber(4), ReadOnly | DontDelete | DontEnum);
-}
-
-static EncodedJSValue JSC_HOST_CALL constructHTMLOptionElement(ExecState* exec)
-{
- JSOptionConstructor* jsConstructor = static_cast<JSOptionConstructor*>(exec->callee());
- Document* document = jsConstructor->document();
- if (!document)
- return throwVMError(exec, createReferenceError(exec, "Option constructor associated document is unavailable"));
-
- String data;
- if ((exec->argumentCount() >= 1) && !exec->argument(0).isUndefined())
- data = ustringToString(exec->argument(0).toString(exec));
-
- String value;
- if ((exec->argumentCount() >= 2) && !exec->argument(1).isUndefined())
- value = ustringToString(exec->argument(1).toString(exec));
- bool defaultSelected = (exec->argumentCount() >= 3) && exec->argument(2).toBoolean(exec);
- bool selected = (exec->argumentCount() >= 4) && exec->argument(3).toBoolean(exec);
-
- ExceptionCode ec = 0;
- RefPtr<HTMLOptionElement> element = HTMLOptionElement::createForJSConstructor(document, data, value, defaultSelected, selected, ec);
- if (ec) {
- setDOMException(exec, ec);
- return JSValue::encode(JSValue());
- }
-
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), element.release())));
-}
-
-ConstructType JSOptionConstructor::getConstructData(ConstructData& constructData)
-{
- constructData.native.function = constructHTMLOptionElement;
- return ConstructTypeHost;
-}
-
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSOptionConstructor.h b/WebCore/bindings/js/JSOptionConstructor.h
deleted file mode 100644
index 246e7fa..0000000
--- a/WebCore/bindings/js/JSOptionConstructor.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef JSOptionConstructor_h
-#define JSOptionConstructor_h
-
-#include "JSDOMBinding.h"
-#include "JSDocument.h"
-#include <wtf/RefPtr.h>
-
-namespace WebCore {
-
- class JSOptionConstructor : public DOMConstructorWithDocument {
- public:
- JSOptionConstructor(JSC::ExecState*, JSDOMGlobalObject*);
-
- static const JSC::ClassInfo s_info;
- private:
- virtual JSC::ConstructType getConstructData(JSC::ConstructData&);
- virtual const JSC::ClassInfo* classInfo() const { return &s_info; }
- };
-
-} // namespace WebCore
-
-#endif // JSOptionConstructor_h
diff --git a/WebCore/bindings/js/JSPluginElementFunctions.cpp b/WebCore/bindings/js/JSPluginElementFunctions.cpp
deleted file mode 100644
index 893b967..0000000
--- a/WebCore/bindings/js/JSPluginElementFunctions.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
- * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "JSPluginElementFunctions.h"
-
-#include "Bridge.h"
-#include "HTMLNames.h"
-#include "HTMLPlugInElement.h"
-#include "JSHTMLElement.h"
-#include "PluginViewBase.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-using namespace Bindings;
-using namespace HTMLNames;
-
-// Runtime object support code for JSHTMLAppletElement, JSHTMLEmbedElement and JSHTMLObjectElement.
-
-static inline bool isPluginElement(Node* node)
-{
- return node->hasTagName(objectTag) || node->hasTagName(embedTag) || node->hasTagName(appletTag);
-}
-
-Instance* pluginInstance(Node* node)
-{
- if (!node)
- return 0;
- if (!isPluginElement(node))
- return 0;
-
- HTMLPlugInElement* plugInElement = static_cast<HTMLPlugInElement*>(node);
- // The plugin element holds an owning reference, so we don't have to.
- Instance* instance = plugInElement->getInstance().get();
- if (!instance || !instance->rootObject())
- return 0;
- return instance;
-}
-
-static JSObject* pluginScriptObjectFromPluginViewBase(HTMLPlugInElement* pluginElement, JSGlobalObject* globalObject)
-{
- Widget* pluginWidget = pluginElement->pluginWidget();
- if (!pluginWidget)
- return 0;
-
- if (!pluginWidget->isPluginViewBase())
- return 0;
-
- PluginViewBase* pluginViewBase = static_cast<PluginViewBase*>(pluginWidget);
- return pluginViewBase->scriptObject(globalObject);
-}
-
-static JSObject* pluginScriptObjectFromPluginViewBase(JSHTMLElement* jsHTMLElement)
-{
- HTMLElement* element = jsHTMLElement->impl();
- if (!isPluginElement(element))
- return 0;
-
- HTMLPlugInElement* pluginElement = static_cast<HTMLPlugInElement*>(element);
- return pluginScriptObjectFromPluginViewBase(pluginElement, jsHTMLElement->globalObject());
-}
-
-JSObject* pluginScriptObject(ExecState* exec, JSHTMLElement* jsHTMLElement)
-{
- HTMLElement* element = jsHTMLElement->impl();
- if (!isPluginElement(element))
- return 0;
-
- HTMLPlugInElement* pluginElement = static_cast<HTMLPlugInElement*>(element);
-
- // First, see if we can ask the plug-in view for its script object.
- if (JSObject* scriptObject = pluginScriptObjectFromPluginViewBase(pluginElement, jsHTMLElement->globalObject()))
- return scriptObject;
-
- // Otherwise, fall back to getting the object from the instance.
-
- // The plugin element holds an owning reference, so we don't have to.
- Instance* instance = pluginElement->getInstance().get();
- if (!instance || !instance->rootObject())
- return 0;
-
- return instance->createRuntimeObject(exec);
-}
-
-JSValue runtimeObjectPropertyGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSHTMLElement* element = static_cast<JSHTMLElement*>(asObject(slotBase));
- JSObject* scriptObject = pluginScriptObject(exec, element);
- if (!scriptObject)
- return jsUndefined();
-
- return scriptObject->get(exec, propertyName);
-}
-
-bool runtimeObjectCustomGetOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot, JSHTMLElement* element)
-{
- JSObject* scriptObject = pluginScriptObject(exec, element);
- if (!scriptObject)
- return false;
-
- if (!scriptObject->hasProperty(exec, propertyName))
- return false;
- slot.setCustom(element, runtimeObjectPropertyGetter);
- return true;
-}
-
-bool runtimeObjectCustomGetOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor, JSHTMLElement* element)
-{
- JSObject* scriptObject = pluginScriptObject(exec, element);
- if (!scriptObject)
- return false;
- if (!scriptObject->hasProperty(exec, propertyName))
- return false;
- PropertySlot slot;
- slot.setCustom(element, runtimeObjectPropertyGetter);
- // While we don't know what the plugin allows, we do know that we prevent
- // enumeration or deletion of properties, so we mark plugin properties
- // as DontEnum | DontDelete
- descriptor.setDescriptor(slot.getValue(exec, propertyName), DontEnum | DontDelete);
- return true;
-}
-
-bool runtimeObjectCustomPut(ExecState* exec, const Identifier& propertyName, JSValue value, JSHTMLElement* element, PutPropertySlot& slot)
-{
- JSObject* scriptObject = pluginScriptObject(exec, element);
- if (!scriptObject)
- return 0;
- if (!scriptObject->hasProperty(exec, propertyName))
- return false;
- scriptObject->put(exec, propertyName, value, slot);
- return true;
-}
-
-static EncodedJSValue JSC_HOST_CALL callPlugin(ExecState* exec)
-{
- JSHTMLElement* element = static_cast<JSHTMLElement*>(exec->callee());
-
- // Get the plug-in script object.
- JSObject* scriptObject = pluginScriptObject(exec, element);
- ASSERT(scriptObject);
-
- size_t argumentCount = exec->argumentCount();
- MarkedArgumentBuffer argumentList;
- for (size_t i = 0; i < argumentCount; i++)
- argumentList.append(exec->argument(i));
-
- CallData callData;
- CallType callType = getCallData(scriptObject, callData);
- ASSERT(callType == CallTypeHost);
-
- // Call the object.
- JSValue result = call(exec, scriptObject, callType, callData, exec->hostThisValue(), argumentList);
- return JSValue::encode(result);
-}
-
-CallType runtimeObjectGetCallData(JSHTMLElement* element, CallData& callData)
-{
- // First, ask the plug-in view base for its runtime object.
- if (JSObject* scriptObject = pluginScriptObjectFromPluginViewBase(element)) {
- CallData scriptObjectCallData;
-
- if (scriptObject->getCallData(scriptObjectCallData) == CallTypeNone)
- return CallTypeNone;
-
- callData.native.function = callPlugin;
- return CallTypeHost;
- }
-
- Instance* instance = pluginInstance(element->impl());
- if (!instance || !instance->supportsInvokeDefaultMethod())
- return CallTypeNone;
- callData.native.function = callPlugin;
- return CallTypeHost;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSPluginElementFunctions.h b/WebCore/bindings/js/JSPluginElementFunctions.h
deleted file mode 100644
index 15af59a..0000000
--- a/WebCore/bindings/js/JSPluginElementFunctions.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 1999 Harri Porten (porten@kde.org)
- * Copyright (C) 2004, 2006, 2007, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef JSPluginElementFunctions_h
-#define JSPluginElementFunctions_h
-
-#include "JSDOMBinding.h"
-
-namespace JSC {
-namespace Bindings {
-class Instance;
-}
-}
-
-namespace WebCore {
-
- class HTMLElement;
- class JSHTMLElement;
- class Node;
-
- // Runtime object support code for JSHTMLAppletElement, JSHTMLEmbedElement and JSHTMLObjectElement.
- JSC::Bindings::Instance* pluginInstance(Node*);
- JSC::JSObject* pluginScriptObject(JSC::ExecState* exec, JSHTMLElement* jsHTMLElement);
-
- JSC::JSValue runtimeObjectPropertyGetter(JSC::ExecState*, JSC::JSValue, const JSC::Identifier&);
- bool runtimeObjectCustomGetOwnPropertySlot(JSC::ExecState*, const JSC::Identifier&, JSC::PropertySlot&, JSHTMLElement*);
- bool runtimeObjectCustomGetOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier&, JSC::PropertyDescriptor&, JSHTMLElement*);
- bool runtimeObjectCustomPut(JSC::ExecState*, const JSC::Identifier&, JSC::JSValue, JSHTMLElement*, JSC::PutPropertySlot&);
- JSC::CallType runtimeObjectGetCallData(JSHTMLElement*, JSC::CallData&);
-
-} // namespace WebCore
-
-#endif // JSPluginElementFunctions_h
diff --git a/WebCore/bindings/js/JSPopStateEventCustom.cpp b/WebCore/bindings/js/JSPopStateEventCustom.cpp
deleted file mode 100644
index 14fc9d9..0000000
--- a/WebCore/bindings/js/JSPopStateEventCustom.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include "config.h"
-#include "JSPopStateEvent.h"
-
-#include "PopStateEvent.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-// FIXME: Remove this file.
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSProcessingInstructionCustom.cpp b/WebCore/bindings/js/JSProcessingInstructionCustom.cpp
deleted file mode 100644
index 868e319..0000000
--- a/WebCore/bindings/js/JSProcessingInstructionCustom.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSProcessingInstruction.h"
-
-#include "ProcessingInstruction.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSProcessingInstruction::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (StyleSheet* sheet = static_cast<ProcessingInstruction*>(impl())->sheet())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), sheet);
-}
-
-}
diff --git a/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp b/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp
deleted file mode 100644
index 7274cd0..0000000
--- a/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSSQLResultSetRowList.h"
-
-#if ENABLE(DATABASE)
-
-#include "ExceptionCode.h"
-#include "SQLValue.h"
-#include "SQLResultSetRowList.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSSQLResultSetRowList::item(ExecState* exec)
-{
- bool indexOk;
- int index = finiteInt32Value(exec->argument(0), exec, indexOk);
- if (!indexOk) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
- if (index < 0 || (unsigned)index >= m_impl->length()) {
- setDOMException(exec, INDEX_SIZE_ERR);
- return jsUndefined();
- }
-
- JSObject* object = constructEmptyObject(exec);
-
- unsigned numColumns = m_impl->columnNames().size();
- unsigned valuesIndex = index * numColumns;
- for (unsigned i = 0; i < numColumns; i++) {
- const SQLValue& value = m_impl->values()[valuesIndex + i];
- JSValue jsValue;
-
- switch (value.type()) {
- case SQLValue::StringValue:
- jsValue = jsString(exec, value.string());
- break;
- case SQLValue::NullValue:
- jsValue = jsNull();
- break;
- case SQLValue::NumberValue:
- jsValue = jsNumber(value.number());
- break;
- default:
- ASSERT_NOT_REACHED();
- }
-
- object->putDirect(Identifier(exec, stringToUString(m_impl->columnNames()[i])), jsValue, DontDelete | ReadOnly);
- }
-
- return object;
-}
-
-}
-
-#endif
diff --git a/WebCore/bindings/js/JSSQLTransactionCustom.cpp b/WebCore/bindings/js/JSSQLTransactionCustom.cpp
deleted file mode 100644
index e32ea55..0000000
--- a/WebCore/bindings/js/JSSQLTransactionCustom.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSSQLTransaction.h"
-
-#if ENABLE(DATABASE)
-
-#include "DOMWindow.h"
-#include "ExceptionCode.h"
-#include "JSSQLStatementCallback.h"
-#include "JSSQLStatementErrorCallback.h"
-#include "JSDOMWindowCustom.h"
-#include "SQLTransaction.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSSQLTransaction::executeSql(ExecState* exec)
-{
- if (!exec->argumentCount()) {
- setDOMException(exec, SYNTAX_ERR);
- return jsUndefined();
- }
-
- String sqlStatement = ustringToString(exec->argument(0).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- // Now assemble the list of SQL arguments
- Vector<SQLValue> sqlValues;
- if (!exec->argument(1).isUndefinedOrNull()) {
- JSObject* object = exec->argument(1).getObject();
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- JSValue lengthValue = object->get(exec, exec->propertyNames().length);
- if (exec->hadException())
- return jsUndefined();
- unsigned length = lengthValue.toUInt32(exec);
- if (exec->hadException())
- return jsUndefined();
-
- for (unsigned i = 0 ; i < length; ++i) {
- JSValue value = object->get(exec, i);
- if (exec->hadException())
- return jsUndefined();
-
- if (value.isUndefinedOrNull())
- sqlValues.append(SQLValue());
- else if (value.isNumber())
- sqlValues.append(value.uncheckedGetNumber());
- else {
- // Convert the argument to a string and append it
- sqlValues.append(ustringToString(value.toString(exec)));
- if (exec->hadException())
- return jsUndefined();
- }
- }
- }
-
- RefPtr<SQLStatementCallback> callback;
- if (!exec->argument(2).isUndefinedOrNull()) {
- JSObject* object = exec->argument(2).getObject();
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- callback = JSSQLStatementCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject()));
- }
-
- RefPtr<SQLStatementErrorCallback> errorCallback;
- if (!exec->argument(3).isUndefinedOrNull()) {
- JSObject* object = exec->argument(3).getObject();
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- errorCallback = JSSQLStatementErrorCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject()));
- }
-
- ExceptionCode ec = 0;
- m_impl->executeSQL(sqlStatement, sqlValues, callback.release(), errorCallback.release(), ec);
- setDOMException(exec, ec);
-
- return jsUndefined();
-}
-
-}
-
-#endif // ENABLE(DATABASE)
diff --git a/WebCore/bindings/js/JSSQLTransactionSyncCustom.cpp b/WebCore/bindings/js/JSSQLTransactionSyncCustom.cpp
deleted file mode 100644
index 08f42e8..0000000
--- a/WebCore/bindings/js/JSSQLTransactionSyncCustom.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSSQLTransactionSync.h"
-
-#if ENABLE(DATABASE)
-
-#include "ExceptionCode.h"
-#include "JSSQLResultSet.h"
-#include "SQLResultSet.h"
-#include "SQLTransactionSync.h"
-#include "SQLValue.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSSQLTransactionSync::executeSql(ExecState* exec)
-{
- if (!exec->argumentCount()) {
- setDOMException(exec, SYNTAX_ERR);
- return jsUndefined();
- }
-
- String sqlStatement = ustringToString(exec->argument(0).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- // Now assemble the list of SQL arguments
- Vector<SQLValue> sqlValues;
- if (!exec->argument(1).isUndefinedOrNull()) {
- JSObject* object = exec->argument(1).getObject();
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- JSValue lengthValue = object->get(exec, exec->propertyNames().length);
- if (exec->hadException())
- return jsUndefined();
- unsigned length = lengthValue.toUInt32(exec);
- if (exec->hadException())
- return jsUndefined();
-
- for (unsigned i = 0 ; i < length; ++i) {
- JSValue value = object->get(exec, i);
- if (exec->hadException())
- return jsUndefined();
-
- if (value.isUndefinedOrNull())
- sqlValues.append(SQLValue());
- else if (value.isNumber())
- sqlValues.append(value.uncheckedGetNumber());
- else {
- // Convert the argument to a string and append it
- sqlValues.append(ustringToString(value.toString(exec)));
- if (exec->hadException())
- return jsUndefined();
- }
- }
- }
-
- ExceptionCode ec = 0;
- JSValue result = toJS(exec, globalObject(), WTF::getPtr(m_impl->executeSQL(sqlStatement, sqlValues, ec)));
- setDOMException(exec, ec);
-
- return result;
-}
-
-}
-
-#endif // ENABLE(DATABASE)
diff --git a/WebCore/bindings/js/JSSVGElementInstanceCustom.cpp b/WebCore/bindings/js/JSSVGElementInstanceCustom.cpp
deleted file mode 100644
index dec4be0..0000000
--- a/WebCore/bindings/js/JSSVGElementInstanceCustom.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2009 Apple, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSSVGElementInstance.h"
-
-#if ENABLE(SVG)
-#include "SVGElementInstance.h"
-
-namespace WebCore {
-
-void JSSVGElementInstance::markChildren(JSC::MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- // Mark the wrapper for our corresponding element, so it can mark its event handlers.
- markDOMNodeWrapper(markStack, impl()->correspondingElement()->document(), impl()->correspondingElement());
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(SVG)
diff --git a/WebCore/bindings/js/JSSVGLengthCustom.cpp b/WebCore/bindings/js/JSSVGLengthCustom.cpp
deleted file mode 100644
index 5b668c4..0000000
--- a/WebCore/bindings/js/JSSVGLengthCustom.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include "config.h"
-
-#if ENABLE(SVG)
-#include "JSSVGLength.h"
-
-#include <runtime/Error.h>
-#include "SVGAnimatedProperty.h"
-#include "SVGException.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSSVGLength::value(ExecState* exec) const
-{
- SVGLength& podImp = impl()->propertyReference();
- ExceptionCode ec = 0;
- float value = podImp.value(impl()->contextElement(), ec);
- if (ec) {
- setDOMException(exec, ec);
- return jsUndefined();
- }
-
- return jsNumber(value);
-}
-
-void JSSVGLength::setValue(ExecState* exec, JSValue value)
-{
- if (impl()->role() == AnimValRole) {
- setDOMException(exec, NO_MODIFICATION_ALLOWED_ERR);
- return;
- }
-
- if (!value.isUndefinedOrNull() && !value.isNumber() && !value.isBoolean()) {
- throwVMTypeError(exec);
- return;
- }
-
- SVGLength& podImp = impl()->propertyReference();
-
- ExceptionCode ec = 0;
- podImp.setValue(value.toFloat(exec), impl()->contextElement(), ec);
- if (ec) {
- setDOMException(exec, ec);
- return;
- }
-
- impl()->commitChange();
-}
-
-JSValue JSSVGLength::convertToSpecifiedUnits(ExecState* exec)
-{
- if (impl()->role() == AnimValRole) {
- setDOMException(exec, NO_MODIFICATION_ALLOWED_ERR);
- return jsUndefined();
- }
-
- SVGLength& podImp = impl()->propertyReference();
-
- // Mimic the behaviour of RequiresAllArguments=Raise.
- if (exec->argumentCount() < 1)
- return throwError(exec, createSyntaxError(exec, "Not enough arguments"));
-
- unsigned short unitType = exec->argument(0).toUInt32(exec);
- if (exec->hadException())
- return jsUndefined();
-
- ExceptionCode ec = 0;
- podImp.convertToSpecifiedUnits(unitType, impl()->contextElement(), ec);
- if (ec) {
- setDOMException(exec, ec);
- return jsUndefined();
- }
-
- impl()->commitChange();
- return jsUndefined();
-}
-
-}
-
-#endif // ENABLE(SVG)
diff --git a/WebCore/bindings/js/JSSVGPathSegCustom.cpp b/WebCore/bindings/js/JSSVGPathSegCustom.cpp
deleted file mode 100644
index f0aa86b..0000000
--- a/WebCore/bindings/js/JSSVGPathSegCustom.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#if ENABLE(SVG)
-#include "JSSVGPathSeg.h"
-
-#include "JSDOMBinding.h"
-#include "JSSVGPathSegArcAbs.h"
-#include "JSSVGPathSegArcRel.h"
-#include "JSSVGPathSegClosePath.h"
-#include "JSSVGPathSegCurvetoCubicAbs.h"
-#include "JSSVGPathSegCurvetoCubicRel.h"
-#include "JSSVGPathSegCurvetoCubicSmoothAbs.h"
-#include "JSSVGPathSegCurvetoCubicSmoothRel.h"
-#include "JSSVGPathSegCurvetoQuadraticAbs.h"
-#include "JSSVGPathSegCurvetoQuadraticRel.h"
-#include "JSSVGPathSegCurvetoQuadraticSmoothAbs.h"
-#include "JSSVGPathSegCurvetoQuadraticSmoothRel.h"
-#include "JSSVGPathSegLinetoAbs.h"
-#include "JSSVGPathSegLinetoRel.h"
-#include "JSSVGPathSegLinetoHorizontalAbs.h"
-#include "JSSVGPathSegLinetoHorizontalRel.h"
-#include "JSSVGPathSegLinetoVerticalAbs.h"
-#include "JSSVGPathSegLinetoVerticalRel.h"
-#include "JSSVGPathSegMovetoAbs.h"
-#include "JSSVGPathSegMovetoRel.h"
-#include "SVGPathSeg.h"
-#include "SVGPathSegArc.h"
-#include "SVGPathSegClosePath.h"
-#include "SVGPathSegCurvetoCubic.h"
-#include "SVGPathSegCurvetoCubicSmooth.h"
-#include "SVGPathSegCurvetoQuadratic.h"
-#include "SVGPathSegCurvetoQuadraticSmooth.h"
-#include "SVGPathSegLineto.h"
-#include "SVGPathSegLinetoHorizontal.h"
-#include "SVGPathSegLinetoVertical.h"
-#include "SVGPathSegMoveto.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, SVGPathSeg* object)
-{
- if (!object)
- return jsNull();
-
- if (DOMObject* wrapper = getCachedDOMObjectWrapper(exec, object))
- return wrapper;
-
- switch (object->pathSegType()) {
- case SVGPathSeg::PATHSEG_CLOSEPATH:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegClosePath, object);
- case SVGPathSeg::PATHSEG_MOVETO_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegMovetoAbs, object);
- case SVGPathSeg::PATHSEG_MOVETO_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegMovetoRel, object);
- case SVGPathSeg::PATHSEG_LINETO_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoAbs, object);
- case SVGPathSeg::PATHSEG_LINETO_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoRel, object);
- case SVGPathSeg::PATHSEG_CURVETO_CUBIC_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoCubicAbs, object);
- case SVGPathSeg::PATHSEG_CURVETO_CUBIC_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoCubicRel, object);
- case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoQuadraticAbs, object);
- case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoQuadraticRel, object);
- case SVGPathSeg::PATHSEG_ARC_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegArcAbs, object);
- case SVGPathSeg::PATHSEG_ARC_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegArcRel, object);
- case SVGPathSeg::PATHSEG_LINETO_HORIZONTAL_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoHorizontalAbs, object);
- case SVGPathSeg::PATHSEG_LINETO_HORIZONTAL_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoHorizontalRel, object);
- case SVGPathSeg::PATHSEG_LINETO_VERTICAL_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoVerticalAbs, object);
- case SVGPathSeg::PATHSEG_LINETO_VERTICAL_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoVerticalRel, object);
- case SVGPathSeg::PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoCubicSmoothAbs, object);
- case SVGPathSeg::PATHSEG_CURVETO_CUBIC_SMOOTH_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoCubicSmoothRel, object);
- case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoQuadraticSmoothAbs, object);
- case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoQuadraticSmoothRel, object);
- case SVGPathSeg::PATHSEG_UNKNOWN:
- default:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSeg, object);
- }
-}
-
-}
-
-#endif // ENABLE(SVG)
diff --git a/WebCore/bindings/js/JSScriptProfileNodeCustom.cpp b/WebCore/bindings/js/JSScriptProfileNodeCustom.cpp
deleted file mode 100644
index 0c2a6a2..0000000
--- a/WebCore/bindings/js/JSScriptProfileNodeCustom.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#include "JSScriptProfileNode.h"
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-#include <profiler/ProfileNode.h>
-#endif
-
-#include <runtime/JSArray.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-
-JSValue JSScriptProfileNode::callUID(ExecState*) const
-{
- JSValue result = jsNumber(impl()->callIdentifier().hash());
- return result;
-}
-
-typedef Vector<RefPtr<ProfileNode> > ProfileNodesList;
-
-JSValue JSScriptProfileNode::children(ExecState* exec) const
-{
- const ProfileNodesList& children = impl()->children();
- MarkedArgumentBuffer list;
-
- ProfileNodesList::const_iterator end = children.end();
- for (ProfileNodesList::const_iterator iter = children.begin(); iter != end; ++iter)
- list.append(toJS(exec, iter->get()));
-
- return constructArray(exec, list);
-}
-
-#endif
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSSharedWorkerCustom.cpp b/WebCore/bindings/js/JSSharedWorkerCustom.cpp
deleted file mode 100644
index 0d576e0..0000000
--- a/WebCore/bindings/js/JSSharedWorkerCustom.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(SHARED_WORKERS)
-
-#include "JSSharedWorker.h"
-
-#include "JSDOMGlobalObject.h"
-#include "JSDOMWindowCustom.h"
-#include "SharedWorker.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSSharedWorker::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (MessagePort* port = impl()->port())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), port);
-}
-
-EncodedJSValue JSC_HOST_CALL JSSharedWorkerConstructor::constructJSSharedWorker(ExecState* exec)
-{
- JSSharedWorkerConstructor* jsConstructor = static_cast<JSSharedWorkerConstructor*>(exec->callee());
-
- if (exec->argumentCount() < 1)
- return throwVMError(exec, createSyntaxError(exec, "Not enough arguments"));
-
- UString scriptURL = exec->argument(0).toString(exec);
- UString name;
- if (exec->argumentCount() > 1)
- name = exec->argument(1).toString(exec);
-
- if (exec->hadException())
- return JSValue::encode(JSValue());
-
- // FIXME: We need to use both the dynamic scope and the lexical scope (dynamic scope for resolving the worker URL)
- DOMWindow* window = asJSDOMWindow(exec->lexicalGlobalObject())->impl();
- ExceptionCode ec = 0;
- RefPtr<SharedWorker> worker = SharedWorker::create(ustringToString(scriptURL), ustringToString(name), window->document(), ec);
- if (ec) {
- setDOMException(exec, ec);
- return JSValue::encode(JSValue());
- }
-
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), worker.release())));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(SHARED_WORKERS)
diff --git a/WebCore/bindings/js/JSStorageCustom.cpp b/WebCore/bindings/js/JSStorageCustom.cpp
deleted file mode 100644
index 6a126b7..0000000
--- a/WebCore/bindings/js/JSStorageCustom.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSStorageCustom.h"
-
-#if ENABLE(DOM_STORAGE)
-
-#include "PlatformString.h"
-#include <runtime/PropertyNameArray.h>
-#include "Storage.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-bool JSStorage::canGetItemsForName(ExecState*, Storage* impl, const Identifier& propertyName)
-{
- return impl->contains(identifierToString(propertyName));
-}
-
-JSValue JSStorage::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSStorage* thisObj = static_cast<JSStorage*>(asObject(slotBase));
- return jsStringOrNull(exec, thisObj->impl()->getItem(identifierToString(propertyName)));
-}
-
-bool JSStorage::deleteProperty(ExecState* exec, const Identifier& propertyName)
-{
- // Only perform the custom delete if the object doesn't have a native property by this name.
- // Since hasProperty() would end up calling canGetItemsForName() and be fooled, we need to check
- // the native property slots manually.
- PropertySlot slot;
- if (getStaticValueSlot<JSStorage, Base>(exec, s_info.propHashTable(exec), this, propertyName, slot))
- return false;
-
- JSValue prototype = this->prototype();
- if (prototype.isObject() && asObject(prototype)->hasProperty(exec, propertyName))
- return false;
-
- m_impl->removeItem(identifierToString(propertyName));
- return true;
-}
-
-void JSStorage::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode)
-{
- unsigned length = m_impl->length();
- for (unsigned i = 0; i < length; ++i)
- propertyNames.add(Identifier(exec, stringToUString(m_impl->key(i))));
-
- Base::getOwnPropertyNames(exec, propertyNames, mode);
-}
-
-bool JSStorage::putDelegate(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot&)
-{
- // Only perform the custom put if the object doesn't have a native property by this name.
- // Since hasProperty() would end up calling canGetItemsForName() and be fooled, we need to check
- // the native property slots manually.
- PropertySlot slot;
- if (getStaticValueSlot<JSStorage, Base>(exec, s_info.propHashTable(exec), this, propertyName, slot))
- return false;
-
- JSValue prototype = this->prototype();
- if (prototype.isObject() && asObject(prototype)->hasProperty(exec, propertyName))
- return false;
-
- String stringValue = ustringToString(value.toString(exec));
- if (exec->hadException())
- return true;
-
- ExceptionCode ec = 0;
- impl()->setItem(identifierToString(propertyName), stringValue, ec);
- setDOMException(exec, ec);
-
- return true;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(DOM_STORAGE)
diff --git a/WebCore/bindings/js/JSStorageCustom.h b/WebCore/bindings/js/JSStorageCustom.h
deleted file mode 100644
index 45f62df..0000000
--- a/WebCore/bindings/js/JSStorageCustom.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSStorageCustom_h
-#define JSStorageCustom_h
-
-#include "JSStorage.h"
-
-#endif // JSStorageCustom_h
diff --git a/WebCore/bindings/js/JSStyleSheetCustom.cpp b/WebCore/bindings/js/JSStyleSheetCustom.cpp
deleted file mode 100644
index 04c6561..0000000
--- a/WebCore/bindings/js/JSStyleSheetCustom.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSStyleSheet.h"
-
-#include "CSSStyleSheet.h"
-#include "Node.h"
-#include "JSCSSStyleSheet.h"
-#include "JSNode.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, StyleSheet* styleSheet)
-{
- if (!styleSheet)
- return jsNull();
-
- DOMObject* wrapper = getCachedDOMObjectWrapper(exec, styleSheet);
- if (wrapper)
- return wrapper;
-
- if (styleSheet->isCSSStyleSheet())
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CSSStyleSheet, styleSheet);
- else
- wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, StyleSheet, styleSheet);
-
- return wrapper;
-}
-
-void JSStyleSheet::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- StyleSheet* sheet = impl();
- JSGlobalData& globalData = *Heap::heap(this)->globalData();
-
- unsigned length = sheet->length();
- for (unsigned i = 0; i < length; ++i)
- markDOMObjectWrapper(markStack, globalData, sheet->item(i));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSStyleSheetListCustom.cpp b/WebCore/bindings/js/JSStyleSheetListCustom.cpp
deleted file mode 100644
index eb96a67..0000000
--- a/WebCore/bindings/js/JSStyleSheetListCustom.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSStyleSheetList.h"
-
-#include "HTMLStyleElement.h"
-#include "JSStyleSheet.h"
-#include "StyleSheet.h"
-#include "StyleSheetList.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSStyleSheetList::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- StyleSheetList* list = impl();
- JSGlobalData& globalData = *Heap::heap(this)->globalData();
-
- unsigned length = list->length();
- for (unsigned i = 0; i < length; ++i)
- markDOMObjectWrapper(markStack, globalData, list->item(i));
-}
-
-bool JSStyleSheetList::canGetItemsForName(ExecState*, StyleSheetList* styleSheetList, const Identifier& propertyName)
-{
- return styleSheetList->getNamedItem(identifierToString(propertyName));
-}
-
-JSValue JSStyleSheetList::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
-{
- JSStyleSheetList* thisObj = static_cast<JSStyleSheetList*>(asObject(slotBase));
- HTMLStyleElement* element = thisObj->impl()->getNamedItem(identifierToString(propertyName));
- ASSERT(element);
- return toJS(exec, element->sheet());
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSTextCustom.cpp b/WebCore/bindings/js/JSTextCustom.cpp
deleted file mode 100644
index 2dc886d..0000000
--- a/WebCore/bindings/js/JSTextCustom.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSText.h"
-
-#include "Text.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue toJSNewlyCreated(ExecState* exec, JSDOMGlobalObject* globalObject, Text* text)
-{
- if (!text)
- return jsNull();
-
- return CREATE_DOM_NODE_WRAPPER(exec, globalObject, Text, text);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSTouchCustom.cpp b/WebCore/bindings/js/JSTouchCustom.cpp
deleted file mode 100644
index 83c2b83..0000000
--- a/WebCore/bindings/js/JSTouchCustom.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2010, The Android Open Source Project
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSTouch.h"
-
-#if ENABLE(TOUCH_EVENTS)
-
-#include "Touch.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue toJSNewlyCreated(ExecState* exec, JSDOMGlobalObject* globalObject, Touch* touch)
-{
- if (!touch)
- return jsNull();
-
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, Touch, touch);
-}
-
-} // namespace WebCore
-
-#endif
diff --git a/WebCore/bindings/js/JSTouchListCustom.cpp b/WebCore/bindings/js/JSTouchListCustom.cpp
deleted file mode 100644
index 22e0f95..0000000
--- a/WebCore/bindings/js/JSTouchListCustom.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2010, The Android Open Source Project
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSTouchList.h"
-
-#if ENABLE(TOUCH_EVENTS)
-
-#include "TouchList.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue toJSNewlyCreated(ExecState* exec, JSDOMGlobalObject* globalObject, TouchList* touchList)
-{
- if (!touchList)
- return jsNull();
-
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, TouchList, touchList);
-}
-
-} // namespace WebCore
-
-#endif
diff --git a/WebCore/bindings/js/JSTreeWalkerCustom.cpp b/WebCore/bindings/js/JSTreeWalkerCustom.cpp
deleted file mode 100644
index 0c1947f..0000000
--- a/WebCore/bindings/js/JSTreeWalkerCustom.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2006, 2008, 2009 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "JSTreeWalker.h"
-
-#include "JSNode.h"
-#include "Node.h"
-#include "NodeFilter.h"
-#include "TreeWalker.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSTreeWalker::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (NodeFilter* filter = m_impl->filter())
- filter->markAggregate(markStack);
-}
-
-}
diff --git a/WebCore/bindings/js/JSUint16ArrayCustom.cpp b/WebCore/bindings/js/JSUint16ArrayCustom.cpp
deleted file mode 100644
index 6a024ee..0000000
--- a/WebCore/bindings/js/JSUint16ArrayCustom.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
-
-#include "JSUint16Array.h"
-
-#include "JSArrayBufferViewHelper.h"
-#include "Uint16Array.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSUint16Array::indexSetter(JSC::ExecState* exec, unsigned index, JSC::JSValue value)
-{
- impl()->set(index, static_cast<unsigned short>(value.toInt32(exec)));
-}
-
-JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, Uint16Array* object)
-{
- return getDOMObjectWrapper<JSUint16Array>(exec, globalObject, object);
-}
-
-JSC::JSValue JSUint16Array::set(JSC::ExecState* exec)
-{
- return setWebGLArrayHelper(exec, impl(), toUint16Array);
-}
-
-EncodedJSValue JSC_HOST_CALL JSUint16ArrayConstructor::constructJSUint16Array(ExecState* exec)
-{
- JSUint16ArrayConstructor* jsConstructor = static_cast<JSUint16ArrayConstructor*>(exec->callee());
- RefPtr<Uint16Array> array = constructArrayBufferView<Uint16Array, unsigned short>(exec);
- if (!array.get())
- // Exception has already been thrown.
- return JSValue::encode(JSValue());
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), array.get())));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(3D_CANVAS) || ENABLE(BLOB)
diff --git a/WebCore/bindings/js/JSUint32ArrayCustom.cpp b/WebCore/bindings/js/JSUint32ArrayCustom.cpp
deleted file mode 100644
index 34eb8de..0000000
--- a/WebCore/bindings/js/JSUint32ArrayCustom.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
-
-#include "JSUint32Array.h"
-
-#include "JSArrayBufferViewHelper.h"
-#include "Uint32Array.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSUint32Array::indexSetter(JSC::ExecState* exec, unsigned index, JSC::JSValue value)
-{
- impl()->set(index, static_cast<unsigned int>(value.toUInt32(exec)));
-}
-
-JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, Uint32Array* object)
-{
- return getDOMObjectWrapper<JSUint32Array>(exec, globalObject, object);
-}
-
-JSC::JSValue JSUint32Array::set(JSC::ExecState* exec)
-{
- return setWebGLArrayHelper(exec, impl(), toUint32Array);
-}
-
-EncodedJSValue JSC_HOST_CALL JSUint32ArrayConstructor::constructJSUint32Array(ExecState* exec)
-{
- JSUint32ArrayConstructor* jsConstructor = static_cast<JSUint32ArrayConstructor*>(exec->callee());
- RefPtr<Uint32Array> array = constructArrayBufferView<Uint32Array, unsigned int>(exec);
- if (!array.get())
- // Exception has already been thrown.
- return JSValue::encode(JSValue());
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), array.get())));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(3D_CANVAS) || ENABLE(BLOB)
diff --git a/WebCore/bindings/js/JSUint8ArrayCustom.cpp b/WebCore/bindings/js/JSUint8ArrayCustom.cpp
deleted file mode 100644
index a9ed73f..0000000
--- a/WebCore/bindings/js/JSUint8ArrayCustom.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
-
-#include "JSUint8Array.h"
-
-#include "JSArrayBufferViewHelper.h"
-#include "Uint8Array.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSUint8Array::indexSetter(JSC::ExecState* exec, unsigned index, JSC::JSValue value)
-{
- impl()->set(index, static_cast<unsigned char>(value.toInt32(exec)));
-}
-
-JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, Uint8Array* object)
-{
- return getDOMObjectWrapper<JSUint8Array>(exec, globalObject, object);
-}
-
-JSC::JSValue JSUint8Array::set(JSC::ExecState* exec)
-{
- return setWebGLArrayHelper(exec, impl(), toUint8Array);
-}
-
-EncodedJSValue JSC_HOST_CALL JSUint8ArrayConstructor::constructJSUint8Array(ExecState* exec)
-{
- JSUint8ArrayConstructor* jsConstructor = static_cast<JSUint8ArrayConstructor*>(exec->callee());
- RefPtr<Uint8Array> array = constructArrayBufferView<Uint8Array, unsigned char>(exec);
- if (!array.get())
- // Exception has already been thrown.
- return JSValue::encode(JSValue());
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), array.get())));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(3D_CANVAS) || ENABLE(BLOB)
diff --git a/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp b/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp
deleted file mode 100644
index e1963da..0000000
--- a/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp
+++ /dev/null
@@ -1,696 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(3D_CANVAS)
-
-#include "JSWebGLRenderingContext.h"
-
-#include "ExceptionCode.h"
-#include "HTMLCanvasElement.h"
-#include "HTMLImageElement.h"
-#include "JSHTMLCanvasElement.h"
-#include "JSHTMLImageElement.h"
-#include "JSImageData.h"
-#include "JSOESTextureFloat.h"
-#include "JSWebGLBuffer.h"
-#include "JSFloat32Array.h"
-#include "JSWebGLFramebuffer.h"
-#include "JSInt32Array.h"
-#include "JSWebGLProgram.h"
-#include "JSWebGLRenderbuffer.h"
-#include "JSWebGLShader.h"
-#include "JSWebGLTexture.h"
-#include "JSWebGLUniformLocation.h"
-#include "JSUint8Array.h"
-#include "JSWebKitCSSMatrix.h"
-#include "NotImplemented.h"
-#include "OESTextureFloat.h"
-#include "WebGLBuffer.h"
-#include "Float32Array.h"
-#include "WebGLExtension.h"
-#include "WebGLFramebuffer.h"
-#include "WebGLGetInfo.h"
-#include "Int32Array.h"
-#include "WebGLProgram.h"
-#include "WebGLRenderingContext.h"
-#include <runtime/Error.h>
-#include <runtime/JSArray.h>
-#include <wtf/FastMalloc.h>
-#include <wtf/OwnFastMallocPtr.h>
-
-#if ENABLE(VIDEO)
-#include "HTMLVideoElement.h"
-#include "JSHTMLVideoElement.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-static JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, const WebGLGetInfo& info)
-{
- switch (info.getType()) {
- case WebGLGetInfo::kTypeBool:
- return jsBoolean(info.getBool());
- case WebGLGetInfo::kTypeBoolArray: {
- MarkedArgumentBuffer list;
- const Vector<bool>& value = info.getBoolArray();
- for (size_t ii = 0; ii < value.size(); ++ii)
- list.append(jsBoolean(value[ii]));
- return constructArray(exec, list);
- }
- case WebGLGetInfo::kTypeFloat:
- return jsNumber(info.getFloat());
- case WebGLGetInfo::kTypeLong:
- return jsNumber(info.getLong());
- case WebGLGetInfo::kTypeNull:
- return jsNull();
- case WebGLGetInfo::kTypeString:
- return jsString(exec, info.getString());
- case WebGLGetInfo::kTypeUnsignedLong:
- return jsNumber(info.getUnsignedLong());
- case WebGLGetInfo::kTypeWebGLBuffer:
- return toJS(exec, globalObject, info.getWebGLBuffer());
- case WebGLGetInfo::kTypeWebGLFloatArray:
- return toJS(exec, globalObject, info.getWebGLFloatArray());
- case WebGLGetInfo::kTypeWebGLFramebuffer:
- return toJS(exec, globalObject, info.getWebGLFramebuffer());
- case WebGLGetInfo::kTypeWebGLIntArray:
- return toJS(exec, globalObject, info.getWebGLIntArray());
- // FIXME: implement WebGLObjectArray
- // case WebGLGetInfo::kTypeWebGLObjectArray:
- case WebGLGetInfo::kTypeWebGLProgram:
- return toJS(exec, globalObject, info.getWebGLProgram());
- case WebGLGetInfo::kTypeWebGLRenderbuffer:
- return toJS(exec, globalObject, info.getWebGLRenderbuffer());
- case WebGLGetInfo::kTypeWebGLTexture:
- return toJS(exec, globalObject, info.getWebGLTexture());
- case WebGLGetInfo::kTypeWebGLUnsignedByteArray:
- return toJS(exec, globalObject, info.getWebGLUnsignedByteArray());
- default:
- notImplemented();
- return jsUndefined();
- }
-}
-
-enum ObjectType {
- kBuffer, kRenderbuffer, kTexture, kVertexAttrib
-};
-
-static JSValue getObjectParameter(JSWebGLRenderingContext* obj, ExecState* exec, ObjectType objectType)
-{
- if (exec->argumentCount() != 2)
- return throwSyntaxError(exec);
-
- ExceptionCode ec = 0;
- WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(obj->impl());
- unsigned target = exec->argument(0).toInt32(exec);
- if (exec->hadException())
- return jsUndefined();
- unsigned pname = exec->argument(1).toInt32(exec);
- if (exec->hadException())
- return jsUndefined();
- WebGLGetInfo info;
- switch (objectType) {
- case kBuffer:
- info = context->getBufferParameter(target, pname, ec);
- break;
- case kRenderbuffer:
- info = context->getRenderbufferParameter(target, pname, ec);
- break;
- case kTexture:
- info = context->getTexParameter(target, pname, ec);
- break;
- case kVertexAttrib:
- // target => index
- info = context->getVertexAttrib(target, pname, ec);
- break;
- default:
- notImplemented();
- break;
- }
- if (ec) {
- setDOMException(exec, ec);
- return jsUndefined();
- }
- return toJS(exec, obj->globalObject(), info);
-}
-
-enum WhichProgramCall {
- kProgramParameter, kUniform
-};
-
-static JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, WebGLExtension* extension)
-{
- if (!extension)
- return jsNull();
- switch (extension->getName()) {
- case WebGLExtension::OESTextureFloatName:
- return toJS(exec, globalObject, static_cast<OESTextureFloat*>(extension));
- }
- ASSERT_NOT_REACHED();
- return jsNull();
-}
-
-void JSWebGLRenderingContext::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl());
- for (int i = 0; i < context->getNumberOfExtensions(); ++i)
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), context->getExtensionNumber(i));
-}
-
-JSValue JSWebGLRenderingContext::getAttachedShaders(ExecState* exec)
-{
- if (exec->argumentCount() < 1)
- return throwSyntaxError(exec);
- ExceptionCode ec = 0;
- WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl());
- if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
- return throwTypeError(exec);
- WebGLProgram* program = toWebGLProgram(exec->argument(0));
- if (exec->hadException())
- return jsNull();
- Vector<WebGLShader*> shaders;
- bool succeed = context->getAttachedShaders(program, shaders, ec);
- if (ec) {
- setDOMException(exec, ec);
- return jsNull();
- }
- if (!succeed)
- return jsNull();
- MarkedArgumentBuffer list;
- for (size_t ii = 0; ii < shaders.size(); ++ii)
- list.append(toJS(exec, globalObject(), shaders[ii]));
- return constructArray(exec, list);
-}
-
-JSValue JSWebGLRenderingContext::getExtension(ExecState* exec)
-{
- if (exec->argumentCount() < 1)
- return throwSyntaxError(exec);
-
- WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl());
- const String& name = ustringToString(exec->argument(0).toString(exec));
- if (exec->hadException())
- return jsUndefined();
- WebGLExtension* extension = context->getExtension(name);
- return toJS(exec, globalObject(), extension);
-}
-
-JSValue JSWebGLRenderingContext::getBufferParameter(ExecState* exec)
-{
- return getObjectParameter(this, exec, kBuffer);
-}
-
-JSValue JSWebGLRenderingContext::getFramebufferAttachmentParameter(ExecState* exec)
-{
- if (exec->argumentCount() != 3)
- return throwSyntaxError(exec);
-
- ExceptionCode ec = 0;
- WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl());
- unsigned target = exec->argument(0).toInt32(exec);
- if (exec->hadException())
- return jsUndefined();
- unsigned attachment = exec->argument(1).toInt32(exec);
- if (exec->hadException())
- return jsUndefined();
- unsigned pname = exec->argument(2).toInt32(exec);
- if (exec->hadException())
- return jsUndefined();
- WebGLGetInfo info = context->getFramebufferAttachmentParameter(target, attachment, pname, ec);
- if (ec) {
- setDOMException(exec, ec);
- return jsUndefined();
- }
- return toJS(exec, globalObject(), info);
-}
-
-JSValue JSWebGLRenderingContext::getParameter(ExecState* exec)
-{
- if (exec->argumentCount() != 1)
- return throwSyntaxError(exec);
-
- ExceptionCode ec = 0;
- WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl());
- unsigned pname = exec->argument(0).toInt32(exec);
- if (exec->hadException())
- return jsUndefined();
- WebGLGetInfo info = context->getParameter(pname, ec);
- if (ec) {
- setDOMException(exec, ec);
- return jsUndefined();
- }
- return toJS(exec, globalObject(), info);
-}
-
-JSValue JSWebGLRenderingContext::getProgramParameter(ExecState* exec)
-{
- if (exec->argumentCount() != 2)
- return throwSyntaxError(exec);
-
- ExceptionCode ec = 0;
- WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl());
- if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
- return throwTypeError(exec);
- WebGLProgram* program = toWebGLProgram(exec->argument(0));
- unsigned pname = exec->argument(1).toInt32(exec);
- if (exec->hadException())
- return jsUndefined();
- WebGLGetInfo info = context->getProgramParameter(program, pname, ec);
- if (ec) {
- setDOMException(exec, ec);
- return jsUndefined();
- }
- return toJS(exec, globalObject(), info);
-}
-
-JSValue JSWebGLRenderingContext::getRenderbufferParameter(ExecState* exec)
-{
- return getObjectParameter(this, exec, kRenderbuffer);
-}
-
-JSValue JSWebGLRenderingContext::getShaderParameter(ExecState* exec)
-{
- if (exec->argumentCount() != 2)
- return throwSyntaxError(exec);
-
- ExceptionCode ec = 0;
- WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl());
- if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLShader::s_info))
- return throwTypeError(exec);
- WebGLShader* shader = toWebGLShader(exec->argument(0));
- unsigned pname = exec->argument(1).toInt32(exec);
- if (exec->hadException())
- return jsUndefined();
- WebGLGetInfo info = context->getShaderParameter(shader, pname, ec);
- if (ec) {
- setDOMException(exec, ec);
- return jsUndefined();
- }
- return toJS(exec, globalObject(), info);
-}
-
-JSValue JSWebGLRenderingContext::getSupportedExtensions(ExecState* exec)
-{
- WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl());
- Vector<String> value = context->getSupportedExtensions();
- MarkedArgumentBuffer list;
- for (size_t ii = 0; ii < value.size(); ++ii)
- list.append(jsString(exec, value[ii]));
- return constructArray(exec, list);
-}
-
-JSValue JSWebGLRenderingContext::getTexParameter(ExecState* exec)
-{
- return getObjectParameter(this, exec, kTexture);
-}
-
-JSValue JSWebGLRenderingContext::getUniform(ExecState* exec)
-{
- if (exec->argumentCount() != 2)
- return throwSyntaxError(exec);
-
- ExceptionCode ec = 0;
- WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl());
- if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
- return throwTypeError(exec);
- WebGLProgram* program = toWebGLProgram(exec->argument(0));
- if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSWebGLUniformLocation::s_info))
- return throwTypeError(exec);
- WebGLUniformLocation* loc = toWebGLUniformLocation(exec->argument(1));
- if (exec->hadException())
- return jsUndefined();
- WebGLGetInfo info = context->getUniform(program, loc, ec);
- if (ec) {
- setDOMException(exec, ec);
- return jsUndefined();
- }
- return toJS(exec, globalObject(), info);
-}
-
-JSValue JSWebGLRenderingContext::getVertexAttrib(ExecState* exec)
-{
- return getObjectParameter(this, exec, kVertexAttrib);
-}
-
-template<typename T, size_t inlineCapacity>
-bool toVector(JSC::ExecState* exec, JSC::JSValue value, Vector<T, inlineCapacity>& vector)
-{
- if (!value.isObject())
- return false;
-
- JSC::JSObject* object = asObject(value);
- int32_t length = object->get(exec, JSC::Identifier(exec, "length")).toInt32(exec);
- vector.resize(length);
-
- for (int32_t i = 0; i < length; ++i) {
- JSC::JSValue v = object->get(exec, i);
- if (exec->hadException())
- return false;
- vector[i] = static_cast<T>(v.toNumber(exec));
- }
-
- return true;
-}
-
-enum DataFunctionToCall {
- f_uniform1v, f_uniform2v, f_uniform3v, f_uniform4v,
- f_vertexAttrib1v, f_vertexAttrib2v, f_vertexAttrib3v, f_vertexAttrib4v
-};
-
-enum DataFunctionMatrixToCall {
- f_uniformMatrix2fv, f_uniformMatrix3fv, f_uniformMatrix4fv
-};
-
-static bool functionForUniform(DataFunctionToCall f)
-{
- switch (f) {
- case f_uniform1v:
- case f_uniform2v:
- case f_uniform3v:
- case f_uniform4v:
- return true;
- break;
- default: break;
- }
- return false;
-}
-
-static JSC::JSValue dataFunctionf(DataFunctionToCall f, JSC::ExecState* exec, WebGLRenderingContext* context)
-{
- if (exec->argumentCount() != 2)
- return throwSyntaxError(exec);
-
- WebGLUniformLocation* location = 0;
- long index = -1;
-
- if (functionForUniform(f)) {
- if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
- return throwTypeError(exec);
- location = toWebGLUniformLocation(exec->argument(0));
- } else
- index = exec->argument(0).toInt32(exec);
-
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<Float32Array> webGLArray = toFloat32Array(exec->argument(1));
- if (exec->hadException())
- return jsUndefined();
-
- ExceptionCode ec = 0;
- if (webGLArray) {
- switch (f) {
- case f_uniform1v:
- context->uniform1fv(location, webGLArray.get(), ec);
- break;
- case f_uniform2v:
- context->uniform2fv(location, webGLArray.get(), ec);
- break;
- case f_uniform3v:
- context->uniform3fv(location, webGLArray.get(), ec);
- break;
- case f_uniform4v:
- context->uniform4fv(location, webGLArray.get(), ec);
- break;
- case f_vertexAttrib1v:
- context->vertexAttrib1fv(index, webGLArray.get());
- break;
- case f_vertexAttrib2v:
- context->vertexAttrib2fv(index, webGLArray.get());
- break;
- case f_vertexAttrib3v:
- context->vertexAttrib3fv(index, webGLArray.get());
- break;
- case f_vertexAttrib4v:
- context->vertexAttrib4fv(index, webGLArray.get());
- break;
- }
-
- setDOMException(exec, ec);
- return jsUndefined();
- }
-
- Vector<float, 64> array;
- if (!toVector(exec, exec->argument(1), array))
- return throwTypeError(exec);
-
- switch (f) {
- case f_uniform1v:
- context->uniform1fv(location, array.data(), array.size(), ec);
- break;
- case f_uniform2v:
- context->uniform2fv(location, array.data(), array.size(), ec);
- break;
- case f_uniform3v:
- context->uniform3fv(location, array.data(), array.size(), ec);
- break;
- case f_uniform4v:
- context->uniform4fv(location, array.data(), array.size(), ec);
- break;
- case f_vertexAttrib1v:
- context->vertexAttrib1fv(index, array.data(), array.size());
- break;
- case f_vertexAttrib2v:
- context->vertexAttrib2fv(index, array.data(), array.size());
- break;
- case f_vertexAttrib3v:
- context->vertexAttrib3fv(index, array.data(), array.size());
- break;
- case f_vertexAttrib4v:
- context->vertexAttrib4fv(index, array.data(), array.size());
- break;
- }
-
- setDOMException(exec, ec);
- return jsUndefined();
-}
-
-static JSC::JSValue dataFunctioni(DataFunctionToCall f, JSC::ExecState* exec, WebGLRenderingContext* context)
-{
- if (exec->argumentCount() != 2)
- return throwSyntaxError(exec);
-
- if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
- return throwTypeError(exec);
- WebGLUniformLocation* location = toWebGLUniformLocation(exec->argument(0));
-
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<Int32Array> webGLArray = toInt32Array(exec->argument(1));
- if (exec->hadException())
- return jsUndefined();
-
- ExceptionCode ec = 0;
- if (webGLArray) {
- switch (f) {
- case f_uniform1v:
- context->uniform1iv(location, webGLArray.get(), ec);
- break;
- case f_uniform2v:
- context->uniform2iv(location, webGLArray.get(), ec);
- break;
- case f_uniform3v:
- context->uniform3iv(location, webGLArray.get(), ec);
- break;
- case f_uniform4v:
- context->uniform4iv(location, webGLArray.get(), ec);
- break;
- default:
- break;
- }
-
- setDOMException(exec, ec);
- return jsUndefined();
- }
-
-
- Vector<int, 64> array;
- if (!toVector(exec, exec->argument(1), array))
- return throwTypeError(exec);
-
- switch (f) {
- case f_uniform1v:
- context->uniform1iv(location, array.data(), array.size(), ec);
- break;
- case f_uniform2v:
- context->uniform2iv(location, array.data(), array.size(), ec);
- break;
- case f_uniform3v:
- context->uniform3iv(location, array.data(), array.size(), ec);
- break;
- case f_uniform4v:
- context->uniform4iv(location, array.data(), array.size(), ec);
- break;
- default:
- break;
- }
-
- setDOMException(exec, ec);
- return jsUndefined();
-}
-
-static JSC::JSValue dataFunctionMatrix(DataFunctionMatrixToCall f, JSC::ExecState* exec, WebGLRenderingContext* context)
-{
- if (exec->argumentCount() != 3)
- return throwSyntaxError(exec);
-
- if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
- return throwTypeError(exec);
- WebGLUniformLocation* location = toWebGLUniformLocation(exec->argument(0));
-
- if (exec->hadException())
- return jsUndefined();
-
- bool transpose = exec->argument(1).toBoolean(exec);
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<Float32Array> webGLArray = toFloat32Array(exec->argument(2));
- if (exec->hadException())
- return jsUndefined();
-
- ExceptionCode ec = 0;
- if (webGLArray) {
- switch (f) {
- case f_uniformMatrix2fv:
- context->uniformMatrix2fv(location, transpose, webGLArray.get(), ec);
- break;
- case f_uniformMatrix3fv:
- context->uniformMatrix3fv(location, transpose, webGLArray.get(), ec);
- break;
- case f_uniformMatrix4fv:
- context->uniformMatrix4fv(location, transpose, webGLArray.get(), ec);
- break;
- }
-
- setDOMException(exec, ec);
- return jsUndefined();
- }
-
- Vector<float, 64> array;
- if (!toVector(exec, exec->argument(2), array))
- return throwTypeError(exec);
-
- switch (f) {
- case f_uniformMatrix2fv:
- context->uniformMatrix2fv(location, transpose, array.data(), array.size(), ec);
- break;
- case f_uniformMatrix3fv:
- context->uniformMatrix3fv(location, transpose, array.data(), array.size(), ec);
- break;
- case f_uniformMatrix4fv:
- context->uniformMatrix4fv(location, transpose, array.data(), array.size(), ec);
- break;
- }
-
- setDOMException(exec, ec);
- return jsUndefined();
-}
-
-JSC::JSValue JSWebGLRenderingContext::uniform1fv(JSC::ExecState* exec)
-{
- return dataFunctionf(f_uniform1v, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::uniform1iv(JSC::ExecState* exec)
-{
- return dataFunctioni(f_uniform1v, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::uniform2fv(JSC::ExecState* exec)
-{
- return dataFunctionf(f_uniform2v, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::uniform2iv(JSC::ExecState* exec)
-{
- return dataFunctioni(f_uniform2v, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::uniform3fv(JSC::ExecState* exec)
-{
- return dataFunctionf(f_uniform3v, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::uniform3iv(JSC::ExecState* exec)
-{
- return dataFunctioni(f_uniform3v, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::uniform4fv(JSC::ExecState* exec)
-{
- return dataFunctionf(f_uniform4v, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::uniform4iv(JSC::ExecState* exec)
-{
- return dataFunctioni(f_uniform4v, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::uniformMatrix2fv(JSC::ExecState* exec)
-{
- return dataFunctionMatrix(f_uniformMatrix2fv, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::uniformMatrix3fv(JSC::ExecState* exec)
-{
- return dataFunctionMatrix(f_uniformMatrix3fv, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::uniformMatrix4fv(JSC::ExecState* exec)
-{
- return dataFunctionMatrix(f_uniformMatrix4fv, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::vertexAttrib1fv(JSC::ExecState* exec)
-{
- return dataFunctionf(f_vertexAttrib1v, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::vertexAttrib2fv(JSC::ExecState* exec)
-{
- return dataFunctionf(f_vertexAttrib2v, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::vertexAttrib3fv(JSC::ExecState* exec)
-{
- return dataFunctionf(f_vertexAttrib3v, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-JSC::JSValue JSWebGLRenderingContext::vertexAttrib4fv(JSC::ExecState* exec)
-{
- return dataFunctionf(f_vertexAttrib4v, exec, static_cast<WebGLRenderingContext*>(impl()));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(3D_CANVAS)
diff --git a/WebCore/bindings/js/JSWebKitCSSKeyframeRuleCustom.cpp b/WebCore/bindings/js/JSWebKitCSSKeyframeRuleCustom.cpp
deleted file mode 100644
index 0eaebf1..0000000
--- a/WebCore/bindings/js/JSWebKitCSSKeyframeRuleCustom.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSWebKitCSSKeyframeRule.h"
-
-#include "WebKitCSSKeyframeRule.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSWebKitCSSKeyframeRule::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (CSSMutableStyleDeclaration* style = static_cast<WebKitCSSKeyframeRule*>(impl())->style())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), style);
-}
-
-}
diff --git a/WebCore/bindings/js/JSWebKitCSSKeyframesRuleCustom.cpp b/WebCore/bindings/js/JSWebKitCSSKeyframesRuleCustom.cpp
deleted file mode 100644
index b590b6a..0000000
--- a/WebCore/bindings/js/JSWebKitCSSKeyframesRuleCustom.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSWebKitCSSKeyframesRule.h"
-
-#include "WebKitCSSKeyframesRule.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSWebKitCSSKeyframesRule::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (CSSRuleList* rules = static_cast<WebKitCSSKeyframesRule*>(impl())->cssRules())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), rules);
-}
-
-}
diff --git a/WebCore/bindings/js/JSWebKitCSSMatrixCustom.cpp b/WebCore/bindings/js/JSWebKitCSSMatrixCustom.cpp
deleted file mode 100644
index 0889dcf..0000000
--- a/WebCore/bindings/js/JSWebKitCSSMatrixCustom.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSWebKitCSSMatrix.h"
-
-#include "WebKitCSSMatrix.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-EncodedJSValue JSC_HOST_CALL JSWebKitCSSMatrixConstructor::constructJSWebKitCSSMatrix(ExecState* exec)
-{
- JSWebKitCSSMatrixConstructor* jsConstructor = static_cast<JSWebKitCSSMatrixConstructor*>(exec->callee());
- String s;
- if (exec->argumentCount() >= 1)
- s = ustringToString(exec->argument(0).toString(exec));
-
- ExceptionCode ec = 0;
- RefPtr<WebKitCSSMatrix> matrix = WebKitCSSMatrix::create(s, ec);
- setDOMException(exec, ec);
- return JSValue::encode(CREATE_DOM_OBJECT_WRAPPER(exec, jsConstructor->globalObject(), WebKitCSSMatrix, matrix.get()));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSWebKitPointCustom.cpp b/WebCore/bindings/js/JSWebKitPointCustom.cpp
deleted file mode 100644
index e1b20ce..0000000
--- a/WebCore/bindings/js/JSWebKitPointCustom.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSWebKitPoint.h"
-
-#include "WebKitPoint.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-EncodedJSValue JSC_HOST_CALL JSWebKitPointConstructor::constructJSWebKitPoint(ExecState* exec)
-{
- JSWebKitPointConstructor* jsConstructor = static_cast<JSWebKitPointConstructor*>(exec->callee());
-
- float x = 0;
- float y = 0;
- if (exec->argumentCount() >= 2) {
- x = static_cast<float>(exec->argument(0).toNumber(exec));
- y = static_cast<float>(exec->argument(1).toNumber(exec));
- if (isnan(x))
- x = 0;
- if (isnan(y))
- y = 0;
- }
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), WebKitPoint::create(x, y))));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSWebSocketCustom.cpp b/WebCore/bindings/js/JSWebSocketCustom.cpp
deleted file mode 100644
index 813c0d4..0000000
--- a/WebCore/bindings/js/JSWebSocketCustom.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- * Copyright (C) 2009, 2010 Apple, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(WEB_SOCKETS)
-
-#include "JSWebSocket.h"
-
-#include "KURL.h"
-#include "JSEventListener.h"
-#include "WebSocket.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-EncodedJSValue JSC_HOST_CALL JSWebSocketConstructor::constructJSWebSocket(ExecState* exec)
-{
- JSWebSocketConstructor* jsConstructor = static_cast<JSWebSocketConstructor*>(exec->callee());
- ScriptExecutionContext* context = jsConstructor->scriptExecutionContext();
- if (!context)
- return throwVMError(exec, createReferenceError(exec, "WebSocket constructor associated document is unavailable"));
-
- if (!exec->argumentCount())
- return throwVMError(exec, createSyntaxError(exec, "Not enough arguments"));
-
- String urlString = ustringToString(exec->argument(0).toString(exec));
- if (exec->hadException())
- return throwVMError(exec, createSyntaxError(exec, "wrong URL"));
- KURL url = context->completeURL(urlString);
- RefPtr<WebSocket> webSocket = WebSocket::create(context);
- ExceptionCode ec = 0;
- if (exec->argumentCount() < 2)
- webSocket->connect(url, ec);
- else {
- String protocol = ustringToString(exec->argument(1).toString(exec));
- if (exec->hadException())
- return JSValue::encode(JSValue());
- webSocket->connect(url, protocol, ec);
- }
- setDOMException(exec, ec);
- return JSValue::encode(CREATE_DOM_OBJECT_WRAPPER(exec, jsConstructor->globalObject(), WebSocket, webSocket.get()));
-}
-
-} // namespace WebCore
-
-#endif
diff --git a/WebCore/bindings/js/JSWorkerContextBase.cpp b/WebCore/bindings/js/JSWorkerContextBase.cpp
deleted file mode 100644
index effe488..0000000
--- a/WebCore/bindings/js/JSWorkerContextBase.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2009 Google Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include "config.h"
-
-#if ENABLE(WORKERS)
-
-#include "JSWorkerContextBase.h"
-
-#include "JSDedicatedWorkerContext.h"
-#include "JSSharedWorkerContext.h"
-#include "JSWorkerContext.h"
-#include "WorkerContext.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-ASSERT_CLASS_FITS_IN_CELL(JSWorkerContextBase);
-
-const ClassInfo JSWorkerContextBase::s_info = { "WorkerContext", &JSDOMGlobalObject::s_info, 0, 0 };
-
-JSWorkerContextBase::JSWorkerContextBase(NonNullPassRefPtr<JSC::Structure> structure, PassRefPtr<WorkerContext> impl)
- : JSDOMGlobalObject(structure, new JSDOMGlobalObjectData(normalWorld(*impl->script()->globalData())), this)
- , m_impl(impl)
-{
-}
-
-JSWorkerContextBase::~JSWorkerContextBase()
-{
-}
-
-ScriptExecutionContext* JSWorkerContextBase::scriptExecutionContext() const
-{
- return m_impl.get();
-}
-
-JSValue toJS(ExecState* exec, JSDOMGlobalObject*, WorkerContext* workerContext)
-{
- return toJS(exec, workerContext);
-}
-
-JSValue toJS(ExecState*, WorkerContext* workerContext)
-{
- if (!workerContext)
- return jsNull();
- WorkerScriptController* script = workerContext->script();
- if (!script)
- return jsNull();
- JSWorkerContext* contextWrapper = script->workerContextWrapper();
- ASSERT(contextWrapper);
- return contextWrapper;
-}
-
-JSDedicatedWorkerContext* toJSDedicatedWorkerContext(JSValue value)
-{
- if (!value.isObject())
- return 0;
- const ClassInfo* classInfo = asObject(value)->classInfo();
- if (classInfo == &JSDedicatedWorkerContext::s_info)
- return static_cast<JSDedicatedWorkerContext*>(asObject(value));
- return 0;
-}
-
-#if ENABLE(SHARED_WORKERS)
-JSSharedWorkerContext* toJSSharedWorkerContext(JSValue value)
-{
- if (!value.isObject())
- return 0;
- const ClassInfo* classInfo = asObject(value)->classInfo();
- if (classInfo == &JSSharedWorkerContext::s_info)
- return static_cast<JSSharedWorkerContext*>(asObject(value));
- return 0;
-}
-#endif
-
-JSWorkerContext* toJSWorkerContext(JSValue value)
-{
- JSWorkerContext* context = toJSDedicatedWorkerContext(value);
-#if ENABLE(SHARED_WORKERS)
- if (!context)
- context = toJSSharedWorkerContext(value);
-#endif
- return context;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WORKERS)
diff --git a/WebCore/bindings/js/JSWorkerContextBase.h b/WebCore/bindings/js/JSWorkerContextBase.h
deleted file mode 100644
index 45238f1..0000000
--- a/WebCore/bindings/js/JSWorkerContextBase.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#ifndef JSWorkerContextBase_h
-#define JSWorkerContextBase_h
-
-#if ENABLE(WORKERS)
-
-#include "JSDOMGlobalObject.h"
-
-namespace WebCore {
-
- class JSDedicatedWorkerContext;
- class JSSharedWorkerContext;
- class JSWorkerContext;
- class WorkerContext;
-
- class JSWorkerContextBase : public JSDOMGlobalObject {
- typedef JSDOMGlobalObject Base;
- public:
- JSWorkerContextBase(NonNullPassRefPtr<JSC::Structure>, PassRefPtr<WorkerContext>);
- virtual ~JSWorkerContextBase();
-
- virtual const JSC::ClassInfo* classInfo() const { return &s_info; }
- static const JSC::ClassInfo s_info;
-
- WorkerContext* impl() const { return m_impl.get(); }
- virtual ScriptExecutionContext* scriptExecutionContext() const;
-
- private:
- RefPtr<WorkerContext> m_impl;
- };
-
- // Returns a JSWorkerContext or jsNull()
- // Always ignores the execState and passed globalObject, WorkerContext is itself a globalObject and will always use its own prototype chain.
- JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, WorkerContext*);
- JSC::JSValue toJS(JSC::ExecState*, WorkerContext*);
-
- JSDedicatedWorkerContext* toJSDedicatedWorkerContext(JSC::JSValue);
- JSWorkerContext* toJSWorkerContext(JSC::JSValue);
-
-#if ENABLE(SHARED_WORKERS)
- JSSharedWorkerContext* toJSSharedWorkerContext(JSC::JSValue);
-#endif
-
-} // namespace WebCore
-
-#endif // ENABLE(WORKERS)
-
-#endif // JSWorkerContextBase_h
diff --git a/WebCore/bindings/js/JSWorkerContextCustom.cpp b/WebCore/bindings/js/JSWorkerContextCustom.cpp
deleted file mode 100644
index 8c1caef..0000000
--- a/WebCore/bindings/js/JSWorkerContextCustom.cpp
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(WORKERS)
-
-#include "JSWorkerContext.h"
-
-#include "ExceptionCode.h"
-#include "JSDOMBinding.h"
-#include "JSDOMGlobalObject.h"
-#include "JSEventListener.h"
-#include "JSEventSource.h"
-#include "JSMessageChannel.h"
-#include "JSMessagePort.h"
-#include "JSWorkerLocation.h"
-#include "JSWorkerNavigator.h"
-#include "JSXMLHttpRequest.h"
-#include "ScheduledAction.h"
-#include "WorkerContext.h"
-#include "WorkerLocation.h"
-#include "WorkerNavigator.h"
-#include <interpreter/Interpreter.h>
-
-#if ENABLE(WEB_SOCKETS)
-#include "JSWebSocket.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSWorkerContext::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- JSGlobalData& globalData = this->globalData();
-
- markActiveObjectsForContext(markStack, globalData, scriptExecutionContext());
-
- markDOMObjectWrapper(markStack, globalData, impl()->optionalLocation());
- markDOMObjectWrapper(markStack, globalData, impl()->optionalNavigator());
-
- impl()->markJSEventListeners(markStack);
-}
-
-bool JSWorkerContext::getOwnPropertySlotDelegate(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
-{
- // Look for overrides before looking at any of our own properties.
- if (JSGlobalObject::getOwnPropertySlot(exec, propertyName, slot))
- return true;
- return false;
-}
-
-bool JSWorkerContext::getOwnPropertyDescriptorDelegate(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
-{
- // Look for overrides before looking at any of our own properties.
- if (JSGlobalObject::getOwnPropertyDescriptor(exec, propertyName, descriptor))
- return true;
- return false;
-}
-
-#if ENABLE(EVENTSOURCE)
-JSValue JSWorkerContext::eventSource(ExecState* exec) const
-{
- return getDOMConstructor<JSEventSourceConstructor>(exec, this);
-}
-#endif
-
-JSValue JSWorkerContext::xmlHttpRequest(ExecState* exec) const
-{
- return getDOMConstructor<JSXMLHttpRequestConstructor>(exec, this);
-}
-
-#if ENABLE(WEB_SOCKETS)
-JSValue JSWorkerContext::webSocket(ExecState* exec) const
-{
- return getDOMConstructor<JSWebSocketConstructor>(exec, this);
-}
-#endif
-
-JSValue JSWorkerContext::importScripts(ExecState* exec)
-{
- if (!exec->argumentCount())
- return jsUndefined();
-
- Vector<String> urls;
- for (unsigned i = 0; i < exec->argumentCount(); i++) {
- urls.append(ustringToString(exec->argument(i).toString(exec)));
- if (exec->hadException())
- return jsUndefined();
- }
- ExceptionCode ec = 0;
-
- impl()->importScripts(urls, ec);
- setDOMException(exec, ec);
- return jsUndefined();
-}
-
-JSValue JSWorkerContext::setTimeout(ExecState* exec)
-{
- OwnPtr<ScheduledAction> action = ScheduledAction::create(exec, currentWorld(exec));
- if (exec->hadException())
- return jsUndefined();
- int delay = exec->argument(1).toInt32(exec);
- return jsNumber(impl()->setTimeout(action.release(), delay));
-}
-
-JSValue JSWorkerContext::setInterval(ExecState* exec)
-{
- OwnPtr<ScheduledAction> action = ScheduledAction::create(exec, currentWorld(exec));
- if (exec->hadException())
- return jsUndefined();
- int delay = exec->argument(1).toInt32(exec);
- return jsNumber(impl()->setInterval(action.release(), delay));
-}
-
-
-#if ENABLE(CHANNEL_MESSAGING)
-JSValue JSWorkerContext::messageChannel(ExecState* exec) const
-{
- return getDOMConstructor<JSMessageChannelConstructor>(exec, this);
-}
-#endif
-
-} // namespace WebCore
-
-#endif // ENABLE(WORKERS)
diff --git a/WebCore/bindings/js/JSWorkerContextErrorHandler.cpp b/WebCore/bindings/js/JSWorkerContextErrorHandler.cpp
deleted file mode 100644
index f7d2b02..0000000
--- a/WebCore/bindings/js/JSWorkerContextErrorHandler.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(WORKERS)
-
-#include "JSWorkerContextErrorHandler.h"
-
-#include "ErrorEvent.h"
-#include "Event.h"
-#include "JSEvent.h"
-#include <runtime/JSLock.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSWorkerContextErrorHandler::JSWorkerContextErrorHandler(JSObject* function, JSObject* wrapper, bool isAttribute, DOMWrapperWorld* isolatedWorld)
- : JSEventListener(function, wrapper, isAttribute, isolatedWorld)
-{
-}
-
-JSWorkerContextErrorHandler::~JSWorkerContextErrorHandler()
-{
-}
-
-void JSWorkerContextErrorHandler::handleEvent(ScriptExecutionContext* scriptExecutionContext, Event* event)
-{
- ASSERT(scriptExecutionContext);
- if (!scriptExecutionContext)
- return;
-
- JSLock lock(SilenceAssertionsOnly);
-
- JSObject* jsFunction = this->jsFunction(scriptExecutionContext);
- if (!jsFunction)
- return;
-
- JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(scriptExecutionContext, isolatedWorld());
- if (!globalObject)
- return;
-
- ExecState* exec = globalObject->globalExec();
-
- CallData callData;
- CallType callType = jsFunction->getCallData(callData);
-
- if (callType != CallTypeNone) {
-
- ref();
-
- Event* savedEvent = globalObject->currentEvent();
- globalObject->setCurrentEvent(event);
-
- ASSERT(event->isErrorEvent());
- ErrorEvent* errorEvent = static_cast<ErrorEvent*>(event);
-
- MarkedArgumentBuffer args;
- args.append(jsString(exec, errorEvent->message()));
- args.append(jsString(exec, errorEvent->filename()));
- args.append(jsNumber(errorEvent->lineno()));
-
- JSGlobalData& globalData = globalObject->globalData();
- DynamicGlobalObjectScope globalObjectScope(exec, globalData.dynamicGlobalObject ? globalData.dynamicGlobalObject : globalObject);
-
- JSValue thisValue = globalObject->toThisObject(exec);
-
- globalData.timeoutChecker.start();
- JSValue returnValue = JSC::call(exec, jsFunction, callType, callData, thisValue, args);
- globalData.timeoutChecker.stop();
-
- globalObject->setCurrentEvent(savedEvent);
-
- if (exec->hadException())
- reportCurrentException(exec);
- else {
- bool retvalbool;
- if (returnValue.getBoolean(retvalbool) && !retvalbool)
- event->preventDefault();
- }
-
- deref();
- }
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WORKERS)
diff --git a/WebCore/bindings/js/JSWorkerContextErrorHandler.h b/WebCore/bindings/js/JSWorkerContextErrorHandler.h
deleted file mode 100644
index a188299..0000000
--- a/WebCore/bindings/js/JSWorkerContextErrorHandler.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSWorkerContextErrorHandler_h
-#define JSWorkerContextErrorHandler_h
-
-#include "JSEventListener.h"
-
-namespace WebCore {
-
-class JSWorkerContextErrorHandler : public JSEventListener {
-public:
- static PassRefPtr<JSWorkerContextErrorHandler> create(JSC::JSObject* listener, JSC::JSObject* wrapper, bool isAttribute, DOMWrapperWorld* isolatedWorld)
- {
- return adoptRef(new JSWorkerContextErrorHandler(listener, wrapper, isAttribute, isolatedWorld));
- }
-
- virtual ~JSWorkerContextErrorHandler();
-
-private:
- JSWorkerContextErrorHandler(JSC::JSObject* function, JSC::JSObject* wrapper, bool isAttribute, DOMWrapperWorld* isolatedWorld);
- virtual void handleEvent(ScriptExecutionContext*, Event*);
-};
-
-// Creates a JS EventListener for "onerror" event handler in worker context. It has custom implementation because
-// unlike other event listeners it accepts three parameters.
-inline PassRefPtr<JSWorkerContextErrorHandler> createJSWorkerContextErrorHandler(JSC::ExecState* exec, JSC::JSValue listener, JSC::JSObject* wrapper)
-{
- if (!listener.isObject())
- return 0;
-
- return JSWorkerContextErrorHandler::create(asObject(listener), wrapper, true, currentWorld(exec));
-}
-
-} // namespace WebCore
-
-#endif // JSWorkerContextErrorHandler_h
diff --git a/WebCore/bindings/js/JSWorkerCustom.cpp b/WebCore/bindings/js/JSWorkerCustom.cpp
deleted file mode 100644
index 27580ae..0000000
--- a/WebCore/bindings/js/JSWorkerCustom.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(WORKERS)
-
-#include "JSWorker.h"
-
-#include "JSDOMGlobalObject.h"
-#include "JSMessagePortCustom.h"
-#include "Worker.h"
-#include "JSDOMWindowCustom.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSC::JSValue JSWorker::postMessage(JSC::ExecState* exec)
-{
- return handlePostMessage(exec, impl());
-}
-
-EncodedJSValue JSC_HOST_CALL JSWorkerConstructor::constructJSWorker(ExecState* exec)
-{
- JSWorkerConstructor* jsConstructor = static_cast<JSWorkerConstructor*>(exec->callee());
-
- if (!exec->argumentCount())
- return throwVMError(exec, createSyntaxError(exec, "Not enough arguments"));
-
- UString scriptURL = exec->argument(0).toString(exec);
- if (exec->hadException())
- return JSValue::encode(JSValue());
-
- // See section 4.8.2 step 14 of WebWorkers for why this is the lexicalGlobalObject.
- DOMWindow* window = asJSDOMWindow(exec->lexicalGlobalObject())->impl();
-
- ExceptionCode ec = 0;
- RefPtr<Worker> worker = Worker::create(ustringToString(scriptURL), window->document(), ec);
- if (ec) {
- setDOMException(exec, ec);
- return JSValue::encode(JSValue());
- }
-
- return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), worker.release())));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WORKERS)
diff --git a/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp b/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp
deleted file mode 100644
index a93db11..0000000
--- a/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSXMLHttpRequest.h"
-
-#include "ArrayBuffer.h"
-#include "Blob.h"
-#include "DOMFormData.h"
-#include "DOMWindow.h"
-#include "Document.h"
-#include "Event.h"
-#include "Frame.h"
-#include "FrameLoader.h"
-#include "HTMLDocument.h"
-#include "InspectorInstrumentation.h"
-#include "JSArrayBuffer.h"
-#include "JSBlob.h"
-#include "JSDOMFormData.h"
-#include "JSDOMWindowCustom.h"
-#include "JSDocument.h"
-#include "JSEvent.h"
-#include "JSEventListener.h"
-#include "XMLHttpRequest.h"
-#include <runtime/Error.h>
-#include <interpreter/Interpreter.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSXMLHttpRequest::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (XMLHttpRequestUpload* upload = m_impl->optionalUpload())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), upload);
-
- if (Document* responseDocument = m_impl->optionalResponseXML())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), responseDocument);
-
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
- if (ArrayBuffer* responseArrayBuffer = m_impl->optionalResponseArrayBuffer())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), responseArrayBuffer);
-#endif
-
-#if ENABLE(XHR_RESPONSE_BLOB)
- if (Blob* responseBlob = m_impl->optionalResponseBlob())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), responseBlob);
-#endif
-
- m_impl->markJSEventListeners(markStack);
-}
-
-// Custom functions
-JSValue JSXMLHttpRequest::open(ExecState* exec)
-{
- if (exec->argumentCount() < 2)
- return throwError(exec, createSyntaxError(exec, "Not enough arguments"));
-
- const KURL& url = impl()->scriptExecutionContext()->completeURL(ustringToString(exec->argument(1).toString(exec)));
- String method = ustringToString(exec->argument(0).toString(exec));
-
- ExceptionCode ec = 0;
- if (exec->argumentCount() >= 3) {
- bool async = exec->argument(2).toBoolean(exec);
-
- if (exec->argumentCount() >= 4 && !exec->argument(3).isUndefined()) {
- String user = valueToStringWithNullCheck(exec, exec->argument(3));
-
- if (exec->argumentCount() >= 5 && !exec->argument(4).isUndefined()) {
- String password = valueToStringWithNullCheck(exec, exec->argument(4));
- impl()->open(method, url, async, user, password, ec);
- } else
- impl()->open(method, url, async, user, ec);
- } else
- impl()->open(method, url, async, ec);
- } else
- impl()->open(method, url, ec);
-
- setDOMException(exec, ec);
- return jsUndefined();
-}
-
-JSValue JSXMLHttpRequest::send(ExecState* exec)
-{
- InspectorInstrumentation::willSendXMLHttpRequest(impl()->scriptExecutionContext(), impl()->url());
-
- ExceptionCode ec = 0;
- if (!exec->argumentCount())
- impl()->send(ec);
- else {
- JSValue val = exec->argument(0);
- if (val.isUndefinedOrNull())
- impl()->send(ec);
- else if (val.inherits(&JSDocument::s_info))
- impl()->send(toDocument(val), ec);
- else if (val.inherits(&JSBlob::s_info))
- impl()->send(toBlob(val), ec);
- else if (val.inherits(&JSDOMFormData::s_info))
- impl()->send(toDOMFormData(val), ec);
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
- else if (val.inherits(&JSArrayBuffer::s_info))
- impl()->send(toArrayBuffer(val), ec);
-#endif
- else
- impl()->send(ustringToString(val.toString(exec)), ec);
- }
-
- int signedLineNumber;
- intptr_t sourceID;
- UString sourceURL;
- JSValue function;
- exec->interpreter()->retrieveLastCaller(exec, signedLineNumber, sourceID, sourceURL, function);
- impl()->setLastSendLineNumber(signedLineNumber >= 0 ? signedLineNumber : 0);
- impl()->setLastSendURL(ustringToString(sourceURL));
-
- setDOMException(exec, ec);
- return jsUndefined();
-}
-
-JSValue JSXMLHttpRequest::responseText(ExecState* exec) const
-{
- ExceptionCode ec = 0;
- String text = impl()->responseText(ec);
- if (ec) {
- setDOMException(exec, ec);
- return jsUndefined();
- }
- return jsOwnedStringOrNull(exec, text);
-}
-
-JSValue JSXMLHttpRequest::response(ExecState* exec) const
-{
- switch (impl()->responseTypeCode()) {
- case XMLHttpRequest::ResponseTypeDefault:
- case XMLHttpRequest::ResponseTypeText:
- return responseText(exec);
-
- case XMLHttpRequest::ResponseTypeDocument:
- {
- ExceptionCode ec = 0;
- Document* document = impl()->responseXML(ec);
- if (ec) {
- setDOMException(exec, ec);
- return jsUndefined();
- }
- return toJS(exec, globalObject(), document);
- }
-
- case XMLHttpRequest::ResponseTypeBlob:
-#if ENABLE(XHR_RESPONSE_BLOB)
- {
- ExceptionCode ec = 0;
- Blob* blob = impl()->responseBlob(ec);
- if (ec) {
- setDOMException(exec, ec);
- return jsUndefined();
- }
- return toJS(exec, globalObject(), blob);
- }
-#else
- return jsUndefined();
-#endif
-
- case XMLHttpRequest::ResponseTypeArrayBuffer:
-#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
- {
- ExceptionCode ec = 0;
- ArrayBuffer* arrayBuffer = impl()->responseArrayBuffer(ec);
- if (ec) {
- setDOMException(exec, ec);
- return jsUndefined();
- }
- return toJS(exec, globalObject(), arrayBuffer);
- }
-#else
- return jsUndefined();
-#endif
- }
-
- return jsUndefined();
-}
-
-EncodedJSValue JSC_HOST_CALL JSXMLHttpRequestConstructor::constructJSXMLHttpRequest(ExecState* exec)
-{
- JSXMLHttpRequestConstructor* jsConstructor = static_cast<JSXMLHttpRequestConstructor*>(exec->callee());
- ScriptExecutionContext* context = jsConstructor->scriptExecutionContext();
- if (!context)
- return throwVMError(exec, createReferenceError(exec, "XMLHttpRequest constructor associated document is unavailable"));
-
- RefPtr<XMLHttpRequest> xmlHttpRequest = XMLHttpRequest::create(context);
- return JSValue::encode(CREATE_DOM_OBJECT_WRAPPER(exec, jsConstructor->globalObject(), XMLHttpRequest, xmlHttpRequest.get()));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSXMLHttpRequestUploadCustom.cpp b/WebCore/bindings/js/JSXMLHttpRequestUploadCustom.cpp
deleted file mode 100644
index 091c380..0000000
--- a/WebCore/bindings/js/JSXMLHttpRequestUploadCustom.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSXMLHttpRequestUpload.h"
-
-#include "DOMWindow.h"
-#include "Document.h"
-#include "Event.h"
-#include "Frame.h"
-#include "JSDOMWindowCustom.h"
-#include "JSEvent.h"
-#include "JSEventListener.h"
-#include "XMLHttpRequest.h"
-#include "XMLHttpRequestUpload.h"
-#include <runtime/Error.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-void JSXMLHttpRequestUpload::markChildren(MarkStack& markStack)
-{
- Base::markChildren(markStack);
-
- if (XMLHttpRequest* xmlHttpRequest = m_impl->associatedXMLHttpRequest())
- markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), xmlHttpRequest);
-
- m_impl->markJSEventListeners(markStack);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/JSXSLTProcessorCustom.cpp b/WebCore/bindings/js/JSXSLTProcessorCustom.cpp
deleted file mode 100644
index 3423272..0000000
--- a/WebCore/bindings/js/JSXSLTProcessorCustom.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(XSLT)
-
-#include "JSXSLTProcessor.h"
-
-#include "Document.h"
-#include "DocumentFragment.h"
-#include "JSDocument.h"
-#include "JSDocumentFragment.h"
-#include "JSNode.h"
-#include "Node.h"
-#include "PlatformString.h"
-#include "XSLTProcessor.h"
-#include "JSDOMBinding.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSXSLTProcessor::importStylesheet(ExecState* exec)
-{
- JSValue nodeVal = exec->argument(0);
- if (nodeVal.inherits(&JSNode::s_info)) {
- JSNode* node = static_cast<JSNode*>(asObject(nodeVal));
- impl()->importStylesheet(node->impl());
- return jsUndefined();
- }
- // Throw exception?
- return jsUndefined();
-}
-
-JSValue JSXSLTProcessor::transformToFragment(ExecState* exec)
-{
- JSValue nodeVal = exec->argument(0);
- JSValue docVal = exec->argument(1);
- if (nodeVal.inherits(&JSNode::s_info) && docVal.inherits(&JSDocument::s_info)) {
- WebCore::Node* node = static_cast<JSNode*>(asObject(nodeVal))->impl();
- Document* doc = static_cast<Document*>(static_cast<JSDocument*>(asObject(docVal))->impl());
- return toJS(exec, impl()->transformToFragment(node, doc).get());
- }
- // Throw exception?
- return jsUndefined();
-}
-
-JSValue JSXSLTProcessor::transformToDocument(ExecState* exec)
-{
- JSValue nodeVal = exec->argument(0);
- if (nodeVal.inherits(&JSNode::s_info)) {
- JSNode* node = static_cast<JSNode*>(asObject(nodeVal));
- RefPtr<Document> resultDocument = impl()->transformToDocument(node->impl());
- if (resultDocument)
- return toJS(exec, resultDocument.get());
- return jsUndefined();
- }
- // Throw exception?
- return jsUndefined();
-}
-
-JSValue JSXSLTProcessor::setParameter(ExecState* exec)
-{
- if (exec->argument(1).isUndefinedOrNull() || exec->argument(2).isUndefinedOrNull())
- return jsUndefined(); // Throw exception?
- String namespaceURI = ustringToString(exec->argument(0).toString(exec));
- String localName = ustringToString(exec->argument(1).toString(exec));
- String value = ustringToString(exec->argument(2).toString(exec));
- impl()->setParameter(namespaceURI, localName, value);
- return jsUndefined();
-}
-
-JSValue JSXSLTProcessor::getParameter(ExecState* exec)
-{
- if (exec->argument(1).isUndefinedOrNull())
- return jsUndefined();
- String namespaceURI = ustringToString(exec->argument(0).toString(exec));
- String localName = ustringToString(exec->argument(1).toString(exec));
- String value = impl()->getParameter(namespaceURI, localName);
- return jsStringOrUndefined(exec, value);
-}
-
-JSValue JSXSLTProcessor::removeParameter(ExecState* exec)
-{
- if (exec->argument(1).isUndefinedOrNull())
- return jsUndefined();
- String namespaceURI = ustringToString(exec->argument(0).toString(exec));
- String localName = ustringToString(exec->argument(1).toString(exec));
- impl()->removeParameter(namespaceURI, localName);
- return jsUndefined();
-}
-
-EncodedJSValue JSC_HOST_CALL JSXSLTProcessorConstructor::constructJSXSLTProcessor(ExecState* exec)
-{
- JSXSLTProcessorConstructor* jsConstructor = static_cast<JSXSLTProcessorConstructor*>(exec->callee());
- return JSValue::encode(CREATE_DOM_OBJECT_WRAPPER(exec, jsConstructor->globalObject(), XSLTProcessor, XSLTProcessor::create().get()));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(XSLT)
diff --git a/WebCore/bindings/js/JavaScriptCallFrame.cpp b/WebCore/bindings/js/JavaScriptCallFrame.cpp
deleted file mode 100644
index c280d98..0000000
--- a/WebCore/bindings/js/JavaScriptCallFrame.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JavaScriptCallFrame.h"
-
-#include "JSDOMBinding.h"
-
-#if ENABLE(JAVASCRIPT_DEBUGGER) && USE(JSC)
-
-#include "PlatformString.h"
-#include <debugger/DebuggerCallFrame.h>
-#include <runtime/Completion.h>
-#include <runtime/JSGlobalObject.h>
-#include <runtime/JSLock.h>
-#include <runtime/JSObject.h>
-#include <runtime/JSValue.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-JavaScriptCallFrame::JavaScriptCallFrame(const DebuggerCallFrame& debuggerCallFrame, PassRefPtr<JavaScriptCallFrame> caller, intptr_t sourceID, int line)
- : m_debuggerCallFrame(debuggerCallFrame)
- , m_caller(caller)
- , m_sourceID(sourceID)
- , m_line(line)
- , m_isValid(true)
-{
-}
-
-JavaScriptCallFrame* JavaScriptCallFrame::caller()
-{
- return m_caller.get();
-}
-
-const JSC::ScopeChainNode* JavaScriptCallFrame::scopeChain() const
-{
- ASSERT(m_isValid);
- if (!m_isValid)
- return 0;
- return m_debuggerCallFrame.scopeChain();
-}
-
-JSC::JSGlobalObject* JavaScriptCallFrame::dynamicGlobalObject() const
-{
- ASSERT(m_isValid);
- if (!m_isValid)
- return 0;
- return m_debuggerCallFrame.dynamicGlobalObject();
-}
-
-String JavaScriptCallFrame::functionName() const
-{
- ASSERT(m_isValid);
- if (!m_isValid)
- return String();
- UString functionName = m_debuggerCallFrame.calculatedFunctionName();
- if (functionName.isEmpty())
- return String();
- return ustringToString(functionName);
-}
-
-DebuggerCallFrame::Type JavaScriptCallFrame::type() const
-{
- ASSERT(m_isValid);
- if (!m_isValid)
- return DebuggerCallFrame::ProgramType;
- return m_debuggerCallFrame.type();
-}
-
-JSObject* JavaScriptCallFrame::thisObject() const
-{
- ASSERT(m_isValid);
- if (!m_isValid)
- return 0;
- return m_debuggerCallFrame.thisObject();
-}
-
-// Evaluate some JavaScript code in the scope of this frame.
-JSValue JavaScriptCallFrame::evaluate(const UString& script, JSValue& exception) const
-{
- ASSERT(m_isValid);
- if (!m_isValid)
- return jsNull();
-
- JSLock lock(SilenceAssertionsOnly);
- return m_debuggerCallFrame.evaluate(script, exception);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(JAVASCRIPT_DEBUGGER)
diff --git a/WebCore/bindings/js/JavaScriptCallFrame.h b/WebCore/bindings/js/JavaScriptCallFrame.h
deleted file mode 100644
index c23a43d..0000000
--- a/WebCore/bindings/js/JavaScriptCallFrame.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JavaScriptCallFrame_h
-#define JavaScriptCallFrame_h
-
-#if ENABLE(JAVASCRIPT_DEBUGGER) && USE(JSC)
-
-#include <debugger/DebuggerCallFrame.h>
-#include <interpreter/CallFrame.h>
-#include <wtf/Forward.h>
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-
-namespace WebCore {
-
-class JavaScriptCallFrame : public RefCounted<JavaScriptCallFrame> {
-public:
- static PassRefPtr<JavaScriptCallFrame> create(const JSC::DebuggerCallFrame& debuggerCallFrame, PassRefPtr<JavaScriptCallFrame> caller, intptr_t sourceID, int line)
- {
- return adoptRef(new JavaScriptCallFrame(debuggerCallFrame, caller, sourceID, line));
- }
-
- void invalidate()
- {
- m_isValid = false;
- m_debuggerCallFrame = 0;
- }
-
- bool isValid() const { return m_isValid; }
-
- JavaScriptCallFrame* caller();
-
- intptr_t sourceID() const { return m_sourceID; }
- int line() const { return m_line; }
- void update(const JSC::DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int line)
- {
- m_debuggerCallFrame = debuggerCallFrame;
- m_line = line;
- m_sourceID = sourceID;
- m_isValid = true;
- }
-
- String functionName() const;
- JSC::DebuggerCallFrame::Type type() const;
- const JSC::ScopeChainNode* scopeChain() const;
- JSC::JSGlobalObject* dynamicGlobalObject() const;
-
- JSC::JSObject* thisObject() const;
- JSC::JSValue evaluate(const JSC::UString& script, JSC::JSValue& exception) const;
-
-private:
- JavaScriptCallFrame(const JSC::DebuggerCallFrame&, PassRefPtr<JavaScriptCallFrame> caller, intptr_t sourceID, int line);
-
- JSC::DebuggerCallFrame m_debuggerCallFrame;
- RefPtr<JavaScriptCallFrame> m_caller;
- intptr_t m_sourceID;
- int m_line;
- bool m_isValid;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(JAVASCRIPT_DEBUGGER)
-
-#endif // JavaScriptCallFrame_h
diff --git a/WebCore/bindings/js/OptionsObject.h b/WebCore/bindings/js/OptionsObject.h
deleted file mode 100644
index 34910c0..0000000
--- a/WebCore/bindings/js/OptionsObject.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef OptionsObject_h
-#define OptionsObject_h
-
-// FIXME: Implement.
-
-#endif // OptionsObject_h
diff --git a/WebCore/bindings/js/ScheduledAction.cpp b/WebCore/bindings/js/ScheduledAction.cpp
deleted file mode 100644
index d6f8a38..0000000
--- a/WebCore/bindings/js/ScheduledAction.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2000 Harri Porten (porten@kde.org)
- * Copyright (C) 2006 Jon Shier (jshier@iastate.edu)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reseved.
- * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org)
- * Copyright (C) 2009 Google Inc. All rights reseved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
- * USA
- */
-
-#include "config.h"
-#include "ScheduledAction.h"
-
-#include "DOMWindow.h"
-#include "Document.h"
-#include "Frame.h"
-#include "FrameLoader.h"
-#include "JSDOMBinding.h"
-#include "JSDOMWindow.h"
-#include "JSMainThreadExecState.h"
-#include "ScriptController.h"
-#include "ScriptExecutionContext.h"
-#include "ScriptSourceCode.h"
-#include <runtime/JSLock.h>
-
-#if ENABLE(WORKERS)
-#include "JSWorkerContext.h"
-#include "WorkerContext.h"
-#include "WorkerThread.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-PassOwnPtr<ScheduledAction> ScheduledAction::create(ExecState* exec, DOMWrapperWorld* isolatedWorld)
-{
- JSValue v = exec->argument(0);
- CallData callData;
- if (getCallData(v, callData) == CallTypeNone) {
- UString string = v.toString(exec);
- if (exec->hadException())
- return 0;
- return new ScheduledAction(ustringToString(string), isolatedWorld);
- }
-
- return new ScheduledAction(exec, v, isolatedWorld);
-}
-
-ScheduledAction::ScheduledAction(ExecState* exec, JSValue function, DOMWrapperWorld* isolatedWorld)
- : m_function(function)
- , m_isolatedWorld(isolatedWorld)
-{
- // setTimeout(function, interval, arg0, arg1...).
- // Start at 2 to skip function and interval.
- for (size_t i = 2; i < exec->argumentCount(); ++i)
- m_args.append(exec->argument(i));
-}
-
-void ScheduledAction::execute(ScriptExecutionContext* context)
-{
- if (context->isDocument())
- execute(static_cast<Document*>(context));
-#if ENABLE(WORKERS)
- else {
- ASSERT(context->isWorkerContext());
- execute(static_cast<WorkerContext*>(context));
- }
-#else
- ASSERT(context->isDocument());
-#endif
-}
-
-void ScheduledAction::executeFunctionInContext(JSGlobalObject* globalObject, JSValue thisValue, ScriptExecutionContext* context)
-{
- ASSERT(m_function);
- JSLock lock(SilenceAssertionsOnly);
-
- CallData callData;
- CallType callType = getCallData(m_function.get(), callData);
- if (callType == CallTypeNone)
- return;
-
- ExecState* exec = globalObject->globalExec();
-
- MarkedArgumentBuffer args;
- size_t size = m_args.size();
- for (size_t i = 0; i < size; ++i)
- args.append(m_args[i]);
-
- globalObject->globalData().timeoutChecker.start();
- if (context->isDocument())
- JSMainThreadExecState::call(exec, m_function, callType, callData, thisValue, args);
- else
- JSC::call(exec, m_function, callType, callData, thisValue, args);
- globalObject->globalData().timeoutChecker.stop();
-
- if (exec->hadException())
- reportCurrentException(exec);
-}
-
-void ScheduledAction::execute(Document* document)
-{
- JSDOMWindow* window = toJSDOMWindow(document->frame(), m_isolatedWorld.get());
- if (!window)
- return;
-
- RefPtr<Frame> frame = window->impl()->frame();
- if (!frame || !frame->script()->canExecuteScripts(AboutToExecuteScript))
- return;
-
- frame->script()->setProcessingTimerCallback(true);
-
- if (m_function) {
- executeFunctionInContext(window, window->shell(), document);
- Document::updateStyleForAllDocuments();
- } else
- frame->script()->executeScriptInWorld(m_isolatedWorld.get(), m_code);
-
- frame->script()->setProcessingTimerCallback(false);
-}
-
-#if ENABLE(WORKERS)
-void ScheduledAction::execute(WorkerContext* workerContext)
-{
- // In a Worker, the execution should always happen on a worker thread.
- ASSERT(workerContext->thread()->threadID() == currentThread());
-
- WorkerScriptController* scriptController = workerContext->script();
-
- if (m_function) {
- JSWorkerContext* contextWrapper = scriptController->workerContextWrapper();
- executeFunctionInContext(contextWrapper, contextWrapper, workerContext);
- } else {
- ScriptSourceCode code(m_code, workerContext->url());
- scriptController->evaluate(code);
- }
-}
-#endif // ENABLE(WORKERS)
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/ScheduledAction.h b/WebCore/bindings/js/ScheduledAction.h
deleted file mode 100644
index 6c9d0ba..0000000
--- a/WebCore/bindings/js/ScheduledAction.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2000 Harri Porten (porten@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reseved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef ScheduledAction_h
-#define ScheduledAction_h
-
-#include "PlatformString.h"
-#include <JSDOMBinding.h>
-#include <runtime/JSCell.h>
-#include <runtime/Protect.h>
-#include <wtf/PassOwnPtr.h>
-#include <wtf/Vector.h>
-
-namespace JSC {
- class JSGlobalObject;
-}
-
-namespace WebCore {
-
- class Document;
- class ScriptExecutionContext;
- class WorkerContext;
-
- /* An action (either function or string) to be executed after a specified
- * time interval, either once or repeatedly. Used for window.setTimeout()
- * and window.setInterval()
- */
- class ScheduledAction : public Noncopyable {
- public:
- static PassOwnPtr<ScheduledAction> create(JSC::ExecState*, DOMWrapperWorld* isolatedWorld);
-
- void execute(ScriptExecutionContext*);
-
- private:
- ScheduledAction(JSC::ExecState*, JSC::JSValue function, DOMWrapperWorld* isolatedWorld);
- ScheduledAction(const String& code, DOMWrapperWorld* isolatedWorld)
- : m_code(code)
- , m_isolatedWorld(isolatedWorld)
- {
- }
-
- void executeFunctionInContext(JSC::JSGlobalObject*, JSC::JSValue thisValue, ScriptExecutionContext*);
- void execute(Document*);
-#if ENABLE(WORKERS)
- void execute(WorkerContext*);
-#endif
-
- JSC::ProtectedJSValue m_function;
- Vector<JSC::ProtectedJSValue> m_args;
- String m_code;
- RefPtr<DOMWrapperWorld> m_isolatedWorld;
- };
-
-} // namespace WebCore
-
-#endif // ScheduledAction_h
diff --git a/WebCore/bindings/js/ScriptCachedFrameData.cpp b/WebCore/bindings/js/ScriptCachedFrameData.cpp
deleted file mode 100644
index 16f18d3..0000000
--- a/WebCore/bindings/js/ScriptCachedFrameData.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 2008, Google Inc. All rights reserved.
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptCachedFrameData.h"
-
-#include "Frame.h"
-#include "GCController.h"
-#include "Page.h"
-#include "PageGroup.h"
-#include <runtime/JSLock.h>
-#include "ScriptController.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-ScriptCachedFrameData::ScriptCachedFrameData(Frame* frame)
- : m_domWindow(0)
-{
- JSLock lock(SilenceAssertionsOnly);
-
- ScriptController* scriptController = frame->script();
- ScriptController::ShellMap& windowShells = scriptController->m_windowShells;
-
- ScriptController::ShellMap::iterator windowShellsEnd = windowShells.end();
- for (ScriptController::ShellMap::iterator iter = windowShells.begin(); iter != windowShellsEnd; ++iter) {
- JSDOMWindow* window = iter->second->window();
- m_windows.add(iter->first.get(), window);
- m_domWindow = window->impl();
- }
-
- scriptController->attachDebugger(0);
-}
-
-DOMWindow* ScriptCachedFrameData::domWindow() const
-{
- return m_domWindow;
-}
-
-ScriptCachedFrameData::~ScriptCachedFrameData()
-{
- clear();
-}
-
-void ScriptCachedFrameData::restore(Frame* frame)
-{
- JSLock lock(SilenceAssertionsOnly);
-
- ScriptController* scriptController = frame->script();
- ScriptController::ShellMap& windowShells = scriptController->m_windowShells;
-
- ScriptController::ShellMap::iterator windowShellsEnd = windowShells.end();
- for (ScriptController::ShellMap::iterator iter = windowShells.begin(); iter != windowShellsEnd; ++iter) {
- DOMWrapperWorld* world = iter->first.get();
- JSDOMWindowShell* windowShell = iter->second.get();
-
- if (JSDOMWindow* window = m_windows.get(world))
- windowShell->setWindow(window);
- else {
- windowShell->setWindow(frame->domWindow());
-
- if (Page* page = frame->page()) {
- scriptController->attachDebugger(windowShell, page->debugger());
- windowShell->window()->setProfileGroup(page->group().identifier());
- }
- }
- }
-}
-
-void ScriptCachedFrameData::clear()
-{
- if (m_windows.isEmpty())
- return;
-
- JSLock lock(SilenceAssertionsOnly);
- m_windows.clear();
- gcController().garbageCollectSoon();
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/ScriptCachedFrameData.h b/WebCore/bindings/js/ScriptCachedFrameData.h
deleted file mode 100644
index 15c23c5..0000000
--- a/WebCore/bindings/js/ScriptCachedFrameData.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2008, Google Inc. All rights reserved.
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptCachedFrameData_h
-#define ScriptCachedFrameData_h
-
-#include <runtime/Protect.h>
-
-namespace WebCore {
- class Frame;
- class JSDOMWindow;
- class DOMWindow;
- class DOMWrapperWorld;
-
- class ScriptCachedFrameData : public Noncopyable {
- typedef HashMap< RefPtr<DOMWrapperWorld>, JSC::ProtectedPtr<JSDOMWindow> > JSDOMWindowSet;
-
- public:
- ScriptCachedFrameData(Frame*);
- ~ScriptCachedFrameData();
-
- void restore(Frame*);
- void clear();
- DOMWindow* domWindow() const;
-
- private:
- JSDOMWindowSet m_windows;
- DOMWindow* m_domWindow;
- };
-
-} // namespace WebCore
-
-#endif // ScriptCachedFrameData_h
diff --git a/WebCore/bindings/js/ScriptCallStackFactory.cpp b/WebCore/bindings/js/ScriptCallStackFactory.cpp
deleted file mode 100644
index 94cd127..0000000
--- a/WebCore/bindings/js/ScriptCallStackFactory.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (c) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptCallStackFactory.h"
-
-#include "JSDOMBinding.h"
-#include "ScriptArguments.h"
-#include "ScriptCallFrame.h"
-#include "ScriptCallStack.h"
-#include "ScriptValue.h"
-#include <interpreter/CallFrame.h>
-#include <interpreter/Interpreter.h>
-#include <runtime/ArgList.h>
-#include <runtime/JSFunction.h>
-#include <runtime/JSGlobalData.h>
-#include <runtime/JSValue.h>
-#include <runtime/UString.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-PassRefPtr<ScriptCallStack> createScriptCallStack(size_t, bool)
-{
- return 0;
-}
-
-PassRefPtr<ScriptCallStack> createScriptCallStack(JSC::ExecState* exec, size_t maxStackSize)
-{
- Vector<ScriptCallFrame> frames;
- CallFrame* callFrame = exec;
- while (true) {
- ASSERT(callFrame);
- int signedLineNumber;
- intptr_t sourceID;
- UString urlString;
- JSValue function;
-
- exec->interpreter()->retrieveLastCaller(callFrame, signedLineNumber, sourceID, urlString, function);
- UString functionName;
- if (function)
- functionName = asFunction(function)->name(exec);
- else {
- // Caller is unknown, but if frames is empty we should still add the frame, because
- // something called us, and gave us arguments.
- if (!frames.isEmpty())
- break;
- }
- unsigned lineNumber = signedLineNumber >= 0 ? signedLineNumber : 0;
- frames.append(ScriptCallFrame(ustringToString(functionName), ustringToString(urlString), lineNumber));
- if (!function || frames.size() == maxStackSize)
- break;
- callFrame = callFrame->callerFrame();
- }
- return ScriptCallStack::create(frames);
-}
-
-PassRefPtr<ScriptArguments> createScriptArguments(JSC::ExecState* exec, unsigned skipArgumentCount)
-{
- Vector<ScriptValue> arguments;
- size_t argumentCount = exec->argumentCount();
- for (size_t i = skipArgumentCount; i < argumentCount; ++i)
- arguments.append(ScriptValue(exec->argument(i)));
- return ScriptArguments::create(exec, arguments);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/ScriptCallStackFactory.h b/WebCore/bindings/js/ScriptCallStackFactory.h
deleted file mode 100644
index 2fb36ae..0000000
--- a/WebCore/bindings/js/ScriptCallStackFactory.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptCallStackFactory_h
-#define ScriptCallStackFactory_h
-
-#include <wtf/Forward.h>
-
-namespace JSC {
-class ExecState;
-}
-
-namespace WebCore {
-
-class ScriptArguments;
-class ScriptCallStack;
-
-PassRefPtr<ScriptCallStack> createScriptCallStack(size_t maxStackSize, bool emptyStackIsAllowed);
-PassRefPtr<ScriptCallStack> createScriptCallStack(JSC::ExecState*, size_t maxStackSize);
-PassRefPtr<ScriptArguments> createScriptArguments(JSC::ExecState*, unsigned skipArgumentCount);
-
-} // namespace WebCore
-
-#endif // ScriptCallStackFactory_h
diff --git a/WebCore/bindings/js/ScriptController.cpp b/WebCore/bindings/js/ScriptController.cpp
deleted file mode 100644
index cf55080..0000000
--- a/WebCore/bindings/js/ScriptController.cpp
+++ /dev/null
@@ -1,520 +0,0 @@
-/*
- * Copyright (C) 1999-2001 Harri Porten (porten@kde.org)
- * Copyright (C) 2001 Peter Kelly (pmk@post.com)
- * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-#include "ScriptController.h"
-
-#include "ScriptableDocumentParser.h"
-#include "Event.h"
-#include "EventNames.h"
-#include "Frame.h"
-#include "FrameLoaderClient.h"
-#include "GCController.h"
-#include "HTMLPlugInElement.h"
-#include "InspectorInstrumentation.h"
-#include "JSDocument.h"
-#include "JSMainThreadExecState.h"
-#include "NP_jsobject.h"
-#include "Page.h"
-#include "PageGroup.h"
-#include "ScriptSourceCode.h"
-#include "ScriptValue.h"
-#include "Settings.h"
-#include "StorageNamespace.h"
-#include "UserGestureIndicator.h"
-#include "WebCoreJSClientData.h"
-#include "XSSAuditor.h"
-#include "npruntime_impl.h"
-#include "runtime_root.h"
-#include <debugger/Debugger.h>
-#include <runtime/InitializeThreading.h>
-#include <runtime/JSLock.h>
-#include <wtf/Threading.h>
-
-using namespace JSC;
-using namespace std;
-
-namespace WebCore {
-
-void ScriptController::initializeThreading()
-{
- JSC::initializeThreading();
- WTF::initializeMainThread();
-}
-
-ScriptController::ScriptController(Frame* frame)
- : m_frame(frame)
- , m_sourceURL(0)
- , m_inExecuteScript(false)
- , m_processingTimerCallback(false)
- , m_paused(false)
- , m_allowPopupsFromPlugin(false)
-#if ENABLE(NETSCAPE_PLUGIN_API)
- , m_windowScriptNPObject(0)
-#endif
-#if PLATFORM(MAC)
- , m_windowScriptObject(0)
-#endif
- , m_XSSAuditor(new XSSAuditor(frame))
-{
-#if PLATFORM(MAC) && ENABLE(JAVA_BRIDGE)
- static bool initializedJavaJSBindings;
- if (!initializedJavaJSBindings) {
- initializedJavaJSBindings = true;
- initJavaJSBindings();
- }
-#endif
-}
-
-ScriptController::~ScriptController()
-{
- disconnectPlatformScriptObjects();
-
- if (m_cacheableBindingRootObject) {
- m_cacheableBindingRootObject->invalidate();
- m_cacheableBindingRootObject = 0;
- }
-
- // It's likely that destroying m_windowShells will create a lot of garbage.
- if (!m_windowShells.isEmpty()) {
- while (!m_windowShells.isEmpty())
- destroyWindowShell(m_windowShells.begin()->first.get());
- gcController().garbageCollectSoon();
- }
-}
-
-void ScriptController::destroyWindowShell(DOMWrapperWorld* world)
-{
- ASSERT(m_windowShells.contains(world));
- m_windowShells.remove(world);
- world->didDestroyWindowShell(this);
-}
-
-JSDOMWindowShell* ScriptController::createWindowShell(DOMWrapperWorld* world)
-{
- ASSERT(!m_windowShells.contains(world));
- JSDOMWindowShell* windowShell = new JSDOMWindowShell(m_frame->domWindow(), world);
- m_windowShells.add(world, windowShell);
- world->didCreateWindowShell(this);
- return windowShell;
-}
-
-ScriptValue ScriptController::evaluateInWorld(const ScriptSourceCode& sourceCode, DOMWrapperWorld* world, ShouldAllowXSS shouldAllowXSS)
-{
- const SourceCode& jsSourceCode = sourceCode.jsSourceCode();
- String sourceURL = ustringToString(jsSourceCode.provider()->url());
-
- if (shouldAllowXSS == DoNotAllowXSS && !m_XSSAuditor->canEvaluate(sourceCode.source())) {
- // This script is not safe to be evaluated.
- return JSValue();
- }
-
- // evaluate code. Returns the JS return value or 0
- // if there was none, an error occurred or the type couldn't be converted.
-
- // inlineCode is true for <a href="javascript:doSomething()">
- // and false for <script>doSomething()</script>. Check if it has the
- // expected value in all cases.
- // See smart window.open policy for where this is used.
- JSDOMWindowShell* shell = windowShell(world);
- ExecState* exec = shell->window()->globalExec();
- const String* savedSourceURL = m_sourceURL;
- m_sourceURL = &sourceURL;
-
- JSLock lock(SilenceAssertionsOnly);
-
- RefPtr<Frame> protect = m_frame;
-
- InspectorInstrumentationCookie cookie = InspectorInstrumentation::willEvaluateScript(m_frame, sourceURL, sourceCode.startLine());
-
- exec->globalData().timeoutChecker.start();
- Completion comp = JSMainThreadExecState::evaluate(exec, exec->dynamicGlobalObject()->globalScopeChain(), jsSourceCode, shell);
- exec->globalData().timeoutChecker.stop();
-
- InspectorInstrumentation::didEvaluateScript(cookie);
-
- // Evaluating the JavaScript could cause the frame to be deallocated
- // so we start the keep alive timer here.
- m_frame->keepAlive();
-
- if (comp.complType() == Normal || comp.complType() == ReturnValue) {
- m_sourceURL = savedSourceURL;
- return comp.value();
- }
-
- if (comp.complType() == Throw || comp.complType() == Interrupted)
- reportException(exec, comp.value());
-
- m_sourceURL = savedSourceURL;
- return JSValue();
-}
-
-ScriptValue ScriptController::evaluate(const ScriptSourceCode& sourceCode, ShouldAllowXSS shouldAllowXSS)
-{
- return evaluateInWorld(sourceCode, mainThreadNormalWorld(), shouldAllowXSS);
-}
-
-PassRefPtr<DOMWrapperWorld> ScriptController::createWorld()
-{
- return DOMWrapperWorld::create(JSDOMWindow::commonJSGlobalData());
-}
-
-void ScriptController::getAllWorlds(Vector<DOMWrapperWorld*>& worlds)
-{
- static_cast<WebCoreJSClientData*>(JSDOMWindow::commonJSGlobalData()->clientData)->getAllWorlds(worlds);
-}
-
-void ScriptController::clearWindowShell(bool goingIntoPageCache)
-{
- if (m_windowShells.isEmpty())
- return;
-
- JSLock lock(SilenceAssertionsOnly);
-
- for (ShellMap::iterator iter = m_windowShells.begin(); iter != m_windowShells.end(); ++iter) {
- JSDOMWindowShell* windowShell = iter->second;
-
- // Clear the debugger from the current window before setting the new window.
- attachDebugger(windowShell, 0);
-
- windowShell->window()->willRemoveFromWindowShell();
- windowShell->setWindow(m_frame->domWindow());
-
- // An m_cacheableBindingRootObject persists between page navigations
- // so needs to know about the new JSDOMWindow.
- if (m_cacheableBindingRootObject)
- m_cacheableBindingRootObject->updateGlobalObject(windowShell->window());
-
- if (Page* page = m_frame->page()) {
- attachDebugger(windowShell, page->debugger());
- windowShell->window()->setProfileGroup(page->group().identifier());
- }
- }
-
- // It's likely that resetting our windows created a lot of garbage, unless
- // it went in a back/forward cache.
- if (!goingIntoPageCache)
- gcController().garbageCollectSoon();
-}
-
-JSDOMWindowShell* ScriptController::initScript(DOMWrapperWorld* world)
-{
- ASSERT(!m_windowShells.contains(world));
-
- JSLock lock(SilenceAssertionsOnly);
-
- JSDOMWindowShell* windowShell = createWindowShell(world);
-
- windowShell->window()->updateDocument();
-
- if (Page* page = m_frame->page()) {
- attachDebugger(windowShell, page->debugger());
- windowShell->window()->setProfileGroup(page->group().identifier());
- }
-
- m_frame->loader()->dispatchDidClearWindowObjectInWorld(world);
-
- return windowShell;
-}
-
-int ScriptController::eventHandlerLineNumber() const
-{
- // JSC expects 1-based line numbers, so we must add one here to get it right.
- ScriptableDocumentParser* parser = m_frame->document()->scriptableDocumentParser();
- if (parser)
- return parser->lineNumber() + 1;
- return 0;
-}
-
-bool ScriptController::processingUserGesture()
-{
- ExecState* exec = JSMainThreadExecState::currentState();
- Frame* frame = exec ? toDynamicFrame(exec) : 0;
- // No script is running, so it is user-initiated unless the gesture stack
- // explicitly says it is not.
- if (!frame)
- return UserGestureIndicator::getUserGestureState() != DefinitelyNotProcessingUserGesture;
-
- // FIXME: We check the plugin popup flag and javascript anchor navigation
- // from the dynamic frame becuase they should only be initiated on the
- // dynamic frame in which execution began if they do happen.
- ScriptController* scriptController = frame->script();
- ASSERT(scriptController);
- if (scriptController->allowPopupsFromPlugin() || scriptController->isJavaScriptAnchorNavigation())
- return true;
-
- // If a DOM event is being processed, check that it was initiated by the user
- // and that it is in the whitelist of event types allowed to generate pop-ups.
- if (JSDOMWindowShell* shell = scriptController->existingWindowShell(currentWorld(exec)))
- if (Event* event = shell->window()->currentEvent())
- return event->fromUserGesture();
-
- return UserGestureIndicator::processingUserGesture();
-}
-
-// FIXME: This seems like an insufficient check to verify a click on a javascript: anchor.
-bool ScriptController::isJavaScriptAnchorNavigation() const
-{
- // This is the <a href="javascript:window.open('...')> case -> we let it through
- if (m_sourceURL && m_sourceURL->isNull() && !m_processingTimerCallback)
- return true;
-
- // This is the <script>window.open(...)</script> case or a timer callback -> block it
- return false;
-}
-
-bool ScriptController::anyPageIsProcessingUserGesture() const
-{
- Page* page = m_frame->page();
- if (!page)
- return false;
-
- const HashSet<Page*>& pages = page->group().pages();
- HashSet<Page*>::const_iterator end = pages.end();
- for (HashSet<Page*>::const_iterator it = pages.begin(); it != end; ++it) {
- for (Frame* frame = page->mainFrame(); frame; frame = frame->tree()->traverseNext()) {
- ScriptController* script = frame->script();
-
- if (script->m_allowPopupsFromPlugin)
- return true;
-
- const ShellMap::const_iterator iterEnd = m_windowShells.end();
- for (ShellMap::const_iterator iter = m_windowShells.begin(); iter != iterEnd; ++iter) {
- JSDOMWindowShell* shell = iter->second.get();
- Event* event = shell->window()->currentEvent();
- if (event && event->fromUserGesture())
- return true;
- }
-
- if (isJavaScriptAnchorNavigation())
- return true;
- }
- }
-
- return false;
-}
-
-bool ScriptController::canAccessFromCurrentOrigin(Frame *frame)
-{
- ExecState* exec = JSMainThreadExecState::currentState();
- if (exec)
- return allowsAccessFromFrame(exec, frame);
- // If the current state is 0 we're in a call path where the DOM security
- // check doesn't apply (eg. parser).
- return true;
-}
-
-void ScriptController::attachDebugger(JSC::Debugger* debugger)
-{
- for (ShellMap::iterator iter = m_windowShells.begin(); iter != m_windowShells.end(); ++iter)
- attachDebugger(iter->second, debugger);
-}
-
-void ScriptController::attachDebugger(JSDOMWindowShell* shell, JSC::Debugger* debugger)
-{
- if (!shell)
- return;
-
- JSDOMWindow* globalObject = shell->window();
- if (debugger)
- debugger->attach(globalObject);
- else if (JSC::Debugger* currentDebugger = globalObject->debugger())
- currentDebugger->detach(globalObject);
-}
-
-void ScriptController::updateDocument()
-{
- if (!m_frame->document())
- return;
-
- JSLock lock(SilenceAssertionsOnly);
- for (ShellMap::iterator iter = m_windowShells.begin(); iter != m_windowShells.end(); ++iter)
- iter->second->window()->updateDocument();
-}
-
-void ScriptController::updateSecurityOrigin()
-{
- // Our bindings do not do anything in this case.
-}
-
-Bindings::RootObject* ScriptController::cacheableBindingRootObject()
-{
- if (!canExecuteScripts(NotAboutToExecuteScript))
- return 0;
-
- if (!m_cacheableBindingRootObject) {
- JSLock lock(SilenceAssertionsOnly);
- m_cacheableBindingRootObject = Bindings::RootObject::create(0, globalObject(pluginWorld()));
- }
- return m_cacheableBindingRootObject.get();
-}
-
-Bindings::RootObject* ScriptController::bindingRootObject()
-{
- if (!canExecuteScripts(NotAboutToExecuteScript))
- return 0;
-
- if (!m_bindingRootObject) {
- JSLock lock(SilenceAssertionsOnly);
- m_bindingRootObject = Bindings::RootObject::create(0, globalObject(pluginWorld()));
- }
- return m_bindingRootObject.get();
-}
-
-PassRefPtr<Bindings::RootObject> ScriptController::createRootObject(void* nativeHandle)
-{
- RootObjectMap::iterator it = m_rootObjects.find(nativeHandle);
- if (it != m_rootObjects.end())
- return it->second;
-
- RefPtr<Bindings::RootObject> rootObject = Bindings::RootObject::create(nativeHandle, globalObject(pluginWorld()));
-
- m_rootObjects.set(nativeHandle, rootObject);
- return rootObject.release();
-}
-
-#if ENABLE(INSPECTOR)
-void ScriptController::setCaptureCallStackForUncaughtExceptions(bool)
-{
-}
-#endif
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-
-NPObject* ScriptController::windowScriptNPObject()
-{
- if (!m_windowScriptNPObject) {
- if (canExecuteScripts(NotAboutToExecuteScript)) {
- // JavaScript is enabled, so there is a JavaScript window object.
- // Return an NPObject bound to the window object.
- JSC::JSLock lock(SilenceAssertionsOnly);
- JSObject* win = windowShell(pluginWorld())->window();
- ASSERT(win);
- Bindings::RootObject* root = bindingRootObject();
- m_windowScriptNPObject = _NPN_CreateScriptObject(0, win, root);
- } else {
- // JavaScript is not enabled, so we cannot bind the NPObject to the JavaScript window object.
- // Instead, we create an NPObject of a different class, one which is not bound to a JavaScript object.
- m_windowScriptNPObject = _NPN_CreateNoScriptObject();
- }
- }
-
- return m_windowScriptNPObject;
-}
-
-NPObject* ScriptController::createScriptObjectForPluginElement(HTMLPlugInElement* plugin)
-{
- JSObject* object = jsObjectForPluginElement(plugin);
- if (!object)
- return _NPN_CreateNoScriptObject();
-
- // Wrap the JSObject in an NPObject
- return _NPN_CreateScriptObject(0, object, bindingRootObject());
-}
-
-#endif
-
-JSObject* ScriptController::jsObjectForPluginElement(HTMLPlugInElement* plugin)
-{
- // Can't create JSObjects when JavaScript is disabled
- if (!canExecuteScripts(NotAboutToExecuteScript))
- return 0;
-
- // Create a JSObject bound to this element
- JSLock lock(SilenceAssertionsOnly);
- JSDOMWindow* globalObj = globalObject(pluginWorld());
- // FIXME: is normal okay? - used for NP plugins?
- JSValue jsElementValue = toJS(globalObj->globalExec(), globalObj, plugin);
- if (!jsElementValue || !jsElementValue.isObject())
- return 0;
-
- return jsElementValue.getObject();
-}
-
-#if !PLATFORM(MAC)
-
-void ScriptController::updatePlatformScriptObjects()
-{
-}
-
-void ScriptController::disconnectPlatformScriptObjects()
-{
-}
-
-#endif
-
-void ScriptController::cleanupScriptObjectsForPlugin(void* nativeHandle)
-{
- RootObjectMap::iterator it = m_rootObjects.find(nativeHandle);
-
- if (it == m_rootObjects.end())
- return;
-
- it->second->invalidate();
- m_rootObjects.remove(it);
-}
-
-void ScriptController::clearScriptObjects()
-{
- JSLock lock(SilenceAssertionsOnly);
-
- RootObjectMap::const_iterator end = m_rootObjects.end();
- for (RootObjectMap::const_iterator it = m_rootObjects.begin(); it != end; ++it)
- it->second->invalidate();
-
- m_rootObjects.clear();
-
- if (m_bindingRootObject) {
- m_bindingRootObject->invalidate();
- m_bindingRootObject = 0;
- }
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
- if (m_windowScriptNPObject) {
- // Call _NPN_DeallocateObject() instead of _NPN_ReleaseObject() so that we don't leak if a plugin fails to release the window
- // script object properly.
- // This shouldn't cause any problems for plugins since they should have already been stopped and destroyed at this point.
- _NPN_DeallocateObject(m_windowScriptNPObject);
- m_windowScriptNPObject = 0;
- }
-#endif
-}
-
-ScriptValue ScriptController::executeScriptInWorld(DOMWrapperWorld* world, const String& script, bool forceUserGesture, ShouldAllowXSS shouldAllowXSS)
-{
- ScriptSourceCode sourceCode(script, forceUserGesture ? KURL() : m_frame->document()->url());
-
- if (!canExecuteScripts(AboutToExecuteScript) || isPaused())
- return ScriptValue();
-
- bool wasInExecuteScript = m_inExecuteScript;
- m_inExecuteScript = true;
-
- ScriptValue result = evaluateInWorld(sourceCode, world, shouldAllowXSS);
-
- if (!wasInExecuteScript) {
- m_inExecuteScript = false;
- Document::updateStyleForAllDocuments();
- }
-
- return result;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/ScriptController.h b/WebCore/bindings/js/ScriptController.h
deleted file mode 100644
index 413b88a..0000000
--- a/WebCore/bindings/js/ScriptController.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (C) 1999 Harri Porten (porten@kde.org)
- * Copyright (C) 2001 Peter Kelly (pmk@post.com)
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef ScriptController_h
-#define ScriptController_h
-
-#include "JSDOMWindowShell.h"
-#include "ScriptControllerBase.h"
-#include "ScriptInstance.h"
-#include <runtime/Protect.h>
-#include <wtf/Forward.h>
-#include <wtf/RefPtr.h>
-
-#if PLATFORM(MAC)
-#include <wtf/RetainPtr.h>
-
-#ifdef __OBJC__
-@class WebScriptObject;
-#else
-class WebScriptObject;
-#endif
-#endif
-
-struct NPObject;
-
-namespace JSC {
- class JSGlobalObject;
-
- namespace Bindings {
- class RootObject;
- }
-}
-
-namespace WebCore {
-
-class Event;
-class EventListener;
-class HTMLPlugInElement;
-class Frame;
-class Node;
-class ScriptSourceCode;
-class ScriptValue;
-class Widget;
-class XSSAuditor;
-
-typedef HashMap<void*, RefPtr<JSC::Bindings::RootObject> > RootObjectMap;
-
-class ScriptController {
- friend class ScriptCachedFrameData;
- typedef WTF::HashMap< RefPtr<DOMWrapperWorld>, JSC::ProtectedPtr<JSDOMWindowShell> > ShellMap;
-
-public:
- ScriptController(Frame*);
- ~ScriptController();
-
- static PassRefPtr<DOMWrapperWorld> createWorld();
-
- JSDOMWindowShell* createWindowShell(DOMWrapperWorld*);
- void destroyWindowShell(DOMWrapperWorld*);
-
- JSDOMWindowShell* windowShell(DOMWrapperWorld* world)
- {
- ShellMap::iterator iter = m_windowShells.find(world);
- return (iter != m_windowShells.end()) ? iter->second.get() : initScript(world);
- }
- JSDOMWindowShell* existingWindowShell(DOMWrapperWorld* world) const
- {
- ShellMap::const_iterator iter = m_windowShells.find(world);
- return (iter != m_windowShells.end()) ? iter->second.get() : 0;
- }
- JSDOMWindow* globalObject(DOMWrapperWorld* world)
- {
- return windowShell(world)->window();
- }
-
- static void getAllWorlds(Vector<DOMWrapperWorld*>&);
-
- ScriptValue executeScript(const ScriptSourceCode&, ShouldAllowXSS shouldAllowXSS = DoNotAllowXSS);
- ScriptValue executeScript(const String& script, bool forceUserGesture = false, ShouldAllowXSS shouldAllowXSS = DoNotAllowXSS);
- ScriptValue executeScriptInWorld(DOMWrapperWorld* world, const String& script, bool forceUserGesture = false, ShouldAllowXSS shouldAllowXSS = DoNotAllowXSS);
-
- // Returns true if argument is a JavaScript URL.
- bool executeIfJavaScriptURL(const KURL&, ShouldReplaceDocumentIfJavaScriptURL shouldReplaceDocumentIfJavaScriptURL = ReplaceDocumentIfJavaScriptURL);
-
- // This function must be called from the main thread. It is safe to call it repeatedly.
- // Darwin is an exception to this rule: it is OK to call this function from any thread, even reentrantly.
- static void initializeThreading();
-
- ScriptValue evaluate(const ScriptSourceCode&, ShouldAllowXSS shouldAllowXSS = DoNotAllowXSS);
- ScriptValue evaluateInWorld(const ScriptSourceCode&, DOMWrapperWorld*, ShouldAllowXSS shouldAllowXSS = DoNotAllowXSS);
-
- int eventHandlerLineNumber() const;
-
- void setProcessingTimerCallback(bool b) { m_processingTimerCallback = b; }
- static bool processingUserGesture();
- bool anyPageIsProcessingUserGesture() const;
-
- static bool canAccessFromCurrentOrigin(Frame*);
- bool canExecuteScripts(ReasonForCallingCanExecuteScripts);
-
- // Debugger can be 0 to detach any existing Debugger.
- void attachDebugger(JSC::Debugger*); // Attaches/detaches in all worlds/window shells.
- void attachDebugger(JSDOMWindowShell*, JSC::Debugger*);
-
- void setPaused(bool b) { m_paused = b; }
- bool isPaused() const { return m_paused; }
-
- void setAllowPopupsFromPlugin(bool allowPopupsFromPlugin) { m_allowPopupsFromPlugin = allowPopupsFromPlugin; }
- bool allowPopupsFromPlugin() const { return m_allowPopupsFromPlugin; }
-
- const String* sourceURL() const { return m_sourceURL; } // 0 if we are not evaluating any script
-
- void clearWindowShell(bool goingIntoPageCache = false);
- void updateDocument();
-
- void namedItemAdded(HTMLDocument*, const AtomicString&) { }
- void namedItemRemoved(HTMLDocument*, const AtomicString&) { }
-
- // Notifies the ScriptController that the securityOrigin of the current
- // document was modified. For example, this method is called when
- // document.domain is set. This method is *not* called when a new document
- // is attached to a frame because updateDocument() is called instead.
- void updateSecurityOrigin();
-
- void clearScriptObjects();
- void cleanupScriptObjectsForPlugin(void*);
-
- void updatePlatformScriptObjects();
-
- PassScriptInstance createScriptInstanceForWidget(Widget*);
- JSC::Bindings::RootObject* bindingRootObject();
- JSC::Bindings::RootObject* cacheableBindingRootObject();
-
- PassRefPtr<JSC::Bindings::RootObject> createRootObject(void* nativeHandle);
-
-#if ENABLE(INSPECTOR)
- static void setCaptureCallStackForUncaughtExceptions(bool);
-#endif
-
-#if PLATFORM(MAC)
-#if ENABLE(JAVA_BRIDGE)
- static void initJavaJSBindings();
-#endif
- WebScriptObject* windowScriptObject();
-#endif
-
- JSC::JSObject* jsObjectForPluginElement(HTMLPlugInElement*);
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
- NPObject* createScriptObjectForPluginElement(HTMLPlugInElement*);
- NPObject* windowScriptNPObject();
-#endif
-
- XSSAuditor* xssAuditor() { return m_XSSAuditor.get(); }
-
-private:
- JSDOMWindowShell* initScript(DOMWrapperWorld* world);
-
- void disconnectPlatformScriptObjects();
-
- bool isJavaScriptAnchorNavigation() const;
-
- ShellMap m_windowShells;
- Frame* m_frame;
- const String* m_sourceURL;
-
- bool m_inExecuteScript;
-
- bool m_processingTimerCallback;
- bool m_paused;
- bool m_allowPopupsFromPlugin;
-
- // The root object used for objects bound outside the context of a plugin, such
- // as NPAPI plugins. The plugins using these objects prevent a page from being cached so they
- // are safe to invalidate() when WebKit navigates away from the page that contains them.
- RefPtr<JSC::Bindings::RootObject> m_bindingRootObject;
- // Unlike m_bindingRootObject these objects are used in pages that are cached, so they are not invalidate()'d.
- // This ensures they are still available when the page is restored.
- RefPtr<JSC::Bindings::RootObject> m_cacheableBindingRootObject;
- RootObjectMap m_rootObjects;
-#if ENABLE(NETSCAPE_PLUGIN_API)
- NPObject* m_windowScriptNPObject;
-#endif
-#if PLATFORM(MAC)
- RetainPtr<WebScriptObject> m_windowScriptObject;
-#endif
-
- // The XSSAuditor associated with this ScriptController.
- OwnPtr<XSSAuditor> m_XSSAuditor;
-};
-
-} // namespace WebCore
-
-#endif // ScriptController_h
diff --git a/WebCore/bindings/js/ScriptControllerBrew.cpp b/WebCore/bindings/js/ScriptControllerBrew.cpp
deleted file mode 100644
index d8d345a..0000000
--- a/WebCore/bindings/js/ScriptControllerBrew.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Computer, Inc.
- * Copyright (C) 2009 Company 100, Inc.
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptController.h"
-
-#include "Bridge.h"
-#include "PluginView.h"
-#include "runtime_root.h"
-
-namespace WebCore {
-
-PassRefPtr<JSC::Bindings::Instance> ScriptController::createScriptInstanceForWidget(WebCore::Widget* widget)
-{
- if (!widget->isPluginView())
- return 0;
-
- return static_cast<PluginView*>(widget)->bindingInstance();
-
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/ScriptControllerEfl.cpp b/WebCore/bindings/js/ScriptControllerEfl.cpp
deleted file mode 100644
index fea172e..0000000
--- a/WebCore/bindings/js/ScriptControllerEfl.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
- * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com
- * Copyright (C) 2007 Holger Hans Peter Freyther
- * Copyright (C) 2008 Collabora Ltd. All rights reserved.
- * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
- * Copyright (C) 2009,2010 ProFUSION embedded systems
- * Copyright (C) 2009,2010 Samsung Electronics
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptController.h"
-
-#include "PluginView.h"
-
-namespace WebCore {
-
-PassRefPtr<JSC::Bindings::Instance> ScriptController::createScriptInstanceForWidget(Widget* widget)
-{
- if (!widget->isPluginView())
- return 0;
-
- return static_cast<PluginView*>(widget)->bindingInstance();
-}
-
-}
diff --git a/WebCore/bindings/js/ScriptControllerGtk.cpp b/WebCore/bindings/js/ScriptControllerGtk.cpp
deleted file mode 100644
index 6ffae69..0000000
--- a/WebCore/bindings/js/ScriptControllerGtk.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
- * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com
- * Copyright (C) 2007 Holger Hans Peter Freyther
- * Copyright (C) 2008 Collabora Ltd. All rights reserved.
- * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptController.h"
-
-#include "Bridge.h"
-#include "PluginView.h"
-#include "runtime_root.h"
-
-namespace WebCore {
-
-PassRefPtr<JSC::Bindings::Instance> ScriptController::createScriptInstanceForWidget(Widget* widget)
-{
- if (!widget->isPluginView())
- return 0;
-
- return static_cast<PluginView*>(widget)->bindingInstance();
-}
-
-}
diff --git a/WebCore/bindings/js/ScriptControllerHaiku.cpp b/WebCore/bindings/js/ScriptControllerHaiku.cpp
deleted file mode 100644
index a1f1590..0000000
--- a/WebCore/bindings/js/ScriptControllerHaiku.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Computer, Inc. All rights reserved.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptController.h"
-
-#include "Bridge.h"
-#include "PluginView.h"
-#include "runtime_root.h"
-
-
-namespace WebCore {
-
-PassRefPtr<JSC::Bindings::Instance> ScriptController::createScriptInstanceForWidget(Widget* widget)
-{
- if (!widget->isPluginView())
- return 0;
-
- return static_cast<PluginView*>(widget)->bindingInstance();
-}
-
-} // namespace WebCore
-
diff --git a/WebCore/bindings/js/ScriptControllerMac.mm b/WebCore/bindings/js/ScriptControllerMac.mm
deleted file mode 100644
index 7c29bfc..0000000
--- a/WebCore/bindings/js/ScriptControllerMac.mm
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
- * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com)
- * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
- * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#import "config.h"
-#import "ScriptController.h"
-
-#import "Bridge.h"
-#import "DOMAbstractViewFrame.h"
-#import "DOMWindow.h"
-#import "Frame.h"
-#import "FrameLoader.h"
-#import "FrameLoaderClient.h"
-#import "JSDOMWindow.h"
-#import "WebScriptObjectPrivate.h"
-#import "Widget.h"
-#import "objc_instance.h"
-#import "runtime_root.h"
-#import <JavaScriptCore/APICast.h>
-#import <runtime/JSLock.h>
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-#import "c_instance.h"
-#import "NP_jsobject.h"
-#import "npruntime_impl.h"
-#endif
-
-#if ENABLE(JAVA_BRIDGE)
-#import "JavaInstanceJSC.h"
-#endif
-
-@interface NSObject (WebPlugin)
-- (id)objectForWebScript;
-- (NPObject *)createPluginScriptableObject;
-- (PassRefPtr<JSC::Bindings::Instance>)createPluginBindingsInstance:(PassRefPtr<JSC::Bindings::RootObject>)rootObject;
-@end
-
-using namespace JSC::Bindings;
-
-namespace WebCore {
-
-PassScriptInstance ScriptController::createScriptInstanceForWidget(Widget* widget)
-{
- NSView* widgetView = widget->platformWidget();
- if (!widgetView)
- return 0;
-
- RefPtr<RootObject> rootObject = createRootObject(widgetView);
-
- if ([widgetView respondsToSelector:@selector(createPluginBindingsInstance:)])
- return [widgetView createPluginBindingsInstance:rootObject.release()];
-
- if ([widgetView respondsToSelector:@selector(objectForWebScript)]) {
- id objectForWebScript = [widgetView objectForWebScript];
- if (!objectForWebScript)
- return 0;
- return JSC::Bindings::ObjcInstance::create(objectForWebScript, rootObject.release());
- }
-
- if ([widgetView respondsToSelector:@selector(createPluginScriptableObject)]) {
-#if !ENABLE(NETSCAPE_PLUGIN_API)
- return 0;
-#else
- NPObject* npObject = [widgetView createPluginScriptableObject];
- if (!npObject)
- return 0;
- RefPtr<Instance> instance = JSC::Bindings::CInstance::create(npObject, rootObject.release());
- // -createPluginScriptableObject returns a retained NPObject. The caller is expected to release it.
- _NPN_ReleaseObject(npObject);
- return instance.release();
-#endif
- }
-
-#if ENABLE(JAVA_BRIDGE)
- jobject applet = m_frame->loader()->client()->javaApplet(widgetView);
- if (!applet)
- return 0;
- return JSC::Bindings::JavaInstance::create(applet, rootObject.release());
-#else
- return 0;
-#endif
-}
-
-WebScriptObject* ScriptController::windowScriptObject()
-{
- if (!canExecuteScripts(NotAboutToExecuteScript))
- return 0;
-
- if (!m_windowScriptObject) {
- JSC::JSLock lock(JSC::SilenceAssertionsOnly);
- JSC::Bindings::RootObject* root = bindingRootObject();
- m_windowScriptObject = [WebScriptObject scriptObjectForJSObject:toRef(windowShell(pluginWorld())) originRootObject:root rootObject:root];
- }
-
- ASSERT([m_windowScriptObject.get() isKindOfClass:[DOMAbstractView class]]);
- return m_windowScriptObject.get();
-}
-
-void ScriptController::updatePlatformScriptObjects()
-{
- if (m_windowScriptObject) {
- JSC::Bindings::RootObject* root = bindingRootObject();
- [m_windowScriptObject.get() _setOriginRootObject:root andRootObject:root];
- }
-}
-
-void ScriptController::disconnectPlatformScriptObjects()
-{
- if (m_windowScriptObject) {
- ASSERT([m_windowScriptObject.get() isKindOfClass:[DOMAbstractView class]]);
- [(DOMAbstractView *)m_windowScriptObject.get() _disconnectFrame];
- }
-}
-
-#if ENABLE(JAVA_BRIDGE)
-
-static pthread_t mainThread;
-
-static void updateStyleIfNeededForBindings(JSC::ExecState*, JSC::JSObject* rootObject)
-{
- if (pthread_self() != mainThread)
- return;
-
- if (!rootObject)
- return;
-
- JSDOMWindow* window = static_cast<JSDOMWindow*>(rootObject);
- if (!window)
- return;
-
- Frame* frame = window->impl()->frame();
- if (!frame)
- return;
-
- frame->document()->updateStyleIfNeeded();
-}
-
-void ScriptController::initJavaJSBindings()
-{
- mainThread = pthread_self();
- JSC::Bindings::JavaJSObject::initializeJNIThreading();
- JSC::Bindings::Instance::setDidExecuteFunction(updateStyleIfNeededForBindings);
-}
-
-#endif
-
-}
diff --git a/WebCore/bindings/js/ScriptControllerQt.cpp b/WebCore/bindings/js/ScriptControllerQt.cpp
deleted file mode 100644
index 55d4ba4..0000000
--- a/WebCore/bindings/js/ScriptControllerQt.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2006 Dirk Mueller <mueller@kde.org>
- * Copyright (C) 2006 Zack Rusin <zack@kde.org>
- * Copyright (C) 2006 George Staikos <staikos@kde.org>
- * Copyright (C) 2006 Simon Hausmann <hausmann@kde.org>
- * Copyright (C) 2006 Rob Buis <buis@kde.org>
- * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
- * Copyright (C) 2008 Collabora Ltd. All rights reserved.
- * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptController.h"
-
-#include "Bridge.h"
-#include "DOMWindow.h"
-#include "PluginView.h"
-#include "qt_instance.h"
-#include "runtime_root.h"
-
-#include <QWidget>
-
-namespace WebCore {
-
-PassRefPtr<JSC::Bindings::Instance> ScriptController::createScriptInstanceForWidget(WebCore::Widget* widget)
-{
- if (widget->isPluginView()) {
- PluginView* pluginView = static_cast<PluginView*>(widget);
- return pluginView->bindingInstance();
- }
-
- QWidget* platformWidget = widget->platformWidget();
- if (!platformWidget)
- return 0;
- return JSC::Bindings::QtInstance::getQtInstance(platformWidget, bindingRootObject(), QScriptEngine::QtOwnership);
-}
-
-}
-// vim: ts=4 sw=4 et
diff --git a/WebCore/bindings/js/ScriptControllerWin.cpp b/WebCore/bindings/js/ScriptControllerWin.cpp
deleted file mode 100644
index e0a959e..0000000
--- a/WebCore/bindings/js/ScriptControllerWin.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
- * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptController.h"
-
-#include "Bridge.h"
-#include "PluginView.h"
-
-using namespace JSC::Bindings;
-
-namespace WebCore {
-
-PassRefPtr<JSC::Bindings::Instance> ScriptController::createScriptInstanceForWidget(Widget* widget)
-{
- if (!widget->isPluginView())
- return 0;
-
- return static_cast<PluginView*>(widget)->bindingInstance();
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/ScriptControllerWx.cpp b/WebCore/bindings/js/ScriptControllerWx.cpp
deleted file mode 100644
index 1d7b4ca..0000000
--- a/WebCore/bindings/js/ScriptControllerWx.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Computer, Inc. All rights reserved.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptController.h"
-
-#include "Bridge.h"
-#include "PluginView.h"
-#include "runtime_root.h"
-
-namespace WebCore {
-
-PassRefPtr<JSC::Bindings::Instance> ScriptController::createScriptInstanceForWidget(Widget* widget)
-{
- if (!widget->isPluginView())
- return 0;
-
- return static_cast<PluginView*>(widget)->bindingInstance();
-}
-
-}
diff --git a/WebCore/bindings/js/ScriptDebugServer.cpp b/WebCore/bindings/js/ScriptDebugServer.cpp
deleted file mode 100644
index 10df223..0000000
--- a/WebCore/bindings/js/ScriptDebugServer.cpp
+++ /dev/null
@@ -1,618 +0,0 @@
-/*
- * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptDebugServer.h"
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-
-#include "DOMWindow.h"
-#include "EventLoop.h"
-#include "Frame.h"
-#include "FrameTree.h"
-#include "FrameView.h"
-#include "JSDOMWindowCustom.h"
-#include "JavaScriptCallFrame.h"
-#include "Page.h"
-#include "PageGroup.h"
-#include "PluginView.h"
-#include "ScriptBreakpoint.h"
-#include "ScriptController.h"
-#include "ScriptDebugListener.h"
-#include "ScrollView.h"
-#include "Widget.h"
-#include <debugger/DebuggerCallFrame.h>
-#include <parser/SourceCode.h>
-#include <runtime/JSLock.h>
-#include <wtf/text/StringConcatenate.h>
-#include <wtf/MainThread.h>
-#include <wtf/StdLibExtras.h>
-#include <wtf/UnusedParam.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-ScriptDebugServer& ScriptDebugServer::shared()
-{
- DEFINE_STATIC_LOCAL(ScriptDebugServer, server, ());
- return server;
-}
-
-ScriptDebugServer::ScriptDebugServer()
- : m_callingListeners(false)
- , m_pauseOnExceptionsState(DontPauseOnExceptions)
- , m_pauseOnNextStatement(false)
- , m_paused(false)
- , m_pausedPage(0)
- , m_doneProcessingDebuggerEvents(true)
- , m_breakpointsActivated(true)
- , m_pauseOnCallFrame(0)
- , m_recompileTimer(this, &ScriptDebugServer::recompileAllJSFunctions)
-{
-}
-
-ScriptDebugServer::~ScriptDebugServer()
-{
- deleteAllValues(m_pageListenersMap);
-}
-
-void ScriptDebugServer::addListener(ScriptDebugListener* listener, Page* page)
-{
- ASSERT_ARG(listener, listener);
- ASSERT_ARG(page, page);
-
- pair<PageListenersMap::iterator, bool> result = m_pageListenersMap.add(page, 0);
- if (result.second)
- result.first->second = new ListenerSet;
-
- ListenerSet* listeners = result.first->second;
- listeners->add(listener);
-
- didAddListener(page);
-}
-
-void ScriptDebugServer::removeListener(ScriptDebugListener* listener, Page* page)
-{
- ASSERT_ARG(listener, listener);
- ASSERT_ARG(page, page);
-
- PageListenersMap::iterator it = m_pageListenersMap.find(page);
- if (it == m_pageListenersMap.end())
- return;
-
- ListenerSet* listeners = it->second;
- listeners->remove(listener);
- if (listeners->isEmpty()) {
- m_pageListenersMap.remove(it);
- delete listeners;
- }
-
- didRemoveListener(page);
-}
-
-void ScriptDebugServer::pageCreated(Page* page)
-{
- ASSERT_ARG(page, page);
-
- if (!hasListenersInterestedInPage(page))
- return;
- page->setDebugger(this);
-}
-
-bool ScriptDebugServer::isDebuggerAlwaysEnabled()
-{
- return false;
-}
-
-bool ScriptDebugServer::hasListenersInterestedInPage(Page* page)
-{
- ASSERT_ARG(page, page);
-
- return m_pageListenersMap.contains(page);
-}
-
-String ScriptDebugServer::setBreakpoint(const String& sourceID, unsigned lineNumber, const String& condition, bool enabled, unsigned* actualLineNumber)
-{
- intptr_t sourceIDValue = sourceID.toIntPtr();
- if (!sourceIDValue)
- return "";
- BreakpointsMap::iterator it = m_breakpoints.find(sourceIDValue);
- if (it == m_breakpoints.end())
- it = m_breakpoints.set(sourceIDValue, SourceBreakpoints()).first;
- if (it->second.contains(lineNumber))
- return "";
- it->second.set(lineNumber, ScriptBreakpoint(enabled, condition));
- *actualLineNumber = lineNumber;
- return makeString(sourceID, ":", String::number(lineNumber));
-}
-
-void ScriptDebugServer::removeBreakpoint(const String& breakpointId)
-{
- Vector<String> tokens;
- breakpointId.split(":", tokens);
- if (tokens.size() != 2)
- return;
- bool success;
- intptr_t sourceIDValue = tokens[0].toIntPtr(&success);
- if (!success)
- return;
- unsigned lineNumber = tokens[1].toUInt(&success);
- if (!success)
- return;
- BreakpointsMap::iterator it = m_breakpoints.find(sourceIDValue);
- if (it != m_breakpoints.end())
- it->second.remove(lineNumber);
-}
-
-bool ScriptDebugServer::hasBreakpoint(intptr_t sourceID, unsigned lineNumber) const
-{
- if (!m_breakpointsActivated)
- return false;
-
- BreakpointsMap::const_iterator it = m_breakpoints.find(sourceID);
- if (it == m_breakpoints.end())
- return false;
- SourceBreakpoints::const_iterator breakIt = it->second.find(lineNumber);
- if (breakIt == it->second.end() || !breakIt->second.enabled)
- return false;
-
- // An empty condition counts as no condition which is equivalent to "true".
- if (breakIt->second.condition.isEmpty())
- return true;
-
- JSValue exception;
- JSValue result = m_currentCallFrame->evaluate(stringToUString(breakIt->second.condition), exception);
- if (exception) {
- // An erroneous condition counts as "false".
- return false;
- }
- return result.toBoolean(m_currentCallFrame->scopeChain()->globalObject->globalExec());
-}
-
-void ScriptDebugServer::clearBreakpoints()
-{
- m_breakpoints.clear();
-}
-
-void ScriptDebugServer::setBreakpointsActivated(bool activated)
-{
- m_breakpointsActivated = activated;
-}
-
-void ScriptDebugServer::setPauseOnExceptionsState(PauseOnExceptionsState pause)
-{
- m_pauseOnExceptionsState = pause;
-}
-
-void ScriptDebugServer::setPauseOnNextStatement(bool pause)
-{
- m_pauseOnNextStatement = pause;
-}
-
-void ScriptDebugServer::breakProgram()
-{
- // FIXME(WK43332): implement this.
-}
-
-void ScriptDebugServer::continueProgram()
-{
- if (!m_paused)
- return;
-
- m_pauseOnNextStatement = false;
- m_doneProcessingDebuggerEvents = true;
-}
-
-void ScriptDebugServer::stepIntoStatement()
-{
- if (!m_paused)
- return;
-
- m_pauseOnNextStatement = true;
- m_doneProcessingDebuggerEvents = true;
-}
-
-void ScriptDebugServer::stepOverStatement()
-{
- if (!m_paused)
- return;
-
- m_pauseOnCallFrame = m_currentCallFrame.get();
- m_doneProcessingDebuggerEvents = true;
-}
-
-void ScriptDebugServer::stepOutOfFunction()
-{
- if (!m_paused)
- return;
-
- m_pauseOnCallFrame = m_currentCallFrame ? m_currentCallFrame->caller() : 0;
- m_doneProcessingDebuggerEvents = true;
-}
-
-bool ScriptDebugServer::editScriptSource(const String&, const String&, String&)
-{
- // FIXME(40300): implement this.
- return false;
-}
-
-JavaScriptCallFrame* ScriptDebugServer::currentCallFrame()
-{
- if (!m_paused)
- return 0;
- return m_currentCallFrame.get();
-}
-
-void ScriptDebugServer::dispatchDidPause(ScriptDebugListener* listener)
-{
- ASSERT(m_paused);
- ScriptState* state = m_currentCallFrame->scopeChain()->globalObject->globalExec();
- listener->didPause(state);
-}
-
-void ScriptDebugServer::dispatchDidContinue(ScriptDebugListener* listener)
-{
- listener->didContinue();
-}
-
-void ScriptDebugServer::dispatchDidParseSource(const ListenerSet& listeners, const JSC::SourceCode& source, ScriptWorldType worldType)
-{
- String sourceID = ustringToString(JSC::UString::number(source.provider()->asID()));
- String url = ustringToString(source.provider()->url());
- String data = ustringToString(JSC::UString(source.data(), source.length()));
- int firstLine = source.firstLine();
-
- Vector<ScriptDebugListener*> copy;
- copyToVector(listeners, copy);
- for (size_t i = 0; i < copy.size(); ++i)
- copy[i]->didParseSource(sourceID, url, data, firstLine, worldType);
-}
-
-void ScriptDebugServer::dispatchFailedToParseSource(const ListenerSet& listeners, const SourceCode& source, int errorLine, const String& errorMessage)
-{
- String url = ustringToString(source.provider()->url());
- String data = ustringToString(JSC::UString(source.data(), source.length()));
- int firstLine = source.firstLine();
-
- Vector<ScriptDebugListener*> copy;
- copyToVector(listeners, copy);
- for (size_t i = 0; i < copy.size(); ++i)
- copy[i]->failedToParseSource(url, data, firstLine, errorLine, errorMessage);
-}
-
-static Page* toPage(JSGlobalObject* globalObject)
-{
- ASSERT_ARG(globalObject, globalObject);
-
- JSDOMWindow* window = asJSDOMWindow(globalObject);
- Frame* frame = window->impl()->frame();
- return frame ? frame->page() : 0;
-}
-
-static ScriptWorldType currentWorldType(ExecState* exec)
-{
- if (currentWorld(exec) == mainThreadNormalWorld())
- return MAIN_WORLD;
- return EXTENSIONS_WORLD;
-}
-
-void ScriptDebugServer::detach(JSGlobalObject* globalObject)
-{
- // If we're detaching from the currently executing global object, manually tear down our
- // stack, since we won't get further debugger callbacks to do so. Also, resume execution,
- // since there's no point in staying paused once a window closes.
- if (m_currentCallFrame && m_currentCallFrame->dynamicGlobalObject() == globalObject) {
- m_currentCallFrame = 0;
- m_pauseOnCallFrame = 0;
- continueProgram();
- }
- Debugger::detach(globalObject);
-}
-
-void ScriptDebugServer::sourceParsed(ExecState* exec, const SourceCode& source, int errorLine, const UString& errorMessage)
-{
- if (m_callingListeners)
- return;
-
- Page* page = toPage(exec->lexicalGlobalObject());
- if (!page)
- return;
-
- ScriptWorldType worldType = currentWorldType(exec);
-
- m_callingListeners = true;
-
- bool isError = errorLine != -1;
-
- if (ListenerSet* pageListeners = m_pageListenersMap.get(page)) {
- ASSERT(!pageListeners->isEmpty());
- if (isError)
- dispatchFailedToParseSource(*pageListeners, source, errorLine, ustringToString(errorMessage));
- else
- dispatchDidParseSource(*pageListeners, source, worldType);
- }
-
- m_callingListeners = false;
-}
-
-void ScriptDebugServer::dispatchFunctionToListeners(const ListenerSet& listeners, JavaScriptExecutionCallback callback)
-{
- Vector<ScriptDebugListener*> copy;
- copyToVector(listeners, copy);
- for (size_t i = 0; i < copy.size(); ++i)
- (this->*callback)(copy[i]);
-}
-
-void ScriptDebugServer::dispatchFunctionToListeners(JavaScriptExecutionCallback callback, Page* page)
-{
- if (m_callingListeners)
- return;
-
- m_callingListeners = true;
-
- if (ListenerSet* pageListeners = m_pageListenersMap.get(page)) {
- ASSERT(!pageListeners->isEmpty());
- dispatchFunctionToListeners(*pageListeners, callback);
- }
-
- m_callingListeners = false;
-}
-
-void ScriptDebugServer::setJavaScriptPaused(const PageGroup& pageGroup, bool paused)
-{
- setMainThreadCallbacksPaused(paused);
-
- const HashSet<Page*>& pages = pageGroup.pages();
-
- HashSet<Page*>::const_iterator end = pages.end();
- for (HashSet<Page*>::const_iterator it = pages.begin(); it != end; ++it)
- setJavaScriptPaused(*it, paused);
-}
-
-void ScriptDebugServer::setJavaScriptPaused(Page* page, bool paused)
-{
- ASSERT_ARG(page, page);
-
- page->setDefersLoading(paused);
-
- for (Frame* frame = page->mainFrame(); frame; frame = frame->tree()->traverseNext())
- setJavaScriptPaused(frame, paused);
-}
-
-void ScriptDebugServer::setJavaScriptPaused(Frame* frame, bool paused)
-{
- ASSERT_ARG(frame, frame);
-
- if (!frame->script()->canExecuteScripts(NotAboutToExecuteScript))
- return;
-
- frame->script()->setPaused(paused);
-
- Document* document = frame->document();
- if (paused)
- document->suspendActiveDOMObjects(ActiveDOMObject::JavaScriptDebuggerPaused);
- else
- document->resumeActiveDOMObjects();
-
- setJavaScriptPaused(frame->view(), paused);
-}
-
-void ScriptDebugServer::setJavaScriptPaused(FrameView* view, bool paused)
-{
- if (!view)
- return;
-
- const HashSet<RefPtr<Widget> >* children = view->children();
- ASSERT(children);
-
- HashSet<RefPtr<Widget> >::const_iterator end = children->end();
- for (HashSet<RefPtr<Widget> >::const_iterator it = children->begin(); it != end; ++it) {
- Widget* widget = (*it).get();
- if (!widget->isPluginView())
- continue;
- static_cast<PluginView*>(widget)->setJavaScriptPaused(paused);
- }
-}
-
-void ScriptDebugServer::pauseIfNeeded(Page* page)
-{
- if (m_paused)
- return;
-
- if (!page || !hasListenersInterestedInPage(page))
- return;
-
- bool pauseNow = m_pauseOnNextStatement;
- pauseNow |= (m_pauseOnCallFrame == m_currentCallFrame);
- pauseNow |= (m_currentCallFrame->line() > 0 && hasBreakpoint(m_currentCallFrame->sourceID(), m_currentCallFrame->line()));
- if (!pauseNow)
- return;
-
- m_pauseOnCallFrame = 0;
- m_pauseOnNextStatement = false;
- m_paused = true;
- m_pausedPage = page;
-
- dispatchFunctionToListeners(&ScriptDebugServer::dispatchDidPause, page);
-
- setJavaScriptPaused(page->group(), true);
-
- TimerBase::fireTimersInNestedEventLoop();
-
- EventLoop loop;
- m_doneProcessingDebuggerEvents = false;
- while (!m_doneProcessingDebuggerEvents && !loop.ended())
- loop.cycle();
-
- setJavaScriptPaused(page->group(), false);
-
- m_paused = false;
- m_pausedPage = 0;
-
- dispatchFunctionToListeners(&ScriptDebugServer::dispatchDidContinue, page);
-}
-
-void ScriptDebugServer::callEvent(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber)
-{
- if (m_paused)
- return;
-
- m_currentCallFrame = JavaScriptCallFrame::create(debuggerCallFrame, m_currentCallFrame, sourceID, lineNumber);
- pauseIfNeeded(toPage(debuggerCallFrame.dynamicGlobalObject()));
-}
-
-void ScriptDebugServer::atStatement(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber)
-{
- if (m_paused)
- return;
-
- ASSERT(m_currentCallFrame);
- if (!m_currentCallFrame)
- return;
-
- m_currentCallFrame->update(debuggerCallFrame, sourceID, lineNumber);
- pauseIfNeeded(toPage(debuggerCallFrame.dynamicGlobalObject()));
-}
-
-void ScriptDebugServer::returnEvent(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber)
-{
- if (m_paused)
- return;
-
- ASSERT(m_currentCallFrame);
- if (!m_currentCallFrame)
- return;
-
- m_currentCallFrame->update(debuggerCallFrame, sourceID, lineNumber);
- pauseIfNeeded(toPage(debuggerCallFrame.dynamicGlobalObject()));
-
- // detach may have been called during pauseIfNeeded
- if (!m_currentCallFrame)
- return;
-
- // Treat stepping over a return statement like stepping out.
- if (m_currentCallFrame == m_pauseOnCallFrame)
- m_pauseOnCallFrame = m_currentCallFrame->caller();
- m_currentCallFrame = m_currentCallFrame->caller();
-}
-
-void ScriptDebugServer::exception(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber, bool hasHandler)
-{
- if (m_paused)
- return;
-
- ASSERT(m_currentCallFrame);
- if (!m_currentCallFrame)
- return;
-
- if (m_pauseOnExceptionsState == PauseOnAllExceptions || (m_pauseOnExceptionsState == PauseOnUncaughtExceptions && !hasHandler))
- m_pauseOnNextStatement = true;
-
- m_currentCallFrame->update(debuggerCallFrame, sourceID, lineNumber);
- pauseIfNeeded(toPage(debuggerCallFrame.dynamicGlobalObject()));
-}
-
-void ScriptDebugServer::willExecuteProgram(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber)
-{
- if (m_paused)
- return;
-
- m_currentCallFrame = JavaScriptCallFrame::create(debuggerCallFrame, m_currentCallFrame, sourceID, lineNumber);
- pauseIfNeeded(toPage(debuggerCallFrame.dynamicGlobalObject()));
-}
-
-void ScriptDebugServer::didExecuteProgram(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber)
-{
- if (m_paused)
- return;
-
- ASSERT(m_currentCallFrame);
- if (!m_currentCallFrame)
- return;
-
- m_currentCallFrame->update(debuggerCallFrame, sourceID, lineNumber);
- pauseIfNeeded(toPage(debuggerCallFrame.dynamicGlobalObject()));
-
- // Treat stepping over the end of a program like stepping out.
- if (m_currentCallFrame == m_pauseOnCallFrame)
- m_pauseOnCallFrame = m_currentCallFrame->caller();
- m_currentCallFrame = m_currentCallFrame->caller();
-}
-
-void ScriptDebugServer::didReachBreakpoint(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber)
-{
- if (m_paused)
- return;
-
- ASSERT(m_currentCallFrame);
- if (!m_currentCallFrame)
- return;
-
- m_pauseOnNextStatement = true;
- m_currentCallFrame->update(debuggerCallFrame, sourceID, lineNumber);
- pauseIfNeeded(toPage(debuggerCallFrame.dynamicGlobalObject()));
-}
-
-void ScriptDebugServer::recompileAllJSFunctionsSoon()
-{
- m_recompileTimer.startOneShot(0);
-}
-
-void ScriptDebugServer::recompileAllJSFunctions(Timer<ScriptDebugServer>*)
-{
- JSLock lock(SilenceAssertionsOnly);
- // If JavaScript stack is not empty postpone recompilation.
- if (JSDOMWindow::commonJSGlobalData()->dynamicGlobalObject)
- recompileAllJSFunctionsSoon();
- else
- Debugger::recompileAllJSFunctions(JSDOMWindow::commonJSGlobalData());
-}
-
-void ScriptDebugServer::didAddListener(Page* page)
-{
- recompileAllJSFunctionsSoon();
- page->setDebugger(this);
-}
-
-void ScriptDebugServer::didRemoveListener(Page* page)
-{
- if (hasListenersInterestedInPage(page))
- return;
-
- if (m_pausedPage == page)
- m_doneProcessingDebuggerEvents = true;
-
- recompileAllJSFunctionsSoon();
- page->setDebugger(0);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(JAVASCRIPT_DEBUGGER)
diff --git a/WebCore/bindings/js/ScriptDebugServer.h b/WebCore/bindings/js/ScriptDebugServer.h
deleted file mode 100644
index 81cd9ac..0000000
--- a/WebCore/bindings/js/ScriptDebugServer.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptDebugServer_h
-#define ScriptDebugServer_h
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-
-#include "ScriptDebugListener.h"
-#include "PlatformString.h"
-#include "ScriptBreakpoint.h"
-#include "Timer.h"
-
-#include <debugger/Debugger.h>
-#include <runtime/UString.h>
-#include <wtf/HashMap.h>
-#include <wtf/HashSet.h>
-#include <wtf/RefPtr.h>
-
-namespace JSC {
-class DebuggerCallFrame;
-class JSGlobalObject;
-}
-namespace WebCore {
-
-class Frame;
-class FrameView;
-class Page;
-class PageGroup;
-class ScriptDebugListener;
-class JavaScriptCallFrame;
-
-class ScriptDebugServer : JSC::Debugger, public Noncopyable {
-public:
- static ScriptDebugServer& shared();
-
- void addListener(ScriptDebugListener*, Page*);
- void removeListener(ScriptDebugListener*, Page*);
-
- String setBreakpoint(const String& sourceID, unsigned lineNumber, const String& condition, bool enabled, unsigned* actualLineNumber);
- void removeBreakpoint(const String& breakpointId);
- void clearBreakpoints();
- void setBreakpointsActivated(bool activated);
- void activateBreakpoints() { setBreakpointsActivated(true); }
- void deactivateBreakpoints() { setBreakpointsActivated(false); }
-
- enum PauseOnExceptionsState {
- DontPauseOnExceptions,
- PauseOnAllExceptions,
- PauseOnUncaughtExceptions
- };
- PauseOnExceptionsState pauseOnExceptionsState() const { return m_pauseOnExceptionsState; }
- void setPauseOnExceptionsState(PauseOnExceptionsState);
-
- void setPauseOnNextStatement(bool pause);
- void breakProgram();
- void continueProgram();
- void stepIntoStatement();
- void stepOverStatement();
- void stepOutOfFunction();
-
- bool editScriptSource(const String& sourceID, const String& newContent, String& newSourceOrErrorMessage);
-
- void recompileAllJSFunctionsSoon();
- void recompileAllJSFunctions(Timer<ScriptDebugServer>* = 0);
-
- JavaScriptCallFrame* currentCallFrame();
-
- void pageCreated(Page*);
-
- bool isDebuggerAlwaysEnabled();
-
-private:
- typedef HashSet<ScriptDebugListener*> ListenerSet;
- typedef void (ScriptDebugServer::*JavaScriptExecutionCallback)(ScriptDebugListener*);
-
- ScriptDebugServer();
- ~ScriptDebugServer();
-
- bool hasBreakpoint(intptr_t sourceID, unsigned lineNumber) const;
- bool hasListenersInterestedInPage(Page*);
-
- void setJavaScriptPaused(const PageGroup&, bool paused);
- void setJavaScriptPaused(Page*, bool paused);
- void setJavaScriptPaused(Frame*, bool paused);
- void setJavaScriptPaused(FrameView*, bool paused);
-
- void dispatchFunctionToListeners(JavaScriptExecutionCallback, Page*);
- void dispatchFunctionToListeners(const ListenerSet& listeners, JavaScriptExecutionCallback callback);
- void dispatchDidPause(ScriptDebugListener*);
- void dispatchDidContinue(ScriptDebugListener*);
- void dispatchDidParseSource(const ListenerSet& listeners, const JSC::SourceCode& source, enum ScriptWorldType);
- void dispatchFailedToParseSource(const ListenerSet& listeners, const JSC::SourceCode& source, int errorLine, const String& errorMessage);
-
- void pauseIfNeeded(Page*);
-
- virtual void detach(JSC::JSGlobalObject*);
-
- virtual void sourceParsed(JSC::ExecState*, const JSC::SourceCode&, int errorLine, const JSC::UString& errorMsg);
- virtual void callEvent(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineNumber);
- virtual void atStatement(const JSC::DebuggerCallFrame&, intptr_t sourceID, int firstLine);
- virtual void returnEvent(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineNumber);
- virtual void exception(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineNumber, bool hasHandler);
- virtual void willExecuteProgram(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineno);
- virtual void didExecuteProgram(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineno);
- virtual void didReachBreakpoint(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineno);
-
- void didAddListener(Page*);
- void didRemoveListener(Page*);
-
- typedef HashMap<Page*, ListenerSet*> PageListenersMap;
- typedef HashMap<intptr_t, SourceBreakpoints> BreakpointsMap;
-
- PageListenersMap m_pageListenersMap;
- bool m_callingListeners;
- PauseOnExceptionsState m_pauseOnExceptionsState;
- bool m_pauseOnNextStatement;
- bool m_paused;
- Page* m_pausedPage;
- bool m_doneProcessingDebuggerEvents;
- bool m_breakpointsActivated;
- JavaScriptCallFrame* m_pauseOnCallFrame;
- RefPtr<JavaScriptCallFrame> m_currentCallFrame;
- BreakpointsMap m_breakpoints;
- Timer<ScriptDebugServer> m_recompileTimer;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(JAVASCRIPT_DEBUGGER)
-
-#endif // ScriptDebugServer_h
diff --git a/WebCore/bindings/js/ScriptEventListener.cpp b/WebCore/bindings/js/ScriptEventListener.cpp
deleted file mode 100644
index d2baf82..0000000
--- a/WebCore/bindings/js/ScriptEventListener.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptEventListener.h"
-
-#include "Attribute.h"
-#include "Document.h"
-#include "EventListener.h"
-#include "JSNode.h"
-#include "Frame.h"
-#include "XSSAuditor.h"
-#include <runtime/JSLock.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-static const String& eventParameterName(bool isSVGEvent)
-{
- DEFINE_STATIC_LOCAL(const String, eventString, ("event"));
- DEFINE_STATIC_LOCAL(const String, evtString, ("evt"));
- return isSVGEvent ? evtString : eventString;
-}
-
-PassRefPtr<JSLazyEventListener> createAttributeEventListener(Node* node, Attribute* attr)
-{
- ASSERT(node);
- ASSERT(attr);
- if (attr->isNull())
- return 0;
-
- int lineNumber = 1;
- String sourceURL;
-
- // FIXME: We should be able to provide accurate source information for frameless documents, too (e.g. for importing nodes from XMLHttpRequest.responseXML).
- if (Frame* frame = node->document()->frame()) {
- ScriptController* scriptController = frame->script();
- if (!scriptController->canExecuteScripts(AboutToExecuteScript))
- return 0;
-
- if (!scriptController->xssAuditor()->canCreateInlineEventListener(attr->localName().string(), attr->value())) {
- // This script is not safe to execute.
- return 0;
- }
-
- lineNumber = scriptController->eventHandlerLineNumber();
- sourceURL = node->document()->url().string();
- }
-
- return JSLazyEventListener::create(attr->localName().string(), eventParameterName(node->isSVGElement()), attr->value(), node, sourceURL, lineNumber, 0, mainThreadNormalWorld());
-}
-
-PassRefPtr<JSLazyEventListener> createAttributeEventListener(Frame* frame, Attribute* attr)
-{
- if (!frame)
- return 0;
-
- ASSERT(attr);
- if (attr->isNull())
- return 0;
-
- int lineNumber = 1;
- String sourceURL;
-
- ScriptController* scriptController = frame->script();
- if (!scriptController->canExecuteScripts(AboutToExecuteScript))
- return 0;
-
- if (!scriptController->xssAuditor()->canCreateInlineEventListener(attr->localName().string(), attr->value())) {
- // This script is not safe to execute.
- return 0;
- }
-
- lineNumber = scriptController->eventHandlerLineNumber();
- sourceURL = frame->document()->url().string();
- JSObject* wrapper = toJSDOMWindow(frame, mainThreadNormalWorld());
- return JSLazyEventListener::create(attr->localName().string(), eventParameterName(frame->document()->isSVGDocument()), attr->value(), 0, sourceURL, lineNumber, wrapper, mainThreadNormalWorld());
-}
-
-String eventListenerHandlerBody(Document* document, EventListener* eventListener)
-{
- const JSEventListener* jsListener = JSEventListener::cast(eventListener);
- if (!jsListener)
- return "";
- JSC::JSObject* jsFunction = jsListener->jsFunction(document);
- if (!jsFunction)
- return "";
- return ustringToString(jsFunction->toString(scriptStateFromNode(jsListener->isolatedWorld(), document)));
-}
-
-bool eventListenerHandlerLocation(Document*, EventListener*, String&, int&)
-{
- // FIXME: Add support for getting function location.
- return false;
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/ScriptEventListener.h b/WebCore/bindings/js/ScriptEventListener.h
deleted file mode 100644
index f96f31e..0000000
--- a/WebCore/bindings/js/ScriptEventListener.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptEventListener_h
-#define ScriptEventListener_h
-
-#include "JSLazyEventListener.h"
-#include "ScriptState.h"
-
-#include <wtf/PassRefPtr.h>
-
-namespace WebCore {
-
- class Attribute;
- class EventListener;
- class Frame;
- class Node;
-
- PassRefPtr<JSLazyEventListener> createAttributeEventListener(Node*, Attribute*);
- PassRefPtr<JSLazyEventListener> createAttributeEventListener(Frame*, Attribute*);
- String eventListenerHandlerBody(Document*, EventListener*);
- bool eventListenerHandlerLocation(Document*, EventListener*, String& sourceName, int& lineNumber);
-} // namespace WebCore
-
-#endif // ScriptEventListener_h
diff --git a/WebCore/bindings/js/ScriptFunctionCall.cpp b/WebCore/bindings/js/ScriptFunctionCall.cpp
deleted file mode 100644
index f77c691..0000000
--- a/WebCore/bindings/js/ScriptFunctionCall.cpp
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptFunctionCall.h"
-
-#include "JSDOMBinding.h"
-#include "JSMainThreadExecState.h"
-#include "ScriptValue.h"
-
-#include <runtime/JSLock.h>
-#include <runtime/UString.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-void ScriptCallArgumentHandler::appendArgument(const ScriptObject& argument)
-{
- if (argument.scriptState() != m_exec) {
- ASSERT_NOT_REACHED();
- return;
- }
- m_arguments.append(argument.jsObject());
-}
-
-void ScriptCallArgumentHandler::appendArgument(const ScriptValue& argument)
-{
- m_arguments.append(argument.jsValue());
-}
-
-void ScriptCallArgumentHandler::appendArgument(const String& argument)
-{
- JSLock lock(SilenceAssertionsOnly);
- m_arguments.append(jsString(m_exec, argument));
-}
-
-void ScriptCallArgumentHandler::appendArgument(const JSC::UString& argument)
-{
- JSLock lock(SilenceAssertionsOnly);
- m_arguments.append(jsString(m_exec, argument));
-}
-
-void ScriptCallArgumentHandler::appendArgument(const char* argument)
-{
- JSLock lock(SilenceAssertionsOnly);
- m_arguments.append(jsString(m_exec, UString(argument)));
-}
-
-void ScriptCallArgumentHandler::appendArgument(JSC::JSValue argument)
-{
- m_arguments.append(argument);
-}
-
-void ScriptCallArgumentHandler::appendArgument(long argument)
-{
- JSLock lock(SilenceAssertionsOnly);
- m_arguments.append(jsNumber(argument));
-}
-
-void ScriptCallArgumentHandler::appendArgument(long long argument)
-{
- JSLock lock(SilenceAssertionsOnly);
- m_arguments.append(jsNumber(argument));
-}
-
-void ScriptCallArgumentHandler::appendArgument(unsigned int argument)
-{
- JSLock lock(SilenceAssertionsOnly);
- m_arguments.append(jsNumber(argument));
-}
-
-void ScriptCallArgumentHandler::appendArgument(unsigned long argument)
-{
- JSLock lock(SilenceAssertionsOnly);
- m_arguments.append(jsNumber(argument));
-}
-
-void ScriptCallArgumentHandler::appendArgument(int argument)
-{
- JSLock lock(SilenceAssertionsOnly);
- m_arguments.append(jsNumber(argument));
-}
-
-void ScriptCallArgumentHandler::appendArgument(bool argument)
-{
- m_arguments.append(jsBoolean(argument));
-}
-
-ScriptFunctionCall::ScriptFunctionCall(const ScriptObject& thisObject, const String& name)
- : ScriptCallArgumentHandler(thisObject.scriptState())
- , m_thisObject(thisObject)
- , m_name(name)
-{
-}
-
-ScriptValue ScriptFunctionCall::call(bool& hadException, bool reportExceptions)
-{
- JSObject* thisObject = m_thisObject.jsObject();
-
- JSLock lock(SilenceAssertionsOnly);
-
- JSValue function = thisObject->get(m_exec, Identifier(m_exec, stringToUString(m_name)));
- if (m_exec->hadException()) {
- if (reportExceptions)
- reportException(m_exec, m_exec->exception());
-
- hadException = true;
- return ScriptValue();
- }
-
- CallData callData;
- CallType callType = getCallData(function, callData);
- if (callType == CallTypeNone)
- return ScriptValue();
-
- JSValue result = JSMainThreadExecState::call(m_exec, function, callType, callData, thisObject, m_arguments);
- if (m_exec->hadException()) {
- if (reportExceptions)
- reportException(m_exec, m_exec->exception());
-
- hadException = true;
- return ScriptValue();
- }
-
- return ScriptValue(result);
-}
-
-ScriptValue ScriptFunctionCall::call()
-{
- bool hadException = false;
- return call(hadException);
-}
-
-ScriptObject ScriptFunctionCall::construct(bool& hadException, bool reportExceptions)
-{
- JSObject* thisObject = m_thisObject.jsObject();
-
- JSLock lock(SilenceAssertionsOnly);
-
- JSObject* constructor = asObject(thisObject->get(m_exec, Identifier(m_exec, stringToUString(m_name))));
- if (m_exec->hadException()) {
- if (reportExceptions)
- reportException(m_exec, m_exec->exception());
-
- hadException = true;
- return ScriptObject();
- }
-
- ConstructData constructData;
- ConstructType constructType = constructor->getConstructData(constructData);
- if (constructType == ConstructTypeNone)
- return ScriptObject();
-
- JSValue result = JSC::construct(m_exec, constructor, constructType, constructData, m_arguments);
- if (m_exec->hadException()) {
- if (reportExceptions)
- reportException(m_exec, m_exec->exception());
-
- hadException = true;
- return ScriptObject();
- }
-
- return ScriptObject(m_exec, asObject(result));
-}
-
-ScriptCallback::ScriptCallback(ScriptState* state, ScriptValue function)
- : ScriptCallArgumentHandler(state)
- , m_function(function)
-{
-}
-
-ScriptValue ScriptCallback::call()
-{
- bool hadException;
- return call(hadException);
-}
-
-ScriptValue ScriptCallback::call(bool& hadException)
-{
- JSLock lock(SilenceAssertionsOnly);
-
- CallData callData;
- CallType callType = getCallData(m_function.jsValue(), callData);
- if (callType == CallTypeNone)
- return ScriptValue();
-
- JSValue result = JSC::call(m_exec, m_function.jsValue(), callType, callData, m_function.jsValue(), m_arguments);
- hadException = m_exec->hadException();
-
- if (hadException) {
- reportException(m_exec, m_exec->exception());
- return ScriptValue();
- }
-
- return ScriptValue(result);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/ScriptFunctionCall.h b/WebCore/bindings/js/ScriptFunctionCall.h
deleted file mode 100644
index c7da858..0000000
--- a/WebCore/bindings/js/ScriptFunctionCall.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptFunctionCall_h
-#define ScriptFunctionCall_h
-
-#include "PlatformString.h"
-#include "ScriptObject.h"
-#include "ScriptState.h"
-
-#include <runtime/ArgList.h>
-
-namespace JSC {
- class UString;
- class JSValue;
-}
-
-namespace WebCore {
- class ScriptValue;
-
- class ScriptCallArgumentHandler {
- public:
- ScriptCallArgumentHandler(ScriptState* state) : m_exec(state) { }
-
- void appendArgument(const ScriptObject&);
- void appendArgument(const ScriptValue&);
- void appendArgument(const String&);
- void appendArgument(const char*);
- void appendArgument(const JSC::UString&);
- void appendArgument(JSC::JSValue);
- void appendArgument(long);
- void appendArgument(long long);
- void appendArgument(unsigned int);
- void appendArgument(unsigned long);
- void appendArgument(int);
- void appendArgument(bool);
-
- protected:
- JSC::MarkedArgumentBuffer m_arguments;
- ScriptState* m_exec;
-
- private:
- // MarkedArgumentBuffer must be stack allocated, so prevent heap
- // alloc of ScriptFunctionCall as well.
- void* operator new(size_t) { ASSERT_NOT_REACHED(); return reinterpret_cast<void*>(0xbadbeef); }
- void* operator new[](size_t) { ASSERT_NOT_REACHED(); return reinterpret_cast<void*>(0xbadbeef); }
- };
-
- class ScriptFunctionCall : public ScriptCallArgumentHandler {
- public:
- ScriptFunctionCall(const ScriptObject& thisObject, const String& name);
- ScriptValue call(bool& hadException, bool reportExceptions = true);
- ScriptValue call();
- ScriptObject construct(bool& hadException, bool reportExceptions = true);
-
- protected:
- ScriptObject m_thisObject;
- String m_name;
- };
-
- class ScriptCallback : public ScriptCallArgumentHandler {
- public:
- ScriptCallback(ScriptState*, ScriptValue);
-
- ScriptValue call();
- ScriptValue call(bool& hadException);
-
- private:
- ScriptValue m_function;
- };
-
-} // namespace WebCore
-
-#endif // ScriptFunctionCall
diff --git a/WebCore/bindings/js/ScriptGCEvent.cpp b/WebCore/bindings/js/ScriptGCEvent.cpp
deleted file mode 100644
index 4b39799..0000000
--- a/WebCore/bindings/js/ScriptGCEvent.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptGCEvent.h"
-
-#if ENABLE(INSPECTOR)
-
-#include "JSDOMWindow.h"
-#include <runtime/Collector.h>
-#include <runtime/JSGlobalData.h>
-#include <wtf/CurrentTime.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-void ScriptGCEvent::getHeapSize(size_t& usedHeapSize, size_t& totalHeapSize)
-{
- JSGlobalData* globalData = JSDOMWindow::commonJSGlobalData();
- totalHeapSize = globalData->heap.size();
- usedHeapSize = totalHeapSize;
-}
-} // namespace WebCore
-
-#endif // !ENABLE(INSPECTOR)
diff --git a/WebCore/bindings/js/ScriptGCEvent.h b/WebCore/bindings/js/ScriptGCEvent.h
deleted file mode 100644
index 86d4f68..0000000
--- a/WebCore/bindings/js/ScriptGCEvent.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptGCEvent_h
-#define ScriptGCEvent_h
-
-#if ENABLE(INSPECTOR)
-
-namespace WebCore {
-
-class ScriptGCEventListener;
-
-class ScriptGCEvent
-{
-public:
- static void addEventListener(ScriptGCEventListener*) { }
- static void removeEventListener(ScriptGCEventListener*) { }
- static void getHeapSize(size_t& usedHeapSize, size_t& totalHeapSize);
-};
-
-} // namespace WebCore
-
-#endif // !ENABLE(INSPECTOR)
-#endif // !defined(ScriptGCEvent_h)
diff --git a/WebCore/bindings/js/ScriptHeapSnapshot.h b/WebCore/bindings/js/ScriptHeapSnapshot.h
deleted file mode 100644
index 4c3d915..0000000
--- a/WebCore/bindings/js/ScriptHeapSnapshot.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2010, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptHeapSnapshot_h
-#define ScriptHeapSnapshot_h
-
-#include "InspectorValues.h"
-#include "PlatformString.h"
-
-namespace WebCore {
-
-class ScriptHeapSnapshot : public RefCounted<ScriptHeapSnapshot> {
-public:
- class OutputStream {
- public:
- virtual ~OutputStream() { }
- virtual void Write(const String& chunk) = 0;
- virtual void Close() = 0;
- };
-
- virtual ~ScriptHeapSnapshot() { }
-
- String title() const { return ""; }
- unsigned int uid() const { return 0; }
-
- void writeJSON(OutputStream*) { }
-
-private:
- ScriptHeapSnapshot() { }
-};
-
-} // namespace WebCore
-
-#endif // ScriptHeapSnapshot_h
diff --git a/WebCore/bindings/js/ScriptInstance.h b/WebCore/bindings/js/ScriptInstance.h
deleted file mode 100644
index 0b3b59f..0000000
--- a/WebCore/bindings/js/ScriptInstance.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2008, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptInstance_h
-#define ScriptInstance_h
-
-#include "Bridge.h"
-#include <wtf/RefPtr.h>
-
-namespace WebCore {
-
-typedef RefPtr<JSC::Bindings::Instance> ScriptInstance;
-typedef PassRefPtr<JSC::Bindings::Instance> PassScriptInstance;
-
-} // namespace WebCore
-
-#endif // ScriptInstance_h
diff --git a/WebCore/bindings/js/ScriptObject.cpp b/WebCore/bindings/js/ScriptObject.cpp
deleted file mode 100644
index e06eccb..0000000
--- a/WebCore/bindings/js/ScriptObject.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptObject.h"
-
-#include "JSDOMBinding.h"
-
-#include <runtime/JSLock.h>
-
-#if ENABLE(INSPECTOR)
-#include "JSInjectedScriptHost.h"
-#include "JSInspectorFrontendHost.h"
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-ScriptObject::ScriptObject(ScriptState* scriptState, JSObject* object)
- : ScriptValue(object)
- , m_scriptState(scriptState)
-{
-}
-
-static bool handleException(ScriptState* scriptState)
-{
- if (!scriptState->hadException())
- return true;
-
- reportException(scriptState, scriptState->exception());
- return false;
-}
-
-bool ScriptGlobalObject::set(ScriptState* scriptState, const char* name, const ScriptObject& value)
-{
- JSLock lock(SilenceAssertionsOnly);
- scriptState->lexicalGlobalObject()->putDirect(Identifier(scriptState, name), value.jsObject());
- return handleException(scriptState);
-}
-
-#if ENABLE(INSPECTOR)
-bool ScriptGlobalObject::set(ScriptState* scriptState, const char* name, InspectorFrontendHost* value)
-{
- JSLock lock(SilenceAssertionsOnly);
- JSDOMGlobalObject* globalObject = static_cast<JSDOMGlobalObject*>(scriptState->lexicalGlobalObject());
- globalObject->putDirect(Identifier(scriptState, name), toJS(scriptState, globalObject, value));
- return handleException(scriptState);
-}
-
-bool ScriptGlobalObject::set(ScriptState* scriptState, const char* name, InjectedScriptHost* value)
-{
- JSLock lock(SilenceAssertionsOnly);
- JSDOMGlobalObject* globalObject = static_cast<JSDOMGlobalObject*>(scriptState->lexicalGlobalObject());
- globalObject->putDirect(Identifier(scriptState, name), toJS(scriptState, globalObject, value));
- return handleException(scriptState);
-}
-#endif // ENABLE(INSPECTOR)
-
-bool ScriptGlobalObject::get(ScriptState* scriptState, const char* name, ScriptObject& value)
-{
- JSLock lock(SilenceAssertionsOnly);
- JSValue jsValue = scriptState->lexicalGlobalObject()->get(scriptState, Identifier(scriptState, name));
- if (!jsValue)
- return false;
-
- if (!jsValue.isObject())
- return false;
-
- value = ScriptObject(scriptState, asObject(jsValue));
- return true;
-}
-
-bool ScriptGlobalObject::remove(ScriptState* scriptState, const char* name)
-{
- JSLock lock(SilenceAssertionsOnly);
- scriptState->lexicalGlobalObject()->deleteProperty(scriptState, Identifier(scriptState, name));
- return handleException(scriptState);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/ScriptObject.h b/WebCore/bindings/js/ScriptObject.h
deleted file mode 100644
index f085e8b..0000000
--- a/WebCore/bindings/js/ScriptObject.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptObject_h
-#define ScriptObject_h
-
-#include "ScriptState.h"
-#include "ScriptValue.h"
-
-#include <runtime/JSObject.h>
-#include <runtime/Protect.h>
-
-namespace WebCore {
- class InjectedScriptHost;
- class InspectorFrontendHost;
-
- class ScriptObject : public ScriptValue {
- public:
- ScriptObject(ScriptState*, JSC::JSObject*);
- ScriptObject() {}
- JSC::JSObject* jsObject() const { return asObject(jsValue()); }
- ScriptState* scriptState() const { return m_scriptState; }
-
- protected:
- ScriptState* m_scriptState;
- };
-
- class ScriptGlobalObject {
- public:
- static bool set(ScriptState*, const char* name, const ScriptObject&);
-#if ENABLE(INSPECTOR)
- static bool set(ScriptState*, const char* name, InspectorFrontendHost*);
- static bool set(ScriptState*, const char* name, InjectedScriptHost*);
-#endif
- static bool get(ScriptState*, const char* name, ScriptObject&);
- static bool remove(ScriptState*, const char* name);
- private:
- ScriptGlobalObject() { }
- };
-
-}
-
-#endif // ScriptObject_h
diff --git a/WebCore/bindings/js/ScriptProfile.cpp b/WebCore/bindings/js/ScriptProfile.cpp
deleted file mode 100644
index 84451fb..0000000
--- a/WebCore/bindings/js/ScriptProfile.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptProfile.h"
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-#include "InspectorValues.h"
-#include "JSDOMBinding.h"
-#include <profiler/Profile.h>
-#include <profiler/ProfileNode.h>
-
-namespace WebCore {
-
-PassRefPtr<ScriptProfile> ScriptProfile::create(PassRefPtr<JSC::Profile> profile)
-{
- if (!profile)
- return 0;
- return adoptRef(new ScriptProfile(profile));
-}
-
-ScriptProfile::ScriptProfile(PassRefPtr<JSC::Profile> profile)
- : m_profile(profile)
-{
-}
-
-ScriptProfile::~ScriptProfile()
-{
-}
-
-String ScriptProfile::title() const
-{
- return ustringToString(m_profile->title());
-}
-
-unsigned int ScriptProfile::uid() const
-{
- return m_profile->uid();
-}
-
-ScriptProfileNode* ScriptProfile::head() const
-{
- return m_profile->head();
-}
-
-#if ENABLE(INSPECTOR)
-static PassRefPtr<InspectorObject> buildInspectorObjectFor(const JSC::ProfileNode* node)
-{
- RefPtr<InspectorObject> result = InspectorObject::create();
-
- result->setString("functionName", ustringToString(node->functionName()));
- result->setString("url", ustringToString(node->url()));
- result->setNumber("lineNumber", node->lineNumber());
- result->setNumber("totalTime", node->totalTime());
- result->setNumber("selfTime", node->selfTime());
- result->setNumber("numberOfCalls", node->numberOfCalls());
- result->setBoolean("visible", node->visible());
- result->setNumber("callUID", node->callIdentifier().hash());
-
- RefPtr<InspectorArray> childrenArray = InspectorArray::create();
- typedef Vector<RefPtr<JSC::ProfileNode> > ProfileNodesList;
- const ProfileNodesList& children = node->children();
- ProfileNodesList::const_iterator end = children.end();
- for (ProfileNodesList::const_iterator iter = children.begin(); iter != end; ++iter)
- childrenArray->pushObject(buildInspectorObjectFor(iter->get()));
- result->setArray("children", childrenArray);
-
- return result;
-}
-
-PassRefPtr<InspectorObject> ScriptProfile::buildInspectorObjectForHead() const
-{
- return buildInspectorObjectFor(m_profile->head());
-}
-#endif
-
-} // namespace WebCore
-
-#endif // ENABLE(JAVASCRIPT_DEBUGGER)
diff --git a/WebCore/bindings/js/ScriptProfile.h b/WebCore/bindings/js/ScriptProfile.h
deleted file mode 100644
index 0b38edc..0000000
--- a/WebCore/bindings/js/ScriptProfile.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptProfile_h
-#define ScriptProfile_h
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-#include "ScriptProfileNode.h"
-#include <wtf/Forward.h>
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-#include <wtf/RefPtr.h>
-
-namespace JSC {
-class Profile;
-}
-
-namespace WebCore {
-
-class InspectorObject;
-
-class ScriptProfile : public RefCounted<ScriptProfile> {
-public:
- static PassRefPtr<ScriptProfile> create(PassRefPtr<JSC::Profile> profile);
- virtual ~ScriptProfile();
-
- String title() const;
- unsigned int uid() const;
- ScriptProfileNode* head() const;
-
-#if ENABLE(INSPECTOR)
- PassRefPtr<InspectorObject> buildInspectorObjectForHead() const;
-#endif
-
-private:
- ScriptProfile(PassRefPtr<JSC::Profile> profile);
-
- RefPtr<JSC::Profile> m_profile;
-};
-
-
-} // namespace WebCore
-
-#endif // ENABLE(JAVASCRIPT_DEBUGGER)
-
-#endif // ScriptProfile_h
diff --git a/WebCore/bindings/js/ScriptProfileNode.h b/WebCore/bindings/js/ScriptProfileNode.h
deleted file mode 100644
index b2edcbf..0000000
--- a/WebCore/bindings/js/ScriptProfileNode.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptProfileNode_h
-#define ScriptProfileNode_h
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-#include <profiler/ProfileNode.h>
-
-namespace WebCore {
-
-typedef JSC::ProfileNode ScriptProfileNode;
-
-} // namespace WebCore
-
-#endif // ENABLE(JAVASCRIPT_DEBUGGER)
-
-#endif // ScriptProfileNode_h
diff --git a/WebCore/bindings/js/ScriptProfiler.cpp b/WebCore/bindings/js/ScriptProfiler.cpp
deleted file mode 100644
index 62ae9ba..0000000
--- a/WebCore/bindings/js/ScriptProfiler.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-
-#include "ScriptProfiler.h"
-
-#include "JSDOMBinding.h"
-#include <profiler/Profiler.h>
-
-namespace WebCore {
-
-void ScriptProfiler::start(ScriptState* state, const String& title)
-{
- JSC::Profiler::profiler()->startProfiling(state, stringToUString(title));
-}
-
-PassRefPtr<ScriptProfile> ScriptProfiler::stop(ScriptState* state, const String& title)
-{
- RefPtr<JSC::Profile> profile = JSC::Profiler::profiler()->stopProfiling(state, stringToUString(title));
- return ScriptProfile::create(profile);
-}
-
-bool ScriptProfiler::isProfilerAlwaysEnabled()
-{
- return false;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(JAVASCRIPT_DEBUGGER)
diff --git a/WebCore/bindings/js/ScriptProfiler.h b/WebCore/bindings/js/ScriptProfiler.h
deleted file mode 100644
index 05e7a25..0000000
--- a/WebCore/bindings/js/ScriptProfiler.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptProfiler_h
-#define ScriptProfiler_h
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-#include "ScriptHeapSnapshot.h"
-#include "ScriptProfile.h"
-#include "ScriptState.h"
-
-#include <wtf/Noncopyable.h>
-
-namespace WebCore {
-
-class ScriptProfiler : public Noncopyable {
-public:
- static void start(ScriptState* state, const String& title);
- static PassRefPtr<ScriptProfile> stop(ScriptState* state, const String& title);
- static PassRefPtr<ScriptHeapSnapshot> takeHeapSnapshot(const String&) { return 0; }
- static bool isProfilerAlwaysEnabled();
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(JAVASCRIPT_DEBUGGER)
-
-#endif // ScriptProfiler_h
diff --git a/WebCore/bindings/js/ScriptSourceCode.h b/WebCore/bindings/js/ScriptSourceCode.h
deleted file mode 100644
index 092eeb8..0000000
--- a/WebCore/bindings/js/ScriptSourceCode.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 2008, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptSourceCode_h
-#define ScriptSourceCode_h
-
-#include "CachedScriptSourceProvider.h"
-#include "ScriptSourceProvider.h"
-#include "StringSourceProvider.h"
-#include "KURL.h"
-#include <wtf/text/TextPosition.h>
-#include <wtf/RefPtr.h>
-
-namespace WebCore {
-
-class ScriptSourceCode {
-public:
- ScriptSourceCode(const String& source, const KURL& url = KURL(), const TextPosition1& startPosition = TextPosition1::minimumPosition())
- : m_provider(StringSourceProvider::create(source, url.isNull() ? String() : url.string()))
- , m_code(m_provider, startPosition.m_line.oneBasedInt())
- , m_url(url)
- {
- }
-
- ScriptSourceCode(CachedScript* cs)
- : m_provider(CachedScriptSourceProvider::create(cs))
- , m_code(m_provider)
- {
- }
-
- bool isEmpty() const { return m_code.length() == 0; }
-
- const JSC::SourceCode& jsSourceCode() const { return m_code; }
-
- const String& source() const { return m_provider->source(); }
-
- int startLine() const { return m_code.firstLine(); }
-
- const KURL& url() const { return m_url; }
-
-private:
- RefPtr<ScriptSourceProvider> m_provider;
-
- JSC::SourceCode m_code;
-
- KURL m_url;
-
-};
-
-} // namespace WebCore
-
-#endif // ScriptSourceCode_h
diff --git a/WebCore/bindings/js/ScriptSourceProvider.h b/WebCore/bindings/js/ScriptSourceProvider.h
deleted file mode 100644
index de4e307..0000000
--- a/WebCore/bindings/js/ScriptSourceProvider.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2009 Daniel Bates (dbates@intudata.com)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptSourceProvider_h
-#define ScriptSourceProvider_h
-
-#include <parser/SourceProvider.h>
-#include <wtf/Forward.h>
-
-namespace WebCore {
-
- class ScriptSourceProvider : public JSC::SourceProvider {
- public:
- ScriptSourceProvider(const JSC::UString& url)
- : SourceProvider(url)
- {
- }
-
- virtual const String& source() const = 0;
- };
-
-} // namespace WebCore
-
-#endif // ScriptSourceProvider_h
diff --git a/WebCore/bindings/js/ScriptState.cpp b/WebCore/bindings/js/ScriptState.cpp
deleted file mode 100644
index d6699f6..0000000
--- a/WebCore/bindings/js/ScriptState.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptState.h"
-
-#include "Frame.h"
-#include "JSDOMWindowBase.h"
-#include "Node.h"
-#include "Page.h"
-#include <interpreter/CallFrame.h>
-#include <runtime/JSGlobalObject.h>
-
-namespace WebCore {
-
-ScriptStateProtectedPtr::~ScriptStateProtectedPtr()
-{
-}
-
-ScriptStateProtectedPtr::ScriptStateProtectedPtr(ScriptState* scriptState)
- : m_globalObject(scriptState->lexicalGlobalObject())
-{
-}
-
-ScriptState* ScriptStateProtectedPtr::get() const
-{
- if (m_globalObject)
- return m_globalObject->globalExec();
- return 0;
-}
-
-
-ScriptState* mainWorldScriptState(Frame* frame)
-{
- JSDOMWindowShell* shell = frame->script()->windowShell(mainThreadNormalWorld());
- return shell->window()->globalExec();
-}
-
-ScriptState* scriptStateFromNode(DOMWrapperWorld* world, Node* node)
-{
- if (!node)
- return 0;
- Document* document = node->document();
- if (!document)
- return 0;
- Frame* frame = document->frame();
- if (!frame)
- return 0;
- if (!frame->script()->canExecuteScripts(NotAboutToExecuteScript))
- return 0;
- return frame->script()->globalObject(world)->globalExec();
-}
-
-ScriptState* scriptStateFromPage(DOMWrapperWorld* world, Page* page)
-{
- return page->mainFrame()->script()->globalObject(world)->globalExec();
-}
-
-}
diff --git a/WebCore/bindings/js/ScriptState.h b/WebCore/bindings/js/ScriptState.h
deleted file mode 100644
index 0c08611..0000000
--- a/WebCore/bindings/js/ScriptState.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2008, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptState_h
-#define ScriptState_h
-
-#include <runtime/Protect.h>
-#include <wtf/Noncopyable.h>
-
-namespace JSC {
-class ExecState;
-class JSGlobalObject;
-}
-
-namespace WebCore {
-class DOMWrapperWorld;
-class Frame;
-class Node;
-class Page;
-
-// The idea is to expose "state-like" methods (hadException, and any other
-// methods where ExecState just dips into globalData) of JSC::ExecState as a
-// separate abstraction.
-// For now, the separation is purely by convention.
-typedef JSC::ExecState ScriptState;
-
-class ScriptStateProtectedPtr : public Noncopyable {
-public:
- explicit ScriptStateProtectedPtr(ScriptState*);
- ~ScriptStateProtectedPtr();
- ScriptState* get() const;
-private:
- JSC::ProtectedPtr<JSC::JSGlobalObject> m_globalObject;
-};
-
-ScriptState* mainWorldScriptState(Frame*);
-
-ScriptState* scriptStateFromNode(DOMWrapperWorld*, Node*);
-ScriptState* scriptStateFromPage(DOMWrapperWorld*, Page*);
-
-} // namespace WebCore
-
-#endif // ScriptState_h
diff --git a/WebCore/bindings/js/ScriptValue.cpp b/WebCore/bindings/js/ScriptValue.cpp
deleted file mode 100644
index a2a72b6..0000000
--- a/WebCore/bindings/js/ScriptValue.cpp
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptValue.h"
-
-#include "InspectorValues.h"
-#include "SerializedScriptValue.h"
-
-#include <JavaScriptCore/APICast.h>
-#include <JavaScriptCore/JSValueRef.h>
-
-#include <runtime/JSLock.h>
-#include <runtime/Protect.h>
-#include <runtime/UString.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-bool ScriptValue::getString(ScriptState* scriptState, String& result) const
-{
- if (!m_value)
- return false;
- JSLock lock(SilenceAssertionsOnly);
- UString ustring;
- if (!m_value.get().getString(scriptState, ustring))
- return false;
- result = ustringToString(ustring);
- return true;
-}
-
-bool ScriptValue::isEqual(ScriptState* scriptState, const ScriptValue& anotherValue) const
-{
- if (hasNoValue())
- return anotherValue.hasNoValue();
-
- return JSValueIsEqual(toRef(scriptState), toRef(scriptState, jsValue()), toRef(scriptState, anotherValue.jsValue()), 0);
-}
-
-bool ScriptValue::isNull() const
-{
- if (!m_value)
- return false;
- return m_value.get().isNull();
-}
-
-bool ScriptValue::isUndefined() const
-{
- if (!m_value)
- return false;
- return m_value.get().isUndefined();
-}
-
-bool ScriptValue::isObject() const
-{
- if (!m_value)
- return false;
- return m_value.get().isObject();
-}
-
-bool ScriptValue::isFunction() const
-{
- CallData callData;
- return getCallData(m_value, callData) != CallTypeNone;
-}
-
-PassRefPtr<SerializedScriptValue> ScriptValue::serialize(ScriptState* scriptState)
-{
- return SerializedScriptValue::create(scriptState, jsValue());
-}
-
-ScriptValue ScriptValue::deserialize(ScriptState* scriptState, SerializedScriptValue* value)
-{
- return ScriptValue(value->deserialize(scriptState, scriptState->lexicalGlobalObject()));
-}
-
-#if ENABLE(INSPECTOR)
-static PassRefPtr<InspectorValue> jsToInspectorValue(ScriptState* scriptState, JSValue value)
-{
- if (!value) {
- ASSERT_NOT_REACHED();
- return 0;
- }
- if (value.isNull() || value.isUndefined())
- return InspectorValue::null();
- if (value.isBoolean())
- return InspectorBasicValue::create(value.getBoolean());
- if (value.isNumber())
- return InspectorBasicValue::create(value.uncheckedGetNumber());
- if (value.isString()) {
- UString s = value.getString(scriptState);
- return InspectorString::create(String(s.characters(), s.length()));
- }
- if (value.isObject()) {
- if (isJSArray(&scriptState->globalData(), value)) {
- RefPtr<InspectorArray> inspectorArray = InspectorArray::create();
- JSArray* array = asArray(value);
- unsigned length = array->length();
- for (unsigned i = 0; i < length; i++) {
- JSValue element = array->getIndex(i);
- RefPtr<InspectorValue> elementValue = jsToInspectorValue(scriptState, element);
- if (!elementValue) {
- ASSERT_NOT_REACHED();
- elementValue = InspectorValue::null();
- }
- inspectorArray->pushValue(elementValue);
- }
- return inspectorArray;
- }
- RefPtr<InspectorObject> inspectorObject = InspectorObject::create();
- JSObject* object = value.getObject();
- PropertyNameArray propertyNames(scriptState);
- object->getOwnPropertyNames(scriptState, propertyNames);
- for (size_t i = 0; i < propertyNames.size(); i++) {
- const Identifier& name = propertyNames[i];
- JSValue propertyValue = object->get(scriptState, name);
- RefPtr<InspectorValue> inspectorValue = jsToInspectorValue(scriptState, propertyValue);
- if (!inspectorValue) {
- ASSERT_NOT_REACHED();
- inspectorValue = InspectorValue::null();
- }
- inspectorObject->setValue(String(name.characters(), name.length()), inspectorValue);
- }
- return inspectorObject;
- }
- ASSERT_NOT_REACHED();
- return 0;
-}
-
-PassRefPtr<InspectorValue> ScriptValue::toInspectorValue(ScriptState* scriptState) const
-{
- return jsToInspectorValue(scriptState, m_value.get());
-}
-#endif // ENABLE(INSPECTOR)
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/ScriptValue.h b/WebCore/bindings/js/ScriptValue.h
deleted file mode 100644
index 5746c3f..0000000
--- a/WebCore/bindings/js/ScriptValue.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2008, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptValue_h
-#define ScriptValue_h
-
-#include "JSDOMBinding.h"
-#include "PlatformString.h"
-#include "ScriptState.h"
-#include <runtime/JSValue.h>
-#include <runtime/Protect.h>
-#include <wtf/PassRefPtr.h>
-
-namespace WebCore {
-
-class InspectorValue;
-class SerializedScriptValue;
-
-class ScriptValue {
-public:
- ScriptValue(JSC::JSValue value = JSC::JSValue()) : m_value(value) {}
- virtual ~ScriptValue() {}
-
- JSC::JSValue jsValue() const { return m_value.get(); }
- bool getString(ScriptState*, String& result) const;
- String toString(ScriptState* scriptState) const { return ustringToString(m_value.get().toString(scriptState)); }
- bool isEqual(ScriptState*, const ScriptValue&) const;
- bool isNull() const;
- bool isUndefined() const;
- bool isObject() const;
- bool isFunction() const;
- bool hasNoValue() const { return m_value == JSC::JSValue(); }
-
- bool operator==(const ScriptValue& other) const { return m_value == other.m_value; }
-
- PassRefPtr<SerializedScriptValue> serialize(ScriptState*);
- static ScriptValue deserialize(ScriptState*, SerializedScriptValue*);
-
- static ScriptValue undefined() { return ScriptValue(JSC::jsUndefined()); }
-
-#if ENABLE(INSPECTOR)
- PassRefPtr<InspectorValue> toInspectorValue(ScriptState*) const;
-#endif
-
-private:
- JSC::ProtectedJSValue m_value;
-};
-
-} // namespace WebCore
-
-#endif // ScriptValue_h
diff --git a/WebCore/bindings/js/ScriptWrappable.h b/WebCore/bindings/js/ScriptWrappable.h
deleted file mode 100644
index c57796c..0000000
--- a/WebCore/bindings/js/ScriptWrappable.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2010, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptWrappable_h
-#define ScriptWrappable_h
-
-#include "JSDOMWrapper.h"
-#include <runtime/WeakGCPtr.h>
-
-namespace WebCore {
-
-class ScriptWrappable {
-public:
- DOMObject* wrapper() const
- {
- return m_wrapper.get();
- }
-
- void setWrapper(DOMObject* wrapper)
- {
- m_wrapper = wrapper;
- }
-
- void clearWrapper(DOMObject* wrapper)
- {
- m_wrapper.clear(wrapper);
- }
-
-private:
- JSC::WeakGCPtr<DOMObject> m_wrapper;
-};
-
-} // namespace WebCore
-
-#endif // ScriptWrappable_h
diff --git a/WebCore/bindings/js/SerializedScriptValue.cpp b/WebCore/bindings/js/SerializedScriptValue.cpp
deleted file mode 100644
index bfa2b75..0000000
--- a/WebCore/bindings/js/SerializedScriptValue.cpp
+++ /dev/null
@@ -1,1424 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include "config.h"
-#include "SerializedScriptValue.h"
-
-#include "Blob.h"
-#include "File.h"
-#include "FileList.h"
-#include "ImageData.h"
-#include "JSBlob.h"
-#include "JSDOMGlobalObject.h"
-#include "JSFile.h"
-#include "JSFileList.h"
-#include "JSImageData.h"
-#include "SharedBuffer.h"
-#include <limits>
-#include <JavaScriptCore/APICast.h>
-#include <runtime/DateInstance.h>
-#include <runtime/Error.h>
-#include <runtime/ExceptionHelpers.h>
-#include <runtime/JSLock.h>
-#include <runtime/PropertyNameArray.h>
-#include <runtime/RegExp.h>
-#include <runtime/RegExpObject.h>
-#include <wtf/ByteArray.h>
-#include <wtf/HashTraits.h>
-#include <wtf/Vector.h>
-
-using namespace JSC;
-using namespace std;
-
-#if CPU(BIG_ENDIAN) || CPU(MIDDLE_ENDIAN)
-#define ASSUME_LITTLE_ENDIAN 0
-#else
-#define ASSUME_LITTLE_ENDIAN 1
-#endif
-
-namespace WebCore {
-
-static const unsigned maximumFilterRecursion = 40000;
-
-enum WalkerState { StateUnknown, ArrayStartState, ArrayStartVisitMember, ArrayEndVisitMember,
- ObjectStartState, ObjectStartVisitMember, ObjectEndVisitMember };
-
-// These can't be reordered, and any new types must be added to the end of the list
-enum SerializationTag {
- ArrayTag = 1,
- ObjectTag = 2,
- UndefinedTag = 3,
- NullTag = 4,
- IntTag = 5,
- ZeroTag = 6,
- OneTag = 7,
- FalseTag = 8,
- TrueTag = 9,
- DoubleTag = 10,
- DateTag = 11,
- FileTag = 12,
- FileListTag = 13,
- ImageDataTag = 14,
- BlobTag = 15,
- StringTag = 16,
- EmptyStringTag = 17,
- RegExpTag = 18,
- ObjectReferenceTag = 19,
- ErrorTag = 255
-};
-
-/* CurrentVersion tracks the serialization version so that persistant stores
- * are able to correctly bail out in the case of encountering newer formats.
- *
- * Initial version was 1.
- * Version 2. added the ObjectReferenceTag and support for serialization of cyclic graphs.
- */
-static const unsigned int CurrentVersion = 2;
-static const unsigned int TerminatorTag = 0xFFFFFFFF;
-static const unsigned int StringPoolTag = 0xFFFFFFFE;
-
-/*
- * Object serialization is performed according to the following grammar, all tags
- * are recorded as a single uint8_t.
- *
- * IndexType (used for the object pool and StringData's constant pool) is the
- * minimum sized unsigned integer type required to represent the maximum index
- * in the constant pool.
- *
- * SerializedValue :- <CurrentVersion:uint32_t> Value
- * Value :- Array | Object | Terminal
- *
- * Array :-
- * ArrayTag <length:uint32_t>(<index:uint32_t><value:Value>)* TerminatorTag
- *
- * Object :-
- * ObjectTag (<name:StringData><value:Value>)* TerminatorTag
- *
- * Terminal :-
- * UndefinedTag
- * | NullTag
- * | IntTag <value:int32_t>
- * | ZeroTag
- * | OneTag
- * | DoubleTag <value:double>
- * | DateTag <value:double>
- * | String
- * | EmptyStringTag
- * | File
- * | FileList
- * | ImageData
- * | Blob
- * | ObjectReferenceTag <opIndex:IndexType>
- *
- * String :-
- * EmptyStringTag
- * StringTag StringData
- *
- * StringData :-
- * StringPoolTag <cpIndex:IndexType>
- * (not (TerminatorTag | StringPoolTag))<length:uint32_t><characters:UChar{length}> // Added to constant pool when seen, string length 0xFFFFFFFF is disallowed
- *
- * File :-
- * FileTag FileData
- *
- * FileData :-
- * <path:StringData> <url:StringData> <type:StringData>
- *
- * FileList :-
- * FileListTag <length:uint32_t>(<file:FileData>){length}
- *
- * ImageData :-
- * ImageDataTag <width:uint32_t><height:uint32_t><length:uint32_t><data:uint8_t{length}>
- *
- * Blob :-
- * BlobTag <url:StringData><type:StringData><size:long long>
- *
- * RegExp :-
- * RegExpTag <pattern:StringData><flags:StringData>
- */
-
-class CloneBase {
-protected:
- CloneBase(ExecState* exec)
- : m_exec(exec)
- , m_failed(false)
- , m_timeoutChecker(exec->globalData().timeoutChecker)
- {
- }
-
- bool shouldTerminate()
- {
- return m_exec->hadException();
- }
-
- unsigned ticksUntilNextCheck()
- {
- return m_timeoutChecker.ticksUntilNextCheck();
- }
-
- bool didTimeOut()
- {
- return m_timeoutChecker.didTimeOut(m_exec);
- }
-
- void throwStackOverflow()
- {
- throwError(m_exec, createStackOverflowError(m_exec));
- }
-
- void throwInterruptedException()
- {
- throwError(m_exec, createInterruptedExecutionException(&m_exec->globalData()));
- }
-
- void fail()
- {
- ASSERT_NOT_REACHED();
- m_failed = true;
- }
-
- ExecState* m_exec;
- bool m_failed;
- TimeoutChecker m_timeoutChecker;
- MarkedArgumentBuffer m_gcBuffer;
-};
-
-class CloneSerializer : CloneBase {
-public:
- static bool serialize(ExecState* exec, JSValue value, Vector<uint8_t>& out)
- {
- CloneSerializer serializer(exec, out);
- return serializer.serialize(value);
- }
-
- static bool serialize(String s, Vector<uint8_t>& out)
- {
- writeLittleEndian(out, CurrentVersion);
- if (s.isEmpty()) {
- writeLittleEndian<uint8_t>(out, EmptyStringTag);
- return true;
- }
- writeLittleEndian<uint8_t>(out, StringTag);
- writeLittleEndian(out, s.length());
- return writeLittleEndian(out, s.impl()->characters(), s.length());
- }
-
-private:
- CloneSerializer(ExecState* exec, Vector<uint8_t>& out)
- : CloneBase(exec)
- , m_buffer(out)
- , m_emptyIdentifier(exec, UString("", 0))
- {
- write(CurrentVersion);
- }
-
- bool serialize(JSValue in);
-
- bool isArray(JSValue value)
- {
- if (!value.isObject())
- return false;
- JSObject* object = asObject(value);
- return isJSArray(&m_exec->globalData(), object) || object->inherits(&JSArray::info);
- }
-
- bool startObjectInternal(JSObject* object)
- {
- // Record object for graph reconstruction
- pair<ObjectPool::iterator, bool> iter = m_objectPool.add(object, m_objectPool.size());
-
- // Handle duplicate references
- if (!iter.second) {
- write(ObjectReferenceTag);
- ASSERT(static_cast<int32_t>(iter.first->second) < m_objectPool.size());
- writeObjectIndex(iter.first->second);
- return false;
- }
-
- m_gcBuffer.append(object);
- return true;
- }
-
- bool startObject(JSObject* object)
- {
- if (!startObjectInternal(object))
- return false;
- write(ObjectTag);
- return true;
- }
-
- bool startArray(JSArray* array)
- {
- if (!startObjectInternal(array))
- return false;
-
- unsigned length = array->length();
- write(ArrayTag);
- write(length);
- return true;
- }
-
- void endObject()
- {
- write(TerminatorTag);
- }
-
- JSValue getSparseIndex(JSArray* array, unsigned propertyName, bool& hasIndex)
- {
- PropertySlot slot(array);
- if (isJSArray(&m_exec->globalData(), array)) {
- if (array->JSArray::getOwnPropertySlot(m_exec, propertyName, slot)) {
- hasIndex = true;
- return slot.getValue(m_exec, propertyName);
- }
- } else if (array->getOwnPropertySlot(m_exec, propertyName, slot)) {
- hasIndex = true;
- return slot.getValue(m_exec, propertyName);
- }
- hasIndex = false;
- return jsNull();
- }
-
- JSValue getProperty(JSObject* object, const Identifier& propertyName)
- {
- PropertySlot slot(object);
- if (object->getOwnPropertySlot(m_exec, propertyName, slot))
- return slot.getValue(m_exec, propertyName);
- return JSValue();
- }
-
- void dumpImmediate(JSValue value)
- {
- if (value.isNull())
- write(NullTag);
- else if (value.isUndefined())
- write(UndefinedTag);
- else if (value.isNumber()) {
- if (value.isInt32()) {
- if (!value.asInt32())
- write(ZeroTag);
- else if (value.asInt32() == 1)
- write(OneTag);
- else {
- write(IntTag);
- write(static_cast<uint32_t>(value.asInt32()));
- }
- } else {
- write(DoubleTag);
- write(value.asDouble());
- }
- } else if (value.isBoolean()) {
- if (value.isTrue())
- write(TrueTag);
- else
- write(FalseTag);
- }
- }
-
- void dumpString(UString str)
- {
- if (str.isEmpty())
- write(EmptyStringTag);
- else {
- write(StringTag);
- write(str);
- }
- }
-
- bool dumpIfTerminal(JSValue value)
- {
- if (!value.isCell()) {
- dumpImmediate(value);
- return true;
- }
-
- if (value.isString()) {
- UString str = asString(value)->value(m_exec);
- dumpString(str);
- return true;
- }
-
- if (value.isNumber()) {
- write(DoubleTag);
- write(value.uncheckedGetNumber());
- return true;
- }
-
- if (value.isObject() && asObject(value)->inherits(&DateInstance::info)) {
- write(DateTag);
- write(asDateInstance(value)->internalNumber());
- return true;
- }
-
- if (isArray(value))
- return false;
-
- if (value.isObject()) {
- JSObject* obj = asObject(value);
- if (obj->inherits(&JSFile::s_info)) {
- write(FileTag);
- write(toFile(obj));
- return true;
- }
- if (obj->inherits(&JSFileList::s_info)) {
- FileList* list = toFileList(obj);
- write(FileListTag);
- unsigned length = list->length();
- write(length);
- for (unsigned i = 0; i < length; i++)
- write(list->item(i));
- return true;
- }
- if (obj->inherits(&JSBlob::s_info)) {
- write(BlobTag);
- Blob* blob = toBlob(obj);
- write(blob->url());
- write(blob->type());
- write(blob->size());
- return true;
- }
- if (obj->inherits(&JSImageData::s_info)) {
- ImageData* data = toImageData(obj);
- write(ImageDataTag);
- write(data->width());
- write(data->height());
- write(data->data()->length());
- write(data->data()->data()->data(), data->data()->length());
- return true;
- }
- if (obj->inherits(&RegExpObject::info)) {
- RegExpObject* regExp = asRegExpObject(obj);
- char flags[3];
- int flagCount = 0;
- if (regExp->regExp()->global())
- flags[flagCount++] = 'g';
- if (regExp->regExp()->ignoreCase())
- flags[flagCount++] = 'i';
- if (regExp->regExp()->multiline())
- flags[flagCount++] = 'm';
- write(RegExpTag);
- write(regExp->regExp()->pattern());
- write(UString(flags, flagCount));
- return true;
- }
-
- CallData unusedData;
- if (getCallData(value, unusedData) == CallTypeNone)
- return false;
- }
- // Any other types are expected to serialize as null.
- write(NullTag);
- return true;
- }
-
- void write(SerializationTag tag)
- {
- writeLittleEndian<uint8_t>(m_buffer, static_cast<uint8_t>(tag));
- }
-
- void write(uint8_t c)
- {
- writeLittleEndian(m_buffer, c);
- }
-
-#if ASSUME_LITTLE_ENDIAN
- template <typename T> static void writeLittleEndian(Vector<uint8_t>& buffer, T value)
- {
- if (sizeof(T) == 1)
- buffer.append(value);
- else
- buffer.append(reinterpret_cast<uint8_t*>(&value), sizeof(value));
- }
-#else
- template <typename T> static void writeLittleEndian(Vector<uint8_t>& buffer, T value)
- {
- for (unsigned i = 0; i < sizeof(T); i++) {
- buffer.append(value & 0xFF);
- value >>= 8;
- }
- }
-#endif
-
- template <typename T> static bool writeLittleEndian(Vector<uint8_t>& buffer, const T* values, uint32_t length)
- {
- if (length > numeric_limits<uint32_t>::max() / sizeof(T))
- return false;
-
-#if ASSUME_LITTLE_ENDIAN
- buffer.append(reinterpret_cast<const uint8_t*>(values), length * sizeof(T));
-#else
- for (unsigned i = 0; i < length; i++) {
- T value = values[i];
- for (unsigned j = 0; j < sizeof(T); j++) {
- buffer.append(static_cast<uint8_t>(value & 0xFF));
- value >>= 8;
- }
- }
-#endif
- return true;
- }
-
- void write(uint32_t i)
- {
- writeLittleEndian(m_buffer, i);
- }
-
- void write(double d)
- {
- union {
- double d;
- int64_t i;
- } u;
- u.d = d;
- writeLittleEndian(m_buffer, u.i);
- }
-
- void write(unsigned long long i)
- {
- writeLittleEndian(m_buffer, i);
- }
-
- void write(uint16_t ch)
- {
- writeLittleEndian(m_buffer, ch);
- }
-
- void writeStringIndex(unsigned i)
- {
- writeConstantPoolIndex(m_constantPool, i);
- }
-
- void writeObjectIndex(unsigned i)
- {
- writeConstantPoolIndex(m_objectPool, i);
- }
-
- template <class T> void writeConstantPoolIndex(const T& constantPool, unsigned i)
- {
- ASSERT(static_cast<int32_t>(i) < constantPool.size());
- if (constantPool.size() <= 0xFF)
- write(static_cast<uint8_t>(i));
- else if (constantPool.size() <= 0xFFFF)
- write(static_cast<uint16_t>(i));
- else
- write(static_cast<uint32_t>(i));
- }
-
- void write(const Identifier& ident)
- {
- UString str = ident.ustring();
- pair<StringConstantPool::iterator, bool> iter = m_constantPool.add(str.impl(), m_constantPool.size());
- if (!iter.second) {
- write(StringPoolTag);
- writeStringIndex(iter.first->second);
- return;
- }
-
- // This condition is unlikely to happen as they would imply an ~8gb
- // string but we should guard against it anyway
- if (str.length() >= StringPoolTag) {
- fail();
- return;
- }
-
- // Guard against overflow
- if (str.length() > (numeric_limits<uint32_t>::max() - sizeof(uint32_t)) / sizeof(UChar)) {
- fail();
- return;
- }
-
- writeLittleEndian<uint32_t>(m_buffer, str.length());
- if (!writeLittleEndian<uint16_t>(m_buffer, reinterpret_cast<const uint16_t*>(str.characters()), str.length()))
- fail();
- }
-
- void write(const UString& str)
- {
- if (str.isNull())
- write(m_emptyIdentifier);
- else
- write(Identifier(m_exec, str));
- }
-
- void write(const String& str)
- {
- if (str.isEmpty())
- write(m_emptyIdentifier);
- else
- write(Identifier(m_exec, str.impl()));
- }
-
- void write(const File* file)
- {
- write(file->path());
- write(file->url());
- write(file->type());
- }
-
- void write(const uint8_t* data, unsigned length)
- {
- m_buffer.append(data, length);
- }
-
- Vector<uint8_t>& m_buffer;
- typedef HashMap<JSObject*, uint32_t> ObjectPool;
- ObjectPool m_objectPool;
- typedef HashMap<RefPtr<StringImpl>, uint32_t, IdentifierRepHash> StringConstantPool;
- StringConstantPool m_constantPool;
- Identifier m_emptyIdentifier;
-};
-
-bool CloneSerializer::serialize(JSValue in)
-{
- Vector<uint32_t, 16> indexStack;
- Vector<uint32_t, 16> lengthStack;
- Vector<PropertyNameArray, 16> propertyStack;
- Vector<JSObject*, 16> inputObjectStack;
- Vector<JSArray*, 16> inputArrayStack;
- Vector<WalkerState, 16> stateStack;
- WalkerState state = StateUnknown;
- JSValue inValue = in;
- unsigned tickCount = ticksUntilNextCheck();
- while (1) {
- switch (state) {
- arrayStartState:
- case ArrayStartState: {
- ASSERT(isArray(inValue));
- if (inputObjectStack.size() + inputArrayStack.size() > maximumFilterRecursion) {
- throwStackOverflow();
- return false;
- }
-
- JSArray* inArray = asArray(inValue);
- unsigned length = inArray->length();
- if (!startArray(inArray))
- break;
- inputArrayStack.append(inArray);
- indexStack.append(0);
- lengthStack.append(length);
- // fallthrough
- }
- arrayStartVisitMember:
- case ArrayStartVisitMember: {
- if (!--tickCount) {
- if (didTimeOut()) {
- throwInterruptedException();
- return false;
- }
- tickCount = ticksUntilNextCheck();
- }
-
- JSArray* array = inputArrayStack.last();
- uint32_t index = indexStack.last();
- if (index == lengthStack.last()) {
- endObject();
- inputArrayStack.removeLast();
- indexStack.removeLast();
- lengthStack.removeLast();
- break;
- }
- if (array->canGetIndex(index))
- inValue = array->getIndex(index);
- else {
- bool hasIndex = false;
- inValue = getSparseIndex(array, index, hasIndex);
- if (!hasIndex) {
- indexStack.last()++;
- goto arrayStartVisitMember;
- }
- }
-
- write(index);
- if (dumpIfTerminal(inValue)) {
- indexStack.last()++;
- goto arrayStartVisitMember;
- }
- stateStack.append(ArrayEndVisitMember);
- goto stateUnknown;
- }
- case ArrayEndVisitMember: {
- indexStack.last()++;
- goto arrayStartVisitMember;
- }
- objectStartState:
- case ObjectStartState: {
- ASSERT(inValue.isObject());
- if (inputObjectStack.size() + inputArrayStack.size() > maximumFilterRecursion) {
- throwStackOverflow();
- return false;
- }
- JSObject* inObject = asObject(inValue);
- if (!startObject(inObject))
- break;
- inputObjectStack.append(inObject);
- indexStack.append(0);
- propertyStack.append(PropertyNameArray(m_exec));
- inObject->getOwnPropertyNames(m_exec, propertyStack.last());
- // fallthrough
- }
- objectStartVisitMember:
- case ObjectStartVisitMember: {
- if (!--tickCount) {
- if (didTimeOut()) {
- throwInterruptedException();
- return false;
- }
- tickCount = ticksUntilNextCheck();
- }
-
- JSObject* object = inputObjectStack.last();
- uint32_t index = indexStack.last();
- PropertyNameArray& properties = propertyStack.last();
- if (index == properties.size()) {
- endObject();
- inputObjectStack.removeLast();
- indexStack.removeLast();
- propertyStack.removeLast();
- break;
- }
- inValue = getProperty(object, properties[index]);
- if (shouldTerminate())
- return false;
-
- if (!inValue) {
- // Property was removed during serialisation
- indexStack.last()++;
- goto objectStartVisitMember;
- }
- write(properties[index]);
-
- if (shouldTerminate())
- return false;
-
- if (!dumpIfTerminal(inValue)) {
- stateStack.append(ObjectEndVisitMember);
- goto stateUnknown;
- }
- // fallthrough
- }
- case ObjectEndVisitMember: {
- if (shouldTerminate())
- return false;
-
- indexStack.last()++;
- goto objectStartVisitMember;
- }
- stateUnknown:
- case StateUnknown:
- if (dumpIfTerminal(inValue))
- break;
-
- if (isArray(inValue))
- goto arrayStartState;
- goto objectStartState;
- }
- if (stateStack.isEmpty())
- break;
-
- state = stateStack.last();
- stateStack.removeLast();
-
- if (!--tickCount) {
- if (didTimeOut()) {
- throwInterruptedException();
- return false;
- }
- tickCount = ticksUntilNextCheck();
- }
- }
- if (m_failed)
- return false;
-
- return true;
-}
-
-class CloneDeserializer : CloneBase {
-public:
- static String deserializeString(const Vector<uint8_t>& buffer)
- {
- const uint8_t* ptr = buffer.begin();
- const uint8_t* end = buffer.end();
- uint32_t version;
- if (!readLittleEndian(ptr, end, version) || version > CurrentVersion)
- return String();
- uint8_t tag;
- if (!readLittleEndian(ptr, end, tag) || tag != StringTag)
- return String();
- uint32_t length;
- if (!readLittleEndian(ptr, end, length) || length >= StringPoolTag)
- return String();
- UString str;
- if (!readString(ptr, end, str, length))
- return String();
- return String(str.impl());
- }
-
- static JSValue deserialize(ExecState* exec, JSGlobalObject* globalObject, const Vector<uint8_t>& buffer)
- {
- if (!buffer.size())
- return jsNull();
- CloneDeserializer deserializer(exec, globalObject, buffer);
- if (!deserializer.isValid()) {
- deserializer.throwValidationError();
- return JSValue();
- }
- return deserializer.deserialize();
- }
-
-private:
- struct CachedString {
- CachedString(const UString& string)
- : m_string(string)
- {
- }
-
- JSValue jsString(ExecState* exec)
- {
- if (!m_jsString)
- m_jsString = JSC::jsString(exec, m_string);
- return m_jsString;
- }
- const UString& ustring() { return m_string; }
-
- private:
- UString m_string;
- JSValue m_jsString;
- };
-
- struct CachedStringRef {
- CachedStringRef()
- : m_base(0)
- , m_index(0)
- {
- }
- CachedStringRef(Vector<CachedString>* base, size_t index)
- : m_base(base)
- , m_index(index)
- {
- }
-
- CachedString* operator->() { ASSERT(m_base); return &m_base->at(m_index); }
-
- private:
- Vector<CachedString>* m_base;
- size_t m_index;
- };
-
- CloneDeserializer(ExecState* exec, JSGlobalObject* globalObject, const Vector<uint8_t>& buffer)
- : CloneBase(exec)
- , m_globalObject(globalObject)
- , m_isDOMGlobalObject(globalObject->inherits(&JSDOMGlobalObject::s_info))
- , m_ptr(buffer.data())
- , m_end(buffer.data() + buffer.size())
- , m_version(0xFFFFFFFF)
- {
- if (!read(m_version))
- m_version = 0xFFFFFFFF;
- }
-
- JSValue deserialize();
-
- void throwValidationError()
- {
- throwError(m_exec, createTypeError(m_exec, "Unable to deserialize data."));
- }
-
- bool isValid() const { return m_version <= CurrentVersion; }
-
- template <typename T> bool readLittleEndian(T& value)
- {
- if (m_failed || !readLittleEndian(m_ptr, m_end, value)) {
- fail();
- return false;
- }
- return true;
- }
-#if ASSUME_LITTLE_ENDIAN
- template <typename T> static bool readLittleEndian(const uint8_t*& ptr, const uint8_t* end, T& value)
- {
- if (ptr > end - sizeof(value))
- return false;
-
- if (sizeof(T) == 1)
- value = *ptr++;
- else {
-#if CPU(ARMV5_OR_LOWER)
- // To protect misaligned memory access.
- memcpy(&value, ptr, sizeof(T));
-#else
- value = *reinterpret_cast<const T*>(ptr);
-#endif
- ptr += sizeof(T);
- }
- return true;
- }
-#else
- template <typename T> static bool readLittleEndian(const uint8_t*& ptr, const uint8_t* end, T& value)
- {
- if (ptr > end - sizeof(value))
- return false;
-
- if (sizeof(T) == 1)
- value = *ptr++;
- else {
- value = 0;
- for (unsigned i = 0; i < sizeof(T); i++)
- value += ((T)*ptr++) << (i * 8);
- }
- return true;
- }
-#endif
-
- bool read(uint32_t& i)
- {
- return readLittleEndian(i);
- }
-
- bool read(int32_t& i)
- {
- return readLittleEndian(*reinterpret_cast<uint32_t*>(&i));
- }
-
- bool read(uint16_t& i)
- {
- return readLittleEndian(i);
- }
-
- bool read(uint8_t& i)
- {
- return readLittleEndian(i);
- }
-
- bool read(double& d)
- {
- union {
- double d;
- uint64_t i64;
- } u;
- if (!readLittleEndian(u.i64))
- return false;
- d = u.d;
- return true;
- }
-
- bool read(unsigned long long& i)
- {
- return readLittleEndian(i);
- }
-
- bool readStringIndex(uint32_t& i)
- {
- return readConstantPoolIndex(m_constantPool, i);
- }
-
- template <class T> bool readConstantPoolIndex(const T& constantPool, uint32_t& i)
- {
- if (constantPool.size() <= 0xFF) {
- uint8_t i8;
- if (!read(i8))
- return false;
- i = i8;
- return true;
- }
- if (constantPool.size() <= 0xFFFF) {
- uint16_t i16;
- if (!read(i16))
- return false;
- i = i16;
- return true;
- }
- return read(i);
- }
-
- static bool readString(const uint8_t*& ptr, const uint8_t* end, UString& str, unsigned length)
- {
- if (length >= numeric_limits<int32_t>::max() / sizeof(UChar))
- return false;
-
- unsigned size = length * sizeof(UChar);
- if ((end - ptr) < static_cast<int>(size))
- return false;
-
-#if ASSUME_LITTLE_ENDIAN
-#if CPU(ARMV5_OR_LOWER)
- // To protect misaligned memory access.
- Vector<UChar> alignedBuffer(length);
- memcpy(alignedBuffer.data(), ptr, length * sizeof(UChar));
- str = UString::adopt(alignedBuffer);
-#else
- str = UString(reinterpret_cast<const UChar*>(ptr), length);
-#endif
- ptr += length * sizeof(UChar);
-#else
- Vector<UChar> buffer;
- buffer.reserveCapacity(length);
- for (unsigned i = 0; i < length; i++) {
- uint16_t ch;
- readLittleEndian(ptr, end, ch);
- buffer.append(ch);
- }
- str = UString::adopt(buffer);
-#endif
- return true;
- }
-
- bool readStringData(CachedStringRef& cachedString)
- {
- bool scratch;
- return readStringData(cachedString, scratch);
- }
-
- bool readStringData(CachedStringRef& cachedString, bool& wasTerminator)
- {
- if (m_failed)
- return false;
- uint32_t length = 0;
- if (!read(length))
- return false;
- if (length == TerminatorTag) {
- wasTerminator = true;
- return false;
- }
- if (length == StringPoolTag) {
- unsigned index = 0;
- if (!readStringIndex(index)) {
- fail();
- return false;
- }
- if (index >= m_constantPool.size()) {
- fail();
- return false;
- }
- cachedString = CachedStringRef(&m_constantPool, index);
- return true;
- }
- UString str;
- if (!readString(m_ptr, m_end, str, length)) {
- fail();
- return false;
- }
- m_constantPool.append(str);
- cachedString = CachedStringRef(&m_constantPool, m_constantPool.size() - 1);
- return true;
- }
-
- SerializationTag readTag()
- {
- if (m_ptr >= m_end)
- return ErrorTag;
- return static_cast<SerializationTag>(*m_ptr++);
- }
-
- void putProperty(JSArray* array, unsigned index, JSValue value)
- {
- if (array->canSetIndex(index))
- array->setIndex(index, value);
- else
- array->put(m_exec, index, value);
- }
-
- void putProperty(JSObject* object, const Identifier& property, JSValue value)
- {
- object->putDirect(property, value);
- }
-
- bool readFile(RefPtr<File>& file)
- {
- CachedStringRef path;
- if (!readStringData(path))
- return 0;
- CachedStringRef url;
- if (!readStringData(url))
- return 0;
- CachedStringRef type;
- if (!readStringData(type))
- return 0;
- if (m_isDOMGlobalObject)
- file = File::create(String(path->ustring().impl()), KURL(KURL(), String(url->ustring().impl())), String(type->ustring().impl()));
- return true;
- }
-
- JSValue readTerminal()
- {
- SerializationTag tag = readTag();
- switch (tag) {
- case UndefinedTag:
- return jsUndefined();
- case NullTag:
- return jsNull();
- case IntTag: {
- int32_t i;
- if (!read(i))
- return JSValue();
- return jsNumber(i);
- }
- case ZeroTag:
- return jsNumber(0);
- case OneTag:
- return jsNumber(1);
- case FalseTag:
- return jsBoolean(false);
- case TrueTag:
- return jsBoolean(true);
- case DoubleTag: {
- double d;
- if (!read(d))
- return JSValue();
- return jsNumber(d);
- }
- case DateTag: {
- double d;
- if (!read(d))
- return JSValue();
- return new (m_exec) DateInstance(m_exec, m_globalObject->dateStructure(), d);
- }
- case FileTag: {
- RefPtr<File> file;
- if (!readFile(file))
- return JSValue();
- if (!m_isDOMGlobalObject)
- return jsNull();
- return toJS(m_exec, static_cast<JSDOMGlobalObject*>(m_globalObject), file.get());
- }
- case FileListTag: {
- unsigned length = 0;
- if (!read(length))
- return JSValue();
- RefPtr<FileList> result = FileList::create();
- for (unsigned i = 0; i < length; i++) {
- RefPtr<File> file;
- if (!readFile(file))
- return JSValue();
- if (m_isDOMGlobalObject)
- result->append(file.get());
- }
- if (!m_isDOMGlobalObject)
- return jsNull();
- return toJS(m_exec, static_cast<JSDOMGlobalObject*>(m_globalObject), result.get());
- }
- case ImageDataTag: {
- uint32_t width;
- if (!read(width))
- return JSValue();
- uint32_t height;
- if (!read(height))
- return JSValue();
- uint32_t length;
- if (!read(length))
- return JSValue();
- if (m_end < ((uint8_t*)0) + length || m_ptr > m_end - length) {
- fail();
- return JSValue();
- }
- if (!m_isDOMGlobalObject) {
- m_ptr += length;
- return jsNull();
- }
- RefPtr<ImageData> result = ImageData::create(width, height);
- memcpy(result->data()->data()->data(), m_ptr, length);
- m_ptr += length;
- return toJS(m_exec, static_cast<JSDOMGlobalObject*>(m_globalObject), result.get());
- }
- case BlobTag: {
- CachedStringRef url;
- if (!readStringData(url))
- return JSValue();
- CachedStringRef type;
- if (!readStringData(type))
- return JSValue();
- unsigned long long size = 0;
- if (!read(size))
- return JSValue();
- if (!m_isDOMGlobalObject)
- return jsNull();
- return toJS(m_exec, static_cast<JSDOMGlobalObject*>(m_globalObject), Blob::create(KURL(KURL(), url->ustring().impl()), String(type->ustring().impl()), size));
- }
- case StringTag: {
- CachedStringRef cachedString;
- if (!readStringData(cachedString))
- return JSValue();
- return cachedString->jsString(m_exec);
- }
- case EmptyStringTag:
- return jsEmptyString(&m_exec->globalData());
- case RegExpTag: {
- CachedStringRef pattern;
- if (!readStringData(pattern))
- return JSValue();
- CachedStringRef flags;
- if (!readStringData(flags))
- return JSValue();
- RefPtr<RegExp> regExp = RegExp::create(&m_exec->globalData(), pattern->ustring(), flags->ustring());
- return new (m_exec) RegExpObject(m_exec->lexicalGlobalObject(), m_globalObject->regExpStructure(), regExp);
- }
- case ObjectReferenceTag: {
- unsigned index = 0;
- if (!readConstantPoolIndex(m_gcBuffer, index)) {
- fail();
- return JSValue();
- }
- return m_gcBuffer.at(index);
- }
- default:
- m_ptr--; // Push the tag back
- return JSValue();
- }
- }
-
- JSGlobalObject* m_globalObject;
- bool m_isDOMGlobalObject;
- const uint8_t* m_ptr;
- const uint8_t* m_end;
- unsigned m_version;
- Vector<CachedString> m_constantPool;
-};
-
-JSValue CloneDeserializer::deserialize()
-{
- Vector<uint32_t, 16> indexStack;
- Vector<Identifier, 16> propertyNameStack;
- Vector<JSObject*, 16> outputObjectStack;
- Vector<JSArray*, 16> outputArrayStack;
- Vector<WalkerState, 16> stateStack;
- WalkerState state = StateUnknown;
- JSValue outValue;
-
- unsigned tickCount = ticksUntilNextCheck();
- while (1) {
- switch (state) {
- arrayStartState:
- case ArrayStartState: {
- uint32_t length;
- if (!read(length)) {
- fail();
- goto error;
- }
- JSArray* outArray = constructEmptyArray(m_exec, m_globalObject);
- outArray->setLength(length);
- m_gcBuffer.append(outArray);
- outputArrayStack.append(outArray);
- // fallthrough
- }
- arrayStartVisitMember:
- case ArrayStartVisitMember: {
- if (!--tickCount) {
- if (didTimeOut()) {
- throwInterruptedException();
- return JSValue();
- }
- tickCount = ticksUntilNextCheck();
- }
-
- uint32_t index;
- if (!read(index)) {
- fail();
- goto error;
- }
- if (index == TerminatorTag) {
- JSArray* outArray = outputArrayStack.last();
- outValue = outArray;
- outputArrayStack.removeLast();
- break;
- }
-
- if (JSValue terminal = readTerminal()) {
- putProperty(outputArrayStack.last(), index, terminal);
- goto arrayStartVisitMember;
- }
- if (m_failed)
- goto error;
- indexStack.append(index);
- stateStack.append(ArrayEndVisitMember);
- goto stateUnknown;
- }
- case ArrayEndVisitMember: {
- JSArray* outArray = outputArrayStack.last();
- putProperty(outArray, indexStack.last(), outValue);
- indexStack.removeLast();
- goto arrayStartVisitMember;
- }
- objectStartState:
- case ObjectStartState: {
- if (outputObjectStack.size() + outputArrayStack.size() > maximumFilterRecursion) {
- throwStackOverflow();
- return JSValue();
- }
- JSObject* outObject = constructEmptyObject(m_exec, m_globalObject);
- m_gcBuffer.append(outObject);
- outputObjectStack.append(outObject);
- // fallthrough
- }
- objectStartVisitMember:
- case ObjectStartVisitMember: {
- if (!--tickCount) {
- if (didTimeOut()) {
- throwInterruptedException();
- return JSValue();
- }
- tickCount = ticksUntilNextCheck();
- }
-
- CachedStringRef cachedString;
- bool wasTerminator = false;
- if (!readStringData(cachedString, wasTerminator)) {
- if (!wasTerminator)
- goto error;
- JSObject* outObject = outputObjectStack.last();
- outValue = outObject;
- outputObjectStack.removeLast();
- break;
- }
-
- if (JSValue terminal = readTerminal()) {
- putProperty(outputObjectStack.last(), Identifier(m_exec, cachedString->ustring()), terminal);
- goto objectStartVisitMember;
- }
- stateStack.append(ObjectEndVisitMember);
- propertyNameStack.append(Identifier(m_exec, cachedString->ustring()));
- goto stateUnknown;
- }
- case ObjectEndVisitMember: {
- putProperty(outputObjectStack.last(), propertyNameStack.last(), outValue);
- propertyNameStack.removeLast();
- goto objectStartVisitMember;
- }
- stateUnknown:
- case StateUnknown:
- if (JSValue terminal = readTerminal()) {
- outValue = terminal;
- break;
- }
- SerializationTag tag = readTag();
- if (tag == ArrayTag)
- goto arrayStartState;
- if (tag == ObjectTag)
- goto objectStartState;
- goto error;
- }
- if (stateStack.isEmpty())
- break;
-
- state = stateStack.last();
- stateStack.removeLast();
-
- if (!--tickCount) {
- if (didTimeOut()) {
- throwInterruptedException();
- return JSValue();
- }
- tickCount = ticksUntilNextCheck();
- }
- }
- ASSERT(outValue);
- ASSERT(!m_failed);
- return outValue;
-error:
- fail();
- throwValidationError();
- return JSValue();
-}
-
-
-
-SerializedScriptValue::~SerializedScriptValue()
-{
-}
-
-SerializedScriptValue::SerializedScriptValue(Vector<uint8_t>& buffer)
-{
- m_data.swap(buffer);
-}
-
-PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(ExecState* exec, JSValue value)
-{
- Vector<uint8_t> buffer;
- if (!CloneSerializer::serialize(exec, value, buffer))
- return 0;
- return adoptRef(new SerializedScriptValue(buffer));
-}
-
-PassRefPtr<SerializedScriptValue> SerializedScriptValue::create()
-{
- Vector<uint8_t> buffer;
- return adoptRef(new SerializedScriptValue(buffer));
-}
-
-PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(String string)
-{
- Vector<uint8_t> buffer;
- if (!CloneSerializer::serialize(string, buffer))
- return 0;
- return adoptRef(new SerializedScriptValue(buffer));
-}
-
-PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(JSContextRef originContext, JSValueRef apiValue, JSValueRef* exception)
-{
- JSLock lock(SilenceAssertionsOnly);
- ExecState* exec = toJS(originContext);
- JSValue value = toJS(exec, apiValue);
- PassRefPtr<SerializedScriptValue> serializedValue = SerializedScriptValue::create(exec, value);
- if (exec->hadException()) {
- if (exception)
- *exception = toRef(exec, exec->exception());
- exec->clearException();
- return 0;
- }
- ASSERT(serializedValue);
- return serializedValue;
-}
-
-String SerializedScriptValue::toString()
-{
- return CloneDeserializer::deserializeString(m_data);
-}
-
-JSValue SerializedScriptValue::deserialize(ExecState* exec, JSGlobalObject* globalObject)
-{
- return CloneDeserializer::deserialize(exec, globalObject, m_data);
-}
-
-JSValueRef SerializedScriptValue::deserialize(JSContextRef destinationContext, JSValueRef* exception)
-{
- JSLock lock(SilenceAssertionsOnly);
- ExecState* exec = toJS(destinationContext);
- JSValue value = deserialize(exec, exec->lexicalGlobalObject());
- if (exec->hadException()) {
- if (exception)
- *exception = toRef(exec, exec->exception());
- exec->clearException();
- return 0;
- }
- ASSERT(value);
- return toRef(exec, value);
-}
-
-SerializedScriptValue* SerializedScriptValue::nullValue()
-{
- DEFINE_STATIC_LOCAL(RefPtr<SerializedScriptValue>, emptyValue, (SerializedScriptValue::create()));
- return emptyValue.get();
-}
-
-}
diff --git a/WebCore/bindings/js/SerializedScriptValue.h b/WebCore/bindings/js/SerializedScriptValue.h
deleted file mode 100644
index 94bc477..0000000
--- a/WebCore/bindings/js/SerializedScriptValue.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#ifndef SerializedScriptValue_h
-#define SerializedScriptValue_h
-
-#include "ScriptValue.h"
-#include <wtf/Forward.h>
-
-typedef const struct OpaqueJSContext* JSContextRef;
-typedef const struct OpaqueJSValue* JSValueRef;
-
-namespace WebCore {
-
-class SharedBuffer;
-
-class SerializedScriptValue : public RefCounted<SerializedScriptValue> {
-public:
- static PassRefPtr<SerializedScriptValue> create(JSC::ExecState* exec, JSC::JSValue value);
- static PassRefPtr<SerializedScriptValue> create(JSContextRef, JSValueRef value, JSValueRef* exception);
- static PassRefPtr<SerializedScriptValue> create(String string);
- static PassRefPtr<SerializedScriptValue> adopt(Vector<uint8_t>& buffer)
- {
- return adoptRef(new SerializedScriptValue(buffer));
- }
-
- static PassRefPtr<SerializedScriptValue> create();
- static SerializedScriptValue* nullValue();
-
- JSC::JSValue deserialize(JSC::ExecState* exec, JSC::JSGlobalObject* globalObject);
- String toString();
- JSValueRef deserialize(JSContextRef, JSValueRef* exception);
- const Vector<uint8_t>& data() { return m_data; }
-
- ~SerializedScriptValue();
-
-private:
- SerializedScriptValue(Vector<unsigned char>&);
- Vector<unsigned char> m_data;
-};
-
-}
-
-#endif // SerializedScriptValue_h
diff --git a/WebCore/bindings/js/StringSourceProvider.h b/WebCore/bindings/js/StringSourceProvider.h
deleted file mode 100644
index 478c1d1..0000000
--- a/WebCore/bindings/js/StringSourceProvider.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef StringSourceProvider_h
-#define StringSourceProvider_h
-
-#include "JSDOMBinding.h"
-#include "ScriptSourceProvider.h"
-#include <parser/SourceCode.h>
-
-namespace WebCore {
-
- class StringSourceProvider : public ScriptSourceProvider {
- public:
- static PassRefPtr<StringSourceProvider> create(const String& source, const String& url) { return adoptRef(new StringSourceProvider(source, url)); }
-
- JSC::UString getRange(int start, int end) const { return JSC::UString(m_source.characters() + start, end - start); }
- const UChar* data() const { return m_source.characters(); }
- int length() const { return m_source.length(); }
- const String& source() const { return m_source; }
-
- private:
- StringSourceProvider(const String& source, const String& url)
- : ScriptSourceProvider(stringToUString(url))
- , m_source(source)
- {
- }
-
- String m_source;
- };
-
- inline JSC::SourceCode makeSource(const String& source, const String& url = String(), int firstLine = 1)
- {
- return JSC::SourceCode(StringSourceProvider::create(source, url), firstLine);
- }
-
-} // namespace WebCore
-
-#endif // StringSourceProvider_h
diff --git a/WebCore/bindings/js/WebCoreJSClientData.h b/WebCore/bindings/js/WebCoreJSClientData.h
deleted file mode 100644
index 5d03328..0000000
--- a/WebCore/bindings/js/WebCoreJSClientData.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 1999-2001 Harri Porten (porten@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2007 Samuel Weinig <sam@webkit.org>
- * Copyright (C) 2009 Google, Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef WebCoreJSClientData_h
-#define WebCoreJSClientData_h
-
-#include "DOMWrapperWorld.h"
-#include "DOMObjectHashTableMap.h"
-#include <wtf/Noncopyable.h>
-#include <wtf/HashSet.h>
-#include <wtf/RefPtr.h>
-
-namespace WebCore {
-
-class WebCoreJSClientData : public JSC::JSGlobalData::ClientData, public Noncopyable {
- friend class JSGlobalDataWorldIterator;
- friend void initNormalWorldClientData(JSC::JSGlobalData*);
-
-public:
- virtual ~WebCoreJSClientData()
- {
- ASSERT(m_worldSet.contains(m_normalWorld.get()));
- ASSERT(m_worldSet.size() == 1);
- ASSERT(m_normalWorld->hasOneRef());
- m_normalWorld.clear();
- ASSERT(m_worldSet.isEmpty());
- }
-
- DOMWrapperWorld* normalWorld() { return m_normalWorld.get(); }
-
- void getAllWorlds(Vector<DOMWrapperWorld*>& worlds)
- {
- copyToVector(m_worldSet, worlds);
- }
-
- void rememberWorld(DOMWrapperWorld* world)
- {
- ASSERT(!m_worldSet.contains(world));
- m_worldSet.add(world);
- }
- void forgetWorld(DOMWrapperWorld* world)
- {
- ASSERT(m_worldSet.contains(world));
- m_worldSet.remove(world);
- }
-
- DOMObjectHashTableMap hashTableMap;
-
-private:
- HashSet<DOMWrapperWorld*> m_worldSet;
- RefPtr<DOMWrapperWorld> m_normalWorld;
-};
-
-inline void initNormalWorldClientData(JSC::JSGlobalData* globalData)
-{
- WebCoreJSClientData* webCoreJSClientData = new WebCoreJSClientData;
- globalData->clientData = webCoreJSClientData; // ~JSGlobalData deletes this pointer.
- webCoreJSClientData->m_normalWorld = DOMWrapperWorld::create(globalData, true);
-}
-
-} // namespace WebCore
-
-#endif // WebCoreJSClientData_h
diff --git a/WebCore/bindings/js/WorkerScriptController.cpp b/WebCore/bindings/js/WorkerScriptController.cpp
deleted file mode 100644
index 5872b2e..0000000
--- a/WebCore/bindings/js/WorkerScriptController.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include "config.h"
-
-#if ENABLE(WORKERS)
-
-#include "WorkerScriptController.h"
-
-#include "JSDedicatedWorkerContext.h"
-#include "JSSharedWorkerContext.h"
-#include "ScriptSourceCode.h"
-#include "ScriptValue.h"
-#include "WebCoreJSClientData.h"
-#include "WorkerContext.h"
-#include "WorkerObjectProxy.h"
-#include "WorkerThread.h"
-#include <interpreter/Interpreter.h>
-#include <runtime/Completion.h>
-#include <runtime/Completion.h>
-#include <runtime/Error.h>
-#include <runtime/JSLock.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-WorkerScriptController::WorkerScriptController(WorkerContext* workerContext)
- : m_globalData(JSGlobalData::create(ThreadStackTypeSmall))
- , m_workerContext(workerContext)
- , m_executionForbidden(false)
-{
- initNormalWorldClientData(m_globalData.get());
-}
-
-WorkerScriptController::~WorkerScriptController()
-{
- m_workerContextWrapper = 0; // Unprotect the global object.
- m_globalData->heap.destroy();
-}
-
-void WorkerScriptController::initScript()
-{
- ASSERT(!m_workerContextWrapper);
-
- JSLock lock(SilenceAssertionsOnly);
-
- // Explicitly protect the global object's prototype so it isn't collected
- // when we allocate the global object. (Once the global object is fully
- // constructed, it can mark its own prototype.)
- RefPtr<Structure> workerContextPrototypeStructure = JSWorkerContextPrototype::createStructure(jsNull());
- ProtectedPtr<JSWorkerContextPrototype> workerContextPrototype = new (m_globalData.get()) JSWorkerContextPrototype(0, workerContextPrototypeStructure.release());
-
- if (m_workerContext->isDedicatedWorkerContext()) {
- RefPtr<Structure> dedicatedContextPrototypeStructure = JSDedicatedWorkerContextPrototype::createStructure(workerContextPrototype);
- ProtectedPtr<JSDedicatedWorkerContextPrototype> dedicatedContextPrototype = new (m_globalData.get()) JSDedicatedWorkerContextPrototype(0, dedicatedContextPrototypeStructure.release());
- RefPtr<Structure> structure = JSDedicatedWorkerContext::createStructure(dedicatedContextPrototype);
-
- m_workerContextWrapper = new (m_globalData.get()) JSDedicatedWorkerContext(structure.release(), m_workerContext->toDedicatedWorkerContext());
- workerContextPrototype->putAnonymousValue(0, m_workerContextWrapper);
- dedicatedContextPrototype->putAnonymousValue(0, m_workerContextWrapper);
-#if ENABLE(SHARED_WORKERS)
- } else {
- ASSERT(m_workerContext->isSharedWorkerContext());
- RefPtr<Structure> sharedContextPrototypeStructure = JSSharedWorkerContextPrototype::createStructure(workerContextPrototype);
- ProtectedPtr<JSSharedWorkerContextPrototype> sharedContextPrototype = new (m_globalData.get()) JSSharedWorkerContextPrototype(0, sharedContextPrototypeStructure.release());
- RefPtr<Structure> structure = JSSharedWorkerContext::createStructure(sharedContextPrototype);
-
- m_workerContextWrapper = new (m_globalData.get()) JSSharedWorkerContext(structure.release(), m_workerContext->toSharedWorkerContext());
- workerContextPrototype->putAnonymousValue(0, m_workerContextWrapper);
- sharedContextPrototype->putAnonymousValue(0, m_workerContextWrapper);
-#endif
- }
-}
-
-ScriptValue WorkerScriptController::evaluate(const ScriptSourceCode& sourceCode)
-{
- {
- MutexLocker lock(m_sharedDataMutex);
- if (m_executionForbidden)
- return JSValue();
- }
- ScriptValue exception;
- ScriptValue result = evaluate(sourceCode, &exception);
- if (exception.jsValue()) {
- JSLock lock(SilenceAssertionsOnly);
- reportException(m_workerContextWrapper->globalExec(), exception.jsValue());
- }
- return result;
-}
-
-ScriptValue WorkerScriptController::evaluate(const ScriptSourceCode& sourceCode, ScriptValue* exception)
-{
- {
- MutexLocker lock(m_sharedDataMutex);
- if (m_executionForbidden)
- return JSValue();
- }
-
- initScriptIfNeeded();
- JSLock lock(SilenceAssertionsOnly);
-
- ExecState* exec = m_workerContextWrapper->globalExec();
- m_workerContextWrapper->globalData().timeoutChecker.start();
- Completion comp = JSC::evaluate(exec, exec->dynamicGlobalObject()->globalScopeChain(), sourceCode.jsSourceCode(), m_workerContextWrapper);
- m_workerContextWrapper->globalData().timeoutChecker.stop();
-
- if (comp.complType() == Normal || comp.complType() == ReturnValue)
- return comp.value();
-
- if (comp.complType() == Throw)
- *exception = comp.value();
- return JSValue();
-}
-
-void WorkerScriptController::setException(ScriptValue exception)
-{
- throwError(m_workerContextWrapper->globalExec(), exception.jsValue());
-}
-
-void WorkerScriptController::forbidExecution(ForbidExecutionOption option)
-{
- // This function may be called from another thread.
- // Mutex protection for m_executionForbidden is needed to guarantee that the value is synchronized between processors, because
- // if it were not, the worker could re-enter JSC::evaluate(), but with timeout already reset.
- // It is not critical for Terminator::m_shouldTerminate to be synchronized, we just rely on it reaching the worker thread's processor sooner or later.
- MutexLocker lock(m_sharedDataMutex);
- m_executionForbidden = true;
- if (option == TerminateRunningScript)
- m_globalData->terminator.terminateSoon();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WORKERS)
diff --git a/WebCore/bindings/js/WorkerScriptController.h b/WebCore/bindings/js/WorkerScriptController.h
deleted file mode 100644
index be7da4d..0000000
--- a/WebCore/bindings/js/WorkerScriptController.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#ifndef WorkerScriptController_h
-#define WorkerScriptController_h
-
-#if ENABLE(WORKERS)
-
-#include <runtime/Protect.h>
-#include <wtf/Forward.h>
-#include <wtf/Noncopyable.h>
-#include <wtf/Threading.h>
-
-namespace JSC {
- class JSGlobalData;
-}
-
-namespace WebCore {
-
- class JSWorkerContext;
- class ScriptSourceCode;
- class ScriptValue;
- class WorkerContext;
-
- class WorkerScriptController : public Noncopyable {
- public:
- WorkerScriptController(WorkerContext*);
- ~WorkerScriptController();
-
- JSWorkerContext* workerContextWrapper()
- {
- initScriptIfNeeded();
- return m_workerContextWrapper;
- }
-
- ScriptValue evaluate(const ScriptSourceCode&);
- ScriptValue evaluate(const ScriptSourceCode&, ScriptValue* exception);
-
- void setException(ScriptValue);
-
- enum ForbidExecutionOption { TerminateRunningScript, LetRunningScriptFinish };
- void forbidExecution(ForbidExecutionOption);
- bool isExecutionForbidden() const { return m_executionForbidden; }
-
- JSC::JSGlobalData* globalData() { return m_globalData.get(); }
-
- private:
- void initScriptIfNeeded()
- {
- if (!m_workerContextWrapper)
- initScript();
- }
- void initScript();
-
- RefPtr<JSC::JSGlobalData> m_globalData;
- WorkerContext* m_workerContext;
- JSC::ProtectedPtr<JSWorkerContext> m_workerContextWrapper;
-
- Mutex m_sharedDataMutex;
- bool m_executionForbidden;
- };
-
-} // namespace WebCore
-
-#endif // ENABLE(WORKERS)
-
-#endif // WorkerScriptController_h
diff --git a/WebCore/bindings/js/specialization/JSBindingState.cpp b/WebCore/bindings/js/specialization/JSBindingState.cpp
deleted file mode 100644
index 1aa6c7e..0000000
--- a/WebCore/bindings/js/specialization/JSBindingState.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSBindingState.h"
-
-#include "DOMWindow.h"
-#include "JSDOMWindow.h"
-#include "JSDOMWindowCustom.h"
-#include "ScriptController.h"
-
-namespace WebCore {
-
-class Frame;
-
-Frame* State<JSBinding>::activeFrame()
-{
- return asJSDOMWindow(m_exec->lexicalGlobalObject())->impl()->frame();
-}
-
-Frame* State<JSBinding>::firstFrame()
-{
- return asJSDOMWindow(m_exec->dynamicGlobalObject())->impl()->frame();
-}
-
-bool State<JSBinding>::processingUserGesture()
-{
- return ScriptController::processingUserGesture();
-}
-
-bool State<JSBinding>::allowsAccessFromFrame(Frame* frame)
-{
- return WebCore::allowsAccessFromFrame(m_exec, frame);
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/specialization/JSBindingState.h b/WebCore/bindings/js/specialization/JSBindingState.h
deleted file mode 100644
index 9f5afe7..0000000
--- a/WebCore/bindings/js/specialization/JSBindingState.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef JSBindingState_h
-#define JSBindingState_h
-
-#include "GenericBinding.h"
-#include "JSBinding.h"
-
-namespace JSC {
-
-class ExecState;
-
-} // namespace JSC
-
-namespace WebCore {
-
-class Frame;
-
-template <>
-class State<JSBinding> : public State<GenericBinding> {
-public:
- explicit State(JSC::ExecState* exec)
- : m_exec(exec)
- {
- }
-
- virtual ~State()
- {
- }
-
- Frame* activeFrame();
- Frame* firstFrame();
-
- bool processingUserGesture();
-
- // FIXME: This should be shared in BindingSecurity
- bool allowsAccessFromFrame(Frame*);
-
-private:
- JSC::ExecState* m_exec;
-};
-
-typedef State<JSBinding> JSBindingState;
-
-} // namespace WebCore
-
-#endif // JSBindingState_h