1. 16 Jan, 2014 1 commit
    • commit-queue@webkit.org's avatar
      Remove workaround for compilers not supporting explicit override control · 2dfe6cb5
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=127111
      
      Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2014-01-16
      Reviewed by Anders Carlsson.
      
      Now all compilers support explicit override control, this workaround can be removed.
      
      Source/JavaScriptCore:
      
      * API/JSAPIWrapperObject.mm:
      * API/JSCallbackObject.h:
      * API/JSManagedValue.mm:
      * API/JSScriptRef.cpp:
      * bytecode/CodeBlock.h:
      * bytecode/CodeBlockJettisoningWatchpoint.h:
      * bytecode/ProfiledCodeBlockJettisoningWatchpoint.h:
      * bytecode/StructureStubClearingWatchpoint.h:
      * dfg/DFGArrayifySlowPathGenerator.h:
      * dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
      * dfg/DFGFailedFinalizer.h:
      * dfg/DFGJITCode.h:
      * dfg/DFGJITFinalizer.h:
      * dfg/DFGSaneStringGetByValSlowPathGenerator.h:
      * dfg/DFGSlowPathGenerator.h:
      * dfg/DFGSpeculativeJIT64.cpp:
      * heap/Heap.h:
      * heap/IncrementalSweeper.h:
      * heap/SuperRegion.h:
      * inspector/InspectorValues.h:
      * inspector/JSGlobalObjectInspectorController.h:
      * inspector/agents/InspectorAgent.h:
      * inspector/remote/RemoteInspector.h:
      * inspector/remote/RemoteInspectorDebuggableConnection.h:
      * inspector/scripts/CodeGeneratorInspector.py:
      (Generator.go):
      * jit/ClosureCallStubRoutine.h:
      * jit/ExecutableAllocatorFixedVMPool.cpp:
      * jit/GCAwareJITStubRoutine.h:
      * jit/JITCode.h:
      * jit/JITToDFGDeferredCompilationCallback.h:
      * parser/Nodes.h:
      * parser/SourceProvider.h:
      * runtime/DataView.h:
      * runtime/GCActivityCallback.h:
      * runtime/GenericTypedArrayView.h:
      * runtime/JSGlobalObjectDebuggable.h:
      * runtime/JSPromiseReaction.cpp:
      * runtime/RegExpCache.h:
      * runtime/SimpleTypedArrayController.h:
      * runtime/SymbolTable.h:
      * runtime/WeakMapData.h:
      
      Source/WebCore:
      
      * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h:
      * Modules/encryptedmedia/CDMPrivateAVFoundation.h:
      * Modules/encryptedmedia/CDMPrivateAVFoundation.mm:
      * Modules/encryptedmedia/MediaKeyMessageEvent.h:
      * Modules/encryptedmedia/MediaKeyNeededEvent.h:
      * Modules/encryptedmedia/MediaKeySession.h:
      * Modules/encryptedmedia/MediaKeys.h:
      * Modules/geolocation/Geolocation.h:
      * Modules/indexeddb/DOMWindowIndexedDatabase.h:
      * Modules/indexeddb/IDBCursorBackendOperations.h:
      * Modules/indexeddb/IDBCursorWithValue.h:
      * Modules/indexeddb/IDBDatabase.h:
      * Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
      * Modules/indexeddb/IDBOpenDBRequest.h:
      * Modules/indexeddb/IDBRequest.h:
      * Modules/indexeddb/IDBTransaction.h:
      * Modules/indexeddb/IDBTransactionBackendOperations.h:
      * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
      * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
      * Modules/indieui/UIRequestEvent.h:
      * Modules/mediasource/MediaSource.h:
      * Modules/mediasource/MediaSourceRegistry.h:
      * Modules/mediasource/SourceBuffer.h:
      * Modules/mediasource/SourceBufferList.h:
      * Modules/mediastream/AudioStreamTrack.h:
      * Modules/mediastream/MediaConstraintsImpl.h:
      * Modules/mediastream/MediaStream.h:
      * Modules/mediastream/MediaStreamRegistry.h:
      * Modules/mediastream/MediaStreamTrack.h:
      * Modules/mediastream/MediaStreamTrackEvent.h:
      * Modules/mediastream/MediaStreamTrackSourcesRequest.h:
      * Modules/mediastream/RTCDTMFSender.h:
      * Modules/mediastream/RTCDataChannel.h:
      * Modules/mediastream/RTCPeerConnection.h:
      * Modules/mediastream/RTCSessionDescriptionRequestImpl.h:
      * Modules/mediastream/RTCStatsRequestImpl.h:
      * Modules/mediastream/RTCStatsResponse.h:
      * Modules/mediastream/RTCVoidRequestImpl.h:
      * Modules/mediastream/UserMediaRequest.h:
      * Modules/mediastream/VideoStreamTrack.h:
      * Modules/networkinfo/NetworkInfoConnection.h:
      * Modules/notifications/DOMWindowNotifications.h:
      * Modules/notifications/Notification.h:
      * Modules/notifications/NotificationCenter.h:
      * Modules/plugins/QuickTimePluginReplacement.h:
      * Modules/speech/SpeechRecognition.h:
      * Modules/speech/SpeechRecognitionError.h:
      * Modules/speech/SpeechRecognitionEvent.h:
      * Modules/speech/SpeechSynthesis.h:
      * Modules/speech/SpeechSynthesisUtterance.h:
      * Modules/webaudio/AnalyserNode.h:
      * Modules/webaudio/AudioBasicInspectorNode.h:
      * Modules/webaudio/AudioBasicProcessorNode.h:
      * Modules/webaudio/AudioBufferSourceNode.h:
      * Modules/webaudio/AudioContext.h:
      * Modules/webaudio/AudioDestinationNode.h:
      * Modules/webaudio/AudioNode.h:
      * Modules/webaudio/AudioNodeInput.h:
      * Modules/webaudio/AudioParam.h:
      * Modules/webaudio/AudioProcessingEvent.h:
      * Modules/webaudio/BiquadDSPKernel.h:
      * Modules/webaudio/BiquadProcessor.h:
      * Modules/webaudio/ChannelMergerNode.h:
      * Modules/webaudio/ChannelSplitterNode.h:
      * Modules/webaudio/ConvolverNode.h:
      * Modules/webaudio/DefaultAudioDestinationNode.h:
      * Modules/webaudio/DelayDSPKernel.h:
      * Modules/webaudio/DelayProcessor.h:
      * Modules/webaudio/DynamicsCompressorNode.h:
      * Modules/webaudio/GainNode.h:
      * Modules/webaudio/MediaElementAudioSourceNode.h:
      * Modules/webaudio/MediaStreamAudioDestinationNode.h:
      * Modules/webaudio/MediaStreamAudioSourceNode.h:
      * Modules/webaudio/OfflineAudioCompletionEvent.h:
      * Modules/webaudio/OfflineAudioDestinationNode.h:
      * Modules/webaudio/OscillatorNode.h:
      * Modules/webaudio/PannerNode.h:
      * Modules/webaudio/ScriptProcessorNode.h:
      * Modules/webaudio/WaveShaperDSPKernel.h:
      * Modules/webaudio/WaveShaperProcessor.h:
      * Modules/webdatabase/DatabaseTask.h:
      * Modules/webdatabase/SQLTransaction.h:
      * Modules/webdatabase/SQLTransactionBackend.h:
      * Modules/websockets/CloseEvent.h:
      * Modules/websockets/WebSocket.h:
      * Modules/websockets/WebSocketChannel.h:
      * Modules/websockets/WebSocketDeflateFramer.cpp:
      * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
      * Modules/websockets/WorkerThreadableWebSocketChannel.h:
      * accessibility/AccessibilityARIAGrid.h:
      * accessibility/AccessibilityARIAGridCell.h:
      * accessibility/AccessibilityARIAGridRow.h:
      * accessibility/AccessibilityImageMapLink.h:
      * accessibility/AccessibilityList.h:
      * accessibility/AccessibilityListBox.h:
      * accessibility/AccessibilityListBoxOption.h:
      * accessibility/AccessibilityMediaControls.h:
      * accessibility/AccessibilityMenuList.h:
      * accessibility/AccessibilityMenuListOption.h:
      * accessibility/AccessibilityMenuListPopup.h:
      * accessibility/AccessibilityMockObject.h:
      * accessibility/AccessibilityNodeObject.h:
      * accessibility/AccessibilityProgressIndicator.h:
      * accessibility/AccessibilityRenderObject.h:
      * accessibility/AccessibilitySVGRoot.h:
      * accessibility/AccessibilityScrollView.h:
      * accessibility/AccessibilityScrollbar.h:
      * accessibility/AccessibilitySearchFieldButtons.h:
      * accessibility/AccessibilitySlider.h:
      * accessibility/AccessibilitySpinButton.h:
      * accessibility/AccessibilityTable.h:
      * accessibility/AccessibilityTableCell.h:
      * accessibility/AccessibilityTableColumn.h:
      * accessibility/AccessibilityTableHeaderContainer.h:
      * accessibility/AccessibilityTableRow.h:
      * bindings/js/JSCryptoAlgorithmBuilder.h:
      * bindings/js/JSCryptoKeySerializationJWK.h:
      * bindings/js/JSDOMGlobalObjectTask.h:
      * bindings/js/JSEventListener.h:
      * bindings/js/JSLazyEventListener.h:
      * bindings/js/JSMutationCallback.h:
      * bindings/js/PageScriptDebugServer.h:
      * bindings/js/ScriptDebugServer.h:
      * bindings/js/WebCoreTypedArrayController.h:
      * bindings/js/WorkerScriptDebugServer.h:
      * bridge/c/c_class.h:
      * bridge/c/c_instance.h:
      * bridge/c/c_runtime.h:
      * bridge/runtime_root.h:
      * crypto/algorithms/CryptoAlgorithmAES_CBC.h:
      * crypto/algorithms/CryptoAlgorithmAES_KW.h:
      * crypto/algorithms/CryptoAlgorithmHMAC.h:
      * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
      * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
      * crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
      * crypto/algorithms/CryptoAlgorithmSHA1.h:
      * crypto/algorithms/CryptoAlgorithmSHA224.h:
      * crypto/algorithms/CryptoAlgorithmSHA256.h:
      * crypto/algorithms/CryptoAlgorithmSHA384.h:
      * crypto/algorithms/CryptoAlgorithmSHA512.h:
      * crypto/keys/CryptoKeyAES.h:
      * crypto/keys/CryptoKeyHMAC.h:
      * crypto/keys/CryptoKeyRSA.h:
      * crypto/keys/CryptoKeySerializationRaw.h:
      * crypto/parameters/CryptoAlgorithmAesCbcParams.h:
      * crypto/parameters/CryptoAlgorithmAesKeyGenParams.h:
      * crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
      * crypto/parameters/CryptoAlgorithmHmacParams.h:
      * crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h:
      * crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHash.h:
      * crypto/parameters/CryptoAlgorithmRsaOaepParams.h:
      * crypto/parameters/CryptoAlgorithmRsaSsaParams.h:
      * css/CSSBasicShapes.h:
      * css/CSSCanvasValue.h:
      * css/CSSCharsetRule.h:
      * css/CSSComputedStyleDeclaration.h:
      * css/CSSCrossfadeValue.h:
      * css/CSSFilterImageValue.h:
      * css/CSSFontFaceRule.h:
      * css/CSSFontSelector.h:
      * css/CSSGroupingRule.h:
      * css/CSSHostRule.h:
      * css/CSSImportRule.h:
      * css/CSSMediaRule.h:
      * css/CSSPageRule.h:
      * css/CSSStyleRule.h:
      * css/CSSStyleSheet.h:
      * css/CSSSupportsRule.h:
      * css/CSSUnknownRule.h:
      * css/FontLoader.cpp:
      * css/FontLoader.h:
      * css/PropertySetCSSStyleDeclaration.h:
      * css/WebKitCSSFilterRule.h:
      * css/WebKitCSSKeyframeRule.h:
      * css/WebKitCSSKeyframesRule.h:
      * css/WebKitCSSRegionRule.h:
      * css/WebKitCSSViewportRule.h:
      * dom/Attr.h:
      * dom/BeforeTextInsertedEvent.h:
      * dom/BeforeUnloadEvent.h:
      * dom/CDATASection.h:
      * dom/CharacterData.h:
      * dom/ChildNodeList.h:
      * dom/Clipboard.cpp:
      * dom/ClipboardEvent.h:
      * dom/ContainerNode.h:
      * dom/DOMImplementation.cpp:
      * dom/DatasetDOMStringMap.h:
      * dom/DeviceMotionController.h:
      * dom/DeviceOrientationController.h:
      * dom/Document.h:
      * dom/DocumentEventQueue.cpp:
      * dom/DocumentEventQueue.h:
      * dom/DocumentFragment.h:
      * dom/Element.h:
      * dom/ErrorEvent.h:
      * dom/EventContext.h:
      * dom/EventTarget.h:
      * dom/FocusEvent.h:
      * dom/KeyboardEvent.h:
      * dom/LiveNodeList.h:
      * dom/MessagePort.h:
      * dom/MouseEvent.h:
      * dom/MutationRecord.cpp:
      * dom/Node.h:
      * dom/PageTransitionEvent.h:
      * dom/ProcessingInstruction.h:
      * dom/ProgressEvent.h:
      * dom/PseudoElement.h:
      * dom/ScriptExecutionContext.h:
      * dom/ShadowRoot.h:
      * dom/StaticNodeList.h:
      * dom/StyledElement.h:
      * dom/TagNodeList.h:
      * dom/TemplateContentDocumentFragment.h:
      * dom/Text.h:
      * dom/TextEvent.h:
      * dom/TouchEvent.h:
      * dom/TransitionEvent.h:
      * dom/UIEvent.h:
      * dom/WebKitAnimationEvent.h:
      * dom/WebKitNamedFlow.h:
      * dom/WebKitTransitionEvent.h:
      * editing/AppendNodeCommand.h:
      * editing/ApplyBlockElementCommand.h:
      * editing/ApplyStyleCommand.h:
      * editing/BreakBlockquoteCommand.h:
      * editing/CompositeEditCommand.h:
      * editing/DeleteButton.h:
      * editing/DeleteFromTextNodeCommand.h:
      * editing/EditCommand.h:
      * editing/InsertIntoTextNodeCommand.h:
      * editing/InsertNodeBeforeCommand.h:
      * editing/InsertTextCommand.h:
      * editing/MergeIdenticalElementsCommand.h:
      * editing/RemoveCSSPropertyCommand.h:
      * editing/RemoveNodeCommand.h:
      * editing/ReplaceNodeWithSpanCommand.h:
      * editing/SetNodeAttributeCommand.h:
      * editing/SetSelectionCommand.h:
      * editing/SpellChecker.h:
      * editing/SpellingCorrectionCommand.cpp:
      * editing/SpellingCorrectionCommand.h:
      * editing/SplitElementCommand.h:
      * editing/SplitTextNodeCommand.h:
      * editing/WrapContentsInDummySpanCommand.h:
      * editing/ios/EditorIOS.mm:
      * editing/markup.cpp:
      * fileapi/Blob.cpp:
      * fileapi/Blob.h:
      * fileapi/File.h:
      * fileapi/FileReader.h:
      * fileapi/FileThreadTask.h:
      * history/BackForwardList.h:
      * html/BaseButtonInputType.h:
      * html/BaseCheckableInputType.h:
      * html/BaseChooserOnlyDateAndTimeInputType.h:
      * html/BaseClickableWithKeyInputType.h:
      * html/BaseDateAndTimeInputType.h:
      * html/BaseTextInputType.h:
      * html/ButtonInputType.h:
      * html/CheckboxInputType.h:
      * html/ClassList.h:
      * html/ColorInputType.h:
      * html/DOMSettableTokenList.h:
      * html/DateInputType.h:
      * html/DateTimeInputType.h:
      * html/DateTimeLocalInputType.h:
      * html/EmailInputType.h:
      * html/FTPDirectoryDocument.cpp:
      * html/FileInputType.h:
      * html/FormAssociatedElement.cpp:
      * html/FormAssociatedElement.h:
      * html/HTMLAnchorElement.h:
      * html/HTMLAppletElement.h:
      * html/HTMLAreaElement.h:
      * html/HTMLBRElement.h:
      * html/HTMLBaseElement.h:
      * html/HTMLBodyElement.h:
      * html/HTMLButtonElement.h:
      * html/HTMLCanvasElement.h:
      * html/HTMLDetailsElement.cpp:
      * html/HTMLDetailsElement.h:
      * html/HTMLDivElement.h:
      * html/HTMLDocument.h:
      * html/HTMLElement.h:
      * html/HTMLEmbedElement.h:
      * html/HTMLFieldSetElement.h:
      * html/HTMLFontElement.h:
      * html/HTMLFormControlElement.h:
      * html/HTMLFormControlElementWithState.h:
      * html/HTMLFormControlsCollection.h:
      * html/HTMLFormElement.h:
      * html/HTMLFrameElement.h:
      * html/HTMLFrameElementBase.h:
      * html/HTMLFrameOwnerElement.h:
      * html/HTMLFrameSetElement.h:
      * html/HTMLHRElement.h:
      * html/HTMLHtmlElement.h:
      * html/HTMLIFrameElement.h:
      * html/HTMLImageElement.h:
      * html/HTMLImageLoader.h:
      * html/HTMLInputElement.cpp:
      * html/HTMLInputElement.h:
      * html/HTMLKeygenElement.h:
      * html/HTMLLIElement.h:
      * html/HTMLLabelElement.h:
      * html/HTMLLegendElement.h:
      * html/HTMLLinkElement.h:
      * html/HTMLMapElement.h:
      * html/HTMLMarqueeElement.h:
      * html/HTMLMediaElement.h:
      * html/HTMLMediaSession.h:
      * html/HTMLMediaSource.h:
      * html/HTMLMetaElement.h:
      * html/HTMLMeterElement.h:
      * html/HTMLModElement.h:
      * html/HTMLOListElement.h:
      * html/HTMLObjectElement.h:
      * html/HTMLOptGroupElement.h:
      * html/HTMLOptionElement.h:
      * html/HTMLOutputElement.h:
      * html/HTMLParagraphElement.h:
      * html/HTMLParamElement.h:
      * html/HTMLPlugInElement.h:
      * html/HTMLPlugInImageElement.h:
      * html/HTMLPreElement.h:
      * html/HTMLProgressElement.h:
      * html/HTMLQuoteElement.h:
      * html/HTMLScriptElement.h:
      * html/HTMLSelectElement.h:
      * html/HTMLSourceElement.h:
      * html/HTMLStyleElement.h:
      * html/HTMLSummaryElement.h:
      * html/HTMLTableCaptionElement.h:
      * html/HTMLTableCellElement.h:
      * html/HTMLTableColElement.h:
      * html/HTMLTableElement.h:
      * html/HTMLTablePartElement.h:
      * html/HTMLTableRowsCollection.h:
      * html/HTMLTableSectionElement.h:
      * html/HTMLTemplateElement.h:
      * html/HTMLTextAreaElement.h:
      * html/HTMLTextFormControlElement.h:
      * html/HTMLTitleElement.h:
      * html/HTMLTrackElement.h:
      * html/HTMLUListElement.h:
      * html/HTMLUnknownElement.h:
      * html/HTMLVideoElement.h:
      * html/HiddenInputType.h:
      * html/ImageDocument.cpp:
      * html/ImageInputType.h:
      * html/LabelableElement.h:
      * html/LabelsNodeList.h:
      * html/MediaController.h:
      * html/MonthInputType.h:
      * html/NumberInputType.h:
      * html/PasswordInputType.h:
      * html/PluginDocument.h:
      * html/RadioInputType.h:
      * html/RangeInputType.h:
      * html/ResetInputType.h:
      * html/SearchInputType.h:
      * html/SubmitInputType.h:
      * html/TelephoneInputType.h:
      * html/TextFieldInputType.h:
      * html/TextInputType.h:
      * html/TimeInputType.h:
      * html/URLInputType.h:
      * html/WeekInputType.h:
      * html/canvas/CanvasRenderingContext2D.cpp:
      * html/canvas/CanvasRenderingContext2D.h:
      * html/canvas/WebGLRenderingContext.h:
      * html/parser/HTMLDocumentParser.h:
      * html/parser/TextDocumentParser.h:
      * html/shadow/DetailsMarkerControl.h:
      * html/shadow/InsertionPoint.h:
      * html/shadow/MediaControlElementTypes.h:
      * html/shadow/MediaControlElements.h:
      * html/shadow/MediaControls.h:
      * html/shadow/MediaControlsApple.h:
      * html/shadow/MediaControlsGtk.h:
      * html/shadow/MeterShadowElement.h:
      * html/shadow/ProgressShadowElement.h:
      * html/shadow/SliderThumbElement.cpp:
      * html/shadow/SliderThumbElement.h:
      * html/shadow/SpinButtonElement.h:
      * html/shadow/TextControlInnerElements.h:
      * html/shadow/YouTubeEmbedShadowElement.h:
      * html/track/AudioTrack.h:
      * html/track/AudioTrackList.h:
      * html/track/InbandGenericTextTrack.h:
      * html/track/InbandTextTrack.h:
      * html/track/InbandWebVTTTextTrack.h:
      * html/track/LoadableTextTrack.h:
      * html/track/TextTrack.h:
      * html/track/TextTrackCue.h:
      * html/track/TextTrackCueGeneric.cpp:
      * html/track/TextTrackCueGeneric.h:
      * html/track/TextTrackList.h:
      * html/track/TrackListBase.h:
      * html/track/VideoTrack.h:
      * html/track/VideoTrackList.h:
      * html/track/WebVTTElement.h:
      * inspector/CommandLineAPIModule.h:
      * inspector/InjectedScriptCanvasModule.h:
      * inspector/InspectorApplicationCacheAgent.h:
      * inspector/InspectorCSSAgent.h:
      * inspector/InspectorCanvasAgent.h:
      * inspector/InspectorConsoleAgent.cpp:
      * inspector/InspectorConsoleAgent.h:
      * inspector/InspectorController.h:
      * inspector/InspectorDOMAgent.h:
      * inspector/InspectorDOMDebuggerAgent.h:
      * inspector/InspectorDOMStorageAgent.h:
      * inspector/InspectorDatabaseAgent.h:
      * inspector/InspectorDebuggerAgent.h:
      * inspector/InspectorHeapProfilerAgent.h:
      * inspector/InspectorIndexedDBAgent.cpp:
      * inspector/InspectorIndexedDBAgent.h:
      * inspector/InspectorInputAgent.h:
      * inspector/InspectorLayerTreeAgent.h:
      * inspector/InspectorMemoryAgent.h:
      * inspector/InspectorPageAgent.h:
      * inspector/InspectorProfilerAgent.h:
      * inspector/InspectorResourceAgent.h:
      * inspector/InspectorTimelineAgent.h:
      * inspector/InspectorWorkerAgent.h:
      * inspector/PageConsoleAgent.cpp:
      * inspector/PageConsoleAgent.h:
      * inspector/PageInjectedScriptHost.h:
      * inspector/PageInjectedScriptManager.h:
      * inspector/PageRuntimeAgent.h:
      * inspector/WorkerConsoleAgent.h:
      * inspector/WorkerDebuggerAgent.h:
      * inspector/WorkerInspectorController.h:
      * inspector/WorkerRuntimeAgent.h:
      * loader/DocumentLoader.h:
      * loader/EmptyClients.h:
      * loader/FrameNetworkingContext.h:
      * loader/ImageLoader.h:
      * loader/NavigationScheduler.cpp:
      * loader/NetscapePlugInStreamLoader.h:
      * loader/PingLoader.h:
      * loader/ResourceLoader.h:
      * loader/SubresourceLoader.h:
      * loader/WorkerThreadableLoader.h:
      * loader/appcache/ApplicationCacheGroup.cpp:
      * loader/appcache/ApplicationCacheGroup.h:
      * loader/appcache/DOMApplicationCache.h:
      * loader/archive/cf/LegacyWebArchive.h:
      * loader/cache/CachedCSSStyleSheet.h:
      * loader/cache/CachedFont.h:
      * loader/cache/CachedFontClient.h:
      * loader/cache/CachedImage.h:
      * loader/cache/CachedImageClient.h:
      * loader/cache/CachedRawResource.h:
      * loader/cache/CachedRawResourceClient.h:
      * loader/cache/CachedSVGDocument.h:
      * loader/cache/CachedSVGDocumentClient.h:
      * loader/cache/CachedScript.h:
      * loader/cache/CachedShader.h:
      * loader/cache/CachedStyleSheetClient.h:
      * loader/cache/CachedTextTrack.h:
      * loader/cache/CachedXSLStyleSheet.h:
      * loader/icon/IconLoader.h:
      * mathml/MathMLElement.h:
      * mathml/MathMLInlineContainerElement.h:
      * mathml/MathMLMathElement.h:
      * mathml/MathMLSelectElement.h:
      * mathml/MathMLTextElement.h:
      * page/CaptionUserPreferencesMediaAF.h:
      * page/Chrome.h:
      * page/DOMTimer.h:
      * page/DOMWindow.h:
      * page/DOMWindowExtension.h:
      * page/EventSource.h:
      * page/Frame.h:
      * page/FrameView.h:
      * page/PageDebuggable.h:
      * page/PageSerializer.cpp:
      * page/Performance.h:
      * page/SuspendableTimer.h:
      * page/animation/ImplicitAnimation.h:
      * page/animation/KeyframeAnimation.h:
      * page/scrolling/AsyncScrollingCoordinator.h:
      * page/scrolling/ScrollingConstraints.h:
      * page/scrolling/ScrollingStateFixedNode.h:
      * page/scrolling/ScrollingStateScrollingNode.h:
      * page/scrolling/ScrollingStateStickyNode.h:
      * page/scrolling/ScrollingTreeScrollingNode.h:
      * page/scrolling/ThreadedScrollingTree.h:
      * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
      * page/scrolling/ios/ScrollingCoordinatorIOS.h:
      * page/scrolling/ios/ScrollingTreeIOS.h:
      * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
      * page/scrolling/mac/ScrollingCoordinatorMac.h:
      * page/scrolling/mac/ScrollingTreeFixedNode.h:
      * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
      * page/scrolling/mac/ScrollingTreeStickyNode.h:
      * pdf/ios/PDFDocument.cpp:
      * pdf/ios/PDFDocument.h:
      * platform/CalculationValue.h:
      * platform/ClockGeneric.h:
      * platform/MainThreadTask.h:
      * platform/PODIntervalTree.h:
      * platform/PODRedBlackTree.h:
      * platform/RefCountedSupplement.h:
      * platform/ScrollView.h:
      * platform/Scrollbar.h:
      * platform/Timer.h:
      * platform/animation/TimingFunction.h:
      * platform/audio/AudioDSPKernelProcessor.h:
      * platform/audio/EqualPowerPanner.h:
      * platform/audio/HRTFPanner.h:
      * platform/audio/ios/AudioDestinationIOS.h:
      * platform/audio/mac/AudioDestinationMac.h:
      * platform/audio/nix/AudioDestinationNix.h:
      * platform/efl/RenderThemeEfl.h:
      * platform/efl/ScrollbarEfl.h:
      * platform/efl/ScrollbarThemeEfl.h:
      * platform/graphics/AudioTrackPrivate.h:
      * platform/graphics/BitmapImage.h:
      * platform/graphics/CrossfadeGeneratedImage.h:
      * platform/graphics/FloatPolygon.h:
      * platform/graphics/GeneratedImage.h:
      * platform/graphics/GradientImage.h:
      * platform/graphics/GraphicsLayer.h:
      * platform/graphics/InbandTextTrackPrivate.h:
      * platform/graphics/MediaPlayer.cpp:
      * platform/graphics/SimpleFontData.h:
      * platform/graphics/VideoTrackPrivate.h:
      * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
      * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
      * platform/graphics/avfoundation/VideoTrackPrivateAVF.h:
      * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h:
      * platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.h:
      * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
      * platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h:
      * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
      * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h:
      * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
      * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
      * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
      * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
      * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
      * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
      * platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
      * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
      * platform/graphics/ca/GraphicsLayerCA.h:
      * platform/graphics/ca/mac/PlatformCALayerMac.h:
      * platform/graphics/ca/mac/TileController.h:
      * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h:
      * platform/graphics/ca/win/PlatformCALayerWin.h:
      * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h:
      * platform/graphics/cg/PDFDocumentImage.h:
      * platform/graphics/efl/GraphicsContext3DPrivate.h:
      * platform/graphics/egl/GLContextFromCurrentEGL.h:
      * platform/graphics/filters/DistantLightSource.h:
      * platform/graphics/filters/FEComposite.h:
      * platform/graphics/filters/FEDisplacementMap.h:
      * platform/graphics/filters/FEFlood.h:
      * platform/graphics/filters/FilterOperation.h:
      * platform/graphics/filters/PointLightSource.h:
      * platform/graphics/filters/SpotLightSource.h:
      * platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
      * platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:
      * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
      * platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
      * platform/graphics/ios/InbandTextTrackPrivateAVFIOS.h:
      * platform/graphics/ios/MediaPlayerPrivateIOS.h:
      * platform/graphics/ios/TextTrackRepresentationIOS.h:
      * platform/graphics/surfaces/GLTransportSurface.h:
      * platform/graphics/surfaces/egl/EGLContext.h:
      * platform/graphics/surfaces/egl/EGLSurface.h:
      * platform/graphics/surfaces/egl/EGLXSurface.h:
      * platform/graphics/surfaces/glx/GLXContext.h:
      * platform/graphics/surfaces/glx/GLXSurface.h:
      * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
      * platform/graphics/texmap/TextureMapperGL.h:
      * platform/graphics/texmap/TextureMapperImageBuffer.h:
      * platform/graphics/texmap/TextureMapperLayer.h:
      * platform/graphics/texmap/TextureMapperTiledBackingStore.h:
      * platform/graphics/texmap/coordinated/CompositingCoordinator.h:
      * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
      * platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h:
      * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
      * platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
      * platform/graphics/texmap/coordinated/CoordinatedTile.h:
      * platform/graphics/texmap/coordinated/UpdateAtlas.cpp:
      * platform/gtk/RenderThemeGtk.h:
      * platform/ios/DeviceMotionClientIOS.h:
      * platform/ios/DeviceOrientationClientIOS.h:
      * platform/ios/ScrollAnimatorIOS.h:
      * platform/ios/ScrollbarThemeIOS.h:
      * platform/ios/WebSafeGCActivityCallbackIOS.h:
      * platform/ios/WebSafeIncrementalSweeperIOS.h:
      * platform/mac/PlatformClockCA.h:
      * platform/mac/PlatformClockCM.h:
      * platform/mac/ScrollAnimatorMac.h:
      * platform/mac/ScrollbarThemeMac.h:
      * platform/mediastream/MediaStreamTrackPrivate.h:
      * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
      * platform/mediastream/mac/AVAudioCaptureSource.h:
      * platform/mediastream/mac/AVMediaCaptureSource.h:
      * platform/mediastream/mac/AVVideoCaptureSource.h:
      * platform/mediastream/mac/MediaStreamCenterMac.h:
      * platform/mock/DeviceMotionClientMock.h:
      * platform/mock/DeviceOrientationClientMock.h:
      * platform/mock/MockMediaStreamCenter.h:
      * platform/mock/RTCDataChannelHandlerMock.h:
      * platform/mock/RTCNotifiersMock.h:
      * platform/mock/RTCPeerConnectionHandlerMock.h:
      * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
      * platform/mock/mediasource/MockMediaSourcePrivate.h:
      * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
      * platform/mock/mediasource/MockSourceBufferPrivate.h:
      * platform/network/BlobRegistryImpl.h:
      * platform/network/BlobResourceHandle.cpp:
      * platform/network/BlobResourceHandle.h:
      * platform/network/ResourceHandle.h:
      * platform/network/SynchronousLoaderClient.h:
      * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
      * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
      * platform/nix/RenderThemeNix.h:
      * platform/nix/ScrollbarThemeNix.h:
      * platform/text/LocaleICU.h:
      * platform/text/LocaleNone.cpp:
      * platform/text/PlatformLocale.cpp:
      * platform/text/mac/LocaleMac.h:
      * platform/text/win/LocaleWin.h:
      * platform/win/PopupMenuWin.h:
      * plugins/PluginView.h:
      * rendering/AutoTableLayout.h:
      * rendering/ClipPathOperation.h:
      * rendering/EllipsisBox.h:
      * rendering/FilterEffectRenderer.h:
      * rendering/FixedTableLayout.h:
      * rendering/InlineElementBox.h:
      * rendering/InlineFlowBox.h:
      * rendering/InlineTextBox.h:
      * rendering/RenderBlock.h:
      * rendering/RenderBlockFlow.h:
      * rendering/RenderBox.h:
      * rendering/RenderBoxModelObject.h:
      * rendering/RenderButton.h:
      * rendering/RenderCombineText.h:
      * rendering/RenderCounter.h:
      * rendering/RenderDeprecatedFlexibleBox.h:
      * rendering/RenderDetailsMarker.h:
      * rendering/RenderElement.h:
      * rendering/RenderEmbeddedObject.h:
      * rendering/RenderFieldset.h:
      * rendering/RenderFileUploadControl.h:
      * rendering/RenderFlexibleBox.h:
      * rendering/RenderFlowThread.h:
      * rendering/RenderFrame.h:
      * rendering/RenderFrameSet.h:
      * rendering/RenderFullScreen.h:
      * rendering/RenderGrid.h:
      * rendering/RenderHTMLCanvas.h:
      * rendering/RenderIFrame.h:
      * rendering/RenderImage.h:
      * rendering/RenderImageResourceStyleImage.h:
      * rendering/RenderInline.h:
      * rendering/RenderLayer.h:
      * rendering/RenderLayerBacking.h:
      * rendering/RenderLayerCompositor.h:
      * rendering/RenderLayerFilterInfo.h:
      * rendering/RenderLayerModelObject.h:
      * rendering/RenderLineBreak.h:
      * rendering/RenderListBox.h:
      * rendering/RenderListItem.h:
      * rendering/RenderListMarker.h:
      * rendering/RenderMedia.h:
      * rendering/RenderMenuList.h:
      * rendering/RenderMeter.h:
      * rendering/RenderMultiColumnBlock.h:
      * rendering/RenderMultiColumnFlowThread.h:
      * rendering/RenderMultiColumnSet.h:
      * rendering/RenderNamedFlowFragment.h:
      * rendering/RenderNamedFlowThread.h:
      * rendering/RenderObject.h:
      * rendering/RenderProgress.h:
      * rendering/RenderQuote.h:
      * rendering/RenderRegion.h:
      * rendering/RenderRegionSet.h:
      * rendering/RenderReplaced.h:
      * rendering/RenderReplica.h:
      * rendering/RenderRuby.h:
      * rendering/RenderRubyRun.h:
      * rendering/RenderRubyText.h:
      * rendering/RenderScrollbar.h:
      * rendering/RenderScrollbarPart.h:
      * rendering/RenderScrollbarTheme.h:
      * rendering/RenderSearchField.h:
      * rendering/RenderSlider.h:
      * rendering/RenderSnapshottedPlugIn.h:
      * rendering/RenderTable.h:
      * rendering/RenderTableCaption.h:
      * rendering/RenderTableCell.h:
      * rendering/RenderTableCol.h:
      * rendering/RenderTableRow.h:
      * rendering/RenderTableSection.h:
      * rendering/RenderText.h:
      * rendering/RenderTextControl.h:
      * rendering/RenderTextControlMultiLine.h:
      * rendering/RenderTextControlSingleLine.h:
      * rendering/RenderTextFragment.h:
      * rendering/RenderTextTrackCue.h:
      * rendering/RenderThemeIOS.h:
      * rendering/RenderThemeMac.h:
      * rendering/RenderThemeSafari.h:
      * rendering/RenderThemeWin.h:
      * rendering/RenderVideo.h:
      * rendering/RenderView.h:
      * rendering/RenderWidget.h:
      * rendering/RootInlineBox.h:
      * rendering/mathml/RenderMathMLBlock.h:
      * rendering/mathml/RenderMathMLFenced.h:
      * rendering/mathml/RenderMathMLFraction.h:
      * rendering/mathml/RenderMathMLMath.h:
      * rendering/mathml/RenderMathMLOperator.h:
      * rendering/mathml/RenderMathMLRoot.h:
      * rendering/mathml/RenderMathMLRow.h:
      * rendering/mathml/RenderMathMLScripts.h:
      * rendering/mathml/RenderMathMLSpace.h:
      * rendering/mathml/RenderMathMLSquareRoot.h:
      * rendering/mathml/RenderMathMLUnderOver.h:
      * rendering/shapes/BoxShape.h:
      * rendering/shapes/PolygonShape.h:
      * rendering/shapes/RasterShape.h:
      * rendering/shapes/RectangleShape.h:
      * rendering/shapes/ShapeInsideInfo.h:
      * rendering/shapes/ShapeOutsideInfo.h:
      * rendering/style/BasicShapes.h:
      * rendering/style/ContentData.h:
      * rendering/style/StyleCachedImage.h:
      * rendering/style/StyleCachedImageSet.h:
      * rendering/style/StyleGeneratedImage.h:
      * rendering/style/StylePendingImage.h:
      * rendering/svg/RenderSVGBlock.h:
      * rendering/svg/RenderSVGContainer.h:
      * rendering/svg/RenderSVGForeignObject.h:
      * rendering/svg/RenderSVGGradientStop.h:
      * rendering/svg/RenderSVGHiddenContainer.h:
      * rendering/svg/RenderSVGImage.h:
      * rendering/svg/RenderSVGInline.h:
      * rendering/svg/RenderSVGInlineText.h:
      * rendering/svg/RenderSVGModelObject.h:
      * rendering/svg/RenderSVGPath.h:
      * rendering/svg/RenderSVGResourceClipper.h:
      * rendering/svg/RenderSVGResourceContainer.h:
      * rendering/svg/RenderSVGResourceFilter.h:
      * rendering/svg/RenderSVGResourceGradient.h:
      * rendering/svg/RenderSVGResourceLinearGradient.h:
      * rendering/svg/RenderSVGResourceMarker.h:
      * rendering/svg/RenderSVGResourceMasker.h:
      * rendering/svg/RenderSVGResourcePattern.h:
      * rendering/svg/RenderSVGResourceRadialGradient.h:
      * rendering/svg/RenderSVGResourceSolidColor.h:
      * rendering/svg/RenderSVGRoot.h:
      * rendering/svg/RenderSVGShape.cpp:
      * rendering/svg/RenderSVGShape.h:
      * rendering/svg/RenderSVGText.h:
      * rendering/svg/RenderSVGTextPath.h:
      * rendering/svg/RenderSVGViewportContainer.h:
      * rendering/svg/SVGInlineFlowBox.h:
      * rendering/svg/SVGInlineTextBox.h:
      * rendering/svg/SVGRootInlineBox.h:
      * rendering/svg/SVGTextRunRenderingContext.h:
      * storage/StorageAreaImpl.h:
      * storage/StorageNamespaceImpl.h:
      * svg/SVGAElement.h:
      * svg/SVGAltGlyphDefElement.h:
      * svg/SVGAltGlyphElement.h:
      * svg/SVGAltGlyphItemElement.h:
      * svg/SVGAnimateElement.h:
      * svg/SVGAnimateMotionElement.h:
      * svg/SVGAnimateTransformElement.h:
      * svg/SVGAnimatedAngle.h:
      * svg/SVGAnimatedBoolean.h:
      * svg/SVGAnimatedColor.h:
      * svg/SVGAnimatedEnumeration.h:
      * svg/SVGAnimatedInteger.h:
      * svg/SVGAnimatedIntegerOptionalInteger.h:
      * svg/SVGAnimatedLength.h:
      * svg/SVGAnimatedLengthList.h:
      * svg/SVGAnimatedNumber.h:
      * svg/SVGAnimatedNumberList.h:
      * svg/SVGAnimatedNumberOptionalNumber.h:
      * svg/SVGAnimatedPath.h:
      * svg/SVGAnimatedPointList.h:
      * svg/SVGAnimatedPreserveAspectRatio.h:
      * svg/SVGAnimatedRect.h:
      * svg/SVGAnimatedString.h:
      * svg/SVGAnimatedTransformList.h:
      * svg/SVGAnimationElement.h:
      * svg/SVGCircleElement.h:
      * svg/SVGClipPathElement.h:
      * svg/SVGComponentTransferFunctionElement.h:
      * svg/SVGCursorElement.h:
      * svg/SVGDefsElement.h:
      * svg/SVGDocument.h:
      * svg/SVGElement.h:
      * svg/SVGElementInstance.h:
      * svg/SVGEllipseElement.h:
      * svg/SVGFEBlendElement.h:
      * svg/SVGFEColorMatrixElement.h:
      * svg/SVGFEComponentTransferElement.h:
      * svg/SVGFECompositeElement.h:
      * svg/SVGFEConvolveMatrixElement.h:
      * svg/SVGFEDiffuseLightingElement.h:
      * svg/SVGFEDisplacementMapElement.h:
      * svg/SVGFEDropShadowElement.h:
      * svg/SVGFEGaussianBlurElement.h:
      * svg/SVGFEImageElement.h:
      * svg/SVGFELightElement.h:
      * svg/SVGFEMergeNodeElement.h:
      * svg/SVGFEMorphologyElement.h:
      * svg/SVGFEOffsetElement.h:
      * svg/SVGFESpecularLightingElement.h:
      * svg/SVGFETileElement.h:
      * svg/SVGFETurbulenceElement.h:
      * svg/SVGFilterElement.h:
      * svg/SVGFilterPrimitiveStandardAttributes.h:
      * svg/SVGFontElement.h:
      * svg/SVGFontFaceElement.h:
      * svg/SVGFontFaceFormatElement.h:
      * svg/SVGFontFaceNameElement.h:
      * svg/SVGFontFaceSrcElement.h:
      * svg/SVGFontFaceUriElement.h:
      * svg/SVGForeignObjectElement.h:
      * svg/SVGGElement.h:
      * svg/SVGGlyphElement.h:
      * svg/SVGGlyphRefElement.h:
      * svg/SVGGradientElement.h:
      * svg/SVGGraphicsElement.h:
      * svg/SVGHKernElement.h:
      * svg/SVGImageElement.h:
      * svg/SVGLineElement.h:
      * svg/SVGLinearGradientElement.h:
      * svg/SVGMPathElement.h:
      * svg/SVGMarkerElement.h:
      * svg/SVGMaskElement.h:
      * svg/SVGMetadataElement.h:
      * svg/SVGPathElement.h:
      * svg/SVGPathStringBuilder.h:
      * svg/SVGPatternElement.h:
      * svg/SVGPolyElement.h:
      * svg/SVGRadialGradientElement.h:
      * svg/SVGRectElement.h:
      * svg/SVGSVGElement.h:
      * svg/SVGScriptElement.h:
      * svg/SVGSetElement.h:
      * svg/SVGStopElement.h:
      * svg/SVGStyleElement.h:
      * svg/SVGSwitchElement.h:
      * svg/SVGSymbolElement.h:
      * svg/SVGTRefElement.cpp:
      * svg/SVGTRefElement.h:
      * svg/SVGTSpanElement.h:
      * svg/SVGTextContentElement.h:
      * svg/SVGTextElement.h:
      * svg/SVGTextPathElement.h:
      * svg/SVGTextPositioningElement.h:
      * svg/SVGTitleElement.h:
      * svg/SVGTransformable.h:
      * svg/SVGUnknownElement.h:
      * svg/SVGUseElement.h:
      * svg/SVGVKernElement.h:
      * svg/SVGViewElement.h:
      * svg/animation/SVGSMILElement.h:
      * svg/graphics/SVGImage.h:
      * svg/graphics/SVGImageForContainer.h:
      * svg/graphics/filters/SVGFilter.h:
      * svg/properties/SVGAnimatedListPropertyTearOff.h:
      * svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
      * svg/properties/SVGListPropertyTearOff.h:
      * svg/properties/SVGPathSegListPropertyTearOff.h:
      * svg/properties/SVGPropertyTearOff.h:
      * testing/InternalSettings.cpp:
      * testing/Internals.cpp:
      * testing/MockCDM.cpp:
      * testing/MockCDM.h:
      * workers/AbstractWorker.h:
      * workers/DedicatedWorkerGlobalScope.h:
      * workers/DedicatedWorkerThread.h:
      * workers/SharedWorker.h:
      * workers/SharedWorkerGlobalScope.h:
      * workers/SharedWorkerThread.h:
      * workers/Worker.h:
      * workers/WorkerEventQueue.cpp:
      * workers/WorkerEventQueue.h:
      * workers/WorkerGlobalScope.h:
      * workers/WorkerMessagingProxy.h:
      * workers/WorkerObjectProxy.h:
      * workers/WorkerScriptLoader.h:
      * workers/WorkerThread.cpp:
      * xml/XMLHttpRequest.h:
      * xml/XMLHttpRequestUpload.h:
      * xml/XPathFunctions.cpp:
      * xml/XPathPath.h:
      * xml/XPathPredicate.h:
      * xml/XSLStyleSheet.h:
      
      Source/WebKit/efl:
      
      * WebCoreSupport/InspectorClientEfl.h:
      * WebCoreSupport/ProgressTrackerClientEfl.h:
      
      Source/WebKit/gtk:
      
      * WebCoreSupport/EditorClientGtk.h:
      * WebCoreSupport/InspectorClientGtk.h:
      * WebCoreSupport/ProgressTrackerClientGtk.h:
      
      Source/WebKit/ios:
      
      * Misc/EmojiFallbackFontSelector.h:
      * Storage/WebSQLiteDatabaseTrackerClient.h:
      * WebCoreSupport/PopupMenuIOS.h:
      * WebCoreSupport/SearchPopupMenuIOS.h:
      * WebCoreSupport/WebChromeClientIOS.h:
      * WebCoreSupport/WebDiskImageCacheClientIOS.h:
      
      Source/WebKit/mac:
      
      * Storage/WebDatabaseManagerClient.h:
      * Storage/WebStorageTrackerClient.h:
      * WebCoreSupport/WebAlternativeTextClient.h:
      * WebCoreSupport/WebChromeClient.h:
      * WebCoreSupport/WebContextMenuClient.h:
      * WebCoreSupport/WebDeviceOrientationClient.h:
      * WebCoreSupport/WebDragClient.h:
      * WebCoreSupport/WebEditorClient.h:
      * WebCoreSupport/WebFrameLoaderClient.h:
      * WebCoreSupport/WebFrameNetworkingContext.h:
      * WebCoreSupport/WebGeolocationClient.h:
      * WebCoreSupport/WebIconDatabaseClient.h:
      * WebCoreSupport/WebInspectorClient.h:
      * WebCoreSupport/WebNotificationClient.h:
      * WebCoreSupport/WebPlatformStrategies.h:
      * WebCoreSupport/WebProgressTrackerClient.h:
      * WebCoreSupport/WebUserMediaClient.h:
      * WebView/WebScriptDebugger.h:
      * WebView/WebViewData.h:
      
      Source/WebKit/win:
      
      * AccessibleDocument.h:
      * FullscreenVideoController.cpp:
      * WebCoreSupport/WebChromeClient.h:
      * WebCoreSupport/WebFrameLoaderClient.h:
      * WebCoreSupport/WebFrameNetworkingContext.h:
      * WebCoreSupport/WebInspectorClient.h:
      * WebHistory.h:
      
      Source/WebKit/wince:
      
      * WebCoreSupport/ChromeClientWinCE.h:
      * WebCoreSupport/ContextMenuClientWinCE.h:
      * WebCoreSupport/DragClientWinCE.h:
      * WebCoreSupport/EditorClientWinCE.h:
      * WebCoreSupport/FrameLoaderClientWinCE.h:
      * WebCoreSupport/FrameNetworkingContextWinCE.h:
      * WebCoreSupport/InspectorClientWinCE.h:
      * WebCoreSupport/PlatformStrategiesWinCE.h:
      
      Source/WebKit2:
      
      * DatabaseProcess/DatabaseProcess.h:
      * DatabaseProcess/DatabaseToWebProcessConnection.h:
      * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
      * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
      * NetworkProcess/AsynchronousNetworkLoaderClient.h:
      * NetworkProcess/NetworkProcess.h:
      * NetworkProcess/NetworkProcessPlatformStrategies.h:
      * NetworkProcess/NetworkResourceLoader.h:
      * NetworkProcess/RemoteNetworkingContext.h:
      * NetworkProcess/SynchronousNetworkLoaderClient.h:
      * NetworkProcess/mac/DiskCacheMonitor.h:
      * PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
      * PluginProcess/PluginControllerProxy.h:
      * PluginProcess/PluginProcess.h:
      * PluginProcess/WebProcessConnection.h:
      * Shared/API/Cocoa/RemoteObjectRegistry.h:
      * Shared/APIObject.h:
      * Shared/AsyncRequest.h:
      * Shared/AsyncTask.h:
      * Shared/Authentication/AuthenticationManager.h:
      * Shared/ChildProcess.h:
      * Shared/ChildProcessProxy.h:
      * Shared/CoordinatedGraphics/WebCoordinatedSurface.h:
      * Shared/Downloads/Download.h:
      * Shared/Network/CustomProtocols/CustomProtocolManager.h:
      * Shared/WebConnection.h:
      * Shared/WebResourceBuffer.h:
      * Shared/cf/KeyedEncoder.h:
      * Shared/mac/SecItemShim.h:
      * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
      * UIProcess/API/gtk/PageClientImpl.h:
      * UIProcess/API/ios/PageClientImplIOS.h:
      * UIProcess/API/mac/PageClientImpl.h:
      * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
      * UIProcess/CoordinatedGraphics/WebView.h:
      * UIProcess/Databases/DatabaseProcessProxy.h:
      * UIProcess/Downloads/DownloadProxy.h:
      * UIProcess/DrawingAreaProxy.h:
      * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
      * UIProcess/Network/NetworkProcessProxy.h:
      * UIProcess/Notifications/WebNotificationManagerProxy.h:
      * UIProcess/Plugins/PluginProcessProxy.h:
      * UIProcess/Scrolling/RemoteScrollingTree.h:
      * UIProcess/Storage/StorageManager.h:
      * UIProcess/WebApplicationCacheManagerProxy.h:
      * UIProcess/WebBatteryManagerProxy.h:
      * UIProcess/WebConnectionToWebProcess.h:
      * UIProcess/WebContext.h:
      * UIProcess/WebCookieManagerProxy.h:
      * UIProcess/WebDatabaseManagerProxy.h:
      * UIProcess/WebFullScreenManagerProxy.h:
      * UIProcess/WebGeolocationManagerProxy.h:
      * UIProcess/WebIconDatabase.h:
      * UIProcess/WebInspectorProxy.h:
      * UIProcess/WebKeyValueStorageManager.h:
      * UIProcess/WebMediaCacheManagerProxy.h:
      * UIProcess/WebNetworkInfoManagerProxy.h:
      * UIProcess/WebOriginDataManagerProxy.h:
      * UIProcess/WebPageProxy.h:
      * UIProcess/WebProcessProxy.h:
      * UIProcess/WebResourceCacheManagerProxy.h:
      * UIProcess/WebVibrationProxy.h:
      * UIProcess/efl/PageViewportControllerClientEfl.h:
      * UIProcess/efl/WebViewEfl.h:
      * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
      * UIProcess/mac/SecItemShimProxy.h:
      * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
      * UIProcess/mac/ViewGestureController.h:
      * UIProcess/mac/WebColorPickerMac.h:
      * UIProcess/soup/WebSoupRequestManagerProxy.h:
      * WebProcess/ApplicationCache/WebApplicationCacheManager.h:
      * WebProcess/Battery/WebBatteryManager.h:
      * WebProcess/Cookies/WebCookieManager.h:
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
      * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
      * WebProcess/Databases/WebToDatabaseProcessConnection.h:
      * WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm:
      * WebProcess/FileAPI/BlobRegistryProxy.h:
      * WebProcess/Geolocation/WebGeolocationManager.h:
      * WebProcess/IconDatabase/WebIconDatabaseProxy.h:
      * WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm:
      * WebProcess/MediaCache/WebMediaCacheManager.h:
      * WebProcess/Network/NetworkProcessConnection.h:
      * WebProcess/Network/WebResourceLoadScheduler.h:
      * WebProcess/Network/WebResourceLoader.h:
      * WebProcess/NetworkInfo/WebNetworkInfoManager.h:
      * WebProcess/Notifications/WebNotificationManager.h:
      * WebProcess/OriginData/WebOriginDataManager.h:
      * WebProcess/Plugins/Netscape/NetscapePlugin.h:
      * WebProcess/Plugins/PDF/PDFPlugin.h:
      * WebProcess/Plugins/PDF/PDFPluginAnnotation.h:
      * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.h:
      * WebProcess/Plugins/PDF/PDFPluginPasswordField.h:
      * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.h:
      * WebProcess/Plugins/PluginProcessConnection.h:
      * WebProcess/Plugins/PluginProcessConnectionManager.h:
      * WebProcess/Plugins/PluginProxy.h:
      * WebProcess/Plugins/PluginView.h:
      * WebProcess/ResourceCache/WebResourceCacheManager.h:
      * WebProcess/Scrolling/RemoteScrollingCoordinator.h:
      * WebProcess/Storage/StorageAreaImpl.h:
      * WebProcess/Storage/StorageAreaMap.h:
      * WebProcess/Storage/StorageNamespaceImpl.h:
      * WebProcess/WebConnectionToUIProcess.h:
      * WebProcess/WebCoreSupport/WebAlternativeTextClient.h:
      * WebProcess/WebCoreSupport/WebBatteryClient.h:
      * WebProcess/WebCoreSupport/WebChromeClient.h:
      * WebProcess/WebCoreSupport/WebColorChooser.h:
      * WebProcess/WebCoreSupport/WebContextMenuClient.h:
      * WebProcess/WebCoreSupport/WebDatabaseManager.h:
      * WebProcess/WebCoreSupport/WebDeviceProximityClient.h:
      * WebProcess/WebCoreSupport/WebDragClient.h:
      * WebProcess/WebCoreSupport/WebEditorClient.h:
      * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
      * WebProcess/WebCoreSupport/WebGeolocationClient.h:
      * WebProcess/WebCoreSupport/WebInspectorClient.h:
      * WebProcess/WebCoreSupport/WebInspectorFrontendClient.h:
      * WebProcess/WebCoreSupport/WebNavigatorContentUtilsClient.h:
      * WebProcess/WebCoreSupport/WebNetworkInfoClient.h:
      * WebProcess/WebCoreSupport/WebNotificationClient.h:
      * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
      * WebProcess/WebCoreSupport/WebPopupMenu.h:
      * WebProcess/WebCoreSupport/WebProgressTrackerClient.h:
      * WebProcess/WebCoreSupport/WebSearchPopupMenu.h:
      * WebProcess/WebCoreSupport/WebVibrationClient.h:
      * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
      * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
      * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
      * WebProcess/WebPage/DrawingAreaImpl.h:
      * WebProcess/WebPage/EventDispatcher.h:
      * WebProcess/WebPage/ViewGestureGeometryCollector.h:
      * WebProcess/WebPage/WebBackForwardListProxy.h:
      * WebProcess/WebPage/WebPage.h:
      * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
      * WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
      * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
      * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
      * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:
      * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
      * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
      * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
      * WebProcess/WebProcess.h:
      * WebProcess/soup/WebSoupRequestManager.h:
      
      Source/WTF:
      
      * wtf/Compiler.h:
      * wtf/FilePrintStream.h:
      * wtf/RunLoop.h:
      * wtf/StringPrintStream.h:
      
      Tools:
      
      * DumpRenderTree/gtk/fonts/fonts.conf:
      * Scripts/do-webcore-rename:
      Removed this rename operation from the list of contemplated future renames.
      * TestWebKitAPI/Tests/WebKit2/DidAssociateFormControls_Bundle.cpp:
      * TestWebKitAPI/Tests/WebKit2/InjectedBundleFrameHitTest_Bundle.cpp:
      * TestWebKitAPI/Tests/WebKit2/WillLoad_Bundle.cpp:
      * TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsInvalidScheme_Bundle.cpp:
      * TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@162139 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2dfe6cb5
  2. 10 Oct, 2013 1 commit
    • fpizlo@apple.com's avatar
      FTL should be able to do simple OSR exits using llvm.webkit.stackmap · ea92c209
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122538
      
      Reviewed by Oliver Hunt.
              
      This gives the FTL the ability to OSR exit using the llvm.webkit.stackmap intrinsic.
              
      - The FTL compiles all OSR exit calls as calls to llvm.webkit.stackmap with a unique
        ID, passing a requested size that is big enough for own jump replacement.
              
      - After LLVM compilation, we parse the new LLVM stackmap section.
              
      - For all llvm.webkit.stackmaps that we used for OSR exits, we do a jumpReplacement,
        which targets exit thunks that we generate.
              
      - If an exit thunk fires, it causes JSC to compile an exit off-ramp that uses a
        combination of the JSC-internal OSR exit accounting (FTL::ExitValue and friends) and
        LLVM stackmap's accounting of where data actually ended up (register, indirect,
        constant) to reconstruct bytecode state.
              
      This still has shortcomings; for example it cannot handle XMM or YMM registers. Handling
      YMM registers will require adding some basic YMM support to our assemblers - really we
      just need the ability to move a YMM's value into a GPR.
              
      This patch preserves all of the old, intrinsic-less, FTL OSR exit support. Hence it
      manages to pass all existing FTL tests even despite its incompleteness. I think that's
      the right way to go since this is already a big patch, and anyway it would be great to
      keep the intrinsic-less FTL OSR exit support so long as the LLVM side of this hasn't
      landed.
      
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * assembler/AbstractMacroAssembler.h:
      (JSC::AbstractMacroAssembler::firstRegister):
      (JSC::AbstractMacroAssembler::lastRegister):
      * assembler/MacroAssembler.h:
      (JSC::MacroAssembler::isStackRelated):
      (JSC::MacroAssembler::firstRealRegister):
      (JSC::MacroAssembler::nextRegister):
      (JSC::MacroAssembler::secondRealRegister):
      * assembler/MacroAssemblerX86Common.h:
      * assembler/X86Assembler.h:
      (JSC::X86Assembler::firstRegister):
      (JSC::X86Assembler::lastRegister):
      * dfg/DFGPlan.cpp:
      (JSC::DFG::Plan::compileInThreadImpl):
      * ftl/FTLCArgumentGetter.cpp:
      (JSC::FTL::CArgumentGetter::loadNextAndBox):
      * ftl/FTLCArgumentGetter.h:
      (JSC::FTL::CArgumentGetter::loadNextDoubleIntoGPR):
      * ftl/FTLCompile.cpp:
      (JSC::FTL::mmAllocateCodeSection):
      (JSC::FTL::mmAllocateDataSection):
      (JSC::FTL::dumpDataSection):
      (JSC::FTL::fixFunctionBasedOnStackMaps):
      (JSC::FTL::compile):
      * ftl/FTLExitThunkGenerator.cpp:
      (JSC::FTL::ExitThunkGenerator::emitThunk):
      (JSC::FTL::ExitThunkGenerator::emitThunks):
      * ftl/FTLExitThunkGenerator.h:
      * ftl/FTLExitValue.h:
      (JSC::FTL::ExitValue::isInJSStackSomehow):
      (JSC::FTL::ExitValue::valueFormat):
      * ftl/FTLFail.cpp:
      (JSC::FTL::fail):
      * ftl/FTLIntrinsicRepository.h:
      * ftl/FTLJITCode.h:
      * ftl/FTLLowerDFGToLLVM.cpp:
      (JSC::FTL::generateExitThunks):
      (JSC::FTL::LowerDFGToLLVM::LowerDFGToLLVM):
      (JSC::FTL::LowerDFGToLLVM::appendOSRExit):
      (JSC::FTL::LowerDFGToLLVM::emitOSRExitCall):
      (JSC::FTL::LowerDFGToLLVM::linkOSRExitsAndCompleteInitializationBlocks):
      * ftl/FTLOSRExit.h:
      * ftl/FTLOSRExitCompilationInfo.h:
      (JSC::FTL::OSRExitCompilationInfo::OSRExitCompilationInfo):
      * ftl/FTLOSRExitCompiler.cpp:
      (JSC::FTL::compileStubWithOSRExitStackmap):
      (JSC::FTL::compileStubWithoutOSRExitStackmap):
      (JSC::FTL::compileFTLOSRExit):
      * ftl/FTLSaveRestore.cpp: Added.
      (JSC::FTL::bytesForGPRs):
      (JSC::FTL::requiredScratchMemorySizeInBytes):
      (JSC::FTL::offsetOfGPR):
      (JSC::FTL::saveAllRegisters):
      (JSC::FTL::restoreAllRegisters):
      * ftl/FTLSaveRestore.h: Added.
      * ftl/FTLStackMaps.cpp: Added.
      (JSC::FTL::readObject):
      (JSC::FTL::StackMaps::Constant::parse):
      (JSC::FTL::StackMaps::Constant::dump):
      (JSC::FTL::StackMaps::Location::parse):
      (JSC::FTL::StackMaps::Location::dump):
      (JSC::FTL::StackMaps::Location::involvesGPR):
      (JSC::FTL::StackMaps::Location::isGPR):
      (JSC::FTL::StackMaps::Location::gpr):
      (JSC::FTL::StackMaps::Location::restoreInto):
      (JSC::FTL::StackMaps::Record::parse):
      (JSC::FTL::StackMaps::Record::dump):
      (JSC::FTL::StackMaps::parse):
      (JSC::FTL::StackMaps::dump):
      (JSC::FTL::StackMaps::dumpMultiline):
      (JSC::FTL::StackMaps::getRecordMap):
      (WTF::printInternal):
      * ftl/FTLStackMaps.h: Added.
      * ftl/FTLState.h:
      * ftl/FTLThunks.cpp:
      (JSC::FTL::osrExitGenerationThunkGenerator):
      * ftl/FTLValueFormat.cpp:
      (JSC::FTL::reboxAccordingToFormat):
      * ftl/FTLValueFormat.h:
      * runtime/DataView.cpp:
      (JSC::DataView::create):
      * runtime/DataView.h:
      (JSC::DataView::read):
      * runtime/Options.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157209 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ea92c209
  3. 07 Oct, 2013 1 commit
    • andersca@apple.com's avatar
      Add OVERRIDE and virtual where appropriate · 70c60588
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122439
      
      Reviewed by Antti Koivisto.
      
      Source/JavaScriptCore:
      
      * API/JSAPIWrapperObject.mm:
      * API/JSCallbackObject.h:
      (JSC::JSCallbackObjectData::~JSCallbackObjectData):
      * API/JSManagedValue.mm:
      * API/JSScriptRef.cpp:
      (OpaqueJSScript::~OpaqueJSScript):
      * bytecode/CodeBlock.h:
      * bytecode/StructureStubClearingWatchpoint.h:
      * dfg/DFGArrayifySlowPathGenerator.h:
      * dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
      * dfg/DFGFailedFinalizer.h:
      * dfg/DFGJITCode.h:
      * dfg/DFGJITFinalizer.h:
      * dfg/DFGSaneStringGetByValSlowPathGenerator.h:
      * dfg/DFGSlowPathGenerator.h:
      * dfg/DFGSpeculativeJIT64.cpp:
      * heap/Heap.h:
      * heap/IncrementalSweeper.h:
      * heap/SuperRegion.h:
      * jit/ClosureCallStubRoutine.h:
      * jit/ExecutableAllocatorFixedVMPool.cpp:
      * jit/GCAwareJITStubRoutine.h:
      * jit/JITCode.h:
      * jit/JITStubs.cpp:
      * jit/JITToDFGDeferredCompilationCallback.h:
      * jit/JumpReplacementWatchpoint.h:
      * parser/Nodes.h:
      * runtime/DataView.h:
      * runtime/GCActivityCallback.h:
      * runtime/GenericTypedArrayView.h:
      * runtime/RegExpCache.h:
      * runtime/SimpleTypedArrayController.h:
      * runtime/WeakMapData.h:
      
      Source/WebCore:
      
      * Modules/encryptedmedia/MediaKeys.h:
      * Modules/webaudio/AnalyserNode.h:
      * Modules/webaudio/AudioBasicInspectorNode.h:
      * Modules/webaudio/AudioBasicProcessorNode.h:
      * Modules/webaudio/AudioBufferSourceNode.h:
      * Modules/webaudio/AudioContext.h:
      * Modules/webaudio/AudioDestinationNode.h:
      * Modules/webaudio/AudioProcessingEvent.h:
      * Modules/webaudio/BiquadDSPKernel.h:
      * Modules/webaudio/BiquadProcessor.h:
      * Modules/webaudio/ChannelMergerNode.h:
      * Modules/webaudio/ChannelSplitterNode.h:
      * Modules/webaudio/ConvolverNode.h:
      * Modules/webaudio/DelayDSPKernel.h:
      * Modules/webaudio/DelayProcessor.h:
      * Modules/webaudio/DynamicsCompressorNode.h:
      * Modules/webaudio/GainNode.h:
      * Modules/webaudio/MediaElementAudioSourceNode.h:
      * Modules/webaudio/OfflineAudioCompletionEvent.h:
      * Modules/webaudio/OfflineAudioDestinationNode.h:
      * Modules/webaudio/OscillatorNode.h:
      * Modules/webaudio/PannerNode.h:
      * Modules/webaudio/ScriptProcessorNode.h:
      * Modules/webaudio/WaveShaperProcessor.h:
      * accessibility/AccessibilityARIAGrid.h:
      * accessibility/AccessibilityARIAGridCell.h:
      * accessibility/AccessibilityARIAGridRow.h:
      * accessibility/AccessibilityImageMapLink.h:
      * accessibility/AccessibilityList.h:
      * accessibility/AccessibilityListBox.h:
      * accessibility/AccessibilityListBoxOption.h:
      * accessibility/AccessibilityMediaControls.h:
      * accessibility/AccessibilityMenuList.h:
      * accessibility/AccessibilityMenuListOption.h:
      * accessibility/AccessibilityMenuListPopup.h:
      * accessibility/AccessibilityMockObject.h:
      * accessibility/AccessibilityNodeObject.h:
      * accessibility/AccessibilityProgressIndicator.h:
      * accessibility/AccessibilityRenderObject.h:
      * accessibility/AccessibilitySVGRoot.h:
      * accessibility/AccessibilityScrollView.h:
      * accessibility/AccessibilityScrollbar.h:
      * accessibility/AccessibilitySlider.h:
      * accessibility/AccessibilitySpinButton.h:
      * accessibility/AccessibilityTable.h:
      * accessibility/AccessibilityTableCell.h:
      * accessibility/AccessibilityTableColumn.h:
      * accessibility/AccessibilityTableHeaderContainer.h:
      * accessibility/AccessibilityTableRow.h:
      * bindings/js/JSEventListener.h:
      * bindings/js/WebCoreTypedArrayController.h:
      * bridge/c/c_class.h:
      * bridge/c/c_instance.h:
      * bridge/c/c_runtime.h:
      * bridge/runtime_root.h:
      * css/CSSBasicShapes.h:
      * css/CSSComputedStyleDeclaration.h:
      * css/CSSStyleSheet.h:
      * dom/Attr.h:
      * dom/BeforeTextInsertedEvent.h:
      * dom/CDATASection.h:
      * dom/ChildNodeList.h:
      * dom/DatasetDOMStringMap.h:
      * dom/Document.h:
      * dom/DocumentEventQueue.h:
      * dom/DocumentFragment.h:
      * dom/Element.h:
      * dom/ErrorEvent.h:
      * dom/KeyboardEvent.h:
      * dom/Node.h:
      * dom/PageTransitionEvent.h:
      * dom/ProgressEvent.h:
      * dom/PseudoElement.h:
      * dom/ScriptExecutionContext.h:
      * dom/ShadowRoot.h:
      * dom/StyledElement.h:
      * dom/TagNodeList.h:
      * dom/Text.h:
      * dom/TextEvent.h:
      * dom/TransitionEvent.h:
      * dom/UIEvent.h:
      * dom/WebKitAnimationEvent.h:
      * dom/WebKitTransitionEvent.h:
      * editing/ApplyBlockElementCommand.h:
      * editing/ApplyStyleCommand.h:
      * editing/BreakBlockquoteCommand.h:
      * editing/CompositeEditCommand.h:
      * editing/SpellingCorrectionCommand.h:
      * fileapi/File.h:
      * fileapi/FileThreadTask.h:
      * history/BackForwardList.h:
      * html/BaseCheckableInputType.h:
      * html/HTMLAnchorElement.h:
      * html/HTMLAreaElement.h:
      * html/HTMLCanvasElement.h:
      * html/HTMLCollection.h:
      * html/HTMLElement.h:
      * html/HTMLFieldSetElement.h:
      * html/HTMLFormControlElement.h:
      * html/HTMLFormControlElementWithState.h:
      * html/HTMLFormElement.h:
      * html/HTMLFrameElementBase.h:
      * html/HTMLImageElement.h:
      * html/HTMLImageLoader.h:
      * html/HTMLInputElement.h:
      * html/HTMLLabelElement.h:
      * html/HTMLLegendElement.h:
      * html/HTMLMediaElement.h:
      * html/HTMLMeterElement.h:
      * html/HTMLOptGroupElement.h:
      * html/HTMLOptionElement.h:
      * html/HTMLPlugInElement.h:
      * html/HTMLPlugInImageElement.h:
      * html/HTMLProgressElement.h:
      * html/HTMLSelectElement.h:
      * html/HTMLTableElement.h:
      * html/HTMLTextAreaElement.h:
      * html/HTMLTextFormControlElement.h:
      * html/HTMLVideoElement.h:
      * html/canvas/CanvasRenderingContext2D.cpp:
      * html/shadow/MediaControlElementTypes.h:
      * html/shadow/MediaControlElements.h:
      * html/shadow/SpinButtonElement.h:
      * html/shadow/TextControlInnerElements.h:
      * html/track/AudioTrackList.h:
      * html/track/TextTrackList.h:
      * html/track/TrackListBase.h:
      * inspector/InspectorValues.h:
      * loader/EmptyClients.h:
      * loader/ImageLoader.h:
      * loader/ResourceLoader.h:
      * loader/SubresourceLoader.h:
      * loader/appcache/ApplicationCacheGroup.cpp:
      * loader/appcache/ApplicationCacheGroup.h:
      * loader/appcache/DOMApplicationCache.h:
      * loader/archive/cf/LegacyWebArchive.h:
      * loader/cache/CachedCSSStyleSheet.h:
      * loader/cache/CachedFont.h:
      * loader/cache/CachedFontClient.h:
      * loader/cache/CachedImageClient.h:
      * loader/cache/CachedSVGDocumentClient.h:
      * loader/cache/CachedStyleSheetClient.h:
      * loader/cache/CachedXSLStyleSheet.h:
      * page/Chrome.h:
      * page/DOMWindow.h:
      * page/FrameView.h:
      * page/animation/ImplicitAnimation.h:
      * platform/PODIntervalTree.h:
      * platform/PODRedBlackTree.h:
      * platform/ScrollView.h:
      * platform/Scrollbar.h:
      * platform/Timer.h:
      * platform/animation/TimingFunction.h:
      (WebCore::LinearTimingFunction::~LinearTimingFunction):
      (WebCore::CubicBezierTimingFunction::~CubicBezierTimingFunction):
      (WebCore::StepsTimingFunction::~StepsTimingFunction):
      * platform/audio/AudioDSPKernelProcessor.h:
      * platform/audio/HRTFPanner.h:
      * platform/audio/mac/AudioDestinationMac.h:
      * platform/graphics/SimpleFontData.h:
      * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
      * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
      * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
      * platform/graphics/filters/FilterOperation.h:
      * platform/network/ResourceHandle.h:
      * rendering/AutoTableLayout.h:
      * rendering/ClipPathOperation.h:
      * rendering/InlineFlowBox.h:
      * rendering/RenderBlock.h:
      * rendering/RenderBox.h:
      * rendering/RenderBoxModelObject.h:
      * rendering/RenderButton.h:
      * rendering/RenderFieldset.h:
      * rendering/RenderFileUploadControl.h:
      * rendering/RenderFlexibleBox.h:
      * rendering/RenderFlowThread.h:
      * rendering/RenderFullScreen.h:
      * rendering/RenderImage.h:
      * rendering/RenderLayer.h:
      * rendering/RenderLineBreak.h:
      * rendering/RenderListBox.h:
      * rendering/RenderListItem.h:
      * rendering/RenderListMarker.h:
      * rendering/RenderMenuList.h:
      * rendering/RenderMeter.h:
      * rendering/RenderObject.h:
      * rendering/RenderReplaced.h:
      * rendering/RenderSlider.h:
      * rendering/RenderTable.h:
      * rendering/RenderTableCell.h:
      * rendering/RenderText.h:
      * rendering/RenderTextControl.h:
      * rendering/RenderTextControlSingleLine.h:
      * rendering/RenderTextFragment.h:
      * rendering/RenderView.h:
      * rendering/RootInlineBox.h:
      * rendering/mathml/RenderMathMLBlock.h:
      * rendering/mathml/RenderMathMLFraction.h:
      * rendering/mathml/RenderMathMLOperator.h:
      * rendering/style/BasicShapes.h:
      * rendering/svg/RenderSVGModelObject.h:
      * rendering/svg/RenderSVGShape.h:
      * svg/SVGAnimatedBoolean.h:
      * svg/SVGAnimatedString.h:
      * svg/SVGAnimatedTransformList.h:
      * svg/SVGDocument.h:
      * svg/SVGElement.h:
      * svg/SVGElementInstance.h:
      * svg/SVGFontElement.h:
      * svg/SVGGElement.h:
      * svg/SVGGraphicsElement.h:
      * svg/SVGTransformable.h:
      * svg/properties/SVGAnimatedListPropertyTearOff.h:
      * svg/properties/SVGAnimatedPropertyMacros.h:
      * svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
      * svg/properties/SVGListPropertyTearOff.h:
      * svg/properties/SVGPropertyTearOff.h:
      * workers/WorkerGlobalScope.h:
      
      Source/WTF:
      
      * wtf/Compiler.h:
      * wtf/FilePrintStream.h:
      * wtf/StringPrintStream.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      70c60588
  4. 15 Aug, 2013 1 commit
    • fpizlo@apple.com's avatar
      Typed arrays should be rewritten · 0e0d9312
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=119064
      
      .: 
      
      Reviewed by Oliver Hunt.
      
      Automake work courtesy of Zan Dobersek <zdobersek@igalia.com>.
      
      * Source/autotools/symbols.filter:
      
      Source/JavaScriptCore: 
      
      Reviewed by Oliver Hunt.
              
      Typed arrays were previously deficient in several major ways:
              
      - They were defined separately in WebCore and in the jsc shell. The two
        implementations were different, and the jsc shell one was basically wrong.
        The WebCore one was quite awful, also.
              
      - Typed arrays were not visible to the JIT except through some weird hooks.
        For example, the JIT could not ask "what is the Structure that this typed
        array would have if I just allocated it from this global object". Also,
        it was difficult to wire any of the typed array intrinsics, because most
        of the functionality wasn't visible anywhere in JSC.
              
      - Typed array allocation was brain-dead. Allocating a typed array involved
        two JS objects, two GC weak handles, and three malloc allocations.
              
      - Neutering. It involved keeping tabs on all native views but not the view
        wrappers, even though the native views can autoneuter just by asking the
        buffer if it was neutered anytime you touch them; while the JS view
        wrappers are the ones that you really want to reach out to.
              
      - Common case-ing. Most typed arrays have one buffer and one view, and
        usually nobody touches the buffer. Yet we created all of that stuff
        anyway, using data structures optimized for the case where you had a lot
        of views.
              
      - Semantic goofs. Typed arrays should, in the future, behave like ES
        features rather than DOM features, for example when it comes to exceptions.
        Firefox already does this and I agree with them.
              
      This patch cleanses our codebase of these sins:
              
      - Typed arrays are almost entirely defined in JSC. Only the lifecycle
        management of native references to buffers is left to WebCore.
              
      - Allocating a typed array requires either two GC allocations (a cell and a
        copied storage vector) or one GC allocation, a malloc allocation, and a
        weak handle (a cell and a malloc'd storage vector, plus a finalizer for the
        latter). The latter is only used for oversize arrays. Remember that before
        it was 7 allocations no matter what.
              
      - Typed arrays require just 4 words of overhead: Structure*, Butterfly*,
        mode/length, void* vector. Before it was a lot more than that - remember,
        there were five additional objects that did absolutely nothing for anybody.
              
      - Native views aren't tracked by the buffer, or by the wrappers. They are
        transient. In the future we'll probably switch to not even having them be
        malloc'd.
              
      - Native array buffers have an efficient way of tracking all of their JS view
        wrappers, both for neutering, and for lifecycle management. The GC
        special-cases native array buffers. This saves a bunch of grief; for example
        it means that a JS view wrapper can refer to its buffer via the butterfly,
        which would be dead by the time we went to finalize.
              
      - Typed array semantics now match Firefox, which also happens to be where the
        standards are going. The discussion on webkit-dev seemed to confirm that
        Chrome is also heading in this direction. This includes making
        Uint8ClampedArray not a subtype of Uint8Array, and getting rid of
        ArrayBufferView as a JS-visible construct.
              
      This is up to a 10x speed-up on programs that allocate a lot of typed arrays.
      It's a 1% speed-up on Octane. It also opens up a bunch of possibilities for
      further typed array optimizations in the JSC JITs, including inlining typed
      array allocation, inlining more of the accessors, reducing the cost of type
      checks, etc.
              
      An additional property of this patch is that typed arrays are mostly
      implemented using templates. This deduplicates a bunch of code, but does mean
      that we need some hacks for exporting s_info's of template classes. See
      JSGenericTypedArrayView.h and JSTypedArrays.cpp. Those hacks are fairly
      low-impact compared to code duplication.
              
      Automake work courtesy of Zan Dobersek <zdobersek@igalia.com>.
      
      * CMakeLists.txt:
      * DerivedSources.make:
      * GNUmakefile.list.am:
      * JSCTypedArrayStubs.h: Removed.
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * bytecode/ByValInfo.h:
      (JSC::hasOptimizableIndexingForClassInfo):
      (JSC::jitArrayModeForClassInfo):
      (JSC::typedArrayTypeForJITArrayMode):
      * bytecode/SpeculatedType.cpp:
      (JSC::speculationFromClassInfo):
      * dfg/DFGArrayMode.cpp:
      (JSC::DFG::toTypedArrayType):
      * dfg/DFGArrayMode.h:
      (JSC::DFG::ArrayMode::typedArrayType):
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::checkArray):
      (JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
      (JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
      (JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
      (JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):
      (JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage):
      (JSC::DFG::SpeculativeJIT::compileGetArrayLength):
      * dfg/DFGSpeculativeJIT.h:
      * dfg/DFGSpeculativeJIT32_64.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * heap/CopyToken.h:
      * heap/DeferGC.h:
      (JSC::DeferGCForAWhile::DeferGCForAWhile):
      (JSC::DeferGCForAWhile::~DeferGCForAWhile):
      * heap/GCIncomingRefCounted.h: Added.
      (JSC::GCIncomingRefCounted::GCIncomingRefCounted):
      (JSC::GCIncomingRefCounted::~GCIncomingRefCounted):
      (JSC::GCIncomingRefCounted::numberOfIncomingReferences):
      (JSC::GCIncomingRefCounted::incomingReferenceAt):
      (JSC::GCIncomingRefCounted::singletonFlag):
      (JSC::GCIncomingRefCounted::hasVectorOfCells):
      (JSC::GCIncomingRefCounted::hasAnyIncoming):
      (JSC::GCIncomingRefCounted::hasSingleton):
      (JSC::GCIncomingRefCounted::singleton):
      (JSC::GCIncomingRefCounted::vectorOfCells):
      * heap/GCIncomingRefCountedInlines.h: Added.
      (JSC::::addIncomingReference):
      (JSC::::filterIncomingReferences):
      * heap/GCIncomingRefCountedSet.h: Added.
      (JSC::GCIncomingRefCountedSet::size):
      * heap/GCIncomingRefCountedSetInlines.h: Added.
      (JSC::::GCIncomingRefCountedSet):
      (JSC::::~GCIncomingRefCountedSet):
      (JSC::::addReference):
      (JSC::::sweep):
      (JSC::::removeAll):
      (JSC::::removeDead):
      * heap/Heap.cpp:
      (JSC::Heap::addReference):
      (JSC::Heap::extraSize):
      (JSC::Heap::size):
      (JSC::Heap::capacity):
      (JSC::Heap::collect):
      (JSC::Heap::decrementDeferralDepth):
      (JSC::Heap::decrementDeferralDepthAndGCIfNeeded):
      * heap/Heap.h:
      * interpreter/CallFrame.h:
      (JSC::ExecState::dataViewTable):
      * jit/JIT.h:
      * jit/JITPropertyAccess.cpp:
      (JSC::JIT::privateCompileGetByVal):
      (JSC::JIT::privateCompilePutByVal):
      (JSC::JIT::emitIntTypedArrayGetByVal):
      (JSC::JIT::emitFloatTypedArrayGetByVal):
      (JSC::JIT::emitIntTypedArrayPutByVal):
      (JSC::JIT::emitFloatTypedArrayPutByVal):
      * jsc.cpp:
      (GlobalObject::finishCreation):
      * runtime/ArrayBuffer.cpp:
      (JSC::ArrayBuffer::transfer):
      * runtime/ArrayBuffer.h:
      (JSC::ArrayBuffer::createAdopted):
      (JSC::ArrayBuffer::ArrayBuffer):
      (JSC::ArrayBuffer::gcSizeEstimateInBytes):
      (JSC::ArrayBuffer::pin):
      (JSC::ArrayBuffer::unpin):
      (JSC::ArrayBufferContents::tryAllocate):
      * runtime/ArrayBufferView.cpp:
      (JSC::ArrayBufferView::ArrayBufferView):
      (JSC::ArrayBufferView::~ArrayBufferView):
      (JSC::ArrayBufferView::setNeuterable):
      * runtime/ArrayBufferView.h:
      (JSC::ArrayBufferView::isNeutered):
      (JSC::ArrayBufferView::buffer):
      (JSC::ArrayBufferView::baseAddress):
      (JSC::ArrayBufferView::byteOffset):
      (JSC::ArrayBufferView::verifySubRange):
      (JSC::ArrayBufferView::clampOffsetAndNumElements):
      (JSC::ArrayBufferView::calculateOffsetAndLength):
      * runtime/ClassInfo.h:
      * runtime/CommonIdentifiers.h:
      * runtime/DataView.cpp: Added.
      (JSC::DataView::DataView):
      (JSC::DataView::create):
      (JSC::DataView::wrap):
      * runtime/DataView.h: Added.
      (JSC::DataView::byteLength):
      (JSC::DataView::getType):
      (JSC::DataView::get):
      (JSC::DataView::set):
      * runtime/Float32Array.h:
      * runtime/Float64Array.h:
      * runtime/GenericTypedArrayView.h: Added.
      (JSC::GenericTypedArrayView::data):
      (JSC::GenericTypedArrayView::set):
      (JSC::GenericTypedArrayView::setRange):
      (JSC::GenericTypedArrayView::zeroRange):
      (JSC::GenericTypedArrayView::zeroFill):
      (JSC::GenericTypedArrayView::length):
      (JSC::GenericTypedArrayView::byteLength):
      (JSC::GenericTypedArrayView::item):
      (JSC::GenericTypedArrayView::checkInboundData):
      (JSC::GenericTypedArrayView::getType):
      * runtime/GenericTypedArrayViewInlines.h: Added.
      (JSC::::GenericTypedArrayView):
      (JSC::::create):
      (JSC::::createUninitialized):
      (JSC::::subarray):
      (JSC::::wrap):
      * runtime/IndexingHeader.h:
      (JSC::IndexingHeader::arrayBuffer):
      (JSC::IndexingHeader::setArrayBuffer):
      * runtime/Int16Array.h:
      * runtime/Int32Array.h:
      * runtime/Int8Array.h:
      * runtime/JSArrayBuffer.cpp: Added.
      (JSC::JSArrayBuffer::JSArrayBuffer):
      (JSC::JSArrayBuffer::finishCreation):
      (JSC::JSArrayBuffer::create):
      (JSC::JSArrayBuffer::createStructure):
      (JSC::JSArrayBuffer::getOwnPropertySlot):
      (JSC::JSArrayBuffer::getOwnPropertyDescriptor):
      (JSC::JSArrayBuffer::put):
      (JSC::JSArrayBuffer::defineOwnProperty):
      (JSC::JSArrayBuffer::deleteProperty):
      (JSC::JSArrayBuffer::getOwnNonIndexPropertyNames):
      * runtime/JSArrayBuffer.h: Added.
      (JSC::JSArrayBuffer::impl):
      (JSC::toArrayBuffer):
      * runtime/JSArrayBufferConstructor.cpp: Added.
      (JSC::JSArrayBufferConstructor::JSArrayBufferConstructor):
      (JSC::JSArrayBufferConstructor::finishCreation):
      (JSC::JSArrayBufferConstructor::create):
      (JSC::JSArrayBufferConstructor::createStructure):
      (JSC::constructArrayBuffer):
      (JSC::JSArrayBufferConstructor::getConstructData):
      (JSC::JSArrayBufferConstructor::getCallData):
      * runtime/JSArrayBufferConstructor.h: Added.
      * runtime/JSArrayBufferPrototype.cpp: Added.
      (JSC::arrayBufferProtoFuncSlice):
      (JSC::JSArrayBufferPrototype::JSArrayBufferPrototype):
      (JSC::JSArrayBufferPrototype::finishCreation):
      (JSC::JSArrayBufferPrototype::create):
      (JSC::JSArrayBufferPrototype::createStructure):
      * runtime/JSArrayBufferPrototype.h: Added.
      * runtime/JSArrayBufferView.cpp: Added.
      (JSC::JSArrayBufferView::ConstructionContext::ConstructionContext):
      (JSC::JSArrayBufferView::JSArrayBufferView):
      (JSC::JSArrayBufferView::finishCreation):
      (JSC::JSArrayBufferView::getOwnPropertySlot):
      (JSC::JSArrayBufferView::getOwnPropertyDescriptor):
      (JSC::JSArrayBufferView::put):
      (JSC::JSArrayBufferView::defineOwnProperty):
      (JSC::JSArrayBufferView::deleteProperty):
      (JSC::JSArrayBufferView::getOwnNonIndexPropertyNames):
      (JSC::JSArrayBufferView::finalize):
      * runtime/JSArrayBufferView.h: Added.
      (JSC::JSArrayBufferView::sizeOf):
      (JSC::JSArrayBufferView::ConstructionContext::operator!):
      (JSC::JSArrayBufferView::ConstructionContext::structure):
      (JSC::JSArrayBufferView::ConstructionContext::vector):
      (JSC::JSArrayBufferView::ConstructionContext::length):
      (JSC::JSArrayBufferView::ConstructionContext::mode):
      (JSC::JSArrayBufferView::ConstructionContext::butterfly):
      (JSC::JSArrayBufferView::mode):
      (JSC::JSArrayBufferView::vector):
      (JSC::JSArrayBufferView::length):
      (JSC::JSArrayBufferView::offsetOfVector):
      (JSC::JSArrayBufferView::offsetOfLength):
      (JSC::JSArrayBufferView::offsetOfMode):
      * runtime/JSArrayBufferViewInlines.h: Added.
      (JSC::JSArrayBufferView::slowDownAndWasteMemoryIfNecessary):
      (JSC::JSArrayBufferView::buffer):
      (JSC::JSArrayBufferView::impl):
      (JSC::JSArrayBufferView::neuter):
      (JSC::JSArrayBufferView::byteOffset):
      * runtime/JSCell.cpp:
      (JSC::JSCell::slowDownAndWasteMemory):
      (JSC::JSCell::getTypedArrayImpl):
      * runtime/JSCell.h:
      * runtime/JSDataView.cpp: Added.
      (JSC::JSDataView::JSDataView):
      (JSC::JSDataView::create):
      (JSC::JSDataView::createUninitialized):
      (JSC::JSDataView::set):
      (JSC::JSDataView::typedImpl):
      (JSC::JSDataView::getOwnPropertySlot):
      (JSC::JSDataView::getOwnPropertyDescriptor):
      (JSC::JSDataView::slowDownAndWasteMemory):
      (JSC::JSDataView::getTypedArrayImpl):
      (JSC::JSDataView::createStructure):
      * runtime/JSDataView.h: Added.
      * runtime/JSDataViewPrototype.cpp: Added.
      (JSC::JSDataViewPrototype::JSDataViewPrototype):
      (JSC::JSDataViewPrototype::create):
      (JSC::JSDataViewPrototype::createStructure):
      (JSC::JSDataViewPrototype::getOwnPropertySlot):
      (JSC::JSDataViewPrototype::getOwnPropertyDescriptor):
      (JSC::getData):
      (JSC::setData):
      (JSC::dataViewProtoFuncGetInt8):
      (JSC::dataViewProtoFuncGetInt16):
      (JSC::dataViewProtoFuncGetInt32):
      (JSC::dataViewProtoFuncGetUint8):
      (JSC::dataViewProtoFuncGetUint16):
      (JSC::dataViewProtoFuncGetUint32):
      (JSC::dataViewProtoFuncGetFloat32):
      (JSC::dataViewProtoFuncGetFloat64):
      (JSC::dataViewProtoFuncSetInt8):
      (JSC::dataViewProtoFuncSetInt16):
      (JSC::dataViewProtoFuncSetInt32):
      (JSC::dataViewProtoFuncSetUint8):
      (JSC::dataViewProtoFuncSetUint16):
      (JSC::dataViewProtoFuncSetUint32):
      (JSC::dataViewProtoFuncSetFloat32):
      (JSC::dataViewProtoFuncSetFloat64):
      * runtime/JSDataViewPrototype.h: Added.
      * runtime/JSFloat32Array.h: Added.
      * runtime/JSFloat64Array.h: Added.
      * runtime/JSGenericTypedArrayView.h: Added.
      (JSC::JSGenericTypedArrayView::byteLength):
      (JSC::JSGenericTypedArrayView::byteSize):
      (JSC::JSGenericTypedArrayView::typedVector):
      (JSC::JSGenericTypedArrayView::canGetIndexQuickly):
      (JSC::JSGenericTypedArrayView::canSetIndexQuickly):
      (JSC::JSGenericTypedArrayView::getIndexQuicklyAsNativeValue):
      (JSC::JSGenericTypedArrayView::getIndexQuicklyAsDouble):
      (JSC::JSGenericTypedArrayView::getIndexQuickly):
      (JSC::JSGenericTypedArrayView::setIndexQuicklyToNativeValue):
      (JSC::JSGenericTypedArrayView::setIndexQuicklyToDouble):
      (JSC::JSGenericTypedArrayView::setIndexQuickly):
      (JSC::JSGenericTypedArrayView::canAccessRangeQuickly):
      (JSC::JSGenericTypedArrayView::typedImpl):
      (JSC::JSGenericTypedArrayView::createStructure):
      (JSC::JSGenericTypedArrayView::info):
      (JSC::toNativeTypedView):
      * runtime/JSGenericTypedArrayViewConstructor.h: Added.
      * runtime/JSGenericTypedArrayViewConstructorInlines.h: Added.
      (JSC::::JSGenericTypedArrayViewConstructor):
      (JSC::::finishCreation):
      (JSC::::create):
      (JSC::::createStructure):
      (JSC::constructGenericTypedArrayView):
      (JSC::::getConstructData):
      (JSC::::getCallData):
      * runtime/JSGenericTypedArrayViewInlines.h: Added.
      (JSC::::JSGenericTypedArrayView):
      (JSC::::create):
      (JSC::::createUninitialized):
      (JSC::::validateRange):
      (JSC::::setWithSpecificType):
      (JSC::::set):
      (JSC::::getOwnPropertySlot):
      (JSC::::getOwnPropertyDescriptor):
      (JSC::::put):
      (JSC::::defineOwnProperty):
      (JSC::::deleteProperty):
      (JSC::::getOwnPropertySlotByIndex):
      (JSC::::putByIndex):
      (JSC::::deletePropertyByIndex):
      (JSC::::getOwnNonIndexPropertyNames):
      (JSC::::getOwnPropertyNames):
      (JSC::::visitChildren):
      (JSC::::copyBackingStore):
      (JSC::::slowDownAndWasteMemory):
      (JSC::::getTypedArrayImpl):
      * runtime/JSGenericTypedArrayViewPrototype.h: Added.
      * runtime/JSGenericTypedArrayViewPrototypeInlines.h: Added.
      (JSC::genericTypedArrayViewProtoFuncSet):
      (JSC::genericTypedArrayViewProtoFuncSubarray):
      (JSC::::JSGenericTypedArrayViewPrototype):
      (JSC::::finishCreation):
      (JSC::::create):
      (JSC::::createStructure):
      * runtime/JSGlobalObject.cpp:
      (JSC::JSGlobalObject::reset):
      (JSC::JSGlobalObject::visitChildren):
      * runtime/JSGlobalObject.h:
      (JSC::JSGlobalObject::arrayBufferPrototype):
      (JSC::JSGlobalObject::arrayBufferStructure):
      (JSC::JSGlobalObject::typedArrayStructure):
      * runtime/JSInt16Array.h: Added.
      * runtime/JSInt32Array.h: Added.
      * runtime/JSInt8Array.h: Added.
      * runtime/JSTypedArrayConstructors.cpp: Added.
      * runtime/JSTypedArrayConstructors.h: Added.
      * runtime/JSTypedArrayPrototypes.cpp: Added.
      * runtime/JSTypedArrayPrototypes.h: Added.
      * runtime/JSTypedArrays.cpp: Added.
      * runtime/JSTypedArrays.h: Added.
      * runtime/JSUint16Array.h: Added.
      * runtime/JSUint32Array.h: Added.
      * runtime/JSUint8Array.h: Added.
      * runtime/JSUint8ClampedArray.h: Added.
      * runtime/Operations.h:
      * runtime/Options.h:
      * runtime/SimpleTypedArrayController.cpp: Added.
      (JSC::SimpleTypedArrayController::SimpleTypedArrayController):
      (JSC::SimpleTypedArrayController::~SimpleTypedArrayController):
      (JSC::SimpleTypedArrayController::toJS):
      * runtime/SimpleTypedArrayController.h: Added.
      * runtime/Structure.h:
      (JSC::Structure::couldHaveIndexingHeader):
      * runtime/StructureInlines.h:
      (JSC::Structure::hasIndexingHeader):
      * runtime/TypedArrayAdaptors.h: Added.
      (JSC::IntegralTypedArrayAdaptor::toNative):
      (JSC::IntegralTypedArrayAdaptor::toJSValue):
      (JSC::IntegralTypedArrayAdaptor::toDouble):
      (JSC::FloatTypedArrayAdaptor::toNative):
      (JSC::FloatTypedArrayAdaptor::toJSValue):
      (JSC::FloatTypedArrayAdaptor::toDouble):
      (JSC::Uint8ClampedAdaptor::toNative):
      (JSC::Uint8ClampedAdaptor::toJSValue):
      (JSC::Uint8ClampedAdaptor::toDouble):
      (JSC::Uint8ClampedAdaptor::clamp):
      * runtime/TypedArrayController.cpp: Added.
      (JSC::TypedArrayController::TypedArrayController):
      (JSC::TypedArrayController::~TypedArrayController):
      * runtime/TypedArrayController.h: Added.
      * runtime/TypedArrayDescriptor.h: Removed.
      * runtime/TypedArrayInlines.h: Added.
      * runtime/TypedArrayType.cpp: Added.
      (JSC::classInfoForType):
      (WTF::printInternal):
      * runtime/TypedArrayType.h: Added.
      (JSC::toIndex):
      (JSC::isTypedView):
      (JSC::elementSize):
      (JSC::isInt):
      (JSC::isFloat):
      (JSC::isSigned):
      (JSC::isClamped):
      * runtime/TypedArrays.h: Added.
      * runtime/Uint16Array.h:
      * runtime/Uint32Array.h:
      * runtime/Uint8Array.h:
      * runtime/Uint8ClampedArray.h:
      * runtime/VM.cpp:
      (JSC::VM::VM):
      (JSC::VM::~VM):
      * runtime/VM.h:
      
      Source/WebCore: 
      
      Reviewed by Oliver Hunt.
      
      Typed arrays are now implemented in JavaScriptCore, and WebCore is merely a
      client of them. There is only one layering violation: WebCore installs a
      WebCoreTypedArrayController on VM, which makes the
      ArrayBuffer<->JSArrayBuffer relationship resemble DOM wrappers. By default,
      JSC makes the ownership go one way; the JSArrayBuffer keeps the ArrayBuffer
      alive but if ArrayBuffer is kept alive from native code then the
      JSArrayByffer may die. WebCoreTypedArrayController will keep the
      JSArrayBuffer alive if the ArrayBuffer is in the opaque root set.
              
      To make non-JSDOMWrappers behave like DOM wrappers, a bunch of code is
      changed to make most references to wrappers refer to JSObject* rather than
      JSDOMWrapper*.
              
      Array buffer views are now transient; the JS array buffer view wrappers
      don't own them or keep them alive. This required a bunch of changes to make
      bindings code use RefPtr<ArrayBufferView> to hold onto their views.
              
      Also there is a bunch of new code to make JSC-provided array buffers and
      views obey the toJS/to<ClassName> idiom for wrapping and unwrapping.
              
      Finally, the DataView API is now completely different: the JSDataView
      provides the same user-visible JS API but using its own internal magic; the
      C++ code that uses DataView now uses a rather different API that is not
      aware of usual DOM semantics, since it's in JSC and not WebCore. It's
      equally useful for all of WebCore's purposes, but some code had to change
      to adapt the new conventions.
              
      Some tests have been changed or rebased due to changes in behavior, that
      bring us into conformance with where the standards are going and allow us to
      match Firefox behavior.
      
      Automake work and some additional GTK changes courtesy of
      Zan Dobersek <zdobersek@igalia.com>.
              
      Additional Qt changes courtesy of Arunprasad Rajkumar <arurajku@cisco.com>.
      
      * CMakeLists.txt:
      * DerivedSources.make:
      * ForwardingHeaders/runtime/DataView.h: Added.
      * ForwardingHeaders/runtime/JSArrayBuffer.h: Added.
      * ForwardingHeaders/runtime/JSArrayBufferView.h: Added.
      * ForwardingHeaders/runtime/JSDataView.h: Added.
      * ForwardingHeaders/runtime/JSTypedArrays.h: Added.
      * ForwardingHeaders/runtime/TypedArrayController.h: Added.
      * ForwardingHeaders/runtime/TypedArrayInlines.h: Added.
      * ForwardingHeaders/runtime/TypedArrays.h: Added.
      * GNUmakefile.list.am:
      * Modules/webaudio/RealtimeAnalyser.h:
      * Target.pri:
      * UseJSC.cmake:
      * WebCore.exp.in:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.xcodeproj/project.pbxproj:
      * bindings/js/DOMWrapperWorld.h:
      * bindings/js/JSArrayBufferCustom.cpp: Removed.
      * bindings/js/JSArrayBufferViewHelper.h: Removed.
      * bindings/js/JSAudioContextCustom.cpp:
      * bindings/js/JSBindingsAllInOne.cpp:
      * bindings/js/JSBlobCustom.cpp:
      * bindings/js/JSCSSRuleCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSCSSValueCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSCryptoCustom.cpp:
      (WebCore::JSCrypto::getRandomValues):
      * bindings/js/JSDOMBinding.h:
      (WebCore::wrapperOwner):
      (WebCore::wrapperContext):
      (WebCore::getInlineCachedWrapper):
      (WebCore::setInlineCachedWrapper):
      (WebCore::clearInlineCachedWrapper):
      (WebCore::getCachedWrapper):
      (WebCore::cacheWrapper):
      (WebCore::uncacheWrapper):
      (WebCore::wrap):
      (WebCore::toJS):
      (WebCore::toArrayBufferView):
      (WebCore::toInt8Array):
      (WebCore::toInt16Array):
      (WebCore::toInt32Array):
      (WebCore::toUint8Array):
      (WebCore::toUint8ClampedArray):
      (WebCore::toUint16Array):
      (WebCore::toUint32Array):
      (WebCore::toFloat32Array):
      (WebCore::toFloat64Array):
      (WebCore::toDataView):
      * bindings/js/JSDataViewCustom.cpp: Removed.
      * bindings/js/JSDictionary.cpp:
      * bindings/js/JSDictionary.h:
      * bindings/js/JSDocumentCustom.cpp:
      (WebCore::JSDocument::location):
      (WebCore::toJS):
      * bindings/js/JSEventCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSFileReaderCustom.cpp:
      * bindings/js/JSHTMLCollectionCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSHTMLTemplateElementCustom.cpp:
      (WebCore::JSHTMLTemplateElement::content):
      * bindings/js/JSImageDataCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSInjectedScriptHostCustom.cpp:
      * bindings/js/JSMessageEventCustom.cpp:
      * bindings/js/JSMessagePortCustom.cpp:
      * bindings/js/JSSVGPathSegCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSStyleSheetCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSTrackCustom.cpp:
      (WebCore::toJS):
      * bindings/js/JSWebGLRenderingContextCustom.cpp:
      * bindings/js/JSXMLHttpRequestCustom.cpp:
      (WebCore::JSXMLHttpRequest::send):
      * bindings/js/SerializedScriptValue.cpp:
      (WebCore::SerializedScriptValue::transferArrayBuffers):
      * bindings/js/WebCoreJSClientData.h:
      (WebCore::initNormalWorldClientData):
      * bindings/js/WebCoreTypedArrayController.cpp: Added.
      (WebCore::WebCoreTypedArrayController::WebCoreTypedArrayController):
      (WebCore::WebCoreTypedArrayController::~WebCoreTypedArrayController):
      (WebCore::WebCoreTypedArrayController::toJS):
      (WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots):
      (WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::finalize):
      * bindings/js/WebCoreTypedArrayController.h: Added.
      (WebCore::WebCoreTypedArrayController::wrapperOwner):
      * bindings/scripts/CodeGenerator.pm:
      (ForAllParents):
      (ParseInterface):
      (SkipIncludeHeader):
      (IsTypedArrayType):
      (IsWrapperType):
      * bindings/scripts/CodeGeneratorJS.pm:
      (AddIncludesForType):
      (GenerateHeader):
      (GenerateImplementation):
      (GenerateParametersCheck):
      (GetNativeType):
      (JSValueToNative):
      (NativeToJSValue):
      (GenerateConstructorDefinition):
      (GenerateConstructorHelperMethods):
      * fileapi/WebKitBlobBuilder.cpp:
      (WebCore::BlobBuilder::append):
      * fileapi/WebKitBlobBuilder.h:
      * html/canvas/ArrayBuffer.idl: Removed.
      * html/canvas/ArrayBufferView.idl: Removed.
      * html/canvas/DataView.cpp: Removed.
      * html/canvas/DataView.h: Removed.
      * html/canvas/DataView.idl: Removed.
      * html/canvas/Float32Array.idl: Removed.
      * html/canvas/Float64Array.idl: Removed.
      * html/canvas/Int16Array.idl: Removed.
      * html/canvas/Int32Array.idl: Removed.
      * html/canvas/Int8Array.idl: Removed.
      * html/canvas/Uint16Array.idl: Removed.
      * html/canvas/Uint32Array.idl: Removed.
      * html/canvas/Uint8Array.idl: Removed.
      * html/canvas/Uint8ClampedArray.idl: Removed.
      * html/canvas/WebGLRenderingContext.cpp:
      (WebCore::WebGLRenderingContext::readPixels):
      (WebCore::WebGLRenderingContext::validateTexFuncData):
      * page/Crypto.cpp:
      * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
      (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
      (WebCore::MediaPlayerPrivateAVFoundationObjC::extractKeyURIKeyIDAndCertificateFromInitData):
      * platform/graphics/filters/FECustomFilter.h:
      * platform/graphics/filters/FEGaussianBlur.cpp:
      * platform/graphics/filters/FilterEffect.cpp:
      * testing/MockCDM.cpp:
      
      Source/WebKit2: 
      
      Reviewed by Oliver Hunt.
              
      You don't need to include JSUint8Array anymore if you just want to
      unwrap one; JSDOMBinding gives you all of the things you need.
      
      * WebProcess/InjectedBundle/InjectedBundle.cpp:
      
      Source/WTF: 
      
      Reviewed by Oliver Hunt.
              
      - Added the notion of a reference counted object that can be marked Deferred,
        which is like a special-purpose upref.
              
      - Added a common byte flipper.
      
      Automake work courtesy of Zan Dobersek <zdobersek@igalia.com>.
      
      * GNUmakefile.list.am:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/DeferrableRefCounted.h: Added.
      (WTF::DeferrableRefCountedBase::ref):
      (WTF::DeferrableRefCountedBase::hasOneRef):
      (WTF::DeferrableRefCountedBase::refCount):
      (WTF::DeferrableRefCountedBase::isDeferred):
      (WTF::DeferrableRefCountedBase::DeferrableRefCountedBase):
      (WTF::DeferrableRefCountedBase::~DeferrableRefCountedBase):
      (WTF::DeferrableRefCountedBase::derefBase):
      (WTF::DeferrableRefCountedBase::setIsDeferredBase):
      (WTF::DeferrableRefCounted::deref):
      (WTF::DeferrableRefCounted::setIsDeferred):
      (WTF::DeferrableRefCounted::DeferrableRefCounted):
      (WTF::DeferrableRefCounted::~DeferrableRefCounted):
      * wtf/FlipBytes.h: Added.
      (WTF::needToFlipBytesIfLittleEndian):
      (WTF::flipBytes):
      (WTF::flipBytesIfLittleEndian):
      
      LayoutTests: 
      
      Reviewed by Oliver Hunt.
      
      * fast/canvas/webgl/array-set-invalid-arguments-expected.txt:
      * fast/canvas/webgl/array-set-out-of-bounds-expected.txt:
      * fast/canvas/webgl/array-unit-tests-expected.txt:
      * fast/canvas/webgl/array-unit-tests.html:
      * fast/canvas/webgl/data-view-crash-expected.txt:
      * fast/canvas/webgl/script-tests/arraybuffer-transfer-of-control.js:
      (checkView):
      * fast/dom/call-a-constructor-as-a-function-expected.txt:
      * fast/dom/call-a-constructor-as-a-function.html:
      * fast/js/constructor-length.html:
      * fast/js/global-constructors-attributes-dedicated-worker-expected.txt:
      * fast/js/global-constructors-attributes-expected.txt:
      * fast/js/global-constructors-attributes-shared-worker-expected.txt:
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-expected.txt: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-huge-long-lived-expected.txt: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-huge-long-lived.html: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-large-long-lived-expected.txt: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-large-long-lived.html: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-long-lived-buffer-expected.txt: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-long-lived-buffer.html: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-long-lived-expected.txt: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc-long-lived.html: Added.
      * fast/js/regress/ArrayBuffer-Int8Array-alloc.html: Added.
      * fast/js/regress/Int32Array-Int8Array-view-alloc-expected.txt: Added.
      * fast/js/regress/Int32Array-Int8Array-view-alloc.html: Added.
      * fast/js/regress/Int32Array-alloc-expected.txt: Added.
      * fast/js/regress/Int32Array-alloc-huge-expected.txt: Added.
      * fast/js/regress/Int32Array-alloc-huge-long-lived-expected.txt: Added.
      * fast/js/regress/Int32Array-alloc-huge-long-lived.html: Added.
      * fast/js/regress/Int32Array-alloc-huge.html: Added.
      * fast/js/regress/Int32Array-alloc-large-expected.txt: Added.
      * fast/js/regress/Int32Array-alloc-large-long-lived-expected.txt: Added.
      * fast/js/regress/Int32Array-alloc-large-long-lived.html: Added.
      * fast/js/regress/Int32Array-alloc-large.html: Added.
      * fast/js/regress/Int32Array-alloc-long-lived-expected.txt: Added.
      * fast/js/regress/Int32Array-alloc-long-lived.html: Added.
      * fast/js/regress/Int32Array-alloc.html: Added.
      * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc-huge-long-lived.js: Added.
      * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc-large-long-lived.js: Added.
      * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc-long-lived-buffer.js: Added.
      * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc-long-lived.js: Added.
      * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc.js: Added.
      * fast/js/regress/script-tests/Int32Array-Int8Array-view-alloc.js: Added.
      * fast/js/regress/script-tests/Int32Array-alloc-huge-long-lived.js: Added.
      * fast/js/regress/script-tests/Int32Array-alloc-huge.js: Added.
      * fast/js/regress/script-tests/Int32Array-alloc-large-long-lived.js: Added.
      * fast/js/regress/script-tests/Int32Array-alloc-large.js: Added.
      * fast/js/regress/script-tests/Int32Array-alloc-long-lived.js: Added.
      * fast/js/regress/script-tests/Int32Array-alloc.js: Added.
      * platform/mac/fast/js/constructor-length-expected.txt:
      * webgl/resources/webgl_test_files/conformance/typedarrays/array-unit-tests.html:
      * webgl/resources/webgl_test_files/conformance/typedarrays/data-view-test.html:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154127 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0e0d9312