Diff
Modified: trunk/Source/_javascript_Core/API/JSValueRef.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/API/JSValueRef.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/API/JSValueRef.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -401,7 +401,7 @@
JSValue jsValue = toJS(exec, value);
- auto stringRef(OpaqueJSString::create(jsValue.toString(exec)->value(exec)));
+ auto stringRef(OpaqueJSString::create(jsValue.toWTFString(exec)));
if (handleExceptionIfNeeded(exec, exception) == ExceptionStatus::DidThrow)
stringRef = nullptr;
return stringRef.leakRef();
Modified: trunk/Source/_javascript_Core/ChangeLog (209791 => 209792)
--- trunk/Source/_javascript_Core/ChangeLog 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-12-14 07:02:45 UTC (rev 209792)
@@ -1,3 +1,88 @@
+2016-12-13 Yusuke Suzuki <[email protected]>
+
+ 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/JSCJSValue.cpp:
+ (JSC::JSValue::toWTFStringSlowCase):
+ * 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):
+
2016-12-13 Saam Barati <[email protected]>
WebAssembly: implement the elements section
Modified: trunk/Source/_javascript_Core/bindings/ScriptValue.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/bindings/ScriptValue.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/bindings/ScriptValue.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -124,7 +124,7 @@
VM& vm = scriptState->vm();
auto scope = DECLARE_CATCH_SCOPE(vm);
- String result = m_value.get().toString(scriptState)->value(scriptState);
+ String result = m_value.get().toWTFString(scriptState);
// Handle the case where an exception is thrown as part of invoking toString on the object.
if (UNLIKELY(scope.exception()))
scope.clearException();
Modified: trunk/Source/_javascript_Core/inspector/JSGlobalObjectInspectorController.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/inspector/JSGlobalObjectInspectorController.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/inspector/JSGlobalObjectInspectorController.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -233,7 +233,7 @@
// FIXME: <http://webkit.org/b/115087> Web Inspector: Should not evaluate _javascript_ handling exceptions
// If this is a custom exception object, call toString on it to try and get a nice string representation for the exception.
- String errorMessage = exception->value().toString(exec)->value(exec);
+ String errorMessage = exception->value().toWTFString(exec);
scope.clearException();
if (JSGlobalObjectConsoleClient::logToSystemConsole()) {
Modified: trunk/Source/_javascript_Core/inspector/JSInjectedScriptHost.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/inspector/JSInjectedScriptHost.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/inspector/JSInjectedScriptHost.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -102,7 +102,7 @@
if (!scriptValue.isString())
return throwTypeError(exec, scope, ASCIILiteral("InjectedScriptHost.evaluateWithScopeExtension first argument must be a string."));
- String program = scriptValue.toString(exec)->value(exec);
+ String program = scriptValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, JSValue());
NakedPtr<Exception> exception;
Modified: trunk/Source/_javascript_Core/inspector/JSJavaScriptCallFrame.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/inspector/JSJavaScriptCallFrame.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/inspector/JSJavaScriptCallFrame.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -82,7 +82,7 @@
if (!scriptValue.isString())
return throwTypeError(exec, scope, ASCIILiteral("JSJavaScriptCallFrame.evaluateWithScopeExtension first argument must be a string."));
- String script = scriptValue.toString(exec)->value(exec);
+ String script = scriptValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, JSValue());
NakedPtr<Exception> exception;
Modified: trunk/Source/_javascript_Core/inspector/ScriptCallStackFactory.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/inspector/ScriptCallStackFactory.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/inspector/ScriptCallStackFactory.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -128,7 +128,7 @@
JSValue columnValue = exceptionObject->getDirect(exec->vm(), Identifier::fromString(exec, "column"));
*columnNumber = columnValue && columnValue.isNumber() ? int(columnValue.toNumber(exec)) : 0;
JSValue sourceURLValue = exceptionObject->getDirect(exec->vm(), Identifier::fromString(exec, "sourceURL"));
- *sourceURL = sourceURLValue && sourceURLValue.isString() ? sourceURLValue.toString(exec)->value(exec) : ASCIILiteral("undefined");
+ *sourceURL = sourceURLValue && sourceURLValue.isString() ? sourceURLValue.toWTFString(exec) : ASCIILiteral("undefined");
scope.clearException();
}
Modified: trunk/Source/_javascript_Core/runtime/ConsoleObject.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/runtime/ConsoleObject.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/runtime/ConsoleObject.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -101,7 +101,7 @@
{
if (value.isUndefinedOrNull())
return String();
- return value.toString(exec)->value(exec);
+ return value.toWTFString(exec);
}
static EncodedJSValue consoleLogWithLevel(ExecState* exec, MessageLevel level)
@@ -291,7 +291,7 @@
{
if (value.isUndefined())
return ASCIILiteral("default");
- return value.toString(exec)->value(exec);
+ return value.toWTFString(exec);
}
static EncodedJSValue JSC_HOST_CALL consoleProtoFuncTime(ExecState* exec)
Modified: trunk/Source/_javascript_Core/runtime/DateConstructor.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/runtime/DateConstructor.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/runtime/DateConstructor.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -205,7 +205,7 @@
{
VM& vm = exec->vm();
auto scope = DECLARE_THROW_SCOPE(vm);
- String dateStr = exec->argument(0).toString(exec)->value(exec);
+ String dateStr = exec->argument(0).toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
return JSValue::encode(jsNumber(parseDate(vm, dateStr)));
}
Modified: trunk/Source/_javascript_Core/runtime/DatePrototype.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/runtime/DatePrototype.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/runtime/DatePrototype.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -151,13 +151,13 @@
bool useCustomFormat = false;
String customFormatString;
- String arg0String = exec->argument(0).toString(exec)->value(exec);
+ String arg0String = exec->argument(0).toWTFString(exec);
if (arg0String == "custom" && !exec->argument(1).isUndefined()) {
useCustomFormat = true;
- customFormatString = exec->argument(1).toString(exec)->value(exec);
+ customFormatString = exec->argument(1).toWTFString(exec);
} else if (format == LocaleDateAndTime && !exec->argument(1).isUndefined()) {
dateStyle = styleFromArgString(arg0String, dateStyle);
- timeStyle = styleFromArgString(exec->argument(1).toString(exec)->value(exec), timeStyle);
+ timeStyle = styleFromArgString(exec->argument(1).toWTFString(exec), timeStyle);
} else if (format != LocaleTime && !exec->argument(0).isUndefined())
dateStyle = styleFromArgString(arg0String, dateStyle);
else if (format != LocaleDate && !exec->argument(0).isUndefined())
Modified: trunk/Source/_javascript_Core/runtime/ErrorInstance.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/runtime/ErrorInstance.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/runtime/ErrorInstance.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -193,7 +193,7 @@
if (!nameValue)
nameString = ASCIILiteral("Error");
else {
- nameString = nameValue.toString(exec)->value(exec);
+ nameString = nameValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, String());
}
@@ -208,7 +208,7 @@
if (!messageValue)
messageString = String();
else {
- messageString = messageValue.toString(exec)->value(exec);
+ messageString = messageValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, String());
}
Modified: trunk/Source/_javascript_Core/runtime/ErrorPrototype.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/runtime/ErrorPrototype.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/runtime/ErrorPrototype.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -93,7 +93,7 @@
if (name.isUndefined())
nameString = ASCIILiteral("Error");
else {
- nameString = name.toString(exec)->value(exec);
+ nameString = name.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
}
@@ -108,7 +108,7 @@
if (message.isUndefined())
messageString = String();
else {
- messageString = message.toString(exec)->value(exec);
+ messageString = message.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
}
Modified: trunk/Source/_javascript_Core/runtime/InspectorInstrumentationObject.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/runtime/InspectorInstrumentationObject.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/runtime/InspectorInstrumentationObject.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -86,7 +86,7 @@
VM& vm = exec->vm();
auto scope = DECLARE_THROW_SCOPE(vm);
JSValue target = exec->argument(0);
- String value = target.toString(exec)->value(exec);
+ String value = target.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
dataLog(value, "\n");
return JSValue::encode(jsUndefined());
Modified: trunk/Source/_javascript_Core/runtime/JSCJSValue.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/runtime/JSCJSValue.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/runtime/JSCJSValue.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -392,7 +392,7 @@
return vm.propertyNames->nullKeyword.string();
if (isUndefined())
return vm.propertyNames->undefinedKeyword.string();
- return toString(exec)->value(exec);
+ return toWTFString(exec);
}
} // namespace JSC
Modified: trunk/Source/_javascript_Core/runtime/JSGlobalObjectFunctions.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/runtime/JSGlobalObjectFunctions.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalObjectFunctions.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -666,7 +666,7 @@
return JSValue::encode(jsUndefined());
}
- String s = x.toString(exec)->value(exec);
+ String s = x.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
if (s.is8Bit()) {
Modified: trunk/Source/_javascript_Core/runtime/JSModuleLoader.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/runtime/JSModuleLoader.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/runtime/JSModuleLoader.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -158,7 +158,7 @@
if (globalObject->globalObjectMethodTable()->moduleLoaderFetch)
return globalObject->globalObjectMethodTable()->moduleLoaderFetch(globalObject, exec, this, key, initiator);
JSInternalPromiseDeferred* deferred = JSInternalPromiseDeferred::create(exec, globalObject);
- String moduleKey = key.toString(exec)->value(exec);
+ String moduleKey = key.toWTFString(exec);
if (UNLIKELY(scope.exception())) {
JSValue exception = scope.exception()->value();
scope.clearException();
Modified: trunk/Source/_javascript_Core/runtime/ModuleLoaderPrototype.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/runtime/ModuleLoaderPrototype.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/runtime/ModuleLoaderPrototype.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -110,7 +110,7 @@
const Identifier moduleKey = exec->argument(0).toPropertyKey(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
- String source = exec->argument(1).toString(exec)->value(exec);
+ String source = exec->argument(1).toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
SourceCode sourceCode = makeSource(source, moduleKey.impl(), TextPosition(), SourceProviderSourceType::Module);
Modified: trunk/Source/_javascript_Core/runtime/RegExpConstructor.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/runtime/RegExpConstructor.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/runtime/RegExpConstructor.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -231,7 +231,7 @@
VM& vm = exec->vm();
auto scope = DECLARE_THROW_SCOPE(vm);
- String pattern = patternArg.isUndefined() ? emptyString() : patternArg.toString(exec)->value(exec);
+ String pattern = patternArg.isUndefined() ? emptyString() : patternArg.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, nullptr);
RegExpFlags flags = toFlags(exec, flagsArg);
Modified: trunk/Source/_javascript_Core/runtime/RegExpPrototype.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/runtime/RegExpPrototype.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/runtime/RegExpPrototype.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -166,12 +166,12 @@
return throwVMTypeError(exec, scope, ASCIILiteral("Cannot supply flags when constructing one RegExp from another."));
regExp = asRegExpObject(arg0)->regExp();
} else {
- String pattern = arg0.isUndefined() ? emptyString() : arg0.toString(exec)->value(exec);
+ String pattern = arg0.isUndefined() ? emptyString() : arg0.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
RegExpFlags flags = NoFlags;
if (!arg1.isUndefined()) {
- flags = regExpFlags(arg1.toString(exec)->value(exec));
+ flags = regExpFlags(arg1.toWTFString(exec));
RETURN_IF_EXCEPTION(scope, encodedJSValue());
if (flags == InvalidFlags)
return throwVMError(exec, scope, createSyntaxError(exec, ASCIILiteral("Invalid flags supplied to RegExp constructor.")));
@@ -243,12 +243,12 @@
JSValue sourceValue = thisObject->get(exec, vm.propertyNames->source);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
- String source = sourceValue.toString(exec)->value(exec);
+ String source = sourceValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
JSValue flagsValue = thisObject->get(exec, vm.propertyNames->flags);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
- String flags = flagsValue.toString(exec)->value(exec);
+ String flags = flagsValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
scope.release();
Modified: trunk/Source/_javascript_Core/runtime/StringPrototype.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/runtime/StringPrototype.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/runtime/StringPrototype.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -554,7 +554,7 @@
cachedCall.setThis(jsUndefined());
JSValue jsResult = cachedCall.call();
- replacements.append(jsResult.toString(exec)->value(exec));
+ replacements.append(jsResult.toWTFString(exec));
RETURN_IF_EXCEPTION(scope, encodedJSValue());
lastIndex = result.end;
@@ -593,7 +593,7 @@
cachedCall.setThis(jsUndefined());
JSValue jsResult = cachedCall.call();
- replacements.append(jsResult.toString(exec)->value(exec));
+ replacements.append(jsResult.toWTFString(exec));
RETURN_IF_EXCEPTION(scope, encodedJSValue());
lastIndex = result.end;
@@ -635,7 +635,7 @@
JSValue replacement = call(exec, replaceValue, callType, callData, jsUndefined(), args);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
- String replacementString = replacement.toString(exec)->value(exec);
+ String replacementString = replacement.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
replacements.append(replacementString);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
@@ -718,7 +718,7 @@
CallData callData;
CallType callType = getCallData(replaceValue, callData);
if (callType == CallType::None) {
- replacementString = replaceValue.toString(exec)->value(exec);
+ replacementString = replaceValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
}
@@ -732,7 +732,7 @@
auto scope = DECLARE_THROW_SCOPE(vm);
const String& string = jsString->value(exec);
- String searchString = searchValue.toString(exec)->value(exec);
+ String searchString = searchValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
size_t matchStart = string.find(searchString);
@@ -751,7 +751,7 @@
RETURN_IF_EXCEPTION(scope, encodedJSValue());
}
- String replaceString = replaceValue.toString(exec)->value(exec);
+ String replaceString = replaceValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
StringImpl* stringImpl = string.impl();
@@ -1115,7 +1115,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
int len = s.length();
@@ -1183,7 +1183,7 @@
// 3. Let S be the result of calling ToString, giving it the this value as its argument.
// 7. Let s be the number of characters in S.
- String input = thisValue.toString(exec)->value(exec);
+ String input = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
ASSERT(!input.isNull());
@@ -1205,7 +1205,7 @@
// 9. If separator is a RegExp object (its [[Class]] is "RegExp"), let R = separator;
// otherwise let R = ToString(separator).
JSValue separatorValue = exec->uncheckedArgument(0);
- String separator = separatorValue.toString(exec)->value(exec);
+ String separator = separatorValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
// 10. If lim == 0, return A.
@@ -1324,7 +1324,7 @@
jsString = jsCast<JSString*>(thisValue.asCell());
len = jsString->length();
} else {
- uString = thisValue.toString(exec)->value(exec);
+ uString = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
len = uString.length();
}
@@ -1455,11 +1455,11 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
JSValue a0 = exec->argument(0);
- String str = a0.toString(exec)->value(exec);
+ String str = a0.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
return JSValue::encode(jsNumber(Collator().collate(s, str)));
}
@@ -1574,7 +1574,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
scope.release();
return JSValue::encode(jsMakeNontrivialString(exec, "<big>", s, "</big>"));
@@ -1588,7 +1588,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
scope.release();
return JSValue::encode(jsMakeNontrivialString(exec, "<small>", s, "</small>"));
@@ -1602,7 +1602,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
scope.release();
return JSValue::encode(jsMakeNontrivialString(exec, "<blink>", s, "</blink>"));
@@ -1616,7 +1616,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
scope.release();
return JSValue::encode(jsMakeNontrivialString(exec, "<b>", s, "</b>"));
@@ -1630,7 +1630,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
scope.release();
return JSValue::encode(jsMakeNontrivialString(exec, "<tt>", s, "</tt>"));
@@ -1644,7 +1644,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
scope.release();
return JSValue::encode(jsMakeNontrivialString(exec, "<i>", s, "</i>"));
@@ -1658,7 +1658,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
scope.release();
return JSValue::encode(jsMakeNontrivialString(exec, "<strike>", s, "</strike>"));
@@ -1672,7 +1672,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
scope.release();
return JSValue::encode(jsMakeNontrivialString(exec, "<sub>", s, "</sub>"));
@@ -1686,7 +1686,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
scope.release();
return JSValue::encode(jsMakeNontrivialString(exec, "<sup>", s, "</sup>"));
@@ -1700,7 +1700,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
JSValue a0 = exec->argument(0);
@@ -1719,7 +1719,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
JSValue a0 = exec->argument(0);
@@ -1774,7 +1774,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
JSValue a0 = exec->argument(0);
@@ -1793,7 +1793,7 @@
JSValue thisValue = exec->thisValue();
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String s = thisValue.toString(exec)->value(exec);
+ String s = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
JSValue a0 = exec->argument(0);
@@ -1840,7 +1840,7 @@
if (!checkObjectCoercible(thisValue))
return throwTypeError(exec, scope);
- String str = thisValue.toString(exec)->value(exec);
+ String str = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, { });
unsigned left = 0;
@@ -1898,7 +1898,7 @@
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String stringToSearchIn = thisValue.toString(exec)->value(exec);
+ String stringToSearchIn = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
JSValue a0 = exec->argument(0);
@@ -1907,7 +1907,7 @@
if (isRegularExpression)
return throwVMTypeError(exec, scope, "Argument to String.prototype.startsWith cannot be a RegExp");
- String searchString = a0.toString(exec)->value(exec);
+ String searchString = a0.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
JSValue positionArg = exec->argument(1);
@@ -1932,7 +1932,7 @@
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String stringToSearchIn = thisValue.toString(exec)->value(exec);
+ String stringToSearchIn = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
JSValue a0 = exec->argument(0);
@@ -1941,7 +1941,7 @@
if (isRegularExpression)
return throwVMTypeError(exec, scope, "Argument to String.prototype.endsWith cannot be a RegExp");
- String searchString = a0.toString(exec)->value(exec);
+ String searchString = a0.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
unsigned length = stringToSearchIn.length();
@@ -1982,7 +1982,7 @@
if (!checkObjectCoercible(thisValue))
return throwVMTypeError(exec, scope);
- String stringToSearchIn = thisValue.toString(exec)->value(exec);
+ String stringToSearchIn = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
JSValue a0 = exec->argument(0);
@@ -1991,7 +1991,7 @@
if (isRegularExpression)
return throwVMTypeError(exec, scope, "Argument to String.prototype.includes cannot be a RegExp");
- String searchString = a0.toString(exec)->value(exec);
+ String searchString = a0.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
JSValue positionArg = exec->argument(1);
@@ -2008,11 +2008,11 @@
JSValue thisValue = exec->thisValue();
ASSERT(checkObjectCoercible(thisValue));
- String stringToSearchIn = thisValue.toString(exec)->value(exec);
+ String stringToSearchIn = thisValue.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
JSValue a0 = exec->uncheckedArgument(0);
- String searchString = a0.toString(exec)->value(exec);
+ String searchString = a0.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
JSValue positionArg = exec->argument(1);
@@ -2077,7 +2077,7 @@
UNormalizationMode form = UNORM_NFC;
// Verify that the argument is provided and is not undefined.
if (!exec->argument(0).isUndefined()) {
- String formString = exec->uncheckedArgument(0).toString(exec)->value(exec);
+ String formString = exec->uncheckedArgument(0).toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
if (formString == "NFC")
Modified: trunk/Source/_javascript_Core/tools/JSDollarVMPrototype.cpp (209791 => 209792)
--- trunk/Source/_javascript_Core/tools/JSDollarVMPrototype.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/tools/JSDollarVMPrototype.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -337,7 +337,7 @@
{
auto scope = DECLARE_THROW_SCOPE(exec->vm());
for (unsigned i = 0; i < exec->argumentCount(); ++i) {
- String argStr = exec->uncheckedArgument(i).toString(exec)->value(exec);
+ String argStr = exec->uncheckedArgument(i).toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
dataLog(argStr);
}
Modified: trunk/Source/_javascript_Core/wasm/js/JSWebAssemblyCompileError.h (209791 => 209792)
--- trunk/Source/_javascript_Core/wasm/js/JSWebAssemblyCompileError.h 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/wasm/js/JSWebAssemblyCompileError.h 2016-12-14 07:02:45 UTC (rev 209792)
@@ -38,7 +38,7 @@
static JSWebAssemblyCompileError* create(ExecState*, Structure*, const String&, bool);
static JSWebAssemblyCompileError* create(ExecState* exec, Structure* structure, JSValue message, bool useCurrentFrame)
{
- return create(exec, structure, message.isUndefined() ? String() : message.toString(exec)->value(exec), useCurrentFrame);
+ return create(exec, structure, message.isUndefined() ? String() : message.toWTFString(exec), useCurrentFrame);
}
DECLARE_INFO;
Modified: trunk/Source/_javascript_Core/wasm/js/JSWebAssemblyRuntimeError.h (209791 => 209792)
--- trunk/Source/_javascript_Core/wasm/js/JSWebAssemblyRuntimeError.h 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/_javascript_Core/wasm/js/JSWebAssemblyRuntimeError.h 2016-12-14 07:02:45 UTC (rev 209792)
@@ -38,7 +38,7 @@
static JSWebAssemblyRuntimeError* create(ExecState*, Structure*, const String&, bool useCurrentFrame = true);
static JSWebAssemblyRuntimeError* create(ExecState* exec, Structure* structure, JSValue message, bool useCurrentFrame)
{
- return create(exec, structure, message.isUndefined() ? String() : message.toString(exec)->value(exec), useCurrentFrame);
+ return create(exec, structure, message.isUndefined() ? String() : message.toWTFString(exec), useCurrentFrame);
}
DECLARE_INFO;
Modified: trunk/Source/WebCore/ChangeLog (209791 => 209792)
--- trunk/Source/WebCore/ChangeLog 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/ChangeLog 2016-12-14 07:02:45 UTC (rev 209792)
@@ -1,5 +1,90 @@
2016-12-13 Yusuke Suzuki <[email protected]>
+ 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):
+ (WebCore::getNthValueOnKeyPath): Deleted.
+ (WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath): Deleted.
+ (WebCore::ensureNthValueOnKeyPath): Deleted.
+ (WebCore::canInjectNthValueOnKeyPath): Deleted.
+ (WebCore::injectIDBKeyIntoScriptValue): Deleted.
+ (WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath): Deleted.
+ (WebCore::canInjectIDBKeyIntoScriptValue): Deleted.
+ (WebCore::deserializeIDBValueToJSValue): Deleted.
+ (WebCore::scriptValueToIDBKey): Deleted.
+ (WebCore::idbKeyDataToScriptValue): Deleted.
+ (WebCore::createKeyPathArray): Deleted.
+ (WebCore::generateIndexKeyForValue): Deleted.
+ * 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):
+ (WebCore::JSEventListener::virtualisAttribute): Deleted.
+ (WebCore::JSEventListener::operator==): Deleted.
+ (WebCore::eventHandlerAttribute): Deleted.
+ (WebCore::createEventListenerForEventHandlerAttribute): Deleted.
+ (WebCore::setEventHandlerAttribute): Deleted.
+ (WebCore::windowEventHandlerAttribute): Deleted.
+ (WebCore::setWindowEventHandlerAttribute): Deleted.
+ (WebCore::documentEventHandlerAttribute): Deleted.
+ (WebCore::setDocumentEventHandlerAttribute): Deleted.
+ * bindings/js/JSHTMLAllCollectionCustom.cpp:
+ (WebCore::callHTMLAllCollection):
+ (WebCore::JSHTMLAllCollection::namedItem):
+ * bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
+ (WebCore::JSHTMLFormControlsCollection::namedItem):
+ * bindings/js/JSHTMLInputElementCustom.cpp:
+ (WebCore::JSHTMLInputElement::setSelectionDirection):
+ (WebCore::JSHTMLInputElement::setSelectionRange): Deleted.
+ * bindings/js/JSInspectorFrontendHostCustom.cpp:
+ (WebCore::populateContextMenuItems):
+ (WebCore::JSInspectorFrontendHost::showContextMenu): Deleted.
+ * 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):
+ (WebCore::JSXMLHttpRequest::responseText): Deleted.
+ (WebCore::JSXMLHttpRequest::retrieveResponse): Deleted.
+ * 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):
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::buildObjectForEventListener):
+
+2016-12-13 Yusuke Suzuki <[email protected]>
+
ASSERTION FAILED: hasParserBlockingScript() seen with js/dom/modules/module-will-fire-beforeload.html
https://bugs.webkit.org/show_bug.cgi?id=164883
Modified: trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -148,7 +148,7 @@
return IDBKey::createNumber(value.toNumber(&exec));
if (value.isString())
- return IDBKey::createString(value.toString(&exec)->value(&exec));
+ return IDBKey::createString(value.toWTFString(&exec));
if (value.inherits(DateInstance::info()) && !std::isnan(valueToDate(&exec, value)))
return IDBKey::createDate(valueToDate(&exec, value));
Modified: trunk/Source/WebCore/bindings/js/JSAudioTrackCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSAudioTrackCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSAudioTrackCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -46,7 +46,7 @@
VM& vm = state.vm();
auto scope = DECLARE_THROW_SCOPE(vm);
- auto& string = value.toString(&state)->value(&state);
+ auto& string = value.toWTFString(&state);
RETURN_IF_EXCEPTION(scope, void());
wrapped().setKind(string);
#else
@@ -61,7 +61,7 @@
VM& vm = state.vm();
auto scope = DECLARE_THROW_SCOPE(vm);
- auto& string = value.toString(&state)->value(&state);
+ auto& string = value.toWTFString(&state);
RETURN_IF_EXCEPTION(scope, void());
wrapped().setLanguage(string);
#else
Modified: trunk/Source/WebCore/bindings/js/JSCryptoAlgorithmDictionary.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSCryptoAlgorithmDictionary.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSCryptoAlgorithmDictionary.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -62,7 +62,7 @@
String algorithmName;
if (value.isString())
- algorithmName = value.toString(exec)->value(exec);
+ algorithmName = value.toWTFString(exec);
else if (value.isObject()) {
if (value.getObject()->inherits(StringObject::info()))
algorithmName = asString(asStringObject(value)->internalValue())->value(exec);
Modified: trunk/Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -100,7 +100,7 @@
reportException(exec, exception);
else {
if (!retval.isUndefinedOrNull())
- result = retval.toString(exec)->value(exec);
+ result = retval.toWTFString(exec);
}
return result;
Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -389,7 +389,7 @@
}
#endif
- String locationString = value.toString(&state)->value(&state);
+ String locationString = value.toWTFString(&state);
RETURN_IF_EXCEPTION(scope, void());
if (Location* location = wrapped().location())
Modified: trunk/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -170,7 +170,7 @@
VM& vm = state.vm();
auto scope = DECLARE_THROW_SCOPE(vm);
- const String type = state.argument(0).toString(&state)->value(&state);
+ const String type = state.argument(0).toWTFString(&state);
bool bubbles = state.argument(1).toBoolean(&state);
bool cancelable = state.argument(2).toBoolean(&state);
Modified: trunk/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -93,7 +93,7 @@
JSValue JSDeviceOrientationEvent::initDeviceOrientationEvent(ExecState& state)
{
- const String type = state.argument(0).toString(&state)->value(&state);
+ const String type = state.argument(0).toWTFString(&state);
bool bubbles = state.argument(1).toBoolean(&state);
bool cancelable = state.argument(2).toBoolean(&state);
// If alpha, beta or gamma are null or undefined, mark them as not provided.
Modified: trunk/Source/WebCore/bindings/js/JSEventListener.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSEventListener.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSEventListener.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -160,7 +160,7 @@
reportException(exec, exception);
} else {
if (!retval.isUndefinedOrNull() && is<BeforeUnloadEvent>(*event))
- downcast<BeforeUnloadEvent>(*event).setReturnValue(retval.toString(exec)->value(exec));
+ downcast<BeforeUnloadEvent>(*event).setReturnValue(retval.toWTFString(exec));
if (m_isAttribute) {
if (retval.isFalse())
event->preventDefault();
Modified: trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -67,7 +67,7 @@
if (exec->argumentCount() == 1) {
// Support for document.all(<index>) etc.
- String string = exec->argument(0).toString(exec)->value(exec);
+ String string = exec->argument(0).toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
if (std::optional<uint32_t> index = parseIndex(*string.impl()))
return JSValue::encode(toJS(exec, jsCollection->globalObject(), collection.item(index.value())));
@@ -77,7 +77,7 @@
}
// The second arg, if set, is the index of the item we want
- String string = exec->argument(0).toString(exec)->value(exec);
+ String string = exec->argument(0).toWTFString(exec);
RETURN_IF_EXCEPTION(scope, encodedJSValue());
if (std::optional<uint32_t> index = parseIndex(*exec->argument(1).toWTFString(exec).impl())) {
if (auto* item = collection.namedItemWithIndex(string, index.value()))
@@ -119,7 +119,7 @@
JSValue JSHTMLAllCollection::namedItem(ExecState& state)
{
- JSValue value = namedItems(state, this, Identifier::fromString(&state, state.argument(0).toString(&state)->value(&state)));
+ JSValue value = namedItems(state, this, Identifier::fromString(&state, state.argument(0).toWTFString(&state)));
return value.isUndefined() ? jsNull() : value;
}
Modified: trunk/Source/WebCore/bindings/js/JSHTMLFormControlsCollectionCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSHTMLFormControlsCollectionCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSHTMLFormControlsCollectionCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -62,7 +62,7 @@
if (UNLIKELY(state.argumentCount() < 1))
return throwException(&state, scope, createNotEnoughArgumentsError(&state));
- JSValue value = namedItems(state, this, Identifier::fromString(&state, state.uncheckedArgument(0).toString(&state)->value(&state)));
+ JSValue value = namedItems(state, this, Identifier::fromString(&state, state.uncheckedArgument(0).toWTFString(&state)));
return value.isUndefined() ? jsNull() : value;
}
Modified: trunk/Source/WebCore/bindings/js/JSHTMLInputElementCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSHTMLInputElementCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSHTMLInputElementCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -104,7 +104,7 @@
return;
}
- input.setSelectionDirection(value.toString(&state)->value(&state));
+ input.setSelectionDirection(value.toWTFString(&state));
}
JSValue JSHTMLInputElement::setSelectionRange(ExecState& state)
Modified: trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -62,7 +62,7 @@
if (!type.isString())
continue;
- String typeString = type.toString(exec)->value(exec);
+ String typeString = type.toWTFString(exec);
if (typeString == "separator") {
ContextMenuItem item(SeparatorType, ContextMenuItemTagNoAction, String());
menu.appendItem(item);
@@ -70,11 +70,11 @@
ContextMenu subMenu;
JSArray* subItemsArray = asArray(subItems);
populateContextMenuItems(exec, subItemsArray, subMenu);
- ContextMenuItem item(SubmenuType, ContextMenuItemTagNoAction, label.toString(exec)->value(exec), &subMenu);
+ ContextMenuItem item(SubmenuType, ContextMenuItemTagNoAction, label.toWTFString(exec), &subMenu);
menu.appendItem(item);
} else {
ContextMenuAction typedId = static_cast<ContextMenuAction>(ContextMenuItemBaseCustomTag + id.toInt32(exec));
- ContextMenuItem menuItem((typeString == "checkbox" ? CheckableActionType : ActionType), typedId, label.toString(exec)->value(exec));
+ ContextMenuItem menuItem((typeString == "checkbox" ? CheckableActionType : ActionType), typedId, label.toWTFString(exec));
if (!enabled.isUndefined())
menuItem.setEnabled(enabled.toBoolean(exec));
if (!checked.isUndefined())
Modified: trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -108,7 +108,7 @@
VM& vm = state.vm();
auto scope = DECLARE_THROW_SCOPE(vm);
- const String& typeArg = state.argument(0).toString(&state)->value(&state);
+ const String& typeArg = state.argument(0).toWTFString(&state);
RETURN_IF_EXCEPTION(scope, JSValue());
bool canBubbleArg = state.argument(1).toBoolean(&state);
@@ -122,7 +122,7 @@
const String originArg = convert<IDLUSVString>(state, state.argument(4));
RETURN_IF_EXCEPTION(scope, JSValue());
- const String lastEventIdArg = state.argument(5).toString(&state)->value(&state);
+ const String lastEventIdArg = state.argument(5).toWTFString(&state);
RETURN_IF_EXCEPTION(scope, JSValue());
auto sourceArg = convert<IDLNullable<IDLUnion<IDLInterface<DOMWindow>, IDLInterface<MessagePort>>>>(state, state.argument(6));
Modified: trunk/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -52,7 +52,7 @@
return jsUndefined();
}
- String sqlStatement = state.argument(0).toString(&state)->value(&state);
+ String sqlStatement = state.argument(0).toWTFString(&state);
RETURN_IF_EXCEPTION(scope, JSValue());
// Now assemble the list of SQL arguments
@@ -79,7 +79,7 @@
sqlValues.append(value.asNumber());
else {
// Convert the argument to a string and append it
- sqlValues.append(value.toString(&state)->value(&state));
+ sqlValues.append(value.toWTFString(&state));
RETURN_IF_EXCEPTION(scope, JSValue());
}
}
Modified: trunk/Source/WebCore/bindings/js/JSTextTrackCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSTextTrackCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSTextTrackCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -47,7 +47,7 @@
VM& vm = state.vm();
auto scope = DECLARE_THROW_SCOPE(vm);
- auto& string = value.toString(&state)->value(&state);
+ auto& string = value.toWTFString(&state);
RETURN_IF_EXCEPTION(scope, void());
wrapped().setLanguage(string);
#else
Modified: trunk/Source/WebCore/bindings/js/JSVideoTrackCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSVideoTrackCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSVideoTrackCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -46,7 +46,7 @@
VM& vm = state.vm();
auto scope = DECLARE_THROW_SCOPE(vm);
- auto& string = value.toString(&state)->value(&state);
+ auto& string = value.toWTFString(&state);
RETURN_IF_EXCEPTION(scope, void());
wrapped().setKind(string);
#else
@@ -61,7 +61,7 @@
VM& vm = state.vm();
auto scope = DECLARE_THROW_SCOPE(vm);
- auto& string = value.toString(&state)->value(&state);
+ auto& string = value.toWTFString(&state);
RETURN_IF_EXCEPTION(scope, void());
wrapped().setLanguage(string);
#else
Modified: trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -84,7 +84,7 @@
VM& vm = state.vm();
auto scope = DECLARE_THROW_SCOPE(vm);
- String keyFormatString = value.toString(&state)->value(&state);
+ String keyFormatString = value.toWTFString(&state);
RETURN_IF_EXCEPTION(scope, false);
if (keyFormatString == "raw")
result = CryptoKeyFormat::Raw;
@@ -116,7 +116,7 @@
JSArray* array = asArray(value);
for (size_t i = 0; i < array->length(); ++i) {
JSValue element = array->getIndex(&state, i);
- String usageString = element.toString(&state)->value(&state);
+ String usageString = element.toWTFString(&state);
RETURN_IF_EXCEPTION(scope, false);
if (usageString == "encrypt")
result |= CryptoKeyUsageEncrypt;
Modified: trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -124,7 +124,7 @@
else {
// FIXME: If toString raises an exception, should we exit before calling willSendXMLHttpRequest?
// FIXME: If toString raises an exception, should we exit before calling send?
- result = wrapped().send(value.toString(&state)->value(&state));
+ result = wrapped().send(value.toWTFString(&state));
}
// FIXME: This should probably use ShadowChicken so that we get the right frame even when it did a tail call.
Modified: trunk/Source/WebCore/bindings/js/JSXSLTProcessorCustom.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/JSXSLTProcessorCustom.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/JSXSLTProcessorCustom.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -50,9 +50,9 @@
{
if (state.argument(1).isUndefinedOrNull() || state.argument(2).isUndefinedOrNull())
return jsUndefined(); // Throw exception?
- 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);
+ String namespaceURI = state.uncheckedArgument(0).toWTFString(&state);
+ String localName = state.uncheckedArgument(1).toWTFString(&state);
+ String value = state.uncheckedArgument(2).toWTFString(&state);
wrapped().setParameter(namespaceURI, localName, value);
return jsUndefined();
}
@@ -61,8 +61,8 @@
{
if (state.argument(1).isUndefinedOrNull())
return jsUndefined();
- String namespaceURI = state.uncheckedArgument(0).toString(&state)->value(&state);
- String localName = state.uncheckedArgument(1).toString(&state)->value(&state);
+ String namespaceURI = state.uncheckedArgument(0).toWTFString(&state);
+ String localName = state.uncheckedArgument(1).toWTFString(&state);
String value = wrapped().getParameter(namespaceURI, localName);
return jsStringOrUndefined(&state, value);
}
@@ -71,8 +71,8 @@
{
if (state.argument(1).isUndefinedOrNull())
return jsUndefined();
- String namespaceURI = state.uncheckedArgument(0).toString(&state)->value(&state);
- String localName = state.uncheckedArgument(1).toString(&state)->value(&state);
+ String namespaceURI = state.uncheckedArgument(0).toWTFString(&state);
+ String localName = state.uncheckedArgument(1).toWTFString(&state);
wrapped().removeParameter(namespaceURI, localName);
return jsUndefined();
}
Modified: trunk/Source/WebCore/bindings/js/ScheduledAction.cpp (209791 => 209792)
--- trunk/Source/WebCore/bindings/js/ScheduledAction.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bindings/js/ScheduledAction.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -55,7 +55,7 @@
if (getCallData(v, callData) == CallType::None) {
if (policy && !policy->allowEval(exec))
return nullptr;
- String string = v.toString(exec)->value(exec);
+ String string = v.toWTFString(exec);
RETURN_IF_EXCEPTION(scope, nullptr);
return std::unique_ptr<ScheduledAction>(new ScheduledAction(string, isolatedWorld));
}
Modified: trunk/Source/WebCore/bridge/c/c_utility.cpp (209791 => 209792)
--- trunk/Source/WebCore/bridge/c/c_utility.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bridge/c/c_utility.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -74,7 +74,7 @@
VOID_TO_NPVARIANT(*result);
if (value.isString()) {
- String ustring = value.toString(exec)->value(exec);
+ String ustring = value.toWTFString(exec);
CString cstring = ustring.utf8();
NPString string = { (const NPUTF8*)cstring.data(), static_cast<uint32_t>(cstring.length()) };
NPN_InitializeVariantWithStringCopy(result, &string);
Modified: trunk/Source/WebCore/bridge/testbindings.cpp (209791 => 209792)
--- trunk/Source/WebCore/bridge/testbindings.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebCore/bridge/testbindings.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -391,7 +391,9 @@
if (comp.complType() == Throw) {
Value exVal = comp.value();
- char* msg = exVal.toString(exec)->value(exec).ascii();
+ String message = exVal.toWTFString(exec);
+ auto cstring = msg.ascii();
+ const char* msg = cstring.data();
int lineno = -1;
if (exVal.type() == ObjectType) {
Value lineVal = Object::dynamicCast(exVal).get(exec, Identifier::fromString(exec, "line"));
Modified: trunk/Source/WebKit2/ChangeLog (209791 => 209792)
--- trunk/Source/WebKit2/ChangeLog 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebKit2/ChangeLog 2016-12-14 07:02:45 UTC (rev 209792)
@@ -1,3 +1,13 @@
+2016-12-13 Yusuke Suzuki <[email protected]>
+
+ 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):
+
2016-12-13 Alex Christensen <[email protected]>
Fix CMake build.
Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp (209791 => 209792)
--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp 2016-12-14 06:22:13 UTC (rev 209791)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp 2016-12-14 07:02:45 UTC (rev 209792)
@@ -168,7 +168,7 @@
}
if (value.isString()) {
- NPString npString = createNPString(value.toString(exec)->value(exec).utf8());
+ NPString npString = createNPString(value.toWTFString(exec).utf8());
STRINGN_TO_NPVARIANT(npString.UTF8Characters, npString.UTF8Length, variant);
return;
}