Changeset 120175 in webkit for trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h
- Timestamp:
- Jun 13, 2012, 2:38:42 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h
r120172 r120175 73 73 SymbolTableObjectType* object, PropertyName propertyName, PropertySlot& slot) 74 74 { 75 SymbolTable& symbolTable = object->symbolTable(); 76 SymbolTable::iterator iter = symbolTable.find(propertyName.publicName()); 77 if (iter == symbolTable.end()) 75 SymbolTableEntry entry = object->symbolTable().inlineGet(propertyName.publicName()); 76 if (entry.isNull()) 78 77 return false; 79 SymbolTableEntry::Fast entry = iter->second;80 ASSERT(!entry.isNull());81 78 slot.setValue(object->registerAt(entry.getIndex()).get()); 82 79 return true; … … 87 84 SymbolTableObjectType* object, PropertyName propertyName, PropertyDescriptor& descriptor) 88 85 { 89 SymbolTable& symbolTable = object->symbolTable(); 90 SymbolTable::iterator iter = symbolTable.find(propertyName.publicName()); 91 if (iter == symbolTable.end()) 86 SymbolTableEntry entry = object->symbolTable().inlineGet(propertyName.publicName()); 87 if (entry.isNull()) 92 88 return false; 93 SymbolTableEntry::Fast entry = iter->second;94 ASSERT(!entry.isNull());95 89 descriptor.setDescriptor( 96 90 object->registerAt(entry.getIndex()).get(), entry.getAttributes() | DontDelete); … … 103 97 bool& slotIsWriteable) 104 98 { 105 SymbolTable& symbolTable = object->symbolTable(); 106 SymbolTable::iterator iter = symbolTable.find(propertyName.publicName()); 107 if (iter == symbolTable.end()) 99 SymbolTableEntry entry = object->symbolTable().inlineGet(propertyName.publicName()); 100 if (entry.isNull()) 108 101 return false; 109 SymbolTableEntry::Fast entry = iter->second;110 ASSERT(!entry.isNull());111 102 slot.setValue(object->registerAt(entry.getIndex()).get()); 112 103 slotIsWriteable = !entry.isReadOnly(); … … 122 113 ASSERT(!Heap::heap(value) || Heap::heap(value) == Heap::heap(object)); 123 114 124 SymbolTable& symbolTable = object->symbolTable(); 125 SymbolTable::iterator iter = symbolTable.find(propertyName.publicName()); 126 if (iter == symbolTable.end()) 115 SymbolTableEntry entry = object->symbolTable().inlineGet(propertyName.publicName()); 116 if (entry.isNull()) 127 117 return false; 128 bool wasFat; 129 SymbolTableEntry::Fast fastEntry = iter->second.getFast(wasFat); 130 ASSERT(!fastEntry.isNull()); 131 if (fastEntry.isReadOnly()) { 118 if (entry.isReadOnly()) { 132 119 if (shouldThrow) 133 120 throwTypeError(exec, StrictModeReadonlyPropertyWriteError); 134 121 return true; 135 122 } 136 if (UNLIKELY(wasFat)) 137 iter->second.notifyWrite(); 138 object->registerAt(fastEntry.getIndex()).set(globalData, object, value); 123 object->registerAt(entry.getIndex()).set(globalData, object, value); 139 124 return true; 140 125 } … … 152 137 SymbolTableEntry& entry = iter->second; 153 138 ASSERT(!entry.isNull()); 154 entry.notifyWrite();155 139 entry.setAttributes(attributes); 156 140 object->registerAt(entry.getIndex()).set(globalData, object, value);
Note:
See TracChangeset
for help on using the changeset viewer.