Changeset 36006 in webkit for trunk/JavaScriptCore/VM/Machine.cpp
- Timestamp:
- Aug 30, 2008, 11:58:07 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/Machine.cpp
r36004 r36006 192 192 193 193 if (p1->isString() || p2->isString()) { 194 UString value = p1->toString(exec) + p2->toString(exec);195 if ( value.isNull())194 RefPtr<UString::Rep> value = concatenate(p1->toString(exec).rep(), p2->toString(exec).rep()); 195 if (!value) 196 196 return throwOutOfMemoryError(exec); 197 return jsString(exec, value );197 return jsString(exec, value.release()); 198 198 } 199 199 … … 218 218 219 219 if (v1->isString() && v2->isString()) { 220 UString value = static_cast<JSString*>(v1)->value() + static_cast<JSString*>(v2)->value();221 if ( value.isNull())220 RefPtr<UString::Rep> value = concatenate(static_cast<JSString*>(v1)->value().rep(), static_cast<JSString*>(v2)->value().rep()); 221 if (!value) 222 222 return throwOutOfMemoryError(exec); 223 return jsString(exec, value );223 return jsString(exec, value.release()); 224 224 } 225 225 … … 231 231 { 232 232 if (v->isUndefined()) 233 return js String(exec, "undefined");233 return jsNontrivialString(exec, "undefined"); 234 234 if (v->isBoolean()) 235 return js String(exec, "boolean");235 return jsNontrivialString(exec, "boolean"); 236 236 if (v->isNumber()) 237 return js String(exec, "number");237 return jsNontrivialString(exec, "number"); 238 238 if (v->isString()) 239 return js String(exec, "string");239 return jsNontrivialString(exec, "string"); 240 240 if (v->isObject()) { 241 241 // Return "undefined" for objects that should be treated 242 242 // as null when doing comparisons. 243 243 if (static_cast<JSObject*>(v)->masqueradeAsUndefined()) 244 return js String(exec, "undefined");244 return jsNontrivialString(exec, "undefined"); 245 245 CallData callData; 246 246 if (static_cast<JSObject*>(v)->getCallData(callData) != CallTypeNone) 247 return js String(exec, "function");248 } 249 return js String(exec, "object");247 return jsNontrivialString(exec, "function"); 248 } 249 return jsNontrivialString(exec, "object"); 250 250 } 251 251
Note:
See TracChangeset
for help on using the changeset viewer.