Changeset 44171 in webkit for trunk/JavaScriptCore/jit/JITStubs.cpp
- Timestamp:
- May 26, 2009, 7:47:35 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/jit/JITStubs.cpp
r44131 r44171 733 733 Structure* structure; 734 734 JSCell* specific; 735 JSObject* slotBaseObject; 735 736 if (baseValue.isCell() 736 737 && slot.isCacheable() 737 738 && !(structure = asCell(baseValue)->structure())->isDictionary() 738 && asObject(slot.slotBase())->getPropertySpecificValue(callFrame, ident, specific)739 && (slotBaseObject = asObject(slot.slotBase()))->getPropertySpecificValue(callFrame, ident, specific) 739 740 && specific 740 741 ) { 741 742 742 743 JSFunction* callee = (JSFunction*)specific; 744 745 // Since we're accessing a prototype in a loop, it's a good bet that it 746 // should not be treated as a dictionary. 747 if (slotBaseObject->structure()->isDictionary()) 748 slotBaseObject->setStructure(Structure::fromDictionaryTransition(slotBaseObject->structure())); 743 749 744 750 // The result fetched should always be the callee! … … 748 754 // Check to see if the function is on the object's prototype. Patch up the code to optimize. 749 755 if (slot.slotBase() == structure->prototypeForLookup(callFrame)) 750 JIT::patchMethodCallProto(methodCallLinkInfo, callee, structure, asObject(slot.slotBase()));756 JIT::patchMethodCallProto(methodCallLinkInfo, callee, structure, slotBaseObject); 751 757 // Check to see if the function is on the object itself. 752 758 // Since we generate the method-check to check both the structure and a prototype-structure (since this
Note:
See TracChangeset
for help on using the changeset viewer.