<!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>[209801] 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/209801">209801</a></dd>
<dt>Author</dt> <dd>utatane.tea@gmail.com</dd>
<dt>Date</dt> <dd>2016-12-14 08:04:30 -0800 (Wed, 14 Dec 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Use JSValue::toWTFString instead of calling toString(exec) and value(exec)
https://bugs.webkit.org/show_bug.cgi?id=165795
Reviewed by Saam Barati.
Source/JavaScriptCore:
In old days, we frequently use the idiom like, `value.toString(exec)->value(exec)` to
get WTFString from the given JSValue. But now, we have better function, `toWTFString`.
`toWTFString` does not create intermediate JSString objects, then reduce unnecessary
allocations.
This patch mechanically replaces `value.toString(exec)->value(exec)` with `toWTFString(exec)`.
* API/JSValueRef.cpp:
(JSValueToStringCopy):
* bindings/ScriptValue.cpp:
(Deprecated::ScriptValue::toString):
* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::reportAPIException):
* inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):
* inspector/JSJavaScriptCallFrame.cpp:
(Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):
* inspector/ScriptCallStackFactory.cpp:
(Inspector::extractSourceInformationFromException):
* runtime/ConsoleObject.cpp:
(JSC::valueToStringWithUndefinedOrNullCheck):
(JSC::valueOrDefaultLabelString):
* runtime/DateConstructor.cpp:
(JSC::dateParse):
* runtime/DatePrototype.cpp:
(JSC::formatLocaleDate):
* runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::sanitizedToString):
* runtime/ErrorPrototype.cpp:
(JSC::errorProtoFuncToString):
* runtime/InspectorInstrumentationObject.cpp:
(JSC::inspectorInstrumentationObjectLog):
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncEval):
* runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::fetch):
* runtime/ModuleLoaderPrototype.cpp:
(JSC::moduleLoaderPrototypeParseModule):
* runtime/RegExpConstructor.cpp:
(JSC::regExpCreate):
* runtime/RegExpPrototype.cpp:
(JSC::regExpProtoFuncCompile):
(JSC::regExpProtoFuncToString):
* runtime/StringPrototype.cpp:
(JSC::replaceUsingRegExpSearch):
(JSC::replaceUsingStringSearch):
(JSC::stringProtoFuncSlice):
(JSC::stringProtoFuncSplitFast):
(JSC::stringProtoFuncSubstr):
(JSC::stringProtoFuncLocaleCompare):
(JSC::stringProtoFuncBig):
(JSC::stringProtoFuncSmall):
(JSC::stringProtoFuncBlink):
(JSC::stringProtoFuncBold):
(JSC::stringProtoFuncFixed):
(JSC::stringProtoFuncItalics):
(JSC::stringProtoFuncStrike):
(JSC::stringProtoFuncSub):
(JSC::stringProtoFuncSup):
(JSC::stringProtoFuncFontcolor):
(JSC::stringProtoFuncFontsize):
(JSC::stringProtoFuncAnchor):
(JSC::stringProtoFuncLink):
(JSC::trimString):
(JSC::stringProtoFuncStartsWith):
(JSC::stringProtoFuncEndsWith):
(JSC::stringProtoFuncIncludes):
(JSC::builtinStringIncludesInternal):
(JSC::stringProtoFuncNormalize):
* tools/JSDollarVMPrototype.cpp:
(JSC::functionPrint):
* wasm/js/JSWebAssemblyCompileError.h:
(JSC::JSWebAssemblyCompileError::create):
* wasm/js/JSWebAssemblyRuntimeError.h:
(JSC::JSWebAssemblyRuntimeError::create):
Source/WebCore:
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromValue):
* bindings/js/JSAudioTrackCustom.cpp:
(WebCore::JSAudioTrack::setKind):
(WebCore::JSAudioTrack::setLanguage):
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::JSCryptoAlgorithmDictionary::getAlgorithmIdentifier):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::setLocation):
* bindings/js/JSDeviceMotionEventCustom.cpp:
(WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
* bindings/js/JSDeviceOrientationEventCustom.cpp:
(WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::callHTMLAllCollection):
(WebCore::JSHTMLAllCollection::namedItem):
* bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
(WebCore::JSHTMLFormControlsCollection::namedItem):
* bindings/js/JSHTMLInputElementCustom.cpp:
(WebCore::JSHTMLInputElement::setSelectionDirection):
* bindings/js/JSInspectorFrontendHostCustom.cpp:
(WebCore::populateContextMenuItems):
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::handleInitMessageEvent):
* bindings/js/JSSQLTransactionCustom.cpp:
(WebCore::JSSQLTransaction::executeSql):
* bindings/js/JSTextTrackCustom.cpp:
(WebCore::JSTextTrack::setLanguage):
* bindings/js/JSVideoTrackCustom.cpp:
(WebCore::JSVideoTrack::setKind):
(WebCore::JSVideoTrack::setLanguage):
* bindings/js/JSWebKitSubtleCryptoCustom.cpp:
(WebCore::cryptoKeyFormatFromJSValue):
(WebCore::cryptoKeyUsagesFromJSValue):
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::send):
* bindings/js/JSXSLTProcessorCustom.cpp:
(WebCore::JSXSLTProcessor::setParameter):
(WebCore::JSXSLTProcessor::getParameter):
(WebCore::JSXSLTProcessor::removeParameter):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::create):
* bridge/c/c_utility.cpp:
(JSC::Bindings::convertValueToNPVariant):
* bridge/testbindings.cpp:
(main):
Source/WebKit2:
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreAPIJSValueRefcpp">trunk/Source/JavaScriptCore/API/JSValueRef.cpp</a></li>
<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="#trunkSourceJavaScriptCoreinspectorJSGlobalObjectInspectorControllercpp">trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorJSInjectedScriptHostcpp">trunk/Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorJSJavaScriptCallFramecpp">trunk/Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorScriptCallStackFactorycpp">trunk/Source/JavaScriptCore/inspector/ScriptCallStackFactory.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeConsoleObjectcpp">trunk/Source/JavaScriptCore/runtime/ConsoleObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeDateConstructorcpp">trunk/Source/JavaScriptCore/runtime/DateConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeDatePrototypecpp">trunk/Source/JavaScriptCore/runtime/DatePrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeErrorInstancecpp">trunk/Source/JavaScriptCore/runtime/ErrorInstance.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeErrorPrototypecpp">trunk/Source/JavaScriptCore/runtime/ErrorPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeInspectorInstrumentationObjectcpp">trunk/Source/JavaScriptCore/runtime/InspectorInstrumentationObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGlobalObjectFunctionscpp">trunk/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSModuleLoadercpp">trunk/Source/JavaScriptCore/runtime/JSModuleLoader.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeModuleLoaderPrototypecpp">trunk/Source/JavaScriptCore/runtime/ModuleLoaderPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpConstructorcpp">trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpPrototypecpp">trunk/Source/JavaScriptCore/runtime/RegExpPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStringPrototypecpp">trunk/Source/JavaScriptCore/runtime/StringPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoretoolsJSDollarVMPrototypecpp">trunk/Source/JavaScriptCore/tools/JSDollarVMPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyCompileErrorh">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.h</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmjsJSWebAssemblyRuntimeErrorh">trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.h</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsjsIDBBindingUtilitiescpp">trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSAudioTrackCustomcpp">trunk/Source/WebCore/bindings/js/JSAudioTrackCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCryptoAlgorithmDictionarycpp">trunk/Source/WebCore/bindings/js/JSCryptoAlgorithmDictionary.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCustomXPathNSResolvercpp">trunk/Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMWindowCustomcpp">trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDeviceMotionEventCustomcpp">trunk/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDeviceOrientationEventCustomcpp">trunk/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSEventListenercpp">trunk/Source/WebCore/bindings/js/JSEventListener.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLAllCollectionCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLFormControlsCollectionCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLFormControlsCollectionCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLInputElementCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLInputElementCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSInspectorFrontendHostCustomcpp">trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSMessageEventCustomcpp">trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSSQLTransactionCustomcpp">trunk/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSTextTrackCustomcpp">trunk/Source/WebCore/bindings/js/JSTextTrackCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSVideoTrackCustomcpp">trunk/Source/WebCore/bindings/js/JSVideoTrackCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSWebKitSubtleCryptoCustomcpp">trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSXMLHttpRequestCustomcpp">trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSXSLTProcessorCustomcpp">trunk/Source/WebCore/bindings/js/JSXSLTProcessorCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsScheduledActioncpp">trunk/Source/WebCore/bindings/js/ScheduledAction.cpp</a></li>
<li><a href="#trunkSourceWebCorebridgecc_utilitycpp">trunk/Source/WebCore/bridge/c/c_utility.cpp</a></li>
<li><a href="#trunkSourceWebCorebridgetestbindingscpp">trunk/Source/WebCore/bridge/testbindings.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsNetscapeNPRuntimeObjectMapcpp">trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreAPIJSValueRefcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/API/JSValueRef.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/API/JSValueRef.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/API/JSValueRef.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -401,7 +401,7 @@
</span><span class="cx">
</span><span class="cx"> JSValue jsValue = toJS(exec, value);
</span><span class="cx">
</span><del>- auto stringRef(OpaqueJSString::create(jsValue.toString(exec)->value(exec)));
</del><ins>+ auto stringRef(OpaqueJSString::create(jsValue.toWTFString(exec)));
</ins><span class="cx"> if (handleExceptionIfNeeded(exec, exception) == ExceptionStatus::DidThrow)
</span><span class="cx"> stringRef = nullptr;
</span><span class="cx"> return stringRef.leakRef();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -1,3 +1,86 @@
</span><ins>+2016-12-13 Yusuke Suzuki <utatane.tea@gmail.com>
+
+ Use JSValue::toWTFString instead of calling toString(exec) and value(exec)
+ https://bugs.webkit.org/show_bug.cgi?id=165795
+
+ Reviewed by Saam Barati.
+
+ In old days, we frequently use the idiom like, `value.toString(exec)->value(exec)` to
+ get WTFString from the given JSValue. But now, we have better function, `toWTFString`.
+ `toWTFString` does not create intermediate JSString objects, then reduce unnecessary
+ allocations.
+
+ This patch mechanically replaces `value.toString(exec)->value(exec)` with `toWTFString(exec)`.
+
+ * API/JSValueRef.cpp:
+ (JSValueToStringCopy):
+ * bindings/ScriptValue.cpp:
+ (Deprecated::ScriptValue::toString):
+ * inspector/JSGlobalObjectInspectorController.cpp:
+ (Inspector::JSGlobalObjectInspectorController::reportAPIException):
+ * inspector/JSInjectedScriptHost.cpp:
+ (Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):
+ * inspector/JSJavaScriptCallFrame.cpp:
+ (Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):
+ * inspector/ScriptCallStackFactory.cpp:
+ (Inspector::extractSourceInformationFromException):
+ * runtime/ConsoleObject.cpp:
+ (JSC::valueToStringWithUndefinedOrNullCheck):
+ (JSC::valueOrDefaultLabelString):
+ * runtime/DateConstructor.cpp:
+ (JSC::dateParse):
+ * runtime/DatePrototype.cpp:
+ (JSC::formatLocaleDate):
+ * runtime/ErrorInstance.cpp:
+ (JSC::ErrorInstance::sanitizedToString):
+ * runtime/ErrorPrototype.cpp:
+ (JSC::errorProtoFuncToString):
+ * runtime/InspectorInstrumentationObject.cpp:
+ (JSC::inspectorInstrumentationObjectLog):
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::globalFuncEval):
+ * runtime/JSModuleLoader.cpp:
+ (JSC::JSModuleLoader::fetch):
+ * runtime/ModuleLoaderPrototype.cpp:
+ (JSC::moduleLoaderPrototypeParseModule):
+ * runtime/RegExpConstructor.cpp:
+ (JSC::regExpCreate):
+ * runtime/RegExpPrototype.cpp:
+ (JSC::regExpProtoFuncCompile):
+ (JSC::regExpProtoFuncToString):
+ * runtime/StringPrototype.cpp:
+ (JSC::replaceUsingRegExpSearch):
+ (JSC::replaceUsingStringSearch):
+ (JSC::stringProtoFuncSlice):
+ (JSC::stringProtoFuncSplitFast):
+ (JSC::stringProtoFuncSubstr):
+ (JSC::stringProtoFuncLocaleCompare):
+ (JSC::stringProtoFuncBig):
+ (JSC::stringProtoFuncSmall):
+ (JSC::stringProtoFuncBlink):
+ (JSC::stringProtoFuncBold):
+ (JSC::stringProtoFuncFixed):
+ (JSC::stringProtoFuncItalics):
+ (JSC::stringProtoFuncStrike):
+ (JSC::stringProtoFuncSub):
+ (JSC::stringProtoFuncSup):
+ (JSC::stringProtoFuncFontcolor):
+ (JSC::stringProtoFuncFontsize):
+ (JSC::stringProtoFuncAnchor):
+ (JSC::stringProtoFuncLink):
+ (JSC::trimString):
+ (JSC::stringProtoFuncStartsWith):
+ (JSC::stringProtoFuncEndsWith):
+ (JSC::stringProtoFuncIncludes):
+ (JSC::builtinStringIncludesInternal):
+ (JSC::stringProtoFuncNormalize):
+ * tools/JSDollarVMPrototype.cpp:
+ (JSC::functionPrint):
+ * wasm/js/JSWebAssemblyCompileError.h:
+ (JSC::JSWebAssemblyCompileError::create):
+ * wasm/js/JSWebAssemblyRuntimeError.h:
+ (JSC::JSWebAssemblyRuntimeError::create):
+
</ins><span class="cx"> 2016-12-14 Gavin Barraclough <barraclough@apple.com>
</span><span class="cx">
</span><span class="cx"> MarkedBlock::marksConveyLivenessDuringMarking should take into account collection scope
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebindingsScriptValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bindings/ScriptValue.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bindings/ScriptValue.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/bindings/ScriptValue.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx"> VM& vm = scriptState->vm();
</span><span class="cx"> auto scope = DECLARE_CATCH_SCOPE(vm);
</span><span class="cx">
</span><del>- String result = m_value.get().toString(scriptState)->value(scriptState);
</del><ins>+ String result = m_value.get().toWTFString(scriptState);
</ins><span class="cx"> // Handle the case where an exception is thrown as part of invoking toString on the object.
</span><span class="cx"> if (UNLIKELY(scope.exception()))
</span><span class="cx"> scope.clearException();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorJSGlobalObjectInspectorControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -233,7 +233,7 @@
</span><span class="cx">
</span><span class="cx"> // FIXME: <http://webkit.org/b/115087> Web Inspector: Should not evaluate JavaScript handling exceptions
</span><span class="cx"> // If this is a custom exception object, call toString on it to try and get a nice string representation for the exception.
</span><del>- String errorMessage = exception->value().toString(exec)->value(exec);
</del><ins>+ String errorMessage = exception->value().toWTFString(exec);
</ins><span class="cx"> scope.clearException();
</span><span class="cx">
</span><span class="cx"> if (JSGlobalObjectConsoleClient::logToSystemConsole()) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorJSInjectedScriptHostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx"> if (!scriptValue.isString())
</span><span class="cx"> return throwTypeError(exec, scope, ASCIILiteral("InjectedScriptHost.evaluateWithScopeExtension first argument must be a string."));
</span><span class="cx">
</span><del>- String program = scriptValue.toString(exec)->value(exec);
</del><ins>+ String program = scriptValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, JSValue());
</span><span class="cx">
</span><span class="cx"> NakedPtr<Exception> exception;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorJSJavaScriptCallFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx"> if (!scriptValue.isString())
</span><span class="cx"> return throwTypeError(exec, scope, ASCIILiteral("JSJavaScriptCallFrame.evaluateWithScopeExtension first argument must be a string."));
</span><span class="cx">
</span><del>- String script = scriptValue.toString(exec)->value(exec);
</del><ins>+ String script = scriptValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, JSValue());
</span><span class="cx">
</span><span class="cx"> NakedPtr<Exception> exception;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorScriptCallStackFactorycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/ScriptCallStackFactory.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/ScriptCallStackFactory.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/inspector/ScriptCallStackFactory.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx"> JSValue columnValue = exceptionObject->getDirect(exec->vm(), Identifier::fromString(exec, "column"));
</span><span class="cx"> *columnNumber = columnValue && columnValue.isNumber() ? int(columnValue.toNumber(exec)) : 0;
</span><span class="cx"> JSValue sourceURLValue = exceptionObject->getDirect(exec->vm(), Identifier::fromString(exec, "sourceURL"));
</span><del>- *sourceURL = sourceURLValue && sourceURLValue.isString() ? sourceURLValue.toString(exec)->value(exec) : ASCIILiteral("undefined");
</del><ins>+ *sourceURL = sourceURLValue && sourceURLValue.isString() ? sourceURLValue.toWTFString(exec) : ASCIILiteral("undefined");
</ins><span class="cx"> scope.clearException();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeConsoleObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ConsoleObject.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ConsoleObject.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/runtime/ConsoleObject.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx"> {
</span><span class="cx"> if (value.isUndefinedOrNull())
</span><span class="cx"> return String();
</span><del>- return value.toString(exec)->value(exec);
</del><ins>+ return value.toWTFString(exec);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static EncodedJSValue consoleLogWithLevel(ExecState* exec, MessageLevel level)
</span><span class="lines">@@ -291,7 +291,7 @@
</span><span class="cx"> {
</span><span class="cx"> if (value.isUndefined())
</span><span class="cx"> return ASCIILiteral("default");
</span><del>- return value.toString(exec)->value(exec);
</del><ins>+ return value.toWTFString(exec);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static EncodedJSValue JSC_HOST_CALL consoleProtoFuncTime(ExecState* exec)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeDateConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/DateConstructor.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/DateConstructor.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/runtime/DateConstructor.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -205,7 +205,7 @@
</span><span class="cx"> {
</span><span class="cx"> VM& vm = exec->vm();
</span><span class="cx"> auto scope = DECLARE_THROW_SCOPE(vm);
</span><del>- String dateStr = exec->argument(0).toString(exec)->value(exec);
</del><ins>+ String dateStr = exec->argument(0).toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> return JSValue::encode(jsNumber(parseDate(vm, dateStr)));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeDatePrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/DatePrototype.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/DatePrototype.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/runtime/DatePrototype.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -151,13 +151,13 @@
</span><span class="cx"> bool useCustomFormat = false;
</span><span class="cx"> String customFormatString;
</span><span class="cx">
</span><del>- String arg0String = exec->argument(0).toString(exec)->value(exec);
</del><ins>+ String arg0String = exec->argument(0).toWTFString(exec);
</ins><span class="cx"> if (arg0String == "custom" && !exec->argument(1).isUndefined()) {
</span><span class="cx"> useCustomFormat = true;
</span><del>- customFormatString = exec->argument(1).toString(exec)->value(exec);
</del><ins>+ customFormatString = exec->argument(1).toWTFString(exec);
</ins><span class="cx"> } else if (format == LocaleDateAndTime && !exec->argument(1).isUndefined()) {
</span><span class="cx"> dateStyle = styleFromArgString(arg0String, dateStyle);
</span><del>- timeStyle = styleFromArgString(exec->argument(1).toString(exec)->value(exec), timeStyle);
</del><ins>+ timeStyle = styleFromArgString(exec->argument(1).toWTFString(exec), timeStyle);
</ins><span class="cx"> } else if (format != LocaleTime && !exec->argument(0).isUndefined())
</span><span class="cx"> dateStyle = styleFromArgString(arg0String, dateStyle);
</span><span class="cx"> else if (format != LocaleDate && !exec->argument(0).isUndefined())
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeErrorInstancecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ErrorInstance.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ErrorInstance.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/runtime/ErrorInstance.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -193,7 +193,7 @@
</span><span class="cx"> if (!nameValue)
</span><span class="cx"> nameString = ASCIILiteral("Error");
</span><span class="cx"> else {
</span><del>- nameString = nameValue.toString(exec)->value(exec);
</del><ins>+ nameString = nameValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, String());
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -208,7 +208,7 @@
</span><span class="cx"> if (!messageValue)
</span><span class="cx"> messageString = String();
</span><span class="cx"> else {
</span><del>- messageString = messageValue.toString(exec)->value(exec);
</del><ins>+ messageString = messageValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, String());
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeErrorPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ErrorPrototype.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ErrorPrototype.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/runtime/ErrorPrototype.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx"> if (name.isUndefined())
</span><span class="cx"> nameString = ASCIILiteral("Error");
</span><span class="cx"> else {
</span><del>- nameString = name.toString(exec)->value(exec);
</del><ins>+ nameString = name.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx"> if (message.isUndefined())
</span><span class="cx"> messageString = String();
</span><span class="cx"> else {
</span><del>- messageString = message.toString(exec)->value(exec);
</del><ins>+ messageString = message.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeInspectorInstrumentationObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/InspectorInstrumentationObject.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/InspectorInstrumentationObject.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/runtime/InspectorInstrumentationObject.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx"> VM& vm = exec->vm();
</span><span class="cx"> auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx"> JSValue target = exec->argument(0);
</span><del>- String value = target.toString(exec)->value(exec);
</del><ins>+ String value = target.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> dataLog(value, "\n");
</span><span class="cx"> return JSValue::encode(jsUndefined());
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGlobalObjectFunctionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -666,7 +666,7 @@
</span><span class="cx"> return JSValue::encode(jsUndefined());
</span><span class="cx"> }
</span><span class="cx">
</span><del>- String s = x.toString(exec)->value(exec);
</del><ins>+ String s = x.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> if (s.is8Bit()) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSModuleLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSModuleLoader.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSModuleLoader.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/runtime/JSModuleLoader.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -158,7 +158,7 @@
</span><span class="cx"> if (globalObject->globalObjectMethodTable()->moduleLoaderFetch)
</span><span class="cx"> return globalObject->globalObjectMethodTable()->moduleLoaderFetch(globalObject, exec, this, key, initiator);
</span><span class="cx"> JSInternalPromiseDeferred* deferred = JSInternalPromiseDeferred::create(exec, globalObject);
</span><del>- String moduleKey = key.toString(exec)->value(exec);
</del><ins>+ String moduleKey = key.toWTFString(exec);
</ins><span class="cx"> if (UNLIKELY(scope.exception())) {
</span><span class="cx"> JSValue exception = scope.exception()->value();
</span><span class="cx"> scope.clearException();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeModuleLoaderPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ModuleLoaderPrototype.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ModuleLoaderPrototype.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/runtime/ModuleLoaderPrototype.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx"> const Identifier moduleKey = exec->argument(0).toPropertyKey(exec);
</span><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><del>- String source = exec->argument(1).toString(exec)->value(exec);
</del><ins>+ String source = exec->argument(1).toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> SourceCode sourceCode = makeSource(source, moduleKey.impl(), TextPosition(), SourceProviderSourceType::Module);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -231,7 +231,7 @@
</span><span class="cx"> VM& vm = exec->vm();
</span><span class="cx"> auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx">
</span><del>- String pattern = patternArg.isUndefined() ? emptyString() : patternArg.toString(exec)->value(exec);
</del><ins>+ String pattern = patternArg.isUndefined() ? emptyString() : patternArg.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, nullptr);
</span><span class="cx">
</span><span class="cx"> RegExpFlags flags = toFlags(exec, flagsArg);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExpPrototype.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExpPrototype.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/runtime/RegExpPrototype.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -166,12 +166,12 @@
</span><span class="cx"> return throwVMTypeError(exec, scope, ASCIILiteral("Cannot supply flags when constructing one RegExp from another."));
</span><span class="cx"> regExp = asRegExpObject(arg0)->regExp();
</span><span class="cx"> } else {
</span><del>- String pattern = arg0.isUndefined() ? emptyString() : arg0.toString(exec)->value(exec);
</del><ins>+ String pattern = arg0.isUndefined() ? emptyString() : arg0.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> RegExpFlags flags = NoFlags;
</span><span class="cx"> if (!arg1.isUndefined()) {
</span><del>- flags = regExpFlags(arg1.toString(exec)->value(exec));
</del><ins>+ flags = regExpFlags(arg1.toWTFString(exec));
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> if (flags == InvalidFlags)
</span><span class="cx"> return throwVMError(exec, scope, createSyntaxError(exec, ASCIILiteral("Invalid flags supplied to RegExp constructor.")));
</span><span class="lines">@@ -243,12 +243,12 @@
</span><span class="cx">
</span><span class="cx"> JSValue sourceValue = thisObject->get(exec, vm.propertyNames->source);
</span><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><del>- String source = sourceValue.toString(exec)->value(exec);
</del><ins>+ String source = sourceValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> JSValue flagsValue = thisObject->get(exec, vm.propertyNames->flags);
</span><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><del>- String flags = flagsValue.toString(exec)->value(exec);
</del><ins>+ String flags = flagsValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> scope.release();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStringPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/StringPrototype.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/StringPrototype.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/runtime/StringPrototype.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -554,7 +554,7 @@
</span><span class="cx">
</span><span class="cx"> cachedCall.setThis(jsUndefined());
</span><span class="cx"> JSValue jsResult = cachedCall.call();
</span><del>- replacements.append(jsResult.toString(exec)->value(exec));
</del><ins>+ replacements.append(jsResult.toWTFString(exec));
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> lastIndex = result.end;
</span><span class="lines">@@ -593,7 +593,7 @@
</span><span class="cx">
</span><span class="cx"> cachedCall.setThis(jsUndefined());
</span><span class="cx"> JSValue jsResult = cachedCall.call();
</span><del>- replacements.append(jsResult.toString(exec)->value(exec));
</del><ins>+ replacements.append(jsResult.toWTFString(exec));
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> lastIndex = result.end;
</span><span class="lines">@@ -635,7 +635,7 @@
</span><span class="cx">
</span><span class="cx"> JSValue replacement = call(exec, replaceValue, callType, callData, jsUndefined(), args);
</span><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><del>- String replacementString = replacement.toString(exec)->value(exec);
</del><ins>+ String replacementString = replacement.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> replacements.append(replacementString);
</span><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="lines">@@ -718,7 +718,7 @@
</span><span class="cx"> CallData callData;
</span><span class="cx"> CallType callType = getCallData(replaceValue, callData);
</span><span class="cx"> if (callType == CallType::None) {
</span><del>- replacementString = replaceValue.toString(exec)->value(exec);
</del><ins>+ replacementString = replaceValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -732,7 +732,7 @@
</span><span class="cx"> auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx">
</span><span class="cx"> const String& string = jsString->value(exec);
</span><del>- String searchString = searchValue.toString(exec)->value(exec);
</del><ins>+ String searchString = searchValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> size_t matchStart = string.find(searchString);
</span><span class="lines">@@ -751,7 +751,7 @@
</span><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> }
</span><span class="cx">
</span><del>- String replaceString = replaceValue.toString(exec)->value(exec);
</del><ins>+ String replaceString = replaceValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> StringImpl* stringImpl = string.impl();
</span><span class="lines">@@ -1115,7 +1115,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> int len = s.length();
</span><span class="lines">@@ -1183,7 +1183,7 @@
</span><span class="cx">
</span><span class="cx"> // 3. Let S be the result of calling ToString, giving it the this value as its argument.
</span><span class="cx"> // 7. Let s be the number of characters in S.
</span><del>- String input = thisValue.toString(exec)->value(exec);
</del><ins>+ String input = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> ASSERT(!input.isNull());
</span><span class="cx">
</span><span class="lines">@@ -1205,7 +1205,7 @@
</span><span class="cx"> // 9. If separator is a RegExp object (its [[Class]] is "RegExp"), let R = separator;
</span><span class="cx"> // otherwise let R = ToString(separator).
</span><span class="cx"> JSValue separatorValue = exec->uncheckedArgument(0);
</span><del>- String separator = separatorValue.toString(exec)->value(exec);
</del><ins>+ String separator = separatorValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> // 10. If lim == 0, return A.
</span><span class="lines">@@ -1324,7 +1324,7 @@
</span><span class="cx"> jsString = jsCast<JSString*>(thisValue.asCell());
</span><span class="cx"> len = jsString->length();
</span><span class="cx"> } else {
</span><del>- uString = thisValue.toString(exec)->value(exec);
</del><ins>+ uString = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> len = uString.length();
</span><span class="cx"> }
</span><span class="lines">@@ -1455,11 +1455,11 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> JSValue a0 = exec->argument(0);
</span><del>- String str = a0.toString(exec)->value(exec);
</del><ins>+ String str = a0.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> return JSValue::encode(jsNumber(Collator().collate(s, str)));
</span><span class="cx"> }
</span><span class="lines">@@ -1574,7 +1574,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> scope.release();
</span><span class="cx"> return JSValue::encode(jsMakeNontrivialString(exec, "<big>", s, "</big>"));
</span><span class="lines">@@ -1588,7 +1588,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> scope.release();
</span><span class="cx"> return JSValue::encode(jsMakeNontrivialString(exec, "<small>", s, "</small>"));
</span><span class="lines">@@ -1602,7 +1602,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> scope.release();
</span><span class="cx"> return JSValue::encode(jsMakeNontrivialString(exec, "<blink>", s, "</blink>"));
</span><span class="lines">@@ -1616,7 +1616,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> scope.release();
</span><span class="cx"> return JSValue::encode(jsMakeNontrivialString(exec, "<b>", s, "</b>"));
</span><span class="lines">@@ -1630,7 +1630,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> scope.release();
</span><span class="cx"> return JSValue::encode(jsMakeNontrivialString(exec, "<tt>", s, "</tt>"));
</span><span class="lines">@@ -1644,7 +1644,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> scope.release();
</span><span class="cx"> return JSValue::encode(jsMakeNontrivialString(exec, "<i>", s, "</i>"));
</span><span class="lines">@@ -1658,7 +1658,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> scope.release();
</span><span class="cx"> return JSValue::encode(jsMakeNontrivialString(exec, "<strike>", s, "</strike>"));
</span><span class="lines">@@ -1672,7 +1672,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> scope.release();
</span><span class="cx"> return JSValue::encode(jsMakeNontrivialString(exec, "<sub>", s, "</sub>"));
</span><span class="lines">@@ -1686,7 +1686,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> scope.release();
</span><span class="cx"> return JSValue::encode(jsMakeNontrivialString(exec, "<sup>", s, "</sup>"));
</span><span class="lines">@@ -1700,7 +1700,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> JSValue a0 = exec->argument(0);
</span><span class="lines">@@ -1719,7 +1719,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> JSValue a0 = exec->argument(0);
</span><span class="lines">@@ -1774,7 +1774,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> JSValue a0 = exec->argument(0);
</span><span class="lines">@@ -1793,7 +1793,7 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><del>- String s = thisValue.toString(exec)->value(exec);
</del><ins>+ String s = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> JSValue a0 = exec->argument(0);
</span><span class="lines">@@ -1840,7 +1840,7 @@
</span><span class="cx">
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwTypeError(exec, scope);
</span><del>- String str = thisValue.toString(exec)->value(exec);
</del><ins>+ String str = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, { });
</span><span class="cx">
</span><span class="cx"> unsigned left = 0;
</span><span class="lines">@@ -1898,7 +1898,7 @@
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><span class="cx">
</span><del>- String stringToSearchIn = thisValue.toString(exec)->value(exec);
</del><ins>+ String stringToSearchIn = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> JSValue a0 = exec->argument(0);
</span><span class="lines">@@ -1907,7 +1907,7 @@
</span><span class="cx"> if (isRegularExpression)
</span><span class="cx"> return throwVMTypeError(exec, scope, "Argument to String.prototype.startsWith cannot be a RegExp");
</span><span class="cx">
</span><del>- String searchString = a0.toString(exec)->value(exec);
</del><ins>+ String searchString = a0.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> JSValue positionArg = exec->argument(1);
</span><span class="lines">@@ -1932,7 +1932,7 @@
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><span class="cx">
</span><del>- String stringToSearchIn = thisValue.toString(exec)->value(exec);
</del><ins>+ String stringToSearchIn = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> JSValue a0 = exec->argument(0);
</span><span class="lines">@@ -1941,7 +1941,7 @@
</span><span class="cx"> if (isRegularExpression)
</span><span class="cx"> return throwVMTypeError(exec, scope, "Argument to String.prototype.endsWith cannot be a RegExp");
</span><span class="cx">
</span><del>- String searchString = a0.toString(exec)->value(exec);
</del><ins>+ String searchString = a0.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> unsigned length = stringToSearchIn.length();
</span><span class="lines">@@ -1982,7 +1982,7 @@
</span><span class="cx"> if (!checkObjectCoercible(thisValue))
</span><span class="cx"> return throwVMTypeError(exec, scope);
</span><span class="cx">
</span><del>- String stringToSearchIn = thisValue.toString(exec)->value(exec);
</del><ins>+ String stringToSearchIn = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> JSValue a0 = exec->argument(0);
</span><span class="lines">@@ -1991,7 +1991,7 @@
</span><span class="cx"> if (isRegularExpression)
</span><span class="cx"> return throwVMTypeError(exec, scope, "Argument to String.prototype.includes cannot be a RegExp");
</span><span class="cx">
</span><del>- String searchString = a0.toString(exec)->value(exec);
</del><ins>+ String searchString = a0.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> JSValue positionArg = exec->argument(1);
</span><span class="lines">@@ -2008,11 +2008,11 @@
</span><span class="cx"> JSValue thisValue = exec->thisValue();
</span><span class="cx"> ASSERT(checkObjectCoercible(thisValue));
</span><span class="cx">
</span><del>- String stringToSearchIn = thisValue.toString(exec)->value(exec);
</del><ins>+ String stringToSearchIn = thisValue.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> JSValue a0 = exec->uncheckedArgument(0);
</span><del>- String searchString = a0.toString(exec)->value(exec);
</del><ins>+ String searchString = a0.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> JSValue positionArg = exec->argument(1);
</span><span class="lines">@@ -2077,7 +2077,7 @@
</span><span class="cx"> UNormalizationMode form = UNORM_NFC;
</span><span class="cx"> // Verify that the argument is provided and is not undefined.
</span><span class="cx"> if (!exec->argument(0).isUndefined()) {
</span><del>- String formString = exec->uncheckedArgument(0).toString(exec)->value(exec);
</del><ins>+ String formString = exec->uncheckedArgument(0).toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx">
</span><span class="cx"> if (formString == "NFC")
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoretoolsJSDollarVMPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/tools/JSDollarVMPrototype.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/tools/JSDollarVMPrototype.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/tools/JSDollarVMPrototype.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -337,7 +337,7 @@
</span><span class="cx"> {
</span><span class="cx"> auto scope = DECLARE_THROW_SCOPE(exec->vm());
</span><span class="cx"> for (unsigned i = 0; i < exec->argumentCount(); ++i) {
</span><del>- String argStr = exec->uncheckedArgument(i).toString(exec)->value(exec);
</del><ins>+ String argStr = exec->uncheckedArgument(i).toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> dataLog(argStr);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyCompileErrorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.h (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.h        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCompileError.h        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> static JSWebAssemblyCompileError* create(ExecState*, Structure*, const String&, bool);
</span><span class="cx"> static JSWebAssemblyCompileError* create(ExecState* exec, Structure* structure, JSValue message, bool useCurrentFrame)
</span><span class="cx"> {
</span><del>- return create(exec, structure, message.isUndefined() ? String() : message.toString(exec)->value(exec), useCurrentFrame);
</del><ins>+ return create(exec, structure, message.isUndefined() ? String() : message.toWTFString(exec), useCurrentFrame);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DECLARE_INFO;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmjsJSWebAssemblyRuntimeErrorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.h (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.h        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyRuntimeError.h        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> static JSWebAssemblyRuntimeError* create(ExecState*, Structure*, const String&, bool useCurrentFrame = true);
</span><span class="cx"> static JSWebAssemblyRuntimeError* create(ExecState* exec, Structure* structure, JSValue message, bool useCurrentFrame)
</span><span class="cx"> {
</span><del>- return create(exec, structure, message.isUndefined() ? String() : message.toString(exec)->value(exec), useCurrentFrame);
</del><ins>+ return create(exec, structure, message.isUndefined() ? String() : message.toWTFString(exec), useCurrentFrame);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DECLARE_INFO;
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/ChangeLog        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -1,3 +1,61 @@
</span><ins>+2016-12-13 Yusuke Suzuki <utatane.tea@gmail.com>
+
+ Use JSValue::toWTFString instead of calling toString(exec) and value(exec)
+ https://bugs.webkit.org/show_bug.cgi?id=165795
+
+ Reviewed by Saam Barati.
+
+ * bindings/js/IDBBindingUtilities.cpp:
+ (WebCore::createIDBKeyFromValue):
+ * bindings/js/JSAudioTrackCustom.cpp:
+ (WebCore::JSAudioTrack::setKind):
+ (WebCore::JSAudioTrack::setLanguage):
+ * bindings/js/JSCryptoAlgorithmDictionary.cpp:
+ (WebCore::JSCryptoAlgorithmDictionary::getAlgorithmIdentifier):
+ * bindings/js/JSCustomXPathNSResolver.cpp:
+ (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
+ * bindings/js/JSDOMWindowCustom.cpp:
+ (WebCore::JSDOMWindow::setLocation):
+ * bindings/js/JSDeviceMotionEventCustom.cpp:
+ (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
+ * bindings/js/JSDeviceOrientationEventCustom.cpp:
+ (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
+ * bindings/js/JSEventListener.cpp:
+ (WebCore::JSEventListener::handleEvent):
+ * bindings/js/JSHTMLAllCollectionCustom.cpp:
+ (WebCore::callHTMLAllCollection):
+ (WebCore::JSHTMLAllCollection::namedItem):
+ * bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
+ (WebCore::JSHTMLFormControlsCollection::namedItem):
+ * bindings/js/JSHTMLInputElementCustom.cpp:
+ (WebCore::JSHTMLInputElement::setSelectionDirection):
+ * bindings/js/JSInspectorFrontendHostCustom.cpp:
+ (WebCore::populateContextMenuItems):
+ * bindings/js/JSMessageEventCustom.cpp:
+ (WebCore::handleInitMessageEvent):
+ * bindings/js/JSSQLTransactionCustom.cpp:
+ (WebCore::JSSQLTransaction::executeSql):
+ * bindings/js/JSTextTrackCustom.cpp:
+ (WebCore::JSTextTrack::setLanguage):
+ * bindings/js/JSVideoTrackCustom.cpp:
+ (WebCore::JSVideoTrack::setKind):
+ (WebCore::JSVideoTrack::setLanguage):
+ * bindings/js/JSWebKitSubtleCryptoCustom.cpp:
+ (WebCore::cryptoKeyFormatFromJSValue):
+ (WebCore::cryptoKeyUsagesFromJSValue):
+ * bindings/js/JSXMLHttpRequestCustom.cpp:
+ (WebCore::JSXMLHttpRequest::send):
+ * bindings/js/JSXSLTProcessorCustom.cpp:
+ (WebCore::JSXSLTProcessor::setParameter):
+ (WebCore::JSXSLTProcessor::getParameter):
+ (WebCore::JSXSLTProcessor::removeParameter):
+ * bindings/js/ScheduledAction.cpp:
+ (WebCore::ScheduledAction::create):
+ * bridge/c/c_utility.cpp:
+ (JSC::Bindings::convertValueToNPVariant):
+ * bridge/testbindings.cpp:
+ (main):
+
</ins><span class="cx"> 2016-12-14 Joonghun Park <jh718.park@samsung.com>
</span><span class="cx">
</span><span class="cx"> [EFL] Fix debug build break since r207192. Unreviewed.
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsIDBBindingUtilitiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -148,7 +148,7 @@
</span><span class="cx"> return IDBKey::createNumber(value.toNumber(&exec));
</span><span class="cx">
</span><span class="cx"> if (value.isString())
</span><del>- return IDBKey::createString(value.toString(&exec)->value(&exec));
</del><ins>+ return IDBKey::createString(value.toWTFString(&exec));
</ins><span class="cx">
</span><span class="cx"> if (value.inherits(DateInstance::info()) && !std::isnan(valueToDate(&exec, value)))
</span><span class="cx"> return IDBKey::createDate(valueToDate(&exec, value));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSAudioTrackCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSAudioTrackCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSAudioTrackCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSAudioTrackCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> VM& vm = state.vm();
</span><span class="cx"> auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx">
</span><del>- auto& string = value.toString(&state)->value(&state);
</del><ins>+ auto string = value.toWTFString(&state);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, void());
</span><span class="cx"> wrapped().setKind(string);
</span><span class="cx"> #else
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx"> VM& vm = state.vm();
</span><span class="cx"> auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx">
</span><del>- auto& string = value.toString(&state)->value(&state);
</del><ins>+ auto string = value.toWTFString(&state);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, void());
</span><span class="cx"> wrapped().setLanguage(string);
</span><span class="cx"> #else
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCryptoAlgorithmDictionarycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCryptoAlgorithmDictionary.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCryptoAlgorithmDictionary.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSCryptoAlgorithmDictionary.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> String algorithmName;
</span><span class="cx">
</span><span class="cx"> if (value.isString())
</span><del>- algorithmName = value.toString(exec)->value(exec);
</del><ins>+ algorithmName = value.toWTFString(exec);
</ins><span class="cx"> else if (value.isObject()) {
</span><span class="cx"> if (value.getObject()->inherits(StringObject::info()))
</span><span class="cx"> algorithmName = asString(asStringObject(value)->internalValue())->value(exec);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCustomXPathNSResolvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx"> reportException(exec, exception);
</span><span class="cx"> else {
</span><span class="cx"> if (!retval.isUndefinedOrNull())
</span><del>- result = retval.toString(exec)->value(exec);
</del><ins>+ result = retval.toWTFString(exec);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> return result;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMWindowCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -389,7 +389,7 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- String locationString = value.toString(&state)->value(&state);
</del><ins>+ String locationString = value.toWTFString(&state);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, void());
</span><span class="cx">
</span><span class="cx"> if (Location* location = wrapped().location())
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDeviceMotionEventCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -170,7 +170,7 @@
</span><span class="cx"> VM& vm = state.vm();
</span><span class="cx"> auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx">
</span><del>- const String type = state.argument(0).toString(&state)->value(&state);
</del><ins>+ const String type = state.argument(0).toWTFString(&state);
</ins><span class="cx"> bool bubbles = state.argument(1).toBoolean(&state);
</span><span class="cx"> bool cancelable = state.argument(2).toBoolean(&state);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDeviceOrientationEventCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx">
</span><span class="cx"> JSValue JSDeviceOrientationEvent::initDeviceOrientationEvent(ExecState& state)
</span><span class="cx"> {
</span><del>- const String type = state.argument(0).toString(&state)->value(&state);
</del><ins>+ const String type = state.argument(0).toWTFString(&state);
</ins><span class="cx"> bool bubbles = state.argument(1).toBoolean(&state);
</span><span class="cx"> bool cancelable = state.argument(2).toBoolean(&state);
</span><span class="cx"> // If alpha, beta or gamma are null or undefined, mark them as not provided.
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSEventListenercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSEventListener.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSEventListener.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSEventListener.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -160,7 +160,7 @@
</span><span class="cx"> reportException(exec, exception);
</span><span class="cx"> } else {
</span><span class="cx"> if (!retval.isUndefinedOrNull() && is<BeforeUnloadEvent>(*event))
</span><del>- downcast<BeforeUnloadEvent>(*event).setReturnValue(retval.toString(exec)->value(exec));
</del><ins>+ downcast<BeforeUnloadEvent>(*event).setReturnValue(retval.toWTFString(exec));
</ins><span class="cx"> if (m_isAttribute) {
</span><span class="cx"> if (retval.isFalse())
</span><span class="cx"> event->preventDefault();
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLAllCollectionCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx">
</span><span class="cx"> if (exec->argumentCount() == 1) {
</span><span class="cx"> // Support for document.all(<index>) etc.
</span><del>- String string = exec->argument(0).toString(exec)->value(exec);
</del><ins>+ String string = exec->argument(0).toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> if (std::optional<uint32_t> index = parseIndex(*string.impl()))
</span><span class="cx"> return JSValue::encode(toJS(exec, jsCollection->globalObject(), collection.item(index.value())));
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // The second arg, if set, is the index of the item we want
</span><del>- String string = exec->argument(0).toString(exec)->value(exec);
</del><ins>+ String string = exec->argument(0).toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, encodedJSValue());
</span><span class="cx"> if (std::optional<uint32_t> index = parseIndex(*exec->argument(1).toWTFString(exec).impl())) {
</span><span class="cx"> if (auto* item = collection.namedItemWithIndex(string, index.value()))
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx">
</span><span class="cx"> JSValue JSHTMLAllCollection::namedItem(ExecState& state)
</span><span class="cx"> {
</span><del>- JSValue value = namedItems(state, this, Identifier::fromString(&state, state.argument(0).toString(&state)->value(&state)));
</del><ins>+ JSValue value = namedItems(state, this, Identifier::fromString(&state, state.argument(0).toWTFString(&state)));
</ins><span class="cx"> return value.isUndefined() ? jsNull() : value;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLFormControlsCollectionCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLFormControlsCollectionCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLFormControlsCollectionCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSHTMLFormControlsCollectionCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> if (UNLIKELY(state.argumentCount() < 1))
</span><span class="cx"> return throwException(&state, scope, createNotEnoughArgumentsError(&state));
</span><span class="cx">
</span><del>- JSValue value = namedItems(state, this, Identifier::fromString(&state, state.uncheckedArgument(0).toString(&state)->value(&state)));
</del><ins>+ JSValue value = namedItems(state, this, Identifier::fromString(&state, state.uncheckedArgument(0).toWTFString(&state)));
</ins><span class="cx"> return value.isUndefined() ? jsNull() : value;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLInputElementCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLInputElementCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLInputElementCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSHTMLInputElementCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- input.setSelectionDirection(value.toString(&state)->value(&state));
</del><ins>+ input.setSelectionDirection(value.toWTFString(&state));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> JSValue JSHTMLInputElement::setSelectionRange(ExecState& state)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSInspectorFrontendHostCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> if (!type.isString())
</span><span class="cx"> continue;
</span><span class="cx">
</span><del>- String typeString = type.toString(exec)->value(exec);
</del><ins>+ String typeString = type.toWTFString(exec);
</ins><span class="cx"> if (typeString == "separator") {
</span><span class="cx"> ContextMenuItem item(SeparatorType, ContextMenuItemTagNoAction, String());
</span><span class="cx"> menu.appendItem(item);
</span><span class="lines">@@ -70,11 +70,11 @@
</span><span class="cx"> ContextMenu subMenu;
</span><span class="cx"> JSArray* subItemsArray = asArray(subItems);
</span><span class="cx"> populateContextMenuItems(exec, subItemsArray, subMenu);
</span><del>- ContextMenuItem item(SubmenuType, ContextMenuItemTagNoAction, label.toString(exec)->value(exec), &subMenu);
</del><ins>+ ContextMenuItem item(SubmenuType, ContextMenuItemTagNoAction, label.toWTFString(exec), &subMenu);
</ins><span class="cx"> menu.appendItem(item);
</span><span class="cx"> } else {
</span><span class="cx"> ContextMenuAction typedId = static_cast<ContextMenuAction>(ContextMenuItemBaseCustomTag + id.toInt32(exec));
</span><del>- ContextMenuItem menuItem((typeString == "checkbox" ? CheckableActionType : ActionType), typedId, label.toString(exec)->value(exec));
</del><ins>+ ContextMenuItem menuItem((typeString == "checkbox" ? CheckableActionType : ActionType), typedId, label.toWTFString(exec));
</ins><span class="cx"> if (!enabled.isUndefined())
</span><span class="cx"> menuItem.setEnabled(enabled.toBoolean(exec));
</span><span class="cx"> if (!checked.isUndefined())
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSMessageEventCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx"> VM& vm = state.vm();
</span><span class="cx"> auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx">
</span><del>- const String& typeArg = state.argument(0).toString(&state)->value(&state);
</del><ins>+ const String& typeArg = state.argument(0).toWTFString(&state);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, JSValue());
</span><span class="cx">
</span><span class="cx"> bool canBubbleArg = state.argument(1).toBoolean(&state);
</span><span class="lines">@@ -122,7 +122,7 @@
</span><span class="cx"> const String originArg = convert<IDLUSVString>(state, state.argument(4));
</span><span class="cx"> RETURN_IF_EXCEPTION(scope, JSValue());
</span><span class="cx">
</span><del>- const String lastEventIdArg = state.argument(5).toString(&state)->value(&state);
</del><ins>+ const String lastEventIdArg = state.argument(5).toWTFString(&state);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, JSValue());
</span><span class="cx">
</span><span class="cx"> auto sourceArg = convert<IDLNullable<IDLUnion<IDLInterface<DOMWindow>, IDLInterface<MessagePort>>>>(state, state.argument(6));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSSQLTransactionCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx"> return jsUndefined();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- String sqlStatement = state.argument(0).toString(&state)->value(&state);
</del><ins>+ String sqlStatement = state.argument(0).toWTFString(&state);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, JSValue());
</span><span class="cx">
</span><span class="cx"> // Now assemble the list of SQL arguments
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx"> sqlValues.append(value.asNumber());
</span><span class="cx"> else {
</span><span class="cx"> // Convert the argument to a string and append it
</span><del>- sqlValues.append(value.toString(&state)->value(&state));
</del><ins>+ sqlValues.append(value.toWTFString(&state));
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, JSValue());
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSTextTrackCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSTextTrackCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSTextTrackCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSTextTrackCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> VM& vm = state.vm();
</span><span class="cx"> auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx">
</span><del>- auto& string = value.toString(&state)->value(&state);
</del><ins>+ auto string = value.toWTFString(&state);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, void());
</span><span class="cx"> wrapped().setLanguage(string);
</span><span class="cx"> #else
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSVideoTrackCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSVideoTrackCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSVideoTrackCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSVideoTrackCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> VM& vm = state.vm();
</span><span class="cx"> auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx">
</span><del>- auto& string = value.toString(&state)->value(&state);
</del><ins>+ auto string = value.toWTFString(&state);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, void());
</span><span class="cx"> wrapped().setKind(string);
</span><span class="cx"> #else
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx"> VM& vm = state.vm();
</span><span class="cx"> auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx">
</span><del>- auto& string = value.toString(&state)->value(&state);
</del><ins>+ auto string = value.toWTFString(&state);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, void());
</span><span class="cx"> wrapped().setLanguage(string);
</span><span class="cx"> #else
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSWebKitSubtleCryptoCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx"> VM& vm = state.vm();
</span><span class="cx"> auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx">
</span><del>- String keyFormatString = value.toString(&state)->value(&state);
</del><ins>+ String keyFormatString = value.toWTFString(&state);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, false);
</span><span class="cx"> if (keyFormatString == "raw")
</span><span class="cx"> result = CryptoKeyFormat::Raw;
</span><span class="lines">@@ -116,7 +116,7 @@
</span><span class="cx"> JSArray* array = asArray(value);
</span><span class="cx"> for (size_t i = 0; i < array->length(); ++i) {
</span><span class="cx"> JSValue element = array->getIndex(&state, i);
</span><del>- String usageString = element.toString(&state)->value(&state);
</del><ins>+ String usageString = element.toWTFString(&state);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, false);
</span><span class="cx"> if (usageString == "encrypt")
</span><span class="cx"> result |= CryptoKeyUsageEncrypt;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSXMLHttpRequestCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx"> else {
</span><span class="cx"> // FIXME: If toString raises an exception, should we exit before calling willSendXMLHttpRequest?
</span><span class="cx"> // FIXME: If toString raises an exception, should we exit before calling send?
</span><del>- result = wrapped().send(value.toString(&state)->value(&state));
</del><ins>+ result = wrapped().send(value.toWTFString(&state));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // FIXME: This should probably use ShadowChicken so that we get the right frame even when it did a tail call.
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSXSLTProcessorCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSXSLTProcessorCustom.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSXSLTProcessorCustom.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/JSXSLTProcessorCustom.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -50,9 +50,9 @@
</span><span class="cx"> {
</span><span class="cx"> if (state.argument(1).isUndefinedOrNull() || state.argument(2).isUndefinedOrNull())
</span><span class="cx"> return jsUndefined(); // Throw exception?
</span><del>- String namespaceURI = state.uncheckedArgument(0).toString(&state)->value(&state);
- String localName = state.uncheckedArgument(1).toString(&state)->value(&state);
- String value = state.uncheckedArgument(2).toString(&state)->value(&state);
</del><ins>+ String namespaceURI = state.uncheckedArgument(0).toWTFString(&state);
+ String localName = state.uncheckedArgument(1).toWTFString(&state);
+ String value = state.uncheckedArgument(2).toWTFString(&state);
</ins><span class="cx"> wrapped().setParameter(namespaceURI, localName, value);
</span><span class="cx"> return jsUndefined();
</span><span class="cx"> }
</span><span class="lines">@@ -61,8 +61,8 @@
</span><span class="cx"> {
</span><span class="cx"> if (state.argument(1).isUndefinedOrNull())
</span><span class="cx"> return jsUndefined();
</span><del>- String namespaceURI = state.uncheckedArgument(0).toString(&state)->value(&state);
- String localName = state.uncheckedArgument(1).toString(&state)->value(&state);
</del><ins>+ String namespaceURI = state.uncheckedArgument(0).toWTFString(&state);
+ String localName = state.uncheckedArgument(1).toWTFString(&state);
</ins><span class="cx"> String value = wrapped().getParameter(namespaceURI, localName);
</span><span class="cx"> return jsStringOrUndefined(&state, value);
</span><span class="cx"> }
</span><span class="lines">@@ -71,8 +71,8 @@
</span><span class="cx"> {
</span><span class="cx"> if (state.argument(1).isUndefinedOrNull())
</span><span class="cx"> return jsUndefined();
</span><del>- String namespaceURI = state.uncheckedArgument(0).toString(&state)->value(&state);
- String localName = state.uncheckedArgument(1).toString(&state)->value(&state);
</del><ins>+ String namespaceURI = state.uncheckedArgument(0).toWTFString(&state);
+ String localName = state.uncheckedArgument(1).toWTFString(&state);
</ins><span class="cx"> wrapped().removeParameter(namespaceURI, localName);
</span><span class="cx"> return jsUndefined();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsScheduledActioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/ScheduledAction.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/ScheduledAction.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bindings/js/ScheduledAction.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> if (getCallData(v, callData) == CallType::None) {
</span><span class="cx"> if (policy && !policy->allowEval(exec))
</span><span class="cx"> return nullptr;
</span><del>- String string = v.toString(exec)->value(exec);
</del><ins>+ String string = v.toWTFString(exec);
</ins><span class="cx"> RETURN_IF_EXCEPTION(scope, nullptr);
</span><span class="cx"> return std::unique_ptr<ScheduledAction>(new ScheduledAction(string, isolatedWorld));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebridgecc_utilitycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bridge/c/c_utility.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bridge/c/c_utility.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bridge/c/c_utility.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx"> VOID_TO_NPVARIANT(*result);
</span><span class="cx">
</span><span class="cx"> if (value.isString()) {
</span><del>- String ustring = value.toString(exec)->value(exec);
</del><ins>+ String ustring = value.toWTFString(exec);
</ins><span class="cx"> CString cstring = ustring.utf8();
</span><span class="cx"> NPString string = { (const NPUTF8*)cstring.data(), static_cast<uint32_t>(cstring.length()) };
</span><span class="cx"> NPN_InitializeVariantWithStringCopy(result, &string);
</span></span></pre></div>
<a id="trunkSourceWebCorebridgetestbindingscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bridge/testbindings.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bridge/testbindings.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebCore/bridge/testbindings.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -391,7 +391,9 @@
</span><span class="cx">
</span><span class="cx"> if (comp.complType() == Throw) {
</span><span class="cx"> Value exVal = comp.value();
</span><del>- char* msg = exVal.toString(exec)->value(exec).ascii();
</del><ins>+ String message = exVal.toWTFString(exec);
+ auto cstring = msg.ascii();
+ const char* msg = cstring.data();
</ins><span class="cx"> int lineno = -1;
</span><span class="cx"> if (exVal.type() == ObjectType) {
</span><span class="cx"> Value lineVal = Object::dynamicCast(exVal).get(exec, Identifier::fromString(exec, "line"));
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebKit2/ChangeLog        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2016-12-13 Yusuke Suzuki <utatane.tea@gmail.com>
+
+ Use JSValue::toWTFString instead of calling toString(exec) and value(exec)
+ https://bugs.webkit.org/show_bug.cgi?id=165795
+
+ Reviewed by Saam Barati.
+
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
+
</ins><span class="cx"> 2016-12-14 Enrique Ocaña González <eocanha@igalia.com>
</span><span class="cx">
</span><span class="cx"> REGRESSION(r207879-207891): [GStreamer] Introduced many layout test failures and crashes, bots exiting early
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsNetscapeNPRuntimeObjectMapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp (209800 => 209801)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp        2016-12-14 15:31:36 UTC (rev 209800)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp        2016-12-14 16:04:30 UTC (rev 209801)
</span><span class="lines">@@ -168,7 +168,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (value.isString()) {
</span><del>- NPString npString = createNPString(value.toString(exec)->value(exec).utf8());
</del><ins>+ NPString npString = createNPString(value.toWTFString(exec).utf8());
</ins><span class="cx"> STRINGN_TO_NPVARIANT(npString.UTF8Characters, npString.UTF8Length, variant);
</span><span class="cx"> return;
</span><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>