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. 30 Oct, 2013 1 commit
    • fpizlo@apple.com's avatar
      Add InvalidationPoints to the DFG and use them for all watchpoints · d84425d1
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123472
      
      Reviewed by Mark Hahnenberg.
              
      This makes a fundamental change to how watchpoints work in the DFG.
              
      Previously, a watchpoint was an instruction whose execution semantics were something
      like:
              
          if (watchpoint->invalidated)
              exit
              
      We would implement this without any branch by using jump replacement.
              
      This is a very good optimization. But it's a bit awkward once you get a lot of
      watchpoints: semantically we will have lots of these branches in the code, which the
      compiler needs to reason about even though they don't actually result in any emitted
      code.
              
      Separately, we also had a mechanism for jettisoning a CodeBlock. This mechanism would
      be invoked if a CodeBlock exited a lot. It would ensure that a CodeBlock wouldn't be
      called into again, but it would do nothing for CodeBlocks that were already on the
      stack.
              
      This change flips jettisoning and watchpoint invalidation on their heads. Now, the jump
      replacement has nothing to do with watchpoints; instead it's something that happens if
      you ever jettison a CodeBlock. Jump replacement is now an all-or-nothing operation over
      all of the potential call-return safe-exit-points in a CodeBlock. We call these
      "InvalidationPoint"s. A watchpoint instruction is now "lowered" by having the DFG
      collect all of the watchpoint sets that the CodeBlock cares about, and then registering
      a CodeBlockJettisoningWatchpoint with all of them. That is, if the watchpoint fires, it
      jettisons the CodeBlock, which in turn ensures that the CodeBlock can't be called into
      (because the entrypoint now points to baseline code) and can't be returned into
      (because returning exits to baseline before the next bytecode instruction).
              
      This will allow for a sensible lowering of watchpoints to LLVM IR. It will also allow
      for jettison() to be used effectively for things like breakpointing and single-stepping
      in the debugger.
              
      Well, basically, this mechanism just takes us into the HotSpot-style world where anyone
      can, at any time and for any reason, request that an optimized CodeBlock is rendered
      immediately invalid. You can use this for many cool things, I'm sure.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * assembler/AbstractMacroAssembler.h:
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::jettison):
      * bytecode/CodeBlock.h:
      * bytecode/CodeBlockJettisoningWatchpoint.cpp: Added.
      (JSC::CodeBlockJettisoningWatchpoint::fireInternal):
      * bytecode/CodeBlockJettisoningWatchpoint.h: Added.
      (JSC::CodeBlockJettisoningWatchpoint::CodeBlockJettisoningWatchpoint):
      * bytecode/ExitKind.cpp:
      (JSC::exitKindToString):
      * bytecode/ExitKind.h:
      * bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp: Added.
      (JSC::ProfiledCodeBlockJettisoningWatchpoint::fireInternal):
      * bytecode/ProfiledCodeBlockJettisoningWatchpoint.h: Added.
      (JSC::ProfiledCodeBlockJettisoningWatchpoint::ProfiledCodeBlockJettisoningWatchpoint):
      * dfg/DFGAbstractHeap.h:
      * dfg/DFGAbstractInterpreterInlines.h:
      (JSC::DFG::::executeEffects):
      * dfg/DFGClobberize.cpp:
      (JSC::DFG::writesOverlap):
      * dfg/DFGClobberize.h:
      (JSC::DFG::clobberize):
      (JSC::DFG::AbstractHeapOverlaps::AbstractHeapOverlaps):
      (JSC::DFG::AbstractHeapOverlaps::operator()):
      (JSC::DFG::AbstractHeapOverlaps::result):
      * dfg/DFGCommonData.cpp:
      (JSC::DFG::CommonData::invalidate):
      * dfg/DFGCommonData.h:
      (JSC::DFG::CommonData::CommonData):
      * dfg/DFGDesiredWatchpoints.cpp:
      (JSC::DFG::DesiredWatchpoints::addLazily):
      (JSC::DFG::DesiredWatchpoints::reallyAdd):
      * dfg/DFGDesiredWatchpoints.h:
      (JSC::DFG::WatchpointForGenericWatchpointSet::WatchpointForGenericWatchpointSet):
      (JSC::DFG::GenericDesiredWatchpoints::addLazily):
      (JSC::DFG::GenericDesiredWatchpoints::reallyAdd):
      (JSC::DFG::GenericDesiredWatchpoints::areStillValid):
      * dfg/DFGFixupPhase.cpp:
      (JSC::DFG::FixupPhase::fixupNode):
      * dfg/DFGInvalidationPointInjectionPhase.cpp: Added.
      (JSC::DFG::InvalidationPointInjectionPhase::InvalidationPointInjectionPhase):
      (JSC::DFG::InvalidationPointInjectionPhase::run):
      (JSC::DFG::InvalidationPointInjectionPhase::handle):
      (JSC::DFG::InvalidationPointInjectionPhase::insertInvalidationCheck):
      (JSC::DFG::performInvalidationPointInjection):
      * dfg/DFGInvalidationPointInjectionPhase.h: Added.
      * dfg/DFGJITCode.h:
      * dfg/DFGJITCompiler.cpp:
      (JSC::DFG::JITCompiler::linkOSRExits):
      (JSC::DFG::JITCompiler::link):
      * dfg/DFGJITCompiler.h:
      * dfg/DFGJumpReplacement.cpp: Added.
      (JSC::DFG::JumpReplacement::fire):
      * dfg/DFGJumpReplacement.h: Added.
      (JSC::DFG::JumpReplacement::JumpReplacement):
      * dfg/DFGNodeType.h:
      * dfg/DFGOSRExitCompilationInfo.h:
      * dfg/DFGOperations.cpp:
      * dfg/DFGPlan.cpp:
      (JSC::DFG::Plan::compileInThreadImpl):
      (JSC::DFG::Plan::reallyAdd):
      * dfg/DFGPredictionPropagationPhase.cpp:
      (JSC::DFG::PredictionPropagationPhase::propagate):
      * dfg/DFGSafeToExecute.h:
      (JSC::DFG::safeToExecute):
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::emitInvalidationPoint):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
      (JSC::DFG::SpeculativeJIT::compileGetByValOnString):
      * dfg/DFGSpeculativeJIT.h:
      (JSC::DFG::SpeculativeJIT::masqueradesAsUndefinedWatchpointIsStillValid):
      (JSC::DFG::SpeculativeJIT::speculateStringObjectForStructure):
      * dfg/DFGSpeculativeJIT32_64.cpp:
      (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
      (JSC::DFG::SpeculativeJIT::compileObjectEquality):
      (JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
      (JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
      (JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
      (JSC::DFG::SpeculativeJIT::compileObjectEquality):
      (JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
      (JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
      (JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGWatchpointCollectionPhase.cpp: Added.
      (JSC::DFG::WatchpointCollectionPhase::WatchpointCollectionPhase):
      (JSC::DFG::WatchpointCollectionPhase::run):
      (JSC::DFG::WatchpointCollectionPhase::handle):
      (JSC::DFG::WatchpointCollectionPhase::handleEdge):
      (JSC::DFG::WatchpointCollectionPhase::handleMasqueradesAsUndefined):
      (JSC::DFG::WatchpointCollectionPhase::handleStringGetByVal):
      (JSC::DFG::WatchpointCollectionPhase::addLazily):
      (JSC::DFG::WatchpointCollectionPhase::globalObject):
      (JSC::DFG::performWatchpointCollection):
      * dfg/DFGWatchpointCollectionPhase.h: Added.
      * ftl/FTLCapabilities.cpp:
      (JSC::FTL::canCompile):
      * ftl/FTLLowerDFGToLLVM.cpp:
      (JSC::FTL::LowerDFGToLLVM::compileNode):
      (JSC::FTL::LowerDFGToLLVM::compileStructureTransitionWatchpoint):
      (JSC::FTL::LowerDFGToLLVM::compileGetByVal):
      (JSC::FTL::LowerDFGToLLVM::compileGlobalVarWatchpoint):
      (JSC::FTL::LowerDFGToLLVM::compileCompareEqConstant):
      (JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
      (JSC::FTL::LowerDFGToLLVM::compileCompareStrictEqConstant):
      (JSC::FTL::LowerDFGToLLVM::compileInvalidationPoint):
      (JSC::FTL::LowerDFGToLLVM::equalNullOrUndefined):
      (JSC::FTL::LowerDFGToLLVM::speculateNonNullObject):
      * jit/JITOperations.cpp:
      * jit/JumpReplacementWatchpoint.cpp: Removed.
      * jit/JumpReplacementWatchpoint.h: Removed.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158304 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d84425d1
  3. 29 Jan, 2013 1 commit
    • fpizlo@apple.com's avatar
      DFG should not use a graph that is a vector, Nodes shouldn't move after... · 8ff092fc
      fpizlo@apple.com authored
      DFG should not use a graph that is a vector, Nodes shouldn't move after allocation, and we should always refer to nodes by Node*
      https://bugs.webkit.org/show_bug.cgi?id=106868
      
      Reviewed by Oliver Hunt.
              
      This adds a pool allocator for Nodes, and uses that instead of a Vector. Changes all
      uses of Node& and NodeIndex to be simply Node*. Nodes no longer have an index except
      for debugging (Node::index(), which is not guaranteed to be O(1)).
              
      1% speed-up on SunSpider, presumably because this improves compile times.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * bytecode/DataFormat.h:
      (JSC::dataFormatToString):
      * dfg/DFGAbstractState.cpp:
      (JSC::DFG::AbstractState::initialize):
      (JSC::DFG::AbstractState::booleanResult):
      (JSC::DFG::AbstractState::execute):
      (JSC::DFG::AbstractState::mergeStateAtTail):
      (JSC::DFG::AbstractState::mergeToSuccessors):
      (JSC::DFG::AbstractState::mergeVariableBetweenBlocks):
      (JSC::DFG::AbstractState::dump):
      * dfg/DFGAbstractState.h:
      (DFG):
      (JSC::DFG::AbstractState::forNode):
      (AbstractState):
      (JSC::DFG::AbstractState::speculateInt32Unary):
      (JSC::DFG::AbstractState::speculateNumberUnary):
      (JSC::DFG::AbstractState::speculateBooleanUnary):
      (JSC::DFG::AbstractState::speculateInt32Binary):
      (JSC::DFG::AbstractState::speculateNumberBinary):
      (JSC::DFG::AbstractState::trySetConstant):
      * dfg/DFGAbstractValue.h:
      (AbstractValue):
      * dfg/DFGAdjacencyList.h:
      (JSC::DFG::AdjacencyList::AdjacencyList):
      (JSC::DFG::AdjacencyList::initialize):
      * dfg/DFGAllocator.h: Added.
      (DFG):
      (Allocator):
      (JSC::DFG::Allocator::Region::size):
      (JSC::DFG::Allocator::Region::headerSize):
      (JSC::DFG::Allocator::Region::numberOfThingsPerRegion):
      (JSC::DFG::Allocator::Region::data):
      (JSC::DFG::Allocator::Region::isInThisRegion):
      (JSC::DFG::Allocator::Region::regionFor):
      (Region):
      (JSC::DFG::::Allocator):
      (JSC::DFG::::~Allocator):
      (JSC::DFG::::allocate):
      (JSC::DFG::::free):
      (JSC::DFG::::freeAll):
      (JSC::DFG::::reset):
      (JSC::DFG::::indexOf):
      (JSC::DFG::::allocatorOf):
      (JSC::DFG::::bumpAllocate):
      (JSC::DFG::::freeListAllocate):
      (JSC::DFG::::allocateSlow):
      (JSC::DFG::::freeRegionsStartingAt):
      (JSC::DFG::::startBumpingIn):
      * dfg/DFGArgumentsSimplificationPhase.cpp:
      (JSC::DFG::ArgumentsSimplificationPhase::run):
      (JSC::DFG::ArgumentsSimplificationPhase::observeBadArgumentsUse):
      (JSC::DFG::ArgumentsSimplificationPhase::observeBadArgumentsUses):
      (JSC::DFG::ArgumentsSimplificationPhase::observeProperArgumentsUse):
      (JSC::DFG::ArgumentsSimplificationPhase::isOKToOptimize):
      (JSC::DFG::ArgumentsSimplificationPhase::removeArgumentsReferencingPhantomChild):
      * dfg/DFGArrayMode.cpp:
      (JSC::DFG::ArrayMode::originalArrayStructure):
      (JSC::DFG::ArrayMode::alreadyChecked):
      * dfg/DFGArrayMode.h:
      (ArrayMode):
      * dfg/DFGArrayifySlowPathGenerator.h:
      (JSC::DFG::ArrayifySlowPathGenerator::ArrayifySlowPathGenerator):
      * dfg/DFGBasicBlock.h:
      (JSC::DFG::BasicBlock::node):
      (JSC::DFG::BasicBlock::isInPhis):
      (JSC::DFG::BasicBlock::isInBlock):
      (BasicBlock):
      * dfg/DFGBasicBlockInlines.h:
      (DFG):
      * dfg/DFGByteCodeParser.cpp:
      (ByteCodeParser):
      (JSC::DFG::ByteCodeParser::getDirect):
      (JSC::DFG::ByteCodeParser::get):
      (JSC::DFG::ByteCodeParser::setDirect):
      (JSC::DFG::ByteCodeParser::set):
      (JSC::DFG::ByteCodeParser::setPair):
      (JSC::DFG::ByteCodeParser::injectLazyOperandSpeculation):
      (JSC::DFG::ByteCodeParser::getLocal):
      (JSC::DFG::ByteCodeParser::setLocal):
      (JSC::DFG::ByteCodeParser::getArgument):
      (JSC::DFG::ByteCodeParser::setArgument):
      (JSC::DFG::ByteCodeParser::flushDirect):
      (JSC::DFG::ByteCodeParser::getToInt32):
      (JSC::DFG::ByteCodeParser::toInt32):
      (JSC::DFG::ByteCodeParser::getJSConstantForValue):
      (JSC::DFG::ByteCodeParser::getJSConstant):
      (JSC::DFG::ByteCodeParser::getCallee):
      (JSC::DFG::ByteCodeParser::getThis):
      (JSC::DFG::ByteCodeParser::setThis):
      (JSC::DFG::ByteCodeParser::isJSConstant):
      (JSC::DFG::ByteCodeParser::isInt32Constant):
      (JSC::DFG::ByteCodeParser::valueOfJSConstant):
      (JSC::DFG::ByteCodeParser::valueOfInt32Constant):
      (JSC::DFG::ByteCodeParser::constantUndefined):
      (JSC::DFG::ByteCodeParser::constantNull):
      (JSC::DFG::ByteCodeParser::one):
      (JSC::DFG::ByteCodeParser::constantNaN):
      (JSC::DFG::ByteCodeParser::cellConstant):
      (JSC::DFG::ByteCodeParser::addToGraph):
      (JSC::DFG::ByteCodeParser::insertPhiNode):
      (JSC::DFG::ByteCodeParser::addVarArgChild):
      (JSC::DFG::ByteCodeParser::addCall):
      (JSC::DFG::ByteCodeParser::addStructureTransitionCheck):
      (JSC::DFG::ByteCodeParser::getPredictionWithoutOSRExit):
      (JSC::DFG::ByteCodeParser::getPrediction):
      (JSC::DFG::ByteCodeParser::getArrayModeAndEmitChecks):
      (JSC::DFG::ByteCodeParser::makeSafe):
      (JSC::DFG::ByteCodeParser::makeDivSafe):
      (JSC::DFG::ByteCodeParser::ConstantRecord::ConstantRecord):
      (ConstantRecord):
      (JSC::DFG::ByteCodeParser::PhiStackEntry::PhiStackEntry):
      (PhiStackEntry):
      (JSC::DFG::ByteCodeParser::handleCall):
      (JSC::DFG::ByteCodeParser::emitFunctionChecks):
      (JSC::DFG::ByteCodeParser::handleInlining):
      (JSC::DFG::ByteCodeParser::setIntrinsicResult):
      (JSC::DFG::ByteCodeParser::handleMinMax):
      (JSC::DFG::ByteCodeParser::handleIntrinsic):
      (JSC::DFG::ByteCodeParser::handleGetByOffset):
      (JSC::DFG::ByteCodeParser::handleGetById):
      (JSC::DFG::ByteCodeParser::getScope):
      (JSC::DFG::ByteCodeParser::parseResolveOperations):
      (JSC::DFG::ByteCodeParser::parseBlock):
      (JSC::DFG::ByteCodeParser::processPhiStack):
      (JSC::DFG::ByteCodeParser::linkBlock):
      (JSC::DFG::ByteCodeParser::parseCodeBlock):
      (JSC::DFG::ByteCodeParser::parse):
      * dfg/DFGCFAPhase.cpp:
      (JSC::DFG::CFAPhase::performBlockCFA):
      * dfg/DFGCFGSimplificationPhase.cpp:
      (JSC::DFG::CFGSimplificationPhase::run):
      (JSC::DFG::CFGSimplificationPhase::keepOperandAlive):
      (JSC::DFG::CFGSimplificationPhase::fixPossibleGetLocal):
      (JSC::DFG::CFGSimplificationPhase::fixPhis):
      (JSC::DFG::CFGSimplificationPhase::removePotentiallyDeadPhiReference):
      (JSC::DFG::CFGSimplificationPhase::OperandSubstitution::OperandSubstitution):
      (JSC::DFG::CFGSimplificationPhase::OperandSubstitution::dump):
      (OperandSubstitution):
      (JSC::DFG::CFGSimplificationPhase::skipGetLocal):
      (JSC::DFG::CFGSimplificationPhase::recordNewTarget):
      (JSC::DFG::CFGSimplificationPhase::fixTailOperand):
      (JSC::DFG::CFGSimplificationPhase::mergeBlocks):
      * dfg/DFGCSEPhase.cpp:
      (JSC::DFG::CSEPhase::canonicalize):
      (JSC::DFG::CSEPhase::endIndexForPureCSE):
      (JSC::DFG::CSEPhase::pureCSE):
      (JSC::DFG::CSEPhase::constantCSE):
      (JSC::DFG::CSEPhase::weakConstantCSE):
      (JSC::DFG::CSEPhase::getCalleeLoadElimination):
      (JSC::DFG::CSEPhase::getArrayLengthElimination):
      (JSC::DFG::CSEPhase::globalVarLoadElimination):
      (JSC::DFG::CSEPhase::scopedVarLoadElimination):
      (JSC::DFG::CSEPhase::globalVarWatchpointElimination):
      (JSC::DFG::CSEPhase::globalVarStoreElimination):
      (JSC::DFG::CSEPhase::scopedVarStoreElimination):
      (JSC::DFG::CSEPhase::getByValLoadElimination):
      (JSC::DFG::CSEPhase::checkFunctionElimination):
      (JSC::DFG::CSEPhase::checkExecutableElimination):
      (JSC::DFG::CSEPhase::checkStructureElimination):
      (JSC::DFG::CSEPhase::structureTransitionWatchpointElimination):
      (JSC::DFG::CSEPhase::putStructureStoreElimination):
      (JSC::DFG::CSEPhase::getByOffsetLoadElimination):
      (JSC::DFG::CSEPhase::putByOffsetStoreElimination):
      (JSC::DFG::CSEPhase::getPropertyStorageLoadElimination):
      (JSC::DFG::CSEPhase::checkArrayElimination):
      (JSC::DFG::CSEPhase::getIndexedPropertyStorageLoadElimination):
      (JSC::DFG::CSEPhase::getMyScopeLoadElimination):
      (JSC::DFG::CSEPhase::getLocalLoadElimination):
      (JSC::DFG::CSEPhase::setLocalStoreElimination):
      (JSC::DFG::CSEPhase::performSubstitution):
      (JSC::DFG::CSEPhase::eliminateIrrelevantPhantomChildren):
      (JSC::DFG::CSEPhase::setReplacement):
      (JSC::DFG::CSEPhase::eliminate):
      (JSC::DFG::CSEPhase::performNodeCSE):
      (JSC::DFG::CSEPhase::performBlockCSE):
      (CSEPhase):
      * dfg/DFGCommon.cpp: Added.
      (DFG):
      (JSC::DFG::NodePointerTraits::dump):
      * dfg/DFGCommon.h:
      (DFG):
      (JSC::DFG::NodePointerTraits::defaultValue):
      (NodePointerTraits):
      (JSC::DFG::verboseCompilationEnabled):
      (JSC::DFG::shouldDumpGraphAtEachPhase):
      (JSC::DFG::validationEnabled):
      * dfg/DFGConstantFoldingPhase.cpp:
      (JSC::DFG::ConstantFoldingPhase::foldConstants):
      (JSC::DFG::ConstantFoldingPhase::isCapturedAtOrAfter):
      (JSC::DFG::ConstantFoldingPhase::addStructureTransitionCheck):
      (JSC::DFG::ConstantFoldingPhase::paintUnreachableCode):
      * dfg/DFGDisassembler.cpp:
      (JSC::DFG::Disassembler::Disassembler):
      (JSC::DFG::Disassembler::createDumpList):
      (JSC::DFG::Disassembler::dumpDisassembly):
      * dfg/DFGDisassembler.h:
      (JSC::DFG::Disassembler::setForNode):
      (Disassembler):
      * dfg/DFGDriver.cpp:
      (JSC::DFG::compile):
      * dfg/DFGEdge.cpp: Added.
      (DFG):
      (JSC::DFG::Edge::dump):
      * dfg/DFGEdge.h:
      (JSC::DFG::Edge::Edge):
      (JSC::DFG::Edge::node):
      (JSC::DFG::Edge::operator*):
      (JSC::DFG::Edge::operator->):
      (Edge):
      (JSC::DFG::Edge::setNode):
      (JSC::DFG::Edge::useKind):
      (JSC::DFG::Edge::setUseKind):
      (JSC::DFG::Edge::isSet):
      (JSC::DFG::Edge::shift):
      (JSC::DFG::Edge::makeWord):
      (JSC::DFG::operator==):
      (JSC::DFG::operator!=):
      * dfg/DFGFixupPhase.cpp:
      (JSC::DFG::FixupPhase::fixupBlock):
      (JSC::DFG::FixupPhase::fixupNode):
      (JSC::DFG::FixupPhase::checkArray):
      (JSC::DFG::FixupPhase::blessArrayOperation):
      (JSC::DFG::FixupPhase::fixIntEdge):
      (JSC::DFG::FixupPhase::fixDoubleEdge):
      (JSC::DFG::FixupPhase::injectInt32ToDoubleNode):
      (FixupPhase):
      * dfg/DFGGenerationInfo.h:
      (JSC::DFG::GenerationInfo::GenerationInfo):
      (JSC::DFG::GenerationInfo::initConstant):
      (JSC::DFG::GenerationInfo::initInteger):
      (JSC::DFG::GenerationInfo::initJSValue):
      (JSC::DFG::GenerationInfo::initCell):
      (JSC::DFG::GenerationInfo::initBoolean):
      (JSC::DFG::GenerationInfo::initDouble):
      (JSC::DFG::GenerationInfo::initStorage):
      (GenerationInfo):
      (JSC::DFG::GenerationInfo::node):
      (JSC::DFG::GenerationInfo::noticeOSRBirth):
      (JSC::DFG::GenerationInfo::use):
      (JSC::DFG::GenerationInfo::appendFill):
      (JSC::DFG::GenerationInfo::appendSpill):
      * dfg/DFGGraph.cpp:
      (JSC::DFG::Graph::Graph):
      (JSC::DFG::Graph::~Graph):
      (DFG):
      (JSC::DFG::Graph::dumpCodeOrigin):
      (JSC::DFG::Graph::amountOfNodeWhiteSpace):
      (JSC::DFG::Graph::printNodeWhiteSpace):
      (JSC::DFG::Graph::dump):
      (JSC::DFG::Graph::dumpBlockHeader):
      (JSC::DFG::Graph::refChildren):
      (JSC::DFG::Graph::derefChildren):
      (JSC::DFG::Graph::predictArgumentTypes):
      (JSC::DFG::Graph::collectGarbage):
      (JSC::DFG::Graph::determineReachability):
      (JSC::DFG::Graph::resetExitStates):
      * dfg/DFGGraph.h:
      (Graph):
      (JSC::DFG::Graph::ref):
      (JSC::DFG::Graph::deref):
      (JSC::DFG::Graph::changeChild):
      (JSC::DFG::Graph::compareAndSwap):
      (JSC::DFG::Graph::clearAndDerefChild):
      (JSC::DFG::Graph::clearAndDerefChild1):
      (JSC::DFG::Graph::clearAndDerefChild2):
      (JSC::DFG::Graph::clearAndDerefChild3):
      (JSC::DFG::Graph::convertToConstant):
      (JSC::DFG::Graph::getJSConstantSpeculation):
      (JSC::DFG::Graph::addSpeculationMode):
      (JSC::DFG::Graph::valueAddSpeculationMode):
      (JSC::DFG::Graph::arithAddSpeculationMode):
      (JSC::DFG::Graph::addShouldSpeculateInteger):
      (JSC::DFG::Graph::mulShouldSpeculateInteger):
      (JSC::DFG::Graph::negateShouldSpeculateInteger):
      (JSC::DFG::Graph::isConstant):
      (JSC::DFG::Graph::isJSConstant):
      (JSC::DFG::Graph::isInt32Constant):
      (JSC::DFG::Graph::isDoubleConstant):
      (JSC::DFG::Graph::isNumberConstant):
      (JSC::DFG::Graph::isBooleanConstant):
      (JSC::DFG::Graph::isCellConstant):
      (JSC::DFG::Graph::isFunctionConstant):
      (JSC::DFG::Graph::isInternalFunctionConstant):
      (JSC::DFG::Graph::valueOfJSConstant):
      (JSC::DFG::Graph::valueOfInt32Constant):
      (JSC::DFG::Graph::valueOfNumberConstant):
      (JSC::DFG::Graph::valueOfBooleanConstant):
      (JSC::DFG::Graph::valueOfFunctionConstant):
      (JSC::DFG::Graph::valueProfileFor):
      (JSC::DFG::Graph::methodOfGettingAValueProfileFor):
      (JSC::DFG::Graph::numSuccessors):
      (JSC::DFG::Graph::successor):
      (JSC::DFG::Graph::successorForCondition):
      (JSC::DFG::Graph::isPredictedNumerical):
      (JSC::DFG::Graph::byValIsPure):
      (JSC::DFG::Graph::clobbersWorld):
      (JSC::DFG::Graph::varArgNumChildren):
      (JSC::DFG::Graph::numChildren):
      (JSC::DFG::Graph::varArgChild):
      (JSC::DFG::Graph::child):
      (JSC::DFG::Graph::voteNode):
      (JSC::DFG::Graph::voteChildren):
      (JSC::DFG::Graph::substitute):
      (JSC::DFG::Graph::substituteGetLocal):
      (JSC::DFG::Graph::addImmediateShouldSpeculateInteger):
      (JSC::DFG::Graph::mulImmediateShouldSpeculateInteger):
      * dfg/DFGInsertionSet.h:
      (JSC::DFG::Insertion::Insertion):
      (JSC::DFG::Insertion::element):
      (Insertion):
      (JSC::DFG::InsertionSet::insert):
      (InsertionSet):
      * dfg/DFGJITCompiler.cpp:
      * dfg/DFGJITCompiler.h:
      (JSC::DFG::JITCompiler::setForNode):
      (JSC::DFG::JITCompiler::addressOfDoubleConstant):
      (JSC::DFG::JITCompiler::noticeOSREntry):
      * dfg/DFGLongLivedState.cpp: Added.
      (DFG):
      (JSC::DFG::LongLivedState::LongLivedState):
      (JSC::DFG::LongLivedState::~LongLivedState):
      (JSC::DFG::LongLivedState::shrinkToFit):
      * dfg/DFGLongLivedState.h: Added.
      (DFG):
      (LongLivedState):
      * dfg/DFGMinifiedID.h:
      (JSC::DFG::MinifiedID::MinifiedID):
      (JSC::DFG::MinifiedID::node):
      * dfg/DFGMinifiedNode.cpp:
      (JSC::DFG::MinifiedNode::fromNode):
      * dfg/DFGMinifiedNode.h:
      (MinifiedNode):
      * dfg/DFGNode.cpp: Added.
      (DFG):
      (JSC::DFG::Node::index):
      (WTF):
      (WTF::printInternal):
      * dfg/DFGNode.h:
      (DFG):
      (JSC::DFG::Node::Node):
      (Node):
      (JSC::DFG::Node::convertToGetByOffset):
      (JSC::DFG::Node::convertToPutByOffset):
      (JSC::DFG::Node::ref):
      (JSC::DFG::Node::shouldSpeculateInteger):
      (JSC::DFG::Node::shouldSpeculateIntegerForArithmetic):
      (JSC::DFG::Node::shouldSpeculateIntegerExpectingDefined):
      (JSC::DFG::Node::shouldSpeculateDoubleForArithmetic):
      (JSC::DFG::Node::shouldSpeculateNumber):
      (JSC::DFG::Node::shouldSpeculateNumberExpectingDefined):
      (JSC::DFG::Node::shouldSpeculateFinalObject):
      (JSC::DFG::Node::shouldSpeculateArray):
      (JSC::DFG::Node::dumpChildren):
      (WTF):
      * dfg/DFGNodeAllocator.h: Added.
      (DFG):
      (operator new ):
      * dfg/DFGOSRExit.cpp:
      (JSC::DFG::OSRExit::OSRExit):
      * dfg/DFGOSRExit.h:
      (OSRExit):
      (SpeculationFailureDebugInfo):
      * dfg/DFGOSRExitCompiler.cpp:
      * dfg/DFGOSRExitCompiler32_64.cpp:
      (JSC::DFG::OSRExitCompiler::compileExit):
      * dfg/DFGOSRExitCompiler64.cpp:
      (JSC::DFG::OSRExitCompiler::compileExit):
      * dfg/DFGOperations.cpp:
      * dfg/DFGPhase.cpp:
      (DFG):
      (JSC::DFG::Phase::beginPhase):
      (JSC::DFG::Phase::endPhase):
      * dfg/DFGPhase.h:
      (Phase):
      (JSC::DFG::runAndLog):
      * dfg/DFGPredictionPropagationPhase.cpp:
      (JSC::DFG::PredictionPropagationPhase::setPrediction):
      (JSC::DFG::PredictionPropagationPhase::mergePrediction):
      (JSC::DFG::PredictionPropagationPhase::isNotNegZero):
      (JSC::DFG::PredictionPropagationPhase::isNotZero):
      (JSC::DFG::PredictionPropagationPhase::isWithinPowerOfTwoForConstant):
      (JSC::DFG::PredictionPropagationPhase::isWithinPowerOfTwoNonRecursive):
      (JSC::DFG::PredictionPropagationPhase::isWithinPowerOfTwo):
      (JSC::DFG::PredictionPropagationPhase::propagate):
      (JSC::DFG::PredictionPropagationPhase::mergeDefaultFlags):
      (JSC::DFG::PredictionPropagationPhase::propagateForward):
      (JSC::DFG::PredictionPropagationPhase::propagateBackward):
      (JSC::DFG::PredictionPropagationPhase::doDoubleVoting):
      (PredictionPropagationPhase):
      (JSC::DFG::PredictionPropagationPhase::doRoundOfDoubleVoting):
      * dfg/DFGScoreBoard.h:
      (JSC::DFG::ScoreBoard::ScoreBoard):
      (JSC::DFG::ScoreBoard::use):
      (JSC::DFG::ScoreBoard::useIfHasResult):
      (ScoreBoard):
      * dfg/DFGSilentRegisterSavePlan.h:
      (JSC::DFG::SilentRegisterSavePlan::SilentRegisterSavePlan):
      (JSC::DFG::SilentRegisterSavePlan::node):
      (SilentRegisterSavePlan):
      * dfg/DFGSlowPathGenerator.h:
      (JSC::DFG::SlowPathGenerator::SlowPathGenerator):
      (JSC::DFG::SlowPathGenerator::generate):
      (SlowPathGenerator):
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::SpeculativeJIT):
      (JSC::DFG::SpeculativeJIT::speculationCheck):
      (JSC::DFG::SpeculativeJIT::speculationWatchpoint):
      (JSC::DFG::SpeculativeJIT::convertLastOSRExitToForward):
      (JSC::DFG::SpeculativeJIT::forwardSpeculationCheck):
      (JSC::DFG::SpeculativeJIT::terminateSpeculativeExecution):
      (JSC::DFG::SpeculativeJIT::silentSavePlanForGPR):
      (JSC::DFG::SpeculativeJIT::silentSavePlanForFPR):
      (JSC::DFG::SpeculativeJIT::silentSpill):
      (JSC::DFG::SpeculativeJIT::silentFill):
      (JSC::DFG::SpeculativeJIT::checkArray):
      (JSC::DFG::SpeculativeJIT::arrayify):
      (JSC::DFG::SpeculativeJIT::fillStorage):
      (JSC::DFG::SpeculativeJIT::useChildren):
      (JSC::DFG::SpeculativeJIT::isStrictInt32):
      (JSC::DFG::SpeculativeJIT::isKnownInteger):
      (JSC::DFG::SpeculativeJIT::isKnownNumeric):
      (JSC::DFG::SpeculativeJIT::isKnownCell):
      (JSC::DFG::SpeculativeJIT::isKnownNotCell):
      (JSC::DFG::SpeculativeJIT::isKnownNotInteger):
      (JSC::DFG::SpeculativeJIT::isKnownNotNumber):
      (JSC::DFG::SpeculativeJIT::writeBarrier):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeCompare):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeStrictEq):
      (JSC::DFG::GPRTemporary::GPRTemporary):
      (JSC::DFG::FPRTemporary::FPRTemporary):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleDoubleBranch):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleIntegerBranch):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
      (JSC::DFG::SpeculativeJIT::noticeOSRBirth):
      (JSC::DFG::SpeculativeJIT::compileMovHint):
      (JSC::DFG::SpeculativeJIT::compile):
      (JSC::DFG::SpeculativeJIT::checkArgumentTypes):
      (JSC::DFG::SpeculativeJIT::computeValueRecoveryFor):
      (JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
      (JSC::DFG::SpeculativeJIT::compileGetCharCodeAt):
      (JSC::DFG::SpeculativeJIT::compileGetByValOnString):
      (JSC::DFG::SpeculativeJIT::checkGeneratedTypeForToInt32):
      (JSC::DFG::SpeculativeJIT::compileValueToInt32):
      (JSC::DFG::SpeculativeJIT::compileUInt32ToNumber):
      (JSC::DFG::SpeculativeJIT::compileDoubleAsInt32):
      (JSC::DFG::SpeculativeJIT::compileInt32ToDouble):
      (JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
      (JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
      (JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
      (JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):
      (JSC::DFG::SpeculativeJIT::compileInstanceOfForObject):
      (JSC::DFG::SpeculativeJIT::compileInstanceOf):
      (JSC::DFG::SpeculativeJIT::compileSoftModulo):
      (JSC::DFG::SpeculativeJIT::compileAdd):
      (JSC::DFG::SpeculativeJIT::compileArithSub):
      (JSC::DFG::SpeculativeJIT::compileArithNegate):
      (JSC::DFG::SpeculativeJIT::compileArithMul):
      (JSC::DFG::SpeculativeJIT::compileIntegerArithDivForX86):
      (JSC::DFG::SpeculativeJIT::compileArithMod):
      (JSC::DFG::SpeculativeJIT::compare):
      (JSC::DFG::SpeculativeJIT::compileStrictEqForConstant):
      (JSC::DFG::SpeculativeJIT::compileStrictEq):
      (JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage):
      (JSC::DFG::SpeculativeJIT::compileGetByValOnArguments):
      (JSC::DFG::SpeculativeJIT::compileGetArgumentsLength):
      (JSC::DFG::SpeculativeJIT::compileGetArrayLength):
      (JSC::DFG::SpeculativeJIT::compileNewFunctionNoCheck):
      (JSC::DFG::SpeculativeJIT::compileNewFunctionExpression):
      (JSC::DFG::SpeculativeJIT::compileRegExpExec):
      (JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
      (JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
      * dfg/DFGSpeculativeJIT.h:
      (SpeculativeJIT):
      (JSC::DFG::SpeculativeJIT::canReuse):
      (JSC::DFG::SpeculativeJIT::isFilled):
      (JSC::DFG::SpeculativeJIT::isFilledDouble):
      (JSC::DFG::SpeculativeJIT::use):
      (JSC::DFG::SpeculativeJIT::isConstant):
      (JSC::DFG::SpeculativeJIT::isJSConstant):
      (JSC::DFG::SpeculativeJIT::isInt32Constant):
      (JSC::DFG::SpeculativeJIT::isDoubleConstant):
      (JSC::DFG::SpeculativeJIT::isNumberConstant):
      (JSC::DFG::SpeculativeJIT::isBooleanConstant):
      (JSC::DFG::SpeculativeJIT::isFunctionConstant):
      (JSC::DFG::SpeculativeJIT::valueOfInt32Constant):
      (JSC::DFG::SpeculativeJIT::valueOfNumberConstant):
      (JSC::DFG::SpeculativeJIT::valueOfNumberConstantAsInt32):
      (JSC::DFG::SpeculativeJIT::addressOfDoubleConstant):
      (JSC::DFG::SpeculativeJIT::valueOfJSConstant):
      (JSC::DFG::SpeculativeJIT::valueOfBooleanConstant):
      (JSC::DFG::SpeculativeJIT::valueOfFunctionConstant):
      (JSC::DFG::SpeculativeJIT::isNullConstant):
      (JSC::DFG::SpeculativeJIT::valueOfJSConstantAsImm64):
      (JSC::DFG::SpeculativeJIT::detectPeepHoleBranch):
      (JSC::DFG::SpeculativeJIT::integerResult):
      (JSC::DFG::SpeculativeJIT::noResult):
      (JSC::DFG::SpeculativeJIT::cellResult):
      (JSC::DFG::SpeculativeJIT::booleanResult):
      (JSC::DFG::SpeculativeJIT::jsValueResult):
      (JSC::DFG::SpeculativeJIT::storageResult):
      (JSC::DFG::SpeculativeJIT::doubleResult):
      (JSC::DFG::SpeculativeJIT::initConstantInfo):
      (JSC::DFG::SpeculativeJIT::appendCallWithExceptionCheck):
      (JSC::DFG::SpeculativeJIT::isInteger):
      (JSC::DFG::SpeculativeJIT::temporaryRegisterForPutByVal):
      (JSC::DFG::SpeculativeJIT::emitAllocateBasicStorage):
      (JSC::DFG::SpeculativeJIT::setNodeForOperand):
      (JSC::DFG::IntegerOperand::IntegerOperand):
      (JSC::DFG::IntegerOperand::node):
      (JSC::DFG::IntegerOperand::gpr):
      (JSC::DFG::IntegerOperand::use):
      (IntegerOperand):
      (JSC::DFG::DoubleOperand::DoubleOperand):
      (JSC::DFG::DoubleOperand::node):
      (JSC::DFG::DoubleOperand::fpr):
      (JSC::DFG::DoubleOperand::use):
      (DoubleOperand):
      (JSC::DFG::JSValueOperand::JSValueOperand):
      (JSC::DFG::JSValueOperand::node):
      (JSC::DFG::JSValueOperand::gpr):
      (JSC::DFG::JSValueOperand::fill):
      (JSC::DFG::JSValueOperand::use):
      (JSValueOperand):
      (JSC::DFG::StorageOperand::StorageOperand):
      (JSC::DFG::StorageOperand::node):
      (JSC::DFG::StorageOperand::gpr):
      (JSC::DFG::StorageOperand::use):
      (StorageOperand):
      (JSC::DFG::SpeculateIntegerOperand::SpeculateIntegerOperand):
      (JSC::DFG::SpeculateIntegerOperand::node):
      (JSC::DFG::SpeculateIntegerOperand::gpr):
      (JSC::DFG::SpeculateIntegerOperand::use):
      (SpeculateIntegerOperand):
      (JSC::DFG::SpeculateStrictInt32Operand::SpeculateStrictInt32Operand):
      (JSC::DFG::SpeculateStrictInt32Operand::node):
      (JSC::DFG::SpeculateStrictInt32Operand::gpr):
      (JSC::DFG::SpeculateStrictInt32Operand::use):
      (SpeculateStrictInt32Operand):
      (JSC::DFG::SpeculateDoubleOperand::SpeculateDoubleOperand):
      (JSC::DFG::SpeculateDoubleOperand::node):
      (JSC::DFG::SpeculateDoubleOperand::fpr):
      (JSC::DFG::SpeculateDoubleOperand::use):
      (SpeculateDoubleOperand):
      (JSC::DFG::SpeculateCellOperand::SpeculateCellOperand):
      (JSC::DFG::SpeculateCellOperand::node):
      (JSC::DFG::SpeculateCellOperand::gpr):
      (JSC::DFG::SpeculateCellOperand::use):
      (SpeculateCellOperand):
      (JSC::DFG::SpeculateBooleanOperand::SpeculateBooleanOperand):
      (JSC::DFG::SpeculateBooleanOperand::node):
      (JSC::DFG::SpeculateBooleanOperand::gpr):
      (JSC::DFG::SpeculateBooleanOperand::use):
      (SpeculateBooleanOperand):
      * dfg/DFGSpeculativeJIT32_64.cpp:
      (JSC::DFG::SpeculativeJIT::fillInteger):
      (JSC::DFG::SpeculativeJIT::fillDouble):
      (JSC::DFG::SpeculativeJIT::fillJSValue):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeValueToNumber):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeValueToInt32):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeUInt32ToNumber):
      (JSC::DFG::SpeculativeJIT::cachedPutById):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
      (JSC::DFG::SpeculativeJIT::emitCall):
      (JSC::DFG::SpeculativeJIT::fillSpeculateIntInternal):
      (JSC::DFG::SpeculativeJIT::fillSpeculateInt):
      (JSC::DFG::SpeculativeJIT::fillSpeculateIntStrict):
      (JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
      (JSC::DFG::SpeculativeJIT::fillSpeculateCell):
      (JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
      (JSC::DFG::SpeculativeJIT::compileObjectEquality):
      (JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
      (JSC::DFG::SpeculativeJIT::compileIntegerCompare):
      (JSC::DFG::SpeculativeJIT::compileDoubleCompare):
      (JSC::DFG::SpeculativeJIT::compileValueAdd):
      (JSC::DFG::SpeculativeJIT::compileNonStringCellOrOtherLogicalNot):
      (JSC::DFG::SpeculativeJIT::compileLogicalNot):
      (JSC::DFG::SpeculativeJIT::emitNonStringCellOrOtherBranch):
      (JSC::DFG::SpeculativeJIT::emitBranch):
      (JSC::DFG::SpeculativeJIT::compileContiguousPutByVal):
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::fillInteger):
      (JSC::DFG::SpeculativeJIT::fillDouble):
      (JSC::DFG::SpeculativeJIT::fillJSValue):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeValueToNumber):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeValueToInt32):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeUInt32ToNumber):
      (JSC::DFG::SpeculativeJIT::cachedPutById):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
      (JSC::DFG::SpeculativeJIT::emitCall):
      (JSC::DFG::SpeculativeJIT::fillSpeculateIntInternal):
      (JSC::DFG::SpeculativeJIT::fillSpeculateInt):
      (JSC::DFG::SpeculativeJIT::fillSpeculateIntStrict):
      (JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
      (JSC::DFG::SpeculativeJIT::fillSpeculateCell):
      (JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
      (JSC::DFG::SpeculativeJIT::compileObjectEquality):
      (JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
      (JSC::DFG::SpeculativeJIT::compileIntegerCompare):
      (JSC::DFG::SpeculativeJIT::compileDoubleCompare):
      (JSC::DFG::SpeculativeJIT::compileValueAdd):
      (JSC::DFG::SpeculativeJIT::compileNonStringCellOrOtherLogicalNot):
      (JSC::DFG::SpeculativeJIT::compileLogicalNot):
      (JSC::DFG::SpeculativeJIT::emitNonStringCellOrOtherBranch):
      (JSC::DFG::SpeculativeJIT::emitBranch):
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGStructureAbstractValue.h:
      (StructureAbstractValue):
      * dfg/DFGStructureCheckHoistingPhase.cpp:
      (JSC::DFG::StructureCheckHoistingPhase::run):
      * dfg/DFGValidate.cpp:
      (DFG):
      (Validate):
      (JSC::DFG::Validate::validate):
      (JSC::DFG::Validate::reportValidationContext):
      * dfg/DFGValidate.h:
      * dfg/DFGValueSource.cpp:
      (JSC::DFG::ValueSource::dump):
      * dfg/DFGValueSource.h:
      (JSC::DFG::ValueSource::ValueSource):
      * dfg/DFGVirtualRegisterAllocationPhase.cpp:
      (JSC::DFG::VirtualRegisterAllocationPhase::run):
      * runtime/FunctionExecutableDump.cpp: Added.
      (JSC):
      (JSC::FunctionExecutableDump::dump):
      * runtime/FunctionExecutableDump.h: Added.
      (JSC):
      (FunctionExecutableDump):
      (JSC::FunctionExecutableDump::FunctionExecutableDump):
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      * runtime/JSGlobalData.h:
      (JSC):
      (DFG):
      (JSGlobalData):
      * runtime/Options.h:
      (JSC):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141069 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8ff092fc
  4. 18 May, 2012 1 commit
    • fpizlo@apple.com's avatar
      DFG should have control flow graph simplification · 79c51ee1
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=84553
      
      Source/JavaScriptCore: 
      
      Reviewed by Oliver Hunt.
              
      Merged r115512 from dfgopt.
      
      This change gives the DFG the ability to simplify the control flow graph
      as part of an optimization fixpoint that includes CSE, CFA, and constant
      folding. This required a number of interesting changes including:
              
      - Solidifying the set of invariants that the DFG obeys. For example, the
        head and tail of each basic block must advertise the set of live locals
        and the set of available locals, respectively. It must do so by
        referring to the first access to the local in the block (for head) and
        the last one (for tail). This patch introduces the start of a
        validation step that may be turned on even with asserts disabled. To
        ensure that these invariants are preserved, I had to remove the
        redundant phi elimination phase. For now I just remove the call, but in
        the future we will probably remove it entirely unless we find a use for
        it.
              
      - Making it easier to get the boolean version of a JSValue. This is a
        pure operation, but we previously did not treat it as such.
              
      - Fixing the merging and filtering of AbstractValues that correspond to
        concrete JSValues. This was previously broken and was limiting the
        effect of running constant folding. Fixing this meant that I had to
        change how constant folding eliminates GetLocal nodes, so as to ensure
        that the resulting graph still obeys DFG rules.
              
      - Introducing simplified getters for some of the things that DFG phases
        want to know about, like the Nth child of a node (now just
        graph.child(...) if you don't care about performance too much) or
        getting successors of a basic block.
              
      The current CFG simplifier can handle almost all of the cases that it
      ought to handle; the noteworthy one that is not yet handled is removing
      basic blocks that just have jumps. To do this right we need to be able
      to remove jump-only blocks that also perform keep-alive on some values.
      To make this work, we need to be able to hoist the keep-alive into (or
      just above) a Branch. This is not fundamentally difficult but I opted to
      let this patch omit this optimization. We can handle this later.
              
      This is a big win on programs that include inline functions that are
      often called with constant arguments. Of course, SunSpider, V8, and
      Kraken don't count. Those benchmarks are completely neutral with this
      change.
      
      * API/JSValueRef.cpp:
      (JSValueToBoolean):
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * bytecode/CodeBlock.h:
      (JSC::CodeBlock::dfgOSREntryDataForBytecodeIndex):
      * bytecode/Operands.h:
      (JSC::Operands::setOperandFirstTime):
      (Operands):
      * dfg/DFGAbstractState.cpp:
      (JSC::DFG::AbstractState::initialize):
      (JSC::DFG::AbstractState::execute):
      (JSC::DFG::AbstractState::mergeStateAtTail):
      (JSC::DFG::AbstractState::mergeToSuccessors):
      * dfg/DFGAbstractValue.h:
      (JSC::DFG::AbstractValue::isClear):
      (JSC::DFG::AbstractValue::operator!=):
      (JSC::DFG::AbstractValue::merge):
      (JSC::DFG::AbstractValue::filter):
      (JSC::DFG::AbstractValue::validateIgnoringValue):
      (AbstractValue):
      * dfg/DFGAdjacencyList.h:
      (JSC::DFG::AdjacencyList::child):
      (JSC::DFG::AdjacencyList::setChild):
      (AdjacencyList):
      * dfg/DFGBasicBlock.h:
      (JSC::DFG::BasicBlock::~BasicBlock):
      (BasicBlock):
      (JSC::DFG::BasicBlock::numNodes):
      (JSC::DFG::BasicBlock::nodeIndex):
      (JSC::DFG::BasicBlock::isPhiIndex):
      (JSC::DFG::BasicBlock::isInPhis):
      (JSC::DFG::BasicBlock::isInBlock):
      * dfg/DFGByteCodeParser.cpp:
      (ByteCodeParser):
      (DFG):
      (JSC::DFG::ByteCodeParser::parse):
      * dfg/DFGCFAPhase.cpp:
      (JSC::DFG::CFAPhase::run):
      (JSC::DFG::CFAPhase::performBlockCFA):
      (JSC::DFG::performCFA):
      * dfg/DFGCFAPhase.h:
      (DFG):
      * dfg/DFGCFGSimplificationPhase.cpp: Added.
      (DFG):
      (CFGSimplificationPhase):
      (JSC::DFG::CFGSimplificationPhase::CFGSimplificationPhase):
      (JSC::DFG::CFGSimplificationPhase::run):
      (JSC::DFG::CFGSimplificationPhase::killUnreachable):
      (JSC::DFG::CFGSimplificationPhase::findOperandSource):
      (JSC::DFG::CFGSimplificationPhase::keepOperandAlive):
      (JSC::DFG::CFGSimplificationPhase::fixPossibleGetLocal):
      (JSC::DFG::CFGSimplificationPhase::jettisonBlock):
      (JSC::DFG::CFGSimplificationPhase::fixPhis):
      (JSC::DFG::CFGSimplificationPhase::fixJettisonedPredecessors):
      (JSC::DFG::CFGSimplificationPhase::removePotentiallyDeadPhiReference):
      (JSC::DFG::CFGSimplificationPhase::OperandSubstitution::OperandSubstitution):
      (OperandSubstitution):
      (JSC::DFG::CFGSimplificationPhase::OperandSubstitution::dump):
      (JSC::DFG::CFGSimplificationPhase::skipGetLocal):
      (JSC::DFG::CFGSimplificationPhase::fixTailOperand):
      (JSC::DFG::CFGSimplificationPhase::mergeBlocks):
      (JSC::DFG::performCFGSimplification):
      * dfg/DFGCFGSimplificationPhase.h: Added.
      (DFG):
      * dfg/DFGCSEPhase.cpp:
      (JSC::DFG::CSEPhase::run):
      (CSEPhase):
      (JSC::DFG::CSEPhase::impureCSE):
      (JSC::DFG::CSEPhase::globalVarLoadElimination):
      (JSC::DFG::CSEPhase::getByValLoadElimination):
      (JSC::DFG::CSEPhase::checkStructureLoadElimination):
      (JSC::DFG::CSEPhase::getByOffsetLoadElimination):
      (JSC::DFG::CSEPhase::getPropertyStorageLoadElimination):
      (JSC::DFG::CSEPhase::getIndexedPropertyStorageLoadElimination):
      (JSC::DFG::CSEPhase::performNodeCSE):
      (JSC::DFG::CSEPhase::performBlockCSE):
      (JSC::DFG::performCSE):
      * dfg/DFGCSEPhase.h:
      (DFG):
      * dfg/DFGCommon.h:
      * dfg/DFGConstantFoldingPhase.cpp:
      (JSC::DFG::ConstantFoldingPhase::run):
      (JSC::DFG::performConstantFolding):
      * dfg/DFGConstantFoldingPhase.h:
      (DFG):
      * dfg/DFGDriver.cpp:
      (JSC::DFG::compile):
      * dfg/DFGEdge.h:
      (Edge):
      (JSC::DFG::Edge::operator UnspecifiedBoolType*):
      * dfg/DFGFixupPhase.cpp:
      (JSC::DFG::FixupPhase::run):
      (JSC::DFG::FixupPhase::fixupBlock):
      (JSC::DFG::performFixup):
      * dfg/DFGFixupPhase.h:
      (DFG):
      * dfg/DFGGraph.cpp:
      (JSC::DFG::Graph::dump):
      (JSC::DFG::Graph::handleSuccessor):
      (DFG):
      (JSC::DFG::Graph::determineReachability):
      (JSC::DFG::Graph::resetReachability):
      * dfg/DFGGraph.h:
      (JSC::DFG::Graph::deref):
      (JSC::DFG::Graph::changeIndex):
      (Graph):
      (JSC::DFG::Graph::changeEdge):
      (JSC::DFG::Graph::numSuccessors):
      (JSC::DFG::Graph::successor):
      (JSC::DFG::Graph::successorForCondition):
      (JSC::DFG::Graph::isPredictedNumerical):
      (JSC::DFG::Graph::byValIsPure):
      (JSC::DFG::Graph::clobbersWorld):
      (JSC::DFG::Graph::numChildren):
      (JSC::DFG::Graph::child):
      * dfg/DFGNode.h:
      (JSC::DFG::Node::convertToConstant):
      (JSC::DFG::Node::numSuccessors):
      (Node):
      (JSC::DFG::Node::successor):
      (JSC::DFG::Node::successorForCondition):
      * dfg/DFGNodeType.h:
      (DFG):
      * dfg/DFGOSREntry.cpp:
      (JSC::DFG::prepareOSREntry):
      * dfg/DFGOperations.cpp:
      * dfg/DFGPhase.cpp:
      (JSC::DFG::Phase::endPhase):
      * dfg/DFGPhase.h:
      (JSC::DFG::runPhase):
      * dfg/DFGPredictionPropagationPhase.cpp:
      (JSC::DFG::PredictionPropagationPhase::run):
      (JSC::DFG::performPredictionPropagation):
      * dfg/DFGPredictionPropagationPhase.h:
      (DFG):
      * dfg/DFGRedundantPhiEliminationPhase.cpp:
      (JSC::DFG::RedundantPhiEliminationPhase::run):
      (JSC::DFG::performRedundantPhiElimination):
      * dfg/DFGRedundantPhiEliminationPhase.h:
      (DFG):
      * dfg/DFGScoreBoard.h:
      (JSC::DFG::ScoreBoard::use):
      (ScoreBoard):
      (JSC::DFG::ScoreBoard::useIfHasResult):
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleIntegerBranch):
      (JSC::DFG::SpeculativeJIT::compile):
      (JSC::DFG::SpeculativeJIT::createOSREntries):
      (JSC::DFG::SpeculativeJIT::linkOSREntries):
      (JSC::DFG::SpeculativeJIT::compileStrictEqForConstant):
      (JSC::DFG::SpeculativeJIT::compileRegExpExec):
      * dfg/DFGSpeculativeJIT.h:
      (JSC::DFG::SpeculativeJIT::nextBlock):
      (SpeculativeJIT):
      (JSC::DFG::SpeculativeJIT::use):
      (JSC::DFG::SpeculativeJIT::jump):
      * dfg/DFGSpeculativeJIT32_64.cpp:
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
      (JSC::DFG::SpeculativeJIT::emitBranch):
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
      (JSC::DFG::SpeculativeJIT::emitBranch):
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGValidate.cpp: Added.
      (DFG):
      (Validate):
      (JSC::DFG::Validate::Validate):
      (JSC::DFG::Validate::validate):
      (JSC::DFG::Validate::reportValidationContext):
      (JSC::DFG::Validate::dumpData):
      (JSC::DFG::Validate::dumpGraphIfAppropriate):
      (JSC::DFG::validate):
      * dfg/DFGValidate.h: Added.
      (DFG):
      (JSC::DFG::validate):
      * dfg/DFGVirtualRegisterAllocationPhase.cpp:
      (JSC::DFG::VirtualRegisterAllocationPhase::run):
      (JSC::DFG::performVirtualRegisterAllocation):
      * dfg/DFGVirtualRegisterAllocationPhase.h:
      (DFG):
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::privateExecute):
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION):
      * llint/LLIntSlowPaths.cpp:
      (JSC::LLInt::LLINT_SLOW_PATH_DECL):
      * runtime/ArrayPrototype.cpp:
      (JSC::arrayProtoFuncFilter):
      (JSC::arrayProtoFuncEvery):
      (JSC::arrayProtoFuncSome):
      * runtime/BooleanConstructor.cpp:
      (JSC::constructBoolean):
      (JSC::callBooleanConstructor):
      * runtime/JSCell.h:
      (JSCell):
      * runtime/JSObject.cpp:
      (JSC):
      * runtime/JSObject.h:
      * runtime/JSString.cpp:
      (JSC::JSString::toBoolean):
      * runtime/JSString.h:
      (JSString):
      (JSC::JSCell::toBoolean):
      (JSC::JSValue::toBoolean):
      * runtime/JSValue.h:
      * runtime/ObjectConstructor.cpp:
      (JSC::toPropertyDescriptor):
      * runtime/RegExpConstructor.cpp:
      (JSC::setRegExpConstructorMultiline):
      * runtime/RegExpPrototype.cpp:
      (JSC::regExpProtoFuncToString):
      
      Source/WebCore: 
      
      Reviewed by Oliver Hunt.
      
      Merged r115512 from dfgopt.
      
      JSValue::toBoolean(ExecState*) -> JSValue::toBoolean()
              
      No new tests, because no new behavior.
      
      * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
      (WebCore::JSSQLStatementErrorCallback::handleEvent):
      * bindings/js/JSDOMWindowCustom.cpp:
      (WebCore::JSDOMWindow::addEventListener):
      (WebCore::JSDOMWindow::removeEventListener):
      * bindings/js/JSDataViewCustom.cpp:
      (WebCore::getDataViewMember):
      * bindings/js/JSDeviceMotionEventCustom.cpp:
      (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
      * bindings/js/JSDeviceOrientationEventCustom.cpp:
      (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
      * bindings/js/JSDictionary.cpp:
      (WebCore::JSDictionary::convertValue):
      * bindings/js/JSDirectoryEntryCustom.cpp:
      (WebCore::JSDirectoryEntry::getFile):
      (WebCore::JSDirectoryEntry::getDirectory):
      * bindings/js/JSDirectoryEntrySyncCustom.cpp:
      (WebCore::getFlags):
      * bindings/js/JSHTMLCanvasElementCustom.cpp:
      (WebCore::JSHTMLCanvasElement::getContext):
      * bindings/js/JSInspectorFrontendHostCustom.cpp:
      (WebCore::JSInspectorFrontendHost::showContextMenu):
      * bindings/js/JSMessageEventCustom.cpp:
      (WebCore::handleInitMessageEvent):
      * bindings/js/JSWebGLRenderingContextCustom.cpp:
      (WebCore::dataFunctionMatrix):
      * bindings/js/JSXMLHttpRequestCustom.cpp:
      (WebCore::JSXMLHttpRequest::open):
      * bindings/js/ScriptDebugServer.cpp:
      (WebCore::ScriptDebugServer::hasBreakpoint):
      * bindings/scripts/CodeGeneratorJS.pm:
      (GenerateEventListenerCall):
      (GenerateImplementation):
      (JSValueToNative):
      * bridge/c/c_utility.cpp:
      (JSC::Bindings::convertValueToNPVariant):
      * bridge/jni/jni_jsobject.mm:
      (JavaJSObject::convertValueToJObject):
      
      Source/WebKit/mac: 
      
      Reviewed by Oliver Hunt.
              
      Merged r115512 from dfgopt.
      
      JSValue::toBoolean(ExecState*) -> JSValue::toBoolean()
              
      * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
      (WebKit::NetscapePluginInstanceProxy::addValueToArray):
      
      Source/WebKit2: 
      
      Reviewed by Oliver Hunt.
      
      Merged r115512 from dfgopt.
      
      JSValue::toBoolean(ExecState*) -> JSValue::toBoolean()
              
      * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
      (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@117646 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      79c51ee1
  5. 24 Mar, 2012 1 commit
    • fpizlo@apple.com's avatar
      DFG Fixup should be able to short-circuit trivial ValueToInt32's · a73f21d5
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=82030
      
      Reviewed by Michael Saboff.
              
      Takes the fixup() method of the prediction propagation phase and makes it
      into its own phase. Adds the ability to short-circuit trivial ValueToInt32
      nodes, and mark pure ValueToInt32's as such.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * dfg/DFGByteCodeParser.cpp:
      (JSC::DFG::ByteCodeParser::makeSafe):
      (JSC::DFG::ByteCodeParser::handleCall):
      (JSC::DFG::ByteCodeParser::parseBlock):
      * dfg/DFGCommon.h:
      * dfg/DFGDriver.cpp:
      (JSC::DFG::compile):
      * dfg/DFGFixupPhase.cpp: Added.
      (DFG):
      (FixupPhase):
      (JSC::DFG::FixupPhase::FixupPhase):
      (JSC::DFG::FixupPhase::run):
      (JSC::DFG::FixupPhase::fixupNode):
      (JSC::DFG::FixupPhase::fixIntEdge):
      (JSC::DFG::performFixup):
      * dfg/DFGFixupPhase.h: Added.
      (DFG):
      * dfg/DFGPredictionPropagationPhase.cpp:
      (JSC::DFG::PredictionPropagationPhase::run):
      (PredictionPropagationPhase):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@111974 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a73f21d5