Changeset 35775 in webkit for trunk/JavaScriptCore/API/JSObjectRef.cpp
- Timestamp:
- Aug 15, 2008, 12:43:48 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/API/JSObjectRef.cpp
r35478 r35775 37 37 #include "JSGlobalObject.h" 38 38 #include "JSObject.h" 39 #include "JSRetainPtr.h" 39 40 #include "JSString.h" 40 41 #include "JSValueRef.h" … … 86 87 exec->globalData().heap->registerThread(); 87 88 88 Identifier nameID = name ? Identifier(exec, toJS(name)) : Identifier(exec, "anonymous");89 Identifier nameID = name ? name->identifier(exec) : Identifier(exec, "anonymous"); 89 90 90 91 return toRef(new (exec) JSCallbackFunction(exec, callAsFunction, nameID)); … … 110 111 exec->globalData().heap->registerThread(); 111 112 112 UString::Rep* bodyRep = toJS(body); 113 UString::Rep* sourceURLRep = sourceURL ? toJS(sourceURL) : &UString::Rep::null; 114 115 Identifier nameID = name ? Identifier(exec, toJS(name)) : Identifier(exec, "anonymous"); 113 Identifier nameID = name ? name->identifier(exec) : Identifier(exec, "anonymous"); 116 114 117 115 ArgList args; 118 116 for (unsigned i = 0; i < parameterCount; i++) 119 args.append(jsString(exec, UString( toJS(parameterNames[i]))));120 args.append(jsString(exec, UString(bodyRep)));121 122 JSObject* result = constructFunction(exec, args, nameID, UString(sourceURLRep), startingLineNumber);117 args.append(jsString(exec, UString(parameterNames[i]->ustring()))); 118 args.append(jsString(exec, body->ustring())); 119 120 JSObject* result = constructFunction(exec, args, nameID, sourceURL->ustring(), startingLineNumber); 123 121 if (exec->hadException()) { 124 122 if (exception) … … 150 148 151 149 JSObject* jsObject = toJS(object); 152 UString::Rep* nameRep = toJS(propertyName); 153 154 return jsObject->hasProperty(exec, Identifier(exec, nameRep)); 150 151 return jsObject->hasProperty(exec, propertyName->identifier(exec)); 155 152 } 156 153 … … 161 158 162 159 JSObject* jsObject = toJS(object); 163 UString::Rep* nameRep = toJS(propertyName); 164 165 JSValue* jsValue = jsObject->get(exec, Identifier(exec, nameRep)); 160 161 JSValue* jsValue = jsObject->get(exec, propertyName->identifier(exec)); 166 162 if (exec->hadException()) { 167 163 if (exception) … … 178 174 179 175 JSObject* jsObject = toJS(object); 180 Identifier name( exec, toJS(propertyName));176 Identifier name(propertyName->identifier(exec)); 181 177 JSValue* jsValue = toJS(value); 182 178 … … 232 228 233 229 JSObject* jsObject = toJS(object); 234 UString::Rep* nameRep = toJS(propertyName); 235 236 bool result = jsObject->deleteProperty(exec, Identifier(exec, nameRep)); 230 231 bool result = jsObject->deleteProperty(exec, propertyName->identifier(exec)); 237 232 if (exec->hadException()) { 238 233 if (exception) … … 338 333 } 339 334 340 struct OpaqueJSPropertyNameArray 341 { 342 OpaqueJSPropertyNameArray(JSGlobalData* globalData) : refCount(0), array(globalData) 335 struct OpaqueJSPropertyNameArray { 336 OpaqueJSPropertyNameArray(JSGlobalData* globalData) 337 : refCount(0) 338 , globalData(globalData) 343 339 { 344 340 } 345 341 346 342 unsigned refCount; 347 PropertyNameArray array; 343 JSGlobalData* globalData; 344 Vector<JSRetainPtr<JSStringRef> > array; 348 345 }; 349 346 … … 354 351 exec->globalData().heap->registerThread(); 355 352 356 JSPropertyNameArrayRef propertyNames = new OpaqueJSPropertyNameArray(&exec->globalData()); 357 jsObject->getPropertyNames(exec, propertyNames->array); 353 JSGlobalData* globalData = &exec->globalData(); 354 355 JSPropertyNameArrayRef propertyNames = new OpaqueJSPropertyNameArray(globalData); 356 PropertyNameArray array(globalData); 357 jsObject->getPropertyNames(exec, array); 358 359 size_t size = array.size(); 360 propertyNames->array.reserveCapacity(size); 361 for (size_t i = 0; i < size; ++i) 362 propertyNames->array.append(JSRetainPtr<JSStringRef>(Adopt, OpaqueJSString::create(array[i].ustring()).releaseRef())); 358 363 359 364 return JSPropertyNameArrayRetain(propertyNames); … … 379 384 JSStringRef JSPropertyNameArrayGetNameAtIndex(JSPropertyNameArrayRef array, size_t index) 380 385 { 381 return toRef(array->array[static_cast<unsigned>(index)].ustring().rep());386 return array->array[static_cast<unsigned>(index)].get(); 382 387 } 383 388 … … 385 390 { 386 391 PropertyNameArray* propertyNames = toJS(array); 387 UString::Rep* rep = toJS(propertyName);388 392 389 393 propertyNames->globalData()->heap->registerThread(); 390 394 391 propertyNames->add( Identifier(propertyNames->globalData(), rep));392 } 395 propertyNames->add(propertyName->identifier(propertyNames->globalData())); 396 }
Note:
See TracChangeset
for help on using the changeset viewer.