[V8] GrouperVisitor is secretly two entirely separate objects
https://bugs.webkit.org/show_bug.cgi?id=99810

Reviewed by Kentaro Hara.

We can separate out the two things that GrouperVisitor is trying to do
because they have nothing to do with each other.

* bindings/v8/V8GCController.cpp:
(ObjectVisitor):
(WebCore::ObjectVisitor::visitDOMWrapper):
(WebCore):
(WebCore::V8GCController::gcPrologue):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131863 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: [Styles] Property considered overridden if it is non-inherited important property in inherited style
https://bugs.webkit.org/show_bug.cgi?id=99720

Reviewed by Yury Semikhatsky.

Source/WebCore:

Non-inherited properties are now disregarded in inherited styles.

* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype._refreshStyleRules):
(WebInspector.StylesSidebarPane.prototype._markUsedProperties):

LayoutTests:

* inspector/elements/elements-panel-styles-expected.txt:
* inspector/elements/resources/elements-panel-styles.css:
(#container):
(.foo):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131864 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Remove unused typedef from V8GCController.cpp
https://bugs.webkit.org/show_bug.cgi?id=99808

Reviewed by Kentaro Hara.

This typedef is not used.

* bindings/v8/V8GCController.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131865 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] DOMObjectVisitor does nothing
https://bugs.webkit.org/show_bug.cgi?id=99812

Reviewed by Kentaro Hara.

This code doesn't do anything, even in Debug! We should just remove it.

* bindings/v8/V8GCController.cpp:
(WebCore):
(WebCore::V8GCController::gcPrologue):
(WebCore::V8GCController::gcEpilogue):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebPageProxy::canShowMIMEType() should return false for plugins when they are disabled
https://bugs.webkit.org/show_bug.cgi?id=99449

Reviewed by Anders Carlsson.

* UIProcess/API/gtk/tests/GNUmakefile.am:
* UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
(testWebViewCanShowMIMEType): Test that
webkit_web_view_can_show_mime_type() returns FALSE if plugins are
disabled.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::canShowMIMEType): Return false for
MIME-Type of plugins if they are disabled.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131867 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Baseline array profiling should be less accurate, and DFG OSR exit should update array profiles on CheckArray and CheckStructure failure
https://bugs.webkit.org/show_bug.cgi?id=99261

Reviewed by Oliver Hunt.

This makes array profiling stochastic, like value profiling. The point is to avoid
noticing one-off indexing types that we'll never see again, but instead to:
        
Notice the big ones: We want the DFG to compile based on the things that happen with
high probability. So, this change makes array profiling do like value profiling and
only notice a random subsampling of indexing types that flowed through an array
access. Prior to this patch array profiles noticed all indexing types and weighted
them identically.
        
Bias the recent: Often an array access will see awkward indexing types during the
first handful of executions because of artifacts of program startup. So, we want to
bias towards the indexing types that we saw most recently. With this change, array
profiling does like value profiling and usually tells use a random sampling that
is biased to what happened recently.
        
Have a backup plan: The above two things don't work by themselves because our
randomness is not that random (nor do we care enough to make it more random), and
because some procedures will have a <1/10 probability event that we must handle
without bailing because it dominates a hot loop. So, like value profiling, this
patch makes array profiling use OSR exits to tell us why we are bailing out, so
that we don't make the same mistake again in the future.
        
This change also makes the way that the 32-bit OSR exit compiler snatches scratch
registers more uniform. We don't need a scratch buffer when we can push and pop.

* bytecode/DFGExitProfile.h:
* dfg/DFGOSRExitCompiler32_64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGOSRExitCompiler64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::arrayify):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* jit/JITInlineMethods.h:
(JSC::JIT::emitArrayProfilingSite):
* llint/LowLevelInterpreter.asm:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131868 268f45cc-cd09-0410-ab3c-d52691b4dbfc