| Index: src/heap.h | 
| diff --git a/src/heap.h b/src/heap.h | 
| index ba340a24e6a2dc11d044d4546bfca6e515aded15..8906f90b13644bb9916abee9dc656777b86f5497 100644 | 
| --- a/src/heap.h | 
| +++ b/src/heap.h | 
| @@ -2368,7 +2368,7 @@ class KeyedLookupCache { | 
| }; | 
|  | 
|  | 
| -// Cache for mapping (array, property name) into descriptor index. | 
| +// Cache for mapping (map, property name) into descriptor index. | 
| // The cache contains both positive and negative results. | 
| // Descriptor index equals kNotFound means the property is absent. | 
| // Cleared at startup and prior to any gc. | 
| @@ -2376,21 +2376,21 @@ class DescriptorLookupCache { | 
| public: | 
| // Lookup descriptor index for (map, name). | 
| // If absent, kAbsent is returned. | 
| -  int Lookup(DescriptorArray* array, String* name) { | 
| +  int Lookup(Map* source, String* name) { | 
| if (!StringShape(name).IsSymbol()) return kAbsent; | 
| -    int index = Hash(array, name); | 
| +    int index = Hash(source, name); | 
| Key& key = keys_[index]; | 
| -    if ((key.array == array) && (key.name == name)) return results_[index]; | 
| +    if ((key.source == source) && (key.name == name)) return results_[index]; | 
| return kAbsent; | 
| } | 
|  | 
| // Update an element in the cache. | 
| -  void Update(DescriptorArray* array, String* name, int result) { | 
| +  void Update(Map* source, String* name, int result) { | 
| ASSERT(result != kAbsent); | 
| if (StringShape(name).IsSymbol()) { | 
| -      int index = Hash(array, name); | 
| +      int index = Hash(source, name); | 
| Key& key = keys_[index]; | 
| -      key.array = array; | 
| +      key.source = source; | 
| key.name = name; | 
| results_[index] = result; | 
| } | 
| @@ -2404,26 +2404,26 @@ class DescriptorLookupCache { | 
| private: | 
| DescriptorLookupCache() { | 
| for (int i = 0; i < kLength; ++i) { | 
| -      keys_[i].array = NULL; | 
| +      keys_[i].source = NULL; | 
| keys_[i].name = NULL; | 
| results_[i] = kAbsent; | 
| } | 
| } | 
|  | 
| -  static int Hash(DescriptorArray* array, String* name) { | 
| +  static int Hash(Object* source, String* name) { | 
| // Uses only lower 32 bits if pointers are larger. | 
| -    uint32_t array_hash = | 
| -        static_cast<uint32_t>(reinterpret_cast<uintptr_t>(array)) | 
| +    uint32_t source_hash = | 
| +        static_cast<uint32_t>(reinterpret_cast<uintptr_t>(source)) | 
| >> kPointerSizeLog2; | 
| uint32_t name_hash = | 
| static_cast<uint32_t>(reinterpret_cast<uintptr_t>(name)) | 
| >> kPointerSizeLog2; | 
| -    return (array_hash ^ name_hash) % kLength; | 
| +    return (source_hash ^ name_hash) % kLength; | 
| } | 
|  | 
| static const int kLength = 64; | 
| struct Key { | 
| -    DescriptorArray* array; | 
| +    Map* source; | 
| String* name; | 
| }; | 
|  | 
|  |