Changeset 33038 in webkit for trunk/JavaScriptCore/kjs/array_object.cpp
- Timestamp:
- May 12, 2008, 12:12:31 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/array_object.cpp
r32807 r33038 96 96 Vector<UChar, 256> strBuffer; 97 97 if (alreadyVisited) 98 return jsString( exec,UString(0, 0)); // return an empty string, avoding infinite recursion.98 return jsString(UString(0, 0)); // return an empty string, avoding infinite recursion. 99 99 100 100 unsigned length = thisObj->get(exec, exec->propertyNames().length)->toUInt32(exec); … … 124 124 } 125 125 exec->dynamicGlobalObject()->arrayVisitedElements().remove(thisObj); 126 return jsString( exec,UString(strBuffer.data(), strBuffer.data() ? strBuffer.size() : 0));126 return jsString(UString(strBuffer.data(), strBuffer.data() ? strBuffer.size() : 0)); 127 127 } 128 128 … … 135 135 Vector<UChar, 256> strBuffer; 136 136 if (alreadyVisited) 137 return jsString( exec,UString(0, 0)); // return an empty string, avoding infinite recursion.137 return jsString(UString(0, 0)); // return an empty string, avoding infinite recursion. 138 138 139 139 unsigned length = thisObj->get(exec, exec->propertyNames().length)->toUInt32(exec); … … 169 169 } 170 170 exec->dynamicGlobalObject()->arrayVisitedElements().remove(thisObj); 171 return jsString( exec,UString(strBuffer.data(), strBuffer.data() ? strBuffer.size() : 0));171 return jsString(UString(strBuffer.data(), strBuffer.data() ? strBuffer.size() : 0)); 172 172 } 173 173 … … 177 177 Vector<UChar, 256> strBuffer; 178 178 if (alreadyVisited) 179 return jsString( exec,UString(0, 0)); // return an empty string, avoding infinite recursion.179 return jsString(UString(0, 0)); // return an empty string, avoding infinite recursion. 180 180 181 181 UChar comma = ','; … … 208 208 } 209 209 exec->dynamicGlobalObject()->arrayVisitedElements().remove(thisObj); 210 return jsString( exec,UString(strBuffer.data(), strBuffer.data() ? strBuffer.size() : 0));210 return jsString(UString(strBuffer.data(), strBuffer.data() ? strBuffer.size() : 0)); 211 211 } 212 212 … … 241 241 ++it; 242 242 } 243 arr->put(exec, exec->propertyNames().length, jsNumber( exec,n));243 arr->put(exec, exec->propertyNames().length, jsNumber(n)); 244 244 return arr; 245 245 } … … 250 250 unsigned length = thisObj->get(exec, exec->propertyNames().length)->toUInt32(exec); 251 251 if (length == 0) { 252 thisObj->put(exec, exec->propertyNames().length, jsNumber( exec,length));252 thisObj->put(exec, exec->propertyNames().length, jsNumber(length)); 253 253 result = jsUndefined(); 254 254 } else { 255 255 result = thisObj->get(exec, length - 1); 256 256 thisObj->deleteProperty(exec, length - 1); 257 thisObj->put(exec, exec->propertyNames().length, jsNumber( exec,length - 1));257 thisObj->put(exec, exec->propertyNames().length, jsNumber(length - 1)); 258 258 } 259 259 return result; … … 266 266 thisObj->put(exec, length + n, args[n]); 267 267 length += args.size(); 268 thisObj->put(exec, exec->propertyNames().length, jsNumber( exec,length));269 return jsNumber( exec,length);268 thisObj->put(exec, exec->propertyNames().length, jsNumber(length)); 269 return jsNumber(length); 270 270 } 271 271 … … 299 299 unsigned length = thisObj->get(exec, exec->propertyNames().length)->toUInt32(exec); 300 300 if (length == 0) { 301 thisObj->put(exec, exec->propertyNames().length, jsNumber( exec,length));301 thisObj->put(exec, exec->propertyNames().length, jsNumber(length)); 302 302 result = jsUndefined(); 303 303 } else { … … 310 310 } 311 311 thisObj->deleteProperty(exec, length - 1); 312 thisObj->put(exec, exec->propertyNames().length, jsNumber( exec,length - 1));312 thisObj->put(exec, exec->propertyNames().length, jsNumber(length - 1)); 313 313 } 314 314 return result; … … 354 354 resObj->put(exec, n, v); 355 355 } 356 resObj->put(exec, exec->propertyNames().length, jsNumber( exec,n));356 resObj->put(exec, exec->propertyNames().length, jsNumber(n)); 357 357 return result; 358 358 } … … 439 439 resObj->put(exec, k, v); 440 440 } 441 resObj->put(exec, exec->propertyNames().length, jsNumber( exec,deleteCount));441 resObj->put(exec, exec->propertyNames().length, jsNumber(deleteCount)); 442 442 443 443 unsigned additionalArgs = std::max<int>(args.size() - 2, 0); … … 464 464 thisObj->put(exec, k + begin, args[k + 2]); 465 465 466 thisObj->put(exec, exec->propertyNames().length, jsNumber( exec,length - deleteCount + additionalArgs));466 thisObj->put(exec, exec->propertyNames().length, jsNumber(length - deleteCount + additionalArgs)); 467 467 return result; 468 468 } … … 483 483 for (unsigned k = 0; k < nrArgs; ++k) 484 484 thisObj->put(exec, k, args[k]); 485 JSValue* result = jsNumber( exec,length + nrArgs);485 JSValue* result = jsNumber(length + nrArgs); 486 486 thisObj->put(exec, exec->propertyNames().length, result); 487 487 return result; … … 511 511 512 512 eachArguments.append(v); 513 eachArguments.append(jsNumber( exec,k));513 eachArguments.append(jsNumber(k)); 514 514 eachArguments.append(thisObj); 515 515 … … 533 533 534 534 List mapArgs; 535 mapArgs.append(jsNumber( exec,length));535 mapArgs.append(jsNumber(length)); 536 536 JSObject* resultArray = static_cast<JSObject*>(exec->lexicalGlobalObject()->arrayConstructor()->construct(exec, mapArgs)); 537 537 … … 546 546 547 547 eachArguments.append(v); 548 eachArguments.append(jsNumber( exec,k));548 eachArguments.append(jsNumber(k)); 549 549 eachArguments.append(thisObj); 550 550 … … 582 582 583 583 eachArguments.append(slot.getValue(exec, thisObj, k)); 584 eachArguments.append(jsNumber( exec,k));584 eachArguments.append(jsNumber(k)); 585 585 eachArguments.append(thisObj); 586 586 … … 613 613 List eachArguments; 614 614 eachArguments.append(slot.getValue(exec, thisObj, k)); 615 eachArguments.append(jsNumber( exec,k));615 eachArguments.append(jsNumber(k)); 616 616 eachArguments.append(thisObj); 617 617 … … 640 640 List eachArguments; 641 641 eachArguments.append(slot.getValue(exec, thisObj, k)); 642 eachArguments.append(jsNumber( exec,k));642 eachArguments.append(jsNumber(k)); 643 643 eachArguments.append(thisObj); 644 644 … … 676 676 continue; 677 677 if (strictEqual(exec, searchElement, e)) 678 return jsNumber( exec,index);679 } 680 681 return jsNumber( exec,-1);678 return jsNumber(index); 679 } 680 681 return jsNumber(-1); 682 682 } 683 683 … … 694 694 d += length; 695 695 if (d < 0) 696 return jsNumber( exec,-1);696 return jsNumber(-1); 697 697 } 698 698 if (d < length) … … 705 705 continue; 706 706 if (strictEqual(exec, searchElement, e)) 707 return jsNumber( exec,index);708 } 709 710 return jsNumber( exec,-1);707 return jsNumber(index); 708 } 709 710 return jsNumber(-1); 711 711 } 712 712 … … 720 720 721 721 // no. of arguments for constructor 722 putDirect(exec->propertyNames().length, jsNumber( exec,1), ReadOnly|DontDelete|DontEnum);722 putDirect(exec->propertyNames().length, jsNumber(1), ReadOnly|DontDelete|DontEnum); 723 723 } 724 724 … … 736 736 if (n != args[0]->toNumber(exec)) 737 737 return throwError(exec, RangeError, "Array size is not a small enough positive integer."); 738 return new (exec)ArrayInstance(exec->lexicalGlobalObject()->arrayPrototype(), n);738 return new ArrayInstance(exec->lexicalGlobalObject()->arrayPrototype(), n); 739 739 } 740 740 741 741 // otherwise the array is constructed with the arguments in it 742 return new (exec)ArrayInstance(exec->lexicalGlobalObject()->arrayPrototype(), args);742 return new ArrayInstance(exec->lexicalGlobalObject()->arrayPrototype(), args); 743 743 } 744 744
Note:
See TracChangeset
for help on using the changeset viewer.