Changeset 53341 in webkit for trunk/JavaScriptCore/interpreter
- Timestamp:
- Jan 15, 2010, 12:48:52 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/interpreter/Interpreter.cpp
r52231 r53341 1045 1045 1046 1046 JSObject* baseObject = asObject(slot.slotBase()); 1047 size_t offset = slot.cachedOffset(); 1047 1048 1048 1049 // Since we're accessing a prototype in a loop, it's a good bet that it 1049 1050 // should not be treated as a dictionary. 1050 if (baseObject->structure()->isDictionary()) 1051 if (baseObject->structure()->isDictionary()) { 1051 1052 baseObject->flattenDictionaryObject(); 1053 offset = baseObject->structure()->get(propertyName); 1054 } 1052 1055 1053 1056 ASSERT(!baseObject->structure()->isUncacheableDictionary()); … … 1055 1058 vPC[0] = getOpcode(op_get_by_id_proto); 1056 1059 vPC[5] = baseObject->structure(); 1057 vPC[6] = slot.cachedOffset();1060 vPC[6] = offset; 1058 1061 1059 1062 codeBlock->refStructures(vPC); … … 1061 1064 } 1062 1065 1063 size_t count = normalizePrototypeChain(callFrame, baseValue, slot.slotBase()); 1066 size_t offset = slot.cachedOffset(); 1067 size_t count = normalizePrototypeChain(callFrame, baseValue, slot.slotBase(), propertyName, offset); 1064 1068 if (!count) { 1065 1069 vPC[0] = getOpcode(op_get_by_id_generic); … … 1071 1075 vPC[5] = structure->prototypeChain(callFrame); 1072 1076 vPC[6] = count; 1073 vPC[7] = slot.cachedOffset();1077 vPC[7] = offset; 1074 1078 codeBlock->refStructures(vPC); 1075 1079 }
Note:
See TracChangeset
for help on using the changeset viewer.