<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[178042] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/178042">178042</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2015-01-07 11:32:05 -0800 (Wed, 07 Jan 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Unreviewed, rolling out <a href="http://trac.webkit.org/projects/webkit/changeset/178039">r178039</a>.
https://bugs.webkit.org/show_bug.cgi?id=140187

Breaks ObjC Inspector Protocol (Requested by JoePeck on
#webkit).

Reverted changeset:

&quot;Web Inspector: purge PassRefPtr from Inspector code and use
Ref for typed and untyped protocol objects&quot;
https://bugs.webkit.org/show_bug.cgi?id=140053
http://trac.webkit.org/changeset/178039</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCorebindingsScriptValuecpp">trunk/Source/JavaScriptCore/bindings/ScriptValue.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebindingsScriptValueh">trunk/Source/JavaScriptCore/bindings/ScriptValue.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorConsoleMessagecpp">trunk/Source/JavaScriptCore/inspector/ConsoleMessage.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorContentSearchUtilitiescpp">trunk/Source/JavaScriptCore/inspector/ContentSearchUtilities.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorContentSearchUtilitiesh">trunk/Source/JavaScriptCore/inspector/ContentSearchUtilities.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInjectedScriptcpp">trunk/Source/JavaScriptCore/inspector/InjectedScript.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInjectedScripth">trunk/Source/JavaScriptCore/inspector/InjectedScript.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInjectedScriptBasecpp">trunk/Source/JavaScriptCore/inspector/InjectedScriptBase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInspectorBackendDispatchercpp">trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInspectorBackendDispatcherh">trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInspectorEnvironmenth">trunk/Source/JavaScriptCore/inspector/InspectorEnvironment.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInspectorProtocolTypesh">trunk/Source/JavaScriptCore/inspector/InspectorProtocolTypes.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInspectorValuescpp">trunk/Source/JavaScriptCore/inspector/InspectorValues.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInspectorValuesh">trunk/Source/JavaScriptCore/inspector/InspectorValues.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorJSGlobalObjectConsoleClientcpp">trunk/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorJSGlobalObjectConsoleClienth">trunk/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorJSGlobalObjectInspectorControllercpp">trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorJSGlobalObjectInspectorControllerh">trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorScriptCallFramecpp">trunk/Source/JavaScriptCore/inspector/ScriptCallFrame.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorScriptCallFrameh">trunk/Source/JavaScriptCore/inspector/ScriptCallFrame.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorScriptCallStackcpp">trunk/Source/JavaScriptCore/inspector/ScriptCallStack.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorScriptCallStackh">trunk/Source/JavaScriptCore/inspector/ScriptCallStack.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorAgentcpp">trunk/Source/JavaScriptCore/inspector/agents/InspectorAgent.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorAgenth">trunk/Source/JavaScriptCore/inspector/agents/InspectorAgent.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorDebuggerAgentcpp">trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorDebuggerAgenth">trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorRuntimeAgentcpp">trunk/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorRuntimeAgenth">trunk/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegencpp_generatorpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegencpp_generator_templatespy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator_templates.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_frontend_dispatcher_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_frontend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_backend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_frontend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_types_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithasyncattributejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithoptionalcallreturnparametersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpecteddomainswithvaryingcommandsizesjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedenumvaluesjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/enum-values.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedeventswithoptionalparametersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/events-with-optional-parameters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedgeneratedomainswithfeatureguardsjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedsametypeiddifferentdomainjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/same-type-id-different-domain.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedshadowedoptionaltypesettersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationaliasedprimitivetypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationarraytypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationenumtypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-enum-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationobjecttypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-object-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtyperequiringruntimecastsjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCorereplayEncodedValuecpp">trunk/Source/JavaScriptCore/replay/EncodedValue.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorereplayEncodedValueh">trunk/Source/JavaScriptCore/replay/EncodedValue.h</a></li>
<li><a href="#trunkSourceJavaScriptCorereplayscriptsCodeGeneratorReplayInputspy">trunk/Source/JavaScriptCore/replay/scripts/CodeGeneratorReplayInputs.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeConsoleClientcpp">trunk/Source/JavaScriptCore/runtime/ConsoleClient.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeConsoleClienth">trunk/Source/JavaScriptCore/runtime/ConsoleClient.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeTypeSetcpp">trunk/Source/JavaScriptCore/runtime/TypeSet.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeTypeSeth">trunk/Source/JavaScriptCore/runtime/TypeSet.h</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtfStopwatchh">trunk/Source/WTF/wtf/Stopwatch.h</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModuleswebdatabaseDatabaseManagercpp">trunk/Source/WebCore/Modules/webdatabase/DatabaseManager.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumenth">trunk/Source/WebCore/dom/Document.h</a></li>
<li><a href="#trunkSourceWebCoredomScriptExecutionContextcpp">trunk/Source/WebCore/dom/ScriptExecutionContext.cpp</a></li>
<li><a href="#trunkSourceWebCoredomScriptExecutionContexth">trunk/Source/WebCore/dom/ScriptExecutionContext.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserXSSAuditorDelegatecpp">trunk/Source/WebCore/html/parser/XSSAuditorDelegate.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorCommandLineAPIHostcpp">trunk/Source/WebCore/inspector/CommandLineAPIHost.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorCommandLineAPIHosth">trunk/Source/WebCore/inspector/CommandLineAPIHost.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorApplicationCacheAgentcpp">trunk/Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorApplicationCacheAgenth">trunk/Source/WebCore/inspector/InspectorApplicationCacheAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorCSSAgentcpp">trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorCSSAgenth">trunk/Source/WebCore/inspector/InspectorCSSAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorConsoleInstrumentationh">trunk/Source/WebCore/inspector/InspectorConsoleInstrumentation.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorControllercpp">trunk/Source/WebCore/inspector/InspectorController.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorControllerh">trunk/Source/WebCore/inspector/InspectorController.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDOMAgentcpp">trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDOMAgenth">trunk/Source/WebCore/inspector/InspectorDOMAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDOMDebuggerAgentcpp">trunk/Source/WebCore/inspector/InspectorDOMDebuggerAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDOMDebuggerAgenth">trunk/Source/WebCore/inspector/InspectorDOMDebuggerAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDOMStorageAgentcpp">trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDOMStorageAgenth">trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDatabaseAgentcpp">trunk/Source/WebCore/inspector/InspectorDatabaseAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDatabaseAgenth">trunk/Source/WebCore/inspector/InspectorDatabaseAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDatabaseInstrumentationh">trunk/Source/WebCore/inspector/InspectorDatabaseInstrumentation.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDatabaseResourcecpp">trunk/Source/WebCore/inspector/InspectorDatabaseResource.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDatabaseResourceh">trunk/Source/WebCore/inspector/InspectorDatabaseResource.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorFrontendHosth">trunk/Source/WebCore/inspector/InspectorFrontendHost.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorIndexedDBAgentcpp">trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorIndexedDBAgenth">trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorInstrumentationcpp">trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorInstrumentationh">trunk/Source/WebCore/inspector/InspectorInstrumentation.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorLayerTreeAgentcpp">trunk/Source/WebCore/inspector/InspectorLayerTreeAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorLayerTreeAgenth">trunk/Source/WebCore/inspector/InspectorLayerTreeAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorOverlaycpp">trunk/Source/WebCore/inspector/InspectorOverlay.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorOverlayh">trunk/Source/WebCore/inspector/InspectorOverlay.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorPageAgentcpp">trunk/Source/WebCore/inspector/InspectorPageAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorPageAgenth">trunk/Source/WebCore/inspector/InspectorPageAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorReplayAgentcpp">trunk/Source/WebCore/inspector/InspectorReplayAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorReplayAgenth">trunk/Source/WebCore/inspector/InspectorReplayAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorResourceAgentcpp">trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorResourceAgenth">trunk/Source/WebCore/inspector/InspectorResourceAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorStyleSheetcpp">trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorStyleSheeth">trunk/Source/WebCore/inspector/InspectorStyleSheet.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorTimelineAgentcpp">trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorTimelineAgenth">trunk/Source/WebCore/inspector/InspectorTimelineAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorWorkerAgentcpp">trunk/Source/WebCore/inspector/InspectorWorkerAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorWorkerAgenth">trunk/Source/WebCore/inspector/InspectorWorkerAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorNetworkResourcesDatacpp">trunk/Source/WebCore/inspector/NetworkResourcesData.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorNetworkResourcesDatah">trunk/Source/WebCore/inspector/NetworkResourcesData.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorTimelineRecordFactorycpp">trunk/Source/WebCore/inspector/TimelineRecordFactory.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorTimelineRecordFactoryh">trunk/Source/WebCore/inspector/TimelineRecordFactory.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorWorkerInspectorControllercpp">trunk/Source/WebCore/inspector/WorkerInspectorController.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorWorkerInspectorControllerh">trunk/Source/WebCore/inspector/WorkerInspectorController.h</a></li>
<li><a href="#trunkSourceWebCorepagePageConsoleClientcpp">trunk/Source/WebCore/page/PageConsoleClient.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageConsoleClienth">trunk/Source/WebCore/page/PageConsoleClient.h</a></li>
<li><a href="#trunkSourceWebCorereplayReplayControllercpp">trunk/Source/WebCore/replay/ReplayController.cpp</a></li>
<li><a href="#trunkSourceWebCorereplayReplayInputCreationMethodscpp">trunk/Source/WebCore/replay/ReplayInputCreationMethods.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersSharedWorkerGlobalScopecpp">trunk/Source/WebCore/workers/SharedWorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersSharedWorkerGlobalScopeh">trunk/Source/WebCore/workers/SharedWorkerGlobalScope.h</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerGlobalScopecpp">trunk/Source/WebCore/workers/WorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerGlobalScopeh">trunk/Source/WebCore/workers/WorkerGlobalScope.h</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitWebKitvcxprojWebKitExportGeneratorWebKitExportsdefin">trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/ChangeLog        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2015-01-07  Commit Queue  &lt;commit-queue@webkit.org&gt;
+
+        Unreviewed, rolling out r178039.
+        https://bugs.webkit.org/show_bug.cgi?id=140187
+
+        Breaks ObjC Inspector Protocol (Requested by JoePeck on
+        #webkit).
+
+        Reverted changeset:
+
+        &quot;Web Inspector: purge PassRefPtr from Inspector code and use
+        Ref for typed and untyped protocol objects&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=140053
+        http://trac.webkit.org/changeset/178039
+
</ins><span class="cx"> 2015-01-06  Brian J. Burg  &lt;burg@cs.washington.edu&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: purge PassRefPtr from Inspector code and use Ref for typed and untyped protocol objects
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebindingsScriptValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bindings/ScriptValue.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bindings/ScriptValue.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/bindings/ScriptValue.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><del>-static RefPtr&lt;InspectorValue&gt; jsToInspectorValue(ExecState* scriptState, JSValue value, int maxDepth)
</del><ins>+static PassRefPtr&lt;InspectorValue&gt; jsToInspectorValue(ExecState* scriptState, JSValue value, int maxDepth)
</ins><span class="cx"> {
</span><span class="cx">     if (!value) {
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="lines">@@ -123,7 +123,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (value.isObject()) {
</span><span class="cx">         if (isJSArray(value)) {
</span><del>-            Ref&lt;InspectorArray&gt; inspectorArray = InspectorArray::create();
</del><ins>+            RefPtr&lt;InspectorArray&gt; inspectorArray = InspectorArray::create();
</ins><span class="cx">             JSArray* array = asArray(value);
</span><span class="cx">             unsigned length = array-&gt;length();
</span><span class="cx">             for (unsigned i = 0; i &lt; length; i++) {
</span><span class="lines">@@ -131,11 +131,11 @@
</span><span class="cx">                 RefPtr&lt;InspectorValue&gt; elementValue = jsToInspectorValue(scriptState, element, maxDepth);
</span><span class="cx">                 if (!elementValue)
</span><span class="cx">                     return nullptr;
</span><del>-                inspectorArray-&gt;pushValue(WTF::move(elementValue));
</del><ins>+                inspectorArray-&gt;pushValue(elementValue);
</ins><span class="cx">             }
</span><del>-            return WTF::move(inspectorArray);
</del><ins>+            return inspectorArray;
</ins><span class="cx">         }
</span><del>-        Ref&lt;InspectorObject&gt; inspectorObject = InspectorObject::create();
</del><ins>+        RefPtr&lt;InspectorObject&gt; inspectorObject = InspectorObject::create();
</ins><span class="cx">         JSObject* object = value.getObject();
</span><span class="cx">         PropertyNameArray propertyNames(scriptState);
</span><span class="cx">         object-&gt;methodTable()-&gt;getOwnPropertyNames(object, scriptState, propertyNames, ExcludeDontEnumProperties);
</span><span class="lines">@@ -145,16 +145,16 @@
</span><span class="cx">             RefPtr&lt;InspectorValue&gt; inspectorValue = jsToInspectorValue(scriptState, propertyValue, maxDepth);
</span><span class="cx">             if (!inspectorValue)
</span><span class="cx">                 return nullptr;
</span><del>-            inspectorObject-&gt;setValue(name.string(), WTF::move(inspectorValue));
</del><ins>+            inspectorObject-&gt;setValue(name.string(), inspectorValue);
</ins><span class="cx">         }
</span><del>-        return WTF::move(inspectorObject);
</del><ins>+        return inspectorObject;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;InspectorValue&gt; ScriptValue::toInspectorValue(ExecState* scriptState) const
</del><ins>+PassRefPtr&lt;InspectorValue&gt; ScriptValue::toInspectorValue(ExecState* scriptState) const
</ins><span class="cx"> {
</span><span class="cx">     JSLockHolder holder(scriptState);
</span><span class="cx">     return jsToInspectorValue(scriptState, m_value.get(), InspectorValue::maxDepth);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebindingsScriptValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bindings/ScriptValue.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bindings/ScriptValue.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/bindings/ScriptValue.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">     bool operator==(const ScriptValue&amp; other) const { return m_value == other.m_value; }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><del>-    RefPtr&lt;Inspector::InspectorValue&gt; toInspectorValue(JSC::ExecState*) const;
</del><ins>+    PassRefPtr&lt;Inspector::InspectorValue&gt; toInspectorValue(JSC::ExecState*) const;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorConsoleMessagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/ConsoleMessage.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/ConsoleMessage.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/ConsoleMessage.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -181,11 +181,10 @@
</span><span class="cx"> 
</span><span class="cx"> void ConsoleMessage::addToFrontend(InspectorConsoleFrontendDispatcher* consoleFrontendDispatcher, Inspector::InjectedScriptManager* injectedScriptManager, bool generatePreview)
</span><span class="cx"> {
</span><del>-    Ref&lt;Inspector::Protocol::Console::ConsoleMessage&gt; jsonObj = Inspector::Protocol::Console::ConsoleMessage::create()
</del><ins>+    RefPtr&lt;Inspector::Protocol::Console::ConsoleMessage&gt; jsonObj = Inspector::Protocol::Console::ConsoleMessage::create()
</ins><span class="cx">         .setSource(messageSourceValue(m_source))
</span><span class="cx">         .setLevel(messageLevelValue(m_level))
</span><del>-        .setText(m_message)
-        .release();
</del><ins>+        .setText(m_message);
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: only send out type for ConsoleAPI source messages.
</span><span class="cx">     jsonObj-&gt;setType(messageTypeValue(m_type));
</span><span class="lines">@@ -200,7 +199,7 @@
</span><span class="cx">     if (m_arguments &amp;&amp; m_arguments-&gt;argumentCount()) {
</span><span class="cx">         InjectedScript injectedScript = injectedScriptManager-&gt;injectedScriptFor(m_arguments-&gt;globalState());
</span><span class="cx">         if (!injectedScript.hasNoValue()) {
</span><del>-            Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::RemoteObject&gt;&gt; jsonArgs = Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::RemoteObject&gt;::create();
</del><ins>+            RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::RemoteObject&gt;&gt; jsonArgs = Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::RemoteObject&gt;::create();
</ins><span class="cx">             if (m_type == MessageType::Table &amp;&amp; generatePreview &amp;&amp; m_arguments-&gt;argumentCount()) {
</span><span class="cx">                 Deprecated::ScriptValue table = m_arguments-&gt;argumentAt(0);
</span><span class="cx">                 Deprecated::ScriptValue columns = m_arguments-&gt;argumentCount() &gt; 1 ? m_arguments-&gt;argumentAt(1) : Deprecated::ScriptValue();
</span><span class="lines">@@ -209,7 +208,7 @@
</span><span class="cx">                     ASSERT_NOT_REACHED();
</span><span class="cx">                     return;
</span><span class="cx">                 }
</span><del>-                jsonArgs-&gt;addItem(inspectorValue.copyRef());
</del><ins>+                jsonArgs-&gt;addItem(inspectorValue);
</ins><span class="cx">             } else {
</span><span class="cx">                 for (unsigned i = 0; i &lt; m_arguments-&gt;argumentCount(); ++i) {
</span><span class="cx">                     RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; inspectorValue = injectedScript.wrapObject(m_arguments-&gt;argumentAt(i), ASCIILiteral(&quot;console&quot;), generatePreview);
</span><span class="lines">@@ -217,17 +216,17 @@
</span><span class="cx">                         ASSERT_NOT_REACHED();
</span><span class="cx">                         return;
</span><span class="cx">                     }
</span><del>-                    jsonArgs-&gt;addItem(inspectorValue.copyRef());
</del><ins>+                    jsonArgs-&gt;addItem(inspectorValue);
</ins><span class="cx">                 }
</span><span class="cx">             }
</span><del>-            jsonObj-&gt;setParameters(WTF::move(jsonArgs));
</del><ins>+            jsonObj-&gt;setParameters(jsonArgs);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (m_callStack)
</span><span class="cx">         jsonObj-&gt;setStackTrace(m_callStack-&gt;buildInspectorArray());
</span><span class="cx"> 
</span><del>-    consoleFrontendDispatcher-&gt;messageAdded(WTF::move(jsonObj));
</del><ins>+    consoleFrontendDispatcher-&gt;messageAdded(jsonObj);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ConsoleMessage::updateRepeatCountInConsole(InspectorConsoleFrontendDispatcher* consoleFrontendDispatcher)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorContentSearchUtilitiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/ContentSearchUtilities.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/ContentSearchUtilities.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/ContentSearchUtilities.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -120,7 +120,7 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;Inspector::Protocol::GenericTypes::SearchMatch&gt; buildObjectForSearchMatch(size_t lineNumber, const String&amp; lineContent)
</del><ins>+static PassRefPtr&lt;Inspector::Protocol::GenericTypes::SearchMatch&gt; buildObjectForSearchMatch(size_t lineNumber, const String&amp; lineContent)
</ins><span class="cx"> {
</span><span class="cx">     return Inspector::Protocol::GenericTypes::SearchMatch::create()
</span><span class="cx">         .setLineNumber(lineNumber)
</span><span class="lines">@@ -153,17 +153,15 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::GenericTypes::SearchMatch&gt;&gt; searchInTextByLines(const String&amp; text, const String&amp; query, const bool caseSensitive, const bool isRegex)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::GenericTypes::SearchMatch&gt;&gt; searchInTextByLines(const String&amp; text, const String&amp; query, const bool caseSensitive, const bool isRegex)
</ins><span class="cx"> {
</span><del>-    Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::GenericTypes::SearchMatch&gt;&gt; result = Inspector::Protocol::Array&lt;Inspector::Protocol::GenericTypes::SearchMatch&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::GenericTypes::SearchMatch&gt;&gt; result = Inspector::Protocol::Array&lt;Inspector::Protocol::GenericTypes::SearchMatch&gt;::create();
</ins><span class="cx"> 
</span><span class="cx">     JSC::Yarr::RegularExpression regex = ContentSearchUtilities::createSearchRegex(query, caseSensitive, isRegex);
</span><span class="cx">     Vector&lt;std::pair&lt;size_t, String&gt;&gt; matches = getRegularExpressionMatchesByLines(regex, text);
</span><span class="cx"> 
</span><del>-    for (const auto&amp; match : matches) {
-        Ref&lt;Inspector::Protocol::GenericTypes::SearchMatch&gt; matchObject = buildObjectForSearchMatch(match.first, match.second);
-        result-&gt;addItem(WTF::move(matchObject));
-    }
</del><ins>+    for (const auto&amp; match : matches)
+        result-&gt;addItem(buildObjectForSearchMatch(match.first, match.second));
</ins><span class="cx"> 
</span><span class="cx">     return result;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorContentSearchUtilitiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/ContentSearchUtilities.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/ContentSearchUtilities.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/ContentSearchUtilities.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> 
</span><span class="cx"> JS_EXPORT_PRIVATE JSC::Yarr::RegularExpression createSearchRegex(const String&amp; query, bool caseSensitive, bool isRegex);
</span><span class="cx"> JS_EXPORT_PRIVATE int countRegularExpressionMatches(const JSC::Yarr::RegularExpression&amp;, const String&amp;);
</span><del>-JS_EXPORT_PRIVATE Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::GenericTypes::SearchMatch&gt;&gt; searchInTextByLines(const String&amp; text, const String&amp; query, const bool caseSensitive, const bool isRegex);
</del><ins>+JS_EXPORT_PRIVATE PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::GenericTypes::SearchMatch&gt;&gt; searchInTextByLines(const String&amp; text, const String&amp; query, const bool caseSensitive, const bool isRegex);
</ins><span class="cx"> JS_EXPORT_PRIVATE TextPosition textPositionFromOffset(size_t offset, const Vector&lt;size_t&gt;&amp; lineEndings);
</span><span class="cx"> JS_EXPORT_PRIVATE std::unique_ptr&lt;Vector&lt;size_t&gt;&gt; lineEndings(const String&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInjectedScriptcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InjectedScript.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InjectedScript.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/InjectedScript.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    *result = BindingTraits&lt;Inspector::Protocol::Debugger::FunctionDetails&gt;::runtimeCast(WTF::move(resultValue));
</del><ins>+    *result = BindingTraits&lt;Inspector::Protocol::Debugger::FunctionDetails&gt;::runtimeCast(resultValue);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InjectedScript::getProperties(ErrorString&amp; errorString, const String&amp; objectId, bool ownProperties, RefPtr&lt;Array&lt;Inspector::Protocol::Runtime::PropertyDescriptor&gt;&gt;* properties)
</span><span class="lines">@@ -122,7 +122,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    *properties = BindingTraits&lt;Array&lt;Inspector::Protocol::Runtime::PropertyDescriptor&gt;&gt;::runtimeCast(WTF::move(result));
</del><ins>+    *properties = BindingTraits&lt;Array&lt;Inspector::Protocol::Runtime::PropertyDescriptor&gt;&gt;::runtimeCast(result);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InjectedScript::getInternalProperties(ErrorString&amp; errorString, const String&amp; objectId, RefPtr&lt;Array&lt;Inspector::Protocol::Runtime::InternalPropertyDescriptor&gt;&gt;* properties)
</span><span class="lines">@@ -137,12 +137,12 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto array = BindingTraits&lt;Array&lt;Inspector::Protocol::Runtime::InternalPropertyDescriptor&gt;&gt;::runtimeCast(WTF::move(result));
</del><ins>+    auto array = BindingTraits&lt;Array&lt;Inspector::Protocol::Runtime::InternalPropertyDescriptor&gt;&gt;::runtimeCast(result);
</ins><span class="cx">     if (array-&gt;length() &gt; 0)
</span><span class="cx">         *properties = array;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Array&lt;Inspector::Protocol::Debugger::CallFrame&gt;&gt; InjectedScript::wrapCallFrames(const Deprecated::ScriptValue&amp; callFrames)
</del><ins>+PassRefPtr&lt;Array&lt;Inspector::Protocol::Debugger::CallFrame&gt;&gt; InjectedScript::wrapCallFrames(const Deprecated::ScriptValue&amp; callFrames)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!hasNoValue());
</span><span class="cx">     Deprecated::ScriptFunctionCall function(injectedScriptObject(), ASCIILiteral(&quot;wrapCallFrames&quot;), inspectorEnvironment()-&gt;functionCallHandler());
</span><span class="lines">@@ -153,12 +153,12 @@
</span><span class="cx">     ASSERT(!hadException);
</span><span class="cx">     RefPtr&lt;InspectorValue&gt; result = callFramesValue.toInspectorValue(scriptState());
</span><span class="cx">     if (result-&gt;type() == InspectorValue::Type::Array)
</span><del>-        return BindingTraits&lt;Array&lt;Inspector::Protocol::Debugger::CallFrame&gt;&gt;::runtimeCast(WTF::move(result)).releaseNonNull();
</del><ins>+        return BindingTraits&lt;Array&lt;Inspector::Protocol::Debugger::CallFrame&gt;&gt;::runtimeCast(result);
</ins><span class="cx"> 
</span><span class="cx">     return Array&lt;Inspector::Protocol::Debugger::CallFrame&gt;::create();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; InjectedScript::wrapObject(const Deprecated::ScriptValue&amp; value, const String&amp; groupName, bool generatePreview) const
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; InjectedScript::wrapObject(const Deprecated::ScriptValue&amp; value, const String&amp; groupName, bool generatePreview) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!hasNoValue());
</span><span class="cx">     Deprecated::ScriptFunctionCall wrapFunction(injectedScriptObject(), ASCIILiteral(&quot;wrapObject&quot;), inspectorEnvironment()-&gt;functionCallHandler());
</span><span class="lines">@@ -179,7 +179,7 @@
</span><span class="cx">     return BindingTraits&lt;Inspector::Protocol::Runtime::RemoteObject&gt;::runtimeCast(resultObject);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; InjectedScript::wrapTable(const Deprecated::ScriptValue&amp; table, const Deprecated::ScriptValue&amp; columns) const
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; InjectedScript::wrapTable(const Deprecated::ScriptValue&amp; table, const Deprecated::ScriptValue&amp; columns) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!hasNoValue());
</span><span class="cx">     Deprecated::ScriptFunctionCall wrapFunction(injectedScriptObject(), ASCIILiteral(&quot;wrapTable&quot;), inspectorEnvironment()-&gt;functionCallHandler());
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInjectedScripth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InjectedScript.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InjectedScript.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/InjectedScript.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -62,9 +62,9 @@
</span><span class="cx">     void getProperties(ErrorString&amp;, const String&amp; objectId, bool ownProperties, RefPtr&lt;Protocol::Array&lt;Protocol::Runtime::PropertyDescriptor&gt;&gt;* result);
</span><span class="cx">     void getInternalProperties(ErrorString&amp;, const String&amp; objectId, RefPtr&lt;Protocol::Array&lt;Protocol::Runtime::InternalPropertyDescriptor&gt;&gt;* result);
</span><span class="cx"> 
</span><del>-    Ref&lt;Protocol::Array&lt;Protocol::Debugger::CallFrame&gt;&gt; wrapCallFrames(const Deprecated::ScriptValue&amp;);
-    RefPtr&lt;Protocol::Runtime::RemoteObject&gt; wrapObject(const Deprecated::ScriptValue&amp;, const String&amp; groupName, bool generatePreview = false) const;
-    RefPtr&lt;Protocol::Runtime::RemoteObject&gt; wrapTable(const Deprecated::ScriptValue&amp; table, const Deprecated::ScriptValue&amp; columns) const;
</del><ins>+    PassRefPtr&lt;Protocol::Array&lt;Protocol::Debugger::CallFrame&gt;&gt; wrapCallFrames(const Deprecated::ScriptValue&amp;);
+    PassRefPtr&lt;Protocol::Runtime::RemoteObject&gt; wrapObject(const Deprecated::ScriptValue&amp;, const String&amp; groupName, bool generatePreview = false) const;
+    PassRefPtr&lt;Protocol::Runtime::RemoteObject&gt; wrapTable(const Deprecated::ScriptValue&amp; table, const Deprecated::ScriptValue&amp; columns) const;
</ins><span class="cx"> 
</span><span class="cx">     void setExceptionValue(const Deprecated::ScriptValue&amp;);
</span><span class="cx">     void clearExceptionValue();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInjectedScriptBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InjectedScriptBase.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InjectedScriptBase.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/InjectedScriptBase.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -135,20 +135,15 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;InspectorObject&gt; resultObject;
-    if (!resultPair-&gt;getObject(ASCIILiteral(&quot;result&quot;), resultObject)) {
</del><ins>+    RefPtr&lt;InspectorObject&gt; resultObject = resultPair-&gt;getObject(ASCIILiteral(&quot;result&quot;));
+    bool wasThrownVal = false;
+    if (!resultObject || !resultPair-&gt;getBoolean(ASCIILiteral(&quot;wasThrown&quot;), wasThrownVal)) {
</ins><span class="cx">         errorString = ASCIILiteral(&quot;Internal error: result is not a pair of value and wasThrown flag&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    bool wasThrownValue = false;
-    if (!resultPair-&gt;getBoolean(ASCIILiteral(&quot;wasThrown&quot;), wasThrownValue)) {
-        errorString = ASCIILiteral(&quot;Internal error: result is not a pair of value and wasThrown flag&quot;);
-        return;
-    }
-
</del><span class="cx">     *objectResult = BindingTraits&lt;Protocol::Runtime::RemoteObject&gt;::runtimeCast(resultObject);
</span><del>-    *wasThrown = wasThrownValue;
</del><ins>+    *wasThrown = wasThrownVal;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace Inspector
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInspectorBackendDispatchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -36,8 +36,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><del>-InspectorBackendDispatcher::CallbackBase::CallbackBase(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; backendDispatcher, int id)
-    : m_backendDispatcher(WTF::move(backendDispatcher))
</del><ins>+InspectorBackendDispatcher::CallbackBase::CallbackBase(PassRefPtr&lt;InspectorBackendDispatcher&gt; backendDispatcher, int id)
+    : m_backendDispatcher(backendDispatcher)
</ins><span class="cx">     , m_id(id)
</span><span class="cx">     , m_alreadySent(false)
</span><span class="cx"> {
</span><span class="lines">@@ -54,18 +54,18 @@
</span><span class="cx">     sendIfActive(nullptr, error);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackendDispatcher::CallbackBase::sendIfActive(RefPtr&lt;InspectorObject&gt;&amp;&amp; partialMessage, const ErrorString&amp; invocationError)
</del><ins>+void InspectorBackendDispatcher::CallbackBase::sendIfActive(PassRefPtr&lt;InspectorObject&gt; partialMessage, const ErrorString&amp; invocationError)
</ins><span class="cx"> {
</span><span class="cx">     if (m_alreadySent)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_backendDispatcher-&gt;sendResponse(m_id, WTF::move(partialMessage), invocationError);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(m_id, partialMessage, invocationError);
</ins><span class="cx">     m_alreadySent = true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorBackendDispatcher&gt; InspectorBackendDispatcher::create(InspectorFrontendChannel* inspectorFrontendChannel)
</del><ins>+PassRefPtr&lt;InspectorBackendDispatcher&gt; InspectorBackendDispatcher::create(InspectorFrontendChannel* inspectorFrontendChannel)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorBackendDispatcher(inspectorFrontendChannel));
</del><ins>+    return adoptRef(new InspectorBackendDispatcher(inspectorFrontendChannel));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorBackendDispatcher::registerDispatcherForDomain(const String&amp; domain, InspectorSupplementalBackendDispatcher* dispatcher)
</span><span class="lines">@@ -90,8 +90,8 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;InspectorValue&gt; callIdValue;
-    if (!messageObject-&gt;getValue(ASCIILiteral(&quot;id&quot;), callIdValue)) {
</del><ins>+    RefPtr&lt;InspectorValue&gt; callIdValue = messageObject-&gt;get(ASCIILiteral(&quot;id&quot;));
+    if (!callIdValue) {
</ins><span class="cx">         reportProtocolError(nullptr, InvalidRequest, ASCIILiteral(&quot;'id' property was not found&quot;));
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -102,8 +102,8 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;InspectorValue&gt; methodValue;
-    if (!messageObject-&gt;getValue(ASCIILiteral(&quot;method&quot;), methodValue)) {
</del><ins>+    RefPtr&lt;InspectorValue&gt; methodValue = messageObject-&gt;get(ASCIILiteral(&quot;method&quot;));
+    if (!methodValue) {
</ins><span class="cx">         reportProtocolError(&amp;callId, InvalidRequest, ASCIILiteral(&quot;'method' property wasn't found&quot;));
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -128,10 +128,10 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     String domainMethod = method.substring(position + 1);
</span><del>-    domainDispatcher-&gt;dispatch(callId, domainMethod, messageObject.releaseNonNull());
</del><ins>+    domainDispatcher-&gt;dispatch(callId, domainMethod, messageObject.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackendDispatcher::sendResponse(long callId, RefPtr&lt;InspectorObject&gt;&amp;&amp; result, const ErrorString&amp; invocationError)
</del><ins>+void InspectorBackendDispatcher::sendResponse(long callId, PassRefPtr&lt;InspectorObject&gt; result, const ErrorString&amp; invocationError)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_inspectorFrontendChannel)
</span><span class="cx">         return;
</span><span class="lines">@@ -141,7 +141,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Ref&lt;InspectorObject&gt; responseMessage = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; responseMessage = InspectorObject::create();
</ins><span class="cx">     responseMessage-&gt;setObject(ASCIILiteral(&quot;result&quot;), result);
</span><span class="cx">     responseMessage-&gt;setInteger(ASCIILiteral(&quot;id&quot;), callId);
</span><span class="cx">     m_inspectorFrontendChannel-&gt;sendMessageToFrontend(responseMessage-&gt;toJSONString());
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx">     reportProtocolError(callId, errorCode, errorMessage, nullptr);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackendDispatcher::reportProtocolError(const long* const callId, CommonErrorCode errorCode, const String&amp; errorMessage, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp;&amp; data) const
</del><ins>+void InspectorBackendDispatcher::reportProtocolError(const long* const callId, CommonErrorCode errorCode, const String&amp; errorMessage, PassRefPtr&lt;InspectorArray&gt; data) const
</ins><span class="cx"> {
</span><span class="cx">     static const int errorCodes[] = {
</span><span class="cx">         -32700, // ParseError
</span><span class="lines">@@ -163,21 +163,21 @@
</span><span class="cx">         -32000, // ServerError
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    ASSERT_ARG(errorCode, errorCode &gt;= 0);
-    ASSERT_ARG(errorCode, (unsigned)errorCode &lt; WTF_ARRAY_LENGTH(errorCodes));
-    ASSERT_ARG(errorCode, errorCodes[errorCode]);
</del><ins>+    ASSERT(errorCode &gt;= 0);
+    ASSERT((unsigned)errorCode &lt; WTF_ARRAY_LENGTH(errorCodes));
+    ASSERT(errorCodes[errorCode]);
</ins><span class="cx"> 
</span><span class="cx">     if (!m_inspectorFrontendChannel)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Ref&lt;InspectorObject&gt; error = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; error = InspectorObject::create();
</ins><span class="cx">     error-&gt;setInteger(ASCIILiteral(&quot;code&quot;), errorCodes[errorCode]);
</span><span class="cx">     error-&gt;setString(ASCIILiteral(&quot;message&quot;), errorMessage);
</span><span class="cx">     if (data)
</span><del>-        error-&gt;setArray(ASCIILiteral(&quot;data&quot;), WTF::move(data));
</del><ins>+        error-&gt;setArray(ASCIILiteral(&quot;data&quot;), data);
</ins><span class="cx"> 
</span><del>-    Ref&lt;InspectorObject&gt; message = InspectorObject::create();
-    message-&gt;setObject(ASCIILiteral(&quot;error&quot;), WTF::move(error));
</del><ins>+    RefPtr&lt;InspectorObject&gt; message = InspectorObject::create();
+    message-&gt;setObject(ASCIILiteral(&quot;error&quot;), error.release());
</ins><span class="cx">     if (callId)
</span><span class="cx">         message-&gt;setInteger(ASCIILiteral(&quot;id&quot;), *callId);
</span><span class="cx">     else
</span><span class="lines">@@ -187,36 +187,37 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename ReturnValueType, typename ValueType, typename DefaultValueType&gt;
</span><del>-static ReturnValueType getPropertyValue(InspectorObject* object, const String&amp; name, bool* out_optionalValueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors, DefaultValueType defaultValue, bool (*asMethod)(InspectorValue&amp;, ValueType&amp;), const char* typeName)
</del><ins>+static ReturnValueType getPropertyValue(InspectorObject* object, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors, DefaultValueType defaultValue, bool (*asMethod)(InspectorValue&amp;, ValueType&amp;), const char* typeName)
</ins><span class="cx"> {
</span><del>-    ValueType result = defaultValue;
-    // out_optionalValueFound signals to the caller whether an optional property was found.
-    // if out_optionalValueFound == nullptr, then this is a required property.
-    if (out_optionalValueFound)
-        *out_optionalValueFound = false;
</del><ins>+    ASSERT(protocolErrors);
</ins><span class="cx"> 
</span><ins>+    ValueType value = defaultValue;
+    if (valueFound)
+        *valueFound = false;
+
</ins><span class="cx">     if (!object) {
</span><del>-        if (!out_optionalValueFound)
-            protocolErrors.addItem(String::format(&quot;'params' object must contain required parameter '%s' with type '%s'.&quot;, name.utf8().data(), typeName));
-        return result;
</del><ins>+        if (!valueFound)
+            protocolErrors-&gt;pushString(String::format(&quot;'params' object must contain required parameter '%s' with type '%s'.&quot;, name.utf8().data(), typeName));
+        return value;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto findResult = object-&gt;find(name);
-    if (findResult == object-&gt;end()) {
-        if (!out_optionalValueFound)
-            protocolErrors.addItem(String::format(&quot;Parameter '%s' with type '%s' was not found.&quot;, name.utf8().data(), typeName));
-        return result;
</del><ins>+    InspectorObject::const_iterator end = object-&gt;end();
+    InspectorObject::const_iterator valueIterator = object-&gt;find(name);
+    if (valueIterator == end) {
+        if (!valueFound)
+            protocolErrors-&gt;pushString(String::format(&quot;Parameter '%s' with type '%s' was not found.&quot;, name.utf8().data(), typeName));
+        return value;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!asMethod(*findResult-&gt;value, result)) {
-        protocolErrors.addItem(String::format(&quot;Parameter '%s' has wrong type. It must be '%s'.&quot;, name.utf8().data(), typeName));
-        return result;
</del><ins>+    if (!asMethod(*valueIterator-&gt;value, value)) {
+        protocolErrors-&gt;pushString(String::format(&quot;Parameter '%s' has wrong type. It must be '%s'.&quot;, name.utf8().data(), typeName));
+        return value;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (out_optionalValueFound)
-        *out_optionalValueFound = true;
</del><ins>+    if (valueFound)
+        *valueFound = true;
</ins><span class="cx"> 
</span><del>-    return result;
</del><ins>+    return value;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> struct AsMethodBridges {
</span><span class="lines">@@ -229,39 +230,39 @@
</span><span class="cx">     static bool asValue(InspectorValue&amp; value, RefPtr&lt;InspectorValue&gt;&amp; output) { return value.asValue(output); }
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-int InspectorBackendDispatcher::getInteger(InspectorObject* object, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors)
</del><ins>+int InspectorBackendDispatcher::getInteger(InspectorObject* object, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors)
</ins><span class="cx"> {
</span><span class="cx">     return getPropertyValue&lt;int, int, int&gt;(object, name, valueFound, protocolErrors, 0, AsMethodBridges::asInteger, &quot;Integer&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-double InspectorBackendDispatcher::getDouble(InspectorObject* object, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors)
</del><ins>+double InspectorBackendDispatcher::getDouble(InspectorObject* object, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors)
</ins><span class="cx"> {
</span><span class="cx">     return getPropertyValue&lt;double, double, double&gt;(object, name, valueFound, protocolErrors, 0, AsMethodBridges::asDouble, &quot;Number&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String InspectorBackendDispatcher::getString(InspectorObject* object, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors)
</del><ins>+String InspectorBackendDispatcher::getString(InspectorObject* object, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors)
</ins><span class="cx"> {
</span><span class="cx">     return getPropertyValue&lt;String, String, String&gt;(object, name, valueFound, protocolErrors, &quot;&quot;, AsMethodBridges::asString, &quot;String&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool InspectorBackendDispatcher::getBoolean(InspectorObject* object, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors)
</del><ins>+bool InspectorBackendDispatcher::getBoolean(InspectorObject* object, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors)
</ins><span class="cx"> {
</span><span class="cx">     return getPropertyValue&lt;bool, bool, bool&gt;(object, name, valueFound, protocolErrors, false, AsMethodBridges::asBoolean, &quot;Boolean&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;InspectorObject&gt; InspectorBackendDispatcher::getObject(InspectorObject* object, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors)
</del><ins>+PassRefPtr&lt;InspectorObject&gt; InspectorBackendDispatcher::getObject(InspectorObject* object, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors)
</ins><span class="cx"> {
</span><del>-    return getPropertyValue&lt;RefPtr&lt;InspectorObject&gt;, RefPtr&lt;InspectorObject&gt;, InspectorObject*&gt;(object, name, valueFound, protocolErrors, nullptr, AsMethodBridges::asObject, &quot;Object&quot;);
</del><ins>+    return getPropertyValue&lt;PassRefPtr&lt;InspectorObject&gt;, RefPtr&lt;InspectorObject&gt;, InspectorObject*&gt;(object, name, valueFound, protocolErrors, nullptr, AsMethodBridges::asObject, &quot;Object&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;InspectorArray&gt; InspectorBackendDispatcher::getArray(InspectorObject* object, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors)
</del><ins>+PassRefPtr&lt;InspectorArray&gt; InspectorBackendDispatcher::getArray(InspectorObject* object, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors)
</ins><span class="cx"> {
</span><del>-    return getPropertyValue&lt;RefPtr&lt;InspectorArray&gt;, RefPtr&lt;InspectorArray&gt;, InspectorArray*&gt;(object, name, valueFound, protocolErrors, nullptr, AsMethodBridges::asArray, &quot;Array&quot;);
</del><ins>+    return getPropertyValue&lt;PassRefPtr&lt;InspectorArray&gt;, RefPtr&lt;InspectorArray&gt;, InspectorArray*&gt;(object, name, valueFound, protocolErrors, nullptr, AsMethodBridges::asArray, &quot;Array&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;InspectorValue&gt; InspectorBackendDispatcher::getValue(InspectorObject* object, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors)
</del><ins>+PassRefPtr&lt;InspectorValue&gt; InspectorBackendDispatcher::getValue(InspectorObject* object, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors)
</ins><span class="cx"> {
</span><del>-    return getPropertyValue&lt;RefPtr&lt;InspectorValue&gt;, RefPtr&lt;InspectorValue&gt;, InspectorValue*&gt;(object, name, valueFound, protocolErrors, nullptr, AsMethodBridges::asValue, &quot;Value&quot;);
</del><ins>+    return getPropertyValue&lt;PassRefPtr&lt;InspectorValue&gt;, RefPtr&lt;InspectorValue&gt;, InspectorValue*&gt;(object, name, valueFound, protocolErrors, nullptr, AsMethodBridges::asValue, &quot;Value&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace Inspector
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInspectorBackendDispatcherh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx"> #ifndef InspectorBackendDispatcher_h
</span><span class="cx"> #define InspectorBackendDispatcher_h
</span><span class="cx"> 
</span><del>-#include &quot;InspectorProtocolTypes.h&quot;
</del><ins>+#include &quot;InspectorValues.h&quot;
</ins><span class="cx"> #include &lt;wtf/PassRefPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/RefCounted.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="lines">@@ -40,31 +40,30 @@
</span><span class="cx"> 
</span><span class="cx"> class InspectorSupplementalBackendDispatcher : public RefCounted&lt;InspectorSupplementalBackendDispatcher&gt; {
</span><span class="cx"> public:
</span><del>-    InspectorSupplementalBackendDispatcher(InspectorBackendDispatcher&amp; backendDispatcher)
-        : m_backendDispatcher(backendDispatcher) { }
</del><ins>+    InspectorSupplementalBackendDispatcher(InspectorBackendDispatcher* backendDispatcher) : m_backendDispatcher(backendDispatcher) { }
</ins><span class="cx">     virtual ~InspectorSupplementalBackendDispatcher() { }
</span><del>-    virtual void dispatch(long callId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message) = 0;
</del><ins>+    virtual void dispatch(long callId, const String&amp; method, PassRefPtr&lt;InspectorObject&gt; message) = 0;
</ins><span class="cx"> protected:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class JS_EXPORT_PRIVATE InspectorBackendDispatcher : public RefCounted&lt;InspectorBackendDispatcher&gt; {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;InspectorBackendDispatcher&gt; create(InspectorFrontendChannel*);
</del><ins>+    static PassRefPtr&lt;InspectorBackendDispatcher&gt; create(InspectorFrontendChannel*);
</ins><span class="cx"> 
</span><span class="cx">     class JS_EXPORT_PRIVATE CallbackBase : public RefCounted&lt;CallbackBase&gt; {
</span><span class="cx">     public:
</span><del>-        CallbackBase(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp;, int id);
</del><ins>+        CallbackBase(PassRefPtr&lt;InspectorBackendDispatcher&gt;, int id);
</ins><span class="cx"> 
</span><span class="cx">         bool isActive() const;
</span><span class="cx">         void sendFailure(const ErrorString&amp;);
</span><span class="cx">         void disable() { m_alreadySent = true; }
</span><span class="cx"> 
</span><span class="cx">     protected:
</span><del>-        void sendIfActive(RefPtr&lt;InspectorObject&gt;&amp;&amp; partialMessage, const ErrorString&amp; invocationError);
</del><ins>+        void sendIfActive(PassRefPtr&lt;InspectorObject&gt; partialMessage, const ErrorString&amp; invocationError);
</ins><span class="cx"> 
</span><span class="cx">     private:
</span><del>-        Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+        RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx">         int m_id;
</span><span class="cx">         bool m_alreadySent;
</span><span class="cx">     };
</span><span class="lines">@@ -83,17 +82,17 @@
</span><span class="cx"> 
</span><span class="cx">     void registerDispatcherForDomain(const String&amp; domain, InspectorSupplementalBackendDispatcher*);
</span><span class="cx">     void dispatch(const String&amp; message);
</span><del>-    void sendResponse(long callId, RefPtr&lt;InspectorObject&gt;&amp;&amp; result, const ErrorString&amp; invocationError);
</del><ins>+    void sendResponse(long callId, PassRefPtr&lt;InspectorObject&gt; result, const ErrorString&amp; invocationError);
</ins><span class="cx">     void reportProtocolError(const long* const callId, CommonErrorCode, const String&amp; errorMessage) const;
</span><del>-    void reportProtocolError(const long* const callId, CommonErrorCode, const String&amp; errorMessage, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp;&amp; data) const;
</del><ins>+    void reportProtocolError(const long* const callId, CommonErrorCode, const String&amp; errorMessage, PassRefPtr&lt;InspectorArray&gt; data) const;
</ins><span class="cx"> 
</span><del>-    static int getInteger(InspectorObject*, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors);
-    static double getDouble(InspectorObject*, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors);
-    static String getString(InspectorObject*, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors);
-    static bool getBoolean(InspectorObject*, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors);
-    static RefPtr&lt;InspectorValue&gt; getValue(InspectorObject*, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors);
-    static RefPtr&lt;InspectorObject&gt; getObject(InspectorObject*, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors);
-    static RefPtr&lt;InspectorArray&gt; getArray(InspectorObject*, const String&amp; name, bool* valueFound, Inspector::Protocol::Array&lt;String&gt;&amp; protocolErrors);
</del><ins>+    static int getInteger(InspectorObject*, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors);
+    static double getDouble(InspectorObject*, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors);
+    static String getString(InspectorObject*, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors);
+    static bool getBoolean(InspectorObject*, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors);
+    static PassRefPtr&lt;InspectorValue&gt; getValue(InspectorObject*, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors);
+    static PassRefPtr&lt;InspectorObject&gt; getObject(InspectorObject*, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors);
+    static PassRefPtr&lt;InspectorArray&gt; getArray(InspectorObject*, const String&amp; name, bool* valueFound, InspectorArray* protocolErrors);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     InspectorBackendDispatcher(InspectorFrontendChannel* inspectorFrontendChannel) : m_inspectorFrontendChannel(inspectorFrontendChannel) { }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInspectorEnvironmenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InspectorEnvironment.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InspectorEnvironment.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/InspectorEnvironment.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">     virtual void willCallInjectedScriptFunction(JSC::ExecState*, const String&amp; scriptName, int scriptLine) = 0;
</span><span class="cx">     virtual void didCallInjectedScriptFunction(JSC::ExecState*) = 0;
</span><span class="cx">     virtual void frontendInitialized() = 0;
</span><del>-    virtual Ref&lt;WTF::Stopwatch&gt; executionStopwatch() = 0;
</del><ins>+    virtual PassRefPtr&lt;WTF::Stopwatch&gt; executionStopwatch() = 0;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace Inspector
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInspectorProtocolTypesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InspectorProtocolTypes.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InspectorProtocolTypes.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/InspectorProtocolTypes.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -31,13 +31,12 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorValues.h&quot;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="cx"> namespace Protocol {
</span><span class="cx"> 
</span><del>-template&lt;typename T&gt; struct BindingTraits;
-
</del><span class="cx"> template&lt;typename T&gt;
</span><span class="cx"> class OptOutput {
</span><span class="cx"> public:
</span><span class="lines">@@ -64,44 +63,128 @@
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(OptOutput);
</span><span class="cx"> };
</span><span class="cx"> 
</span><ins>+// This class provides &quot;Traits&quot; type for the input type T. It is programmed using C++ template specialization
+// technique. By default it simply takes &quot;ItemTraits&quot; type from T, but it doesn't work with the base types.
</ins><span class="cx"> template&lt;typename T&gt;
</span><ins>+struct ArrayItemHelper {
+    typedef typename T::ItemTraits Traits;
+};
+
+template&lt;typename T&gt;
</ins><span class="cx"> class Array : public InspectorArrayBase {
</span><span class="cx"> private:
</span><span class="cx">     Array() { }
</span><span class="cx"> 
</span><del>-    InspectorArray&amp; openAccessors()
</del><ins>+    InspectorArray* openAccessors()
</ins><span class="cx">     {
</span><span class="cx">         COMPILE_ASSERT(sizeof(InspectorArray) == sizeof(Array&lt;T&gt;), cannot_cast);
</span><del>-        return *static_cast&lt;InspectorArray*&gt;(static_cast&lt;InspectorArrayBase*&gt;(this));
</del><ins>+        return static_cast&lt;InspectorArray*&gt;(static_cast&lt;InspectorArrayBase*&gt;(this));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> public:
</span><del>-    void addItem(Ref&lt;T&gt;&amp;&amp; value)
</del><ins>+    void addItem(PassRefPtr&lt;T&gt; value)
</ins><span class="cx">     {
</span><del>-        openAccessors().pushValue(&amp;value.get());
</del><ins>+        ArrayItemHelper&lt;T&gt;::Traits::pushRefPtr(this-&gt;openAccessors(), value);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    void addItem(RefPtr&lt;T&gt;&amp;&amp; value)
</del><ins>+    void addItem(T value)
</ins><span class="cx">     {
</span><del>-        openAccessors().pushValue(WTF::move(value));
</del><ins>+        ArrayItemHelper&lt;T&gt;::Traits::pushRaw(this-&gt;openAccessors(), value);
</ins><span class="cx">     }
</span><del>-    
-    void addItem(const String&amp; value)
</del><ins>+
+    static PassRefPtr&lt;Array&lt;T&gt;&gt; create()
</ins><span class="cx">     {
</span><del>-        openAccessors().pushString(value);
</del><ins>+        return adoptRef(new Array&lt;T&gt;());
</ins><span class="cx">     }
</span><ins>+};
</ins><span class="cx"> 
</span><del>-    void addItem(int value)
</del><ins>+struct StructItemTraits {
+    static void pushRefPtr(InspectorArray* array, PassRefPtr&lt;InspectorValue&gt; value)
</ins><span class="cx">     {
</span><del>-        openAccessors().pushInteger(value);
</del><ins>+        array-&gt;pushValue(value);
</ins><span class="cx">     }
</span><del>-    
-    static Ref&lt;Array&lt;T&gt;&gt; create()
-    {
-        return adoptRef(*new Array&lt;T&gt;());
-    }
</del><span class="cx"> };
</span><span class="cx"> 
</span><ins>+template&lt;&gt;
+struct ArrayItemHelper&lt;String&gt; {
+    struct Traits {
+        static void pushRaw(InspectorArray* array, const String&amp; value)
+        {
+            array-&gt;pushString(value);
+        }
+    };
+};
+
+template&lt;&gt;
+struct ArrayItemHelper&lt;int&gt; {
+    struct Traits {
+        static void pushRaw(InspectorArray* array, int value)
+        {
+            array-&gt;pushInteger(value);
+        }
+    };
+};
+
+template&lt;&gt;
+struct ArrayItemHelper&lt;double&gt; {
+    struct Traits {
+        static void pushRaw(InspectorArray* array, double value)
+        {
+            array-&gt;pushDouble(value);
+        }
+    };
+};
+
+template&lt;&gt;
+struct ArrayItemHelper&lt;bool&gt; {
+    struct Traits {
+        static void pushRaw(InspectorArray* array, bool value)
+        {
+            array-&gt;pushBoolean(value);
+        }
+    };
+};
+
+template&lt;&gt;
+struct ArrayItemHelper&lt;InspectorValue&gt; {
+    struct Traits {
+        static void pushRefPtr(InspectorArray* array, PassRefPtr&lt;InspectorValue&gt; value)
+        {
+            array-&gt;pushValue(value);
+        }
+    };
+};
+
+template&lt;&gt;
+struct ArrayItemHelper&lt;InspectorObject&gt; {
+    struct Traits {
+        static void pushRefPtr(InspectorArray* array, PassRefPtr&lt;InspectorValue&gt; value)
+        {
+            array-&gt;pushValue(value);
+        }
+    };
+};
+
+template&lt;&gt;
+struct ArrayItemHelper&lt;InspectorArray&gt; {
+    struct Traits {
+        static void pushRefPtr(InspectorArray* array, PassRefPtr&lt;InspectorArray&gt; value)
+        {
+            array-&gt;pushArray(value);
+        }
+    };
+};
+
+template&lt;typename T&gt;
+struct ArrayItemHelper&lt;Protocol::Array&lt;T&gt;&gt; {
+    struct Traits {
+        static void pushRefPtr(InspectorArray* array, PassRefPtr&lt;Protocol::Array&lt;T&gt;&gt; value)
+        {
+            array-&gt;pushValue(value);
+        }
+    };
+};
+
</ins><span class="cx"> // Helper methods for Protocol and other Inspector types are provided by
</span><span class="cx"> // specializations of BindingTraits&lt;T&gt;. Some are generated for protocol types.
</span><span class="cx"> 
</span><span class="lines">@@ -109,9 +192,8 @@
</span><span class="cx"> struct BindingTraits {
</span><span class="cx">     typedef T BindingType;
</span><span class="cx"> 
</span><del>-    static void push(InspectorArray&amp;, BindingType&amp;);
</del><span class="cx">     static InspectorValue::Type typeTag();
</span><del>-    static RefPtr&lt;T&gt; runtimeCast(RefPtr&lt;InspectorObject&gt;&amp;&amp;);
</del><ins>+    static PassRefPtr&lt;T&gt; runtimeCast(PassRefPtr&lt;InspectorObject&gt;);
</ins><span class="cx"> #if !ASSERT_DISABLED
</span><span class="cx">     static void assertValueHasExpectedType(InspectorValue*);
</span><span class="cx"> #endif // !ASSERT_DISABLED
</span><span class="lines">@@ -122,16 +204,15 @@
</span><span class="cx"> #if !ASSERT_DISABLED
</span><span class="cx">     static void assertValueHasExpectedType(InspectorValue* value)
</span><span class="cx">     {
</span><del>-        ASSERT_ARG(value, value &amp;&amp; value-&gt;type() == TYPE);
</del><ins>+        ASSERT(value-&gt;type() == TYPE);
</ins><span class="cx">     }
</span><span class="cx"> #endif // !ASSERT_DISABLED
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename T&gt;
</span><span class="cx"> struct BindingTraits&lt;Protocol::Array&lt;T&gt;&gt; {
</span><del>-    static RefPtr&lt;Array&lt;T&gt;&gt; runtimeCast(RefPtr&lt;InspectorValue&gt;&amp;&amp; value)
</del><ins>+    static PassRefPtr&lt;Array&lt;T&gt;&gt; runtimeCast(PassRefPtr&lt;InspectorValue&gt; value)
</ins><span class="cx">     {
</span><del>-        ASSERT_ARG(value, value);
</del><span class="cx">         RefPtr&lt;InspectorArray&gt; array;
</span><span class="cx">         bool castSucceeded = value-&gt;asArray(array);
</span><span class="cx">         ASSERT_UNUSED(castSucceeded, castSucceeded);
</span><span class="lines">@@ -145,7 +226,6 @@
</span><span class="cx"> #if !ASSERT_DISABLED
</span><span class="cx">     static void assertValueHasExpectedType(InspectorValue* value)
</span><span class="cx">     {
</span><del>-        ASSERT_ARG(value, value);
</del><span class="cx">         RefPtr&lt;InspectorArray&gt; array;
</span><span class="cx">         bool castSucceeded = value-&gt;asArray(array);
</span><span class="cx">         ASSERT_UNUSED(castSucceeded, castSucceeded);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInspectorValuescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InspectorValues.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InspectorValues.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/InspectorValues.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -347,7 +347,7 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;InspectorValue&gt; buildValue(const UChar* start, const UChar* end, const UChar** valueTokenEnd, int depth)
</del><ins>+PassRefPtr&lt;InspectorValue&gt; buildValue(const UChar* start, const UChar* end, const UChar** valueTokenEnd, int depth)
</ins><span class="cx"> {
</span><span class="cx">     if (depth &gt; stackLimit)
</span><span class="cx">         return nullptr;
</span><span class="lines">@@ -385,14 +385,14 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     case ARRAY_BEGIN: {
</span><del>-        Ref&lt;InspectorArray&gt; array = InspectorArray::create();
</del><ins>+        RefPtr&lt;InspectorArray&gt; array = InspectorArray::create();
</ins><span class="cx">         start = tokenEnd;
</span><span class="cx">         token = parseToken(start, end, &amp;tokenStart, &amp;tokenEnd);
</span><span class="cx">         while (token != ARRAY_END) {
</span><span class="cx">             RefPtr&lt;InspectorValue&gt; arrayNode = buildValue(start, end, &amp;tokenEnd, depth + 1);
</span><span class="cx">             if (!arrayNode)
</span><span class="cx">                 return nullptr;
</span><del>-            array-&gt;pushValue(WTF::move(arrayNode));
</del><ins>+            array-&gt;pushValue(arrayNode);
</ins><span class="cx"> 
</span><span class="cx">             // After a list value, we expect a comma or the end of the list.
</span><span class="cx">             start = tokenEnd;
</span><span class="lines">@@ -409,11 +409,11 @@
</span><span class="cx">         }
</span><span class="cx">         if (token != ARRAY_END)
</span><span class="cx">             return nullptr;
</span><del>-        result = WTF::move(array);
</del><ins>+        result = array.release();
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     case OBJECT_BEGIN: {
</span><del>-        Ref&lt;InspectorObject&gt; object = InspectorObject::create();
</del><ins>+        RefPtr&lt;InspectorObject&gt; object = InspectorObject::create();
</ins><span class="cx">         start = tokenEnd;
</span><span class="cx">         token = parseToken(start, end, &amp;tokenStart, &amp;tokenEnd);
</span><span class="cx">         while (token != OBJECT_END) {
</span><span class="lines">@@ -432,7 +432,7 @@
</span><span class="cx">             RefPtr&lt;InspectorValue&gt; value = buildValue(start, end, &amp;tokenEnd, depth + 1);
</span><span class="cx">             if (!value)
</span><span class="cx">                 return nullptr;
</span><del>-            object-&gt;setValue(key, WTF::move(value));
</del><ins>+            object-&gt;setValue(key, value);
</ins><span class="cx">             start = tokenEnd;
</span><span class="cx"> 
</span><span class="cx">             // After a key/value pair, we expect a comma or the end of the
</span><span class="lines">@@ -450,7 +450,7 @@
</span><span class="cx">         }
</span><span class="cx">         if (token != OBJECT_END)
</span><span class="cx">             return nullptr;
</span><del>-        result = WTF::move(object);
</del><ins>+        result = object.release();
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -739,8 +739,8 @@
</span><span class="cx"> 
</span><span class="cx"> bool InspectorObjectBase::getBoolean(const String&amp; name, bool&amp; output) const
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InspectorValue&gt; value;
-    if (!getValue(name, value))
</del><ins>+    RefPtr&lt;InspectorValue&gt; value = get(name);
+    if (!value)
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     return value-&gt;asBoolean(output);
</span><span class="lines">@@ -748,39 +748,40 @@
</span><span class="cx"> 
</span><span class="cx"> bool InspectorObjectBase::getString(const String&amp; name, String&amp; output) const
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InspectorValue&gt; value;
-    if (!getValue(name, value))
</del><ins>+    RefPtr&lt;InspectorValue&gt; value = get(name);
+    if (!value)
</ins><span class="cx">         return false;
</span><del>-
</del><span class="cx">     return value-&gt;asString(output);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool InspectorObjectBase::getObject(const String&amp; name, RefPtr&lt;InspectorObject&gt;&amp; output) const
</del><ins>+PassRefPtr&lt;InspectorObject&gt; InspectorObjectBase::getObject(const String&amp; name) const
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;InspectorValue&gt; value;
-    if (!getValue(name, value))
-        return false;
</del><ins>+    PassRefPtr&lt;InspectorValue&gt; value = get(name);
+    if (!value)
+        return nullptr;
</ins><span class="cx"> 
</span><del>-    return value-&gt;asObject(output);
</del><ins>+    RefPtr&lt;InspectorObject&gt; result;
+    value-&gt;asObject(result);
+    return result.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool InspectorObjectBase::getArray(const String&amp; name, RefPtr&lt;InspectorArray&gt;&amp; output) const
</del><ins>+PassRefPtr&lt;InspectorArray&gt; InspectorObjectBase::getArray(const String&amp; name) const
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;InspectorValue&gt; value;
-    if (!getValue(name, value))
-        return false;
</del><ins>+    PassRefPtr&lt;InspectorValue&gt; value = get(name);
+    if (!value)
+        return nullptr;
</ins><span class="cx"> 
</span><del>-    return value-&gt;asArray(output);
</del><ins>+    RefPtr&lt;InspectorArray&gt; result;
+    value-&gt;asArray(result);
+    return result.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool InspectorObjectBase::getValue(const String&amp; name, RefPtr&lt;InspectorValue&gt;&amp; output) const
</del><ins>+PassRefPtr&lt;InspectorValue&gt; InspectorObjectBase::get(const String&amp; name) const
</ins><span class="cx"> {
</span><del>-    Dictionary::const_iterator findResult = m_data.find(name);
-    if (findResult == m_data.end())
-        return false;
-
-    output = findResult-&gt;value;
-    return true;
</del><ins>+    Dictionary::const_iterator it = m_data.find(name);
+    if (it == m_data.end())
+        return nullptr;
+    return it-&gt;value;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorObjectBase::remove(const String&amp; name)
</span><span class="lines">@@ -798,13 +799,13 @@
</span><span class="cx"> {
</span><span class="cx">     output.append('{');
</span><span class="cx">     for (size_t i = 0; i &lt; m_order.size(); ++i) {
</span><del>-        auto findResult = m_data.find(m_order[i]);
-        ASSERT(findResult != m_data.end());
</del><ins>+        Dictionary::const_iterator it = m_data.find(m_order[i]);
+        ASSERT(it != m_data.end());
</ins><span class="cx">         if (i)
</span><span class="cx">             output.append(',');
</span><del>-        doubleQuoteString(findResult-&gt;key, output);
</del><ins>+        doubleQuoteString(it-&gt;key, output);
</ins><span class="cx">         output.append(':');
</span><del>-        findResult-&gt;value-&gt;writeJSON(output);
</del><ins>+        it-&gt;value-&gt;writeJSON(output);
</ins><span class="cx">     }
</span><span class="cx">     output.append('}');
</span><span class="cx"> }
</span><span class="lines">@@ -844,50 +845,50 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;InspectorValue&gt; InspectorArrayBase::get(size_t index)
</del><ins>+PassRefPtr&lt;InspectorValue&gt; InspectorArrayBase::get(size_t index)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT_WITH_SECURITY_IMPLICATION(index &lt; m_data.size());
</span><span class="cx">     return m_data[index];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorObject&gt; InspectorObject::create()
</del><ins>+PassRefPtr&lt;InspectorObject&gt; InspectorObject::create()
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorObject);
</del><ins>+    return adoptRef(new InspectorObject);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorArray&gt; InspectorArray::create()
</del><ins>+PassRefPtr&lt;InspectorArray&gt; InspectorArray::create()
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorArray);
</del><ins>+    return adoptRef(new InspectorArray);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorValue&gt; InspectorValue::null()
</del><ins>+PassRefPtr&lt;InspectorValue&gt; InspectorValue::null()
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorValue);
</del><ins>+    return adoptRef(new InspectorValue);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorString&gt; InspectorString::create(const String&amp; value)
</del><ins>+PassRefPtr&lt;InspectorString&gt; InspectorString::create(const String&amp; value)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorString(value));
</del><ins>+    return adoptRef(new InspectorString(value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorString&gt; InspectorString::create(const char* value)
</del><ins>+PassRefPtr&lt;InspectorString&gt; InspectorString::create(const char* value)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorString(value));
</del><ins>+    return adoptRef(new InspectorString(value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorBasicValue&gt; InspectorBasicValue::create(bool value)
</del><ins>+PassRefPtr&lt;InspectorBasicValue&gt; InspectorBasicValue::create(bool value)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorBasicValue(value));
</del><ins>+    return adoptRef(new InspectorBasicValue(value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorBasicValue&gt; InspectorBasicValue::create(int value)
</del><ins>+PassRefPtr&lt;InspectorBasicValue&gt; InspectorBasicValue::create(int value)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorBasicValue(value));
</del><ins>+    return adoptRef(new InspectorBasicValue(value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorBasicValue&gt; InspectorBasicValue::create(double value)
</del><ins>+PassRefPtr&lt;InspectorBasicValue&gt; InspectorBasicValue::create(double value)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorBasicValue(value));
</del><ins>+    return adoptRef(new InspectorBasicValue(value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace Inspector
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInspectorValuesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InspectorValues.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InspectorValues.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/InspectorValues.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> #ifndef InspectorValues_h
</span><span class="cx"> #define InspectorValues_h
</span><span class="cx"> 
</span><del>-#include &lt;wtf/Assertions.h&gt;
</del><ins>+#include &lt;wtf/Forward.h&gt;
</ins><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="cx"> #include &lt;wtf/RefCounted.h&gt;
</span><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">         : m_type(Type::Null) { }
</span><span class="cx">     virtual ~InspectorValue() { }
</span><span class="cx"> 
</span><del>-    static Ref&lt;InspectorValue&gt; null();
</del><ins>+    static PassRefPtr&lt;InspectorValue&gt; null();
</ins><span class="cx"> 
</span><span class="cx">     enum class Type {
</span><span class="cx">         Null = 0,
</span><span class="lines">@@ -99,9 +99,9 @@
</span><span class="cx"> class JS_EXPORT_PRIVATE InspectorBasicValue : public InspectorValue {
</span><span class="cx"> public:
</span><span class="cx"> 
</span><del>-    static Ref&lt;InspectorBasicValue&gt; create(bool);
-    static Ref&lt;InspectorBasicValue&gt; create(int);
-    static Ref&lt;InspectorBasicValue&gt; create(double);
</del><ins>+    static PassRefPtr&lt;InspectorBasicValue&gt; create(bool);
+    static PassRefPtr&lt;InspectorBasicValue&gt; create(int);
+    static PassRefPtr&lt;InspectorBasicValue&gt; create(double);
</ins><span class="cx"> 
</span><span class="cx">     virtual bool asBoolean(bool&amp;) const override;
</span><span class="cx">     // Numbers from the frontend are always parsed as doubles, so we allow
</span><span class="lines">@@ -138,8 +138,8 @@
</span><span class="cx"> 
</span><span class="cx"> class JS_EXPORT_PRIVATE InspectorString : public InspectorValue {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;InspectorString&gt; create(const String&amp;);
-    static Ref&lt;InspectorString&gt; create(const char*);
</del><ins>+    static PassRefPtr&lt;InspectorString&gt; create(const String&amp;);
+    static PassRefPtr&lt;InspectorString&gt; create(const char*);
</ins><span class="cx"> 
</span><span class="cx">     virtual bool asString(String&amp; output) const override;
</span><span class="cx"> 
</span><span class="lines">@@ -177,9 +177,9 @@
</span><span class="cx">     void setInteger(const String&amp; name, int);
</span><span class="cx">     void setDouble(const String&amp; name, double);
</span><span class="cx">     void setString(const String&amp; name, const String&amp;);
</span><del>-    void setValue(const String&amp; name, RefPtr&lt;InspectorValue&gt;&amp;&amp;);
-    void setObject(const String&amp; name, RefPtr&lt;InspectorObjectBase&gt;&amp;&amp;);
-    void setArray(const String&amp; name, RefPtr&lt;InspectorArrayBase&gt;&amp;&amp;);
</del><ins>+    void setValue(const String&amp; name, PassRefPtr&lt;InspectorValue&gt;);
+    void setObject(const String&amp; name, PassRefPtr&lt;InspectorObjectBase&gt;);
+    void setArray(const String&amp; name, PassRefPtr&lt;InspectorArrayBase&gt;);
</ins><span class="cx"> 
</span><span class="cx">     iterator find(const String&amp; name);
</span><span class="cx">     const_iterator find(const String&amp; name) const;
</span><span class="lines">@@ -188,25 +188,23 @@
</span><span class="cx">     bool getBoolean(const String&amp; name, bool&amp; output) const;
</span><span class="cx">     template&lt;class T&gt; bool getDouble(const String&amp; name, T&amp; output) const
</span><span class="cx">     {
</span><del>-        RefPtr&lt;InspectorValue&gt; value;
-        if (!getValue(name, value))
</del><ins>+        RefPtr&lt;InspectorValue&gt; value = get(name);
+        if (!value)
</ins><span class="cx">             return false;
</span><del>-
</del><span class="cx">         return value-&gt;asDouble(output);
</span><span class="cx">     }
</span><span class="cx">     template&lt;class T&gt; bool getInteger(const String&amp; name, T&amp; output) const
</span><span class="cx">     {
</span><del>-        RefPtr&lt;InspectorValue&gt; value;
-        if (!getValue(name, value))
</del><ins>+        RefPtr&lt;InspectorValue&gt; value = get(name);
+        if (!value)
</ins><span class="cx">             return false;
</span><del>-
</del><span class="cx">         return value-&gt;asInteger(output);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     bool getString(const String&amp; name, String&amp; output) const;
</span><del>-    bool getObject(const String&amp; name, RefPtr&lt;InspectorObject&gt;&amp;) const;
-    bool getArray(const String&amp; name, RefPtr&lt;InspectorArray&gt;&amp;) const;
-    bool getValue(const String&amp; name, RefPtr&lt;InspectorValue&gt;&amp;) const;
</del><ins>+    PassRefPtr&lt;InspectorObject&gt; getObject(const String&amp; name) const;
+    PassRefPtr&lt;InspectorArray&gt; getArray(const String&amp; name) const;
+    PassRefPtr&lt;InspectorValue&gt; get(const String&amp; name) const;
</ins><span class="cx"> 
</span><span class="cx">     void remove(const String&amp; name);
</span><span class="cx"> 
</span><span class="lines">@@ -229,7 +227,7 @@
</span><span class="cx"> 
</span><span class="cx"> class InspectorObject : public InspectorObjectBase {
</span><span class="cx"> public:
</span><del>-    static JS_EXPORT_PRIVATE Ref&lt;InspectorObject&gt; create();
</del><ins>+    static JS_EXPORT_PRIVATE PassRefPtr&lt;InspectorObject&gt; create();
</ins><span class="cx"> 
</span><span class="cx">     using InspectorObjectBase::asObject;
</span><span class="cx"> 
</span><span class="lines">@@ -248,7 +246,7 @@
</span><span class="cx">     using InspectorObjectBase::getString;
</span><span class="cx">     using InspectorObjectBase::getObject;
</span><span class="cx">     using InspectorObjectBase::getArray;
</span><del>-    using InspectorObjectBase::getValue;
</del><ins>+    using InspectorObjectBase::get;
</ins><span class="cx"> 
</span><span class="cx">     using InspectorObjectBase::remove;
</span><span class="cx"> 
</span><span class="lines">@@ -275,11 +273,11 @@
</span><span class="cx">     void pushInteger(int);
</span><span class="cx">     void pushDouble(double);
</span><span class="cx">     void pushString(const String&amp;);
</span><del>-    void pushValue(RefPtr&lt;InspectorValue&gt;&amp;&amp;);
-    void pushObject(RefPtr&lt;InspectorObjectBase&gt;&amp;&amp;);
-    void pushArray(RefPtr&lt;InspectorArrayBase&gt;&amp;&amp;);
</del><ins>+    void pushValue(PassRefPtr&lt;InspectorValue&gt;);
+    void pushObject(PassRefPtr&lt;InspectorObject&gt;);
+    void pushArray(PassRefPtr&lt;InspectorArray&gt;);
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;InspectorValue&gt; get(size_t index);
</del><ins>+    PassRefPtr&lt;InspectorValue&gt; get(size_t index);
</ins><span class="cx"> 
</span><span class="cx">     virtual void writeJSON(StringBuilder&amp; output) const override;
</span><span class="cx"> 
</span><span class="lines">@@ -297,7 +295,7 @@
</span><span class="cx"> 
</span><span class="cx"> class InspectorArray : public InspectorArrayBase {
</span><span class="cx"> public:
</span><del>-    static JS_EXPORT_PRIVATE Ref&lt;InspectorArray&gt; create();
</del><ins>+    static JS_EXPORT_PRIVATE PassRefPtr&lt;InspectorArray&gt; create();
</ins><span class="cx"> 
</span><span class="cx">     using InspectorArrayBase::asArray;
</span><span class="cx"> 
</span><span class="lines">@@ -346,24 +344,24 @@
</span><span class="cx">     setValue(name, InspectorString::create(value));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void InspectorObjectBase::setValue(const String&amp; name, RefPtr&lt;InspectorValue&gt;&amp;&amp; value)
</del><ins>+inline void InspectorObjectBase::setValue(const String&amp; name, PassRefPtr&lt;InspectorValue&gt; value)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(value);
</span><del>-    if (m_data.set(name, WTF::move(value)).isNewEntry)
</del><ins>+    if (m_data.set(name, value).isNewEntry)
</ins><span class="cx">         m_order.append(name);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void InspectorObjectBase::setObject(const String&amp; name, RefPtr&lt;InspectorObjectBase&gt;&amp;&amp; value)
</del><ins>+inline void InspectorObjectBase::setObject(const String&amp; name, PassRefPtr&lt;InspectorObjectBase&gt; value)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(value);
</span><del>-    if (m_data.set(name, WTF::move(value)).isNewEntry)
</del><ins>+    if (m_data.set(name, value).isNewEntry)
</ins><span class="cx">         m_order.append(name);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void InspectorObjectBase::setArray(const String&amp; name, RefPtr&lt;InspectorArrayBase&gt;&amp;&amp; value)
</del><ins>+inline void InspectorObjectBase::setArray(const String&amp; name, PassRefPtr&lt;InspectorArrayBase&gt; value)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(value);
</span><del>-    if (m_data.set(name, WTF::move(value)).isNewEntry)
</del><ins>+    if (m_data.set(name, value).isNewEntry)
</ins><span class="cx">         m_order.append(name);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -387,22 +385,22 @@
</span><span class="cx">     m_data.append(InspectorString::create(value));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void InspectorArrayBase::pushValue(RefPtr&lt;InspectorValue&gt;&amp;&amp; value)
</del><ins>+inline void InspectorArrayBase::pushValue(PassRefPtr&lt;InspectorValue&gt; value)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(value);
</span><del>-    m_data.append(WTF::move(value));
</del><ins>+    m_data.append(value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void InspectorArrayBase::pushObject(RefPtr&lt;InspectorObjectBase&gt;&amp;&amp; value)
</del><ins>+inline void InspectorArrayBase::pushObject(PassRefPtr&lt;InspectorObject&gt; value)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(value);
</span><del>-    m_data.append(WTF::move(value));
</del><ins>+    m_data.append(value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void InspectorArrayBase::pushArray(RefPtr&lt;InspectorArrayBase&gt;&amp;&amp; value)
</del><ins>+inline void InspectorArrayBase::pushArray(PassRefPtr&lt;InspectorArray&gt; value)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(value);
</span><del>-    m_data.append(WTF::move(value));
</del><ins>+    m_data.append(value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace Inspector
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorJSGlobalObjectConsoleClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -75,18 +75,19 @@
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSGlobalObjectConsoleClient::messageWithTypeAndLevel(MessageType type, MessageLevel level, JSC::ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; arguments)
</del><ins>+void JSGlobalObjectConsoleClient::messageWithTypeAndLevel(MessageType type, MessageLevel level, JSC::ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; prpArguments)
</ins><span class="cx"> {
</span><ins>+    RefPtr&lt;ScriptArguments&gt; arguments = prpArguments;
</ins><span class="cx"> 
</span><span class="cx">     if (JSGlobalObjectConsoleClient::logToSystemConsole())
</span><del>-        ConsoleClient::printConsoleMessageWithArguments(MessageSource::ConsoleAPI, type, level, exec, arguments.copyRef());
</del><ins>+        ConsoleClient::printConsoleMessageWithArguments(MessageSource::ConsoleAPI, type, level, exec, arguments);
</ins><span class="cx"> 
</span><span class="cx">     String message;
</span><span class="cx">     arguments-&gt;getFirstArgumentAsString(message);
</span><del>-    m_consoleAgent-&gt;addMessageToConsole(MessageSource::ConsoleAPI, type, level, message, exec, WTF::move(arguments));
</del><ins>+    m_consoleAgent-&gt;addMessageToConsole(MessageSource::ConsoleAPI, type, level, message, exec, arguments.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSGlobalObjectConsoleClient::count(ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; arguments)
</del><ins>+void JSGlobalObjectConsoleClient::count(ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; arguments)
</ins><span class="cx"> {
</span><span class="cx">     m_consoleAgent-&gt;count(exec, arguments);
</span><span class="cx"> }
</span><span class="lines">@@ -109,10 +110,10 @@
</span><span class="cx"> void JSGlobalObjectConsoleClient::timeEnd(ExecState* exec, const String&amp; title)
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;ScriptCallStack&gt; callStack(createScriptCallStackForConsole(exec, 1));
</span><del>-    m_consoleAgent-&gt;stopTiming(title, WTF::move(callStack));
</del><ins>+    m_consoleAgent-&gt;stopTiming(title, callStack.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void JSGlobalObjectConsoleClient::timeStamp(ExecState*, RefPtr&lt;ScriptArguments&gt;&amp;&amp;)
</del><ins>+void JSGlobalObjectConsoleClient::timeStamp(ExecState*, PassRefPtr&lt;ScriptArguments&gt;)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: JSContext inspection needs a timeline.
</span><span class="cx">     warnUnimplemented(ASCIILiteral(&quot;console.timeStamp&quot;));
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorJSGlobalObjectConsoleClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -43,17 +43,17 @@
</span><span class="cx">     static void initializeLogToSystemConsole();
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    virtual void messageWithTypeAndLevel(MessageType, MessageLevel, JSC::ExecState*, RefPtr&lt;ScriptArguments&gt;&amp;&amp;) override;
-    virtual void count(JSC::ExecState*, RefPtr&lt;ScriptArguments&gt;&amp;&amp;) override;
</del><ins>+    virtual void messageWithTypeAndLevel(MessageType, MessageLevel, JSC::ExecState*, PassRefPtr&lt;ScriptArguments&gt;) override;
+    virtual void count(JSC::ExecState*, PassRefPtr&lt;ScriptArguments&gt;) override;
</ins><span class="cx">     virtual void profile(JSC::ExecState*, const String&amp; title) override;
</span><span class="cx">     virtual void profileEnd(JSC::ExecState*, const String&amp; title) override;
</span><span class="cx">     virtual void time(JSC::ExecState*, const String&amp; title) override;
</span><span class="cx">     virtual void timeEnd(JSC::ExecState*, const String&amp; title) override;
</span><del>-    virtual void timeStamp(JSC::ExecState*, RefPtr&lt;ScriptArguments&gt;&amp;&amp;) override;
</del><ins>+    virtual void timeStamp(JSC::ExecState*, PassRefPtr&lt;ScriptArguments&gt;) override;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     void warnUnimplemented(const String&amp; method);
</span><del>-    void internalAddMessage(MessageType, MessageLevel, JSC::ExecState*, RefPtr&lt;ScriptArguments&gt;&amp;&amp;);
</del><ins>+    void internalAddMessage(MessageType, MessageLevel, JSC::ExecState*, PassRefPtr&lt;ScriptArguments&gt;);
</ins><span class="cx"> 
</span><span class="cx">     InspectorConsoleAgent* m_consoleAgent;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorJSGlobalObjectInspectorControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -222,9 +222,9 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Stopwatch&gt; JSGlobalObjectInspectorController::executionStopwatch()
</del><ins>+PassRefPtr&lt;Stopwatch&gt; JSGlobalObjectInspectorController::executionStopwatch()
</ins><span class="cx"> {
</span><del>-    return m_executionStopwatch.copyRef();
</del><ins>+    return m_executionStopwatch;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorJSGlobalObjectInspectorControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx">     virtual void willCallInjectedScriptFunction(JSC::ExecState*, const String&amp;, int) override { }
</span><span class="cx">     virtual void didCallInjectedScriptFunction(JSC::ExecState*) override { }
</span><span class="cx">     virtual void frontendInitialized() override;
</span><del>-    virtual Ref&lt;WTF::Stopwatch&gt; executionStopwatch() override;
</del><ins>+    virtual PassRefPtr&lt;WTF::Stopwatch&gt; executionStopwatch() override;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx">     virtual AugmentableInspectorControllerClient* augmentableInspectorControllerClient() const override { return m_augmentingClient; } 
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">     InspectorAgentRegistry m_agents;
</span><span class="cx">     InspectorFrontendChannel* m_inspectorFrontendChannel;
</span><span class="cx">     RefPtr&lt;InspectorBackendDispatcher&gt; m_inspectorBackendDispatcher;
</span><del>-    Ref&lt;WTF::Stopwatch&gt; m_executionStopwatch;
</del><ins>+    RefPtr&lt;WTF::Stopwatch&gt; m_executionStopwatch;
</ins><span class="cx">     bool m_includeNativeCallStackWithExceptions;
</span><span class="cx">     bool m_isAutomaticInspection;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorScriptCallFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/ScriptCallFrame.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/ScriptCallFrame.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/ScriptCallFrame.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><del>-Ref&lt;Inspector::Protocol::Console::CallFrame&gt; ScriptCallFrame::buildInspectorObject() const
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Console::CallFrame&gt; ScriptCallFrame::buildInspectorObject() const
</ins><span class="cx"> {
</span><span class="cx">     return Inspector::Protocol::Console::CallFrame::create()
</span><span class="cx">         .setFunctionName(m_functionName)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorScriptCallFrameh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/ScriptCallFrame.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/ScriptCallFrame.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/ScriptCallFrame.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     bool isEqual(const ScriptCallFrame&amp;) const;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><del>-    Ref&lt;Inspector::Protocol::Console::CallFrame&gt; buildInspectorObject() const;
</del><ins>+    PassRefPtr&lt;Inspector::Protocol::Console::CallFrame&gt; buildInspectorObject() const;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorScriptCallStackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/ScriptCallStack.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/ScriptCallStack.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/ScriptCallStack.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -36,14 +36,14 @@
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><del>-Ref&lt;ScriptCallStack&gt; ScriptCallStack::create()
</del><ins>+PassRefPtr&lt;ScriptCallStack&gt; ScriptCallStack::create()
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new ScriptCallStack);
</del><ins>+    return adoptRef(new ScriptCallStack);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;ScriptCallStack&gt; ScriptCallStack::create(Vector&lt;ScriptCallFrame&gt;&amp; frames)
</del><ins>+PassRefPtr&lt;ScriptCallStack&gt; ScriptCallStack::create(Vector&lt;ScriptCallFrame&gt;&amp; frames)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new ScriptCallStack(frames));
</del><ins>+    return adoptRef(new ScriptCallStack(frames));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ScriptCallStack::ScriptCallStack()
</span><span class="lines">@@ -107,12 +107,12 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><del>-Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Console::CallFrame&gt;&gt; ScriptCallStack::buildInspectorArray() const
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Console::CallFrame&gt;&gt; ScriptCallStack::buildInspectorArray() const
</ins><span class="cx"> {
</span><del>-    auto frames = Inspector::Protocol::Array&lt;Inspector::Protocol::Console::CallFrame&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Console::CallFrame&gt;&gt; frames = Inspector::Protocol::Array&lt;Inspector::Protocol::Console::CallFrame&gt;::create();
</ins><span class="cx">     for (size_t i = 0; i &lt; m_frames.size(); i++)
</span><span class="cx">         frames-&gt;addItem(m_frames.at(i).buildInspectorObject());
</span><del>-    return WTF::move(frames);
</del><ins>+    return frames;
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorScriptCallStackh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/ScriptCallStack.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/ScriptCallStack.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/ScriptCallStack.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -47,8 +47,8 @@
</span><span class="cx"> public:
</span><span class="cx">     static const size_t maxCallStackSizeToCapture = 200;
</span><span class="cx">     
</span><del>-    static Ref&lt;ScriptCallStack&gt; create();
-    static Ref&lt;ScriptCallStack&gt; create(Vector&lt;ScriptCallFrame&gt;&amp;);
</del><ins>+    static PassRefPtr&lt;ScriptCallStack&gt; create();
+    static PassRefPtr&lt;ScriptCallStack&gt; create(Vector&lt;ScriptCallFrame&gt;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     ~ScriptCallStack();
</span><span class="cx"> 
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx">     bool isEqual(ScriptCallStack*) const;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><del>-    Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Console::CallFrame&gt;&gt; buildInspectorArray() const;
</del><ins>+    PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Console::CallFrame&gt;&gt; buildInspectorArray() const;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorAgent.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorAgent.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorAgent.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx">     m_enabled = true;
</span><span class="cx"> 
</span><span class="cx">     if (m_pendingInspectData.first)
</span><del>-        inspect(m_pendingInspectData.first.copyRef(), m_pendingInspectData.second.copyRef());
</del><ins>+        inspect(m_pendingInspectData.first, m_pendingInspectData.second);
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx">     if (m_pendingExtraDomainsData)
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx">     m_environment.frontendInitialized();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorAgent::inspect(RefPtr&lt;Protocol::Runtime::RemoteObject&gt;&amp;&amp; objectToInspect, RefPtr&lt;InspectorObject&gt;&amp;&amp; hints)
</del><ins>+void InspectorAgent::inspect(PassRefPtr&lt;Protocol::Runtime::RemoteObject&gt; objectToInspect, PassRefPtr&lt;InspectorObject&gt; hints)
</ins><span class="cx"> {
</span><span class="cx">     if (m_enabled &amp;&amp; m_frontendDispatcher) {
</span><span class="cx">         m_frontendDispatcher-&gt;inspect(objectToInspect, hints);
</span><span class="lines">@@ -130,9 +130,9 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Ref&lt;Inspector::Protocol::Array&lt;String&gt;&gt; domainNames = Inspector::Protocol::Array&lt;String&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; domainNames = Inspector::Protocol::Array&lt;String&gt;::create();
</ins><span class="cx">     domainNames-&gt;addItem(domainName);
</span><del>-    m_frontendDispatcher-&gt;activateExtraDomains(WTF::move(domainNames));
</del><ins>+    m_frontendDispatcher-&gt;activateExtraDomains(domainNames.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorAgent::activateExtraDomains(const Vector&lt;String&gt;&amp; extraDomains)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorAgenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorAgent.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorAgent.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorAgent.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx">     virtual void disable(ErrorString&amp;) override;
</span><span class="cx">     virtual void initialized(ErrorString&amp;) override;
</span><span class="cx"> 
</span><del>-    void inspect(RefPtr&lt;Protocol::Runtime::RemoteObject&gt;&amp;&amp; objectToInspect, RefPtr&lt;InspectorObject&gt;&amp;&amp; hints);
</del><ins>+    void inspect(PassRefPtr&lt;Protocol::Runtime::RemoteObject&gt; objectToInspect, PassRefPtr&lt;InspectorObject&gt; hints);
</ins><span class="cx">     void evaluateForTestInFrontend(const String&amp; script);
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorDebuggerAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -141,16 +141,16 @@
</span><span class="cx"> void InspectorDebuggerAgent::handleConsoleAssert(const String&amp; message)
</span><span class="cx"> {
</span><span class="cx">     if (scriptDebugServer().pauseOnExceptionsState() != JSC::Debugger::DontPauseOnExceptions) {
</span><del>-        Ref&lt;Inspector::Protocol::Debugger::AssertPauseReason&gt; reason = Inspector::Protocol::Debugger::AssertPauseReason::create().release();
</del><ins>+        RefPtr&lt;Inspector::Protocol::Debugger::AssertPauseReason&gt; reason = Inspector::Protocol::Debugger::AssertPauseReason::create();
</ins><span class="cx">         if (!message.isNull())
</span><span class="cx">             reason-&gt;setMessage(message);
</span><span class="cx">         breakProgram(InspectorDebuggerFrontendDispatcher::Reason::Assert, reason-&gt;openAccessors());
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;InspectorObject&gt; buildObjectForBreakpointCookie(const String&amp; url, int lineNumber, int columnNumber, const String&amp; condition, RefPtr&lt;InspectorArray&gt;&amp; actions, bool isRegex, bool autoContinue)
</del><ins>+static PassRefPtr&lt;InspectorObject&gt; buildObjectForBreakpointCookie(const String&amp; url, int lineNumber, int columnNumber, const String&amp; condition, RefPtr&lt;InspectorArray&gt;&amp; actions, bool isRegex, bool autoContinue)
</ins><span class="cx"> {
</span><del>-    Ref&lt;InspectorObject&gt; breakpointObject = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; breakpointObject = InspectorObject::create();
</ins><span class="cx">     breakpointObject-&gt;setString(ASCIILiteral(&quot;url&quot;), url);
</span><span class="cx">     breakpointObject-&gt;setInteger(ASCIILiteral(&quot;lineNumber&quot;), lineNumber);
</span><span class="cx">     breakpointObject-&gt;setInteger(ASCIILiteral(&quot;columnNumber&quot;), columnNumber);
</span><span class="lines">@@ -239,7 +239,7 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDebuggerAgent::setBreakpointByUrl(ErrorString&amp; errorString, int lineNumber, const String* const optionalURL, const String* const optionalURLRegex, const int* const optionalColumnNumber, const RefPtr&lt;InspectorObject&gt;&amp;&amp; options, Inspector::Protocol::Debugger::BreakpointId* outBreakpointIdentifier, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Debugger::Location&gt;&gt;&amp; locations)
</del><ins>+void InspectorDebuggerAgent::setBreakpointByUrl(ErrorString&amp; errorString, int lineNumber, const String* const optionalURL, const String* const optionalURLRegex, const int* const optionalColumnNumber, const RefPtr&lt;InspectorObject&gt;* options, Inspector::Protocol::Debugger::BreakpointId* outBreakpointIdentifier, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Debugger::Location&gt;&gt;&amp; locations)
</ins><span class="cx"> {
</span><span class="cx">     locations = Inspector::Protocol::Array&lt;Inspector::Protocol::Debugger::Location&gt;::create();
</span><span class="cx">     if (!optionalURL == !optionalURLRegex) {
</span><span class="lines">@@ -261,9 +261,9 @@
</span><span class="cx">     bool autoContinue = false;
</span><span class="cx">     RefPtr&lt;InspectorArray&gt; actions;
</span><span class="cx">     if (options) {
</span><del>-        options-&gt;getString(ASCIILiteral(&quot;condition&quot;), condition);
-        options-&gt;getBoolean(ASCIILiteral(&quot;autoContinue&quot;), autoContinue);
-        options-&gt;getArray(ASCIILiteral(&quot;actions&quot;), actions);
</del><ins>+        (*options)-&gt;getString(ASCIILiteral(&quot;condition&quot;), condition);
+        (*options)-&gt;getBoolean(ASCIILiteral(&quot;autoContinue&quot;), autoContinue);
+        actions = (*options)-&gt;getArray(ASCIILiteral(&quot;actions&quot;));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     BreakpointActions breakpointActions;
</span><span class="lines">@@ -280,7 +280,7 @@
</span><span class="cx"> 
</span><span class="cx">         RefPtr&lt;Inspector::Protocol::Debugger::Location&gt; location = resolveBreakpoint(breakpointIdentifier, it-&gt;key, breakpoint);
</span><span class="cx">         if (location)
</span><del>-            locations-&gt;addItem(WTF::move(location));
</del><ins>+            locations-&gt;addItem(location);
</ins><span class="cx">     }
</span><span class="cx">     *outBreakpointIdentifier = breakpointIdentifier;
</span><span class="cx"> }
</span><span class="lines">@@ -300,7 +300,7 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDebuggerAgent::setBreakpoint(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp;&amp; location, const RefPtr&lt;InspectorObject&gt;&amp;&amp; options, Inspector::Protocol::Debugger::BreakpointId* outBreakpointIdentifier, RefPtr&lt;Inspector::Protocol::Debugger::Location&gt;&amp; actualLocation)
</del><ins>+void InspectorDebuggerAgent::setBreakpoint(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp; location, const RefPtr&lt;InspectorObject&gt;* options, Inspector::Protocol::Debugger::BreakpointId* outBreakpointIdentifier, RefPtr&lt;Inspector::Protocol::Debugger::Location&gt;&amp; actualLocation)
</ins><span class="cx"> {
</span><span class="cx">     JSC::SourceID sourceID;
</span><span class="cx">     unsigned lineNumber;
</span><span class="lines">@@ -312,9 +312,9 @@
</span><span class="cx">     bool autoContinue = false;
</span><span class="cx">     RefPtr&lt;InspectorArray&gt; actions;
</span><span class="cx">     if (options) {
</span><del>-        options-&gt;getString(ASCIILiteral(&quot;condition&quot;), condition);
-        options-&gt;getBoolean(ASCIILiteral(&quot;autoContinue&quot;), autoContinue);
-        options-&gt;getArray(ASCIILiteral(&quot;actions&quot;), actions);
</del><ins>+        (*options)-&gt;getString(ASCIILiteral(&quot;condition&quot;), condition);
+        (*options)-&gt;getBoolean(ASCIILiteral(&quot;autoContinue&quot;), autoContinue);
+        actions = (*options)-&gt;getArray(ASCIILiteral(&quot;actions&quot;));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     BreakpointActions breakpointActions;
</span><span class="lines">@@ -350,7 +350,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDebuggerAgent::continueToLocation(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp;&amp; location)
</del><ins>+void InspectorDebuggerAgent::continueToLocation(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp; location)
</ins><span class="cx"> {
</span><span class="cx">     if (m_continueToLocationBreakpointID != JSC::noBreakpointID) {
</span><span class="cx">         scriptDebugServer().removeBreakpoint(m_continueToLocationBreakpointID);
</span><span class="lines">@@ -368,7 +368,7 @@
</span><span class="cx">     resume(errorString);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Inspector::Protocol::Debugger::Location&gt; InspectorDebuggerAgent::resolveBreakpoint(const String&amp; breakpointIdentifier, JSC::SourceID sourceID, const ScriptBreakpoint&amp; breakpoint)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Debugger::Location&gt; InspectorDebuggerAgent::resolveBreakpoint(const String&amp; breakpointIdentifier, JSC::SourceID sourceID, const ScriptBreakpoint&amp; breakpoint)
</ins><span class="cx"> {
</span><span class="cx">     ScriptsMap::iterator scriptIterator = m_scripts.find(sourceID);
</span><span class="cx">     if (scriptIterator == m_scripts.end())
</span><span class="lines">@@ -388,12 +388,11 @@
</span><span class="cx">         debugServerBreakpointIDsIterator = m_breakpointIdentifierToDebugServerBreakpointIDs.set(breakpointIdentifier, Vector&lt;JSC::BreakpointID&gt;()).iterator;
</span><span class="cx">     debugServerBreakpointIDsIterator-&gt;value.append(debugServerBreakpointID);
</span><span class="cx"> 
</span><del>-    auto location = Inspector::Protocol::Debugger::Location::create()
</del><ins>+    RefPtr&lt;Inspector::Protocol::Debugger::Location&gt; location = Inspector::Protocol::Debugger::Location::create()
</ins><span class="cx">         .setScriptId(String::number(sourceID))
</span><del>-        .setLineNumber(actualLineNumber)
-        .release();
</del><ins>+        .setLineNumber(actualLineNumber);
</ins><span class="cx">     location-&gt;setColumnNumber(actualColumnNumber);
</span><del>-    return WTF::move(location);
</del><ins>+    return location;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDebuggerAgent::searchInContent(ErrorString&amp; error, const String&amp; scriptIDStr, const String&amp; query, const bool* optionalCaseSensitive, const bool* optionalIsRegex, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::GenericTypes::SearchMatch&gt;&gt;&amp; results)
</span><span class="lines">@@ -431,13 +430,13 @@
</span><span class="cx">     injectedScript.getFunctionDetails(errorString, functionId, &amp;details);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDebuggerAgent::schedulePauseOnNextStatement(InspectorDebuggerFrontendDispatcher::Reason breakReason, RefPtr&lt;InspectorObject&gt;&amp;&amp; data)
</del><ins>+void InspectorDebuggerAgent::schedulePauseOnNextStatement(InspectorDebuggerFrontendDispatcher::Reason breakReason, PassRefPtr&lt;InspectorObject&gt; data)
</ins><span class="cx"> {
</span><span class="cx">     if (m_javaScriptPauseScheduled)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     m_breakReason = breakReason;
</span><del>-    m_breakAuxData = WTF::move(data);
</del><ins>+    m_breakAuxData = data;
</ins><span class="cx">     scriptDebugServer().setPauseOnNextStatement(true);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -545,14 +544,12 @@
</span><span class="cx"> void InspectorDebuggerAgent::scriptExecutionBlockedByCSP(const String&amp; directiveText)
</span><span class="cx"> {
</span><span class="cx">     if (scriptDebugServer().pauseOnExceptionsState() != JSC::Debugger::DontPauseOnExceptions) {
</span><del>-        auto reason = Inspector::Protocol::Debugger::CSPViolationPauseReason::create()
-            .setDirective(directiveText)
-            .release();
</del><ins>+        RefPtr&lt;Inspector::Protocol::Debugger::CSPViolationPauseReason&gt; reason = Inspector::Protocol::Debugger::CSPViolationPauseReason::create().setDirective(directiveText);
</ins><span class="cx">         breakProgram(InspectorDebuggerFrontendDispatcher::Reason::CSPViolation, reason-&gt;openAccessors());
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Debugger::CallFrame&gt;&gt; InspectorDebuggerAgent::currentCallFrames()
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Debugger::CallFrame&gt;&gt; InspectorDebuggerAgent::currentCallFrames()
</ins><span class="cx"> {
</span><span class="cx">     if (!m_pausedScriptState)
</span><span class="cx">         return Inspector::Protocol::Array&lt;Inspector::Protocol::Debugger::CallFrame&gt;::create();
</span><span class="lines">@@ -609,8 +606,7 @@
</span><span class="cx">         breakpointObject-&gt;getString(ASCIILiteral(&quot;condition&quot;), breakpoint.condition);
</span><span class="cx">         breakpointObject-&gt;getBoolean(ASCIILiteral(&quot;autoContinue&quot;), breakpoint.autoContinue);
</span><span class="cx">         ErrorString errorString;
</span><del>-        RefPtr&lt;InspectorArray&gt; actions;
-        breakpointObject-&gt;getArray(ASCIILiteral(&quot;actions&quot;), actions);
</del><ins>+        RefPtr&lt;InspectorArray&gt; actions = breakpointObject-&gt;getArray(ASCIILiteral(&quot;actions&quot;));
</ins><span class="cx">         if (!breakpointActionsFromProtocol(errorString, actions, &amp;breakpoint.actions)) {
</span><span class="cx">             ASSERT_NOT_REACHED();
</span><span class="cx">             continue;
</span><span class="lines">@@ -669,15 +665,14 @@
</span><span class="cx"> {
</span><span class="cx">     InjectedScript injectedScript = m_injectedScriptManager-&gt;injectedScriptFor(scriptState);
</span><span class="cx">     RefPtr&lt;Protocol::Runtime::RemoteObject&gt; payload = injectedScript.wrapObject(sample, objectGroupForBreakpointAction(action));
</span><del>-    auto result = Protocol::Debugger::ProbeSample::create()
</del><ins>+    RefPtr&lt;Protocol::Debugger::ProbeSample&gt; result = Protocol::Debugger::ProbeSample::create()
</ins><span class="cx">         .setProbeId(action.identifier)
</span><span class="cx">         .setBatchId(batchId)
</span><span class="cx">         .setSampleId(sampleId)
</span><span class="cx">         .setTimestamp(m_injectedScriptManager-&gt;inspectorEnvironment().executionStopwatch()-&gt;elapsedTime())
</span><del>-        .setPayload(payload.release())
-        .release();
</del><ins>+        .setPayload(payload.release());
</ins><span class="cx"> 
</span><del>-    m_frontendDispatcher-&gt;didSampleProbe(WTF::move(result));
</del><ins>+    m_frontendDispatcher-&gt;didSampleProbe(result.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDebuggerAgent::didContinue()
</span><span class="lines">@@ -692,10 +687,10 @@
</span><span class="cx">     m_frontendDispatcher-&gt;resumed();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDebuggerAgent::breakProgram(InspectorDebuggerFrontendDispatcher::Reason breakReason, RefPtr&lt;InspectorObject&gt;&amp;&amp; data)
</del><ins>+void InspectorDebuggerAgent::breakProgram(InspectorDebuggerFrontendDispatcher::Reason breakReason, PassRefPtr&lt;InspectorObject&gt; data)
</ins><span class="cx"> {
</span><span class="cx">     m_breakReason = breakReason;
</span><del>-    m_breakAuxData = WTF::move(data);
</del><ins>+    m_breakAuxData = data;
</ins><span class="cx">     scriptDebugServer().breakProgram();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorDebuggerAgenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -42,6 +42,7 @@
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="cx"> #include &lt;wtf/Noncopyable.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><span class="cx"> #include &lt;wtf/text/StringHash.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -73,10 +74,10 @@
</span><span class="cx">     virtual void enable(ErrorString&amp;) override;
</span><span class="cx">     virtual void disable(ErrorString&amp;) override;
</span><span class="cx">     virtual void setBreakpointsActive(ErrorString&amp;, bool active) override;
</span><del>-    virtual void setBreakpointByUrl(ErrorString&amp;, int lineNumber, const String* optionalURL, const String* optionalURLRegex, const int* optionalColumnNumber, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; options, Inspector::Protocol::Debugger::BreakpointId*, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Debugger::Location&gt;&gt;&amp; locations) override;
-    virtual void setBreakpoint(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; location, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; options, Inspector::Protocol::Debugger::BreakpointId*, RefPtr&lt;Inspector::Protocol::Debugger::Location&gt;&amp; actualLocation) override;
</del><ins>+    virtual void setBreakpointByUrl(ErrorString&amp;, int lineNumber, const String* optionalURL, const String* optionalURLRegex, const int* optionalColumnNumber, const RefPtr&lt;Inspector::InspectorObject&gt;* options, Inspector::Protocol::Debugger::BreakpointId*, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Debugger::Location&gt;&gt;&amp; locations) override;
+    virtual void setBreakpoint(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; location, const RefPtr&lt;Inspector::InspectorObject&gt;* options, Inspector::Protocol::Debugger::BreakpointId*, RefPtr&lt;Inspector::Protocol::Debugger::Location&gt;&amp; actualLocation) override;
</ins><span class="cx">     virtual void removeBreakpoint(ErrorString&amp;, const String&amp; breakpointIdentifier) override;
</span><del>-    virtual void continueToLocation(ErrorString&amp;, const RefPtr&lt;InspectorObject&gt;&amp;&amp; location) override;
</del><ins>+    virtual void continueToLocation(ErrorString&amp;, const RefPtr&lt;InspectorObject&gt;&amp; location) override;
</ins><span class="cx">     virtual void searchInContent(ErrorString&amp;, const String&amp; scriptID, const String&amp; query, const bool* optionalCaseSensitive, const bool* optionalIsRegex, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::GenericTypes::SearchMatch&gt;&gt;&amp;) override;
</span><span class="cx">     virtual void getScriptSource(ErrorString&amp;, const String&amp; scriptID, String* scriptSource) override;
</span><span class="cx">     virtual void getFunctionDetails(ErrorString&amp;, const String&amp; functionId, RefPtr&lt;Inspector::Protocol::Debugger::FunctionDetails&gt;&amp;) override;
</span><span class="lines">@@ -93,9 +94,9 @@
</span><span class="cx">     
</span><span class="cx">     void handleConsoleAssert(const String&amp; message);
</span><span class="cx"> 
</span><del>-    void schedulePauseOnNextStatement(InspectorDebuggerFrontendDispatcher::Reason breakReason, RefPtr&lt;InspectorObject&gt;&amp;&amp; data);
</del><ins>+    void schedulePauseOnNextStatement(InspectorDebuggerFrontendDispatcher::Reason breakReason, PassRefPtr&lt;InspectorObject&gt; data);
</ins><span class="cx">     void cancelPauseOnNextStatement();
</span><del>-    void breakProgram(InspectorDebuggerFrontendDispatcher::Reason breakReason, RefPtr&lt;InspectorObject&gt;&amp;&amp; data);
</del><ins>+    void breakProgram(InspectorDebuggerFrontendDispatcher::Reason breakReason, PassRefPtr&lt;InspectorObject&gt; data);
</ins><span class="cx">     void scriptExecutionBlockedByCSP(const String&amp; directiveText);
</span><span class="cx"> 
</span><span class="cx">     class Listener {
</span><span class="lines">@@ -131,7 +132,7 @@
</span><span class="cx">     void didClearGlobalObject();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Debugger::CallFrame&gt;&gt; currentCallFrames();
</del><ins>+    PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Debugger::CallFrame&gt;&gt; currentCallFrames();
</ins><span class="cx"> 
</span><span class="cx">     virtual void didParseSource(JSC::SourceID, const Script&amp;) override final;
</span><span class="cx">     virtual void failedToParseSource(const String&amp; url, const String&amp; data, int firstLine, int errorLine, const String&amp; errorMessage) override final;
</span><span class="lines">@@ -139,7 +140,7 @@
</span><span class="cx">     virtual void breakpointActionSound(int breakpointActionIdentifier) override;
</span><span class="cx">     virtual void breakpointActionProbe(JSC::ExecState*, const ScriptBreakpointAction&amp;, unsigned batchId, unsigned sampleId, const Deprecated::ScriptValue&amp; sample) override final;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Inspector::Protocol::Debugger::Location&gt; resolveBreakpoint(const String&amp; breakpointIdentifier, JSC::SourceID, const ScriptBreakpoint&amp;);
</del><ins>+    PassRefPtr&lt;Inspector::Protocol::Debugger::Location&gt; resolveBreakpoint(const String&amp; breakpointIdentifier, JSC::SourceID, const ScriptBreakpoint&amp;);
</ins><span class="cx">     bool assertPaused(ErrorString&amp;);
</span><span class="cx">     void clearDebuggerBreakpointState();
</span><span class="cx">     void clearInspectorBreakpointState();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorRuntimeAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -80,12 +80,12 @@
</span><span class="cx">     return presentState;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;Inspector::Protocol::Runtime::ErrorRange&gt; buildErrorRangeObject(const JSTokenLocation&amp; tokenLocation)
</del><ins>+static PassRefPtr&lt;Inspector::Protocol::Runtime::ErrorRange&gt; buildErrorRangeObject(const JSTokenLocation&amp; tokenLocation)
</ins><span class="cx"> {
</span><del>-    return Inspector::Protocol::Runtime::ErrorRange::create()
</del><ins>+    RefPtr&lt;Inspector::Protocol::Runtime::ErrorRange&gt; result = Inspector::Protocol::Runtime::ErrorRange::create()
</ins><span class="cx">         .setStartOffset(tokenLocation.startOffset)
</span><del>-        .setEndOffset(tokenLocation.endOffset)
-        .release();
</del><ins>+        .setEndOffset(tokenLocation.endOffset);
+    return result.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorRuntimeAgent::parse(ErrorString&amp;, const String&amp; expression, Inspector::Protocol::Runtime::SyntaxErrorType* result, Inspector::Protocol::OptOutput&lt;String&gt;* message, RefPtr&lt;Inspector::Protocol::Runtime::ErrorRange&gt;&amp; range)
</span><span class="lines">@@ -137,7 +137,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorRuntimeAgent::callFunctionOn(ErrorString&amp; errorString, const String&amp; objectId, const String&amp; expression, const RefPtr&lt;InspectorArray&gt;&amp;&amp; optionalArguments, const bool* const doNotPauseOnExceptionsAndMuteConsole, const bool* const returnByValue, const bool* generatePreview, RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt;&amp; result, Inspector::Protocol::OptOutput&lt;bool&gt;* wasThrown)
</del><ins>+void InspectorRuntimeAgent::callFunctionOn(ErrorString&amp; errorString, const String&amp; objectId, const String&amp; expression, const RefPtr&lt;InspectorArray&gt;* const optionalArguments, const bool* const doNotPauseOnExceptionsAndMuteConsole, const bool* const returnByValue, const bool* generatePreview, RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt;&amp; result, Inspector::Protocol::OptOutput&lt;bool&gt;* wasThrown)
</ins><span class="cx"> {
</span><span class="cx">     InjectedScript injectedScript = m_injectedScriptManager-&gt;injectedScriptForObjectId(objectId);
</span><span class="cx">     if (injectedScript.hasNoValue()) {
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx"> 
</span><span class="cx">     String arguments;
</span><span class="cx">     if (optionalArguments)
</span><del>-        arguments = optionalArguments-&gt;toJSONString();
</del><ins>+        arguments = (*optionalArguments)-&gt;toJSONString();
</ins><span class="cx"> 
</span><span class="cx">     ScriptDebugServer::PauseOnExceptionsState previousPauseOnExceptionsState = ScriptDebugServer::DontPauseOnExceptions;
</span><span class="cx">     if (asBool(doNotPauseOnExceptionsAndMuteConsole))
</span><span class="lines">@@ -197,7 +197,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets(ErrorString&amp; errorString, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; locations, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::TypeDescription&gt;&gt;&amp; typeDescriptions)
</del><ins>+void InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets(ErrorString&amp; errorString, const RefPtr&lt;Inspector::InspectorArray&gt;&amp; locations, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::TypeDescription&gt;&gt;&amp; typeDescriptions)
</ins><span class="cx"> {
</span><span class="cx">     static const bool verbose = false;
</span><span class="cx">     VM&amp; vm = globalVM();
</span><span class="lines">@@ -237,9 +237,8 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         bool isValid = typeLocation &amp;&amp; typeSet &amp;&amp; !typeSet-&gt;isEmpty();
</span><del>-        auto description = Inspector::Protocol::Runtime::TypeDescription::create()
-            .setIsValid(isValid)
-            .release();
</del><ins>+        RefPtr&lt;Inspector::Protocol::Runtime::TypeDescription&gt; description = Inspector::Protocol::Runtime::TypeDescription::create()
+            .setIsValid(isValid);
</ins><span class="cx"> 
</span><span class="cx">         if (isValid) {
</span><span class="cx">             description-&gt;setLeastCommonAncestor(typeSet-&gt;leastCommonAncestor());
</span><span class="lines">@@ -248,7 +247,7 @@
</span><span class="cx">             description-&gt;setIsTruncated(typeSet-&gt;isOverflown());
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        typeDescriptions-&gt;addItem(WTF::move(description));
</del><ins>+        typeDescriptions-&gt;addItem(description);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     double end = currentTimeMS();
</span><span class="lines">@@ -332,12 +331,11 @@
</span><span class="cx">     const Vector&lt;BasicBlockRange&gt;&amp; basicBlockRanges = vm.controlFlowProfiler()-&gt;getBasicBlocksForSourceID(sourceID, vm);
</span><span class="cx">     basicBlocks = Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::BasicBlock&gt;::create();
</span><span class="cx">     for (const BasicBlockRange&amp; block : basicBlockRanges) {
</span><del>-        Ref&lt;Inspector::Protocol::Runtime::BasicBlock&gt; location = Inspector::Protocol::Runtime::BasicBlock::create()
</del><ins>+        RefPtr&lt;Inspector::Protocol::Runtime::BasicBlock&gt; location = Inspector::Protocol::Runtime::BasicBlock::create()
</ins><span class="cx">             .setStartOffset(block.m_startOffset)
</span><span class="cx">             .setEndOffset(block.m_endOffset)
</span><del>-            .setHasExecuted(block.m_hasExecuted)
-            .release();
-        basicBlocks-&gt;addItem(WTF::move(location));
</del><ins>+            .setHasExecuted(block.m_hasExecuted);
+        basicBlocks-&gt;addItem(location);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorRuntimeAgenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -63,12 +63,12 @@
</span><span class="cx">     virtual void disable(ErrorString&amp;) override { m_enabled = false; }
</span><span class="cx">     virtual void parse(ErrorString&amp;, const String&amp; expression, Inspector::Protocol::Runtime::SyntaxErrorType* result, Inspector::Protocol::OptOutput&lt;String&gt;* message, RefPtr&lt;Inspector::Protocol::Runtime::ErrorRange&gt;&amp;) override final;
</span><span class="cx">     virtual void evaluate(ErrorString&amp;, const String&amp; expression, const String* objectGroup, const bool* includeCommandLineAPI, const bool* doNotPauseOnExceptionsAndMuteConsole, const int* executionContextId, const bool* returnByValue, const bool* generatePreview, RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt;&amp; result, Inspector::Protocol::OptOutput&lt;bool&gt;* wasThrown) override final;
</span><del>-    virtual void callFunctionOn(ErrorString&amp;, const String&amp; objectId, const String&amp; expression, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; optionalArguments, const bool* doNotPauseOnExceptionsAndMuteConsole, const bool* returnByValue, const bool* generatePreview, RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt;&amp; result, Inspector::Protocol::OptOutput&lt;bool&gt;* wasThrown) override final;
</del><ins>+    virtual void callFunctionOn(ErrorString&amp;, const String&amp; objectId, const String&amp; expression, const RefPtr&lt;Inspector::InspectorArray&gt;* optionalArguments, const bool* doNotPauseOnExceptionsAndMuteConsole, const bool* returnByValue, const bool* generatePreview, RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt;&amp; result, Inspector::Protocol::OptOutput&lt;bool&gt;* wasThrown) override final;
</ins><span class="cx">     virtual void releaseObject(ErrorString&amp;, const ErrorString&amp; objectId) override final;
</span><span class="cx">     virtual void getProperties(ErrorString&amp;, const String&amp; objectId, const bool* ownProperties, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::PropertyDescriptor&gt;&gt;&amp; result, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::InternalPropertyDescriptor&gt;&gt;&amp; internalProperties) override final;
</span><span class="cx">     virtual void releaseObjectGroup(ErrorString&amp;, const String&amp; objectGroup) override final;
</span><span class="cx">     virtual void run(ErrorString&amp;) override;
</span><del>-    virtual void getRuntimeTypesForVariablesAtOffsets(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; locations, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::TypeDescription&gt;&gt;&amp;) override;
</del><ins>+    virtual void getRuntimeTypesForVariablesAtOffsets(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorArray&gt;&amp; locations, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::TypeDescription&gt;&gt;&amp;) override;
</ins><span class="cx">     virtual void enableTypeProfiler(ErrorString&amp;) override;
</span><span class="cx">     virtual void disableTypeProfiler(ErrorString&amp;) override;
</span><span class="cx">     virtual void getBasicBlocks(ErrorString&amp;, const String&amp; in_sourceID, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::BasicBlock&gt;&gt;&amp; out_basicBlocks) override;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegencpp_generatorpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -116,11 +116,12 @@
</span><span class="cx">         if isinstance(_type, EnumType):
</span><span class="cx">             _type = _type.primitive_type  # Fall through to primitive.
</span><span class="cx"> 
</span><ins>+        sigil = '*' if parameter.is_optional else '&amp;'
</ins><span class="cx">         # This handles the 'any' type and objects with defined properties.
</span><span class="cx">         if isinstance(_type, ObjectType) or _type.qualified_name() is 'object':
</span><del>-            return 'const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp;'
</del><ins>+            return 'const RefPtr&lt;Inspector::InspectorObject&gt;' + sigil
</ins><span class="cx">         if isinstance(_type, ArrayType):
</span><del>-            return 'const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp;'
</del><ins>+            return 'const RefPtr&lt;Inspector::InspectorArray&gt;' + sigil
</ins><span class="cx">         if isinstance(_type, PrimitiveType):
</span><span class="cx">             cpp_name = CppGenerator.cpp_name_for_primitive_type(_type)
</span><span class="cx">             if parameter.is_optional:
</span><span class="lines">@@ -143,7 +144,7 @@
</span><span class="cx">     @staticmethod
</span><span class="cx">     def cpp_type_for_type_with_name(_type, type_name, is_optional):
</span><span class="cx">         if isinstance(_type, (ArrayType, ObjectType)):
</span><del>-            return 'RefPtr&lt;%s&gt;' % CppGenerator.cpp_protocol_type_for_type(_type)
</del><ins>+            return 'PassRefPtr&lt;%s&gt;' % CppGenerator.cpp_protocol_type_for_type(_type)
</ins><span class="cx">         if isinstance(_type, AliasedType):
</span><span class="cx">             builder_type = CppGenerator.cpp_protocol_type_for_type(_type)
</span><span class="cx">             if is_optional:
</span><span class="lines">@@ -157,9 +158,9 @@
</span><span class="cx">         if isinstance(_type, PrimitiveType):
</span><span class="cx">             cpp_name = CppGenerator.cpp_name_for_primitive_type(_type)
</span><span class="cx">             if _type.qualified_name() in ['object']:
</span><del>-                return 'RefPtr&lt;Inspector::InspectorObject&gt;'
</del><ins>+                return 'PassRefPtr&lt;Inspector::InspectorObject&gt;'
</ins><span class="cx">             elif _type.qualified_name() in ['any']:
</span><del>-                return 'RefPtr&lt;Inspector::InspectorValue&gt;'
</del><ins>+                return 'PassRefPtr&lt;Inspector::InspectorValue&gt;'
</ins><span class="cx">             elif is_optional:
</span><span class="cx">                 return 'const %s* const' % cpp_name
</span><span class="cx">             elif _type.qualified_name() in ['string']:
</span><span class="lines">@@ -211,7 +212,7 @@
</span><span class="cx">             _type = _type.primitive_type  # Fall through.
</span><span class="cx"> 
</span><span class="cx">         if isinstance(_type, (ObjectType, ArrayType)):
</span><del>-            return 'RefPtr&lt;%s&gt;&amp;&amp;' % CppGenerator.cpp_protocol_type_for_type(_type)
</del><ins>+            return 'PassRefPtr&lt;%s&gt;' % CppGenerator.cpp_protocol_type_for_type(_type)
</ins><span class="cx">         if isinstance(_type, PrimitiveType):
</span><span class="cx">             cpp_name = CppGenerator.cpp_name_for_primitive_type(_type)
</span><span class="cx">             if parameter.is_optional:
</span><span class="lines">@@ -296,9 +297,5 @@
</span><span class="cx">         return not isinstance(_type, (ArrayType, ObjectType))
</span><span class="cx"> 
</span><span class="cx">     @staticmethod
</span><del>-    def should_use_references_for_type(_type):
-        return isinstance(_type, (ArrayType, ObjectType)) or (isinstance(_type, (PrimitiveType)) and _type.qualified_name() in [&quot;any&quot;, &quot;object&quot;])
-
-    @staticmethod
</del><span class="cx">     def should_pass_by_copy_for_return_type(_type):
</span><span class="cx">         return isinstance(_type, (ArrayType, ObjectType)) or (isinstance(_type, (PrimitiveType)) and _type.qualified_name() == &quot;object&quot;)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegencpp_generator_templatespy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator_templates.py (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator_templates.py        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator_templates.py        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -76,10 +76,10 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> &quot;&quot;&quot;)
</span><span class="cx"> 
</span><span class="lines">@@ -108,11 +108,11 @@
</span><span class="cx">     BackendDispatcherHeaderDomainDispatcherDeclaration = (
</span><span class="cx">     &quot;&quot;&quot;${classAndExportMacro} Inspector${domainName}BackendDispatcher final : public Inspector::InspectorSupplementalBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;Inspector${domainName}BackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, Inspector${domainName}BackendDispatcherHandler*);
-    virtual void dispatch(long callId, const String&amp; method, Ref&lt;Inspector::InspectorObject&gt;&amp;&amp; message) override;
</del><ins>+    static PassRefPtr&lt;Inspector${domainName}BackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, Inspector${domainName}BackendDispatcherHandler*);
+    virtual void dispatch(long callId, const String&amp; method, PassRefPtr&lt;Inspector::InspectorObject&gt; message) override;
</ins><span class="cx"> ${commandDeclarations}
</span><span class="cx"> private:
</span><del>-    Inspector${domainName}BackendDispatcher(Inspector::InspectorBackendDispatcher&amp;, Inspector${domainName}BackendDispatcherHandler*);
</del><ins>+    Inspector${domainName}BackendDispatcher(Inspector::InspectorBackendDispatcher*, Inspector${domainName}BackendDispatcherHandler*);
</ins><span class="cx">     Inspector${domainName}BackendDispatcherHandler* m_agent;
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx"> public:
</span><span class="lines">@@ -125,13 +125,13 @@
</span><span class="cx">     BackendDispatcherHeaderAsyncCommandDeclaration = (
</span><span class="cx">     &quot;&quot;&quot;    ${classAndExportMacro} ${callbackName} : public Inspector::InspectorBackendDispatcher::CallbackBase {
</span><span class="cx">     public:
</span><del>-        ${callbackName}(Ref&lt;Inspector::InspectorBackendDispatcher&gt;&amp;&amp;, int id);
</del><ins>+        ${callbackName}(PassRefPtr&lt;Inspector::InspectorBackendDispatcher&gt;, int id);
</ins><span class="cx">         void sendSuccess(${outParameters});
</span><span class="cx">     };
</span><span class="cx">     virtual void ${commandName}(${inParameters}) = 0;&quot;&quot;&quot;)
</span><span class="cx"> 
</span><span class="cx">     BackendDispatcherImplementationSmallSwitch = (
</span><del>-    &quot;&quot;&quot;void Inspector${domainName}BackendDispatcher::dispatch(long callId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
</del><ins>+    &quot;&quot;&quot;void Inspector${domainName}BackendDispatcher::dispatch(long callId, const String&amp; method, PassRefPtr&lt;InspectorObject&gt; message)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;Inspector${domainName}BackendDispatcher&gt; protect(*this);
</span><span class="cx"> 
</span><span class="lines">@@ -141,7 +141,7 @@
</span><span class="cx"> }&quot;&quot;&quot;)
</span><span class="cx"> 
</span><span class="cx">     BackendDispatcherImplementationLargeSwitch = (
</span><del>-&quot;&quot;&quot;void Inspector${domainName}BackendDispatcher::dispatch(long callId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
</del><ins>+&quot;&quot;&quot;void Inspector${domainName}BackendDispatcher::dispatch(long callId, const String&amp; method, PassRefPtr&lt;InspectorObject&gt; message)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;Inspector${domainName}BackendDispatcher&gt; protect(*this);
</span><span class="cx"> 
</span><span class="lines">@@ -166,16 +166,16 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    ((*this).*it-&gt;value)(callId, message.get());
</del><ins>+    ((*this).*it-&gt;value)(callId, *message.get());
</ins><span class="cx"> }&quot;&quot;&quot;)
</span><span class="cx"> 
</span><span class="cx">     BackendDispatcherImplementationDomainConstructor = (
</span><del>-    &quot;&quot;&quot;Ref&lt;Inspector${domainName}BackendDispatcher&gt; Inspector${domainName}BackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, Inspector${domainName}BackendDispatcherHandler* agent)
</del><ins>+    &quot;&quot;&quot;PassRefPtr&lt;Inspector${domainName}BackendDispatcher&gt; Inspector${domainName}BackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, Inspector${domainName}BackendDispatcherHandler* agent)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new Inspector${domainName}BackendDispatcher(*backendDispatcher, agent));
</del><ins>+    return adoptRef(new Inspector${domainName}BackendDispatcher(backendDispatcher, agent));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Inspector${domainName}BackendDispatcher::Inspector${domainName}BackendDispatcher(InspectorBackendDispatcher&amp; backendDispatcher, Inspector${domainName}BackendDispatcherHandler* agent)
</del><ins>+Inspector${domainName}BackendDispatcher::Inspector${domainName}BackendDispatcher(InspectorBackendDispatcher* backendDispatcher, Inspector${domainName}BackendDispatcherHandler* agent)
</ins><span class="cx">     : InspectorSupplementalBackendDispatcher(backendDispatcher)
</span><span class="cx">     , m_agent(agent)
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="lines">@@ -186,25 +186,26 @@
</span><span class="cx"> }&quot;&quot;&quot;)
</span><span class="cx"> 
</span><span class="cx">     BackendDispatcherImplementationPrepareCommandArguments = (
</span><del>-&quot;&quot;&quot;    auto protocolErrors = Inspector::Protocol::Array&lt;String&gt;::create();
-    RefPtr&lt;InspectorObject&gt; paramsContainer;
-    message.getObject(ASCIILiteral(&quot;params&quot;), paramsContainer);
</del><ins>+&quot;&quot;&quot;    RefPtr&lt;InspectorArray&gt; protocolErrors = InspectorArray::create();
+    RefPtr&lt;InspectorObject&gt; paramsContainer = message.getObject(ASCIILiteral(&quot;params&quot;));
+    InspectorObject* paramsContainerPtr = paramsContainer.get();
+    InspectorArray* protocolErrorsPtr = protocolErrors.get();
</ins><span class="cx"> ${inParameterDeclarations}
</span><span class="cx">     if (protocolErrors-&gt;length()) {
</span><span class="cx">         String errorMessage = String::format(&quot;Some arguments of method \'%s\' can't be processed&quot;, &quot;${domainName}.${commandName}&quot;);
</span><del>-        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, WTF::move(protocolErrors));
</del><ins>+        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, protocolErrors.release());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> &quot;&quot;&quot;)
</span><span class="cx"> 
</span><span class="cx">     BackendDispatcherImplementationAsyncCommand = (
</span><del>-&quot;&quot;&quot;Inspector${domainName}BackendDispatcherHandler::${callbackName}::${callbackName}(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; backendDispatcher, int id) : Inspector::InspectorBackendDispatcher::CallbackBase(WTF::move(backendDispatcher), id) { }
</del><ins>+&quot;&quot;&quot;Inspector${domainName}BackendDispatcherHandler::${callbackName}::${callbackName}(PassRefPtr&lt;InspectorBackendDispatcher&gt; backendDispatcher, int id) : Inspector::InspectorBackendDispatcher::CallbackBase(backendDispatcher, id) { }
</ins><span class="cx"> 
</span><span class="cx"> void Inspector${domainName}BackendDispatcherHandler::${callbackName}::sendSuccess(${formalParameters})
</span><span class="cx"> {
</span><del>-    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</ins><span class="cx"> ${outParameterAssignments}
</span><del>-    sendIfActive(WTF::move(jsonMessage), ErrorString());
</del><ins>+    sendIfActive(jsonMessage, ErrorString());
</ins><span class="cx"> }&quot;&quot;&quot;)
</span><span class="cx"> 
</span><span class="cx">     FrontendDispatcherDomainDispatcherDeclaration = (
</span><span class="lines">@@ -227,23 +228,26 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*${objectType}*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*${objectType}*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class ${objectType};
</span><span class="cx">     public:&quot;&quot;&quot;)
</span><span class="cx"> 
</span><span class="cx">     ProtocolObjectBuilderDeclarationPostlude = (
</span><span class="cx"> &quot;&quot;&quot;
</span><del>-        Ref&lt;${objectType}&gt; release()
</del><ins>+        operator RefPtr&lt;${objectType}&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(${objectType}) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;${objectType}&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;${objectType}&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;${objectType}&gt; release()
+        {
+            return RefPtr&lt;${objectType}&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="lines">@@ -254,10 +258,11 @@
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><del>-    }&quot;&quot;&quot;)
</del><ins>+    }
+    typedef Inspector::Protocol::StructItemTraits ItemTraits;&quot;&quot;&quot;)
</ins><span class="cx"> 
</span><span class="cx">     ProtocolObjectRuntimeCast = (
</span><del>-&quot;&quot;&quot;RefPtr&lt;${objectType}&gt; BindingTraits&lt;${objectType}&gt;::runtimeCast(RefPtr&lt;Inspector::InspectorValue&gt;&amp;&amp; value)
</del><ins>+&quot;&quot;&quot;PassRefPtr&lt;${objectType}&gt; BindingTraits&lt;${objectType}&gt;::runtimeCast(PassRefPtr&lt;Inspector::InspectorValue&gt; value)
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Inspector::InspectorObject&gt; result;
</span><span class="cx">     bool castSucceeded = value-&gt;asObject(result);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -52,6 +52,7 @@
</span><span class="cx">         headers = [
</span><span class="cx">             '&quot;InspectorProtocolObjects.h&quot;',
</span><span class="cx">             '&lt;inspector/InspectorBackendDispatcher.h&gt;',
</span><ins>+            '&lt;wtf/PassRefPtr.h&gt;',
</ins><span class="cx">             '&lt;wtf/text/WTFString.h&gt;']
</span><span class="cx"> 
</span><span class="cx">         typedefs = [('String', 'ErrorString')]
</span><span class="lines">@@ -156,7 +157,7 @@
</span><span class="cx">         in_parameters = ['ErrorString&amp;']
</span><span class="cx">         for _parameter in command.call_parameters:
</span><span class="cx">             in_parameters.append(&quot;%s in_%s&quot; % (CppGenerator.cpp_type_for_unchecked_formal_in_parameter(_parameter), _parameter.parameter_name))
</span><del>-        in_parameters.append(&quot;Ref&lt;%s&gt;&amp;&amp; callback&quot; % callbackName)
</del><ins>+        in_parameters.append(&quot;PassRefPtr&lt;%s&gt; callback&quot; % callbackName)
</ins><span class="cx"> 
</span><span class="cx">         out_parameters = []
</span><span class="cx">         for _parameter in command.return_parameters:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -104,10 +104,10 @@
</span><span class="cx">     def _generate_small_dispatcher_switch_implementation_for_domain(self, domain):
</span><span class="cx">         cases = []
</span><span class="cx">         cases.append('    if (method == &quot;%s&quot;)' % domain.commands[0].command_name)
</span><del>-        cases.append('        %s(callId, message);' % domain.commands[0].command_name)
</del><ins>+        cases.append('        %s(callId, *message.get());' % domain.commands[0].command_name)
</ins><span class="cx">         for command in domain.commands[1:]:
</span><span class="cx">             cases.append('    else if (method == &quot;%s&quot;)' % command.command_name)
</span><del>-            cases.append('        %s(callId, message);' % command.command_name)
</del><ins>+            cases.append('        %s(callId, *message.get());' % command.command_name)
</ins><span class="cx"> 
</span><span class="cx">         switch_args = {
</span><span class="cx">             'domainName': domain.domain_name,
</span><span class="lines">@@ -178,29 +178,22 @@
</span><span class="cx">                 out_success_argument = '&amp;%s_valueFound' % parameter.parameter_name
</span><span class="cx">                 in_parameter_declarations.append('    bool %s_valueFound = false;' % parameter.parameter_name)
</span><span class="cx"> 
</span><del>-            parameter_expression = 'in_' + parameter.parameter_name
-            if CppGenerator.should_use_references_for_type(parameter.type):
-                parameter_expression = '%s.copyRef()' % parameter_expression
-            elif parameter.is_optional:
-                parameter_expression = '&amp;%s' % parameter_expression
-
</del><span class="cx">             param_args = {
</span><span class="cx">                 'parameterType': CppGenerator.cpp_type_for_stack_in_parameter(parameter),
</span><span class="cx">                 'parameterName': parameter.parameter_name,
</span><del>-                'parameterExpression': parameter_expression,
</del><span class="cx">                 'keyedGetMethod': CppGenerator.cpp_getter_method_for_type(parameter.type),
</span><span class="cx">                 'successOutParam': out_success_argument
</span><span class="cx">             }
</span><span class="cx"> 
</span><del>-            in_parameter_declarations.append('    %(parameterType)s in_%(parameterName)s = InspectorBackendDispatcher::%(keyedGetMethod)s(paramsContainer.get(), ASCIILiteral(&quot;%(parameterName)s&quot;), %(successOutParam)s, protocolErrors.get());' % param_args)
</del><ins>+            in_parameter_declarations.append('    %(parameterType)s in_%(parameterName)s = InspectorBackendDispatcher::%(keyedGetMethod)s(paramsContainerPtr, ASCIILiteral(&quot;%(parameterName)s&quot;), %(successOutParam)s, protocolErrorsPtr);' % param_args)
</ins><span class="cx"> 
</span><span class="cx">             if parameter.is_optional:
</span><del>-                optional_in_parameter_string = '%(parameterName)s_valueFound ? %(parameterExpression)s : nullptr' % param_args
</del><ins>+                optional_in_parameter_string = '%(parameterName)s_valueFound ? &amp;in_%(parameterName)s : nullptr' % param_args
</ins><span class="cx">                 alternate_dispatcher_method_parameters.append(optional_in_parameter_string)
</span><span class="cx">                 method_parameters.append(optional_in_parameter_string)
</span><span class="cx">             else:
</span><del>-                alternate_dispatcher_method_parameters.append(parameter_expression)
-                method_parameters.append(parameter_expression)
</del><ins>+                alternate_dispatcher_method_parameters.append('in_' + parameter.parameter_name)
+                method_parameters.append('in_' + parameter.parameter_name)
</ins><span class="cx"> 
</span><span class="cx">         if command.is_async:
</span><span class="cx">             async_args = {
</span><span class="lines">@@ -211,7 +204,7 @@
</span><span class="cx">             out_parameter_assignments.append('        callback-&gt;disable();')
</span><span class="cx">             out_parameter_assignments.append('        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, Inspector::InspectorBackendDispatcher::ServerError, error);')
</span><span class="cx">             out_parameter_assignments.append('        return;')
</span><del>-            method_parameters.append('callback.copyRef()')
</del><ins>+            method_parameters.append('callback')
</ins><span class="cx"> 
</span><span class="cx">         else:
</span><span class="cx">             for parameter in command.return_parameters:
</span><span class="lines">@@ -268,9 +261,9 @@
</span><span class="cx">         lines.append('')
</span><span class="cx"> 
</span><span class="cx">         lines.append('    ErrorString error;')
</span><del>-        lines.append('    Ref&lt;InspectorObject&gt; result = InspectorObject::create();')
</del><ins>+        lines.append('    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();')
</ins><span class="cx">         if command.is_async:
</span><del>-            lines.append('    Ref&lt;Inspector%(domainName)sBackendDispatcherHandler::%(callbackName)s&gt; callback = adoptRef(*new Inspector%(domainName)sBackendDispatcherHandler::%(callbackName)s(m_backendDispatcher.copyRef(), callId));' % command_args)
</del><ins>+            lines.append('    RefPtr&lt;Inspector%(domainName)sBackendDispatcherHandler::%(callbackName)s&gt; callback = adoptRef(new Inspector%(domainName)sBackendDispatcherHandler::%(callbackName)s(m_backendDispatcher,callId));' % command_args)
</ins><span class="cx">         if len(command.return_parameters) &gt; 0:
</span><span class="cx">             lines.extend(out_parameter_declarations)
</span><span class="cx">         lines.append('    m_agent-&gt;%(commandName)s(%(invocationParameters)s);' % command_args)
</span><span class="lines">@@ -289,6 +282,6 @@
</span><span class="cx">             lines.append('')
</span><span class="cx"> 
</span><span class="cx">         if not command.is_async:
</span><del>-            lines.append('    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);')
</del><ins>+            lines.append('    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);')
</ins><span class="cx">         lines.append('}')
</span><span class="cx">         return &quot;\n&quot;.join(lines)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_frontend_dispatcher_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -53,6 +53,7 @@
</span><span class="cx">             '&quot;InspectorProtocolObjects.h&quot;',
</span><span class="cx">             '&lt;inspector/InspectorFrontendChannel.h&gt;',
</span><span class="cx">             '&lt;inspector/InspectorValues.h&gt;',
</span><ins>+            '&lt;wtf/PassRefPtr.h&gt;',
</ins><span class="cx">             '&lt;wtf/text/WTFString.h&gt;']
</span><span class="cx"> 
</span><span class="cx">         header_args = {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_frontend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -107,13 +107,13 @@
</span><span class="cx"> 
</span><span class="cx">         lines.append('void Inspector%(domainName)sFrontendDispatcher::%(eventName)s(%(formalParameters)s)' % event_args)
</span><span class="cx">         lines.append('{')
</span><del>-        lines.append('    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();')
</del><ins>+        lines.append('    RefPtr&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();')
</ins><span class="cx">         lines.append('    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;%(domainName)s.%(eventName)s&quot;));' % event_args)
</span><span class="cx"> 
</span><span class="cx">         if len(parameter_assignments) &gt; 0:
</span><del>-            lines.append('    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();')
</del><ins>+            lines.append('    RefPtr&lt;InspectorObject&gt; paramsObject = InspectorObject::create();')
</ins><span class="cx">             lines.extend(parameter_assignments)
</span><del>-            lines.append('    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), paramsObject.copyRef());')
</del><ins>+            lines.append('    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), paramsObject);')
</ins><span class="cx"> 
</span><span class="cx">         lines.append('')
</span><span class="cx">         lines.append('    m_inspectorFrontendChannel-&gt;sendMessageToFrontend(jsonMessage-&gt;toJSONString());')
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -52,6 +52,7 @@
</span><span class="cx">         headers = set([
</span><span class="cx">             '&lt;inspector/InspectorProtocolTypes.h&gt;',
</span><span class="cx">             '&lt;wtf/Assertions.h&gt;',
</span><ins>+            '&lt;wtf/PassRefPtr.h&gt;'
</ins><span class="cx">         ])
</span><span class="cx"> 
</span><span class="cx">         export_macro = self.model().framework.setting('export_macro', None)
</span><span class="lines">@@ -194,10 +195,9 @@
</span><span class="cx">         lines.append(self._generate_builder_state_enum(type_declaration))
</span><span class="cx"> 
</span><span class="cx">         constructor_example = []
</span><del>-        constructor_example.append('     * Ref&lt;%s&gt; result = %s::create()' % (object_name, object_name))
</del><ins>+        constructor_example.append('     * RefPtr&lt;%s&gt; result = %s::create()' % (object_name, object_name))
</ins><span class="cx">         for member in required_members:
</span><span class="cx">             constructor_example.append('     *     .set%s(...)' % ucfirst(member.member_name))
</span><del>-        constructor_example.append('     *     .release()')
</del><span class="cx"> 
</span><span class="cx">         builder_args = {
</span><span class="cx">             'objectType': object_name,
</span><span class="lines">@@ -302,8 +302,6 @@
</span><span class="cx">         lines.append('    {')
</span><span class="cx">         if isinstance(type_member.type, EnumType):
</span><span class="cx">             lines.append('        InspectorObjectBase::%(keyedSet)s(ASCIILiteral(&quot;%(name)s&quot;), Inspector::Protocol::getEnumConstantValue(static_cast&lt;int&gt;(value)));' % setter_args)
</span><del>-        elif CppGenerator.should_use_references_for_type(type_member.type):
-            lines.append('        InspectorObjectBase::%(keyedSet)s(ASCIILiteral(&quot;%(name)s&quot;), WTF::move(value));' % setter_args)
</del><span class="cx">         else:
</span><span class="cx">             lines.append('        InspectorObjectBase::%(keyedSet)s(ASCIILiteral(&quot;%(name)s&quot;), value);' % setter_args)
</span><span class="cx">         lines.append('    }')
</span><span class="lines">@@ -335,7 +333,7 @@
</span><span class="cx">         for argument in type_arguments:
</span><span class="cx">             lines.append('template&lt;&gt; %s BindingTraits&lt;%s&gt; {' % (' '.join(struct_keywords), argument[0]))
</span><span class="cx">             if argument[1]:
</span><del>-                lines.append('static RefPtr&lt;%s&gt; runtimeCast(RefPtr&lt;Inspector::InspectorValue&gt;&amp;&amp; value);' % argument[0])
</del><ins>+                lines.append('static PassRefPtr&lt;%s&gt; runtimeCast(PassRefPtr&lt;Inspector::InspectorValue&gt; value);' % argument[0])
</ins><span class="cx">             lines.append('#if !ASSERT_DISABLED')
</span><span class="cx">             lines.append('%s assertValueHasExpectedType(Inspector::InspectorValue*);' % ' '.join(function_keywords))
</span><span class="cx">             lines.append('#endif // !ASSERT_DISABLED')
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -122,7 +122,6 @@
</span><span class="cx">         lines.append('#if !ASSERT_DISABLED')
</span><span class="cx">         lines.append('void BindingTraits&lt;%s&gt;::assertValueHasExpectedType(Inspector::InspectorValue* value)' % (CppGenerator.cpp_protocol_type_for_type(object_declaration.type)))
</span><span class="cx">         lines.append(&quot;&quot;&quot;{
</span><del>-    ASSERT_ARG(value, value);
</del><span class="cx">     RefPtr&lt;InspectorObject&gt; object;
</span><span class="cx">     bool castSucceeded = value-&gt;asObject(object);
</span><span class="cx">     ASSERT_UNUSED(castSucceeded, castSucceeded);&quot;&quot;&quot;)
</span><span class="lines">@@ -170,7 +169,6 @@
</span><span class="cx">         lines.append('#if !ASSERT_DISABLED')
</span><span class="cx">         lines.append('void %s(Inspector::InspectorValue* value)' % CppGenerator.cpp_assertion_method_for_type_member(enum_member, object_declaration))
</span><span class="cx">         lines.append('{')
</span><del>-        lines.append('    ASSERT_ARG(value, value);')
</del><span class="cx">         lines.append('    String result;')
</span><span class="cx">         lines.append('    bool castSucceeded = value-&gt;asString(result);')
</span><span class="cx">         lines.append('    ASSERT(castSucceeded);')
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_backend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx">             lines.append('    id successCallback = ^{')
</span><span class="cx"> 
</span><span class="cx">         if command.return_parameters:
</span><del>-            lines.append('        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();')
</del><ins>+            lines.append('        RefPtr&lt;InspectorObject&gt; resultObject = InspectorObject::create();')
</ins><span class="cx"> 
</span><span class="cx">             required_pointer_parameters = filter(lambda parameter: not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), command.return_parameters)
</span><span class="cx">             for parameter in required_pointer_parameters:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_frontend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -116,7 +116,7 @@
</span><span class="cx">         if required_pointer_parameters or optional_pointer_parameters:
</span><span class="cx">             lines.append('')
</span><span class="cx"> 
</span><del>-        lines.append('    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();')
</del><ins>+        lines.append('    RefPtr&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();')
</ins><span class="cx">         lines.append('    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;%s.%s&quot;));' % (domain.domain_name, event.event_name))
</span><span class="cx">         if event.event_parameters:
</span><span class="cx">             lines.extend(self._generate_event_out_parameters(domain, event))
</span><span class="lines">@@ -136,7 +136,7 @@
</span><span class="cx"> 
</span><span class="cx">     def _generate_event_out_parameters(self, domain, event):
</span><span class="cx">         lines = []
</span><del>-        lines.append('    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();')
</del><ins>+        lines.append('    RefPtr&lt;InspectorObject&gt; paramsObject = InspectorObject::create();')
</ins><span class="cx">         for parameter in event.event_parameters:
</span><span class="cx">             keyed_set_method = CppGenerator.cpp_setter_method_for_type(parameter.type)
</span><span class="cx">             var_name = parameter.parameter_name
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_types_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -58,6 +58,7 @@
</span><span class="cx">             '&quot;%sEnumConversionHelpers.h&quot;' % ObjCGenerator.OBJC_PREFIX,
</span><span class="cx">             '&lt;JavaScriptCore/InspectorValues.h&gt;',
</span><span class="cx">             '&lt;wtf/Assertions.h&gt;',
</span><ins>+            '&lt;wtf/PassRefPtr.h&gt;',
</ins><span class="cx">         ]
</span><span class="cx"> 
</span><span class="cx">         header_args = {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithasyncattributejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,10 +41,10 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -143,6 +143,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorBackendDispatcher.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -171,32 +172,32 @@
</span><span class="cx">     virtual void executeSQLSyncOptionalReturnValues(ErrorString&amp;, int in_databaseId, const String&amp; in_query, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp; opt_out_columnNames, Inspector::Protocol::OptOutput&lt;String&gt;* opt_out_notes, Inspector::Protocol::OptOutput&lt;double&gt;* opt_out_timestamp, Inspector::Protocol::OptOutput&lt;Inspector::InspectorObject&gt;* opt_out_values, Inspector::Protocol::OptOutput&lt;Inspector::InspectorValue&gt;* opt_out_payload, Inspector::Protocol::OptOutput&lt;int&gt;* opt_out_databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp; opt_out_sqlError, Inspector::Protocol::Database::PrimaryColors* opt_out_screenColor, InspectorDatabaseBackendDispatcherHandler::PrintColor* opt_out_printColor) = 0;
</span><span class="cx">     class ExecuteSQLAsyncOptionalReturnValuesCallback : public Inspector::InspectorBackendDispatcher::CallbackBase {
</span><span class="cx">     public:
</span><del>-        ExecuteSQLAsyncOptionalReturnValuesCallback(Ref&lt;Inspector::InspectorBackendDispatcher&gt;&amp;&amp;, int id);
-        void sendSuccess(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp;&amp; columnNames, Inspector::Protocol::OptOutput&lt;String&gt;* notes, Inspector::Protocol::OptOutput&lt;double&gt;* timestamp, Inspector::Protocol::OptOutput&lt;Inspector::InspectorObject&gt;* values, Inspector::Protocol::OptOutput&lt;Inspector::InspectorValue&gt;* payload, Inspector::Protocol::OptOutput&lt;int&gt;* databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp;&amp; sqlError, Inspector::Protocol::OptOutput&lt;String&gt;* screenColor, Inspector::Protocol::OptOutput&lt;String&gt;* printColor);
</del><ins>+        ExecuteSQLAsyncOptionalReturnValuesCallback(PassRefPtr&lt;Inspector::InspectorBackendDispatcher&gt;, int id);
+        void sendSuccess(PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, Inspector::Protocol::OptOutput&lt;String&gt;* notes, Inspector::Protocol::OptOutput&lt;double&gt;* timestamp, Inspector::Protocol::OptOutput&lt;Inspector::InspectorObject&gt;* values, Inspector::Protocol::OptOutput&lt;Inspector::InspectorValue&gt;* payload, Inspector::Protocol::OptOutput&lt;int&gt;* databaseId, PassRefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, Inspector::Protocol::OptOutput&lt;String&gt;* screenColor, Inspector::Protocol::OptOutput&lt;String&gt;* printColor);
</ins><span class="cx">     };
</span><del>-    virtual void executeSQLAsyncOptionalReturnValues(ErrorString&amp;, int in_databaseId, const String&amp; in_query, Ref&lt;ExecuteSQLAsyncOptionalReturnValuesCallback&gt;&amp;&amp; callback) = 0;
</del><ins>+    virtual void executeSQLAsyncOptionalReturnValues(ErrorString&amp;, int in_databaseId, const String&amp; in_query, PassRefPtr&lt;ExecuteSQLAsyncOptionalReturnValuesCallback&gt; callback) = 0;
</ins><span class="cx">     virtual void executeSQLSync(ErrorString&amp;, int in_databaseId, const String&amp; in_query, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp; out_columnNames, String* out_notes, double* out_timestamp, Inspector::InspectorObject* out_values, Inspector::InspectorValue* out_payload, int* out_databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp; out_sqlError, Inspector::Protocol::Database::PrimaryColors* out_screenColor, InspectorDatabaseBackendDispatcherHandler::PrintColor* out_printColor) = 0;
</span><span class="cx">     class ExecuteSQLAsyncCallback : public Inspector::InspectorBackendDispatcher::CallbackBase {
</span><span class="cx">     public:
</span><del>-        ExecuteSQLAsyncCallback(Ref&lt;Inspector::InspectorBackendDispatcher&gt;&amp;&amp;, int id);
-        void sendSuccess(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp;&amp; columnNames, const String&amp; notes, double timestamp, Inspector::InspectorObject values, Inspector::InspectorValue payload, int databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp;&amp; sqlError, const String&amp; screenColor, const String&amp; printColor);
</del><ins>+        ExecuteSQLAsyncCallback(PassRefPtr&lt;Inspector::InspectorBackendDispatcher&gt;, int id);
+        void sendSuccess(PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String&amp; notes, double timestamp, Inspector::InspectorObject values, Inspector::InspectorValue payload, int databaseId, PassRefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const String&amp; screenColor, const String&amp; printColor);
</ins><span class="cx">     };
</span><del>-    virtual void executeSQLAsync(ErrorString&amp;, int in_databaseId, const String&amp; in_query, Ref&lt;ExecuteSQLAsyncCallback&gt;&amp;&amp; callback) = 0;
</del><ins>+    virtual void executeSQLAsync(ErrorString&amp;, int in_databaseId, const String&amp; in_query, PassRefPtr&lt;ExecuteSQLAsyncCallback&gt; callback) = 0;
</ins><span class="cx"> protected:
</span><span class="cx">     virtual ~InspectorDatabaseBackendDispatcherHandler();
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class InspectorDatabaseBackendDispatcher final : public Inspector::InspectorSupplementalBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;InspectorDatabaseBackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, InspectorDatabaseBackendDispatcherHandler*);
-    virtual void dispatch(long callId, const String&amp; method, Ref&lt;Inspector::InspectorObject&gt;&amp;&amp; message) override;
</del><ins>+    static PassRefPtr&lt;InspectorDatabaseBackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, InspectorDatabaseBackendDispatcherHandler*);
+    virtual void dispatch(long callId, const String&amp; method, PassRefPtr&lt;Inspector::InspectorObject&gt; message) override;
</ins><span class="cx"> private:
</span><span class="cx">     void executeSQLSyncOptionalReturnValues(long callId, const Inspector::InspectorObject&amp; message);
</span><span class="cx">     void executeSQLAsyncOptionalReturnValues(long callId, const Inspector::InspectorObject&amp; message);
</span><span class="cx">     void executeSQLSync(long callId, const Inspector::InspectorObject&amp; message);
</span><span class="cx">     void executeSQLAsync(long callId, const Inspector::InspectorObject&amp; message);
</span><span class="cx"> private:
</span><del>-    InspectorDatabaseBackendDispatcher(Inspector::InspectorBackendDispatcher&amp;, InspectorDatabaseBackendDispatcherHandler*);
</del><ins>+    InspectorDatabaseBackendDispatcher(Inspector::InspectorBackendDispatcher*, InspectorDatabaseBackendDispatcherHandler*);
</ins><span class="cx">     InspectorDatabaseBackendDispatcherHandler* m_agent;
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx"> public:
</span><span class="lines">@@ -261,12 +262,12 @@
</span><span class="cx"> 
</span><span class="cx"> InspectorDatabaseBackendDispatcherHandler::~InspectorDatabaseBackendDispatcherHandler() { }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorDatabaseBackendDispatcher&gt; InspectorDatabaseBackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, InspectorDatabaseBackendDispatcherHandler* agent)
</del><ins>+PassRefPtr&lt;InspectorDatabaseBackendDispatcher&gt; InspectorDatabaseBackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, InspectorDatabaseBackendDispatcherHandler* agent)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorDatabaseBackendDispatcher(*backendDispatcher, agent));
</del><ins>+    return adoptRef(new InspectorDatabaseBackendDispatcher(backendDispatcher, agent));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-InspectorDatabaseBackendDispatcher::InspectorDatabaseBackendDispatcher(InspectorBackendDispatcher&amp; backendDispatcher, InspectorDatabaseBackendDispatcherHandler* agent)
</del><ins>+InspectorDatabaseBackendDispatcher::InspectorDatabaseBackendDispatcher(InspectorBackendDispatcher* backendDispatcher, InspectorDatabaseBackendDispatcherHandler* agent)
</ins><span class="cx">     : InspectorSupplementalBackendDispatcher(backendDispatcher)
</span><span class="cx">     , m_agent(agent)
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="lines">@@ -276,32 +277,33 @@
</span><span class="cx">     m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;Database&quot;), this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDatabaseBackendDispatcher::dispatch(long callId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
</del><ins>+void InspectorDatabaseBackendDispatcher::dispatch(long callId, const String&amp; method, PassRefPtr&lt;InspectorObject&gt; message)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;InspectorDatabaseBackendDispatcher&gt; protect(*this);
</span><span class="cx"> 
</span><span class="cx">     if (method == &quot;executeSQLSyncOptionalReturnValues&quot;)
</span><del>-        executeSQLSyncOptionalReturnValues(callId, message);
</del><ins>+        executeSQLSyncOptionalReturnValues(callId, *message.get());
</ins><span class="cx">     else if (method == &quot;executeSQLAsyncOptionalReturnValues&quot;)
</span><del>-        executeSQLAsyncOptionalReturnValues(callId, message);
</del><ins>+        executeSQLAsyncOptionalReturnValues(callId, *message.get());
</ins><span class="cx">     else if (method == &quot;executeSQLSync&quot;)
</span><del>-        executeSQLSync(callId, message);
</del><ins>+        executeSQLSync(callId, *message.get());
</ins><span class="cx">     else if (method == &quot;executeSQLAsync&quot;)
</span><del>-        executeSQLAsync(callId, message);
</del><ins>+        executeSQLAsync(callId, *message.get());
</ins><span class="cx">     else
</span><span class="cx">         m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::MethodNotFound, makeString('\'', &quot;Database&quot;, '.', method, &quot;' was not found&quot;));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDatabaseBackendDispatcher::executeSQLSyncOptionalReturnValues(long callId, const InspectorObject&amp; message)
</span><span class="cx"> {
</span><del>-    auto protocolErrors = Inspector::Protocol::Array&lt;String&gt;::create();
-    RefPtr&lt;InspectorObject&gt; paramsContainer;
-    message.getObject(ASCIILiteral(&quot;params&quot;), paramsContainer);
-    int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainer.get(), ASCIILiteral(&quot;databaseId&quot;), nullptr, protocolErrors.get());
-    String in_query = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral(&quot;query&quot;), nullptr, protocolErrors.get());
</del><ins>+    RefPtr&lt;InspectorArray&gt; protocolErrors = InspectorArray::create();
+    RefPtr&lt;InspectorObject&gt; paramsContainer = message.getObject(ASCIILiteral(&quot;params&quot;));
+    InspectorObject* paramsContainerPtr = paramsContainer.get();
+    InspectorArray* protocolErrorsPtr = protocolErrors.get();
+    int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral(&quot;databaseId&quot;), nullptr, protocolErrorsPtr);
+    String in_query = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral(&quot;query&quot;), nullptr, protocolErrorsPtr);
</ins><span class="cx">     if (protocolErrors-&gt;length()) {
</span><span class="cx">         String errorMessage = String::format(&quot;Some arguments of method '%s' can't be processed&quot;, &quot;Database.executeSQLSyncOptionalReturnValues&quot;);
</span><del>-        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, WTF::move(protocolErrors));
</del><ins>+        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, protocolErrors.release());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -313,7 +315,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; out_columnNames;
</span><span class="cx">     Inspector::Protocol::OptOutput&lt;String&gt; out_notes;
</span><span class="cx">     Inspector::Protocol::OptOutput&lt;double&gt; out_timestamp;
</span><span class="lines">@@ -345,14 +347,14 @@
</span><span class="cx">         if (out_printColor.isAssigned())
</span><span class="cx">             result-&gt;setString(ASCIILiteral(&quot;printColor&quot;), out_printColor.getValue());
</span><span class="cx">     }
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback::ExecuteSQLAsyncOptionalReturnValuesCallback(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; backendDispatcher, int id) : Inspector::InspectorBackendDispatcher::CallbackBase(WTF::move(backendDispatcher), id) { }
</del><ins>+InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback::ExecuteSQLAsyncOptionalReturnValuesCallback(PassRefPtr&lt;InspectorBackendDispatcher&gt; backendDispatcher, int id) : Inspector::InspectorBackendDispatcher::CallbackBase(backendDispatcher, id) { }
</ins><span class="cx"> 
</span><del>-void InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback::sendSuccess(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp;&amp; columnNames, Inspector::Protocol::OptOutput&lt;String&gt;* notes, Inspector::Protocol::OptOutput&lt;double&gt;* timestamp, Inspector::Protocol::OptOutput&lt;Inspector::InspectorObject&gt;* values, Inspector::Protocol::OptOutput&lt;Inspector::InspectorValue&gt;* payload, Inspector::Protocol::OptOutput&lt;int&gt;* databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp;&amp; sqlError, Inspector::Protocol::OptOutput&lt;String&gt;* screenColor, Inspector::Protocol::OptOutput&lt;String&gt;* printColor)
</del><ins>+void InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback::sendSuccess(PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, Inspector::Protocol::OptOutput&lt;String&gt;* notes, Inspector::Protocol::OptOutput&lt;double&gt;* timestamp, Inspector::Protocol::OptOutput&lt;Inspector::InspectorObject&gt;* values, Inspector::Protocol::OptOutput&lt;Inspector::InspectorValue&gt;* payload, Inspector::Protocol::OptOutput&lt;int&gt;* databaseId, PassRefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, Inspector::Protocol::OptOutput&lt;String&gt;* screenColor, Inspector::Protocol::OptOutput&lt;String&gt;* printColor)
</ins><span class="cx"> {
</span><del>-    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</ins><span class="cx">     if (columnNames)
</span><span class="cx">         jsonMessage-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), columnNames);
</span><span class="cx">     if (notes.isAssigned())
</span><span class="lines">@@ -371,19 +373,20 @@
</span><span class="cx">         jsonMessage-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), screenColor.getValue());
</span><span class="cx">     if (printColor.isAssigned())
</span><span class="cx">         jsonMessage-&gt;setString(ASCIILiteral(&quot;printColor&quot;), printColor.getValue());
</span><del>-    sendIfActive(WTF::move(jsonMessage), ErrorString());
</del><ins>+    sendIfActive(jsonMessage, ErrorString());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDatabaseBackendDispatcher::executeSQLAsyncOptionalReturnValues(long callId, const InspectorObject&amp; message)
</span><span class="cx"> {
</span><del>-    auto protocolErrors = Inspector::Protocol::Array&lt;String&gt;::create();
-    RefPtr&lt;InspectorObject&gt; paramsContainer;
-    message.getObject(ASCIILiteral(&quot;params&quot;), paramsContainer);
-    int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainer.get(), ASCIILiteral(&quot;databaseId&quot;), nullptr, protocolErrors.get());
-    String in_query = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral(&quot;query&quot;), nullptr, protocolErrors.get());
</del><ins>+    RefPtr&lt;InspectorArray&gt; protocolErrors = InspectorArray::create();
+    RefPtr&lt;InspectorObject&gt; paramsContainer = message.getObject(ASCIILiteral(&quot;params&quot;));
+    InspectorObject* paramsContainerPtr = paramsContainer.get();
+    InspectorArray* protocolErrorsPtr = protocolErrors.get();
+    int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral(&quot;databaseId&quot;), nullptr, protocolErrorsPtr);
+    String in_query = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral(&quot;query&quot;), nullptr, protocolErrorsPtr);
</ins><span class="cx">     if (protocolErrors-&gt;length()) {
</span><span class="cx">         String errorMessage = String::format(&quot;Some arguments of method '%s' can't be processed&quot;, &quot;Database.executeSQLAsyncOptionalReturnValues&quot;);
</span><del>-        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, WTF::move(protocolErrors));
</del><ins>+        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, protocolErrors.release());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -395,9 +398,9 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
-    Ref&lt;InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback&gt; callback = adoptRef(*new InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback(m_backendDispatcher.copyRef(), callId));
-    m_agent-&gt;executeSQLAsyncOptionalReturnValues(error, in_databaseId, in_query, callback.copyRef());
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
+    RefPtr&lt;InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback&gt; callback = adoptRef(new InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback(m_backendDispatcher,callId));
+    m_agent-&gt;executeSQLAsyncOptionalReturnValues(error, in_databaseId, in_query, callback);
</ins><span class="cx"> 
</span><span class="cx">     if (error.length()) {
</span><span class="cx">         callback-&gt;disable();
</span><span class="lines">@@ -408,14 +411,15 @@
</span><span class="cx"> 
</span><span class="cx"> void InspectorDatabaseBackendDispatcher::executeSQLSync(long callId, const InspectorObject&amp; message)
</span><span class="cx"> {
</span><del>-    auto protocolErrors = Inspector::Protocol::Array&lt;String&gt;::create();
-    RefPtr&lt;InspectorObject&gt; paramsContainer;
-    message.getObject(ASCIILiteral(&quot;params&quot;), paramsContainer);
-    int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainer.get(), ASCIILiteral(&quot;databaseId&quot;), nullptr, protocolErrors.get());
-    String in_query = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral(&quot;query&quot;), nullptr, protocolErrors.get());
</del><ins>+    RefPtr&lt;InspectorArray&gt; protocolErrors = InspectorArray::create();
+    RefPtr&lt;InspectorObject&gt; paramsContainer = message.getObject(ASCIILiteral(&quot;params&quot;));
+    InspectorObject* paramsContainerPtr = paramsContainer.get();
+    InspectorArray* protocolErrorsPtr = protocolErrors.get();
+    int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral(&quot;databaseId&quot;), nullptr, protocolErrorsPtr);
+    String in_query = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral(&quot;query&quot;), nullptr, protocolErrorsPtr);
</ins><span class="cx">     if (protocolErrors-&gt;length()) {
</span><span class="cx">         String errorMessage = String::format(&quot;Some arguments of method '%s' can't be processed&quot;, &quot;Database.executeSQLSync&quot;);
</span><del>-        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, WTF::move(protocolErrors));
</del><ins>+        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, protocolErrors.release());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -427,7 +431,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; out_columnNames;
</span><span class="cx">     String out_notes;
</span><span class="cx">     double out_timestamp;
</span><span class="lines">@@ -450,14 +454,14 @@
</span><span class="cx">         result-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), Inspector::Protocol::getEnumConstantValue(out_screenColor));
</span><span class="cx">         result-&gt;setString(ASCIILiteral(&quot;printColor&quot;), Inspector::Protocol::getEnumConstantValue(out_printColor));
</span><span class="cx">     }
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback::ExecuteSQLAsyncCallback(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; backendDispatcher, int id) : Inspector::InspectorBackendDispatcher::CallbackBase(WTF::move(backendDispatcher), id) { }
</del><ins>+InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback::ExecuteSQLAsyncCallback(PassRefPtr&lt;InspectorBackendDispatcher&gt; backendDispatcher, int id) : Inspector::InspectorBackendDispatcher::CallbackBase(backendDispatcher, id) { }
</ins><span class="cx"> 
</span><del>-void InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback::sendSuccess(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp;&amp; columnNames, const String&amp; notes, double timestamp, Inspector::InspectorObject values, Inspector::InspectorValue payload, int databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp;&amp; sqlError, const String&amp; screenColor, const String&amp; printColor)
</del><ins>+void InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback::sendSuccess(PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String&amp; notes, double timestamp, Inspector::InspectorObject values, Inspector::InspectorValue payload, int databaseId, PassRefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const String&amp; screenColor, const String&amp; printColor)
</ins><span class="cx"> {
</span><del>-    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</ins><span class="cx">     jsonMessage-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), columnNames);
</span><span class="cx">     jsonMessage-&gt;setString(ASCIILiteral(&quot;notes&quot;), notes);
</span><span class="cx">     jsonMessage-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), timestamp);
</span><span class="lines">@@ -467,19 +471,20 @@
</span><span class="cx">     jsonMessage-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), sqlError);
</span><span class="cx">     jsonMessage-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), Inspector::Protocol::getEnumConstantValue(screenColor));
</span><span class="cx">     jsonMessage-&gt;setString(ASCIILiteral(&quot;printColor&quot;), Inspector::Protocol::getEnumConstantValue(printColor));
</span><del>-    sendIfActive(WTF::move(jsonMessage), ErrorString());
</del><ins>+    sendIfActive(jsonMessage, ErrorString());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDatabaseBackendDispatcher::executeSQLAsync(long callId, const InspectorObject&amp; message)
</span><span class="cx"> {
</span><del>-    auto protocolErrors = Inspector::Protocol::Array&lt;String&gt;::create();
-    RefPtr&lt;InspectorObject&gt; paramsContainer;
-    message.getObject(ASCIILiteral(&quot;params&quot;), paramsContainer);
-    int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainer.get(), ASCIILiteral(&quot;databaseId&quot;), nullptr, protocolErrors.get());
-    String in_query = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral(&quot;query&quot;), nullptr, protocolErrors.get());
</del><ins>+    RefPtr&lt;InspectorArray&gt; protocolErrors = InspectorArray::create();
+    RefPtr&lt;InspectorObject&gt; paramsContainer = message.getObject(ASCIILiteral(&quot;params&quot;));
+    InspectorObject* paramsContainerPtr = paramsContainer.get();
+    InspectorArray* protocolErrorsPtr = protocolErrors.get();
+    int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral(&quot;databaseId&quot;), nullptr, protocolErrorsPtr);
+    String in_query = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral(&quot;query&quot;), nullptr, protocolErrorsPtr);
</ins><span class="cx">     if (protocolErrors-&gt;length()) {
</span><span class="cx">         String errorMessage = String::format(&quot;Some arguments of method '%s' can't be processed&quot;, &quot;Database.executeSQLAsync&quot;);
</span><del>-        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, WTF::move(protocolErrors));
</del><ins>+        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, protocolErrors.release());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -491,9 +496,9 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
-    Ref&lt;InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback&gt; callback = adoptRef(*new InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback(m_backendDispatcher.copyRef(), callId));
-    m_agent-&gt;executeSQLAsync(error, in_databaseId, in_query, callback.copyRef());
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
+    RefPtr&lt;InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback&gt; callback = adoptRef(new InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback(m_backendDispatcher,callId));
+    m_agent-&gt;executeSQLAsync(error, in_databaseId, in_query, callback);
</ins><span class="cx"> 
</span><span class="cx">     if (error.length()) {
</span><span class="cx">         callback-&gt;disable();
</span><span class="lines">@@ -547,6 +552,7 @@
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -644,6 +650,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorProtocolTypes.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="lines">@@ -700,10 +707,10 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*Error*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*Error*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class Error;
</span><span class="cx">     public:
</span><span class="lines">@@ -722,27 +729,30 @@
</span><span class="cx">             return castState&lt;CodeSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Ref&lt;Error&gt; release()
</del><ins>+        operator RefPtr&lt;Error&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(Error) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;Error&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;Error&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;Error&gt; release()
+        {
+            return RefPtr&lt;Error&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * Synthetic constructor:
</span><del>-     * Ref&lt;Error&gt; result = Error::create()
</del><ins>+     * RefPtr&lt;Error&gt; result = Error::create()
</ins><span class="cx">      *     .setMessage(...)
</span><del>-     *     .setCode(...)
-     *     .release();
</del><ins>+     *     .setCode(...);
</ins><span class="cx">      */
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><span class="cx">     }
</span><ins>+    typedef Inspector::Protocol::StructItemTraits ItemTraits;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // Database
</span><span class="lines">@@ -1055,7 +1065,7 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     id successCallback = ^(NSArray/*&lt;NSString&gt;*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, RWIProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColor *printColor) {
</span><del>-        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</del><ins>+        RefPtr&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</ins><span class="cx">         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @&quot;columnNames&quot;);
</span><span class="cx">         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @&quot;notes&quot;);
</span><span class="cx">         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @&quot;values&quot;);
</span><span class="lines">@@ -1095,7 +1105,7 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     id successCallback = ^(NSArray/*&lt;NSString&gt;*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, RWIProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColor *printColor) {
</span><del>-        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</del><ins>+        RefPtr&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</ins><span class="cx">         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @&quot;columnNames&quot;);
</span><span class="cx">         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @&quot;notes&quot;);
</span><span class="cx">         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @&quot;values&quot;);
</span><span class="lines">@@ -1135,7 +1145,7 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     id successCallback = ^(NSArray/*&lt;NSString&gt;*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteSQLSyncPrintColor printColor) {
</span><del>-        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</del><ins>+        RefPtr&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</ins><span class="cx">         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @&quot;columnNames&quot;);
</span><span class="cx">         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @&quot;notes&quot;);
</span><span class="cx">         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @&quot;values&quot;);
</span><span class="lines">@@ -1166,7 +1176,7 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     id successCallback = ^(NSArray/*&lt;NSString&gt;*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteSQLAsyncPrintColor printColor) {
</span><del>-        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</del><ins>+        RefPtr&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</ins><span class="cx">         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @&quot;columnNames&quot;);
</span><span class="cx">         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @&quot;notes&quot;);
</span><span class="cx">         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @&quot;values&quot;);
</span><span class="lines">@@ -1555,6 +1565,7 @@
</span><span class="cx"> #import &quot;RWIProtocolEnumConversionHelpers.h&quot;
</span><span class="cx"> #import &lt;JavaScriptCore/InspectorValues.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithoptionalcallreturnparametersjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,18 +41,18 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorDatabaseBackendDispatcher : public AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><span class="cx">     virtual ~AlternateInspectorDatabaseBackendDispatcher() { }
</span><del>-    virtual void executeAllOptionalParameters(long callId, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_sqlError, const String* in_screenColor, const String* in_printColor) = 0;
-    virtual void executeNoOptionalParameters(long callId, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; in_columnNames, const String&amp; in_notes, double in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_sqlError, const String&amp; in_screenColor, const String&amp; in_printColor) = 0;
</del><ins>+    virtual void executeAllOptionalParameters(long callId, const RefPtr&lt;Inspector::InspectorArray&gt;* in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;* in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;* in_sqlError, const String* in_screenColor, const String* in_printColor) = 0;
+    virtual void executeNoOptionalParameters(long callId, const RefPtr&lt;Inspector::InspectorArray&gt;&amp; in_columnNames, const String&amp; in_notes, double in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; in_sqlError, const String&amp; in_screenColor, const String&amp; in_printColor) = 0;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace Inspector
</span><span class="lines">@@ -138,6 +138,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorBackendDispatcher.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -163,21 +164,21 @@
</span><span class="cx">         Yellow = 5,
</span><span class="cx">         Black = 6,
</span><span class="cx">     }; // enum class PrintColor
</span><del>-    virtual void executeAllOptionalParameters(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_sqlError, const String* in_screenColor, const String* in_printColor, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp; opt_out_columnNames, Inspector::Protocol::OptOutput&lt;String&gt;* opt_out_notes, Inspector::Protocol::OptOutput&lt;double&gt;* opt_out_timestamp, Inspector::Protocol::OptOutput&lt;Inspector::InspectorObject&gt;* opt_out_values, Inspector::Protocol::OptOutput&lt;Inspector::InspectorValue&gt;* opt_out_payload, Inspector::Protocol::OptOutput&lt;int&gt;* opt_out_databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp; opt_out_sqlError, Inspector::Pr
 otocol::Database::PrimaryColors* opt_out_screenColor, InspectorDatabaseBackendDispatcherHandler::PrintColor* opt_out_printColor) = 0;
-    virtual void executeNoOptionalParameters(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; in_columnNames, const String&amp; in_notes, double in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_sqlError, const String&amp; in_screenColor, const String&amp; in_printColor, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp; out_columnNames, String* out_notes, double* out_timestamp, Inspector::InspectorObject* out_values, Inspector::InspectorValue* out_payload, int* out_databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp; out_sqlError, Inspector::Protocol::Database::PrimaryColors* out_screenColor, InspectorDatabaseBackendDispatcherHandler::PrintColor* out_printColor) = 0;
</del><ins>+    virtual void executeAllOptionalParameters(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorArray&gt;* in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;* in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;* in_sqlError, const String* in_screenColor, const String* in_printColor, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp; opt_out_columnNames, Inspector::Protocol::OptOutput&lt;String&gt;* opt_out_notes, Inspector::Protocol::OptOutput&lt;double&gt;* opt_out_timestamp, Inspector::Protocol::OptOutput&lt;Inspector::InspectorObject&gt;* opt_out_values, Inspector::Protocol::OptOutput&lt;Inspector::InspectorValue&gt;* opt_out_payload, Inspector::Protocol::OptOutput&lt;int&gt;* opt_out_databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp; opt_out_sqlError, Inspector::Protocol::Database::PrimaryCol
 ors* opt_out_screenColor, InspectorDatabaseBackendDispatcherHandler::PrintColor* opt_out_printColor) = 0;
+    virtual void executeNoOptionalParameters(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorArray&gt;&amp; in_columnNames, const String&amp; in_notes, double in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; in_sqlError, const String&amp; in_screenColor, const String&amp; in_printColor, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp; out_columnNames, String* out_notes, double* out_timestamp, Inspector::InspectorObject* out_values, Inspector::InspectorValue* out_payload, int* out_databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp; out_sqlError, Inspector::Protocol::Database::PrimaryColors* out_screenColor, InspectorDatabaseBackendDispatcherHandler::PrintColor* out_printColor) = 0;
</ins><span class="cx"> protected:
</span><span class="cx">     virtual ~InspectorDatabaseBackendDispatcherHandler();
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class InspectorDatabaseBackendDispatcher final : public Inspector::InspectorSupplementalBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;InspectorDatabaseBackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, InspectorDatabaseBackendDispatcherHandler*);
-    virtual void dispatch(long callId, const String&amp; method, Ref&lt;Inspector::InspectorObject&gt;&amp;&amp; message) override;
</del><ins>+    static PassRefPtr&lt;InspectorDatabaseBackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, InspectorDatabaseBackendDispatcherHandler*);
+    virtual void dispatch(long callId, const String&amp; method, PassRefPtr&lt;Inspector::InspectorObject&gt; message) override;
</ins><span class="cx"> private:
</span><span class="cx">     void executeAllOptionalParameters(long callId, const Inspector::InspectorObject&amp; message);
</span><span class="cx">     void executeNoOptionalParameters(long callId, const Inspector::InspectorObject&amp; message);
</span><span class="cx"> private:
</span><del>-    InspectorDatabaseBackendDispatcher(Inspector::InspectorBackendDispatcher&amp;, InspectorDatabaseBackendDispatcherHandler*);
</del><ins>+    InspectorDatabaseBackendDispatcher(Inspector::InspectorBackendDispatcher*, InspectorDatabaseBackendDispatcherHandler*);
</ins><span class="cx">     InspectorDatabaseBackendDispatcherHandler* m_agent;
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx"> public:
</span><span class="lines">@@ -242,12 +243,12 @@
</span><span class="cx"> 
</span><span class="cx"> InspectorDatabaseBackendDispatcherHandler::~InspectorDatabaseBackendDispatcherHandler() { }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorDatabaseBackendDispatcher&gt; InspectorDatabaseBackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, InspectorDatabaseBackendDispatcherHandler* agent)
</del><ins>+PassRefPtr&lt;InspectorDatabaseBackendDispatcher&gt; InspectorDatabaseBackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, InspectorDatabaseBackendDispatcherHandler* agent)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorDatabaseBackendDispatcher(*backendDispatcher, agent));
</del><ins>+    return adoptRef(new InspectorDatabaseBackendDispatcher(backendDispatcher, agent));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-InspectorDatabaseBackendDispatcher::InspectorDatabaseBackendDispatcher(InspectorBackendDispatcher&amp; backendDispatcher, InspectorDatabaseBackendDispatcherHandler* agent)
</del><ins>+InspectorDatabaseBackendDispatcher::InspectorDatabaseBackendDispatcher(InspectorBackendDispatcher* backendDispatcher, InspectorDatabaseBackendDispatcherHandler* agent)
</ins><span class="cx">     : InspectorSupplementalBackendDispatcher(backendDispatcher)
</span><span class="cx">     , m_agent(agent)
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="lines">@@ -257,56 +258,57 @@
</span><span class="cx">     m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;Database&quot;), this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDatabaseBackendDispatcher::dispatch(long callId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
</del><ins>+void InspectorDatabaseBackendDispatcher::dispatch(long callId, const String&amp; method, PassRefPtr&lt;InspectorObject&gt; message)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;InspectorDatabaseBackendDispatcher&gt; protect(*this);
</span><span class="cx"> 
</span><span class="cx">     if (method == &quot;executeAllOptionalParameters&quot;)
</span><del>-        executeAllOptionalParameters(callId, message);
</del><ins>+        executeAllOptionalParameters(callId, *message.get());
</ins><span class="cx">     else if (method == &quot;executeNoOptionalParameters&quot;)
</span><del>-        executeNoOptionalParameters(callId, message);
</del><ins>+        executeNoOptionalParameters(callId, *message.get());
</ins><span class="cx">     else
</span><span class="cx">         m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::MethodNotFound, makeString('\'', &quot;Database&quot;, '.', method, &quot;' was not found&quot;));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDatabaseBackendDispatcher::executeAllOptionalParameters(long callId, const InspectorObject&amp; message)
</span><span class="cx"> {
</span><del>-    auto protocolErrors = Inspector::Protocol::Array&lt;String&gt;::create();
-    RefPtr&lt;InspectorObject&gt; paramsContainer;
-    message.getObject(ASCIILiteral(&quot;params&quot;), paramsContainer);
</del><ins>+    RefPtr&lt;InspectorArray&gt; protocolErrors = InspectorArray::create();
+    RefPtr&lt;InspectorObject&gt; paramsContainer = message.getObject(ASCIILiteral(&quot;params&quot;));
+    InspectorObject* paramsContainerPtr = paramsContainer.get();
+    InspectorArray* protocolErrorsPtr = protocolErrors.get();
</ins><span class="cx">     bool columnNames_valueFound = false;
</span><del>-    RefPtr&lt;Inspector::InspectorArray&gt; in_columnNames = InspectorBackendDispatcher::getArray(paramsContainer.get(), ASCIILiteral(&quot;columnNames&quot;), &amp;columnNames_valueFound, protocolErrors.get());
</del><ins>+    RefPtr&lt;Inspector::InspectorArray&gt; in_columnNames = InspectorBackendDispatcher::getArray(paramsContainerPtr, ASCIILiteral(&quot;columnNames&quot;), &amp;columnNames_valueFound, protocolErrorsPtr);
</ins><span class="cx">     bool notes_valueFound = false;
</span><del>-    String in_notes = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral(&quot;notes&quot;), &amp;notes_valueFound, protocolErrors.get());
</del><ins>+    String in_notes = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral(&quot;notes&quot;), &amp;notes_valueFound, protocolErrorsPtr);
</ins><span class="cx">     bool timestamp_valueFound = false;
</span><del>-    Inspector::Protocol::OptOutput&lt;double&gt; in_timestamp = InspectorBackendDispatcher::getDouble(paramsContainer.get(), ASCIILiteral(&quot;timestamp&quot;), &amp;timestamp_valueFound, protocolErrors.get());
</del><ins>+    Inspector::Protocol::OptOutput&lt;double&gt; in_timestamp = InspectorBackendDispatcher::getDouble(paramsContainerPtr, ASCIILiteral(&quot;timestamp&quot;), &amp;timestamp_valueFound, protocolErrorsPtr);
</ins><span class="cx">     bool values_valueFound = false;
</span><del>-    RefPtr&lt;Inspector::InspectorObject&gt; in_values = InspectorBackendDispatcher::getObject(paramsContainer.get(), ASCIILiteral(&quot;values&quot;), &amp;values_valueFound, protocolErrors.get());
</del><ins>+    RefPtr&lt;Inspector::InspectorObject&gt; in_values = InspectorBackendDispatcher::getObject(paramsContainerPtr, ASCIILiteral(&quot;values&quot;), &amp;values_valueFound, protocolErrorsPtr);
</ins><span class="cx">     bool payload_valueFound = false;
</span><del>-    RefPtr&lt;Inspector::InspectorValue&gt; in_payload = InspectorBackendDispatcher::getValue(paramsContainer.get(), ASCIILiteral(&quot;payload&quot;), &amp;payload_valueFound, protocolErrors.get());
</del><ins>+    RefPtr&lt;Inspector::InspectorValue&gt; in_payload = InspectorBackendDispatcher::getValue(paramsContainerPtr, ASCIILiteral(&quot;payload&quot;), &amp;payload_valueFound, protocolErrorsPtr);
</ins><span class="cx">     bool databaseId_valueFound = false;
</span><del>-    int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainer.get(), ASCIILiteral(&quot;databaseId&quot;), &amp;databaseId_valueFound, protocolErrors.get());
</del><ins>+    int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral(&quot;databaseId&quot;), &amp;databaseId_valueFound, protocolErrorsPtr);
</ins><span class="cx">     bool sqlError_valueFound = false;
</span><del>-    RefPtr&lt;Inspector::InspectorObject&gt; in_sqlError = InspectorBackendDispatcher::getObject(paramsContainer.get(), ASCIILiteral(&quot;sqlError&quot;), &amp;sqlError_valueFound, protocolErrors.get());
</del><ins>+    RefPtr&lt;Inspector::InspectorObject&gt; in_sqlError = InspectorBackendDispatcher::getObject(paramsContainerPtr, ASCIILiteral(&quot;sqlError&quot;), &amp;sqlError_valueFound, protocolErrorsPtr);
</ins><span class="cx">     bool screenColor_valueFound = false;
</span><del>-    String in_screenColor = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral(&quot;screenColor&quot;), &amp;screenColor_valueFound, protocolErrors.get());
</del><ins>+    String in_screenColor = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral(&quot;screenColor&quot;), &amp;screenColor_valueFound, protocolErrorsPtr);
</ins><span class="cx">     bool printColor_valueFound = false;
</span><del>-    String in_printColor = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral(&quot;printColor&quot;), &amp;printColor_valueFound, protocolErrors.get());
</del><ins>+    String in_printColor = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral(&quot;printColor&quot;), &amp;printColor_valueFound, protocolErrorsPtr);
</ins><span class="cx">     if (protocolErrors-&gt;length()) {
</span><span class="cx">         String errorMessage = String::format(&quot;Some arguments of method '%s' can't be processed&quot;, &quot;Database.executeAllOptionalParameters&quot;);
</span><del>-        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, WTF::move(protocolErrors));
</del><ins>+        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, protocolErrors.release());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx">     if (m_alternateDispatcher) {
</span><del>-        m_alternateDispatcher-&gt;executeAllOptionalParameters(callId, columnNames_valueFound ? in_columnNames.copyRef() : nullptr, notes_valueFound ? &amp;in_notes : nullptr, timestamp_valueFound ? &amp;in_timestamp : nullptr, values_valueFound ? in_values.copyRef() : nullptr, payload_valueFound ? in_payload.copyRef() : nullptr, databaseId_valueFound ? &amp;in_databaseId : nullptr, sqlError_valueFound ? in_sqlError.copyRef() : nullptr, screenColor_valueFound ? &amp;in_screenColor : nullptr, printColor_valueFound ? &amp;in_printColor : nullptr);
</del><ins>+        m_alternateDispatcher-&gt;executeAllOptionalParameters(callId, columnNames_valueFound ? &amp;in_columnNames : nullptr, notes_valueFound ? &amp;in_notes : nullptr, timestamp_valueFound ? &amp;in_timestamp : nullptr, values_valueFound ? &amp;in_values : nullptr, payload_valueFound ? &amp;in_payload : nullptr, databaseId_valueFound ? &amp;in_databaseId : nullptr, sqlError_valueFound ? &amp;in_sqlError : nullptr, screenColor_valueFound ? &amp;in_screenColor : nullptr, printColor_valueFound ? &amp;in_printColor : nullptr);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; out_columnNames;
</span><span class="cx">     Inspector::Protocol::OptOutput&lt;String&gt; out_notes;
</span><span class="cx">     Inspector::Protocol::OptOutput&lt;double&gt; out_timestamp;
</span><span class="lines">@@ -316,7 +318,7 @@
</span><span class="cx">     RefPtr&lt;Inspector::Protocol::Database::Error&gt; out_sqlError;
</span><span class="cx">     Inspector::Protocol::Database::PrimaryColors out_screenColor;
</span><span class="cx">     InspectorDatabaseBackendDispatcherHandler::PrintColor out_printColor;
</span><del>-    m_agent-&gt;executeAllOptionalParameters(error, columnNames_valueFound ? in_columnNames.copyRef() : nullptr, notes_valueFound ? &amp;in_notes : nullptr, timestamp_valueFound ? &amp;in_timestamp : nullptr, values_valueFound ? in_values.copyRef() : nullptr, payload_valueFound ? in_payload.copyRef() : nullptr, databaseId_valueFound ? &amp;in_databaseId : nullptr, sqlError_valueFound ? in_sqlError.copyRef() : nullptr, screenColor_valueFound ? &amp;in_screenColor : nullptr, printColor_valueFound ? &amp;in_printColor : nullptr, out_columnNames, &amp;out_notes, &amp;out_timestamp, out_values, &amp;out_payload, &amp;out_databaseId, out_sqlError, &amp;out_screenColor, &amp;out_printColor);
</del><ins>+    m_agent-&gt;executeAllOptionalParameters(error, columnNames_valueFound ? &amp;in_columnNames : nullptr, notes_valueFound ? &amp;in_notes : nullptr, timestamp_valueFound ? &amp;in_timestamp : nullptr, values_valueFound ? &amp;in_values : nullptr, payload_valueFound ? &amp;in_payload : nullptr, databaseId_valueFound ? &amp;in_databaseId : nullptr, sqlError_valueFound ? &amp;in_sqlError : nullptr, screenColor_valueFound ? &amp;in_screenColor : nullptr, printColor_valueFound ? &amp;in_printColor : nullptr, out_columnNames, &amp;out_notes, &amp;out_timestamp, out_values, &amp;out_payload, &amp;out_databaseId, out_sqlError, &amp;out_screenColor, &amp;out_printColor);
</ins><span class="cx"> 
</span><span class="cx">     if (!error.length()) {
</span><span class="cx">         if (out_columnNames)
</span><span class="lines">@@ -338,38 +340,39 @@
</span><span class="cx">         if (out_printColor.isAssigned())
</span><span class="cx">             result-&gt;setString(ASCIILiteral(&quot;printColor&quot;), out_printColor.getValue());
</span><span class="cx">     }
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDatabaseBackendDispatcher::executeNoOptionalParameters(long callId, const InspectorObject&amp; message)
</span><span class="cx"> {
</span><del>-    auto protocolErrors = Inspector::Protocol::Array&lt;String&gt;::create();
-    RefPtr&lt;InspectorObject&gt; paramsContainer;
-    message.getObject(ASCIILiteral(&quot;params&quot;), paramsContainer);
-    RefPtr&lt;Inspector::InspectorArray&gt; in_columnNames = InspectorBackendDispatcher::getArray(paramsContainer.get(), ASCIILiteral(&quot;columnNames&quot;), nullptr, protocolErrors.get());
-    String in_notes = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral(&quot;notes&quot;), nullptr, protocolErrors.get());
-    double in_timestamp = InspectorBackendDispatcher::getDouble(paramsContainer.get(), ASCIILiteral(&quot;timestamp&quot;), nullptr, protocolErrors.get());
-    RefPtr&lt;Inspector::InspectorObject&gt; in_values = InspectorBackendDispatcher::getObject(paramsContainer.get(), ASCIILiteral(&quot;values&quot;), nullptr, protocolErrors.get());
-    RefPtr&lt;Inspector::InspectorValue&gt; in_payload = InspectorBackendDispatcher::getValue(paramsContainer.get(), ASCIILiteral(&quot;payload&quot;), nullptr, protocolErrors.get());
-    int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainer.get(), ASCIILiteral(&quot;databaseId&quot;), nullptr, protocolErrors.get());
-    RefPtr&lt;Inspector::InspectorObject&gt; in_sqlError = InspectorBackendDispatcher::getObject(paramsContainer.get(), ASCIILiteral(&quot;sqlError&quot;), nullptr, protocolErrors.get());
-    String in_screenColor = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral(&quot;screenColor&quot;), nullptr, protocolErrors.get());
-    String in_printColor = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral(&quot;printColor&quot;), nullptr, protocolErrors.get());
</del><ins>+    RefPtr&lt;InspectorArray&gt; protocolErrors = InspectorArray::create();
+    RefPtr&lt;InspectorObject&gt; paramsContainer = message.getObject(ASCIILiteral(&quot;params&quot;));
+    InspectorObject* paramsContainerPtr = paramsContainer.get();
+    InspectorArray* protocolErrorsPtr = protocolErrors.get();
+    RefPtr&lt;Inspector::InspectorArray&gt; in_columnNames = InspectorBackendDispatcher::getArray(paramsContainerPtr, ASCIILiteral(&quot;columnNames&quot;), nullptr, protocolErrorsPtr);
+    String in_notes = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral(&quot;notes&quot;), nullptr, protocolErrorsPtr);
+    double in_timestamp = InspectorBackendDispatcher::getDouble(paramsContainerPtr, ASCIILiteral(&quot;timestamp&quot;), nullptr, protocolErrorsPtr);
+    RefPtr&lt;Inspector::InspectorObject&gt; in_values = InspectorBackendDispatcher::getObject(paramsContainerPtr, ASCIILiteral(&quot;values&quot;), nullptr, protocolErrorsPtr);
+    RefPtr&lt;Inspector::InspectorValue&gt; in_payload = InspectorBackendDispatcher::getValue(paramsContainerPtr, ASCIILiteral(&quot;payload&quot;), nullptr, protocolErrorsPtr);
+    int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral(&quot;databaseId&quot;), nullptr, protocolErrorsPtr);
+    RefPtr&lt;Inspector::InspectorObject&gt; in_sqlError = InspectorBackendDispatcher::getObject(paramsContainerPtr, ASCIILiteral(&quot;sqlError&quot;), nullptr, protocolErrorsPtr);
+    String in_screenColor = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral(&quot;screenColor&quot;), nullptr, protocolErrorsPtr);
+    String in_printColor = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral(&quot;printColor&quot;), nullptr, protocolErrorsPtr);
</ins><span class="cx">     if (protocolErrors-&gt;length()) {
</span><span class="cx">         String errorMessage = String::format(&quot;Some arguments of method '%s' can't be processed&quot;, &quot;Database.executeNoOptionalParameters&quot;);
</span><del>-        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, WTF::move(protocolErrors));
</del><ins>+        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::InvalidParams, errorMessage, protocolErrors.release());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx">     if (m_alternateDispatcher) {
</span><del>-        m_alternateDispatcher-&gt;executeNoOptionalParameters(callId, in_columnNames.copyRef(), in_notes, in_timestamp, in_values.copyRef(), in_payload.copyRef(), in_databaseId, in_sqlError.copyRef(), in_screenColor, in_printColor);
</del><ins>+        m_alternateDispatcher-&gt;executeNoOptionalParameters(callId, in_columnNames, in_notes, in_timestamp, in_values, in_payload, in_databaseId, in_sqlError, in_screenColor, in_printColor);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; out_columnNames;
</span><span class="cx">     String out_notes;
</span><span class="cx">     double out_timestamp;
</span><span class="lines">@@ -379,7 +382,7 @@
</span><span class="cx">     RefPtr&lt;Inspector::Protocol::Database::Error&gt; out_sqlError;
</span><span class="cx">     Inspector::Protocol::Database::PrimaryColors out_screenColor;
</span><span class="cx">     InspectorDatabaseBackendDispatcherHandler::PrintColor out_printColor;
</span><del>-    m_agent-&gt;executeNoOptionalParameters(error, in_columnNames.copyRef(), in_notes, in_timestamp, in_values.copyRef(), in_payload.copyRef(), in_databaseId, in_sqlError.copyRef(), in_screenColor, in_printColor, out_columnNames, &amp;out_notes, &amp;out_timestamp, out_values, &amp;out_payload, &amp;out_databaseId, out_sqlError, &amp;out_screenColor, &amp;out_printColor);
</del><ins>+    m_agent-&gt;executeNoOptionalParameters(error, in_columnNames, in_notes, in_timestamp, in_values, in_payload, in_databaseId, in_sqlError, in_screenColor, in_printColor, out_columnNames, &amp;out_notes, &amp;out_timestamp, out_values, &amp;out_payload, &amp;out_databaseId, out_sqlError, &amp;out_screenColor, &amp;out_printColor);
</ins><span class="cx"> 
</span><span class="cx">     if (!error.length()) {
</span><span class="cx">         result-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), out_columnNames);
</span><span class="lines">@@ -392,7 +395,7 @@
</span><span class="cx">         result-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), Inspector::Protocol::getEnumConstantValue(out_screenColor));
</span><span class="cx">         result-&gt;setString(ASCIILiteral(&quot;printColor&quot;), Inspector::Protocol::getEnumConstantValue(out_printColor));
</span><span class="cx">     }
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace Inspector
</span><span class="lines">@@ -440,6 +443,7 @@
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -537,6 +541,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorProtocolTypes.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="lines">@@ -593,10 +598,10 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*Error*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*Error*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class Error;
</span><span class="cx">     public:
</span><span class="lines">@@ -615,27 +620,30 @@
</span><span class="cx">             return castState&lt;CodeSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Ref&lt;Error&gt; release()
</del><ins>+        operator RefPtr&lt;Error&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(Error) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;Error&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;Error&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;Error&gt; release()
+        {
+            return RefPtr&lt;Error&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * Synthetic constructor:
</span><del>-     * Ref&lt;Error&gt; result = Error::create()
</del><ins>+     * RefPtr&lt;Error&gt; result = Error::create()
</ins><span class="cx">      *     .setMessage(...)
</span><del>-     *     .setCode(...)
-     *     .release();
</del><ins>+     *     .setCode(...);
</ins><span class="cx">      */
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><span class="cx">     }
</span><ins>+    typedef Inspector::Protocol::StructItemTraits ItemTraits;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // Database
</span><span class="lines">@@ -759,8 +767,8 @@
</span><span class="cx"> class ObjCInspectorDatabaseBackendDispatcher final : public AlternateInspectorDatabaseBackendDispatcher {
</span><span class="cx"> public:
</span><span class="cx">     ObjCInspectorDatabaseBackendDispatcher(id&lt;RWIProtocolDatabaseDomainHandler&gt; handler) { m_delegate = handler; }
</span><del>-    virtual void executeAllOptionalParameters(long callId, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_sqlError, const String* in_screenColor, const String* in_printColor) override;
-    virtual void executeNoOptionalParameters(long callId, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; in_columnNames, const String&amp; in_notes, double in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_sqlError, const String&amp; in_screenColor, const String&amp; in_printColor) override;
</del><ins>+    virtual void executeAllOptionalParameters(long callId, const RefPtr&lt;Inspector::InspectorArray&gt;* in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;* in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;* in_sqlError, const String* in_screenColor, const String* in_printColor) override;
+    virtual void executeNoOptionalParameters(long callId, const RefPtr&lt;Inspector::InspectorArray&gt;&amp; in_columnNames, const String&amp; in_notes, double in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; in_sqlError, const String&amp; in_screenColor, const String&amp; in_printColor) override;
</ins><span class="cx"> private:
</span><span class="cx">     RetainPtr&lt;id&lt;RWIProtocolDatabaseDomainHandler&gt;&gt; m_delegate;
</span><span class="cx"> };
</span><span class="lines">@@ -939,14 +947,14 @@
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><del>-void ObjCInspectorDatabaseBackendDispatcher::executeAllOptionalParameters(long callId, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_sqlError, const String* in_screenColor, const String* in_printColor)
</del><ins>+void ObjCInspectorDatabaseBackendDispatcher::executeAllOptionalParameters(long callId, const RefPtr&lt;Inspector::InspectorArray&gt;* in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;* in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;* in_sqlError, const String* in_screenColor, const String* in_printColor)
</ins><span class="cx"> {
</span><span class="cx">     id errorCallback = ^(NSString *error) {
</span><span class="cx">         backendDispatcher()-&gt;sendResponse(callId, InspectorObject::create(), error);
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     id successCallback = ^(NSArray/*&lt;NSString&gt;*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor *printColor) {
</span><del>-        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</del><ins>+        RefPtr&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</ins><span class="cx">         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @&quot;columnNames&quot;);
</span><span class="cx">         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @&quot;notes&quot;);
</span><span class="cx">         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @&quot;values&quot;);
</span><span class="lines">@@ -1004,14 +1012,14 @@
</span><span class="cx">     [m_delegate executeAllOptionalParametersWithErrorCallback:errorCallback successCallback:successCallback columnNames:(in_columnNames ? &amp;o_in_columnNames : nil) notes:(in_notes ? &amp;o_in_notes : nil) timestamp:(in_timestamp ? &amp;o_in_timestamp : nil) values:(in_values ? &amp;o_in_values : nil) payload:(in_payload ? &amp;o_in_payload : nil) databaseId:(in_databaseId ? &amp;o_in_databaseId : nil) sqlError:(in_sqlError ? &amp;o_in_sqlError : nil) screenColor:(in_screenColor ? &amp;o_in_screenColor : nil) printColor:(in_printColor ? &amp;o_in_printColor : nil)];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ObjCInspectorDatabaseBackendDispatcher::executeNoOptionalParameters(long callId, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; in_columnNames, const String&amp; in_notes, double in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; in_sqlError, const String&amp; in_screenColor, const String&amp; in_printColor)
</del><ins>+void ObjCInspectorDatabaseBackendDispatcher::executeNoOptionalParameters(long callId, const RefPtr&lt;Inspector::InspectorArray&gt;&amp; in_columnNames, const String&amp; in_notes, double in_timestamp, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; in_sqlError, const String&amp; in_screenColor, const String&amp; in_printColor)
</ins><span class="cx"> {
</span><span class="cx">     id errorCallback = ^(NSString *error) {
</span><span class="cx">         backendDispatcher()-&gt;sendResponse(callId, InspectorObject::create(), error);
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     id successCallback = ^(NSArray/*&lt;NSString&gt;*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor printColor) {
</span><del>-        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</del><ins>+        RefPtr&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</ins><span class="cx">         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @&quot;columnNames&quot;);
</span><span class="cx">         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @&quot;notes&quot;);
</span><span class="cx">         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @&quot;values&quot;);
</span><span class="lines">@@ -1405,6 +1413,7 @@
</span><span class="cx"> #import &quot;RWIProtocolEnumConversionHelpers.h&quot;
</span><span class="cx"> #import &lt;JavaScriptCore/InspectorValues.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpecteddomainswithvaryingcommandsizesjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,10 +41,10 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -156,6 +156,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorBackendDispatcher.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -189,12 +190,12 @@
</span><span class="cx"> 
</span><span class="cx"> class InspectorNetwork1BackendDispatcher final : public Inspector::InspectorSupplementalBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;InspectorNetwork1BackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, InspectorNetwork1BackendDispatcherHandler*);
-    virtual void dispatch(long callId, const String&amp; method, Ref&lt;Inspector::InspectorObject&gt;&amp;&amp; message) override;
</del><ins>+    static PassRefPtr&lt;InspectorNetwork1BackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, InspectorNetwork1BackendDispatcherHandler*);
+    virtual void dispatch(long callId, const String&amp; method, PassRefPtr&lt;Inspector::InspectorObject&gt; message) override;
</ins><span class="cx"> private:
</span><span class="cx">     void loadResource1(long callId, const Inspector::InspectorObject&amp; message);
</span><span class="cx"> private:
</span><del>-    InspectorNetwork1BackendDispatcher(Inspector::InspectorBackendDispatcher&amp;, InspectorNetwork1BackendDispatcherHandler*);
</del><ins>+    InspectorNetwork1BackendDispatcher(Inspector::InspectorBackendDispatcher*, InspectorNetwork1BackendDispatcherHandler*);
</ins><span class="cx">     InspectorNetwork1BackendDispatcherHandler* m_agent;
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx"> public:
</span><span class="lines">@@ -206,8 +207,8 @@
</span><span class="cx"> 
</span><span class="cx"> class InspectorNetwork3BackendDispatcher final : public Inspector::InspectorSupplementalBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;InspectorNetwork3BackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, InspectorNetwork3BackendDispatcherHandler*);
-    virtual void dispatch(long callId, const String&amp; method, Ref&lt;Inspector::InspectorObject&gt;&amp;&amp; message) override;
</del><ins>+    static PassRefPtr&lt;InspectorNetwork3BackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, InspectorNetwork3BackendDispatcherHandler*);
+    virtual void dispatch(long callId, const String&amp; method, PassRefPtr&lt;Inspector::InspectorObject&gt; message) override;
</ins><span class="cx"> private:
</span><span class="cx">     void loadResource1(long callId, const Inspector::InspectorObject&amp; message);
</span><span class="cx">     void loadResource2(long callId, const Inspector::InspectorObject&amp; message);
</span><span class="lines">@@ -217,7 +218,7 @@
</span><span class="cx">     void loadResource6(long callId, const Inspector::InspectorObject&amp; message);
</span><span class="cx">     void loadResource7(long callId, const Inspector::InspectorObject&amp; message);
</span><span class="cx"> private:
</span><del>-    InspectorNetwork3BackendDispatcher(Inspector::InspectorBackendDispatcher&amp;, InspectorNetwork3BackendDispatcherHandler*);
</del><ins>+    InspectorNetwork3BackendDispatcher(Inspector::InspectorBackendDispatcher*, InspectorNetwork3BackendDispatcherHandler*);
</ins><span class="cx">     InspectorNetwork3BackendDispatcherHandler* m_agent;
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx"> public:
</span><span class="lines">@@ -283,12 +284,12 @@
</span><span class="cx"> InspectorNetwork1BackendDispatcherHandler::~InspectorNetwork1BackendDispatcherHandler() { }
</span><span class="cx"> InspectorNetwork3BackendDispatcherHandler::~InspectorNetwork3BackendDispatcherHandler() { }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorNetwork1BackendDispatcher&gt; InspectorNetwork1BackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, InspectorNetwork1BackendDispatcherHandler* agent)
</del><ins>+PassRefPtr&lt;InspectorNetwork1BackendDispatcher&gt; InspectorNetwork1BackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, InspectorNetwork1BackendDispatcherHandler* agent)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorNetwork1BackendDispatcher(*backendDispatcher, agent));
</del><ins>+    return adoptRef(new InspectorNetwork1BackendDispatcher(backendDispatcher, agent));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-InspectorNetwork1BackendDispatcher::InspectorNetwork1BackendDispatcher(InspectorBackendDispatcher&amp; backendDispatcher, InspectorNetwork1BackendDispatcherHandler* agent)
</del><ins>+InspectorNetwork1BackendDispatcher::InspectorNetwork1BackendDispatcher(InspectorBackendDispatcher* backendDispatcher, InspectorNetwork1BackendDispatcherHandler* agent)
</ins><span class="cx">     : InspectorSupplementalBackendDispatcher(backendDispatcher)
</span><span class="cx">     , m_agent(agent)
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="lines">@@ -298,12 +299,12 @@
</span><span class="cx">     m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;Network1&quot;), this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorNetwork1BackendDispatcher::dispatch(long callId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
</del><ins>+void InspectorNetwork1BackendDispatcher::dispatch(long callId, const String&amp; method, PassRefPtr&lt;InspectorObject&gt; message)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;InspectorNetwork1BackendDispatcher&gt; protect(*this);
</span><span class="cx"> 
</span><span class="cx">     if (method == &quot;loadResource1&quot;)
</span><del>-        loadResource1(callId, message);
</del><ins>+        loadResource1(callId, *message.get());
</ins><span class="cx">     else
</span><span class="cx">         m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::MethodNotFound, makeString('\'', &quot;Network1&quot;, '.', method, &quot;' was not found&quot;));
</span><span class="cx"> }
</span><span class="lines">@@ -318,18 +319,18 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     m_agent-&gt;loadResource1(error);
</span><span class="cx"> 
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorNetwork3BackendDispatcher&gt; InspectorNetwork3BackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, InspectorNetwork3BackendDispatcherHandler* agent)
</del><ins>+PassRefPtr&lt;InspectorNetwork3BackendDispatcher&gt; InspectorNetwork3BackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, InspectorNetwork3BackendDispatcherHandler* agent)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorNetwork3BackendDispatcher(*backendDispatcher, agent));
</del><ins>+    return adoptRef(new InspectorNetwork3BackendDispatcher(backendDispatcher, agent));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-InspectorNetwork3BackendDispatcher::InspectorNetwork3BackendDispatcher(InspectorBackendDispatcher&amp; backendDispatcher, InspectorNetwork3BackendDispatcherHandler* agent)
</del><ins>+InspectorNetwork3BackendDispatcher::InspectorNetwork3BackendDispatcher(InspectorBackendDispatcher* backendDispatcher, InspectorNetwork3BackendDispatcherHandler* agent)
</ins><span class="cx">     : InspectorSupplementalBackendDispatcher(backendDispatcher)
</span><span class="cx">     , m_agent(agent)
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="lines">@@ -339,7 +340,7 @@
</span><span class="cx">     m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;Network3&quot;), this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorNetwork3BackendDispatcher::dispatch(long callId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
</del><ins>+void InspectorNetwork3BackendDispatcher::dispatch(long callId, const String&amp; method, PassRefPtr&lt;InspectorObject&gt; message)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;InspectorNetwork3BackendDispatcher&gt; protect(*this);
</span><span class="cx"> 
</span><span class="lines">@@ -370,7 +371,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    ((*this).*it-&gt;value)(callId, message.get());
</del><ins>+    ((*this).*it-&gt;value)(callId, *message.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource1(long callId, const InspectorObject&amp;)
</span><span class="lines">@@ -383,10 +384,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     m_agent-&gt;loadResource1(error);
</span><span class="cx"> 
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource2(long callId, const InspectorObject&amp;)
</span><span class="lines">@@ -399,10 +400,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     m_agent-&gt;loadResource2(error);
</span><span class="cx"> 
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource3(long callId, const InspectorObject&amp;)
</span><span class="lines">@@ -415,10 +416,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     m_agent-&gt;loadResource3(error);
</span><span class="cx"> 
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource4(long callId, const InspectorObject&amp;)
</span><span class="lines">@@ -431,10 +432,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     m_agent-&gt;loadResource4(error);
</span><span class="cx"> 
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource5(long callId, const InspectorObject&amp;)
</span><span class="lines">@@ -447,10 +448,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     m_agent-&gt;loadResource5(error);
</span><span class="cx"> 
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource6(long callId, const InspectorObject&amp;)
</span><span class="lines">@@ -463,10 +464,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     m_agent-&gt;loadResource6(error);
</span><span class="cx"> 
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource7(long callId, const InspectorObject&amp;)
</span><span class="lines">@@ -479,10 +480,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     m_agent-&gt;loadResource7(error);
</span><span class="cx"> 
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace Inspector
</span><span class="lines">@@ -530,6 +531,7 @@
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -627,6 +629,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorProtocolTypes.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="lines">@@ -1289,6 +1292,7 @@
</span><span class="cx"> #import &quot;RWIProtocolEnumConversionHelpers.h&quot;
</span><span class="cx"> #import &lt;JavaScriptCore/InspectorValues.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedenumvaluesjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/enum-values.json-result (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/enum-values.json-result        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/enum-values.json-result        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,10 +41,10 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -144,6 +144,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorBackendDispatcher.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -170,12 +171,12 @@
</span><span class="cx"> 
</span><span class="cx"> class InspectorCommandDomainBackendDispatcher final : public Inspector::InspectorSupplementalBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;InspectorCommandDomainBackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, InspectorCommandDomainBackendDispatcherHandler*);
-    virtual void dispatch(long callId, const String&amp; method, Ref&lt;Inspector::InspectorObject&gt;&amp;&amp; message) override;
</del><ins>+    static PassRefPtr&lt;InspectorCommandDomainBackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, InspectorCommandDomainBackendDispatcherHandler*);
+    virtual void dispatch(long callId, const String&amp; method, PassRefPtr&lt;Inspector::InspectorObject&gt; message) override;
</ins><span class="cx"> private:
</span><span class="cx">     void commandWithEnumReturnValue(long callId, const Inspector::InspectorObject&amp; message);
</span><span class="cx"> private:
</span><del>-    InspectorCommandDomainBackendDispatcher(Inspector::InspectorBackendDispatcher&amp;, InspectorCommandDomainBackendDispatcherHandler*);
</del><ins>+    InspectorCommandDomainBackendDispatcher(Inspector::InspectorBackendDispatcher*, InspectorCommandDomainBackendDispatcherHandler*);
</ins><span class="cx">     InspectorCommandDomainBackendDispatcherHandler* m_agent;
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx"> public:
</span><span class="lines">@@ -240,12 +241,12 @@
</span><span class="cx"> 
</span><span class="cx"> InspectorCommandDomainBackendDispatcherHandler::~InspectorCommandDomainBackendDispatcherHandler() { }
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorCommandDomainBackendDispatcher&gt; InspectorCommandDomainBackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, InspectorCommandDomainBackendDispatcherHandler* agent)
</del><ins>+PassRefPtr&lt;InspectorCommandDomainBackendDispatcher&gt; InspectorCommandDomainBackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, InspectorCommandDomainBackendDispatcherHandler* agent)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorCommandDomainBackendDispatcher(*backendDispatcher, agent));
</del><ins>+    return adoptRef(new InspectorCommandDomainBackendDispatcher(backendDispatcher, agent));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-InspectorCommandDomainBackendDispatcher::InspectorCommandDomainBackendDispatcher(InspectorBackendDispatcher&amp; backendDispatcher, InspectorCommandDomainBackendDispatcherHandler* agent)
</del><ins>+InspectorCommandDomainBackendDispatcher::InspectorCommandDomainBackendDispatcher(InspectorBackendDispatcher* backendDispatcher, InspectorCommandDomainBackendDispatcherHandler* agent)
</ins><span class="cx">     : InspectorSupplementalBackendDispatcher(backendDispatcher)
</span><span class="cx">     , m_agent(agent)
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="lines">@@ -255,12 +256,12 @@
</span><span class="cx">     m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;CommandDomain&quot;), this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorCommandDomainBackendDispatcher::dispatch(long callId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
</del><ins>+void InspectorCommandDomainBackendDispatcher::dispatch(long callId, const String&amp; method, PassRefPtr&lt;InspectorObject&gt; message)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;InspectorCommandDomainBackendDispatcher&gt; protect(*this);
</span><span class="cx"> 
</span><span class="cx">     if (method == &quot;commandWithEnumReturnValue&quot;)
</span><del>-        commandWithEnumReturnValue(callId, message);
</del><ins>+        commandWithEnumReturnValue(callId, *message.get());
</ins><span class="cx">     else
</span><span class="cx">         m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::MethodNotFound, makeString('\'', &quot;CommandDomain&quot;, '.', method, &quot;' was not found&quot;));
</span><span class="cx"> }
</span><span class="lines">@@ -275,14 +276,14 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     InspectorCommandDomainBackendDispatcherHandler::ReturnValue out_returnValue;
</span><span class="cx">     m_agent-&gt;commandWithEnumReturnValue(error, &amp;out_returnValue);
</span><span class="cx"> 
</span><span class="cx">     if (!error.length())
</span><span class="cx">         result-&gt;setString(ASCIILiteral(&quot;returnValue&quot;), Inspector::Protocol::getEnumConstantValue(out_returnValue));
</span><span class="cx"> 
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace Inspector
</span><span class="lines">@@ -330,6 +331,7 @@
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -399,11 +401,11 @@
</span><span class="cx"> 
</span><span class="cx"> void InspectorEventDomainFrontendDispatcher::eventWithEnumParameter(Parameter parameter)
</span><span class="cx"> {
</span><del>-    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</ins><span class="cx">     jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;EventDomain.eventWithEnumParameter&quot;));
</span><del>-    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
</ins><span class="cx">     paramsObject-&gt;setString(ASCIILiteral(&quot;parameter&quot;), Inspector::Protocol::getEnumConstantValue(parameter));
</span><del>-    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), paramsObject.copyRef());
</del><ins>+    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), paramsObject);
</ins><span class="cx"> 
</span><span class="cx">     m_inspectorFrontendChannel-&gt;sendMessageToFrontend(jsonMessage-&gt;toJSONString());
</span><span class="cx"> }
</span><span class="lines">@@ -452,6 +454,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorProtocolTypes.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="lines">@@ -810,7 +813,7 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     id successCallback = ^(RWIProtocolCommandDomainCommandWithEnumReturnValueReturnValue returnValue) {
</span><del>-        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</del><ins>+        RefPtr&lt;InspectorObject&gt; resultObject = InspectorObject::create();
</ins><span class="cx">         resultObject-&gt;setString(ASCIILiteral(&quot;returnValue&quot;), toProtocolString(returnValue));
</span><span class="cx">         backendDispatcher()-&gt;sendResponse(callId, resultObject.release(), String());
</span><span class="cx">     };
</span><span class="lines">@@ -1018,9 +1021,9 @@
</span><span class="cx">     if (!frontendChannel)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</ins><span class="cx">     jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;EventDomain.eventWithEnumParameter&quot;));
</span><del>-    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
</ins><span class="cx">     paramsObject-&gt;setString(ASCIILiteral(&quot;parameter&quot;), toProtocolString(parameter));
</span><span class="cx">     jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), paramsObject);
</span><span class="cx">     frontendChannel-&gt;sendMessageToFrontend(jsonMessage-&gt;toJSONString());
</span><span class="lines">@@ -1142,6 +1145,7 @@
</span><span class="cx"> #import &quot;RWIProtocolEnumConversionHelpers.h&quot;
</span><span class="cx"> #import &lt;JavaScriptCore/InspectorValues.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedeventswithoptionalparametersjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/events-with-optional-parameters.json-result (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/events-with-optional-parameters.json-result        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/events-with-optional-parameters.json-result        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,10 +41,10 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -133,6 +133,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorBackendDispatcher.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -241,6 +242,7 @@
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -250,8 +252,8 @@
</span><span class="cx"> class InspectorDatabaseFrontendDispatcher {
</span><span class="cx"> public:
</span><span class="cx">     InspectorDatabaseFrontendDispatcher(InspectorFrontendChannel* inspectorFrontendChannel) : m_inspectorFrontendChannel(inspectorFrontendChannel) { }
</span><del>-    void didExecuteOptionalParameters(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String* const notes, const double* const timestamp, RefPtr&lt;Inspector::InspectorObject&gt; values, RefPtr&lt;Inspector::InspectorValue&gt; payload, RefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const Inspector::Protocol::Database::PrimaryColors* const screenColor, const String* const printColor);
-    void didExecuteNoOptionalParameters(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String&amp; notes, double timestamp, RefPtr&lt;Inspector::InspectorObject&gt; values, RefPtr&lt;Inspector::InspectorValue&gt; payload, RefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const Inspector::Protocol::Database::PrimaryColors&amp; screenColor, const String&amp; printColor);
</del><ins>+    void didExecuteOptionalParameters(PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String* const notes, const double* const timestamp, PassRefPtr&lt;Inspector::InspectorObject&gt; values, PassRefPtr&lt;Inspector::InspectorValue&gt; payload, PassRefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const Inspector::Protocol::Database::PrimaryColors* const screenColor, const String* const printColor);
+    void didExecuteNoOptionalParameters(PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String&amp; notes, double timestamp, PassRefPtr&lt;Inspector::InspectorObject&gt; values, PassRefPtr&lt;Inspector::InspectorValue&gt; payload, PassRefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const Inspector::Protocol::Database::PrimaryColors&amp; screenColor, const String&amp; printColor);
</ins><span class="cx"> private:
</span><span class="cx">     InspectorFrontendChannel* m_inspectorFrontendChannel;
</span><span class="cx"> };
</span><span class="lines">@@ -303,11 +305,11 @@
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><del>-void InspectorDatabaseFrontendDispatcher::didExecuteOptionalParameters(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String* const notes, const double* const timestamp, RefPtr&lt;Inspector::InspectorObject&gt; values, RefPtr&lt;Inspector::InspectorValue&gt; payload, RefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const Inspector::Protocol::Database::PrimaryColors* const screenColor, const String* const printColor)
</del><ins>+void InspectorDatabaseFrontendDispatcher::didExecuteOptionalParameters(PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String* const notes, const double* const timestamp, PassRefPtr&lt;Inspector::InspectorObject&gt; values, PassRefPtr&lt;Inspector::InspectorValue&gt; payload, PassRefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const Inspector::Protocol::Database::PrimaryColors* const screenColor, const String* const printColor)
</ins><span class="cx"> {
</span><del>-    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</ins><span class="cx">     jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Database.didExecuteOptionalParameters&quot;));
</span><del>-    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
</ins><span class="cx">     if (columnNames)
</span><span class="cx">         paramsObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), columnNames);
</span><span class="cx">     if (notes)
</span><span class="lines">@@ -324,16 +326,16 @@
</span><span class="cx">         paramsObject-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), *screenColor);
</span><span class="cx">     if (printColor)
</span><span class="cx">         paramsObject-&gt;setString(ASCIILiteral(&quot;printColor&quot;), *printColor);
</span><del>-    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), paramsObject.copyRef());
</del><ins>+    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), paramsObject);
</ins><span class="cx"> 
</span><span class="cx">     m_inspectorFrontendChannel-&gt;sendMessageToFrontend(jsonMessage-&gt;toJSONString());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDatabaseFrontendDispatcher::didExecuteNoOptionalParameters(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String&amp; notes, double timestamp, RefPtr&lt;Inspector::InspectorObject&gt; values, RefPtr&lt;Inspector::InspectorValue&gt; payload, RefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const Inspector::Protocol::Database::PrimaryColors&amp; screenColor, const String&amp; printColor)
</del><ins>+void InspectorDatabaseFrontendDispatcher::didExecuteNoOptionalParameters(PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String&amp; notes, double timestamp, PassRefPtr&lt;Inspector::InspectorObject&gt; values, PassRefPtr&lt;Inspector::InspectorValue&gt; payload, PassRefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const Inspector::Protocol::Database::PrimaryColors&amp; screenColor, const String&amp; printColor)
</ins><span class="cx"> {
</span><del>-    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</ins><span class="cx">     jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Database.didExecuteNoOptionalParameters&quot;));
</span><del>-    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
</ins><span class="cx">     paramsObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), columnNames);
</span><span class="cx">     paramsObject-&gt;setString(ASCIILiteral(&quot;notes&quot;), notes);
</span><span class="cx">     paramsObject-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), timestamp);
</span><span class="lines">@@ -342,7 +344,7 @@
</span><span class="cx">     paramsObject-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), sqlError);
</span><span class="cx">     paramsObject-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), screenColor);
</span><span class="cx">     paramsObject-&gt;setString(ASCIILiteral(&quot;printColor&quot;), printColor);
</span><del>-    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), paramsObject.copyRef());
</del><ins>+    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), paramsObject);
</ins><span class="cx"> 
</span><span class="cx">     m_inspectorFrontendChannel-&gt;sendMessageToFrontend(jsonMessage-&gt;toJSONString());
</span><span class="cx"> }
</span><span class="lines">@@ -391,6 +393,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorProtocolTypes.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="lines">@@ -442,10 +445,10 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*Error*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*Error*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class Error;
</span><span class="cx">     public:
</span><span class="lines">@@ -464,27 +467,30 @@
</span><span class="cx">             return castState&lt;CodeSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Ref&lt;Error&gt; release()
</del><ins>+        operator RefPtr&lt;Error&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(Error) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;Error&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;Error&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;Error&gt; release()
+        {
+            return RefPtr&lt;Error&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * Synthetic constructor:
</span><del>-     * Ref&lt;Error&gt; result = Error::create()
</del><ins>+     * RefPtr&lt;Error&gt; result = Error::create()
</ins><span class="cx">      *     .setMessage(...)
</span><del>-     *     .setCode(...)
-     *     .release();
</del><ins>+     *     .setCode(...);
</ins><span class="cx">      */
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><span class="cx">     }
</span><ins>+    typedef Inspector::Protocol::StructItemTraits ItemTraits;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // Database
</span><span class="lines">@@ -882,9 +888,9 @@
</span><span class="cx">     THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(screenColor, @&quot;screenColor&quot;);
</span><span class="cx">     THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(printColor, @&quot;printColor&quot;);
</span><span class="cx"> 
</span><del>-    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</ins><span class="cx">     jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Database.didExecuteOptionalParameters&quot;));
</span><del>-    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
</ins><span class="cx">     if (columnNames)
</span><span class="cx">         paramsObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), inspectorStringArray((*columnNames)));
</span><span class="cx">     if (notes)
</span><span class="lines">@@ -919,9 +925,9 @@
</span><span class="cx">     THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(screenColor, @&quot;screenColor&quot;);
</span><span class="cx">     THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(printColor, @&quot;printColor&quot;);
</span><span class="cx"> 
</span><del>-    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</ins><span class="cx">     jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Database.didExecuteNoOptionalParameters&quot;));
</span><del>-    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
</ins><span class="cx">     paramsObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), inspectorStringArray(columnNames));
</span><span class="cx">     paramsObject-&gt;setString(ASCIILiteral(&quot;notes&quot;), notes);
</span><span class="cx">     paramsObject-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), timestamp);
</span><span class="lines">@@ -1035,6 +1041,7 @@
</span><span class="cx"> #import &quot;RWIProtocolEnumConversionHelpers.h&quot;
</span><span class="cx"> #import &lt;JavaScriptCore/InspectorValues.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedgeneratedomainswithfeatureguardsjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,10 +41,10 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -142,6 +142,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorBackendDispatcher.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -166,12 +167,12 @@
</span><span class="cx"> #if PLATFORM(WEB_COMMANDS)
</span><span class="cx"> class InspectorNetwork1BackendDispatcher final : public Inspector::InspectorSupplementalBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;InspectorNetwork1BackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, InspectorNetwork1BackendDispatcherHandler*);
-    virtual void dispatch(long callId, const String&amp; method, Ref&lt;Inspector::InspectorObject&gt;&amp;&amp; message) override;
</del><ins>+    static PassRefPtr&lt;InspectorNetwork1BackendDispatcher&gt; create(Inspector::InspectorBackendDispatcher*, InspectorNetwork1BackendDispatcherHandler*);
+    virtual void dispatch(long callId, const String&amp; method, PassRefPtr&lt;Inspector::InspectorObject&gt; message) override;
</ins><span class="cx"> private:
</span><span class="cx">     void loadResource(long callId, const Inspector::InspectorObject&amp; message);
</span><span class="cx"> private:
</span><del>-    InspectorNetwork1BackendDispatcher(Inspector::InspectorBackendDispatcher&amp;, InspectorNetwork1BackendDispatcherHandler*);
</del><ins>+    InspectorNetwork1BackendDispatcher(Inspector::InspectorBackendDispatcher*, InspectorNetwork1BackendDispatcherHandler*);
</ins><span class="cx">     InspectorNetwork1BackendDispatcherHandler* m_agent;
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx"> public:
</span><span class="lines">@@ -240,12 +241,12 @@
</span><span class="cx"> #endif // PLATFORM(WEB_COMMANDS)
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(WEB_COMMANDS)
</span><del>-Ref&lt;InspectorNetwork1BackendDispatcher&gt; InspectorNetwork1BackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, InspectorNetwork1BackendDispatcherHandler* agent)
</del><ins>+PassRefPtr&lt;InspectorNetwork1BackendDispatcher&gt; InspectorNetwork1BackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, InspectorNetwork1BackendDispatcherHandler* agent)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorNetwork1BackendDispatcher(*backendDispatcher, agent));
</del><ins>+    return adoptRef(new InspectorNetwork1BackendDispatcher(backendDispatcher, agent));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-InspectorNetwork1BackendDispatcher::InspectorNetwork1BackendDispatcher(InspectorBackendDispatcher&amp; backendDispatcher, InspectorNetwork1BackendDispatcherHandler* agent)
</del><ins>+InspectorNetwork1BackendDispatcher::InspectorNetwork1BackendDispatcher(InspectorBackendDispatcher* backendDispatcher, InspectorNetwork1BackendDispatcherHandler* agent)
</ins><span class="cx">     : InspectorSupplementalBackendDispatcher(backendDispatcher)
</span><span class="cx">     , m_agent(agent)
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="lines">@@ -255,12 +256,12 @@
</span><span class="cx">     m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;Network1&quot;), this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorNetwork1BackendDispatcher::dispatch(long callId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
</del><ins>+void InspectorNetwork1BackendDispatcher::dispatch(long callId, const String&amp; method, PassRefPtr&lt;InspectorObject&gt; message)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;InspectorNetwork1BackendDispatcher&gt; protect(*this);
</span><span class="cx"> 
</span><span class="cx">     if (method == &quot;loadResource&quot;)
</span><del>-        loadResource(callId, message);
</del><ins>+        loadResource(callId, *message.get());
</ins><span class="cx">     else
</span><span class="cx">         m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::MethodNotFound, makeString('\'', &quot;Network1&quot;, '.', method, &quot;' was not found&quot;));
</span><span class="cx"> }
</span><span class="lines">@@ -275,10 +276,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     ErrorString error;
</span><del>-    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; result = InspectorObject::create();
</ins><span class="cx">     m_agent-&gt;loadResource(error);
</span><span class="cx"> 
</span><del>-    m_backendDispatcher-&gt;sendResponse(callId, WTF::move(result), error);
</del><ins>+    m_backendDispatcher-&gt;sendResponse(callId, result.release(), error);
</ins><span class="cx"> }
</span><span class="cx"> #endif // PLATFORM(WEB_COMMANDS)
</span><span class="cx"> 
</span><span class="lines">@@ -327,6 +328,7 @@
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -393,7 +395,7 @@
</span><span class="cx"> #if PLATFORM(WEB_EVENTS)
</span><span class="cx"> void InspectorNetwork3FrontendDispatcher::resourceLoaded()
</span><span class="cx"> {
</span><del>-    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</ins><span class="cx">     jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Network3.resourceLoaded&quot;));
</span><span class="cx"> 
</span><span class="cx">     m_inspectorFrontendChannel-&gt;sendMessageToFrontend(jsonMessage-&gt;toJSONString());
</span><span class="lines">@@ -444,6 +446,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorProtocolTypes.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="lines">@@ -490,10 +493,10 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*NetworkError*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*NetworkError*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class NetworkError;
</span><span class="cx">     public:
</span><span class="lines">@@ -512,27 +515,30 @@
</span><span class="cx">             return castState&lt;CodeSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Ref&lt;NetworkError&gt; release()
</del><ins>+        operator RefPtr&lt;NetworkError&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(NetworkError) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;NetworkError&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;NetworkError&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;NetworkError&gt; release()
+        {
+            return RefPtr&lt;NetworkError&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * Synthetic constructor:
</span><del>-     * Ref&lt;NetworkError&gt; result = NetworkError::create()
</del><ins>+     * RefPtr&lt;NetworkError&gt; result = NetworkError::create()
</ins><span class="cx">      *     .setMessage(...)
</span><del>-     *     .setCode(...)
-     *     .release();
</del><ins>+     *     .setCode(...);
</ins><span class="cx">      */
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><span class="cx">     }
</span><ins>+    typedef Inspector::Protocol::StructItemTraits ItemTraits;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // Network2
</span><span class="lines">@@ -984,7 +990,7 @@
</span><span class="cx">     if (!frontendChannel)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
</ins><span class="cx">     jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Network3.resourceLoaded&quot;));
</span><span class="cx">     frontendChannel-&gt;sendMessageToFrontend(jsonMessage-&gt;toJSONString());
</span><span class="cx"> }
</span><span class="lines">@@ -1092,6 +1098,7 @@
</span><span class="cx"> #import &quot;RWIProtocolEnumConversionHelpers.h&quot;
</span><span class="cx"> #import &lt;JavaScriptCore/InspectorValues.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedsametypeiddifferentdomainjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/same-type-id-different-domain.json-result (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/same-type-id-different-domain.json-result        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/same-type-id-different-domain.json-result        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,10 +41,10 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -127,6 +127,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorBackendDispatcher.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -235,6 +236,7 @@
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -332,6 +334,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorProtocolTypes.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="lines">@@ -814,6 +817,7 @@
</span><span class="cx"> #import &quot;RWIProtocolEnumConversionHelpers.h&quot;
</span><span class="cx"> #import &lt;JavaScriptCore/InspectorValues.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedshadowedoptionaltypesettersjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,10 +41,10 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -127,6 +127,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorBackendDispatcher.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -235,6 +236,7 @@
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -332,6 +334,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorProtocolTypes.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="lines">@@ -381,10 +384,10 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*KeyPath*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*KeyPath*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class KeyPath;
</span><span class="cx">     public:
</span><span class="lines">@@ -396,35 +399,38 @@
</span><span class="cx">             return castState&lt;TypeSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Ref&lt;KeyPath&gt; release()
</del><ins>+        operator RefPtr&lt;KeyPath&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(KeyPath) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;KeyPath&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;KeyPath&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;KeyPath&gt; release()
+        {
+            return RefPtr&lt;KeyPath&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * Synthetic constructor:
</span><del>-     * Ref&lt;KeyPath&gt; result = KeyPath::create()
-     *     .setType(...)
-     *     .release();
</del><ins>+     * RefPtr&lt;KeyPath&gt; result = KeyPath::create()
+     *     .setType(...);
</ins><span class="cx">      */
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><span class="cx">     }
</span><ins>+    typedef Inspector::Protocol::StructItemTraits ItemTraits;
</ins><span class="cx"> 
</span><span class="cx">     void setString(const String&amp; value)
</span><span class="cx">     {
</span><span class="cx">         InspectorObjectBase::setString(ASCIILiteral(&quot;string&quot;), value);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    void setArray(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; value)
</del><ins>+    void setArray(PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; value)
</ins><span class="cx">     {
</span><del>-        InspectorObjectBase::setArray(ASCIILiteral(&quot;array&quot;), WTF::move(value));
</del><ins>+        InspectorObjectBase::setArray(ASCIILiteral(&quot;array&quot;), value);
</ins><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -914,6 +920,7 @@
</span><span class="cx"> #import &quot;RWIProtocolEnumConversionHelpers.h&quot;
</span><span class="cx"> #import &lt;JavaScriptCore/InspectorValues.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationaliasedprimitivetypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,10 +41,10 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -127,6 +127,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorBackendDispatcher.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -235,6 +236,7 @@
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -332,6 +334,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorProtocolTypes.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="lines">@@ -800,6 +803,7 @@
</span><span class="cx"> #import &quot;RWIProtocolEnumConversionHelpers.h&quot;
</span><span class="cx"> #import &lt;JavaScriptCore/InspectorValues.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationarraytypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,10 +41,10 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -130,6 +130,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorBackendDispatcher.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -238,6 +239,7 @@
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -335,6 +337,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorProtocolTypes.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="lines">@@ -861,6 +864,7 @@
</span><span class="cx"> #import &quot;RWIProtocolEnumConversionHelpers.h&quot;
</span><span class="cx"> #import &lt;JavaScriptCore/InspectorValues.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationenumtypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-enum-type.json-result (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-enum-type.json-result        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-enum-type.json-result        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,10 +41,10 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -131,6 +131,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorBackendDispatcher.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -239,6 +240,7 @@
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -336,6 +338,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorProtocolTypes.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="lines">@@ -899,6 +902,7 @@
</span><span class="cx"> #import &quot;RWIProtocolEnumConversionHelpers.h&quot;
</span><span class="cx"> #import &lt;JavaScriptCore/InspectorValues.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationobjecttypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-object-type.json-result (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-object-type.json-result        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-object-type.json-result        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,10 +41,10 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -127,6 +127,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorBackendDispatcher.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -235,6 +236,7 @@
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -332,6 +334,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorProtocolTypes.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="lines">@@ -384,10 +387,10 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*Error*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*Error*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class Error;
</span><span class="cx">     public:
</span><span class="lines">@@ -406,27 +409,30 @@
</span><span class="cx">             return castState&lt;CodeSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Ref&lt;Error&gt; release()
</del><ins>+        operator RefPtr&lt;Error&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(Error) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;Error&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;Error&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;Error&gt; release()
+        {
+            return RefPtr&lt;Error&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * Synthetic constructor:
</span><del>-     * Ref&lt;Error&gt; result = Error::create()
</del><ins>+     * RefPtr&lt;Error&gt; result = Error::create()
</ins><span class="cx">      *     .setMessage(...)
</span><del>-     *     .setCode(...)
-     *     .release();
</del><ins>+     *     .setCode(...);
</ins><span class="cx">      */
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><span class="cx">     }
</span><ins>+    typedef Inspector::Protocol::StructItemTraits ItemTraits;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class OptionalParameterBundle : public Inspector::InspectorObjectBase {
</span><span class="lines">@@ -446,37 +452,40 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*OptionalParameterBundle*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*OptionalParameterBundle*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class OptionalParameterBundle;
</span><span class="cx">     public:
</span><span class="cx"> 
</span><del>-        Ref&lt;OptionalParameterBundle&gt; release()
</del><ins>+        operator RefPtr&lt;OptionalParameterBundle&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(OptionalParameterBundle) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;OptionalParameterBundle&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;OptionalParameterBundle&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;OptionalParameterBundle&gt; release()
+        {
+            return RefPtr&lt;OptionalParameterBundle&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * Synthetic constructor:
</span><del>-     * Ref&lt;OptionalParameterBundle&gt; result = OptionalParameterBundle::create()
-     *     .release();
</del><ins>+     * RefPtr&lt;OptionalParameterBundle&gt; result = OptionalParameterBundle::create();
</ins><span class="cx">      */
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><span class="cx">     }
</span><ins>+    typedef Inspector::Protocol::StructItemTraits ItemTraits;
</ins><span class="cx"> 
</span><del>-    void setColumnNames(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; value)
</del><ins>+    void setColumnNames(PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; value)
</ins><span class="cx">     {
</span><del>-        InspectorObjectBase::setArray(ASCIILiteral(&quot;columnNames&quot;), WTF::move(value));
</del><ins>+        InspectorObjectBase::setArray(ASCIILiteral(&quot;columnNames&quot;), value);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void setNotes(const String&amp; value)
</span><span class="lines">@@ -489,19 +498,19 @@
</span><span class="cx">         InspectorObjectBase::setDouble(ASCIILiteral(&quot;timestamp&quot;), value);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    void setValues(RefPtr&lt;Inspector::InspectorObject&gt; value)
</del><ins>+    void setValues(PassRefPtr&lt;Inspector::InspectorObject&gt; value)
</ins><span class="cx">     {
</span><del>-        InspectorObjectBase::setObject(ASCIILiteral(&quot;values&quot;), WTF::move(value));
</del><ins>+        InspectorObjectBase::setObject(ASCIILiteral(&quot;values&quot;), value);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    void setPayload(RefPtr&lt;Inspector::InspectorValue&gt; value)
</del><ins>+    void setPayload(PassRefPtr&lt;Inspector::InspectorValue&gt; value)
</ins><span class="cx">     {
</span><del>-        InspectorObjectBase::setValue(ASCIILiteral(&quot;payload&quot;), WTF::move(value));
</del><ins>+        InspectorObjectBase::setValue(ASCIILiteral(&quot;payload&quot;), value);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    void setError(RefPtr&lt;Inspector::Protocol::Database::Error&gt; value)
</del><ins>+    void setError(PassRefPtr&lt;Inspector::Protocol::Database::Error&gt; value)
</ins><span class="cx">     {
</span><del>-        InspectorObjectBase::setObject(ASCIILiteral(&quot;error&quot;), WTF::move(value));
</del><ins>+        InspectorObjectBase::setObject(ASCIILiteral(&quot;error&quot;), value);
</ins><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -528,15 +537,15 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*ParameterBundle*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*ParameterBundle*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class ParameterBundle;
</span><span class="cx">     public:
</span><span class="cx"> 
</span><del>-        Builder&lt;STATE | ColumnNamesSet&gt;&amp; setColumnNames(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; value)
</del><ins>+        Builder&lt;STATE | ColumnNamesSet&gt;&amp; setColumnNames(PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; value)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(!(STATE &amp; ColumnNamesSet), property_columnNames_already_set);
</span><span class="cx">             m_result-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), value);
</span><span class="lines">@@ -557,52 +566,55 @@
</span><span class="cx">             return castState&lt;TimestampSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder&lt;STATE | ValuesSet&gt;&amp; setValues(RefPtr&lt;Inspector::InspectorObject&gt; value)
</del><ins>+        Builder&lt;STATE | ValuesSet&gt;&amp; setValues(PassRefPtr&lt;Inspector::InspectorObject&gt; value)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(!(STATE &amp; ValuesSet), property_values_already_set);
</span><span class="cx">             m_result-&gt;setObject(ASCIILiteral(&quot;values&quot;), value);
</span><span class="cx">             return castState&lt;ValuesSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder&lt;STATE | PayloadSet&gt;&amp; setPayload(RefPtr&lt;Inspector::InspectorValue&gt; value)
</del><ins>+        Builder&lt;STATE | PayloadSet&gt;&amp; setPayload(PassRefPtr&lt;Inspector::InspectorValue&gt; value)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(!(STATE &amp; PayloadSet), property_payload_already_set);
</span><span class="cx">             m_result-&gt;setValue(ASCIILiteral(&quot;payload&quot;), value);
</span><span class="cx">             return castState&lt;PayloadSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder&lt;STATE | ErrorSet&gt;&amp; setError(RefPtr&lt;Inspector::Protocol::Database::Error&gt; value)
</del><ins>+        Builder&lt;STATE | ErrorSet&gt;&amp; setError(PassRefPtr&lt;Inspector::Protocol::Database::Error&gt; value)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(!(STATE &amp; ErrorSet), property_error_already_set);
</span><span class="cx">             m_result-&gt;setObject(ASCIILiteral(&quot;error&quot;), value);
</span><span class="cx">             return castState&lt;ErrorSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Ref&lt;ParameterBundle&gt; release()
</del><ins>+        operator RefPtr&lt;ParameterBundle&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(ParameterBundle) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;ParameterBundle&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;ParameterBundle&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;ParameterBundle&gt; release()
+        {
+            return RefPtr&lt;ParameterBundle&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * Synthetic constructor:
</span><del>-     * Ref&lt;ParameterBundle&gt; result = ParameterBundle::create()
</del><ins>+     * RefPtr&lt;ParameterBundle&gt; result = ParameterBundle::create()
</ins><span class="cx">      *     .setColumnNames(...)
</span><span class="cx">      *     .setNotes(...)
</span><span class="cx">      *     .setTimestamp(...)
</span><span class="cx">      *     .setValues(...)
</span><span class="cx">      *     .setPayload(...)
</span><del>-     *     .setError(...)
-     *     .release();
</del><ins>+     *     .setError(...);
</ins><span class="cx">      */
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><span class="cx">     }
</span><ins>+    typedef Inspector::Protocol::StructItemTraits ItemTraits;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> /* Conflicted names may cause generated getters/setters to clash with built-in InspectorObject methods. */
</span><span class="lines">@@ -628,10 +640,10 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*ObjectWithPropertyNameConflicts*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*ObjectWithPropertyNameConflicts*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class ObjectWithPropertyNameConflicts;
</span><span class="cx">     public:
</span><span class="lines">@@ -671,30 +683,33 @@
</span><span class="cx">             return castState&lt;ObjectSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Ref&lt;ObjectWithPropertyNameConflicts&gt; release()
</del><ins>+        operator RefPtr&lt;ObjectWithPropertyNameConflicts&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(ObjectWithPropertyNameConflicts) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;ObjectWithPropertyNameConflicts&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;ObjectWithPropertyNameConflicts&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;ObjectWithPropertyNameConflicts&gt; release()
+        {
+            return RefPtr&lt;ObjectWithPropertyNameConflicts&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * Synthetic constructor:
</span><del>-     * Ref&lt;ObjectWithPropertyNameConflicts&gt; result = ObjectWithPropertyNameConflicts::create()
</del><ins>+     * RefPtr&lt;ObjectWithPropertyNameConflicts&gt; result = ObjectWithPropertyNameConflicts::create()
</ins><span class="cx">      *     .setInteger(...)
</span><span class="cx">      *     .setArray(...)
</span><span class="cx">      *     .setString(...)
</span><span class="cx">      *     .setValue(...)
</span><del>-     *     .setObject(...)
-     *     .release();
</del><ins>+     *     .setObject(...);
</ins><span class="cx">      */
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><span class="cx">     }
</span><ins>+    typedef Inspector::Protocol::StructItemTraits ItemTraits;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // Database
</span><span class="lines">@@ -723,15 +738,15 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*ParameterBundle*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*ParameterBundle*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class ParameterBundle;
</span><span class="cx">     public:
</span><span class="cx"> 
</span><del>-        Builder&lt;STATE | ColumnNamesSet&gt;&amp; setColumnNames(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; value)
</del><ins>+        Builder&lt;STATE | ColumnNamesSet&gt;&amp; setColumnNames(PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; value)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(!(STATE &amp; ColumnNamesSet), property_columnNames_already_set);
</span><span class="cx">             m_result-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), value);
</span><span class="lines">@@ -752,52 +767,55 @@
</span><span class="cx">             return castState&lt;TimestampSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder&lt;STATE | ValuesSet&gt;&amp; setValues(RefPtr&lt;Inspector::InspectorObject&gt; value)
</del><ins>+        Builder&lt;STATE | ValuesSet&gt;&amp; setValues(PassRefPtr&lt;Inspector::InspectorObject&gt; value)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(!(STATE &amp; ValuesSet), property_values_already_set);
</span><span class="cx">             m_result-&gt;setObject(ASCIILiteral(&quot;values&quot;), value);
</span><span class="cx">             return castState&lt;ValuesSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder&lt;STATE | PayloadSet&gt;&amp; setPayload(RefPtr&lt;Inspector::InspectorValue&gt; value)
</del><ins>+        Builder&lt;STATE | PayloadSet&gt;&amp; setPayload(PassRefPtr&lt;Inspector::InspectorValue&gt; value)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(!(STATE &amp; PayloadSet), property_payload_already_set);
</span><span class="cx">             m_result-&gt;setValue(ASCIILiteral(&quot;payload&quot;), value);
</span><span class="cx">             return castState&lt;PayloadSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder&lt;STATE | ErrorSet&gt;&amp; setError(RefPtr&lt;Inspector::Protocol::Database::Error&gt; value)
</del><ins>+        Builder&lt;STATE | ErrorSet&gt;&amp; setError(PassRefPtr&lt;Inspector::Protocol::Database::Error&gt; value)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(!(STATE &amp; ErrorSet), property_error_already_set);
</span><span class="cx">             m_result-&gt;setObject(ASCIILiteral(&quot;error&quot;), value);
</span><span class="cx">             return castState&lt;ErrorSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Ref&lt;ParameterBundle&gt; release()
</del><ins>+        operator RefPtr&lt;ParameterBundle&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(ParameterBundle) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;ParameterBundle&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;ParameterBundle&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;ParameterBundle&gt; release()
+        {
+            return RefPtr&lt;ParameterBundle&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * Synthetic constructor:
</span><del>-     * Ref&lt;ParameterBundle&gt; result = ParameterBundle::create()
</del><ins>+     * RefPtr&lt;ParameterBundle&gt; result = ParameterBundle::create()
</ins><span class="cx">      *     .setColumnNames(...)
</span><span class="cx">      *     .setNotes(...)
</span><span class="cx">      *     .setTimestamp(...)
</span><span class="cx">      *     .setValues(...)
</span><span class="cx">      *     .setPayload(...)
</span><del>-     *     .setError(...)
-     *     .release();
</del><ins>+     *     .setError(...);
</ins><span class="cx">      */
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><span class="cx">     }
</span><ins>+    typedef Inspector::Protocol::StructItemTraits ItemTraits;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // Test
</span><span class="lines">@@ -1313,6 +1331,7 @@
</span><span class="cx"> #import &quot;RWIProtocolEnumConversionHelpers.h&quot;
</span><span class="cx"> #import &lt;JavaScriptCore/InspectorValues.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtyperequiringruntimecastsjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,10 +41,10 @@
</span><span class="cx"> 
</span><span class="cx"> class AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><del>-    void setBackendDispatcher(Ref&lt;InspectorBackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTF::move(dispatcher); }
-    const InspectorBackendDispatcher&amp; backendDispatcher() const { return m_backendDispatcher.get(); }
</del><ins>+    void setBackendDispatcher(PassRefPtr&lt;InspectorBackendDispatcher&gt; dispatcher) { m_backendDispatcher = dispatcher; }
+    InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
</ins><span class="cx"> private:
</span><del>-    Ref&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</del><ins>+    RefPtr&lt;InspectorBackendDispatcher&gt; m_backendDispatcher;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -131,6 +131,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorBackendDispatcher.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -239,6 +240,7 @@
</span><span class="cx"> #include &quot;InspectorProtocolObjects.h&quot;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="lines">@@ -336,6 +338,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorProtocolTypes.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="lines">@@ -393,10 +396,10 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*TypeNeedingCast*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*TypeNeedingCast*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class TypeNeedingCast;
</span><span class="cx">     public:
</span><span class="lines">@@ -429,37 +432,40 @@
</span><span class="cx">             return castState&lt;IdSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder&lt;STATE | TreeSet&gt;&amp; setTree(RefPtr&lt;Inspector::Protocol::Test::RecursiveObject1&gt; value)
</del><ins>+        Builder&lt;STATE | TreeSet&gt;&amp; setTree(PassRefPtr&lt;Inspector::Protocol::Test::RecursiveObject1&gt; value)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(!(STATE &amp; TreeSet), property_tree_already_set);
</span><span class="cx">             m_result-&gt;setObject(ASCIILiteral(&quot;tree&quot;), value);
</span><span class="cx">             return castState&lt;TreeSet&gt;();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Ref&lt;TypeNeedingCast&gt; release()
</del><ins>+        operator RefPtr&lt;TypeNeedingCast&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(TypeNeedingCast) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;TypeNeedingCast&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;TypeNeedingCast&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;TypeNeedingCast&gt; release()
+        {
+            return RefPtr&lt;TypeNeedingCast&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * Synthetic constructor:
</span><del>-     * Ref&lt;TypeNeedingCast&gt; result = TypeNeedingCast::create()
</del><ins>+     * RefPtr&lt;TypeNeedingCast&gt; result = TypeNeedingCast::create()
</ins><span class="cx">      *     .setString(...)
</span><span class="cx">      *     .setNumber(...)
</span><span class="cx">      *     .setAnimals(...)
</span><span class="cx">      *     .setId(...)
</span><del>-     *     .setTree(...)
-     *     .release();
</del><ins>+     *     .setTree(...);
</ins><span class="cx">      */
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><span class="cx">     }
</span><ins>+    typedef Inspector::Protocol::StructItemTraits ItemTraits;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> /*  */
</span><span class="lines">@@ -493,37 +499,40 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*RecursiveObject1*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*RecursiveObject1*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class RecursiveObject1;
</span><span class="cx">     public:
</span><span class="cx"> 
</span><del>-        Ref&lt;RecursiveObject1&gt; release()
</del><ins>+        operator RefPtr&lt;RecursiveObject1&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(RecursiveObject1) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;RecursiveObject1&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;RecursiveObject1&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;RecursiveObject1&gt; release()
+        {
+            return RefPtr&lt;RecursiveObject1&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * Synthetic constructor:
</span><del>-     * Ref&lt;RecursiveObject1&gt; result = RecursiveObject1::create()
-     *     .release();
</del><ins>+     * RefPtr&lt;RecursiveObject1&gt; result = RecursiveObject1::create();
</ins><span class="cx">      */
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><span class="cx">     }
</span><ins>+    typedef Inspector::Protocol::StructItemTraits ItemTraits;
</ins><span class="cx"> 
</span><del>-    void setObj(RefPtr&lt;Inspector::Protocol::Test::RecursiveObject2&gt; value)
</del><ins>+    void setObj(PassRefPtr&lt;Inspector::Protocol::Test::RecursiveObject2&gt; value)
</ins><span class="cx">     {
</span><del>-        InspectorObjectBase::setObject(ASCIILiteral(&quot;obj&quot;), WTF::move(value));
</del><ins>+        InspectorObjectBase::setObject(ASCIILiteral(&quot;obj&quot;), value);
</ins><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -544,37 +553,40 @@
</span><span class="cx">             return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Builder(Ref&lt;/*RecursiveObject2*/Inspector::InspectorObject&gt;&amp;&amp; object)
-            : m_result(WTF::move(object))
</del><ins>+        Builder(PassRefPtr&lt;/*RecursiveObject2*/Inspector::InspectorObject&gt; ptr)
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
</span><ins>+            m_result = ptr;
</ins><span class="cx">         }
</span><span class="cx">         friend class RecursiveObject2;
</span><span class="cx">     public:
</span><span class="cx"> 
</span><del>-        Ref&lt;RecursiveObject2&gt; release()
</del><ins>+        operator RefPtr&lt;RecursiveObject2&gt;&amp; ()
</ins><span class="cx">         {
</span><span class="cx">             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="cx">             COMPILE_ASSERT(sizeof(RecursiveObject2) == sizeof(Inspector::InspectorObject), cannot_cast);
</span><ins>+            return *reinterpret_cast&lt;RefPtr&lt;RecursiveObject2&gt;*&gt;(&amp;m_result);
+        }
</ins><span class="cx"> 
</span><del>-            Ref&lt;Inspector::InspectorObject&gt; result = m_result.releaseNonNull();
-            return WTF::move(*reinterpret_cast&lt;Ref&lt;RecursiveObject2&gt;*&gt;(&amp;result));
</del><ins>+        PassRefPtr&lt;RecursiveObject2&gt; release()
+        {
+            return RefPtr&lt;RecursiveObject2&gt;(*this).release();
</ins><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     /*
</span><span class="cx">      * Synthetic constructor:
</span><del>-     * Ref&lt;RecursiveObject2&gt; result = RecursiveObject2::create()
-     *     .release();
</del><ins>+     * RefPtr&lt;RecursiveObject2&gt; result = RecursiveObject2::create();
</ins><span class="cx">      */
</span><span class="cx">     static Builder&lt;NoFieldsSet&gt; create()
</span><span class="cx">     {
</span><span class="cx">         return Builder&lt;NoFieldsSet&gt;(Inspector::InspectorObject::create());
</span><span class="cx">     }
</span><ins>+    typedef Inspector::Protocol::StructItemTraits ItemTraits;
</ins><span class="cx"> 
</span><del>-    void setObj(RefPtr&lt;Inspector::Protocol::Test::RecursiveObject1&gt; value)
</del><ins>+    void setObj(PassRefPtr&lt;Inspector::Protocol::Test::RecursiveObject1&gt; value)
</ins><span class="cx">     {
</span><del>-        InspectorObjectBase::setObject(ASCIILiteral(&quot;obj&quot;), WTF::move(value));
</del><ins>+        InspectorObjectBase::setObject(ASCIILiteral(&quot;obj&quot;), value);
</ins><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -586,7 +598,7 @@
</span><span class="cx"> #endif // !ASSERT_DISABLED
</span><span class="cx"> };
</span><span class="cx"> template&lt;&gt; struct BindingTraits&lt;Inspector::Protocol::Test::TypeNeedingCast&gt; {
</span><del>-static RefPtr&lt;Inspector::Protocol::Test::TypeNeedingCast&gt; runtimeCast(RefPtr&lt;Inspector::InspectorValue&gt;&amp;&amp; value);
</del><ins>+static PassRefPtr&lt;Inspector::Protocol::Test::TypeNeedingCast&gt; runtimeCast(PassRefPtr&lt;Inspector::InspectorValue&gt; value);
</ins><span class="cx"> #if !ASSERT_DISABLED
</span><span class="cx"> static void assertValueHasExpectedType(Inspector::InspectorValue*);
</span><span class="cx"> #endif // !ASSERT_DISABLED
</span><span class="lines">@@ -672,7 +684,6 @@
</span><span class="cx"> #if !ASSERT_DISABLED
</span><span class="cx"> void BindingTraits&lt;Inspector::Protocol::Test::CastedAnimals&gt;::assertValueHasExpectedType(Inspector::InspectorValue* value)
</span><span class="cx"> {
</span><del>-    ASSERT_ARG(value, value);
</del><span class="cx">     String result;
</span><span class="cx">     bool castSucceeded = value-&gt;asString(result);
</span><span class="cx">     ASSERT(castSucceeded);
</span><span class="lines">@@ -683,7 +694,6 @@
</span><span class="cx"> #if !ASSERT_DISABLED
</span><span class="cx"> void BindingTraits&lt;Inspector::Protocol::Test::TypeNeedingCast&gt;::assertValueHasExpectedType(Inspector::InspectorValue* value)
</span><span class="cx"> {
</span><del>-    ASSERT_ARG(value, value);
</del><span class="cx">     RefPtr&lt;InspectorObject&gt; object;
</span><span class="cx">     bool castSucceeded = value-&gt;asObject(object);
</span><span class="cx">     ASSERT_UNUSED(castSucceeded, castSucceeded);
</span><span class="lines">@@ -719,7 +729,7 @@
</span><span class="cx"> }
</span><span class="cx"> #endif // !ASSERT_DISABLED
</span><span class="cx"> 
</span><del>-RefPtr&lt;Inspector::Protocol::Test::TypeNeedingCast&gt; BindingTraits&lt;Inspector::Protocol::Test::TypeNeedingCast&gt;::runtimeCast(RefPtr&lt;Inspector::InspectorValue&gt;&amp;&amp; value)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Test::TypeNeedingCast&gt; BindingTraits&lt;Inspector::Protocol::Test::TypeNeedingCast&gt;::runtimeCast(PassRefPtr&lt;Inspector::InspectorValue&gt; value)
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Inspector::InspectorObject&gt; result;
</span><span class="cx">     bool castSucceeded = value-&gt;asObject(result);
</span><span class="lines">@@ -735,7 +745,6 @@
</span><span class="cx"> #if !ASSERT_DISABLED
</span><span class="cx"> void BindingTraits&lt;Inspector::Protocol::Test::RecursiveObject1&gt;::assertValueHasExpectedType(Inspector::InspectorValue* value)
</span><span class="cx"> {
</span><del>-    ASSERT_ARG(value, value);
</del><span class="cx">     RefPtr&lt;InspectorObject&gt; object;
</span><span class="cx">     bool castSucceeded = value-&gt;asObject(object);
</span><span class="cx">     ASSERT_UNUSED(castSucceeded, castSucceeded);
</span><span class="lines">@@ -756,7 +765,6 @@
</span><span class="cx"> #if !ASSERT_DISABLED
</span><span class="cx"> void BindingTraits&lt;Inspector::Protocol::Test::RecursiveObject2&gt;::assertValueHasExpectedType(Inspector::InspectorValue* value)
</span><span class="cx"> {
</span><del>-    ASSERT_ARG(value, value);
</del><span class="cx">     RefPtr&lt;InspectorObject&gt; object;
</span><span class="cx">     bool castSucceeded = value-&gt;asObject(object);
</span><span class="cx">     ASSERT_UNUSED(castSucceeded, castSucceeded);
</span><span class="lines">@@ -1248,6 +1256,7 @@
</span><span class="cx"> #import &quot;RWIProtocolEnumConversionHelpers.h&quot;
</span><span class="cx"> #import &lt;JavaScriptCore/InspectorValues.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorereplayEncodedValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/replay/EncodedValue.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/replay/EncodedValue.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/replay/EncodedValue.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -37,22 +37,22 @@
</span><span class="cx"> 
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><del>-RefPtr&lt;InspectorObject&gt; EncodedValue::asObject()
</del><ins>+PassRefPtr&lt;InspectorObject&gt; EncodedValue::asObject()
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;InspectorObject&gt; result;
</span><span class="cx">     bool castSucceeded = m_value-&gt;asObject(result);
</span><span class="cx">     ASSERT_UNUSED(castSucceeded, castSucceeded);
</span><span class="cx"> 
</span><del>-    return result;
</del><ins>+    return result.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;InspectorArray&gt; EncodedValue::asArray()
</del><ins>+PassRefPtr&lt;InspectorArray&gt; EncodedValue::asArray()
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;InspectorArray&gt; result;
</span><span class="cx">     bool castSucceeded = m_value-&gt;asArray(result);
</span><span class="cx">     ASSERT_UNUSED(castSucceeded, castSucceeded);
</span><span class="cx"> 
</span><del>-    return result;
</del><ins>+    return result.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> EncodedValue EncodingTraits&lt;Vector&lt;char&gt;&gt;::encodeValue(const Vector&lt;char&gt;&amp; buffer)
</span><span class="lines">@@ -175,23 +175,23 @@
</span><span class="cx"> template&lt;&gt;
</span><span class="cx"> void EncodedValue::put&lt;EncodedValue&gt;(const String&amp; key, const typename EncodingTraits&lt;EncodedValue&gt;::DecodedType&amp; value)
</span><span class="cx"> {
</span><del>-    asObject()-&gt;setValue(key, value.m_value.copyRef());
</del><ins>+    asObject()-&gt;setValue(key, value.m_value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt;
</span><span class="cx"> void EncodedValue::append&lt;EncodedValue&gt;(const typename EncodingTraits&lt;EncodedValue&gt;::DecodedType&amp; value)
</span><span class="cx"> {
</span><del>-    asArray()-&gt;pushValue(value.m_value.copyRef());
</del><ins>+    asArray()-&gt;pushValue(value.m_value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt;
</span><span class="cx"> bool EncodedValue::get&lt;EncodedValue&gt;(const String&amp; key, typename EncodingTraits&lt;EncodedValue&gt;::DecodedType&amp; decodedValue)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;Inspector::InspectorValue&gt; value;
-    if (!asObject()-&gt;getValue(key, value))
</del><ins>+    RefPtr&lt;Inspector::InspectorValue&gt; inspectorValue(asObject()-&gt;get(key));
+    if (!inspectorValue)
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    decodedValue = EncodedValue(WTF::move(value));
</del><ins>+    decodedValue = EncodedValue(inspectorValue);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorereplayEncodedValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/replay/EncodedValue.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/replay/EncodedValue.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/replay/EncodedValue.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> 
</span><span class="cx"> class EncodedValue final {
</span><span class="cx"> public:
</span><del>-    explicit EncodedValue(RefPtr&lt;Inspector::InspectorValue&gt;&amp;&amp; value)
</del><ins>+    explicit EncodedValue(PassRefPtr&lt;Inspector::InspectorValue&gt; value)
</ins><span class="cx">         : m_value(value) { }
</span><span class="cx"> 
</span><span class="cx">     EncodedValue()
</span><span class="lines">@@ -78,8 +78,8 @@
</span><span class="cx"> 
</span><span class="cx">     template&lt;typename T&gt; T convertTo();
</span><span class="cx"> 
</span><del>-    JS_EXPORT_PRIVATE RefPtr&lt;Inspector::InspectorObject&gt; asObject();
-    JS_EXPORT_PRIVATE RefPtr&lt;Inspector::InspectorArray&gt; asArray();
</del><ins>+    JS_EXPORT_PRIVATE PassRefPtr&lt;Inspector::InspectorObject&gt; asObject();
+    JS_EXPORT_PRIVATE PassRefPtr&lt;Inspector::InspectorArray&gt; asArray();
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     RefPtr&lt;Inspector::InspectorValue&gt; m_value;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorereplayscriptsCodeGeneratorReplayInputspy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/replay/scripts/CodeGeneratorReplayInputs.py (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/replay/scripts/CodeGeneratorReplayInputs.py        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/replay/scripts/CodeGeneratorReplayInputs.py        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -341,13 +341,13 @@
</span><span class="cx">         if self.mode == TypeModes.SCALAR:
</span><span class="cx">             return self.type_name(qualified)
</span><span class="cx">         elif self.mode == TypeModes.SHARED:
</span><del>-            return &quot;RefPtr&lt;%s&gt;&quot; % self.type_name(qualified)
</del><ins>+            return &quot;PassRefPtr&lt;%s&gt;&quot; % self.type_name(qualified)
</ins><span class="cx">         else:
</span><span class="cx">             return &quot;const %s&amp;&quot; % self.type_name(qualified)
</span><span class="cx"> 
</span><span class="cx">     def argument_type(self, qualified=False):
</span><span class="cx">         if self.mode == TypeModes.SHARED:
</span><del>-            return &quot;RefPtr&lt;%s&gt;&amp;&amp;&quot; % self.type_name(qualified)
</del><ins>+            return &quot;PassRefPtr&lt;%s&gt;&quot; % self.type_name(qualified)
</ins><span class="cx">         else:
</span><span class="cx">             return self.storage_type()
</span><span class="cx"> 
</span><span class="lines">@@ -939,7 +939,7 @@
</span><span class="cx"> 
</span><span class="cx">     def generate_member_move_expression(self, _member):
</span><span class="cx">         _type = self._model.get_type_for_member(_member)
</span><del>-        if _type.mode in [TypeModes.OWNED, TypeModes.SHARED]:
</del><ins>+        if _type.mode == TypeModes.OWNED:
</ins><span class="cx">             return &quot;WTF::move(%s)&quot; % _member.memberName
</span><span class="cx">         else:
</span><span class="cx">             return _member.memberName
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeConsoleClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ConsoleClient.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ConsoleClient.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/runtime/ConsoleClient.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -141,7 +141,7 @@
</span><span class="cx">     WTFLogAlways(&quot;%s&quot;, builder.toString().utf8().data());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ConsoleClient::printConsoleMessageWithArguments(MessageSource source, MessageType type, MessageLevel level, JSC::ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; prpArguments)
</del><ins>+void ConsoleClient::printConsoleMessageWithArguments(MessageSource source, MessageType type, MessageLevel level, JSC::ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; prpArguments)
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;ScriptArguments&gt; arguments = prpArguments;
</span><span class="cx"> 
</span><span class="lines">@@ -186,7 +186,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ConsoleClient::internalMessageWithTypeAndLevel(MessageType type, MessageLevel level, JSC::ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; prpArguments, ArgumentRequirement argumentRequirement)
</del><ins>+void ConsoleClient::internalMessageWithTypeAndLevel(MessageType type, MessageLevel level, JSC::ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; prpArguments, ArgumentRequirement argumentRequirement)
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;ScriptArguments&gt; arguments = prpArguments;
</span><span class="cx">     if (argumentRequirement == ArgumentRequired &amp;&amp; !arguments-&gt;argumentCount())
</span><span class="lines">@@ -195,57 +195,57 @@
</span><span class="cx">     messageWithTypeAndLevel(type, level, exec, arguments.release());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ConsoleClient::logWithLevel(ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; arguments, MessageLevel level)
</del><ins>+void ConsoleClient::logWithLevel(ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; arguments, MessageLevel level)
</ins><span class="cx"> {
</span><del>-    internalMessageWithTypeAndLevel(MessageType::Log, level, exec, WTF::move(arguments), ArgumentRequired);
</del><ins>+    internalMessageWithTypeAndLevel(MessageType::Log, level, exec, arguments, ArgumentRequired);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ConsoleClient::clear(ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; arguments)
</del><ins>+void ConsoleClient::clear(ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; arguments)
</ins><span class="cx"> {
</span><del>-    internalMessageWithTypeAndLevel(MessageType::Clear, MessageLevel::Log, exec, WTF::move(arguments), ArgumentNotRequired);
</del><ins>+    internalMessageWithTypeAndLevel(MessageType::Clear, MessageLevel::Log, exec, arguments, ArgumentNotRequired);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ConsoleClient::dir(ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; arguments)
</del><ins>+void ConsoleClient::dir(ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; arguments)
</ins><span class="cx"> {
</span><del>-    internalMessageWithTypeAndLevel(MessageType::Dir, MessageLevel::Log, exec, WTF::move(arguments), ArgumentRequired);
</del><ins>+    internalMessageWithTypeAndLevel(MessageType::Dir, MessageLevel::Log, exec, arguments, ArgumentRequired);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ConsoleClient::dirXML(ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; arguments)
</del><ins>+void ConsoleClient::dirXML(ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; arguments)
</ins><span class="cx"> {
</span><del>-    internalMessageWithTypeAndLevel(MessageType::DirXML, MessageLevel::Log, exec, WTF::move(arguments), ArgumentRequired);
</del><ins>+    internalMessageWithTypeAndLevel(MessageType::DirXML, MessageLevel::Log, exec, arguments, ArgumentRequired);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ConsoleClient::table(ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; arguments)
</del><ins>+void ConsoleClient::table(ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; arguments)
</ins><span class="cx"> {
</span><del>-    internalMessageWithTypeAndLevel(MessageType::Table, MessageLevel::Log, exec, WTF::move(arguments), ArgumentRequired);
</del><ins>+    internalMessageWithTypeAndLevel(MessageType::Table, MessageLevel::Log, exec, arguments, ArgumentRequired);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ConsoleClient::trace(ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; arguments)
</del><ins>+void ConsoleClient::trace(ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; arguments)
</ins><span class="cx"> {
</span><del>-    internalMessageWithTypeAndLevel(MessageType::Trace, MessageLevel::Log, exec, WTF::move(arguments), ArgumentNotRequired);
</del><ins>+    internalMessageWithTypeAndLevel(MessageType::Trace, MessageLevel::Log, exec, arguments, ArgumentNotRequired);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ConsoleClient::assertCondition(ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; arguments, bool condition)
</del><ins>+void ConsoleClient::assertCondition(ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; arguments, bool condition)
</ins><span class="cx"> {
</span><span class="cx">     if (condition)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    internalMessageWithTypeAndLevel(MessageType::Assert, MessageLevel::Error, exec, WTF::move(arguments), ArgumentNotRequired);
</del><ins>+    internalMessageWithTypeAndLevel(MessageType::Assert, MessageLevel::Error, exec, arguments, ArgumentNotRequired);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ConsoleClient::group(ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; arguments)
</del><ins>+void ConsoleClient::group(ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; arguments)
</ins><span class="cx"> {
</span><del>-    internalMessageWithTypeAndLevel(MessageType::StartGroup, MessageLevel::Log, exec, WTF::move(arguments), ArgumentNotRequired);
</del><ins>+    internalMessageWithTypeAndLevel(MessageType::StartGroup, MessageLevel::Log, exec, arguments, ArgumentNotRequired);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ConsoleClient::groupCollapsed(ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; arguments)
</del><ins>+void ConsoleClient::groupCollapsed(ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; arguments)
</ins><span class="cx"> {
</span><del>-    internalMessageWithTypeAndLevel(MessageType::StartGroupCollapsed, MessageLevel::Log, exec, WTF::move(arguments), ArgumentNotRequired);
</del><ins>+    internalMessageWithTypeAndLevel(MessageType::StartGroupCollapsed, MessageLevel::Log, exec, arguments, ArgumentNotRequired);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ConsoleClient::groupEnd(ExecState* exec, RefPtr&lt;ScriptArguments&gt;&amp;&amp; arguments)
</del><ins>+void ConsoleClient::groupEnd(ExecState* exec, PassRefPtr&lt;ScriptArguments&gt; arguments)
</ins><span class="cx"> {
</span><del>-    internalMessageWithTypeAndLevel(MessageType::EndGroup, MessageLevel::Log, exec, WTF::move(arguments), ArgumentNotRequired);
</del><ins>+    internalMessageWithTypeAndLevel(MessageType::EndGroup, MessageLevel::Log, exec, arguments, ArgumentNotRequired);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeConsoleClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ConsoleClient.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ConsoleClient.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/runtime/ConsoleClient.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -42,30 +42,30 @@
</span><span class="cx">     virtual ~ConsoleClient() { }
</span><span class="cx"> 
</span><span class="cx">     JS_EXPORT_PRIVATE static void printConsoleMessage(MessageSource, MessageType, MessageLevel, const String&amp; message, const String&amp; url, unsigned lineNumber, unsigned columnNumber);
</span><del>-    JS_EXPORT_PRIVATE static void printConsoleMessageWithArguments(MessageSource, MessageType, MessageLevel, JSC::ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;);
</del><ins>+    JS_EXPORT_PRIVATE static void printConsoleMessageWithArguments(MessageSource, MessageType, MessageLevel, JSC::ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;);
</ins><span class="cx"> 
</span><del>-    void logWithLevel(ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;, MessageLevel);
-    void clear(ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;);
-    void dir(ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;);
-    void dirXML(ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;);
-    void table(ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;);
-    void trace(ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;);
-    void assertCondition(ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;, bool condition);
-    void group(ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;);
-    void groupCollapsed(ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;);
-    void groupEnd(ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;);
</del><ins>+    void logWithLevel(ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;, MessageLevel);
+    void clear(ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;);
+    void dir(ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;);
+    void dirXML(ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;);
+    void table(ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;);
+    void trace(ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;);
+    void assertCondition(ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;, bool condition);
+    void group(ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;);
+    void groupCollapsed(ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;);
+    void groupEnd(ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;);
</ins><span class="cx"> 
</span><del>-    virtual void messageWithTypeAndLevel(MessageType, MessageLevel, JSC::ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;) = 0;
-    virtual void count(ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;) = 0;
</del><ins>+    virtual void messageWithTypeAndLevel(MessageType, MessageLevel, JSC::ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;) = 0;
+    virtual void count(ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;) = 0;
</ins><span class="cx">     virtual void profile(ExecState*, const String&amp; title) = 0;
</span><span class="cx">     virtual void profileEnd(ExecState*, const String&amp; title) = 0;
</span><span class="cx">     virtual void time(ExecState*, const String&amp; title) = 0;
</span><span class="cx">     virtual void timeEnd(ExecState*, const String&amp; title) = 0;
</span><del>-    virtual void timeStamp(ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;) = 0;
</del><ins>+    virtual void timeStamp(ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;) = 0;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     enum ArgumentRequirement { ArgumentRequired, ArgumentNotRequired };
</span><del>-    void internalMessageWithTypeAndLevel(MessageType, MessageLevel, JSC::ExecState*, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp;, ArgumentRequirement);
</del><ins>+    void internalMessageWithTypeAndLevel(MessageType, MessageLevel, JSC::ExecState*, PassRefPtr&lt;Inspector::ScriptArguments&gt;, ArgumentRequirement);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeTypeSetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/TypeSet.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/TypeSet.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/runtime/TypeSet.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -237,17 +237,17 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><del>-Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::StructureDescription&gt;&gt; TypeSet::allStructureRepresentations() const
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::StructureDescription&gt;&gt; TypeSet::allStructureRepresentations() const
</ins><span class="cx"> {
</span><del>-    auto description = Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::StructureDescription&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::StructureDescription&gt;&gt; description = Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::StructureDescription&gt;::create();
</ins><span class="cx"> 
</span><span class="cx">     for (size_t i = 0; i &lt; m_structureHistory.size(); i++)
</span><span class="cx">         description-&gt;addItem(m_structureHistory.at(i)-&gt;inspectorRepresentation());
</span><span class="cx"> 
</span><del>-    return WTF::move(description);
</del><ins>+    return description.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Inspector::Protocol::Runtime::TypeSet&gt; TypeSet::inspectorTypeSet() const
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Runtime::TypeSet&gt; TypeSet::inspectorTypeSet() const
</ins><span class="cx"> {
</span><span class="cx">     return Inspector::Protocol::Runtime::TypeSet::create()
</span><span class="cx">         .setIsFunction((m_seenTypes &amp; TypeFunction) != TypeNothing)
</span><span class="lines">@@ -511,11 +511,11 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><del>-Ref&lt;Inspector::Protocol::Runtime::StructureDescription&gt; StructureShape::inspectorRepresentation()
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Runtime::StructureDescription&gt; StructureShape::inspectorRepresentation()
</ins><span class="cx"> {
</span><del>-    auto base = Inspector::Protocol::Runtime::StructureDescription::create().release();
-    Ref&lt;Inspector::Protocol::Runtime::StructureDescription&gt; currentObject = base.copyRef();
-    RefPtr&lt;StructureShape&gt; currentShape(this);
</del><ins>+    RefPtr&lt;Inspector::Protocol::Runtime::StructureDescription&gt; base = Inspector::Protocol::Runtime::StructureDescription::create();
+    RefPtr&lt;Inspector::Protocol::Runtime::StructureDescription&gt; currentObject = base;
+    RefPtr&lt;StructureShape&gt; currentShape = this;
</ins><span class="cx"> 
</span><span class="cx">     while (currentShape) {
</span><span class="cx">         auto fields = Inspector::Protocol::Array&lt;String&gt;::create();
</span><span class="lines">@@ -525,21 +525,21 @@
</span><span class="cx">         for (auto field : currentShape-&gt;m_optionalFields)
</span><span class="cx">             optionalFields-&gt;addItem(field.get());
</span><span class="cx"> 
</span><del>-        currentObject-&gt;setFields(&amp;fields.get());
-        currentObject-&gt;setOptionalFields(&amp;optionalFields.get());
</del><ins>+        currentObject-&gt;setFields(fields);
+        currentObject-&gt;setOptionalFields(optionalFields);
</ins><span class="cx">         currentObject-&gt;setConstructorName(currentShape-&gt;m_constructorName);
</span><span class="cx">         currentObject-&gt;setIsImprecise(currentShape-&gt;m_isInDictionaryMode);
</span><span class="cx"> 
</span><span class="cx">         if (currentShape-&gt;m_proto) {
</span><del>-            auto nextObject = Inspector::Protocol::Runtime::StructureDescription::create().release();
-            currentObject-&gt;setPrototypeStructure(&amp;nextObject.get());
-            currentObject = WTF::move(nextObject);
</del><ins>+            RefPtr&lt;Inspector::Protocol::Runtime::StructureDescription&gt; nextObject = Inspector::Protocol::Runtime::StructureDescription::create();
+            currentObject-&gt;setPrototypeStructure(nextObject);
+            currentObject = nextObject;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         currentShape = currentShape-&gt;m_proto;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return WTF::move(base);
</del><ins>+    return base.release();
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeTypeSeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/TypeSet.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/TypeSet.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/JavaScriptCore/runtime/TypeSet.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx">     void addProperty(RefPtr&lt;StringImpl&gt;);
</span><span class="cx">     String stringRepresentation();
</span><span class="cx">     String toJSONString() const;
</span><del>-    Ref&lt;Inspector::Protocol::Runtime::StructureDescription&gt; inspectorRepresentation();
</del><ins>+    PassRefPtr&lt;Inspector::Protocol::Runtime::StructureDescription&gt; inspectorRepresentation();
</ins><span class="cx">     void setConstructorName(String name) { m_constructorName = (name.isEmpty() ? &quot;Object&quot; : name); }
</span><span class="cx">     String constructorName() { return m_constructorName; }
</span><span class="cx">     void setProto(PassRefPtr&lt;StructureShape&gt; shape) { m_proto = shape; }
</span><span class="lines">@@ -102,11 +102,11 @@
</span><span class="cx">     void invalidateCache();
</span><span class="cx">     String dumpTypes() const;
</span><span class="cx">     String displayName() const;
</span><del>-    Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::StructureDescription&gt;&gt; allStructureRepresentations() const;
</del><ins>+    PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::StructureDescription&gt;&gt; allStructureRepresentations() const;
</ins><span class="cx">     String toJSONString() const;
</span><span class="cx">     bool isOverflown() const { return m_isOverflown; }
</span><span class="cx">     String leastCommonAncestor() const;
</span><del>-    Ref&lt;Inspector::Protocol::Runtime::TypeSet&gt; inspectorTypeSet() const;
</del><ins>+    PassRefPtr&lt;Inspector::Protocol::Runtime::TypeSet&gt; inspectorTypeSet() const;
</ins><span class="cx">     bool isEmpty() const { return m_seenTypes == TypeNothing; }
</span><span class="cx">     bool doesTypeConformTo(uint32_t test) const;
</span><span class="cx">     uint32_t seenTypes() const { return m_seenTypes; }
</span></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WTF/ChangeLog        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2015-01-07  Commit Queue  &lt;commit-queue@webkit.org&gt;
+
+        Unreviewed, rolling out r178039.
+        https://bugs.webkit.org/show_bug.cgi?id=140187
+
+        Breaks ObjC Inspector Protocol (Requested by JoePeck on
+        #webkit).
+
+        Reverted changeset:
+
+        &quot;Web Inspector: purge PassRefPtr from Inspector code and use
+        Ref for typed and untyped protocol objects&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=140053
+        http://trac.webkit.org/changeset/178039
+
</ins><span class="cx"> 2015-01-06  Brian J. Burg  &lt;burg@cs.washington.edu&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: purge PassRefPtr from Inspector code and use Ref for typed and untyped protocol objects
</span></span></pre></div>
<a id="trunkSourceWTFwtfStopwatchh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/Stopwatch.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/Stopwatch.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WTF/wtf/Stopwatch.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -33,9 +33,9 @@
</span><span class="cx"> 
</span><span class="cx"> class Stopwatch : public RefCounted&lt;Stopwatch&gt; {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;Stopwatch&gt; create()
</del><ins>+    static PassRefPtr&lt;Stopwatch&gt; create()
</ins><span class="cx">     {
</span><del>-        return adoptRef(*new Stopwatch());
</del><ins>+        return adoptRef(new Stopwatch());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void reset();
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/ChangeLog        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -1,4 +1,18 @@
</span><ins>+2015-01-07  Commit Queue  &lt;commit-queue@webkit.org&gt;
</ins><span class="cx"> 
</span><ins>+        Unreviewed, rolling out r178039.
+        https://bugs.webkit.org/show_bug.cgi?id=140187
+
+        Breaks ObjC Inspector Protocol (Requested by JoePeck on
+        #webkit).
+
+        Reverted changeset:
+
+        &quot;Web Inspector: purge PassRefPtr from Inspector code and use
+        Ref for typed and untyped protocol objects&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=140053
+        http://trac.webkit.org/changeset/178039
+
</ins><span class="cx"> 2015-01-06  Brian J. Burg  &lt;burg@cs.washington.edu&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: purge PassRefPtr from Inspector code and use Ref for typed and untyped protocol objects
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebdatabaseDatabaseManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webdatabase/DatabaseManager.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webdatabase/DatabaseManager.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/Modules/webdatabase/DatabaseManager.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -307,7 +307,7 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;DatabaseContext&gt; databaseContext = databaseContextFor(context);
</span><span class="cx">     databaseContext-&gt;setHasOpenDatabases();
</span><del>-    InspectorInstrumentation::didOpenDatabase(context, database.copyRef(), context-&gt;securityOrigin()-&gt;host(), name, expectedVersion);
</del><ins>+    InspectorInstrumentation::didOpenDatabase(context, database, context-&gt;securityOrigin()-&gt;host(), name, expectedVersion);
</ins><span class="cx"> 
</span><span class="cx">     if (backend-&gt;isNew() &amp;&amp; creationCallback.get()) {
</span><span class="cx">         LOG(StorageAPI, &quot;Scheduling DatabaseCreationCallbackTask for database %p\n&quot;, database.get());
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/dom/Document.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -2614,9 +2614,9 @@
</span><span class="cx">     return m_domWindow.get();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Document::logExceptionToConsole(const String&amp; errorMessage, const String&amp; sourceURL, int lineNumber, int columnNumber, RefPtr&lt;Inspector::ScriptCallStack&gt;&amp;&amp; callStack)
</del><ins>+void Document::logExceptionToConsole(const String&amp; errorMessage, const String&amp; sourceURL, int lineNumber, int columnNumber, PassRefPtr&lt;Inspector::ScriptCallStack&gt; callStack)
</ins><span class="cx"> {
</span><del>-    addMessage(MessageSource::JS, MessageLevel::Error, errorMessage, sourceURL, lineNumber, columnNumber, WTF::move(callStack));
</del><ins>+    addMessage(MessageSource::JS, MessageLevel::Error, errorMessage, sourceURL, lineNumber, columnNumber, callStack);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Document::setURL(const URL&amp; url)
</span><span class="lines">@@ -4975,7 +4975,7 @@
</span><span class="cx">         page-&gt;console().addMessage(source, level, message, requestIdentifier, this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Document::addMessage(MessageSource source, MessageLevel level, const String&amp; message, const String&amp; sourceURL, unsigned lineNumber, unsigned columnNumber, RefPtr&lt;Inspector::ScriptCallStack&gt;&amp;&amp; callStack, JSC::ExecState* state, unsigned long requestIdentifier)
</del><ins>+void Document::addMessage(MessageSource source, MessageLevel level, const String&amp; message, const String&amp; sourceURL, unsigned lineNumber, unsigned columnNumber, PassRefPtr&lt;Inspector::ScriptCallStack&gt; callStack, JSC::ExecState* state, unsigned long requestIdentifier)
</ins><span class="cx"> {
</span><span class="cx">     if (!isContextThread()) {
</span><span class="cx">         postTask(AddConsoleMessageTask(source, level, StringCapture(message)));
</span><span class="lines">@@ -4983,7 +4983,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (Page* page = this-&gt;page())
</span><del>-        page-&gt;console().addMessage(source, level, message, sourceURL, lineNumber, columnNumber, WTF::move(callStack), state, requestIdentifier);
</del><ins>+        page-&gt;console().addMessage(source, level, message, sourceURL, lineNumber, columnNumber, callStack, state, requestIdentifier);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> SecurityOrigin* Document::topOrigin() const
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/dom/Document.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -1179,7 +1179,7 @@
</span><span class="cx">     void sendWillRevealEdgeEventsIfNeeded(const IntPoint&amp; oldPosition, const IntPoint&amp; newPosition, const IntRect&amp; visibleRect, const IntSize&amp; contentsSize, Element* target = nullptr);
</span><span class="cx"> 
</span><span class="cx">     virtual EventTarget* errorEventTarget() override final;
</span><del>-    virtual void logExceptionToConsole(const String&amp; errorMessage, const String&amp; sourceURL, int lineNumber, int columnNumber, RefPtr&lt;Inspector::ScriptCallStack&gt;&amp;&amp;) override final;
</del><ins>+    virtual void logExceptionToConsole(const String&amp; errorMessage, const String&amp; sourceURL, int lineNumber, int columnNumber, PassRefPtr&lt;Inspector::ScriptCallStack&gt;) override final;
</ins><span class="cx"> 
</span><span class="cx">     void initDNSPrefetch();
</span><span class="cx"> 
</span><span class="lines">@@ -1317,7 +1317,7 @@
</span><span class="cx">     virtual void refScriptExecutionContext() override final { ref(); }
</span><span class="cx">     virtual void derefScriptExecutionContext() override final { deref(); }
</span><span class="cx"> 
</span><del>-    virtual void addMessage(MessageSource, MessageLevel, const String&amp; message, const String&amp; sourceURL, unsigned lineNumber, unsigned columnNumber, RefPtr&lt;Inspector::ScriptCallStack&gt;&amp;&amp;, JSC::ExecState* = 0, unsigned long requestIdentifier = 0) override final;
</del><ins>+    virtual void addMessage(MessageSource, MessageLevel, const String&amp; message, const String&amp; sourceURL, unsigned lineNumber, unsigned columnNumber, PassRefPtr&lt;Inspector::ScriptCallStack&gt;, JSC::ExecState* = 0, unsigned long requestIdentifier = 0) override final;
</ins><span class="cx"> 
</span><span class="cx">     virtual double minimumTimerInterval() const override final;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptExecutionContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptExecutionContext.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptExecutionContext.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/dom/ScriptExecutionContext.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -350,25 +350,25 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScriptExecutionContext::reportException(const String&amp; errorMessage, int lineNumber, int columnNumber, const String&amp; sourceURL, RefPtr&lt;ScriptCallStack&gt;&amp;&amp; callStack, CachedScript* cachedScript)
</del><ins>+void ScriptExecutionContext::reportException(const String&amp; errorMessage, int lineNumber, int columnNumber, const String&amp; sourceURL, PassRefPtr&lt;ScriptCallStack&gt; callStack, CachedScript* cachedScript)
</ins><span class="cx"> {
</span><span class="cx">     if (m_inDispatchErrorEvent) {
</span><span class="cx">         if (!m_pendingExceptions)
</span><span class="cx">             m_pendingExceptions = std::make_unique&lt;Vector&lt;std::unique_ptr&lt;PendingException&gt;&gt;&gt;();
</span><del>-        m_pendingExceptions-&gt;append(std::make_unique&lt;PendingException&gt;(errorMessage, lineNumber, columnNumber, sourceURL, callStack.copyRef()));
</del><ins>+        m_pendingExceptions-&gt;append(std::make_unique&lt;PendingException&gt;(errorMessage, lineNumber, columnNumber, sourceURL, callStack));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // First report the original exception and only then all the nested ones.
</span><span class="cx">     if (!dispatchErrorEvent(errorMessage, lineNumber, columnNumber, sourceURL, cachedScript))
</span><del>-        logExceptionToConsole(errorMessage, sourceURL, lineNumber, columnNumber, callStack.copyRef());
</del><ins>+        logExceptionToConsole(errorMessage, sourceURL, lineNumber, columnNumber, callStack);
</ins><span class="cx"> 
</span><span class="cx">     if (!m_pendingExceptions)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;Vector&lt;std::unique_ptr&lt;PendingException&gt;&gt;&gt; pendingExceptions = WTF::move(m_pendingExceptions);
</span><span class="cx">     for (auto&amp; exception : *pendingExceptions)
</span><del>-        logExceptionToConsole(exception-&gt;m_errorMessage, exception-&gt;m_sourceURL, exception-&gt;m_lineNumber, exception-&gt;m_columnNumber, exception-&gt;m_callStack.copyRef());
</del><ins>+        logExceptionToConsole(exception-&gt;m_errorMessage, exception-&gt;m_sourceURL, exception-&gt;m_lineNumber, exception-&gt;m_columnNumber, exception-&gt;m_callStack);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScriptExecutionContext::addConsoleMessage(MessageSource source, MessageLevel level, const String&amp; message, const String&amp; sourceURL, unsigned lineNumber, unsigned columnNumber, JSC::ExecState* state, unsigned long requestIdentifier)
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptExecutionContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptExecutionContext.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptExecutionContext.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/dom/ScriptExecutionContext.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -76,7 +76,7 @@
</span><span class="cx">     virtual void disableEval(const String&amp; errorMessage) = 0;
</span><span class="cx"> 
</span><span class="cx">     bool sanitizeScriptError(String&amp; errorMessage, int&amp; lineNumber, int&amp; columnNumber, String&amp; sourceURL, CachedScript* = nullptr);
</span><del>-    void reportException(const String&amp; errorMessage, int lineNumber, int columnNumber, const String&amp; sourceURL, RefPtr&lt;Inspector::ScriptCallStack&gt;&amp;&amp;, CachedScript* = nullptr);
</del><ins>+    void reportException(const String&amp; errorMessage, int lineNumber, int columnNumber, const String&amp; sourceURL, PassRefPtr&lt;Inspector::ScriptCallStack&gt;, CachedScript* = nullptr);
</ins><span class="cx"> 
</span><span class="cx">     void addConsoleMessage(MessageSource, MessageLevel, const String&amp; message, const String&amp; sourceURL, unsigned lineNumber, unsigned columnNumber, JSC::ExecState* = nullptr, unsigned long requestIdentifier = 0);
</span><span class="cx">     virtual void addConsoleMessage(MessageSource, MessageLevel, const String&amp; message, unsigned long requestIdentifier = 0) = 0;
</span><span class="lines">@@ -198,9 +198,9 @@
</span><span class="cx">     bool hasPendingActivity() const;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    virtual void addMessage(MessageSource, MessageLevel, const String&amp; message, const String&amp; sourceURL, unsigned lineNumber, unsigned columnNumber, RefPtr&lt;Inspector::ScriptCallStack&gt;&amp;&amp;, JSC::ExecState* = nullptr, unsigned long requestIdentifier = 0) = 0;
</del><ins>+    virtual void addMessage(MessageSource, MessageLevel, const String&amp; message, const String&amp; sourceURL, unsigned lineNumber, unsigned columnNumber, PassRefPtr&lt;Inspector::ScriptCallStack&gt;, JSC::ExecState* = nullptr, unsigned long requestIdentifier = 0) = 0;
</ins><span class="cx">     virtual EventTarget* errorEventTarget() = 0;
</span><del>-    virtual void logExceptionToConsole(const String&amp; errorMessage, const String&amp; sourceURL, int lineNumber, int columnNumber, RefPtr&lt;Inspector::ScriptCallStack&gt;&amp;&amp;) = 0;
</del><ins>+    virtual void logExceptionToConsole(const String&amp; errorMessage, const String&amp; sourceURL, int lineNumber, int columnNumber, PassRefPtr&lt;Inspector::ScriptCallStack&gt;) = 0;
</ins><span class="cx">     bool dispatchErrorEvent(const String&amp; errorMessage, int lineNumber, int columnNumber, const String&amp; sourceURL, CachedScript*);
</span><span class="cx"> 
</span><span class="cx">     virtual void refScriptExecutionContext() = 0;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserXSSAuditorDelegatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/XSSAuditorDelegate.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/XSSAuditorDelegate.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/html/parser/XSSAuditorDelegate.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -82,12 +82,12 @@
</span><span class="cx">             httpBody = formData-&gt;flattenToString();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Ref&lt;InspectorObject&gt; reportDetails = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; reportDetails = InspectorObject::create();
</ins><span class="cx">     reportDetails-&gt;setString(&quot;request-url&quot;, xssInfo.m_originalURL);
</span><span class="cx">     reportDetails-&gt;setString(&quot;request-body&quot;, httpBody);
</span><span class="cx"> 
</span><del>-    Ref&lt;InspectorObject&gt; reportObject = InspectorObject::create();
-    reportObject-&gt;setObject(&quot;xss-report&quot;, WTF::move(reportDetails));
</del><ins>+    RefPtr&lt;InspectorObject&gt; reportObject = InspectorObject::create();
+    reportObject-&gt;setObject(&quot;xss-report&quot;, reportDetails.release());
</ins><span class="cx"> 
</span><span class="cx">     return FormData::create(reportObject-&gt;toJSONString().utf8().data());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorCommandLineAPIHostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/CommandLineAPIHost.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/CommandLineAPIHost.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/CommandLineAPIHost.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CommandLineAPIHost::inspectImpl(RefPtr&lt;InspectorValue&gt;&amp;&amp; object, RefPtr&lt;InspectorValue&gt;&amp;&amp; hints)
</del><ins>+void CommandLineAPIHost::inspectImpl(PassRefPtr&lt;InspectorValue&gt; object, PassRefPtr&lt;InspectorValue&gt; hints)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_inspectorAgent)
</span><span class="cx">         return;
</span><span class="lines">@@ -101,8 +101,8 @@
</span><span class="cx">     if (!hints-&gt;asObject(hintsObject))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    auto remoteObject = BindingTraits&lt;Inspector::Protocol::Runtime::RemoteObject&gt;::runtimeCast(WTF::move(object));
-    m_inspectorAgent-&gt;inspect(WTF::move(remoteObject), WTF::move(hintsObject));
</del><ins>+    RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; remoteObject = BindingTraits&lt;Inspector::Protocol::Runtime::RemoteObject&gt;::runtimeCast(object);
+    m_inspectorAgent-&gt;inspect(remoteObject.release(), hintsObject.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CommandLineAPIHost::getEventListenersImpl(Node* node, Vector&lt;EventListenerInfo&gt;&amp; listenersArray)
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorCommandLineAPIHosth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/CommandLineAPIHost.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/CommandLineAPIHost.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/CommandLineAPIHost.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx">     void addInspectedObject(std::unique_ptr&lt;InspectableObject&gt;);
</span><span class="cx">     void clearInspectedObjects();
</span><span class="cx">     InspectableObject* inspectedObject(unsigned index);
</span><del>-    void inspectImpl(RefPtr&lt;Inspector::InspectorValue&gt;&amp;&amp; objectToInspect, RefPtr&lt;Inspector::InspectorValue&gt;&amp;&amp; hints);
</del><ins>+    void inspectImpl(PassRefPtr&lt;Inspector::InspectorValue&gt; objectToInspect, PassRefPtr&lt;Inspector::InspectorValue&gt; hints);
</ins><span class="cx"> 
</span><span class="cx">     void getEventListenersImpl(Node*, Vector&lt;EventListenerInfo&gt;&amp; listenersArray);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorApplicationCacheAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -108,12 +108,11 @@
</span><span class="cx">         ApplicationCacheHost::CacheInfo info = host-&gt;applicationCacheInfo();
</span><span class="cx">         String manifestURL = info.m_manifest.string();
</span><span class="cx">         if (!manifestURL.isEmpty()) {
</span><del>-            Ref&lt;Inspector::Protocol::ApplicationCache::FrameWithManifest&gt; value = Inspector::Protocol::ApplicationCache::FrameWithManifest::create()
</del><ins>+            RefPtr&lt;Inspector::Protocol::ApplicationCache::FrameWithManifest&gt; value = Inspector::Protocol::ApplicationCache::FrameWithManifest::create()
</ins><span class="cx">                 .setFrameId(m_pageAgent-&gt;frameId(frame))
</span><span class="cx">                 .setManifestURL(manifestURL)
</span><del>-                .setStatus(static_cast&lt;int&gt;(host-&gt;status()))
-                .release();
-            result-&gt;addItem(WTF::move(value));
</del><ins>+                .setStatus(static_cast&lt;int&gt;(host-&gt;status()));
+            result-&gt;addItem(value);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -152,7 +151,7 @@
</span><span class="cx">     applicationCache = buildObjectForApplicationCache(resources, info);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Inspector::Protocol::ApplicationCache::ApplicationCache&gt; InspectorApplicationCacheAgent::buildObjectForApplicationCache(const ApplicationCacheHost::ResourceInfoList&amp; applicationCacheResources, const ApplicationCacheHost::CacheInfo&amp; applicationCacheInfo)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::ApplicationCache::ApplicationCache&gt; InspectorApplicationCacheAgent::buildObjectForApplicationCache(const ApplicationCacheHost::ResourceInfoList&amp; applicationCacheResources, const ApplicationCacheHost::CacheInfo&amp; applicationCacheInfo)
</ins><span class="cx"> {
</span><span class="cx">     return Inspector::Protocol::ApplicationCache::ApplicationCache::create()
</span><span class="cx">         .setManifestURL(applicationCacheInfo.m_manifest.string())
</span><span class="lines">@@ -163,17 +162,17 @@
</span><span class="cx">         .release();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::ApplicationCache::ApplicationCacheResource&gt;&gt; InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources(const ApplicationCacheHost::ResourceInfoList&amp; applicationCacheResources)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::ApplicationCache::ApplicationCacheResource&gt;&gt; InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources(const ApplicationCacheHost::ResourceInfoList&amp; applicationCacheResources)
</ins><span class="cx"> {
</span><del>-    auto resources = Inspector::Protocol::Array&lt;Inspector::Protocol::ApplicationCache::ApplicationCacheResource&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::ApplicationCache::ApplicationCacheResource&gt;&gt; resources = Inspector::Protocol::Array&lt;Inspector::Protocol::ApplicationCache::ApplicationCacheResource&gt;::create();
</ins><span class="cx"> 
</span><span class="cx">     for (const auto&amp; resourceInfo : applicationCacheResources)
</span><span class="cx">         resources-&gt;addItem(buildObjectForApplicationCacheResource(resourceInfo));
</span><span class="cx"> 
</span><del>-    return WTF::move(resources);
</del><ins>+    return resources;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Inspector::Protocol::ApplicationCache::ApplicationCacheResource&gt; InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource(const ApplicationCacheHost::ResourceInfo&amp; resourceInfo)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::ApplicationCache::ApplicationCacheResource&gt; InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource(const ApplicationCacheHost::ResourceInfo&amp; resourceInfo)
</ins><span class="cx"> {
</span><span class="cx">     StringBuilder types;
</span><span class="cx"> 
</span><span class="lines">@@ -192,11 +191,11 @@
</span><span class="cx">     if (resourceInfo.m_isExplicit)
</span><span class="cx">         types.appendLiteral(&quot;Explicit &quot;);
</span><span class="cx"> 
</span><del>-    return Inspector::Protocol::ApplicationCache::ApplicationCacheResource::create()
</del><ins>+    RefPtr&lt;Inspector::Protocol::ApplicationCache::ApplicationCacheResource&gt; value = Inspector::Protocol::ApplicationCache::ApplicationCacheResource::create()
</ins><span class="cx">         .setUrl(resourceInfo.m_resource.string())
</span><span class="cx">         .setSize(static_cast&lt;int&gt;(resourceInfo.m_size))
</span><del>-        .setType(types.toString())
-        .release();
</del><ins>+        .setType(types.toString());
+    return value;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorApplicationCacheAgenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorApplicationCacheAgent.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorApplicationCacheAgent.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorApplicationCacheAgent.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -67,9 +67,9 @@
</span><span class="cx">     virtual void getApplicationCacheForFrame(ErrorString&amp;, const String&amp; frameId, RefPtr&lt;Inspector::Protocol::ApplicationCache::ApplicationCache&gt;&amp;) override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    Ref&lt;Inspector::Protocol::ApplicationCache::ApplicationCache&gt; buildObjectForApplicationCache(const ApplicationCacheHost::ResourceInfoList&amp;, const ApplicationCacheHost::CacheInfo&amp;);
-    Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::ApplicationCache::ApplicationCacheResource&gt;&gt; buildArrayForApplicationCacheResources(const ApplicationCacheHost::ResourceInfoList&amp;);
-    Ref&lt;Inspector::Protocol::ApplicationCache::ApplicationCacheResource&gt; buildObjectForApplicationCacheResource(const ApplicationCacheHost::ResourceInfo&amp;);
</del><ins>+    PassRefPtr&lt;Inspector::Protocol::ApplicationCache::ApplicationCache&gt; buildObjectForApplicationCache(const ApplicationCacheHost::ResourceInfoList&amp;, const ApplicationCacheHost::CacheInfo&amp;);
+    PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::ApplicationCache::ApplicationCacheResource&gt;&gt; buildArrayForApplicationCacheResources(const ApplicationCacheHost::ResourceInfoList&amp;);
+    PassRefPtr&lt;Inspector::Protocol::ApplicationCache::ApplicationCacheResource&gt; buildObjectForApplicationCacheResource(const ApplicationCacheHost::ResourceInfo&amp;);
</ins><span class="cx"> 
</span><span class="cx">     DocumentLoader* assertFrameWithDocumentLoader(ErrorString&amp;, String frameId);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorCSSAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -612,42 +612,40 @@
</span><span class="cx"> 
</span><span class="cx">     // Pseudo elements.
</span><span class="cx">     if (!includePseudo || *includePseudo) {
</span><del>-        auto pseudoElements = Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::PseudoIdMatches&gt;::create();
</del><ins>+        RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::PseudoIdMatches&gt;&gt; pseudoElements = Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::PseudoIdMatches&gt;::create();
</ins><span class="cx">         for (PseudoId pseudoId = FIRST_PUBLIC_PSEUDOID; pseudoId &lt; AFTER_LAST_INTERNAL_PSEUDOID; pseudoId = static_cast&lt;PseudoId&gt;(pseudoId + 1)) {
</span><span class="cx">             auto matchedRules = styleResolver.pseudoStyleRulesForElement(element, pseudoId, StyleResolver::AllCSSRules);
</span><span class="cx">             if (!matchedRules.isEmpty()) {
</span><del>-                auto matches = Inspector::Protocol::CSS::PseudoIdMatches::create()
</del><ins>+                RefPtr&lt;Inspector::Protocol::CSS::PseudoIdMatches&gt; matches = Inspector::Protocol::CSS::PseudoIdMatches::create()
</ins><span class="cx">                     .setPseudoId(static_cast&lt;int&gt;(pseudoId))
</span><del>-                    .setMatches(buildArrayForMatchedRuleList(matchedRules, styleResolver, element))
-                    .release();
-                pseudoElements-&gt;addItem(WTF::move(matches));
</del><ins>+                    .setMatches(buildArrayForMatchedRuleList(matchedRules, styleResolver, element));
+                pseudoElements-&gt;addItem(matches.release());
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        pseudoIdMatches = WTF::move(pseudoElements);
</del><ins>+        pseudoIdMatches = pseudoElements.release();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Inherited styles.
</span><span class="cx">     if (!includeInherited || *includeInherited) {
</span><del>-        auto entries = Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::InheritedStyleEntry&gt;::create();
</del><ins>+        RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::InheritedStyleEntry&gt;&gt; entries = Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::InheritedStyleEntry&gt;::create();
</ins><span class="cx">         Element* parentElement = element-&gt;parentElement();
</span><span class="cx">         while (parentElement) {
</span><span class="cx">             StyleResolver&amp; parentStyleResolver = parentElement-&gt;document().ensureStyleResolver();
</span><span class="cx">             auto parentMatchedRules = parentStyleResolver.styleRulesForElement(parentElement, StyleResolver::AllCSSRules);
</span><del>-            auto entry = Inspector::Protocol::CSS::InheritedStyleEntry::create()
-                .setMatchedCSSRules(buildArrayForMatchedRuleList(parentMatchedRules, styleResolver, parentElement))
-                .release();
</del><ins>+            RefPtr&lt;Inspector::Protocol::CSS::InheritedStyleEntry&gt; entry = Inspector::Protocol::CSS::InheritedStyleEntry::create()
+                .setMatchedCSSRules(buildArrayForMatchedRuleList(parentMatchedRules, styleResolver, parentElement));
</ins><span class="cx">             if (parentElement-&gt;style() &amp;&amp; parentElement-&gt;style()-&gt;length()) {
</span><span class="cx">                 InspectorStyleSheetForInlineStyle* styleSheet = asInspectorStyleSheet(parentElement);
</span><span class="cx">                 if (styleSheet)
</span><span class="cx">                     entry-&gt;setInlineStyle(styleSheet-&gt;buildObjectForStyle(styleSheet-&gt;styleForId(InspectorCSSId(styleSheet-&gt;id(), 0))));
</span><span class="cx">             }
</span><span class="cx"> 
</span><del>-            entries-&gt;addItem(WTF::move(entry));
</del><ins>+            entries-&gt;addItem(entry.release());
</ins><span class="cx">             parentElement = parentElement-&gt;parentElement();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        inheritedEntries = WTF::move(entries);
</del><ins>+        inheritedEntries = entries.release();
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -673,7 +671,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;CSSComputedStyleDeclaration&gt; computedStyleInfo = CSSComputedStyleDeclaration::create(element, true);
</span><del>-    Ref&lt;InspectorStyle&gt; inspectorStyle = InspectorStyle::create(InspectorCSSId(), computedStyleInfo, nullptr);
</del><ins>+    RefPtr&lt;InspectorStyle&gt; inspectorStyle = InspectorStyle::create(InspectorCSSId(), computedStyleInfo, nullptr);
</ins><span class="cx">     style = inspectorStyle-&gt;buildArrayForComputedStyle();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -720,9 +718,9 @@
</span><span class="cx">     errorString = InspectorDOMAgent::toErrorString(ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorCSSAgent::setStyleText(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp;&amp; fullStyleId, const String&amp; text, RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt;&amp; result)
</del><ins>+void InspectorCSSAgent::setStyleText(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp; fullStyleId, const String&amp; text, RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt;&amp; result)
</ins><span class="cx"> {
</span><del>-    InspectorCSSId compoundId(fullStyleId.copyRef());
</del><ins>+    InspectorCSSId compoundId(fullStyleId);
</ins><span class="cx">     ASSERT(!compoundId.isEmpty());
</span><span class="cx"> 
</span><span class="cx">     InspectorStyleSheet* inspectorStyleSheet = assertStyleSheetForId(errorString, compoundId.styleSheetId());
</span><span class="lines">@@ -736,9 +734,9 @@
</span><span class="cx">     errorString = InspectorDOMAgent::toErrorString(ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorCSSAgent::setPropertyText(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp;&amp; fullStyleId, int propertyIndex, const String&amp; text, bool overwrite, RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt;&amp; result)
</del><ins>+void InspectorCSSAgent::setPropertyText(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp; fullStyleId, int propertyIndex, const String&amp; text, bool overwrite, RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt;&amp; result)
</ins><span class="cx"> {
</span><del>-    InspectorCSSId compoundId(fullStyleId.copyRef());
</del><ins>+    InspectorCSSId compoundId(fullStyleId);
</ins><span class="cx">     ASSERT(!compoundId.isEmpty());
</span><span class="cx"> 
</span><span class="cx">     InspectorStyleSheet* inspectorStyleSheet = assertStyleSheetForId(errorString, compoundId.styleSheetId());
</span><span class="lines">@@ -752,9 +750,9 @@
</span><span class="cx">     errorString = InspectorDOMAgent::toErrorString(ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorCSSAgent::toggleProperty(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp;&amp; fullStyleId, int propertyIndex, bool disable, RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt;&amp; result)
</del><ins>+void InspectorCSSAgent::toggleProperty(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp; fullStyleId, int propertyIndex, bool disable, RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt;&amp; result)
</ins><span class="cx"> {
</span><del>-    InspectorCSSId compoundId(fullStyleId.copyRef());
</del><ins>+    InspectorCSSId compoundId(fullStyleId);
</ins><span class="cx">     ASSERT(!compoundId.isEmpty());
</span><span class="cx"> 
</span><span class="cx">     InspectorStyleSheet* inspectorStyleSheet = assertStyleSheetForId(errorString, compoundId.styleSheetId());
</span><span class="lines">@@ -768,9 +766,9 @@
</span><span class="cx">     errorString = InspectorDOMAgent::toErrorString(ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorCSSAgent::setRuleSelector(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp;&amp; fullRuleId, const String&amp; selector, RefPtr&lt;Inspector::Protocol::CSS::CSSRule&gt;&amp; result)
</del><ins>+void InspectorCSSAgent::setRuleSelector(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp; fullRuleId, const String&amp; selector, RefPtr&lt;Inspector::Protocol::CSS::CSSRule&gt;&amp; result)
</ins><span class="cx"> {
</span><del>-    InspectorCSSId compoundId(fullRuleId.copyRef());
</del><ins>+    InspectorCSSId compoundId(fullRuleId);
</ins><span class="cx">     ASSERT(!compoundId.isEmpty());
</span><span class="cx"> 
</span><span class="cx">     InspectorStyleSheet* inspectorStyleSheet = assertStyleSheetForId(errorString, compoundId.styleSheetId());
</span><span class="lines">@@ -813,30 +811,29 @@
</span><span class="cx"> 
</span><span class="cx"> void InspectorCSSAgent::getSupportedCSSProperties(ErrorString&amp;, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::CSSPropertyInfo&gt;&gt;&amp; cssProperties)
</span><span class="cx"> {
</span><del>-    auto properties = Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::CSSPropertyInfo&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::CSSPropertyInfo&gt;&gt; properties = Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::CSSPropertyInfo&gt;::create();
</ins><span class="cx">     for (int i = firstCSSProperty; i &lt;= lastCSSProperty; ++i) {
</span><span class="cx">         CSSPropertyID id = convertToCSSPropertyID(i);
</span><del>-        auto property = Inspector::Protocol::CSS::CSSPropertyInfo::create()
-            .setName(getPropertyNameString(id))
-            .release();
</del><ins>+        RefPtr&lt;Inspector::Protocol::CSS::CSSPropertyInfo&gt; property = Inspector::Protocol::CSS::CSSPropertyInfo::create()
+            .setName(getPropertyNameString(id));
</ins><span class="cx"> 
</span><span class="cx">         const StylePropertyShorthand&amp; shorthand = shorthandForProperty(id);
</span><span class="cx">         if (!shorthand.length()) {
</span><del>-            properties-&gt;addItem(WTF::move(property));
</del><ins>+            properties-&gt;addItem(property.release());
</ins><span class="cx">             continue;
</span><span class="cx">         }
</span><del>-        auto longhands = Inspector::Protocol::Array&lt;String&gt;::create();
</del><ins>+        RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; longhands = Inspector::Protocol::Array&lt;String&gt;::create();
</ins><span class="cx">         for (unsigned j = 0; j &lt; shorthand.length(); ++j) {
</span><span class="cx">             CSSPropertyID longhandID = shorthand.properties()[j];
</span><span class="cx">             longhands-&gt;addItem(getPropertyNameString(longhandID));
</span><span class="cx">         }
</span><del>-        property-&gt;setLonghands(WTF::move(longhands));
-        properties-&gt;addItem(WTF::move(property));
</del><ins>+        property-&gt;setLonghands(longhands.release());
+        properties-&gt;addItem(property.release());
</ins><span class="cx">     }
</span><del>-    cssProperties = WTF::move(properties);
</del><ins>+    cssProperties = properties.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorCSSAgent::forcePseudoState(ErrorString&amp; errorString, int nodeId, const RefPtr&lt;InspectorArray&gt;&amp;&amp; forcedPseudoClasses)
</del><ins>+void InspectorCSSAgent::forcePseudoState(ErrorString&amp; errorString, int nodeId, const RefPtr&lt;InspectorArray&gt;&amp; forcedPseudoClasses)
</ins><span class="cx"> {
</span><span class="cx">     Element* element = m_domAgent-&gt;assertElement(errorString, nodeId);
</span><span class="cx">     if (!element)
</span><span class="lines">@@ -865,12 +862,12 @@
</span><span class="cx">     m_namedFlowCollectionsRequested.add(documentNodeId);
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;RefPtr&lt;WebKitNamedFlow&gt;&gt; namedFlowsVector = document-&gt;namedFlows().namedFlows();
</span><del>-    auto namedFlows = Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::NamedFlow&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::NamedFlow&gt;&gt; namedFlows = Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::NamedFlow&gt;::create();
</ins><span class="cx"> 
</span><span class="cx">     for (Vector&lt;RefPtr&lt;WebKitNamedFlow&gt;&gt;::iterator it = namedFlowsVector.begin(); it != namedFlowsVector.end(); ++it)
</span><span class="cx">         namedFlows-&gt;addItem(buildObjectForNamedFlow(errorString, it-&gt;get(), documentNodeId));
</span><span class="cx"> 
</span><del>-    result = WTF::move(namedFlows);
</del><ins>+    result = namedFlows.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> InspectorStyleSheetForInlineStyle* InspectorCSSAgent::asInspectorStyleSheet(Element* element)
</span><span class="lines">@@ -1003,7 +1000,7 @@
</span><span class="cx"> 
</span><span class="cx"> Inspector::Protocol::CSS::StyleSheetOrigin InspectorCSSAgent::detectOrigin(CSSStyleSheet* pageStyleSheet, Document* ownerDocument)
</span><span class="cx"> {
</span><del>-    auto origin = Inspector::Protocol::CSS::StyleSheetOrigin::Regular;
</del><ins>+    Inspector::Protocol::CSS::StyleSheetOrigin origin = Inspector::Protocol::CSS::StyleSheetOrigin::Regular;
</ins><span class="cx">     if (pageStyleSheet &amp;&amp; !pageStyleSheet-&gt;ownerNode() &amp;&amp; pageStyleSheet-&gt;href().isEmpty())
</span><span class="cx">         origin = Inspector::Protocol::CSS::StyleSheetOrigin::UserAgent;
</span><span class="cx">     else if (pageStyleSheet &amp;&amp; pageStyleSheet-&gt;ownerNode() &amp;&amp; pageStyleSheet-&gt;ownerNode()-&gt;nodeName() == &quot;#document&quot;)
</span><span class="lines">@@ -1016,7 +1013,7 @@
</span><span class="cx">     return origin;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Inspector::Protocol::CSS::CSSRule&gt; InspectorCSSAgent::buildObjectForRule(StyleRule* styleRule, StyleResolver&amp; styleResolver)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::CSS::CSSRule&gt; InspectorCSSAgent::buildObjectForRule(StyleRule* styleRule, StyleResolver&amp; styleResolver)
</ins><span class="cx"> {
</span><span class="cx">     if (!styleRule)
</span><span class="cx">         return nullptr;
</span><span class="lines">@@ -1030,7 +1027,7 @@
</span><span class="cx">     return inspectorStyleSheet ? inspectorStyleSheet-&gt;buildObjectForRule(cssomWrapper) : nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Inspector::Protocol::CSS::CSSRule&gt; InspectorCSSAgent::buildObjectForRule(CSSStyleRule* rule)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::CSS::CSSRule&gt; InspectorCSSAgent::buildObjectForRule(CSSStyleRule* rule)
</ins><span class="cx"> {
</span><span class="cx">     if (!rule)
</span><span class="cx">         return nullptr;
</span><span class="lines">@@ -1040,9 +1037,9 @@
</span><span class="cx">     return inspectorStyleSheet ? inspectorStyleSheet-&gt;buildObjectForRule(rule) : nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::RuleMatch&gt;&gt; InspectorCSSAgent::buildArrayForMatchedRuleList(const Vector&lt;RefPtr&lt;StyleRule&gt;&gt;&amp; matchedRules, StyleResolver&amp; styleResolver, Element* element)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::RuleMatch&gt;&gt; InspectorCSSAgent::buildArrayForMatchedRuleList(const Vector&lt;RefPtr&lt;StyleRule&gt;&gt;&amp; matchedRules, StyleResolver&amp; styleResolver, Element* element)
</ins><span class="cx"> {
</span><del>-    auto result = Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::RuleMatch&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::RuleMatch&gt;&gt; result = Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::RuleMatch&gt;::create();
</ins><span class="cx"> 
</span><span class="cx">     SelectorChecker::CheckingContext context(SelectorChecker::Mode::CollectingRules);
</span><span class="cx">     SelectorChecker selectorChecker(element-&gt;document());
</span><span class="lines">@@ -1052,7 +1049,7 @@
</span><span class="cx">         if (!ruleObject)
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        auto matchingSelectors = Inspector::Protocol::Array&lt;int&gt;::create();
</del><ins>+        RefPtr&lt;Inspector::Protocol::Array&lt;int&gt;&gt; matchingSelectors = Inspector::Protocol::Array&lt;int&gt;::create();
</ins><span class="cx">         const CSSSelectorList&amp; selectorList = matchedRule-&gt;selectorList();
</span><span class="cx">         long index = 0;
</span><span class="cx">         for (const CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(selector)) {
</span><span class="lines">@@ -1063,17 +1060,16 @@
</span><span class="cx">             ++index;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        auto match = Inspector::Protocol::CSS::RuleMatch::create()
-            .setRule(WTF::move(ruleObject))
-            .setMatchingSelectors(WTF::move(matchingSelectors))
-            .release();
-        result-&gt;addItem(WTF::move(match));
</del><ins>+        RefPtr&lt;Inspector::Protocol::CSS::RuleMatch&gt; match = Inspector::Protocol::CSS::RuleMatch::create()
+            .setRule(ruleObject.release())
+            .setMatchingSelectors(matchingSelectors.release());
+        result-&gt;addItem(match.release());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return WTF::move(result);
</del><ins>+    return result.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt; InspectorCSSAgent::buildObjectForAttributesStyle(Element* element)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt; InspectorCSSAgent::buildObjectForAttributesStyle(Element* element)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(element);
</span><span class="cx">     if (!is&lt;StyledElement&gt;(*element))
</span><span class="lines">@@ -1087,13 +1083,13 @@
</span><span class="cx">     ASSERT_WITH_SECURITY_IMPLICATION(attributeStyle-&gt;isMutable());
</span><span class="cx">     MutableStyleProperties* mutableAttributeStyle = static_cast&lt;MutableStyleProperties*&gt;(attributeStyle);
</span><span class="cx"> 
</span><del>-    Ref&lt;InspectorStyle&gt; inspectorStyle = InspectorStyle::create(InspectorCSSId(), mutableAttributeStyle-&gt;ensureCSSStyleDeclaration(), nullptr);
</del><ins>+    RefPtr&lt;InspectorStyle&gt; inspectorStyle = InspectorStyle::create(InspectorCSSId(), mutableAttributeStyle-&gt;ensureCSSStyleDeclaration(), nullptr);
</ins><span class="cx">     return inspectorStyle-&gt;buildObjectForStyle();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::Region&gt;&gt; InspectorCSSAgent::buildArrayForRegions(ErrorString&amp; errorString, RefPtr&lt;NodeList&gt;&amp;&amp; regionList, int documentNodeId)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::Region&gt;&gt; InspectorCSSAgent::buildArrayForRegions(ErrorString&amp; errorString, PassRefPtr&lt;NodeList&gt; regionList, int documentNodeId)
</ins><span class="cx"> {
</span><del>-    auto regions = Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::Region&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::Region&gt;&gt; regions = Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::Region&gt;::create();
</ins><span class="cx"> 
</span><span class="cx">     for (unsigned i = 0; i &lt; regionList-&gt;length(); ++i) {
</span><span class="cx">         Inspector::Protocol::CSS::Region::RegionOverset regionOverset;
</span><span class="lines">@@ -1115,22 +1111,21 @@
</span><span class="cx">             continue;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        auto region = Inspector::Protocol::CSS::Region::create()
</del><ins>+        RefPtr&lt;Inspector::Protocol::CSS::Region&gt; region = Inspector::Protocol::CSS::Region::create()
</ins><span class="cx">             .setRegionOverset(regionOverset)
</span><span class="cx">             // documentNodeId was previously asserted
</span><del>-            .setNodeId(m_domAgent-&gt;pushNodeToFrontend(errorString, documentNodeId, regionList-&gt;item(i)))
-            .release();
</del><ins>+            .setNodeId(m_domAgent-&gt;pushNodeToFrontend(errorString, documentNodeId, regionList-&gt;item(i)));
</ins><span class="cx"> 
</span><del>-        regions-&gt;addItem(WTF::move(region));
</del><ins>+        regions-&gt;addItem(region.release());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return WTF::move(regions);
</del><ins>+    return regions.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Inspector::Protocol::CSS::NamedFlow&gt; InspectorCSSAgent::buildObjectForNamedFlow(ErrorString&amp; errorString, WebKitNamedFlow* webkitNamedFlow, int documentNodeId)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::CSS::NamedFlow&gt; InspectorCSSAgent::buildObjectForNamedFlow(ErrorString&amp; errorString, WebKitNamedFlow* webkitNamedFlow, int documentNodeId)
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;NodeList&gt; contentList = webkitNamedFlow-&gt;getContent();
</span><del>-    auto content = Inspector::Protocol::Array&lt;int&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;int&gt;&gt; content = Inspector::Protocol::Array&lt;int&gt;::create();
</ins><span class="cx"> 
</span><span class="cx">     for (unsigned i = 0; i &lt; contentList-&gt;length(); ++i) {
</span><span class="cx">         // documentNodeId was previously asserted
</span><span class="lines">@@ -1141,7 +1136,7 @@
</span><span class="cx">         .setDocumentNodeId(documentNodeId)
</span><span class="cx">         .setName(webkitNamedFlow-&gt;name().string())
</span><span class="cx">         .setOverset(webkitNamedFlow-&gt;overset())
</span><del>-        .setContent(WTF::move(content))
</del><ins>+        .setContent(content.release())
</ins><span class="cx">         .setRegions(buildArrayForRegions(errorString, webkitNamedFlow-&gt;getRegions(), documentNodeId))
</span><span class="cx">         .release();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorCSSAgenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorCSSAgent.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorCSSAgent.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorCSSAgent.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> #include &lt;inspector/InspectorValues.h&gt;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="cx"> #include &lt;wtf/HashSet.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/RefPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -117,13 +118,13 @@
</span><span class="cx">     virtual void getStyleSheet(ErrorString&amp;, const String&amp; styleSheetId, RefPtr&lt;Inspector::Protocol::CSS::CSSStyleSheetBody&gt;&amp; result) override;
</span><span class="cx">     virtual void getStyleSheetText(ErrorString&amp;, const String&amp; styleSheetId, String* result) override;
</span><span class="cx">     virtual void setStyleSheetText(ErrorString&amp;, const String&amp; styleSheetId, const String&amp; text) override;
</span><del>-    virtual void setStyleText(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; styleId, const String&amp; text, RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt;&amp; result) override;
-    virtual void setPropertyText(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; styleId, int propertyIndex, const String&amp; text, bool overwrite, RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt;&amp; result) override;
-    virtual void toggleProperty(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; styleId, int propertyIndex, bool disable, RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt;&amp; result) override;
-    virtual void setRuleSelector(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; ruleId, const String&amp; selector, RefPtr&lt;Inspector::Protocol::CSS::CSSRule&gt;&amp; result) override;
</del><ins>+    virtual void setStyleText(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; styleId, const String&amp; text, RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt;&amp; result) override;
+    virtual void setPropertyText(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; styleId, int propertyIndex, const String&amp; text, bool overwrite, RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt;&amp; result) override;
+    virtual void toggleProperty(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; styleId, int propertyIndex, bool disable, RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt;&amp; result) override;
+    virtual void setRuleSelector(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; ruleId, const String&amp; selector, RefPtr&lt;Inspector::Protocol::CSS::CSSRule&gt;&amp; result) override;
</ins><span class="cx">     virtual void addRule(ErrorString&amp;, int contextNodeId, const String&amp; selector, RefPtr&lt;Inspector::Protocol::CSS::CSSRule&gt;&amp; result) override;
</span><span class="cx">     virtual void getSupportedCSSProperties(ErrorString&amp;, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::CSSPropertyInfo&gt;&gt;&amp; result) override;
</span><del>-    virtual void forcePseudoState(ErrorString&amp;, int nodeId, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; forcedPseudoClasses) override;
</del><ins>+    virtual void forcePseudoState(ErrorString&amp;, int nodeId, const RefPtr&lt;Inspector::InspectorArray&gt;&amp; forcedPseudoClasses) override;
</ins><span class="cx">     virtual void getNamedFlowCollection(ErrorString&amp;, int documentNodeId, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::NamedFlow&gt;&gt;&amp; result) override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="lines">@@ -152,12 +153,12 @@
</span><span class="cx">     InspectorStyleSheet* assertStyleSheetForId(ErrorString&amp;, const String&amp;);
</span><span class="cx">     Inspector::Protocol::CSS::StyleSheetOrigin detectOrigin(CSSStyleSheet* pageStyleSheet, Document* ownerDocument);
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Inspector::Protocol::CSS::CSSRule&gt; buildObjectForRule(StyleRule*, StyleResolver&amp;);
-    RefPtr&lt;Inspector::Protocol::CSS::CSSRule&gt; buildObjectForRule(CSSStyleRule*);
-    RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::RuleMatch&gt;&gt; buildArrayForMatchedRuleList(const Vector&lt;RefPtr&lt;StyleRule&gt;&gt;&amp;, StyleResolver&amp;, Element*);
-    RefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt; buildObjectForAttributesStyle(Element*);
-    RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::Region&gt;&gt; buildArrayForRegions(ErrorString&amp;, RefPtr&lt;NodeList&gt;&amp;&amp;, int documentNodeId);
-    RefPtr&lt;Inspector::Protocol::CSS::NamedFlow&gt; buildObjectForNamedFlow(ErrorString&amp;, WebKitNamedFlow*, int documentNodeId);
</del><ins>+    PassRefPtr&lt;Inspector::Protocol::CSS::CSSRule&gt; buildObjectForRule(StyleRule*, StyleResolver&amp;);
+    PassRefPtr&lt;Inspector::Protocol::CSS::CSSRule&gt; buildObjectForRule(CSSStyleRule*);
+    PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::RuleMatch&gt;&gt; buildArrayForMatchedRuleList(const Vector&lt;RefPtr&lt;StyleRule&gt;&gt;&amp;, StyleResolver&amp;, Element*);
+    PassRefPtr&lt;Inspector::Protocol::CSS::CSSStyle&gt; buildObjectForAttributesStyle(Element*);
+    PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::CSS::Region&gt;&gt; buildArrayForRegions(ErrorString&amp;, PassRefPtr&lt;NodeList&gt;, int documentNodeId);
+    PassRefPtr&lt;Inspector::Protocol::CSS::NamedFlow&gt; buildObjectForNamedFlow(ErrorString&amp;, WebKitNamedFlow*, int documentNodeId);
</ins><span class="cx"> 
</span><span class="cx">     // InspectorDOMAgent::DOMListener implementation
</span><span class="cx">     virtual void didRemoveDocument(Document*) override;
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorConsoleInstrumentationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorConsoleInstrumentation.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorConsoleInstrumentation.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorConsoleInstrumentation.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -35,14 +35,15 @@
</span><span class="cx"> #include &quot;ScriptProfile.h&quot;
</span><span class="cx"> #include &lt;inspector/ScriptArguments.h&gt;
</span><span class="cx"> #include &lt;inspector/ScriptCallStack.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-inline void InspectorInstrumentation::addMessageToConsole(Page&amp; page, MessageSource source, MessageType type, MessageLevel level, const String&amp; message, RefPtr&lt;Inspector::ScriptCallStack&gt;&amp;&amp; callStack, unsigned long requestIdentifier)
</del><ins>+inline void InspectorInstrumentation::addMessageToConsole(Page&amp; page, MessageSource source, MessageType type, MessageLevel level, const String&amp; message, PassRefPtr&lt;Inspector::ScriptCallStack&gt; callStack, unsigned long requestIdentifier)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx">     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForPage(page))
</span><del>-        addMessageToConsoleImpl(*instrumentingAgents, source, type, level, message, WTF::move(callStack), requestIdentifier);
</del><ins>+        addMessageToConsoleImpl(*instrumentingAgents, source, type, level, message, callStack, requestIdentifier);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(page);
</span><span class="cx">     UNUSED_PARAM(source);
</span><span class="lines">@@ -54,11 +55,11 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void InspectorInstrumentation::addMessageToConsole(Page&amp; page, MessageSource source, MessageType type, MessageLevel level, const String&amp; message, JSC::ExecState* state, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp; arguments, unsigned long requestIdentifier)
</del><ins>+inline void InspectorInstrumentation::addMessageToConsole(Page&amp; page, MessageSource source, MessageType type, MessageLevel level, const String&amp; message, JSC::ExecState* state, PassRefPtr&lt;Inspector::ScriptArguments&gt; arguments, unsigned long requestIdentifier)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx">     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForPage(page))
</span><del>-        addMessageToConsoleImpl(*instrumentingAgents, source, type, level, message, state, WTF::move(arguments), requestIdentifier);
</del><ins>+        addMessageToConsoleImpl(*instrumentingAgents, source, type, level, message, state, arguments, requestIdentifier);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(page);
</span><span class="cx">     UNUSED_PARAM(source);
</span><span class="lines">@@ -90,11 +91,11 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void InspectorInstrumentation::addMessageToConsole(WorkerGlobalScope* workerGlobalScope, MessageSource source, MessageType type, MessageLevel level, const String&amp; message, RefPtr&lt;Inspector::ScriptCallStack&gt;&amp;&amp; callStack, unsigned long requestIdentifier)
</del><ins>+inline void InspectorInstrumentation::addMessageToConsole(WorkerGlobalScope* workerGlobalScope, MessageSource source, MessageType type, MessageLevel level, const String&amp; message, PassRefPtr&lt;Inspector::ScriptCallStack&gt; callStack, unsigned long requestIdentifier)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx">     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForWorkerGlobalScope(workerGlobalScope))
</span><del>-        addMessageToConsoleImpl(*instrumentingAgents, source, type, level, message, WTF::move(callStack), requestIdentifier);
</del><ins>+        addMessageToConsoleImpl(*instrumentingAgents, source, type, level, message, callStack, requestIdentifier);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(workerGlobalScope);
</span><span class="cx">     UNUSED_PARAM(source);
</span><span class="lines">@@ -125,11 +126,11 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void InspectorInstrumentation::consoleCount(Page&amp; page, JSC::ExecState* state, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp; arguments)
</del><ins>+inline void InspectorInstrumentation::consoleCount(Page&amp; page, JSC::ExecState* state, PassRefPtr&lt;Inspector::ScriptArguments&gt; arguments)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx">     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForPage(page))
</span><del>-        consoleCountImpl(*instrumentingAgents, state, WTF::move(arguments));
</del><ins>+        consoleCountImpl(*instrumentingAgents, state, arguments);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(page);
</span><span class="cx">     UNUSED_PARAM(state);
</span><span class="lines">@@ -148,11 +149,11 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void InspectorInstrumentation::stopConsoleTiming(Frame&amp; frame, const String&amp; title, RefPtr&lt;Inspector::ScriptCallStack&gt;&amp;&amp; stack)
</del><ins>+inline void InspectorInstrumentation::stopConsoleTiming(Frame&amp; frame, const String&amp; title, PassRefPtr&lt;Inspector::ScriptCallStack&gt; stack)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx">     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForFrame(frame))
</span><del>-        stopConsoleTimingImpl(*instrumentingAgents, frame, title, WTF::move(stack));
</del><ins>+        stopConsoleTimingImpl(*instrumentingAgents, frame, title, stack);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(frame);
</span><span class="cx">     UNUSED_PARAM(title);
</span><span class="lines">@@ -160,12 +161,12 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void InspectorInstrumentation::consoleTimeStamp(Frame&amp; frame, RefPtr&lt;Inspector::ScriptArguments&gt;&amp;&amp; arguments)
</del><ins>+inline void InspectorInstrumentation::consoleTimeStamp(Frame&amp; frame, PassRefPtr&lt;Inspector::ScriptArguments&gt; arguments)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx">     FAST_RETURN_IF_NO_FRONTENDS(void());
</span><span class="cx">     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForFrame(frame))
</span><del>-        consoleTimeStampImpl(*instrumentingAgents, frame, WTF::move(arguments));
</del><ins>+        consoleTimeStampImpl(*instrumentingAgents, frame, arguments);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(frame);
</span><span class="cx">     UNUSED_PARAM(arguments);
</span><span class="lines">@@ -184,7 +185,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline RefPtr&lt;JSC::Profile&gt; InspectorInstrumentation::stopProfiling(Page&amp; page, JSC::ExecState* exec, const String &amp;title)
</del><ins>+inline PassRefPtr&lt;JSC::Profile&gt; InspectorInstrumentation::stopProfiling(Page&amp; page, JSC::ExecState* exec, const String &amp;title)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx">     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForPage(page))
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorController.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorController.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorController.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -330,7 +330,7 @@
</span><span class="cx">     m_overlay-&gt;getHighlight(highlight, coordinateSystem);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;InspectorObject&gt; InspectorController::buildObjectForHighlightedNode() const
</del><ins>+PassRefPtr&lt;InspectorObject&gt; InspectorController::buildObjectForHighlightedNode() const
</ins><span class="cx"> {
</span><span class="cx">     return m_overlay-&gt;buildObjectForHighlightedNode();
</span><span class="cx"> }
</span><span class="lines">@@ -454,9 +454,9 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Stopwatch&gt; InspectorController::executionStopwatch()
</del><ins>+PassRefPtr&lt;Stopwatch&gt; InspectorController::executionStopwatch()
</ins><span class="cx"> {
</span><del>-    return m_executionStopwatch.copyRef();
</del><ins>+    return m_executionStopwatch;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorController.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorController.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorController.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx"> 
</span><span class="cx">     void setIndicating(bool);
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT RefPtr&lt;Inspector::InspectorObject&gt; buildObjectForHighlightedNode() const;
</del><ins>+    WEBCORE_EXPORT PassRefPtr&lt;Inspector::InspectorObject&gt; buildObjectForHighlightedNode() const;
</ins><span class="cx"> 
</span><span class="cx">     bool isUnderTest() const { return m_isUnderTest; }
</span><span class="cx">     void setIsUnderTest(bool isUnderTest) { m_isUnderTest = isUnderTest; }
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx">     virtual void willCallInjectedScriptFunction(JSC::ExecState*, const String&amp; scriptName, int scriptLine) override;
</span><span class="cx">     virtual void didCallInjectedScriptFunction(JSC::ExecState*) override;
</span><span class="cx">     virtual void frontendInitialized() override;
</span><del>-    virtual Ref&lt;WTF::Stopwatch&gt; executionStopwatch() override;
</del><ins>+    virtual PassRefPtr&lt;WTF::Stopwatch&gt; executionStopwatch() override;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     friend class InspectorInstrumentation;
</span><span class="lines">@@ -150,7 +150,7 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Inspector::InspectorBackendDispatcher&gt; m_inspectorBackendDispatcher;
</span><span class="cx">     Inspector::InspectorFrontendChannel* m_inspectorFrontendChannel;
</span><del>-    Ref&lt;WTF::Stopwatch&gt; m_executionStopwatch;
</del><ins>+    RefPtr&lt;WTF::Stopwatch&gt; m_executionStopwatch;
</ins><span class="cx">     Page&amp; m_page;
</span><span class="cx">     InspectorClient* m_inspectorClient;
</span><span class="cx">     InspectorFrontendClient* m_inspectorFrontendClient;
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx"> static const size_t maxTextSize = 10000;
</span><span class="cx"> static const UChar ellipsisUChar[] = { 0x2026, 0 };
</span><span class="cx"> 
</span><del>-static Color parseColor(const RefPtr&lt;InspectorObject&gt;&amp;&amp; colorObject)
</del><ins>+static Color parseColor(const PassRefPtr&lt;InspectorObject&gt; colorObject)
</ins><span class="cx"> {
</span><span class="cx">     if (!colorObject)
</span><span class="cx">         return Color::transparent;
</span><span class="lines">@@ -132,9 +132,8 @@
</span><span class="cx"> 
</span><span class="cx"> static Color parseConfigColor(const String&amp; fieldName, InspectorObject* configObject)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InspectorObject&gt; colorObject;
-    configObject-&gt;getObject(fieldName, colorObject);
-    return parseColor(WTF::move(colorObject));
</del><ins>+    const RefPtr&lt;InspectorObject&gt; colorObject = configObject-&gt;getObject(fieldName);
+    return parseColor(colorObject);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool parseQuad(const RefPtr&lt;InspectorArray&gt;&amp; quadArray, FloatQuad* quad)
</span><span class="lines">@@ -580,9 +579,9 @@
</span><span class="cx">             auto newMap = std::make_unique&lt;NodeToIdMap&gt;();
</span><span class="cx">             danglingMap = newMap.get();
</span><span class="cx">             m_danglingNodeToIdMaps.append(newMap.release());
</span><del>-            auto children = Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;::create();
</del><ins>+            RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;&gt; children = Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;::create();
</ins><span class="cx">             children-&gt;addItem(buildObjectForNode(node, 0, danglingMap));
</span><del>-            m_frontendDispatcher-&gt;setChildNodes(0, WTF::move(children));
</del><ins>+            m_frontendDispatcher-&gt;setChildNodes(0, children);
</ins><span class="cx">             break;
</span><span class="cx">         } else {
</span><span class="cx">             path.append(parent);
</span><span class="lines">@@ -877,14 +876,15 @@
</span><span class="cx">     axProperties = buildObjectForAccessibilityProperties(node);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDOMAgent::performSearch(ErrorString&amp; errorString, const String&amp; whitespaceTrimmedQuery, const RefPtr&lt;InspectorArray&gt;&amp;&amp; nodeIds, String* searchId, int* resultCount)
</del><ins>+void InspectorDOMAgent::performSearch(ErrorString&amp; errorString, const String&amp; whitespaceTrimmedQuery, const RefPtr&lt;InspectorArray&gt;* nodeIds, String* searchId, int* resultCount)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: Search works with node granularity - number of matches within node is not calculated.
</span><span class="cx">     InspectorNodeFinder finder(whitespaceTrimmedQuery);
</span><span class="cx"> 
</span><span class="cx">     if (nodeIds) {
</span><del>-        for (unsigned i = 0; i &lt; nodeIds-&gt;length(); ++i) {
-            RefPtr&lt;InspectorValue&gt; nodeValue = nodeIds-&gt;get(i);
</del><ins>+        const RefPtr&lt;InspectorArray&gt;&amp; nodeIdsRef = *nodeIds;
+        for (unsigned i = 0; i &lt; nodeIdsRef-&gt;length(); ++i) {
+            RefPtr&lt;InspectorValue&gt; nodeValue = nodeIdsRef-&gt;get(i);
</ins><span class="cx">             if (!nodeValue) {
</span><span class="cx">                 errorString = ASCIILiteral(&quot;Invalid nodeIds item.&quot;);
</span><span class="cx">                 return;
</span><span class="lines">@@ -1046,37 +1046,37 @@
</span><span class="cx">     return highlightConfig;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDOMAgent::setInspectModeEnabled(ErrorString&amp; errorString, bool enabled, const RefPtr&lt;InspectorObject&gt;&amp;&amp; highlightConfig)
</del><ins>+void InspectorDOMAgent::setInspectModeEnabled(ErrorString&amp; errorString, bool enabled, const RefPtr&lt;InspectorObject&gt;* highlightConfig)
</ins><span class="cx"> {
</span><del>-    setSearchingForNode(errorString, enabled, highlightConfig ? highlightConfig.get() : nullptr);
</del><ins>+    setSearchingForNode(errorString, enabled, highlightConfig ? highlightConfig-&gt;get() : 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDOMAgent::highlightRect(ErrorString&amp;, int x, int y, int width, int height, const RefPtr&lt;InspectorObject&gt;&amp;&amp; color, const RefPtr&lt;InspectorObject&gt;&amp;&amp; outlineColor, const bool* usePageCoordinates)
</del><ins>+void InspectorDOMAgent::highlightRect(ErrorString&amp;, int x, int y, int width, int height, const RefPtr&lt;InspectorObject&gt;* color, const RefPtr&lt;InspectorObject&gt;* outlineColor, const bool* usePageCoordinates)
</ins><span class="cx"> {
</span><span class="cx">     auto quad = std::make_unique&lt;FloatQuad&gt;(FloatRect(x, y, width, height));
</span><del>-    innerHighlightQuad(WTF::move(quad), color.copyRef(), outlineColor.copyRef(), usePageCoordinates);
</del><ins>+    innerHighlightQuad(WTF::move(quad), color, outlineColor, usePageCoordinates);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDOMAgent::highlightQuad(ErrorString&amp; errorString, const RefPtr&lt;InspectorArray&gt;&amp;&amp; quadArray, const RefPtr&lt;InspectorObject&gt;&amp;&amp; color, const RefPtr&lt;InspectorObject&gt;&amp;&amp; outlineColor, const bool* usePageCoordinates)
</del><ins>+void InspectorDOMAgent::highlightQuad(ErrorString&amp; errorString, const RefPtr&lt;InspectorArray&gt;&amp; quadArray, const RefPtr&lt;InspectorObject&gt;* color, const RefPtr&lt;InspectorObject&gt;* outlineColor, const bool* usePageCoordinates)
</ins><span class="cx"> {
</span><span class="cx">     auto quad = std::make_unique&lt;FloatQuad&gt;();
</span><span class="cx">     if (!parseQuad(quadArray, quad.get())) {
</span><span class="cx">         errorString = ASCIILiteral(&quot;Invalid Quad format&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    innerHighlightQuad(WTF::move(quad), color.copyRef(), outlineColor.copyRef(), usePageCoordinates);
</del><ins>+    innerHighlightQuad(WTF::move(quad), color, outlineColor, usePageCoordinates);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDOMAgent::innerHighlightQuad(std::unique_ptr&lt;FloatQuad&gt; quad, const RefPtr&lt;InspectorObject&gt;&amp;&amp; color, const RefPtr&lt;InspectorObject&gt;&amp;&amp; outlineColor, const bool* usePageCoordinates)
</del><ins>+void InspectorDOMAgent::innerHighlightQuad(std::unique_ptr&lt;FloatQuad&gt; quad, const RefPtr&lt;InspectorObject&gt;* color, const RefPtr&lt;InspectorObject&gt;* outlineColor, const bool* usePageCoordinates)
</ins><span class="cx"> {
</span><span class="cx">     auto highlightConfig = std::make_unique&lt;HighlightConfig&gt;();
</span><del>-    highlightConfig-&gt;content = parseColor(color.copyRef());
-    highlightConfig-&gt;contentOutline = parseColor(outlineColor.copyRef());
</del><ins>+    highlightConfig-&gt;content = parseColor(*color);
+    highlightConfig-&gt;contentOutline = parseColor(*outlineColor);
</ins><span class="cx">     highlightConfig-&gt;usePageCoordinates = usePageCoordinates ? *usePageCoordinates : false;
</span><span class="cx">     m_overlay-&gt;highlightQuad(WTF::move(quad), *highlightConfig);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDOMAgent::highlightNode(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp;&amp; highlightInspectorObject, const int* nodeId, const String* objectId)
</del><ins>+void InspectorDOMAgent::highlightNode(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp; highlightInspectorObject, const int* nodeId, const String* objectId)
</ins><span class="cx"> {
</span><span class="cx">     Node* node = 0;
</span><span class="cx">     if (nodeId) {
</span><span class="lines">@@ -1098,14 +1098,14 @@
</span><span class="cx">     m_overlay-&gt;highlightNode(node, *highlightConfig);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDOMAgent::highlightFrame(ErrorString&amp;, const String&amp; frameId, const RefPtr&lt;InspectorObject&gt;&amp;&amp; color, const RefPtr&lt;InspectorObject&gt;&amp;&amp; outlineColor)
</del><ins>+void InspectorDOMAgent::highlightFrame(ErrorString&amp;, const String&amp; frameId, const RefPtr&lt;InspectorObject&gt;* color, const RefPtr&lt;InspectorObject&gt;* outlineColor)
</ins><span class="cx"> {
</span><span class="cx">     Frame* frame = m_pageAgent-&gt;frameForId(frameId);
</span><span class="cx">     if (frame &amp;&amp; frame-&gt;ownerElement()) {
</span><span class="cx">         auto highlightConfig = std::make_unique&lt;HighlightConfig&gt;();
</span><span class="cx">         highlightConfig-&gt;showInfo = true; // Always show tooltips for frames.
</span><del>-        highlightConfig-&gt;content = parseColor(color.copyRef());
-        highlightConfig-&gt;contentOutline = parseColor(outlineColor.copyRef());
</del><ins>+        highlightConfig-&gt;content = parseColor(*color);
+        highlightConfig-&gt;contentOutline = parseColor(*outlineColor);
</ins><span class="cx">         m_overlay-&gt;highlightNode(frame-&gt;ownerElement(), *highlightConfig);
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -1220,7 +1220,7 @@
</span><span class="cx">     return document-&gt;completeURL(&quot;&quot;).string();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Inspector::Protocol::DOM::Node&gt; InspectorDOMAgent::buildObjectForNode(Node* node, int depth, NodeToIdMap* nodesMap)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::DOM::Node&gt; InspectorDOMAgent::buildObjectForNode(Node* node, int depth, NodeToIdMap* nodesMap)
</ins><span class="cx"> {
</span><span class="cx">     int id = bind(node, nodesMap);
</span><span class="cx">     String nodeName;
</span><span class="lines">@@ -1253,20 +1253,19 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto value = Inspector::Protocol::DOM::Node::create()
</del><ins>+    RefPtr&lt;Inspector::Protocol::DOM::Node&gt; value = Inspector::Protocol::DOM::Node::create()
</ins><span class="cx">         .setNodeId(id)
</span><span class="cx">         .setNodeType(static_cast&lt;int&gt;(node-&gt;nodeType()))
</span><span class="cx">         .setNodeName(nodeName)
</span><span class="cx">         .setLocalName(localName)
</span><del>-        .setNodeValue(nodeValue)
-        .release();
</del><ins>+        .setNodeValue(nodeValue);
</ins><span class="cx"> 
</span><span class="cx">     if (node-&gt;isContainerNode()) {
</span><span class="cx">         int nodeCount = innerChildNodeCount(node);
</span><span class="cx">         value-&gt;setChildNodeCount(nodeCount);
</span><del>-        Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;&gt; children = buildArrayForContainerChildren(node, depth, nodesMap);
</del><ins>+        RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;&gt; children = buildArrayForContainerChildren(node, depth, nodesMap);
</ins><span class="cx">         if (children-&gt;length() &gt; 0)
</span><del>-            value-&gt;setChildren(WTF::move(children));
</del><ins>+            value-&gt;setChildren(children.release());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (is&lt;Element&gt;(*node)) {
</span><span class="lines">@@ -1283,9 +1282,9 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (ShadowRoot* root = element.shadowRoot()) {
</span><del>-            auto shadowRoots = Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;::create();
</del><ins>+            RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;&gt; shadowRoots = Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;::create();
</ins><span class="cx">             shadowRoots-&gt;addItem(buildObjectForNode(root, 0, nodesMap));
</span><del>-            value-&gt;setShadowRoots(WTF::move(shadowRoots));
</del><ins>+            value-&gt;setShadowRoots(shadowRoots);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><span class="lines">@@ -1318,26 +1317,26 @@
</span><span class="cx">             value-&gt;setRole(axObject-&gt;computedRoleString());
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return WTF::move(value);
</del><ins>+    return value.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Inspector::Protocol::Array&lt;String&gt;&gt; InspectorDOMAgent::buildArrayForElementAttributes(Element* element)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; InspectorDOMAgent::buildArrayForElementAttributes(Element* element)
</ins><span class="cx"> {
</span><del>-    auto attributesValue = Inspector::Protocol::Array&lt;String&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; attributesValue = Inspector::Protocol::Array&lt;String&gt;::create();
</ins><span class="cx">     // Go through all attributes and serialize them.
</span><span class="cx">     if (!element-&gt;hasAttributes())
</span><del>-        return WTF::move(attributesValue);
</del><ins>+        return attributesValue.release();
</ins><span class="cx">     for (const Attribute&amp; attribute : element-&gt;attributesIterator()) {
</span><span class="cx">         // Add attribute pair
</span><span class="cx">         attributesValue-&gt;addItem(attribute.name().toString());
</span><span class="cx">         attributesValue-&gt;addItem(attribute.value());
</span><span class="cx">     }
</span><del>-    return WTF::move(attributesValue);
</del><ins>+    return attributesValue.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;&gt; InspectorDOMAgent::buildArrayForContainerChildren(Node* container, int depth, NodeToIdMap* nodesMap)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;&gt; InspectorDOMAgent::buildArrayForContainerChildren(Node* container, int depth, NodeToIdMap* nodesMap)
</ins><span class="cx"> {
</span><del>-    auto children = Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;&gt; children = Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;::create();
</ins><span class="cx">     if (depth == 0) {
</span><span class="cx">         // Special-case the only text child - pretend that container's children have been requested.
</span><span class="cx">         Node* firstChild = container-&gt;firstChild();
</span><span class="lines">@@ -1345,7 +1344,7 @@
</span><span class="cx">             children-&gt;addItem(buildObjectForNode(firstChild, 0, nodesMap));
</span><span class="cx">             m_childrenRequested.add(bind(container, nodesMap));
</span><span class="cx">         }
</span><del>-        return WTF::move(children);
</del><ins>+        return children.release();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     Node* child = innerFirstChild(container);
</span><span class="lines">@@ -1356,10 +1355,10 @@
</span><span class="cx">         children-&gt;addItem(buildObjectForNode(child, depth, nodesMap));
</span><span class="cx">         child = innerNextSibling(child);
</span><span class="cx">     }
</span><del>-    return WTF::move(children);
</del><ins>+    return children.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Inspector::Protocol::DOM::EventListener&gt; InspectorDOMAgent::buildObjectForEventListener(const RegisteredEventListener&amp; registeredEventListener, const AtomicString&amp; eventType, Node* node, const String* objectGroupId)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::DOM::EventListener&gt; InspectorDOMAgent::buildObjectForEventListener(const RegisteredEventListener&amp; registeredEventListener, const AtomicString&amp; eventType, Node* node, const String* objectGroupId)
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;EventListener&gt; eventListener = registeredEventListener.listener;
</span><span class="cx"> 
</span><span class="lines">@@ -1387,31 +1386,29 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto value = Inspector::Protocol::DOM::EventListener::create()
</del><ins>+    RefPtr&lt;Inspector::Protocol::DOM::EventListener&gt; value = Inspector::Protocol::DOM::EventListener::create()
</ins><span class="cx">         .setType(eventType)
</span><span class="cx">         .setUseCapture(registeredEventListener.useCapture)
</span><span class="cx">         .setIsAttribute(eventListener-&gt;isAttribute())
</span><span class="cx">         .setNodeId(pushNodePathToFrontend(node))
</span><del>-        .setHandlerBody(body)
-        .release();
</del><ins>+        .setHandlerBody(body);
</ins><span class="cx">     if (objectGroupId &amp;&amp; handler &amp;&amp; state) {
</span><span class="cx">         InjectedScript injectedScript = m_injectedScriptManager-&gt;injectedScriptFor(state);
</span><span class="cx">         if (!injectedScript.hasNoValue())
</span><span class="cx">             value-&gt;setHandler(injectedScript.wrapObject(Deprecated::ScriptValue(state-&gt;vm(), handler), *objectGroupId));
</span><span class="cx">     }
</span><span class="cx">     if (!scriptID.isNull()) {
</span><del>-        auto location = Inspector::Protocol::Debugger::Location::create()
</del><ins>+        RefPtr&lt;Inspector::Protocol::Debugger::Location&gt; location = Inspector::Protocol::Debugger::Location::create()
</ins><span class="cx">             .setScriptId(scriptID)
</span><del>-            .setLineNumber(lineNumber)
-            .release();
-        value-&gt;setLocation(WTF::move(location));
</del><ins>+            .setLineNumber(lineNumber);
+        value-&gt;setLocation(location.release());
</ins><span class="cx">         if (!sourceName.isEmpty())
</span><span class="cx">             value-&gt;setSourceName(sourceName);
</span><span class="cx">     }
</span><del>-    return WTF::move(value);
</del><ins>+    return value.release();
</ins><span class="cx"> }
</span><span class="cx">     
</span><del>-void InspectorDOMAgent::processAccessibilityChildren(RefPtr&lt;AccessibilityObject&gt;&amp;&amp; axObject, RefPtr&lt;Inspector::Protocol::Array&lt;int&gt;&gt;&amp;&amp; childNodeIds)
</del><ins>+void InspectorDOMAgent::processAccessibilityChildren(PassRefPtr&lt;AccessibilityObject&gt; axObject, RefPtr&lt;Inspector::Protocol::Array&lt;int&gt;&gt;&amp; childNodeIds)
</ins><span class="cx"> {
</span><span class="cx">     const auto&amp; children = axObject-&gt;children();
</span><span class="cx">     if (!children.size())
</span><span class="lines">@@ -1424,11 +1421,11 @@
</span><span class="cx">         if (Node* childNode = childObject-&gt;node())
</span><span class="cx">             childNodeIds-&gt;addItem(pushNodePathToFrontend(childNode));
</span><span class="cx">         else
</span><del>-            processAccessibilityChildren(childObject.copyRef(), childNodeIds.copyRef());
</del><ins>+            processAccessibilityChildren(childObject, childNodeIds);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx">     
</span><del>-RefPtr&lt;Inspector::Protocol::DOM::AccessibilityProperties&gt; InspectorDOMAgent::buildObjectForAccessibilityProperties(Node* node)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::DOM::AccessibilityProperties&gt; InspectorDOMAgent::buildObjectForAccessibilityProperties(Node* node)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(node);
</span><span class="cx">     if (!node)
</span><span class="lines">@@ -1439,7 +1436,7 @@
</span><span class="cx"> 
</span><span class="cx">     Node* activeDescendantNode = nullptr;
</span><span class="cx">     bool busy = false;
</span><del>-    auto checked = Inspector::Protocol::DOM::AccessibilityProperties::Checked::False;
</del><ins>+    Inspector::Protocol::DOM::AccessibilityProperties::Checked checked = Inspector::Protocol::DOM::AccessibilityProperties::Checked::False;
</ins><span class="cx">     RefPtr&lt;Inspector::Protocol::Array&lt;int&gt;&gt; childNodeIds;
</span><span class="cx">     RefPtr&lt;Inspector::Protocol::Array&lt;int&gt;&gt; controlledNodeIds;
</span><span class="cx">     bool exists = false;
</span><span class="lines">@@ -1449,12 +1446,12 @@
</span><span class="cx">     bool focused = false;
</span><span class="cx">     bool ignored = true;
</span><span class="cx">     bool ignoredByDefault = false;
</span><del>-    auto invalid = Inspector::Protocol::DOM::AccessibilityProperties::Invalid::False;
</del><ins>+    Inspector::Protocol::DOM::AccessibilityProperties::Invalid invalid = Inspector::Protocol::DOM::AccessibilityProperties::Invalid::False;
</ins><span class="cx">     bool hidden = false;
</span><span class="cx">     String label;
</span><span class="cx">     bool liveRegionAtomic = false;
</span><span class="cx">     RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; liveRegionRelevant;
</span><del>-    auto liveRegionStatus = Inspector::Protocol::DOM::AccessibilityProperties::LiveRegionStatus::Off;
</del><ins>+    Inspector::Protocol::DOM::AccessibilityProperties::LiveRegionStatus liveRegionStatus = Inspector::Protocol::DOM::AccessibilityProperties::LiveRegionStatus::Off;
</ins><span class="cx">     Node* mouseEventNode = nullptr;
</span><span class="cx">     RefPtr&lt;Inspector::Protocol::Array&lt;int&gt;&gt; ownedNodeIds;
</span><span class="cx">     Node* parentNode = nullptr;
</span><span class="lines">@@ -1495,7 +1492,7 @@
</span><span class="cx">                     checked = Inspector::Protocol::DOM::AccessibilityProperties::Checked::True;
</span><span class="cx">             }
</span><span class="cx">             
</span><del>-            processAccessibilityChildren(axObject, WTF::move(childNodeIds));
</del><ins>+            processAccessibilityChildren(axObject, childNodeIds);
</ins><span class="cx">             
</span><span class="cx">             if (axObject-&gt;supportsARIAControls()) {
</span><span class="cx">                 Vector&lt;Element*&gt; controlledElements;
</span><span class="lines">@@ -1625,12 +1622,11 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    Ref&lt;Inspector::Protocol::DOM::AccessibilityProperties&gt; value = Inspector::Protocol::DOM::AccessibilityProperties::create()
</del><ins>+    RefPtr&lt;Inspector::Protocol::DOM::AccessibilityProperties&gt; value = Inspector::Protocol::DOM::AccessibilityProperties::create()
</ins><span class="cx">         .setExists(exists)
</span><span class="cx">         .setLabel(label)
</span><span class="cx">         .setRole(role)
</span><del>-        .setNodeId(pushNodePathToFrontend(node))
-        .release();
</del><ins>+        .setNodeId(pushNodePathToFrontend(node));
</ins><span class="cx"> 
</span><span class="cx">     if (exists) {
</span><span class="cx">         if (activeDescendantNode)
</span><span class="lines">@@ -1683,7 +1679,7 @@
</span><span class="cx">             value-&gt;setSelectedChildNodeIds(selectedChildNodeIds);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return WTF::move(value);
</del><ins>+    return value.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Node* InspectorDOMAgent::innerFirstChild(Node* node)
</span><span class="lines">@@ -1758,10 +1754,10 @@
</span><span class="cx">     m_frontendDispatcher-&gt;childNodeRemoved(parentId, frameOwnerId);
</span><span class="cx">     unbind(frameOwner, &amp;m_documentNodeToIdMap);
</span><span class="cx"> 
</span><del>-    Ref&lt;Inspector::Protocol::DOM::Node&gt; value = buildObjectForNode(frameOwner, 0, &amp;m_documentNodeToIdMap);
</del><ins>+    RefPtr&lt;Inspector::Protocol::DOM::Node&gt; value = buildObjectForNode(frameOwner, 0, &amp;m_documentNodeToIdMap);
</ins><span class="cx">     Node* previousSibling = innerPreviousSibling(frameOwner);
</span><span class="cx">     int prevId = previousSibling ? m_documentNodeToIdMap.get(previousSibling) : 0;
</span><del>-    m_frontendDispatcher-&gt;childNodeInserted(parentId, prevId, WTF::move(value));
</del><ins>+    m_frontendDispatcher-&gt;childNodeInserted(parentId, prevId, value.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDOMAgent::didInsertDOMNode(Node&amp; node)
</span><span class="lines">@@ -1788,8 +1784,8 @@
</span><span class="cx">         // Children have been requested -&gt; return value of a new child.
</span><span class="cx">         Node* prevSibling = innerPreviousSibling(&amp;node);
</span><span class="cx">         int prevId = prevSibling ? m_documentNodeToIdMap.get(prevSibling) : 0;
</span><del>-        Ref&lt;Inspector::Protocol::DOM::Node&gt; value = buildObjectForNode(&amp;node, 0, &amp;m_documentNodeToIdMap);
-        m_frontendDispatcher-&gt;childNodeInserted(parentId, prevId, WTF::move(value));
</del><ins>+        RefPtr&lt;Inspector::Protocol::DOM::Node&gt; value = buildObjectForNode(&amp;node, 0, &amp;m_documentNodeToIdMap);
+        m_frontendDispatcher-&gt;childNodeInserted(parentId, prevId, value.release());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1853,7 +1849,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InspectorDOMAgent::styleAttributeInvalidated(const Vector&lt;Element*&gt;&amp; elements)
</span><span class="cx"> {
</span><del>-    auto nodeIds = Inspector::Protocol::Array&lt;int&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;int&gt;&gt; nodeIds = Inspector::Protocol::Array&lt;int&gt;::create();
</ins><span class="cx">     for (unsigned i = 0, size = elements.size(); i &lt; size; ++i) {
</span><span class="cx">         Element* element = elements.at(i);
</span><span class="cx">         int id = boundNodeId(element);
</span><span class="lines">@@ -1865,7 +1861,7 @@
</span><span class="cx">             m_domListener-&gt;didModifyDOMAttr(element);
</span><span class="cx">         nodeIds-&gt;addItem(id);
</span><span class="cx">     }
</span><del>-    m_frontendDispatcher-&gt;inlineStyleInvalidated(WTF::move(nodeIds));
</del><ins>+    m_frontendDispatcher-&gt;inlineStyleInvalidated(nodeIds.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDOMAgent::characterDataModified(CharacterData&amp; characterData)
</span><span class="lines">@@ -1988,7 +1984,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; InspectorDOMAgent::resolveNode(Node* node, const String&amp; objectGroup)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; InspectorDOMAgent::resolveNode(Node* node, const String&amp; objectGroup)
</ins><span class="cx"> {
</span><span class="cx">     Frame* frame = node-&gt;document().frame();
</span><span class="cx">     if (!frame)
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMAgenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMAgent.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -132,21 +132,21 @@
</span><span class="cx">     virtual void setNodeValue(ErrorString&amp;, int nodeId, const String&amp; value) override;
</span><span class="cx">     virtual void getEventListenersForNode(ErrorString&amp;, int nodeId, const WTF::String* objectGroup, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::EventListener&gt;&gt;&amp; listenersArray) override;
</span><span class="cx">     virtual void getAccessibilityPropertiesForNode(ErrorString&amp;, int nodeId, RefPtr&lt;Inspector::Protocol::DOM::AccessibilityProperties&gt;&amp; axProperties) override;
</span><del>-    virtual void performSearch(ErrorString&amp;, const String&amp; whitespaceTrimmedQuery, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; nodeIds, String* searchId, int* resultCount) override;
</del><ins>+    virtual void performSearch(ErrorString&amp;, const String&amp; whitespaceTrimmedQuery, const RefPtr&lt;Inspector::InspectorArray&gt;* nodeIds, String* searchId, int* resultCount) override;
</ins><span class="cx">     virtual void getSearchResults(ErrorString&amp;, const String&amp; searchId, int fromIndex, int toIndex, RefPtr&lt;Inspector::Protocol::Array&lt;int&gt;&gt;&amp;) override;
</span><span class="cx">     virtual void discardSearchResults(ErrorString&amp;, const String&amp; searchId) override;
</span><span class="cx">     virtual void resolveNode(ErrorString&amp;, int nodeId, const String* objectGroup, RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt;&amp; result) override;
</span><span class="cx">     virtual void getAttributes(ErrorString&amp;, int nodeId, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp; result) override;
</span><del>-    virtual void setInspectModeEnabled(ErrorString&amp;, bool enabled, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; highlightConfig) override;
</del><ins>+    virtual void setInspectModeEnabled(ErrorString&amp;, bool enabled, const RefPtr&lt;Inspector::InspectorObject&gt;* highlightConfig) override;
</ins><span class="cx">     virtual void requestNode(ErrorString&amp;, const String&amp; objectId, int* nodeId) override;
</span><span class="cx">     virtual void pushNodeByPathToFrontend(ErrorString&amp;, const String&amp; path, int* nodeId) override;
</span><span class="cx">     virtual void pushNodeByBackendIdToFrontend(ErrorString&amp;, BackendNodeId, int* nodeId) override;
</span><span class="cx">     virtual void releaseBackendNodeIds(ErrorString&amp;, const String&amp; nodeGroup) override;
</span><span class="cx">     virtual void hideHighlight(ErrorString&amp;) override;
</span><del>-    virtual void highlightRect(ErrorString&amp;, int x, int y, int width, int height, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; color, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; outlineColor, const bool* usePageCoordinates) override;
-    virtual void highlightQuad(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorArray&gt;&amp;&amp; quad, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; color, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; outlineColor, const bool* usePageCoordinates) override;
-    virtual void highlightNode(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; highlightConfig, const int* nodeId, const String* objectId) override;
-    virtual void highlightFrame(ErrorString&amp;, const String&amp; frameId, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; color, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; outlineColor) override;
</del><ins>+    virtual void highlightRect(ErrorString&amp;, int x, int y, int width, int height, const RefPtr&lt;Inspector::InspectorObject&gt;* color, const RefPtr&lt;Inspector::InspectorObject&gt;* outlineColor, const bool* usePageCoordinates) override;
+    virtual void highlightQuad(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorArray&gt;&amp; quad, const RefPtr&lt;Inspector::InspectorObject&gt;* color, const RefPtr&lt;Inspector::InspectorObject&gt;* outlineColor, const bool* usePageCoordinates) override;
+    virtual void highlightNode(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; highlightConfig, const int* nodeId, const String* objectId) override;
+    virtual void highlightFrame(ErrorString&amp;, const String&amp; frameId, const RefPtr&lt;Inspector::InspectorObject&gt;* color, const RefPtr&lt;Inspector::InspectorObject&gt;* outlineColor) override;
</ins><span class="cx"> 
</span><span class="cx">     virtual void moveTo(ErrorString&amp;, int nodeId, int targetNodeId, const int* anchorNodeId, int* newNodeId) override;
</span><span class="cx">     virtual void undo(ErrorString&amp;) override;
</span><span class="lines">@@ -186,7 +186,7 @@
</span><span class="cx"> 
</span><span class="cx">     static String documentURLString(Document*);
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; resolveNode(Node*, const String&amp; objectGroup);
</del><ins>+    PassRefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; resolveNode(Node*, const String&amp; objectGroup);
</ins><span class="cx">     bool handleMousePress();
</span><span class="cx">     void mouseDidMoveOverElement(const HitTestResult&amp;, unsigned modifierFlags);
</span><span class="cx">     void inspect(Node*);
</span><span class="lines">@@ -230,20 +230,21 @@
</span><span class="cx"> 
</span><span class="cx">     bool hasBreakpoint(Node*, int type);
</span><span class="cx">     void updateSubtreeBreakpoints(Node* root, uint32_t rootMask, bool value);
</span><ins>+    void descriptionForDOMEvent(Node* target, int breakpointType, bool insertion, PassRefPtr&lt;Inspector::InspectorObject&gt; description);
</ins><span class="cx"> 
</span><del>-    Ref&lt;Inspector::Protocol::DOM::Node&gt; buildObjectForNode(Node*, int depth, NodeToIdMap*);
-    Ref&lt;Inspector::Protocol::Array&lt;String&gt;&gt; buildArrayForElementAttributes(Element*);
-    Ref&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;&gt; buildArrayForContainerChildren(Node* container, int depth, NodeToIdMap* nodesMap);
-    Ref&lt;Inspector::Protocol::DOM::EventListener&gt; buildObjectForEventListener(const RegisteredEventListener&amp;, const AtomicString&amp; eventType, Node*, const String* objectGroupId);
-    RefPtr&lt;Inspector::Protocol::DOM::AccessibilityProperties&gt; buildObjectForAccessibilityProperties(Node*);
-    void processAccessibilityChildren(RefPtr&lt;AccessibilityObject&gt;&amp;&amp;, RefPtr&lt;Inspector::Protocol::Array&lt;int&gt;&gt;&amp;&amp;);
</del><ins>+    PassRefPtr&lt;Inspector::Protocol::DOM::Node&gt; buildObjectForNode(Node*, int depth, NodeToIdMap*);
+    PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; buildArrayForElementAttributes(Element*);
+    PassRefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::DOM::Node&gt;&gt; buildArrayForContainerChildren(Node* container, int depth, NodeToIdMap* nodesMap);
+    PassRefPtr&lt;Inspector::Protocol::DOM::EventListener&gt; buildObjectForEventListener(const RegisteredEventListener&amp;, const AtomicString&amp; eventType, Node*, const String* objectGroupId);
+    PassRefPtr&lt;Inspector::Protocol::DOM::AccessibilityProperties&gt; buildObjectForAccessibilityProperties(Node*);
+    void processAccessibilityChildren(PassRefPtr&lt;AccessibilityObject&gt;, RefPtr&lt;Inspector::Protocol::Array&lt;int&gt;&gt;&amp;);
</ins><span class="cx">     
</span><span class="cx">     Node* nodeForPath(const String&amp; path);
</span><span class="cx">     Node* nodeForObjectId(const String&amp; objectId);
</span><span class="cx"> 
</span><span class="cx">     void discardBindings();
</span><span class="cx"> 
</span><del>-    void innerHighlightQuad(std::unique_ptr&lt;FloatQuad&gt;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; color, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; outlineColor, const bool* usePageCoordinates);
</del><ins>+    void innerHighlightQuad(std::unique_ptr&lt;FloatQuad&gt;, const RefPtr&lt;Inspector::InspectorObject&gt;* color, const RefPtr&lt;Inspector::InspectorObject&gt;* outlineColor, const bool* usePageCoordinates);
</ins><span class="cx"> 
</span><span class="cx">     InspectorPageAgent* m_pageAgent;
</span><span class="cx">     Inspector::InjectedScriptManager* m_injectedScriptManager;
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMDebuggerAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMDebuggerAgent.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMDebuggerAgent.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorDOMDebuggerAgent.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -170,9 +170,9 @@
</span><span class="cx"> void InspectorDOMDebuggerAgent::didInvalidateStyleAttr(Node&amp; node)
</span><span class="cx"> {
</span><span class="cx">     if (hasBreakpoint(&amp;node, AttributeModified)) {
</span><del>-        Ref&lt;InspectorObject&gt; eventData = InspectorObject::create();
-        descriptionForDOMEvent(node, AttributeModified, false, eventData.get());
-        m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::DOM, WTF::move(eventData));
</del><ins>+        RefPtr&lt;InspectorObject&gt; eventData = InspectorObject::create();
+        descriptionForDOMEvent(&amp;node, AttributeModified, false, eventData.get());
+        m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::DOM, eventData.release());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -270,9 +270,9 @@
</span><span class="cx"> void InspectorDOMDebuggerAgent::willInsertDOMNode(Node&amp; parent)
</span><span class="cx"> {
</span><span class="cx">     if (hasBreakpoint(&amp;parent, SubtreeModified)) {
</span><del>-        Ref&lt;InspectorObject&gt; eventData = InspectorObject::create();
-        descriptionForDOMEvent(parent, SubtreeModified, true, eventData.get());
-        m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::DOM, WTF::move(eventData));
</del><ins>+        RefPtr&lt;InspectorObject&gt; eventData = InspectorObject::create();
+        descriptionForDOMEvent(&amp;parent, SubtreeModified, true, eventData.get());
+        m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::DOM, eventData.release());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -280,39 +280,39 @@
</span><span class="cx"> {
</span><span class="cx">     Node* parentNode = InspectorDOMAgent::innerParentNode(&amp;node);
</span><span class="cx">     if (hasBreakpoint(&amp;node, NodeRemoved)) {
</span><del>-        Ref&lt;InspectorObject&gt; eventData = InspectorObject::create();
-        descriptionForDOMEvent(node, NodeRemoved, false, eventData.get());
-        m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::DOM, WTF::move(eventData));
</del><ins>+        RefPtr&lt;InspectorObject&gt; eventData = InspectorObject::create();
+        descriptionForDOMEvent(&amp;node, NodeRemoved, false, eventData.get());
+        m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::DOM, eventData.release());
</ins><span class="cx">     } else if (parentNode &amp;&amp; hasBreakpoint(parentNode, SubtreeModified)) {
</span><del>-        Ref&lt;InspectorObject&gt; eventData = InspectorObject::create();
-        descriptionForDOMEvent(node, SubtreeModified, false, eventData.get());
-        m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::DOM, WTF::move(eventData));
</del><ins>+        RefPtr&lt;InspectorObject&gt; eventData = InspectorObject::create();
+        descriptionForDOMEvent(&amp;node, SubtreeModified, false, eventData.get());
+        m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::DOM, eventData.release());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDOMDebuggerAgent::willModifyDOMAttr(Element&amp; element)
</span><span class="cx"> {
</span><span class="cx">     if (hasBreakpoint(&amp;element, AttributeModified)) {
</span><del>-        Ref&lt;InspectorObject&gt; eventData = InspectorObject::create();
-        descriptionForDOMEvent(element, AttributeModified, false, eventData.get());
-        m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::DOM, WTF::move(eventData));
</del><ins>+        RefPtr&lt;InspectorObject&gt; eventData = InspectorObject::create();
+        descriptionForDOMEvent(&amp;element, AttributeModified, false, eventData.get());
+        m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::DOM, eventData.release());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDOMDebuggerAgent::descriptionForDOMEvent(Node&amp; target, int breakpointType, bool insertion, InspectorObject&amp; description)
</del><ins>+void InspectorDOMDebuggerAgent::descriptionForDOMEvent(Node* target, int breakpointType, bool insertion, InspectorObject* description)
</ins><span class="cx"> {
</span><del>-    ASSERT(hasBreakpoint(&amp;target, breakpointType));
</del><ins>+    ASSERT(hasBreakpoint(target, breakpointType));
</ins><span class="cx"> 
</span><del>-    Node* breakpointOwner = &amp;target;
</del><ins>+    Node* breakpointOwner = target;
</ins><span class="cx">     if ((1 &lt;&lt; breakpointType) &amp; inheritableDOMBreakpointTypesMask) {
</span><span class="cx">         // For inheritable breakpoint types, target node isn't always the same as the node that owns a breakpoint.
</span><span class="cx">         // Target node may be unknown to frontend, so we need to push it first.
</span><del>-        RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; targetNodeObject = m_domAgent-&gt;resolveNode(&amp;target, InspectorDebuggerAgent::backtraceObjectGroup);
-        description.setValue(&quot;targetNode&quot;, targetNodeObject);
</del><ins>+        RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; targetNodeObject = m_domAgent-&gt;resolveNode(target, InspectorDebuggerAgent::backtraceObjectGroup);
+        description-&gt;setValue(&quot;targetNode&quot;, targetNodeObject);
</ins><span class="cx"> 
</span><span class="cx">         // Find breakpoint owner node.
</span><span class="cx">         if (!insertion)
</span><del>-            breakpointOwner = InspectorDOMAgent::innerParentNode(&amp;target);
</del><ins>+            breakpointOwner = InspectorDOMAgent::innerParentNode(target);
</ins><span class="cx">         ASSERT(breakpointOwner);
</span><span class="cx">         while (!(m_domBreakpoints.get(breakpointOwner) &amp; (1 &lt;&lt; breakpointType))) {
</span><span class="cx">             Node* parentNode = InspectorDOMAgent::innerParentNode(breakpointOwner);
</span><span class="lines">@@ -322,13 +322,13 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (breakpointType == SubtreeModified)
</span><del>-            description.setBoolean(&quot;insertion&quot;, insertion);
</del><ins>+            description-&gt;setBoolean(&quot;insertion&quot;, insertion);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     int breakpointOwnerNodeId = m_domAgent-&gt;boundNodeId(breakpointOwner);
</span><span class="cx">     ASSERT(breakpointOwnerNodeId);
</span><del>-    description.setInteger(&quot;nodeId&quot;, breakpointOwnerNodeId);
-    description.setString(&quot;type&quot;, domTypeName(breakpointType));
</del><ins>+    description-&gt;setInteger(&quot;nodeId&quot;, breakpointOwnerNodeId);
+    description-&gt;setString(&quot;type&quot;, domTypeName(breakpointType));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool InspectorDOMDebuggerAgent::hasBreakpoint(Node* node, int type)
</span><span class="lines">@@ -366,12 +366,12 @@
</span><span class="cx">             return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Ref&lt;InspectorObject&gt; eventData = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; eventData = InspectorObject::create();
</ins><span class="cx">     eventData-&gt;setString(&quot;eventName&quot;, fullEventName);
</span><span class="cx">     if (synchronous)
</span><del>-        m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::EventListener, WTF::move(eventData));
</del><ins>+        m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::EventListener, eventData.release());
</ins><span class="cx">     else
</span><del>-        m_debuggerAgent-&gt;schedulePauseOnNextStatement(InspectorDebuggerFrontendDispatcher::Reason::EventListener, WTF::move(eventData));
</del><ins>+        m_debuggerAgent-&gt;schedulePauseOnNextStatement(InspectorDebuggerFrontendDispatcher::Reason::EventListener, eventData.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDOMDebuggerAgent::setXHRBreakpoint(ErrorString&amp;, const String&amp; url)
</span><span class="lines">@@ -411,10 +411,10 @@
</span><span class="cx">     if (breakpointURL.isNull())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Ref&lt;InspectorObject&gt; eventData = InspectorObject::create();
</del><ins>+    RefPtr&lt;InspectorObject&gt; eventData = InspectorObject::create();
</ins><span class="cx">     eventData-&gt;setString(&quot;breakpointURL&quot;, breakpointURL);
</span><span class="cx">     eventData-&gt;setString(&quot;url&quot;, url);
</span><del>-    m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::XHR, WTF::move(eventData));
</del><ins>+    m_debuggerAgent-&gt;breakProgram(InspectorDebuggerFrontendDispatcher::Reason::XHR, eventData.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDOMDebuggerAgent::clear()
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMDebuggerAgenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMDebuggerAgent.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMDebuggerAgent.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorDOMDebuggerAgent.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">     virtual void didPause() override;
</span><span class="cx">     void disable();
</span><span class="cx"> 
</span><del>-    void descriptionForDOMEvent(Node&amp; target, int breakpointType, bool insertion, Inspector::InspectorObject&amp; description);
</del><ins>+    void descriptionForDOMEvent(Node* target, int breakpointType, bool insertion, Inspector::InspectorObject* description);
</ins><span class="cx">     void updateSubtreeBreakpoints(Node*, uint32_t rootMask, bool set);
</span><span class="cx">     bool hasBreakpoint(Node*, int type);
</span><span class="cx">     void discardBindings();
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMStorageAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -94,34 +94,34 @@
</span><span class="cx">     m_enabled = false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDOMStorageAgent::getDOMStorageItems(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp;&amp; storageId, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&gt;&amp; items)
</del><ins>+void InspectorDOMStorageAgent::getDOMStorageItems(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp; storageId, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&gt;&amp; items)
</ins><span class="cx"> {
</span><span class="cx">     Frame* frame;
</span><del>-    RefPtr&lt;StorageArea&gt; storageArea = findStorageArea(errorString, storageId.copyRef(), frame);
</del><ins>+    RefPtr&lt;StorageArea&gt; storageArea = findStorageArea(errorString, storageId, frame);
</ins><span class="cx">     if (!storageArea) {
</span><span class="cx">         errorString = ASCIILiteral(&quot;No StorageArea for given storageId&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto storageItems = Inspector::Protocol::Array&lt;Inspector::Protocol::Array&lt;String&gt;&gt;::create();
</del><ins>+    RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&gt; storageItems = Inspector::Protocol::Array&lt;Inspector::Protocol::Array&lt;String&gt;&gt;::create();
</ins><span class="cx"> 
</span><span class="cx">     for (unsigned i = 0; i &lt; storageArea-&gt;length(); ++i) {
</span><span class="cx">         String key = storageArea-&gt;key(i);
</span><span class="cx">         String value = storageArea-&gt;item(key);
</span><span class="cx"> 
</span><del>-        auto entry = Inspector::Protocol::Array&lt;String&gt;::create();
</del><ins>+        RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; entry = Inspector::Protocol::Array&lt;String&gt;::create();
</ins><span class="cx">         entry-&gt;addItem(key);
</span><span class="cx">         entry-&gt;addItem(value);
</span><del>-        storageItems-&gt;addItem(WTF::move(entry));
</del><ins>+        storageItems-&gt;addItem(entry.release());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    items = WTF::move(storageItems);
</del><ins>+    items = storageItems.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDOMStorageAgent::setDOMStorageItem(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp;&amp; storageId, const String&amp; key, const String&amp; value)
</del><ins>+void InspectorDOMStorageAgent::setDOMStorageItem(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp; storageId, const String&amp; key, const String&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     Frame* frame;
</span><del>-    RefPtr&lt;StorageArea&gt; storageArea = findStorageArea(errorString, storageId.copyRef(), frame);
</del><ins>+    RefPtr&lt;StorageArea&gt; storageArea = findStorageArea(errorString, storageId, frame);
</ins><span class="cx">     if (!storageArea) {
</span><span class="cx">         errorString = ASCIILiteral(&quot;Storage not found&quot;);
</span><span class="cx">         return;
</span><span class="lines">@@ -133,10 +133,10 @@
</span><span class="cx">         errorString = ExceptionCodeDescription(QUOTA_EXCEEDED_ERR).name;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDOMStorageAgent::removeDOMStorageItem(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp;&amp; storageId, const String&amp; key)
</del><ins>+void InspectorDOMStorageAgent::removeDOMStorageItem(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp; storageId, const String&amp; key)
</ins><span class="cx"> {
</span><span class="cx">     Frame* frame;
</span><del>-    RefPtr&lt;StorageArea&gt; storageArea = findStorageArea(errorString, storageId.copyRef(), frame);
</del><ins>+    RefPtr&lt;StorageArea&gt; storageArea = findStorageArea(errorString, storageId, frame);
</ins><span class="cx">     if (!storageArea) {
</span><span class="cx">         errorString = ASCIILiteral(&quot;Storage not found&quot;);
</span><span class="cx">         return;
</span><span class="lines">@@ -157,12 +157,11 @@
</span><span class="cx">     return storageId(securityOrigin.get(), isLocalStorage)-&gt;toJSONString();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Inspector::Protocol::DOMStorage::StorageId&gt; InspectorDOMStorageAgent::storageId(SecurityOrigin* securityOrigin, bool isLocalStorage)
</del><ins>+PassRefPtr&lt;Inspector::Protocol::DOMStorage::StorageId&gt; InspectorDOMStorageAgent::storageId(SecurityOrigin* securityOrigin, bool isLocalStorage)
</ins><span class="cx"> {
</span><span class="cx">     return Inspector::Protocol::DOMStorage::StorageId::create()
</span><span class="cx">         .setSecurityOrigin(securityOrigin-&gt;toRawString())
</span><del>-        .setIsLocalStorage(isLocalStorage)
-        .release();
</del><ins>+        .setIsLocalStorage(isLocalStorage).release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDOMStorageAgent::didDispatchDOMStorageEvent(const String&amp; key, const String&amp; oldValue, const String&amp; newValue, StorageType storageType, SecurityOrigin* securityOrigin, Page*)
</span><span class="lines">@@ -182,7 +181,7 @@
</span><span class="cx">         m_frontendDispatcher-&gt;domStorageItemUpdated(id, key, oldValue, newValue);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;StorageArea&gt; InspectorDOMStorageAgent::findStorageArea(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp;&amp; storageId, Frame*&amp; targetFrame)
</del><ins>+PassRefPtr&lt;StorageArea&gt; InspectorDOMStorageAgent::findStorageArea(ErrorString&amp; errorString, const RefPtr&lt;InspectorObject&gt;&amp; storageId, Frame*&amp; targetFrame)
</ins><span class="cx"> {
</span><span class="cx">     String securityOrigin;
</span><span class="cx">     bool isLocalStorage = false;
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMStorageAgenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorDOMStorageAgent.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -63,19 +63,19 @@
</span><span class="cx">     // Called from the front-end.
</span><span class="cx">     virtual void enable(ErrorString&amp;) override;
</span><span class="cx">     virtual void disable(ErrorString&amp;) override;
</span><del>-    virtual void getDOMStorageItems(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; storageId, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&gt;&amp; items) override;
-    virtual void setDOMStorageItem(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; storageId, const String&amp; key, const String&amp; value) override;
-    virtual void removeDOMStorageItem(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp; storageId, const String&amp; key) override;
</del><ins>+    virtual void getDOMStorageItems(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; storageId, RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&gt;&amp; items) override;
+    virtual void setDOMStorageItem(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; storageId, const String&amp; key, const String&amp; value) override;
+    virtual void removeDOMStorageItem(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp; storageId, const String&amp; key) override;
</ins><span class="cx"> 
</span><span class="cx">     // Called from the injected script.
</span><span class="cx">     String storageId(Storage*);
</span><del>-    RefPtr&lt;Inspector::Protocol::DOMStorage::StorageId&gt; storageId(SecurityOrigin*, bool isLocalStorage);
</del><ins>+    PassRefPtr&lt;Inspector::Protocol::DOMStorage::StorageId&gt; storageId(SecurityOrigin*, bool isLocalStorage);
</ins><span class="cx"> 
</span><span class="cx">     // Called from InspectorInstrumentation
</span><span class="cx">     void didDispatchDOMStorageEvent(const String&amp; key, const String&amp; oldValue, const String&amp; newValue, StorageType, SecurityOrigin*, Page*);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    RefPtr&lt;StorageArea&gt; findStorageArea(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;&amp;, Frame*&amp;);
</del><ins>+    PassRefPtr&lt;StorageArea&gt; findStorageArea(ErrorString&amp;, const RefPtr&lt;Inspector::InspectorObject&gt;&amp;, Frame*&amp;);
</ins><span class="cx"> 
</span><span class="cx">     InspectorPageAgent* m_pageAgent;
</span><span class="cx">     std::unique_ptr&lt;Inspector::InspectorDOMStorageFrontendDispatcher&gt; m_frontendDispatcher;
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDatabaseAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDatabaseAgent.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDatabaseAgent.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorDatabaseAgent.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -58,20 +58,19 @@
</span><span class="cx"> 
</span><span class="cx"> namespace {
</span><span class="cx"> 
</span><del>-void reportTransactionFailed(ExecuteSQLCallback&amp; requestCallback, SQLError* error)
</del><ins>+void reportTransactionFailed(ExecuteSQLCallback* requestCallback, SQLError* error)
</ins><span class="cx"> {
</span><del>-    auto errorObject = Inspector::Protocol::Database::Error::create()
</del><ins>+    RefPtr&lt;Inspector::Protocol::Database::Error&gt; errorObject = Inspector::Protocol::Database::Error::create()
</ins><span class="cx">         .setMessage(error-&gt;message())
</span><del>-        .setCode(error-&gt;code())
-        .release();
-    requestCallback.sendSuccess(nullptr, nullptr, WTF::move(errorObject));
</del><ins>+        .setCode(error-&gt;code());
+    requestCallback-&gt;sendSuccess(nullptr, nullptr, errorObject.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> class StatementCallback : public SQLStatementCallback {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;StatementCallback&gt; create(Ref&lt;ExecuteSQLCallback&gt;&amp;&amp; requestCallback)
</del><ins>+    static PassRefPtr&lt;StatementCallback&gt; create(PassRefPtr&lt;ExecuteSQLCallback&gt; requestCallback)
</ins><span class="cx">     {
</span><del>-        return adoptRef(*new StatementCallback(WTF::move(requestCallback)));
</del><ins>+        return adoptRef(new StatementCallback(requestCallback));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     virtual ~StatementCallback() { }
</span><span class="lines">@@ -80,60 +79,57 @@
</span><span class="cx">     {
</span><span class="cx">         SQLResultSetRowList* rowList = resultSet-&gt;rows();
</span><span class="cx"> 
</span><del>-        auto columnNames = Inspector::Protocol::Array&lt;String&gt;::create();
</del><ins>+        RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames = Inspector::Protocol::Array&lt;String&gt;::create();
</ins><span class="cx">         const Vector&lt;String&gt;&amp; columns = rowList-&gt;columnNames();
</span><span class="cx">         for (size_t i = 0; i &lt; columns.size(); ++i)
</span><span class="cx">             columnNames-&gt;addItem(columns[i]);
</span><span class="cx"> 
</span><del>-        auto values = Inspector::Protocol::Array&lt;InspectorValue&gt;::create();
</del><ins>+        RefPtr&lt;Inspector::Protocol::Array&lt;InspectorValue&gt;&gt; values = Inspector::Protocol::Array&lt;InspectorValue&gt;::create();
</ins><span class="cx">         const Vector&lt;SQLValue&gt;&amp; data = rowList-&gt;values();
</span><span class="cx">         for (size_t i = 0; i &lt; data.size(); ++i) {
</span><span class="cx">             const SQLValue&amp; value = rowList-&gt;values()[i];
</span><del>-            RefPtr&lt;InspectorValue&gt; inspectorValue;
</del><span class="cx">             switch (value.type()) {
</span><del>-            case SQLValue::StringValue: inspectorValue = InspectorString::create(value.string()); break;
-            case SQLValue::NumberValue: inspectorValue = InspectorBasicValue::create(value.number()); break;
-            case SQLValue::NullValue: inspectorValue = InspectorValue::null(); break;
</del><ins>+            case SQLValue::StringValue: values-&gt;addItem(InspectorString::create(value.string())); break;
+            case SQLValue::NumberValue: values-&gt;addItem(InspectorBasicValue::create(value.number())); break;
+            case SQLValue::NullValue: values-&gt;addItem(InspectorValue::null()); break;
</ins><span class="cx">             }
</span><del>-            
-            values-&gt;addItem(WTF::move(inspectorValue));
</del><span class="cx">         }
</span><del>-        m_requestCallback-&gt;sendSuccess(WTF::move(columnNames), WTF::move(values), nullptr);
</del><ins>+        m_requestCallback-&gt;sendSuccess(columnNames.release(), values.release(), nullptr);
</ins><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    StatementCallback(Ref&lt;ExecuteSQLCallback&gt;&amp;&amp; requestCallback)
-        : m_requestCallback(WTF::move(requestCallback)) { }
-    Ref&lt;ExecuteSQLCallback&gt; m_requestCallback;
</del><ins>+    StatementCallback(PassRefPtr&lt;ExecuteSQLCallback&gt; requestCallback)
+        : m_requestCallback(requestCallback) { }
+    RefPtr&lt;ExecuteSQLCallback&gt; m_requestCallback;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class StatementErrorCallback : public SQLStatementErrorCallback {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;StatementErrorCallback&gt; create(Ref&lt;ExecuteSQLCallback&gt;&amp;&amp; requestCallback)
</del><ins>+    static PassRefPtr&lt;StatementErrorCallback&gt; create(PassRefPtr&lt;ExecuteSQLCallback&gt; requestCallback)
</ins><span class="cx">     {
</span><del>-        return adoptRef(*new StatementErrorCallback(WTF::move(requestCallback)));
</del><ins>+        return adoptRef(new StatementErrorCallback(requestCallback));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     virtual ~StatementErrorCallback() { }
</span><span class="cx"> 
</span><span class="cx">     virtual bool handleEvent(SQLTransaction*, SQLError* error) override
</span><span class="cx">     {
</span><del>-        reportTransactionFailed(m_requestCallback.copyRef(), error);
</del><ins>+        reportTransactionFailed(m_requestCallback.get(), error);
</ins><span class="cx">         return true;  
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    StatementErrorCallback(Ref&lt;ExecuteSQLCallback&gt;&amp;&amp; requestCallback)
-        : m_requestCallback(WTF::move(requestCallback)) { }
-    Ref&lt;ExecuteSQLCallback&gt; m_requestCallback;
</del><ins>+    StatementErrorCallback(PassRefPtr&lt;ExecuteSQLCallback&gt; requestCallback)
+        : m_requestCallback(requestCallback) { }
+    RefPtr&lt;ExecuteSQLCallback&gt; m_requestCallback;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class TransactionCallback : public SQLTransactionCallback {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;TransactionCallback&gt; create(const String&amp; sqlStatement, Ref&lt;ExecuteSQLCallback&gt;&amp;&amp; requestCallback)
</del><ins>+    static PassRefPtr&lt;TransactionCallback&gt; create(const String&amp; sqlStatement, PassRefPtr&lt;ExecuteSQLCallback&gt; requestCallback)
</ins><span class="cx">     {
</span><del>-        return adoptRef(*new TransactionCallback(sqlStatement, WTF::move(requestCallback)));
</del><ins>+        return adoptRef(new TransactionCallback(sqlStatement, requestCallback));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     virtual ~TransactionCallback() { }
</span><span class="lines">@@ -144,24 +140,24 @@
</span><span class="cx">             return true;
</span><span class="cx"> 
</span><span class="cx">         Vector&lt;SQLValue&gt; sqlValues;
</span><del>-        Ref&lt;SQLStatementCallback&gt; callback(StatementCallback::create(m_requestCallback.copyRef()));
-        Ref&lt;SQLStatementErrorCallback&gt; errorCallback(StatementErrorCallback::create(m_requestCallback.copyRef()));
-        transaction-&gt;executeSQL(m_sqlStatement, sqlValues, WTF::move(callback), WTF::move(errorCallback), IGNORE_EXCEPTION);
</del><ins>+        RefPtr&lt;SQLStatementCallback&gt; callback(StatementCallback::create(m_requestCallback.get()));
+        RefPtr&lt;SQLStatementErrorCallback&gt; errorCallback(StatementErrorCallback::create(m_requestCallback.get()));
+        transaction-&gt;executeSQL(m_sqlStatement, sqlValues, callback.release(), errorCallback.release(), IGNORE_EXCEPTION);
</ins><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx"> private:
</span><del>-    TransactionCallback(const String&amp; sqlStatement, Ref&lt;ExecuteSQLCallback&gt;&amp;&amp; requestCallback)
</del><ins>+    TransactionCallback(const String&amp; sqlStatement, PassRefPtr&lt;ExecuteSQLCallback&gt; requestCallback)
</ins><span class="cx">         : m_sqlStatement(sqlStatement)
</span><del>-        , m_requestCallback(WTF::move(requestCallback)) { }
</del><ins>+        , m_requestCallback(requestCallback) { }
</ins><span class="cx">     String m_sqlStatement;
</span><del>-    Ref&lt;ExecuteSQLCallback&gt; m_requestCallback;
</del><ins>+    RefPtr&lt;ExecuteSQLCallback&gt; m_requestCallback;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class TransactionErrorCallback : public SQLTransactionErrorCallback {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;TransactionErrorCallback&gt; create(Ref&lt;ExecuteSQLCallback&gt;&amp;&amp; requestCallback)
</del><ins>+    static PassRefPtr&lt;TransactionErrorCallback&gt; create(PassRefPtr&lt;ExecuteSQLCallback&gt; requestCallback)
</ins><span class="cx">     {
</span><del>-        return adoptRef(*new TransactionErrorCallback(WTF::move(requestCallback)));
</del><ins>+        return adoptRef(new TransactionErrorCallback(requestCallback));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     virtual ~TransactionErrorCallback() { }
</span><span class="lines">@@ -172,16 +168,16 @@
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx"> private:
</span><del>-    TransactionErrorCallback(Ref&lt;ExecuteSQLCallback&gt;&amp;&amp; requestCallback)
-        : m_requestCallback(WTF::move(requestCallback)) { }
-    Ref&lt;ExecuteSQLCallback&gt; m_requestCallback;
</del><ins>+    TransactionErrorCallback(PassRefPtr&lt;ExecuteSQLCallback&gt; requestCallback)
+        : m_requestCallback(requestCallback) { }
+    RefPtr&lt;ExecuteSQLCallback&gt; m_requestCallback;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class TransactionSuccessCallback : public VoidCallback {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;TransactionSuccessCallback&gt; create()
</del><ins>+    static PassRefPtr&lt;TransactionSuccessCallback&gt; create()
</ins><span class="cx">     {
</span><del>-        return adoptRef(*new TransactionSuccessCallback());
</del><ins>+        return adoptRef(new TransactionSuccessCallback());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     virtual ~TransactionSuccessCallback() { }
</span><span class="lines">@@ -276,8 +272,10 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorDatabaseAgent::executeSQL(ErrorString&amp;, const String&amp; databaseId, const String&amp; query, Ref&lt;ExecuteSQLCallback&gt;&amp;&amp; requestCallback)
</del><ins>+void InspectorDatabaseAgent::executeSQL(ErrorString&amp;, const String&amp; databaseId, const String&amp; query, PassRefPtr&lt;ExecuteSQLCallback&gt; prpRequestCallback)
</ins><span class="cx"> {
</span><ins>+    RefPtr&lt;ExecuteSQLCallback&gt; requestCallback = prpRequestCallback;
+
</ins><span class="cx">     if (!m_enabled) {
</span><span class="cx">         requestCallback-&gt;sendFailure(&quot;Database agent is not enabled&quot;);
</span><span class="cx">         return;
</span><span class="lines">@@ -289,10 +287,10 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Ref&lt;SQLTransactionCallback&gt; callback(TransactionCallback::create(query, requestCallback.get()));
-    Ref&lt;SQLTransactionErrorCallback&gt; errorCallback(TransactionErrorCallback::create(requestCallback.get()));
-    Ref&lt;VoidCallback&gt; successCallback(TransactionSuccessCallback::create());
-    database-&gt;transaction(WTF::move(callback), WTF::move(errorCallback), WTF::move(successCallback));
</del><ins>+    RefPtr&lt;SQLTransactionCallback&gt; callback(TransactionCallback::create(query, requestCallback.get()));
+    RefPtr&lt;SQLTransactionErrorCallback&gt; errorCallback(TransactionErrorCallback::create(requestCallback.get()));
+    RefPtr&lt;VoidCallback&gt; successCallback(TransactionSuccessCallback::create());
+    database-&gt;transaction(callback.release(), errorCallback.release(), successCallback.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String InspectorDatabaseAgent::databaseId(Database* database)
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDatabaseAgenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDatabaseAgent.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDatabaseAgent.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorDatabaseAgent.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx">     virtual void enable(ErrorString&amp;) override;
</span><span class="cx">     virtual void disable(ErrorString&amp;) override;
</span><span class="cx">     virtual void getDatabaseTableNames(ErrorString&amp;, const String&amp; databaseId, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp; names) override;
</span><del>-    virtual void executeSQL(ErrorString&amp;, const String&amp; databaseId, const String&amp; query, Ref&lt;ExecuteSQLCallback&gt;&amp;&amp;) override;
</del><ins>+    virtual void executeSQL(ErrorString&amp;, const String&amp; databaseId, const String&amp; query, PassRefPtr&lt;ExecuteSQLCallback&gt;) override;
</ins><span class="cx"> 
</span><span class="cx">     // Called from the injected script.
</span><span class="cx">     String databaseId(Database*);
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDatabaseInstrumentationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDatabaseInstrumentation.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDatabaseInstrumentation.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorDatabaseInstrumentation.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -38,11 +38,11 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SQL_DATABASE)
</span><del>-inline void InspectorInstrumentation::didOpenDatabase(ScriptExecutionContext* context, RefPtr&lt;Database&gt;&amp;&amp; database, const String&amp; domain, const String&amp; name, const String&amp; version)
</del><ins>+inline void InspectorInstrumentation::didOpenDatabase(ScriptExecutionContext* context, PassRefPtr&lt;Database&gt; database, const String&amp; domain, const String&amp; name, const String&amp; version)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx">     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForContext(context))
</span><del>-        didOpenDatabaseImpl(*instrumentingAgents, WTF::move(database), domain, name, version);
</del><ins>+        didOpenDatabaseImpl(*instrumentingAgents, database, domain, name, version);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(context);
</span><span class="cx">     UNUSED_PARAM(database);
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDatabaseResourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDatabaseResource.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDatabaseResource.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorDatabaseResource.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -43,12 +43,12 @@
</span><span class="cx"> 
</span><span class="cx"> static int nextUnusedId = 1;
</span><span class="cx"> 
</span><del>-Ref&lt;InspectorDatabaseResource&gt; InspectorDatabaseResource::create(RefPtr&lt;Database&gt;&amp;&amp; database, const String&amp; domain, const String&amp; name, const String&amp; version)
</del><ins>+PassRefPtr&lt;InspectorDatabaseResource&gt; InspectorDatabaseResource::create(PassRefPtr&lt;Database&gt; database, const String&amp; domain, const String&amp; name, const String&amp; version)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new InspectorDatabaseResource(WTF::move(database), domain, name, version));
</del><ins>+    return adoptRef(new InspectorDatabaseResource(database, domain, name, version));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-InspectorDatabaseResource::InspectorDatabaseResource(RefPtr&lt;Database&gt;&amp;&amp; database, const String&amp; domain, const String&amp; name, const String&amp; version)
</del><ins>+InspectorDatabaseResource::InspectorDatabaseResource(PassRefPtr&lt;Database&gt; database, const String&amp; domain, const String&amp; name, const String&amp; version)
</ins><span class="cx">     : m_database(database)
</span><span class="cx">     , m_id(String::number(nextUnusedId++))
</span><span class="cx">     , m_domain(domain)
</span><span class="lines">@@ -59,13 +59,12 @@
</span><span class="cx"> 
</span><span class="cx"> void InspectorDatabaseResource::bind(InspectorDatabaseFrontendDispatcher* databaseFrontendDispatcher)
</span><span class="cx"> {
</span><del>-    auto jsonObject = Inspector::Protocol::Database::Database::create()
</del><ins>+    RefPtr&lt;Inspector::Protocol::Database::Database&gt; jsonObject = Inspector::Protocol::Database::Database::create()
</ins><span class="cx">         .setId(m_id)
</span><span class="cx">         .setDomain(m_domain)
</span><span class="cx">         .setName(m_name)
</span><del>-        .setVersion(m_version)
-        .release();
-    databaseFrontendDispatcher-&gt;addDatabase(WTF::move(jsonObject));
</del><ins>+        .setVersion(m_version);
+    databaseFrontendDispatcher-&gt;addDatabase(jsonObject);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDatabaseResourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDatabaseResource.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDatabaseResource.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorDatabaseResource.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #if ENABLE(SQL_DATABASE) &amp;&amp; ENABLE(INSPECTOR)
</span><span class="cx"> 
</span><span class="cx"> #include &lt;inspector/InspectorFrontendDispatchers.h&gt;
</span><ins>+#include &lt;wtf/PassRefPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/RefCounted.h&gt;
</span><span class="cx"> #include &lt;wtf/RefPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="lines">@@ -44,15 +45,15 @@
</span><span class="cx"> 
</span><span class="cx"> class InspectorDatabaseResource : public RefCounted&lt;InspectorDatabaseResource&gt; {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;InspectorDatabaseResource&gt; create(RefPtr&lt;Database&gt;&amp;&amp;, const String&amp; domain, const String&amp; name, const String&amp; version);
</del><ins>+    static PassRefPtr&lt;InspectorDatabaseResource&gt; create(PassRefPtr&lt;Database&gt; database, const String&amp; domain, const String&amp; name, const String&amp; version);
</ins><span class="cx"> 
</span><span class="cx">     void bind(Inspector::InspectorDatabaseFrontendDispatcher*);
</span><span class="cx">     Database* database() { return m_database.get(); }
</span><del>-    void setDatabase(RefPtr&lt;Database&gt;&amp;&amp; database) { m_database = database; }
</del><ins>+    void setDatabase(PassRefPtr&lt;Database&gt; database) { m_database = database; }
</ins><span class="cx">     String id() const { return m_id; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    InspectorDatabaseResource(RefPtr&lt;Database&gt;&amp;&amp;, const String&amp; domain, const String&amp; name, const String&amp; version);
</del><ins>+    InspectorDatabaseResource(PassRefPtr&lt;Database&gt;, const String&amp; domain, const String&amp; name, const String&amp; version);
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Database&gt; m_database;
</span><span class="cx">     String m_id;
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorFrontendHosth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorFrontendHost.h (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorFrontendHost.h        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorFrontendHost.h        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -45,9 +45,9 @@
</span><span class="cx"> 
</span><span class="cx"> class InspectorFrontendHost : public RefCounted&lt;InspectorFrontendHost&gt; {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;InspectorFrontendHost&gt; create(InspectorFrontendClient* client, Page* frontendPage)
</del><ins>+    static PassRefPtr&lt;InspectorFrontendHost&gt; create(InspectorFrontendClient* client, Page* frontendPage)
</ins><span class="cx">     {
</span><del>-        return adoptRef(*new InspectorFrontendHost(client, frontendPage));
</del><ins>+        return adoptRef(new InspectorFrontendHost(client, frontendPage));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT ~InspectorFrontendHost();
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorIndexedDBAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp (178041 => 178042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp        2015-01-07 18:33:52 UTC (rev 178041)
+++ trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp        2015-01-07 19:32:05 UTC (rev 178042)
</span><span class="lines">@@ -92,9 +92,9 @@
</span><span class="cx"> class GetDatabaseNamesCallback : public EventListener {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(GetDatabaseNamesCallback);
</span><span class="cx"> public:
</span><del>-    static Ref&lt;GetDatabaseNamesCallback&gt; create(Ref&lt;RequestDatabaseNamesCallback&gt;&amp;&amp; requestCallback, const String&amp; securityOrigin)
</del><ins>+    static PassRefPtr&lt;GetDatabaseNamesCallback&gt; create(PassRefPtr&lt;RequestDatabaseNamesCallback&gt; requestCallback, const String&amp; securityOrigin)
</ins><span class="cx">     {
</span><del>-        return adoptRef(*new GetDatabaseNamesCallback(WTF::move(requestCallback), securityOrigin));
</del><ins>+        return adoptRef(new GetDatabaseNamesCallback(requestCallback, securityOrigin));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     virtual ~GetDatabaseNamesCallback() { }
</span><span class="lines">@@ -126,18 +126,18 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         RefPtr&lt;DOMStringList&gt; databaseNamesList = requestResult-&gt;domStringList();
</span><del>-        Ref&lt;Inspector::Protocol::Array&lt;String&gt;&gt; databaseNames = Inspector::Protocol::Array&lt;String&gt;::create();
</del><ins>+        RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; databaseNames = Inspector::Protocol::Array&lt;String&gt;::create();
</ins><span class="cx">         for (size_t i = 0; i &lt; databaseNamesList-&gt;length(); ++i)
</span><span class="cx">             databaseNames-&gt;addItem(databaseNamesList-&gt;item(i));
</span><del>-        m_requestCallback-&gt;sendSuccess(WTF::move(databaseNames));
</del><ins>+        m_requestCallback-&gt;sendSuccess(databaseNames.release());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    GetDatabaseNamesCallback(Ref&lt;RequestDatabaseNamesCallback&gt;&amp;&amp; requestCallback, const String&amp; securityOrigin)
</del><ins>+    GetDatabaseNamesCallback(PassRefPtr&lt;RequestDatabaseNamesCallback&gt; requestCallback, const String&amp; securityOrigin)
</ins><span class="cx">         : EventListener(EventListener::CPPEventListenerType)
</span><del>-        , m_requestCallback(WTF::move(requestCallback))
</del><ins>+        , m_requestCallback(requestCallback)
</ins><span class="cx">         , m_securityOrigin(securityOrigin) { }
</span><del>-    Ref&lt;RequestDatabaseNamesCallback&gt; m_requestCallback;
</del><ins>+    RefPtr&lt;RequestDatabaseNamesCallback&gt; m_requestCallback;
</ins><span class="cx">     String m_securityOrigin;
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -147,8 +147,8 @@
</span><span class="cx">         : m_context(context) { }
</span><span class="cx">     virtual ~ExecutableWithDatabase() { };
</span><span class="cx">     void start(IDBFactory*, SecurityOrigin*, const String&amp; databaseName);
</span><del>-    virtual void execute(RefPtr&lt;IDBDatabase&gt;&amp;&amp;) = 0;
-    virtual RequestCallback&amp; requestCallback() = 0;
</del><ins>+    virtual void execute(PassRefPtr&lt;IDBDatabase&gt;) = 0;
+    virtual RequestCallback* requestCallback() = 0;
</ins><span class="cx">     ScriptExecutionContext* context() { return m_context; };
</span><span class="cx"> private:
</span><span class="cx">     ScriptExecutionContext* m_context;
</span><span class="lines">@@ -156,9 +156,9 @@
</span><span class="cx"> 
</span><span class="cx"> class OpenDatabaseCallback : public EventListener {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;OpenDatabaseCallback&gt; create(ExecutableWithDatabase* executableWithDatabase)
</del><ins>+    static PassRefPtr&lt;OpenDatabaseCallback&gt; create(ExecutableWithDatabase* executableWithDatabase)
</ins><span class="cx">     {
</span><del>-        return adoptRef(*new OpenDatabaseCallback(executableWithDatabase));
</del><ins>+        return adoptRef(new OpenDatabaseCallback(executableWithDatabase));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     virtual ~OpenDatabaseCallback() { }
</span><span class="lines">@@ -171,7 +171,7 @@
</span><span class="cx">     virtual void handleEvent(ScriptExecutionContext*, Event* event) override
</span><span class="cx">     {
</span><span class="cx">         if (event-&gt;type() != eventNames().successEvent) {
</span><del>-            m_executableWithDatabase-&gt;requestCallback().sendFailure(&quot;Unexpected event type.&quot;);
</del><ins>+            m_executableWithDatabase-&gt;requestCallback()-&gt;sendFailure(&quot;Unexpected event type.&quot;);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -179,16 +179,16 @@
</span><span class="cx">         ExceptionCode ec = 0;
</span><span class="cx">         RefPtr&lt;IDBAny&gt; requestResult = idbOpenDBRequest-&gt;result(ec);
</span><span class="cx">         if (ec) {
</span><del>-            m_executableWithDatabase-&gt;requestCallback().sendFailure(&quot;Could not get result in callback.&quot;);
</del><ins>+            m_executableWithDatabase-&gt;requestCallback()-&gt;sendFailure(&quot;Could not get result in callback.&quot;);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         if (requestResult-&gt;type() != IDBAny::IDBDatabaseType) {
</span><del>-            m_executableWithDatabase-&gt;requestCallback().sendFailure(&quot;Unexpected result type.&quot;);
</del><ins>+            m_executableWithDatabase-&gt;requestCallback()-&gt;sendFailure(&quot;Unexpected result type.&quot;);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         RefPtr&lt;IDBDatabase&gt; idbDatabase = requestResult-&gt;idbDatabase();
</span><del>-        m_executableWithDatabase-&gt;execute(WTF::move(idbDatabase));
</del><ins>+        m_executableWithDatabase-&gt;execute(idbDatabase);
</ins><span class="cx">         IDBPendingTransactionMonitor::deactivateNewTransactions();
</span><span class="cx">         idbDatabase-&gt;close();
</span><span class="cx">     }
</span><span class="lines">@@ -202,136 +202,127 @@
</span><span class="cx"> 
</span><span class="cx"> void ExecutableWithDatabase::start(IDBFactory* idbFactory, SecurityOrigin*, const String&amp; databaseName)
</span><span class="cx"> {
</span><del>-    Ref&lt;OpenDatabaseCallback&gt; callback = OpenDatabaseCallback::create(this);
</del><ins>+    RefPtr&lt;OpenDatabaseCallback&gt; callback = OpenDatabaseCallback::create(this);
</ins><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     RefPtr&lt;IDBOpenDBRequest&gt; idbOpenDBRequest = idbFactory-&gt;open(context(), databaseName, ec);
</span><span class="cx">     if (ec) {
</span><del>-        requestCallback().sendFailure(&quot;Could not open database.&quot;);
</del><ins>+        requestCallback()-&gt;sendFailure(&quot;Could not open database.&quot;);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    idbOpenDBRequest-&gt;addEventListener(eventNames().successEvent, WTF::move(callback), false);
</del><ins>+    idbOpenDBRequest-&gt;addEventListener(eventNames().successEvent, callback, false);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static RefPtr&lt;IDBTransaction&gt; transactionForDatabase(ScriptExecutionContext* scriptExecutionContext, IDBDatabase* idbDatabase, const String&amp; objectStoreName, const String&amp; mode = IDBTransaction::modeReadOnly())
</del><ins>+static PassRefPtr&lt;IDBTransaction&gt; transactionForDatabase(ScriptExecutionContext* scriptExecutionContext, IDBDatabase* idbDatabase, const String&amp; objectStoreName, const String&amp; mode = IDBTransaction::modeReadOnly())
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     RefPtr&lt;IDBTransaction&gt; idbTransaction = idbDatabase-&gt;transaction(scriptExecutionContext, objectStoreName, mode, ec);
</span><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><del>-    return WTF::move(idbTransaction);
</del><ins>+    return idbTransaction;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static RefPtr&lt;IDBObjectStore&gt; objectStoreForTransaction(IDBTransaction* idbTransaction, const String&amp; objectStoreName)
</del><ins>+static PassRefPtr&lt;IDBObjectStore&gt; objectStoreForTransaction(IDBTransaction* idbTransaction, const String&amp; objectStoreName)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     RefPtr&lt;IDBObjectStore&gt; idbObjectStore = idbTransaction-&gt;objectStore(objectStoreName, ec);
</span><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><del>-    return WTF::move(idbObjectStore);
</del><ins>+    return idbObjectStore;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static RefPtr&lt;IDBIndex&gt; indexForObjectStore(IDBObjectStore* idbObjectStore, const String&amp; indexName)
</del><ins>+static PassRefPtr&lt;IDBIndex&gt; indexForObjectStore(IDBObjectStore* idbObjectStore, const String&amp; indexName)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     RefPtr&lt;IDBIndex&gt; idbIndex = idbObjectStore-&gt;index(indexName, ec);
</span><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><del>-    return WTF::move(idbIndex);
</del><ins>+    return idbIndex;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static RefPtr&lt;KeyPath&gt; keyPathFromIDBKeyPath(const IDBKeyPath&amp; idbKeyPath)
</del><ins>+static PassRefPtr&lt;KeyPath&gt; keyPathFromIDBKeyPath(const IDBKeyPath&amp; idbKeyPath)
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;KeyPath&gt; keyPath;
</span><span class="cx">     switch (idbKeyPath.type()) {
</span><span class="cx">     case IDBKeyPath::NullType:
</span><del>-        keyPath = KeyPath::create()
-            .setType(KeyPath::Type::Null)
-            .release();
</del><ins>+        keyPath = KeyPath::create().setType(KeyPath::Type::Null);
</ins><span class="cx">         break;
</span><span class="cx">     case IDBKeyPath::StringType:
</span><del>-        keyPath = KeyPath::create()
-            .setType(KeyPath::Type::String)
-            .release();
</del><ins>+        keyPath = KeyPath::create().setType(KeyPath::Type::String);
</ins><span class="cx">         keyPath-&gt;setString(idbKeyPath.string());
</span><del>-
</del><span class="cx">         break;
</span><span class="cx">     case IDBKeyPath::ArrayType: {
</span><del>-        auto array = Inspector::Protocol::Array&lt;String&gt;::create();
</del><ins>+        keyPath = KeyPath::create().setType(KeyPath::Type::Array);
+        RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; array = Inspector::Protocol::Array&lt;String&gt;::create();
</ins><span class="cx">         const Vector&lt;String&gt;&amp; stringArray = idbKeyPath.array();
</span><span class="cx">         for (size_t i = 0; i &lt; stringArray.size(); ++i)
</span><span class="cx">             array-&gt;addItem(stringArray[i]);
</span><del>-        keyPath = KeyPath::create()
-            .setType(KeyPath::Type::Array)
-            .release();
-        keyPath-&gt;setArray(WTF::move(array));
</del><ins>+        keyPath-&gt;setArray(array);
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     default:
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return WTF::move(keyPath);
</del><ins>+    return keyPath.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> class DatabaseLoader : public ExecutableWithDatabase {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;DatabaseLoader&gt; create(ScriptExecutionContext* context, Ref&lt;RequestDatabaseCallback&gt;&amp;&amp; requestCallback)
</del><ins>+    static PassRefPtr&lt;DatabaseLoader&gt; create(ScriptExecutionContext* context, PassRefPtr&lt;RequestDatabaseCallback&gt; requestCallback)
</ins><span class="cx">     {
</span><del>-        return adoptRef(*new DatabaseLoader(context, WTF::move(requestCallback)));
</del><ins>+        return adoptRef(new DatabaseLoader(context, requestCallback));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     virtual ~DatabaseLoader() { }
</span><span class="cx"> 
</span><del>-    virtual void execute(RefPtr&lt;IDBDatabase&gt;&amp;&amp; database) override
</del><ins>+    virtual void execute(PassRefPtr&lt;IDBDatabase&gt; prpDatabase) override
</ins><span class="cx">     {
</span><del>-        if (!requestCallback().isActive())
</del><ins>+        RefPtr&lt;IDBDatabase&gt; idbDatabase = prpDatabase;
+        if (!requestCallback()-&gt;isActive())
</ins><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        const IDBDatabaseMetadata databaseMetadata = database-&gt;metadata();
</del><ins>+        const IDBDatabaseMetadata databaseMetadata = idbDatabase-&gt;metadata();
</ins><span class="cx"> 
</span><del>-        auto objectStores = Inspector::Protocol::Array&lt;Inspector::Protocol::IndexedDB::ObjectStore&gt;::create();
</del><ins>+        RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::IndexedDB::ObjectStore&gt;&gt; objectStores = Inspector::Protocol::Array&lt;Inspector::Protocol::IndexedDB::ObjectStore&gt;::create();
</ins><span class="cx"> 
</span><span class="cx">         for (const IDBObjectStoreMetadata&amp; objectStoreMetadata : databaseMetadata.objectStores.values()) {
</span><del>-            auto indexes = Inspector::Protocol::Array&lt;Inspector::Protocol::IndexedDB::ObjectStoreIndex&gt;::create();
</del><ins>+            RefPtr&lt;Inspector::Protocol::Array&lt;Inspector::Protocol::IndexedDB::ObjectStoreIndex&gt;&gt; indexes = Inspector::Protocol::Array&lt;Inspector::Protocol::IndexedDB::ObjectStoreIndex&gt;::create();
</ins><span class="cx"> 
</span><span class="cx">             for (const IDBIndexMetadata&amp; indexMetadata : objectStoreMetadata.indexes.values()) {
</span><del>-                Ref&lt;ObjectStoreIndex&gt; objectStoreIndex = ObjectStoreIndex::create()
</del><ins>+                RefPtr&lt;ObjectStoreIndex&gt; objectStoreIndex = ObjectStoreIndex::create()
</ins><span class="cx">                     .setName(indexMetadata.name)
</span><span class="cx">                     .setKeyPath(keyPathFromIDBKeyPath(indexMetadata.keyPath))
</span><span class="cx">                     .setUnique(indexMetadata.unique)
</span><del>-                    .setMultiEntry(indexMetadata.multiEntry)
-                    .release();
-                indexes-&gt;addItem(WTF::move(objectStoreIndex));
</del><ins>+                    .setMultiEntry(indexMetadata.multiEntry);
+                indexes-&gt;addItem(objectStoreIndex);
</ins><span class="cx">             }
</span><span class="cx"> 
</span><del>-            Ref&lt;ObjectStore&gt; objectStore = ObjectStore::create()
</del><ins>+            RefPtr&lt;ObjectStore&gt; objectStore = ObjectStore::create()
</ins><span class="cx">                 .setName(objectStoreMetadata.name)
</span><span class="cx">                 .setKeyPath(keyPathFromIDBKeyPath(objectStoreMetadata.keyPath))
</span><span class="cx">                 .setAutoIncrement(objectStoreMetadata.autoIncrement)
</span><del>-                .setIndexes(WTF::move(indexes))
-                .release();
</del><ins>+                .setIndexes(indexes);
</ins><span class="cx"> 
</span><del>-            objectStores-&gt;addItem(WTF::move(objectStore));
</del><ins>+            objectStores-&gt;addItem(objectStore);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Ref&lt;DatabaseWithObjectStores&gt; result = DatabaseWithObjectStores::create()
</del><ins>+        RefPtr&lt;DatabaseWithObjectStores&gt; result = DatabaseWithObjectStores::create()
</ins><span class="cx">             .setName(databaseMetadata.name)
</span><span class="cx">             .setVersion(databaseMetadata.version)
</span><del>-            .setObjectStores(WTF::move(objectStores))
-            .release();
</del><ins>+            .setObjectStores(objectStores);
</ins><span class="cx"> 
</span><del>-        m_requestCallback-&gt;sendSuccess(WTF::move(result));
</del><ins>+        m_requestCallback-&gt;sendSuccess(result);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    virtual RequestCallback&amp; requestCallback() override { return m_requestCallback.get(); }
</del><ins>+    virtual RequestCallback* requestCallback() override { return m_requestCallback.get(); }
</ins><span class="cx"> private:
</span><del>-    DatabaseLoader(ScriptExecutionContext* context, Ref&lt;RequestDatabaseCallback&gt;&amp;&amp; requestCallback)
</del><ins>+    DatabaseLoader(ScriptExecutionContext* context, PassRefPtr&lt;RequestDatabaseCallback&gt; requestCallback)
</ins><span class="cx">         : ExecutableWithDatabase(context)
</span><del>-        , m_requestCallback(WTF::move(requestCallback)) { }
-    Ref&lt;RequestDatabaseCallback&gt; m_requestCallback;
</del><ins>+        , m_requestCallback(requestCallback) { }
+    RefPtr&lt;RequestDatabaseCallback&gt; m_requestCallback;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><del>-static RefPtr&lt;IDBKey&gt; idbKeyFromInspectorObject(InspectorObject* key)
</del><ins>+static PassRefPtr&lt;IDBKey&gt; idbKeyFromInspectorObject(InspectorObject* key)
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;IDBKey&gt; idbKey;
</span><span class="cx"> 
</span><span class="lines">@@ -361,9 +352,7 @@
</span><span class="cx">         idbKey = IDBKey::createDate(date);
</span><span class="cx">     } else if (type == arrayType) {
</span><span class="cx">         IDBKey::KeyArray keyArray;
</span><del>-        RefPtr&lt;InspectorArray&gt; array;
-        if (!key-&gt;getArray(&quot;array&quot;, array))
-            return nullptr;
</del><ins>+        RefPtr&lt;InspectorArray&gt; array = key-&gt;getArray(&quot;array&quot;);
</ins><span class="cx">         for (size_t i = 0; i &lt; array-&gt;length(); ++i) {
</span><span class="cx">             RefPtr&lt;InspectorValue&gt; value = array-&gt;get(i);
</span><span class="cx">             RefPtr&lt;InspectorObject&gt; object;
</span><span class="lines">@@ -378,21 +367,17 @@
</span><span class="cx">     return idbKey.release();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static RefPtr&lt;IDBKeyRange&gt; idbKeyRangeFromKeyRange(InspectorObject* keyRange)
</del><ins>+static PassRefPtr&lt;IDBKeyRange&gt; idbKeyRangeFromKeyRange(InspectorObject* keyRange)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;InspectorObject&gt; lower;
-    if (!keyRange-&gt;getObject(&quot;lower&quot;, lower))
</del><ins>+    RefPtr&lt;InspectorObject&gt; lower = keyRange-&gt;getObject(&quot;lower&quot;);
+    RefPtr&lt;IDBKey&gt; idbLower = lower ? idbKeyFromInspectorObject(lower.get()) : nullptr;
+    if (lower &amp;&amp;