nrwt: make paths and test_names passed arguments in Manager._prepare_lists et al
https://bugs.webkit.org/show_bug.cgi?id=104047

Reviewed by Eric Seidel.

The code becomes cleaner if we are just passing values around rather
than hanging them off the manager object, helps move _prepare_lists()
to a pure function, and is needed to eventually make the
result_summary object something returned from runner.run_tests()
(note that two more patches are needed for that to happen).

* Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager.__init__):
(Manager._http_tests):
(Manager._prepare_lists):
(Manager.needs_servers):
(Manager._set_up_run):
(Manager.run):
(Manager._run_tests):
(Manager._upload_json_files):
* Scripts/webkitpy/layout_tests/controllers/manager_unittest.py:
(ManagerTest.test_needs_servers.get_manager):
(ManagerTest.test_needs_servers):
(ManagerTest.integration_test_needs_servers.get_manager):
(ManagerTest.integration_test_needs_servers):
(ManagerTest.test_look_for_new_crash_logs.get_manager):
(ManagerTest):
(ManagerTest.test_look_for_new_crash_logs):
* Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:
(JSONLayoutResultsGenerator.__init__):
(JSONLayoutResultsGenerator._get_modifier_char):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136585 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed gardening - add missing js-test-pre.js include to avoid use-href-update-crash.svg
failures on platforms that do not define gc().

* svg/custom/use-href-update-crash.svg:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136586 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use sticky positioning for the code review toolbar
https://bugs.webkit.org/show_bug.cgi?id=104056

Reviewed by Adam Barth.

This simplifies the code and gives a nicer user-experience.
Also, while here, I fixed up the CSS to not have toolbar items
overlap when you make the window too small.

* PrettyPatch/PrettyPatch.rb:
* code-review-test.html:
* code-review.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136587 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Grid Layout] Implement CSS parsing and handling for <track-minmax>
https://bugs.webkit.org/show_bug.cgi?id=103799

Reviewed by Tony Chang.

Source/WebCore:

This change adds support for:
<track-minmax> => minmax( <track-breadth> , <track-breadth> ) | auto | <track-breadth>
(note that we already supported auto | <track-breadth>).

The change is mostly mechanical, the only newness is that GridTrackSize was updated to
hold 2 Lengths internally and we map the single Length case to 2 by duplicating the value
as this matches the rendering algorithm in the spec.

Tests: fast/css-grid-layout/grid-columns-rows-get-set-multiple.html
       fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackBreadth):
Changed the function to do the conversion of one track breadth (one Length).
This was forgotten in the preparatory change in bug 103703.

(WebCore::valueForGridTrackMinMax):
Convert the value back using valueForGridTrackBreadth.

* css/CSSFunctionValue.cpp:
(WebCore::CSSFunctionValue::CSSFunctionValue):
* css/CSSFunctionValue.h:
(WebCore::CSSFunctionValue::create):
(CSSFunctionValue):
Added a new constructor. This enables us to return minmax(..., ...) when queried
from JavaScript. I couldn't find a better way to serialize inside CSSComputedStyleDeclaration
so that it properly match the function output.

* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTrackMinMax):
Added parsing for the new syntax. We convert the 2 values into a Pair if we manage to
parse both values correctly.

* css/StyleResolver.cpp:
(WebCore::createGridTrackMinMax):
Updated to handle a Pair - for minmax - and set the 2 values on GridTrackSize.

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
Updated to check the style. For now, we don't handle minmax values.

* rendering/style/GridTrackSize.h:
(WebCore::GridTrackSize::GridTrackSize):
(WebCore::GridTrackSize::length):
(WebCore::GridTrackSize::setLength):
(WebCore::GridTrackSize::minTrackBreadth):
(WebCore::GridTrackSize::maxTrackBreadth):
(WebCore::GridTrackSize::setMinMax):
(WebCore::GridTrackSize::operator==):
Updated the class to handle minmax values. This means that we now always store
2 values (the <length> case being a subset of minmax, however we kept the distinction
to be able to reconstruct a <length> for getComputedStyle).

LayoutTests:

* fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
* fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
* fast/css-grid-layout/grid-columns-rows-get-set.html:
* fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:
* fast/css-grid-layout/resources/grid-columns-rows-get-set.js:
Extended the following tests to cover the new grammar.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136588 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Replace String::New("symbol") with String::NewSymbol("symbol")
https://bugs.webkit.org/show_bug.cgi?id=103989

Reviewed by Adam Barth.

In V8, a symbol lookup is faster than a string lookup. We should use
String::NewSymbol("symbol") for symbols.

No tests. No change in behavior.

* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextCallback):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::typeCallback):
(WebCore::V8InjectedScriptHost::functionDetailsCallback):
(WebCore::getJSListenerFunctions):
* bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
(WebCore::populateContextMenuItems):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136589 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Remove IntegerCache::m_initialized
https://bugs.webkit.org/show_bug.cgi?id=103978

Reviewed by Adam Barth.

Thanks to r136479, we can now initialize V8 integers in IntegerCache's
constructor. We can remove IntegerCache::m_initialized, which slightly
improves performance.

[Bindings/scroll-top.html in Chromium/Linux]
Before this patch: 285 runs/sec, 281 runs/sec, 281 runs/sec, 280 runs/sec
After this patch : 290 runs/sec, 291 runs/sec, 297 runs/sec, 291 runs/sec

No tests. No change in behavior.

* bindings/v8/V8ValueCache.cpp:
(WebCore::IntegerCache::IntegerCache):
(WebCore::IntegerCache::~IntegerCache):
* bindings/v8/V8ValueCache.h:
(IntegerCache):
(WebCore::IntegerCache::v8Integer):
(WebCore::IntegerCache::v8UnsignedInteger):
(WebCore):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136590 268f45cc-cd09-0410-ab3c-d52691b4dbfc
nrwt is not returning the exit status properly
https://bugs.webkit.org/show_bug.cgi?id=103830

Unreviewed, build fix.

The fix in r136474 wasn't quite right either, and would return
the correct exceptional status, but not the correct failing status.

* Scripts/webkitpy/layout_tests/run_webkit_tests.py:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136591 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore: IndexedDB: Propagate more leveldb errors to IDBIndex and IDBObjectStore
https://bugs.webkit.org/show_bug.cgi?id=103782

Reviewed by Tony Chang.

index.get[Key]() and objectStore.get() will receive more error events.

* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::getRecord):
(WebCore::versionExists):
(WebCore::IDBBackingStore::findKeyInIndex):
(WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStore::keyExistsInIndex):
* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::getInternal):
(WebCore::IDBIndexBackendImpl::getKeyInternal):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::getInternal):
(WebCore):

Source/WebKit/chromium: Unreviewed.  Rolled DEPS.

Patch by Stephen White <senorblanco@chromium.org> on 2012-12-04

* DEPS:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136592 268f45cc-cd09-0410-ab3c-d52691b4dbfc
nrwt: fix total number of tests computed in the result summary
https://bugs.webkit.org/show_bug.cgi?id=104061

Unreviewed, build fix.

One of the recent changes to the resultsummary refactoring caused
us to not include the number of skipped tests in the total number
of tests, throwing off the totals printed in print_one_line_summary().

Unfortunately, given the current state of the code it is difficult
to construct an accurate unit test for this. I have verified the
fix by hand, and will write a test once the remaining refactoring
patches land, at which point it will be trivial to test it.

* Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager._prepare_lists):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136593 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Show a mini visualizer for the tile cache tiles
https://bugs.webkit.org/show_bug.cgi?id=104053

Reviewed by Beth Dakin.

Source/WebCore:

Replace the current red/green/yellow scrolling indicator with a
mini map of the tile cache that shows the current tiles, and the
visible rect.

Visibility is controlled via a new preference.

* WebCore.exp.in: Add Settings::setShowTiledScrollingIndicator(bool),
and remove ScrollingTree::setDebugRootLayer(CALayer*)
* WebCore.xcodeproj/project.pbxproj: Remove ScrollingTreeMac.mm which
is no longer needed; it just contained debug layer stuff.
* page/Settings.cpp:
(WebCore::Settings::Settings): Support the new setting.
(WebCore::Settings::setShowTiledScrollingIndicator):
* page/Settings.h:
(WebCore::Settings::showTiledScrollingIndicator):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitNewTreeState): We no longer update the debug
indicator on tree commit.
* page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::hasWheelEventHandlers): Needed for the tiled
scrolling indicator.
(ScrollingTree):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::commitTreeState): Tell the TiledBacking
about the current scrolling mode.
* page/scrolling/mac/ScrollingTreeMac.mm: Removed.
* platform/graphics/TiledBacking.h: Add functions to set the indicator scrolling
mode, and to get the tiled scrolling indicator layer. This has to be parented by
the DrawingArea, to ensure that it's in front of all other layers.
* platform/graphics/ca/mac/TileCache.h:
(WebCore::TileCache::scale): Exposed for the indicator drawing code to use.
* platform/graphics/ca/mac/TileCache.mm:
(-[WebTileCacheMapLayer init]): The indicator has a sublayer which renders the
visible rect frame, owned by it.
(-[WebTileCacheMapLayer drawInContext:]):
(WebCore::TileCache::TileCache): The indicator mode has to be stored here,
since it can be pushed down before we have an indicator layer.
(WebCore::TileCache::~TileCache): Clear the TileCache on the indicator layer, which
may outlive us.
(WebCore::TileCache::revalidateTiles): Call updateTileCoverageMap().
(WebCore::TileCache::updateTileCoverageMap): Resize the indicator layer to fit
within the window, and update the indicator color.
(WebCore::TileCache::tiledScrollingIndicatorLayer): Create and initialize the layer.
(WebCore::TileCache::setScrollingModeIndication):
(WebCore::TileCache::drawTileMapContents): Draw small white rects for the tiles over
an translucent gray background.

Source/WebKit2:

Plumb through a preference that controls the visibility of a tiled
scrolling indicator, and parent that layer in the TiledCoreAnimationDrawingArea.

* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetTiledScrollingIndicatorVisible):
(WKPreferencesGetTiledScrollingIndicatorVisible):
* UIProcess/API/C/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
(TiledCoreAnimationDrawingArea):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
(WebKit::TiledCoreAnimationDrawingArea::mainFrameTiledBacking):
(WebKit::TiledCoreAnimationDrawingArea::updateDebugInfoLayer):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136594 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] V8DOMWrapper shouldn't know about NodeFilter
https://bugs.webkit.org/show_bug.cgi?id=104057

Reviewed by Kentaro Hara.

This patch just moves this code into V8Bindings.h, which is where we
have our other type conversion functions. It's too bad that we still
need to special case NodeFilter, but fixing that is going to be a bit
more work.

* bindings/scripts/CodeGeneratorV8.pm:
(JSValueToNative):
* bindings/v8/V8Binding.cpp:
(WebCore::toNodeFilter):
(WebCore):
* bindings/v8/V8Binding.h:
(WebCore):
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8DOMWrapper.h:
(WebCore):
(V8DOMWrapper):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136595 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Add Windows specific results for some tests following r136558 and r136560.

Tests are indeed passing. The output is just slightly different on Windows.

* platform/win/TestExpectations:
* platform/win/fast/css/image-set-value-not-removed-crash-expected.txt: Added.
* platform/win/fast/images/crossfade-client-not-removed-crash-expected.txt: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136596 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: simplify reportMemoryUsage signature
https://bugs.webkit.org/show_bug.cgi?id=104028

Reviewed by Vsevolod Vlasov.

Removed const& modifier from instrumented pointer type. Was const T* const&,
now it is const T*

Source/WebCore:

* platform/graphics/NativeImagePtr.h:
(WebCore):
* platform/graphics/skia/NativeImageSkia.cpp:
(WebCore::reportMemoryUsage):

Source/WTF:

* wtf/MemoryInstrumentation.cpp:
(WTF::MemoryClassInfo::addRawBuffer):
* wtf/MemoryInstrumentation.h:
(MemoryInstrumentation):
(WTF::MemoryInstrumentation::selectInstrumentationMethod):
(WTF::MemoryInstrumentation::reportObjectMemoryUsage):
(MemoryClassInfo):
(WTF::reportMemoryUsage):
(WTF::MemoryInstrumentation::addObjectImpl):
(WTF):
* wtf/MemoryInstrumentationArrayBufferView.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationHashCountedSet.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationHashMap.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationHashSet.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationListHashSet.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationParsedURL.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationString.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationVector.h:
(WTF::reportMemoryUsage):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136597 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WebKit2] WKWebProcessPlugInBrowserContextControllers should be treated as type WKBrowsingContextControllerType for encoding purposes
https://bugs.webkit.org/show_bug.cgi?id=104063

Reviewed by Sam Weinig.

Objective-C message graphs can include browsing context controller
objects, which are decoded as WKWebProcessPlugInBrowserContextControllers
in the web process plug-in and as WKBrowsingContextControllers in the UI
process. Ensure we correctly encode WKWebProcessPlugInBrowserContextControllers
by treating them as type WKBrowsingContextControllerType.

* Shared/mac/ObjCObjectGraphCoders.mm:
(WebKit::typeFromObject):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136598 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r136597.
http://trac.webkit.org/changeset/136597
https://bugs.webkit.org/show_bug.cgi?id=104065

broke Windows compilation (Requested by yurys on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-12-04

Source/WebCore:

* platform/graphics/NativeImagePtr.h:
(WebCore):
* platform/graphics/skia/NativeImageSkia.cpp:
(WebCore::reportMemoryUsage):

Source/WTF:

* wtf/MemoryInstrumentation.cpp:
(WTF::MemoryClassInfo::addRawBuffer):
* wtf/MemoryInstrumentation.h:
(MemoryInstrumentation):
(WTF::MemoryInstrumentation::selectInstrumentationMethod):
(WTF::MemoryInstrumentation::reportObjectMemoryUsage):
(MemoryClassInfo):
(WTF::reportMemoryUsage):
(WTF::MemoryInstrumentation::addObjectImpl):
(WTF):
* wtf/MemoryInstrumentationArrayBufferView.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationHashCountedSet.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationHashMap.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationHashSet.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationListHashSet.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationParsedURL.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationString.h:
(WTF::reportMemoryUsage):
* wtf/MemoryInstrumentationVector.h:
(WTF::reportMemoryUsage):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136599 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Turn on the new Skia mask blur algorithm.
https://bugs.webkit.org/show_bug.cgi?id=103906

Reviewed by Adrienne Walker.

Source/WebKit/chromium:

* skia_webkit.gyp:

LayoutTests:

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136600 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JSC should be able to report profiling data associated with the IR dumps and disassembly
https://bugs.webkit.org/show_bug.cgi?id=102999

Reviewed by Gavin Barraclough.

Source/JavaScriptCore: 

Added a new profiler to JSC. It's simply called "Profiler" in anticipation of it
ultimately replacing the previous profiling infrastructure. This profiler counts the
number of times that a bytecode executes in various engines, and will record both the
counts and all disassembly and bytecode dumps, into a database that can be at any
time turned into either a JS object using any global object or global data of your
choice, or can be turned into a JSON string, or saved to a file.
        
Currently the only use of this is the new '-p <file>' flag to the jsc command-line.
        
The profiler is always compiled in and normally incurs no execution time cost, but is
only activated when you create a Profiler::Database and install it in
JSGlobalData::m_perBytecodeProfiler. From that point on, all code blocks will be
compiled along with disassembly and bytecode dumps stored into the Profiler::Database,
and all code blocks will have execution counts, which are also stored in the database.
The database will continue to keep information about code blocks alive even after they
are otherwise GC'd.
        
This currently still has some glitches, like the fact that it only counts executions
in the JITs. Doing execution counting in the LLInt might require a bit of a rethink
about how the counting is expressed - currently it is implicit in bytecode, so there
is no easy way to "turn it on" in the LLInt. Also, right now there is no information
recorded about OSR exits or out-of-line stubs. But, even so, it's quite cool, and
gives you a peek into what JSC is doing that would otherwise not be possible.

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::~CodeBlock):
* bytecode/CodeBlock.h:
(CodeBlock):
(JSC::CodeBlock::baselineVersion):
* bytecode/CodeOrigin.cpp:
(JSC::InlineCallFrame::baselineCodeBlock):
(JSC):
* bytecode/CodeOrigin.h:
(InlineCallFrame):
* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGDisassembler.cpp:
(JSC::DFG::Disassembler::dump):
(DFG):
(JSC::DFG::Disassembler::reportToProfiler):
(JSC::DFG::Disassembler::dumpHeader):
(JSC::DFG::Disassembler::append):
(JSC::DFG::Disassembler::createDumpList):
* dfg/DFGDisassembler.h:
(Disassembler):
(JSC::DFG::Disassembler::DumpedOp::DumpedOp):
(DumpedOp):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::dumpCodeOrigin):
(JSC::DFG::Graph::dump):
* dfg/DFGGraph.h:
(Graph):
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::JITCompiler):
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):
* dfg/DFGNode.h:
(Node):
(JSC::DFG::Node::hasExecutionCounter):
(JSC::DFG::Node::executionCounter):
* dfg/DFGNodeType.h:
(DFG):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* jit/JIT.cpp:
(JSC::JIT::JIT):
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompile):
* jit/JIT.h:
(JIT):
* jit/JITDisassembler.cpp:
(JSC::JITDisassembler::dump):
(JSC::JITDisassembler::reportToProfiler):
(JSC):
(JSC::JITDisassembler::dumpHeader):
(JSC::JITDisassembler::firstSlowLabel):
(JSC::JITDisassembler::dumpVectorForInstructions):
(JSC::JITDisassembler::dumpForInstructions):
(JSC::JITDisassembler::reportInstructions):
* jit/JITDisassembler.h:
(JITDisassembler):
(DumpedOp):
* jsc.cpp:
(CommandLine::CommandLine):
(CommandLine):
(printUsageStatement):
(CommandLine::parseArguments):
(jscmain):
* profiler/ProfilerBytecode.cpp: Added.
(Profiler):
(JSC::Profiler::Bytecode::toJS):
* profiler/ProfilerBytecode.h: Added.
(Profiler):
(Bytecode):
(JSC::Profiler::Bytecode::Bytecode):
(JSC::Profiler::Bytecode::bytecodeIndex):
(JSC::Profiler::Bytecode::description):
(JSC::Profiler::getBytecodeIndexForBytecode):
* profiler/ProfilerBytecodes.cpp: Added.
(Profiler):
(JSC::Profiler::Bytecodes::Bytecodes):
(JSC::Profiler::Bytecodes::~Bytecodes):
(JSC::Profiler::Bytecodes::indexForBytecodeIndex):
(JSC::Profiler::Bytecodes::forBytecodeIndex):
(JSC::Profiler::Bytecodes::dump):
(JSC::Profiler::Bytecodes::toJS):
* profiler/ProfilerBytecodes.h: Added.
(Profiler):
(Bytecodes):
(JSC::Profiler::Bytecodes::append):
(JSC::Profiler::Bytecodes::id):
(JSC::Profiler::Bytecodes::hash):
(JSC::Profiler::Bytecodes::size):
(JSC::Profiler::Bytecodes::at):
* profiler/ProfilerCompilation.cpp: Added.
(Profiler):
(JSC::Profiler::Compilation::Compilation):
(JSC::Profiler::Compilation::~Compilation):
(JSC::Profiler::Compilation::addDescription):
(JSC::Profiler::Compilation::executionCounterFor):
(JSC::Profiler::Compilation::toJS):
* profiler/ProfilerCompilation.h: Added.
(Profiler):
(Compilation):
(JSC::Profiler::Compilation::bytecodes):
(JSC::Profiler::Compilation::kind):
* profiler/ProfilerCompilationKind.cpp: Added.
(WTF):
(WTF::printInternal):
* profiler/ProfilerCompilationKind.h: Added.
(Profiler):
(WTF):
* profiler/ProfilerCompiledBytecode.cpp: Added.
(Profiler):
(JSC::Profiler::CompiledBytecode::CompiledBytecode):
(JSC::Profiler::CompiledBytecode::~CompiledBytecode):
(JSC::Profiler::CompiledBytecode::toJS):
* profiler/ProfilerCompiledBytecode.h: Added.
(Profiler):
(CompiledBytecode):
(JSC::Profiler::CompiledBytecode::originStack):
(JSC::Profiler::CompiledBytecode::description):
* profiler/ProfilerDatabase.cpp: Added.
(Profiler):
(JSC::Profiler::Database::Database):
(JSC::Profiler::Database::~Database):
(JSC::Profiler::Database::addBytecodes):
(JSC::Profiler::Database::ensureBytecodesFor):
(JSC::Profiler::Database::notifyDestruction):
(JSC::Profiler::Database::newCompilation):
(JSC::Profiler::Database::toJS):
(JSC::Profiler::Database::toJSON):
(JSC::Profiler::Database::save):
* profiler/ProfilerDatabase.h: Added.
(Profiler):
(Database):
* profiler/ProfilerExecutionCounter.h: Added.
(Profiler):
(ExecutionCounter):
(JSC::Profiler::ExecutionCounter::ExecutionCounter):
(JSC::Profiler::ExecutionCounter::address):
(JSC::Profiler::ExecutionCounter::count):
* profiler/ProfilerOrigin.cpp: Added.
(Profiler):
(JSC::Profiler::Origin::Origin):
(JSC::Profiler::Origin::dump):
(JSC::Profiler::Origin::toJS):
* profiler/ProfilerOrigin.h: Added.
(JSC):
(Profiler):
(Origin):
(JSC::Profiler::Origin::Origin):
(JSC::Profiler::Origin::operator!):
(JSC::Profiler::Origin::bytecodes):
(JSC::Profiler::Origin::bytecodeIndex):
(JSC::Profiler::Origin::operator!=):
(JSC::Profiler::Origin::operator==):
(JSC::Profiler::Origin::hash):
(JSC::Profiler::Origin::isHashTableDeletedValue):
(JSC::Profiler::OriginHash::hash):
(JSC::Profiler::OriginHash::equal):
(OriginHash):
(WTF):
* profiler/ProfilerOriginStack.cpp: Added.
(Profiler):
(JSC::Profiler::OriginStack::OriginStack):
(JSC::Profiler::OriginStack::~OriginStack):
(JSC::Profiler::OriginStack::append):
(JSC::Profiler::OriginStack::operator==):
(JSC::Profiler::OriginStack::hash):
(JSC::Profiler::OriginStack::dump):
(JSC::Profiler::OriginStack::toJS):
* profiler/ProfilerOriginStack.h: Added.
(JSC):
(Profiler):
(OriginStack):
(JSC::Profiler::OriginStack::OriginStack):
(JSC::Profiler::OriginStack::operator!):
(JSC::Profiler::OriginStack::size):
(JSC::Profiler::OriginStack::fromBottom):
(JSC::Profiler::OriginStack::fromTop):
(JSC::Profiler::OriginStack::isHashTableDeletedValue):
(JSC::Profiler::OriginStackHash::hash):
(JSC::Profiler::OriginStackHash::equal):
(OriginStackHash):
(WTF):
* runtime/CommonIdentifiers.h:
* runtime/ExecutionHarness.h:
(JSC::prepareForExecution):
(JSC::prepareFunctionForExecution):
* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
(JSC::JSGlobalData::~JSGlobalData):
* runtime/JSGlobalData.h:
(JSGlobalData):
* runtime/Options.h:
(JSC):

Source/WTF: 

Made some minor changes to support the new profiler. FileOutputStream now has an
open() method, and DataLog uses it. StringPrintStream has a reset() method, which
allows you to reuse the same StringPrintStream for creating multiple strings.
SegmentedVector now has a const operator[]. And, WTFString now can do fromUTF8() on
a CString directly.

* wtf/DataLog.cpp:
(WTF::initializeLogFileOnce):
* wtf/FilePrintStream.cpp:
(WTF::FilePrintStream::open):
(WTF):
* wtf/FilePrintStream.h:
* wtf/SegmentedVector.h:
(WTF::SegmentedVector::at):
(SegmentedVector):
(WTF::SegmentedVector::operator[]):
* wtf/StringPrintStream.cpp:
(WTF::StringPrintStream::reset):
(WTF):
* wtf/StringPrintStream.h:
(StringPrintStream):
* wtf/text/WTFString.cpp:
(WTF::String::fromUTF8):
(WTF):
* wtf/text/WTFString.h:
(String):

Tools: 

Added a tool that allows you to grok the output from JSC's new profiler. Currently,
this still gets confused a bit about the execution counts of a method running
standalone versus a method running inlined, but other than that, it's pretty cool.
See the attached "sampling profiling session" attached to the bug to see it in
action.
        
Also had to feed EFL's build system.

* DumpRenderTree/efl/CMakeLists.txt:
* Scripts/display-profiler-output: Added.



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