| Index: src/objects.h
 | 
| diff --git a/src/objects.h b/src/objects.h
 | 
| index 58b6f281b4b986ebd7ea6f7946830b0d90eadd42..9cbb8596aee6b40fbc61522ab01b7a852fc73d4e 100644
 | 
| --- a/src/objects.h
 | 
| +++ b/src/objects.h
 | 
| @@ -2974,6 +2974,11 @@ class ObjectHashTable: public HashTable<ObjectHashTableShape, JSObject*> {
 | 
|      return reinterpret_cast<ObjectHashTable*>(obj);
 | 
|    }
 | 
|  
 | 
| +  // Returns the value at entry.
 | 
| +  Object* ValueAt(int entry) {
 | 
| +    return this->get(EntryToIndex(entry) + 1);
 | 
| +  }
 | 
| +
 | 
|    // Looks up the value associated with the given key. The undefined value is
 | 
|    // returned in case the key is not present.
 | 
|    Object* Lookup(JSObject* key);
 | 
| @@ -2983,8 +2988,11 @@ class ObjectHashTable: public HashTable<ObjectHashTableShape, JSObject*> {
 | 
|    MUST_USE_RESULT MaybeObject* Put(JSObject* key, Object* value);
 | 
|  
 | 
|   private:
 | 
| +  friend class MarkCompactCollector;
 | 
| +
 | 
|    void AddEntry(int entry, JSObject* key, Object* value);
 | 
| -  void RemoveEntry(int entry);
 | 
| +  void RemoveEntry(int entry, Heap* heap);
 | 
| +  inline void RemoveEntry(int entry);
 | 
|  };
 | 
|  
 | 
|  
 | 
| @@ -6628,6 +6636,12 @@ class JSWeakMap: public JSObject {
 | 
|    // [table]: the backing hash table mapping keys to values.
 | 
|    DECL_ACCESSORS(table, ObjectHashTable)
 | 
|  
 | 
| +  // [next]: linked list of encountered weak maps during GC.
 | 
| +  DECL_ACCESSORS(next, Object)
 | 
| +
 | 
| +  // Unchecked accessors to be used during GC.
 | 
| +  inline ObjectHashTable* unchecked_table();
 | 
| +
 | 
|    // Casting.
 | 
|    static inline JSWeakMap* cast(Object* obj);
 | 
|  
 | 
| @@ -6642,7 +6656,8 @@ class JSWeakMap: public JSObject {
 | 
|  #endif
 | 
|  
 | 
|    static const int kTableOffset = JSObject::kHeaderSize;
 | 
| -  static const int kSize = kTableOffset + kPointerSize;
 | 
| +  static const int kNextOffset = kTableOffset + kPointerSize;
 | 
| +  static const int kSize = kNextOffset + kPointerSize;
 | 
|  
 | 
|   private:
 | 
|    DISALLOW_IMPLICIT_CONSTRUCTORS(JSWeakMap);
 | 
| 
 |