Changeset 2749 in webkit for trunk/JavaScriptCore/kjs/string_object.cpp
- Timestamp:
- Nov 18, 2002, 10:53:35 PM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/string_object.cpp
r1824 r2749 42 42 { 43 43 setInternalValue(String("")); 44 } 45 46 StringInstanceImp::StringInstanceImp(const Object &proto, const UString &string) 47 : ObjectImp(proto) 48 { 49 setInternalValue(String(string)); 50 } 51 52 Value StringInstanceImp::get(ExecState *exec, const UString &propertyName) const 53 { 54 if (propertyName == lengthPropertyName) 55 return Number(internalValue().toString(exec).size()); 56 return ObjectImp::get(exec, propertyName); 57 } 58 59 void StringInstanceImp::put(ExecState *exec, const UString &propertyName, const Value &value, int attr) 60 { 61 if (propertyName == lengthPropertyName) 62 return; 63 ObjectImp::put(exec, propertyName, value, attr); 64 } 65 66 bool StringInstanceImp::hasProperty(ExecState *exec, const UString &propertyName) const 67 { 68 if (propertyName == lengthPropertyName) 69 return true; 70 return ObjectImp::hasProperty(exec, propertyName); 71 } 72 73 bool StringInstanceImp::deleteProperty(ExecState *exec, const UString &propertyName) 74 { 75 if (propertyName == lengthPropertyName) 76 return false; 77 return ObjectImp::deleteProperty(exec, propertyName); 44 78 } 45 79 … … 517 551 { 518 552 Object proto = exec->interpreter()->builtinStringPrototype(); 519 Object obj(new StringInstanceImp(proto )); 520 521 UString s; 522 if (args.size() > 0) 523 s = args.begin()->dispatchToString(exec); 524 else 525 s = UString(""); 526 527 obj.setInternalValue(String(s)); 528 obj.put(exec, lengthPropertyName, Number(s.size()), ReadOnly|DontEnum|DontDelete); 529 530 return obj; 553 if (args.size() == 0) 554 return Object(new StringInstanceImp(proto)); 555 return Object(new StringInstanceImp(proto, args.begin()->dispatchToString(exec))); 531 556 } 532 557
Note:
See TracChangeset
for help on using the changeset viewer.