Changeset 99034 in webkit for trunk/Source/JavaScriptCore/runtime/JSObject.cpp
- Timestamp:
- Nov 1, 2011, 7:24:50 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/JSObject.cpp
r99018 r99034 435 435 JSValue JSObject::lookupGetter(ExecState* exec, const Identifier& propertyName) 436 436 { 437 JSObject* object = this; 438 while (true) { 439 if (JSValue value = object->getDirect(exec->globalData(), propertyName)) { 440 if (!value.isGetterSetter()) 441 return jsUndefined(); 442 JSObject* functionObject = asGetterSetter(value)->getter(); 443 if (!functionObject) 444 return jsUndefined(); 445 return functionObject; 446 } 447 448 if (!object->prototype() || !object->prototype().isObject()) 449 return jsUndefined(); 450 object = asObject(object->prototype()); 451 } 437 PropertyDescriptor descriptor; 438 if (!getPropertyDescriptor(exec, propertyName, descriptor)) 439 return jsUndefined(); 440 441 if (!descriptor.getterPresent()) 442 return jsUndefined(); 443 444 return descriptor.getter(); 452 445 } 453 446 454 447 JSValue JSObject::lookupSetter(ExecState* exec, const Identifier& propertyName) 455 448 { 456 JSObject* object = this; 457 while (true) { 458 if (JSValue value = object->getDirect(exec->globalData(), propertyName)) { 459 if (!value.isGetterSetter()) 460 return jsUndefined(); 461 JSObject* functionObject = asGetterSetter(value)->setter(); 462 if (!functionObject) 463 return jsUndefined(); 464 return functionObject; 465 } 466 467 if (!object->prototype() || !object->prototype().isObject()) 468 return jsUndefined(); 469 object = asObject(object->prototype()); 470 } 449 PropertyDescriptor descriptor; 450 if (!getPropertyDescriptor(exec, propertyName, descriptor)) 451 return jsUndefined(); 452 453 if (!descriptor.setterPresent()) 454 return jsUndefined(); 455 456 return descriptor.setter(); 471 457 } 472 458
Note:
See TracChangeset
for help on using the changeset viewer.