Changeset 56425 in webkit for trunk/JavaScriptCore/runtime
- Timestamp:
- Mar 23, 2010, 4:12:10 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/runtime/ArrayPrototype.cpp
r55833 r56425 507 507 JSArray* resObj = constructEmptyArray(exec); 508 508 JSValue result = resObj; 509 unsigned length = thisObj->get(exec, exec->propertyNames().length).toUInt32(exec); 509 510 // FIXME: Firefox returns an empty array. 510 511 if (!args.size()) 511 512 return jsUndefined(); 512 int begin = args.at(0).toUInt32(exec); 513 if (begin < 0) 514 begin = std::max<int>(begin + length, 0); 515 else 516 begin = std::min<int>(begin, length); 513 514 unsigned length = thisObj->get(exec, exec->propertyNames().length).toInteger(exec); 515 double relativeBegin = args.at(0).toInteger(exec); 516 unsigned begin; 517 if (relativeBegin < 0) { 518 relativeBegin += length; 519 begin = (relativeBegin < 0) ? 0 : static_cast<unsigned>(relativeBegin); 520 } else 521 begin = std::min<unsigned>(relativeBegin, length); 517 522 518 523 unsigned deleteCount; … … 540 545 thisObj->deleteProperty(exec, k - 1); 541 546 } else { 542 for (unsigned k = length - deleteCount; (int)k > begin; --k) {547 for (unsigned k = length - deleteCount; k > begin; --k) { 543 548 if (JSValue obj = getProperty(exec, thisObj, k + deleteCount - 1)) 544 549 thisObj->put(exec, k + additionalArgs - 1, obj);
Note:
See TracChangeset
for help on using the changeset viewer.