diff options
| author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-03 09:55:33 +0100 |
|---|---|---|
| committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-03 09:55:33 +0100 |
| commit | cd44dc59cdfc39534aef4d417e9f3c412e3be139 (patch) | |
| tree | 8d89889ba95ed6ec9322e733846cc9cce9d7dff1 /Source/JavaScriptCore/runtime/Operations.h | |
| parent | d11f84f5b5cdc0d92a08af01b13472fdd5f9acb9 (diff) | |
Imported WebKit commit fce473cb4d55aa9fe9d0b0322a2fffecb731b961 (http://svn.webkit.org/repository/webkit/trunk@106560)
Diffstat (limited to 'Source/JavaScriptCore/runtime/Operations.h')
| -rw-r--r-- | Source/JavaScriptCore/runtime/Operations.h | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/Source/JavaScriptCore/runtime/Operations.h b/Source/JavaScriptCore/runtime/Operations.h index ca2174fa1..945283899 100644 --- a/Source/JavaScriptCore/runtime/Operations.h +++ b/Source/JavaScriptCore/runtime/Operations.h @@ -81,10 +81,7 @@ namespace JSC { for (unsigned i = 0; i < count; ++i) { JSValue v = strings[i].jsValue(); - if (v.isString()) - ropeBuilder.append(asString(v)); - else - ropeBuilder.append(jsString(globalData, v.toString(exec))); + ropeBuilder.append(v.toString(exec)); if (ropeBuilder.length() < oldLength) // True for overflow return throwOutOfMemoryError(exec); @@ -97,20 +94,13 @@ namespace JSC { { JSGlobalData* globalData = &exec->globalData(); JSString::RopeBuilder ropeBuilder(*globalData); - - if (thisValue.isString()) - ropeBuilder.append(asString(thisValue)); - else - ropeBuilder.append(jsString(globalData, thisValue.toString(exec))); + ropeBuilder.append(thisValue.toString(exec)); unsigned oldLength = 0; for (unsigned i = 0; i < exec->argumentCount(); ++i) { JSValue v = exec->argument(i); - if (v.isString()) - ropeBuilder.append(asString(v)); - else - ropeBuilder.append(jsString(globalData, v.toString(exec))); + ropeBuilder.append(v.toString(exec)); if (ropeBuilder.length() < oldLength) // True for overflow return throwOutOfMemoryError(exec); @@ -300,11 +290,8 @@ namespace JSC { if (v1.isNumber() && v2.isNumber()) return jsNumber(v1.asNumber() + v2.asNumber()); - if (v1.isString()) { - return v2.isString() - ? jsString(callFrame, asString(v1), asString(v2)) - : jsString(callFrame, asString(v1), v2.toPrimitiveString(callFrame)); - } + if (v1.isString() && !v2.isObject()) + return jsString(callFrame, asString(v1), v2.toString(callFrame)); // All other cases are pretty uncommon return jsAddSlowCase(callFrame, v1, v2); |
