Changeset 97292 in webkit for trunk/Source/JavaScriptGlue/UserObjectImp.cpp
- Timestamp:
- Oct 12, 2011, 1:23:08 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptGlue/UserObjectImp.cpp
r97097 r97292 329 329 } 330 330 331 UString UserObjectImp::toString(ExecState *exec) const332 {333 UString result;334 JSUserObject* jsObjPtr = KJSValueToJSObject(toObject(exec, exec->lexicalGlobalObject()), exec);335 CFTypeRef cfValue = jsObjPtr ? jsObjPtr->CopyCFValue() : 0;336 if (cfValue)337 {338 CFTypeID cfType = CFGetTypeID(cfValue);339 if (cfValue == GetCFNull())340 {341 //342 }343 else if (cfType == CFBooleanGetTypeID())344 {345 if (cfValue == kCFBooleanTrue)346 {347 result = "true";348 }349 else350 {351 result = "false";352 }353 }354 else if (cfType == CFStringGetTypeID())355 {356 result = CFStringToUString((CFStringRef)cfValue);357 }358 else if (cfType == CFNumberGetTypeID())359 {360 if (cfValue == kCFNumberNaN)361 {362 result = "Nan";363 }364 else if (CFNumberCompare(kCFNumberPositiveInfinity, (CFNumberRef)cfValue, 0) == 0)365 {366 result = "Infinity";367 }368 else if (CFNumberCompare(kCFNumberNegativeInfinity, (CFNumberRef)cfValue, 0) == 0)369 {370 result = "-Infinity";371 }372 else373 {374 CFStringRef cfNumStr;375 double d = 0;376 CFNumberGetValue((CFNumberRef)cfValue, kCFNumberDoubleType, &d);377 if (CFNumberIsFloatType((CFNumberRef)cfValue))378 {379 cfNumStr = CFStringCreateWithFormat(0, 0, CFSTR("%f"), d);380 }381 else382 {383 cfNumStr = CFStringCreateWithFormat(0, 0, CFSTR("%.0f"), d);384 }385 result = CFStringToUString(cfNumStr);386 ReleaseCFType(cfNumStr);387 }388 }389 else if (cfType == CFArrayGetTypeID())390 {391 //392 }393 else if (cfType == CFDictionaryGetTypeID())394 {395 //396 }397 else if (cfType == CFSetGetTypeID())398 {399 //400 }401 else if (cfType == CFURLGetTypeID())402 {403 CFURLRef absURL = CFURLCopyAbsoluteURL((CFURLRef)cfValue);404 if (absURL)405 {406 CFStringRef cfStr = CFURLGetString(absURL);407 if (cfStr)408 {409 result = CFStringToUString(cfStr);410 }411 ReleaseCFType(absURL);412 }413 }414 }415 ReleaseCFType(cfValue);416 if (jsObjPtr) jsObjPtr->Release();417 return result;418 }419 420 331 void UserObjectImp::visitChildren(JSCell* cell, SlotVisitor& visitor) 421 332 {
Note:
See TracChangeset
for help on using the changeset viewer.