Changeset 11525 in webkit for trunk/JavaScriptCore/kjs/string_object.cpp
- Timestamp:
- Dec 10, 2005, 4:38:07 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/string_object.cpp
r11077 r11525 44 44 : ObjectImp(proto) 45 45 { 46 setInternalValue( String(""));46 setInternalValue(jsString("")); 47 47 } 48 48 … … 50 50 : ObjectImp(proto) 51 51 { 52 setInternalValue( String(string));52 setInternalValue(jsString(string)); 53 53 } 54 54 … … 146 146 { 147 147 // The constructor will be added later, after StringObjectImp has been built 148 putDirect(lengthPropertyName, js Zero(), DontDelete|ReadOnly|DontEnum);148 putDirect(lengthPropertyName, jsNumber(0), DontDelete|ReadOnly|DontEnum); 149 149 } 150 150 … … 339 339 delete [] replacements; 340 340 341 return String(result);341 return jsString(result); 342 342 } 343 343 … … 348 348 // Do the replacement 349 349 if (matchPos == -1) 350 return String(source);350 return jsString(source); 351 351 352 352 if (replacementFunction) { … … 361 361 } 362 362 363 return String(source.substr(0, matchPos) + replacementString + source.substr(matchPos + matchLen));363 return jsString(source.substr(0, matchPos) + replacementString + source.substr(matchPos + matchLen)); 364 364 } 365 365 … … 374 374 return throwError(exec, TypeError); 375 375 376 return String(thisObj->internalValue()->toString(exec));376 return jsString(thisObj->internalValue()->toString(exec)); 377 377 } 378 378 … … 401 401 else 402 402 u = ""; 403 result = String(u);403 result = jsString(u); 404 404 break; 405 405 case CharCodeAt: … … 408 408 dpos = a0->isUndefined() ? 0 : a0->toInteger(exec); 409 409 if (dpos >= 0 && dpos < len) // false for NaN 410 result = Number(s[static_cast<int>(dpos)].unicode());410 result = jsNumber(s[static_cast<int>(dpos)].unicode()); 411 411 else 412 412 result = jsNaN(); … … 417 417 s += it->toString(exec); 418 418 } 419 result = String(s);419 result = jsString(s); 420 420 break; 421 421 } … … 432 432 dpos = 0; 433 433 } 434 result = Number(s.find(u2, static_cast<int>(dpos)));434 result = jsNumber(s.find(u2, static_cast<int>(dpos))); 435 435 break; 436 436 case LastIndexOf: … … 447 447 dpos = 0; 448 448 } 449 result = Number(s.rfind(u2, static_cast<int>(dpos)));449 result = jsNumber(s.rfind(u2, static_cast<int>(dpos))); 450 450 break; 451 451 case Match: … … 468 468 UString mstr = regExpObj->performMatch(reg, u, 0, &pos); 469 469 if (id == Search) { 470 result = Number(pos);470 result = jsNumber(pos); 471 471 } else { 472 472 // Exec … … 474 474 // case without 'g' flag is handled like RegExp.prototype.exec 475 475 if (mstr.isNull()) { 476 result = Null();476 result = jsNull(); 477 477 } else { 478 478 result = regExpObj->arrayOfMatches(exec,mstr); … … 486 486 list.append(jsUndefined()); 487 487 else 488 list.append( String(mstr));488 list.append(jsString(mstr)); 489 489 lastIndex = pos; 490 490 pos += mstr.isEmpty() ? 1 : mstr.size(); … … 492 492 } 493 493 if (imp) 494 imp->put(exec, "lastIndex", Number(lastIndex), DontDelete|DontEnum);494 imp->put(exec, "lastIndex", jsNumber(lastIndex), DontDelete|DontEnum); 495 495 if (list.isEmpty()) { 496 496 // if there are no matches at all, it's important to return 497 497 // Null instead of an empty array, because this matches 498 498 // other browsers and because Null is a false value. 499 result = Null();499 result = jsNull(); 500 500 } else { 501 501 result = exec->lexicalInterpreter()->builtinArray()->construct(exec, list); … … 521 521 if (to > len) 522 522 to = len; 523 result = String(s.substr(static_cast<int>(from), static_cast<int>(to - from)));523 result = jsString(s.substr(static_cast<int>(from), static_cast<int>(to - from))); 524 524 } else { 525 result = String("");525 result = jsString(""); 526 526 } 527 527 break; … … 539 539 if (u.isEmpty() && !reg.match(u, 0).isNull()) { 540 540 // empty string matched by regexp -> empty array 541 res->put(exec,lengthPropertyName, Number(0));541 res->put(exec,lengthPropertyName, jsNumber(0)); 542 542 break; 543 543 } … … 553 553 pos = mpos + (mstr.isEmpty() ? 1 : mstr.size()); 554 554 if (mpos != p0 || !mstr.isEmpty()) { 555 res->put(exec,i, String(u.substr(p0, mpos-p0)));555 res->put(exec,i, jsString(u.substr(p0, mpos-p0))); 556 556 p0 = mpos + mstr.size(); 557 557 i++; … … 563 563 if (u.isEmpty()) { 564 564 // empty separator matches empty string -> empty array 565 put(exec,lengthPropertyName, Number(0));565 put(exec,lengthPropertyName, jsNumber(0)); 566 566 break; 567 567 } else { 568 568 while (static_cast<uint32_t>(i) != limit && i < u.size()-1) 569 res->put(exec, i++, String(u.substr(p0++, 1)));569 res->put(exec, i++, jsString(u.substr(p0++, 1))); 570 570 } 571 571 } else { 572 572 while (static_cast<uint32_t>(i) != limit && (pos = u.find(u2, p0)) >= 0) { 573 res->put(exec, i, String(u.substr(p0, pos-p0)));573 res->put(exec, i, jsString(u.substr(p0, pos-p0))); 574 574 p0 = pos + u2.size(); 575 575 i++; … … 579 579 // add remaining string, if any 580 580 if (static_cast<uint32_t>(i) != limit) 581 res->put(exec, i++, String(u.substr(p0)));582 res->put(exec,lengthPropertyName, Number(i));581 res->put(exec, i++, jsString(u.substr(p0))); 582 res->put(exec,lengthPropertyName, jsNumber(i)); 583 583 } 584 584 break; … … 599 599 d2 = len - d; 600 600 } 601 result = String(s.substr(static_cast<int>(d), static_cast<int>(d2)));601 result = jsString(s.substr(static_cast<int>(d), static_cast<int>(d2))); 602 602 break; 603 603 } … … 624 624 start = temp; 625 625 } 626 result = String(s.substr((int)start, (int)end-(int)start));626 result = jsString(s.substr((int)start, (int)end-(int)start)); 627 627 } 628 628 break; … … 632 632 for (i = 0; i < len; i++) 633 633 u[i] = u[i].toLower(); 634 result = String(u);634 result = jsString(u); 635 635 break; 636 636 case ToUpperCase: … … 639 639 for (i = 0; i < len; i++) 640 640 u[i] = u[i].toUpper(); 641 result = String(u);641 result = jsString(u); 642 642 break; 643 643 #ifndef KJS_PURE_ECMA 644 644 case Big: 645 result = String("<big>" + s + "</big>");645 result = jsString("<big>" + s + "</big>"); 646 646 break; 647 647 case Small: 648 result = String("<small>" + s + "</small>");648 result = jsString("<small>" + s + "</small>"); 649 649 break; 650 650 case Blink: 651 result = String("<blink>" + s + "</blink>");651 result = jsString("<blink>" + s + "</blink>"); 652 652 break; 653 653 case Bold: 654 result = String("<b>" + s + "</b>");654 result = jsString("<b>" + s + "</b>"); 655 655 break; 656 656 case Fixed: 657 result = String("<tt>" + s + "</tt>");657 result = jsString("<tt>" + s + "</tt>"); 658 658 break; 659 659 case Italics: 660 result = String("<i>" + s + "</i>");660 result = jsString("<i>" + s + "</i>"); 661 661 break; 662 662 case Strike: 663 result = String("<strike>" + s + "</strike>");663 result = jsString("<strike>" + s + "</strike>"); 664 664 break; 665 665 case Sub: 666 result = String("<sub>" + s + "</sub>");666 result = jsString("<sub>" + s + "</sub>"); 667 667 break; 668 668 case Sup: 669 result = String("<sup>" + s + "</sup>");669 result = jsString("<sup>" + s + "</sup>"); 670 670 break; 671 671 case Fontcolor: 672 result = String("<font color=\"" + a0->toString(exec) + "\">" + s + "</font>");672 result = jsString("<font color=\"" + a0->toString(exec) + "\">" + s + "</font>"); 673 673 break; 674 674 case Fontsize: 675 result = String("<font size=\"" + a0->toString(exec) + "\">" + s + "</font>");675 result = jsString("<font size=\"" + a0->toString(exec) + "\">" + s + "</font>"); 676 676 break; 677 677 case Anchor: 678 result = String("<a name=\"" + a0->toString(exec) + "\">" + s + "</a>");678 result = jsString("<a name=\"" + a0->toString(exec) + "\">" + s + "</a>"); 679 679 break; 680 680 case Link: 681 result = String("<a href=\"" + a0->toString(exec) + "\">" + s + "</a>");681 result = jsString("<a href=\"" + a0->toString(exec) + "\">" + s + "</a>"); 682 682 break; 683 683 #endif … … 700 700 701 701 // no. of arguments for constructor 702 putDirect(lengthPropertyName, js One(), ReadOnly|DontDelete|DontEnum);702 putDirect(lengthPropertyName, jsNumber(1), ReadOnly|DontDelete|DontEnum); 703 703 } 704 704 … … 727 727 { 728 728 if (args.isEmpty()) 729 return String("");729 return jsString(""); 730 730 else { 731 731 ValueImp *v = args[0]; 732 return String(v->toString(exec));732 return jsString(v->toString(exec)); 733 733 } 734 734 } … … 740 740 : InternalFunctionImp(funcProto) 741 741 { 742 putDirect(lengthPropertyName, js One(), DontDelete|ReadOnly|DontEnum);742 putDirect(lengthPropertyName, jsNumber(1), DontDelete|ReadOnly|DontEnum); 743 743 } 744 744 … … 764 764 s = ""; 765 765 766 return String(s);767 } 766 return jsString(s); 767 }
Note:
See TracChangeset
for help on using the changeset viewer.