| Index: test/cctest/test-weakmaps.cc | 
| diff --git a/test/cctest/test-weakmaps.cc b/test/cctest/test-weakmaps.cc | 
| index cd333d3846ec3d6c90e5470734c76875774664a8..714c8ccec28bf5fe1cfa554b46c09152ccece9fb 100644 | 
| --- a/test/cctest/test-weakmaps.cc | 
| +++ b/test/cctest/test-weakmaps.cc | 
| @@ -39,12 +39,14 @@ static Isolate* GetIsolateFrom(LocalContext* context) { | 
| } | 
|  | 
|  | 
| -static Handle<JSWeakMap> AllocateJSWeakMap() { | 
| -  Handle<Map> map = FACTORY->NewMap(JS_WEAK_MAP_TYPE, JSWeakMap::kSize); | 
| -  Handle<JSObject> weakmap_obj = FACTORY->NewJSObjectFromMap(map); | 
| +static Handle<JSWeakMap> AllocateJSWeakMap(Isolate* isolate) { | 
| +  Factory* factory = isolate->factory(); | 
| +  Heap* heap = isolate->heap(); | 
| +  Handle<Map> map = factory->NewMap(JS_WEAK_MAP_TYPE, JSWeakMap::kSize); | 
| +  Handle<JSObject> weakmap_obj = factory->NewJSObjectFromMap(map); | 
| Handle<JSWeakMap> weakmap(JSWeakMap::cast(*weakmap_obj)); | 
| // Do not use handles for the hash table, it would make entries strong. | 
| -  Object* table_obj = ObjectHashTable::Allocate(1)->ToObjectChecked(); | 
| +  Object* table_obj = ObjectHashTable::Allocate(heap, 1)->ToObjectChecked(); | 
| ObjectHashTable* table = ObjectHashTable::cast(table_obj); | 
| weakmap->set_table(table); | 
| weakmap->set_next(Smi::FromInt(0)); | 
| @@ -74,16 +76,19 @@ static void WeakPointerCallback(v8::Isolate* isolate, | 
| TEST(Weakness) { | 
| FLAG_incremental_marking = false; | 
| LocalContext context; | 
| +  Isolate* isolate = GetIsolateFrom(&context); | 
| +  Factory* factory = isolate->factory(); | 
| +  Heap* heap = isolate->heap(); | 
| v8::HandleScope scope; | 
| -  Handle<JSWeakMap> weakmap = AllocateJSWeakMap(); | 
| -  GlobalHandles* global_handles = GetIsolateFrom(&context)->global_handles(); | 
| +  Handle<JSWeakMap> weakmap = AllocateJSWeakMap(isolate); | 
| +  GlobalHandles* global_handles = isolate->global_handles(); | 
|  | 
| // Keep global reference to the key. | 
| Handle<Object> key; | 
| { | 
| v8::HandleScope scope; | 
| -    Handle<Map> map = FACTORY->NewMap(JS_OBJECT_TYPE, JSObject::kHeaderSize); | 
| -    Handle<JSObject> object = FACTORY->NewJSObjectFromMap(map); | 
| +    Handle<Map> map = factory->NewMap(JS_OBJECT_TYPE, JSObject::kHeaderSize); | 
| +    Handle<JSObject> object = factory->NewJSObjectFromMap(map); | 
| key = global_handles->Create(*object); | 
| } | 
| CHECK(!global_handles->IsWeak(key.location())); | 
| @@ -93,12 +98,12 @@ TEST(Weakness) { | 
| v8::HandleScope scope; | 
| PutIntoWeakMap(weakmap, | 
| Handle<JSObject>(JSObject::cast(*key)), | 
| -                   Handle<Smi>(Smi::FromInt(23), GetIsolateFrom(&context))); | 
| +                   Handle<Smi>(Smi::FromInt(23), isolate)); | 
| } | 
| CHECK_EQ(1, ObjectHashTable::cast(weakmap->table())->NumberOfElements()); | 
|  | 
| // Force a full GC. | 
| -  HEAP->CollectAllGarbage(false); | 
| +  heap->CollectAllGarbage(false); | 
| CHECK_EQ(0, NumberOfWeakCalls); | 
| CHECK_EQ(1, ObjectHashTable::cast(weakmap->table())->NumberOfElements()); | 
| CHECK_EQ( | 
| @@ -117,12 +122,12 @@ TEST(Weakness) { | 
| // Force a full GC. | 
| // Perform two consecutive GCs because the first one will only clear | 
| // weak references whereas the second one will also clear weak maps. | 
| -  HEAP->CollectAllGarbage(false); | 
| +  heap->CollectAllGarbage(false); | 
| CHECK_EQ(1, NumberOfWeakCalls); | 
| CHECK_EQ(1, ObjectHashTable::cast(weakmap->table())->NumberOfElements()); | 
| CHECK_EQ( | 
| 0, ObjectHashTable::cast(weakmap->table())->NumberOfDeletedElements()); | 
| -  HEAP->CollectAllGarbage(false); | 
| +  heap->CollectAllGarbage(false); | 
| CHECK_EQ(1, NumberOfWeakCalls); | 
| CHECK_EQ(0, ObjectHashTable::cast(weakmap->table())->NumberOfElements()); | 
| CHECK_EQ( | 
| @@ -132,8 +137,11 @@ TEST(Weakness) { | 
|  | 
| TEST(Shrinking) { | 
| LocalContext context; | 
| +  Isolate* isolate = GetIsolateFrom(&context); | 
| +  Factory* factory = isolate->factory(); | 
| +  Heap* heap = isolate->heap(); | 
| v8::HandleScope scope; | 
| -  Handle<JSWeakMap> weakmap = AllocateJSWeakMap(); | 
| +  Handle<JSWeakMap> weakmap = AllocateJSWeakMap(isolate); | 
|  | 
| // Check initial capacity. | 
| CHECK_EQ(32, ObjectHashTable::cast(weakmap->table())->Capacity()); | 
| @@ -141,11 +149,10 @@ TEST(Shrinking) { | 
| // Fill up weak map to trigger capacity change. | 
| { | 
| v8::HandleScope scope; | 
| -    Handle<Map> map = FACTORY->NewMap(JS_OBJECT_TYPE, JSObject::kHeaderSize); | 
| +    Handle<Map> map = factory->NewMap(JS_OBJECT_TYPE, JSObject::kHeaderSize); | 
| for (int i = 0; i < 32; i++) { | 
| -      Handle<JSObject> object = FACTORY->NewJSObjectFromMap(map); | 
| -      PutIntoWeakMap(weakmap, object, | 
| -                     Handle<Smi>(Smi::FromInt(i), GetIsolateFrom(&context))); | 
| +      Handle<JSObject> object = factory->NewJSObjectFromMap(map); | 
| +      PutIntoWeakMap(weakmap, object, Handle<Smi>(Smi::FromInt(i), isolate)); | 
| } | 
| } | 
|  | 
| @@ -156,7 +163,7 @@ TEST(Shrinking) { | 
| CHECK_EQ(32, ObjectHashTable::cast(weakmap->table())->NumberOfElements()); | 
| CHECK_EQ( | 
| 0, ObjectHashTable::cast(weakmap->table())->NumberOfDeletedElements()); | 
| -  HEAP->CollectAllGarbage(false); | 
| +  heap->CollectAllGarbage(false); | 
| CHECK_EQ(0, ObjectHashTable::cast(weakmap->table())->NumberOfElements()); | 
| CHECK_EQ( | 
| 32, ObjectHashTable::cast(weakmap->table())->NumberOfDeletedElements()); | 
| @@ -171,22 +178,25 @@ TEST(Shrinking) { | 
| TEST(Regress2060a) { | 
| FLAG_always_compact = true; | 
| LocalContext context; | 
| +  Isolate* isolate = GetIsolateFrom(&context); | 
| +  Factory* factory = isolate->factory(); | 
| +  Heap* heap = isolate->heap(); | 
| v8::HandleScope scope; | 
| Handle<JSFunction> function = | 
| -      FACTORY->NewFunction(FACTORY->function_string(), FACTORY->null_value()); | 
| -  Handle<JSObject> key = FACTORY->NewJSObject(function); | 
| -  Handle<JSWeakMap> weakmap = AllocateJSWeakMap(); | 
| +      factory->NewFunction(factory->function_string(), factory->null_value()); | 
| +  Handle<JSObject> key = factory->NewJSObject(function); | 
| +  Handle<JSWeakMap> weakmap = AllocateJSWeakMap(isolate); | 
|  | 
| // Start second old-space page so that values land on evacuation candidate. | 
| -  Page* first_page = HEAP->old_pointer_space()->anchor()->next_page(); | 
| -  FACTORY->NewFixedArray(900 * KB / kPointerSize, TENURED); | 
| +  Page* first_page = heap->old_pointer_space()->anchor()->next_page(); | 
| +  factory->NewFixedArray(900 * KB / kPointerSize, TENURED); | 
|  | 
| // Fill up weak map with values on an evacuation candidate. | 
| { | 
| v8::HandleScope scope; | 
| for (int i = 0; i < 32; i++) { | 
| -      Handle<JSObject> object = FACTORY->NewJSObject(function, TENURED); | 
| -      CHECK(!HEAP->InNewSpace(object->address())); | 
| +      Handle<JSObject> object = factory->NewJSObject(function, TENURED); | 
| +      CHECK(!heap->InNewSpace(object->address())); | 
| CHECK(!first_page->Contains(object->address())); | 
| PutIntoWeakMap(weakmap, key, object); | 
| } | 
| @@ -194,7 +204,7 @@ TEST(Regress2060a) { | 
|  | 
| // Force compacting garbage collection. | 
| CHECK(FLAG_always_compact); | 
| -  HEAP->CollectAllGarbage(Heap::kNoGCFlags); | 
| +  heap->CollectAllGarbage(Heap::kNoGCFlags); | 
| } | 
|  | 
|  | 
| @@ -207,32 +217,35 @@ TEST(Regress2060b) { | 
| #endif | 
|  | 
| LocalContext context; | 
| +  Isolate* isolate = GetIsolateFrom(&context); | 
| +  Factory* factory = isolate->factory(); | 
| +  Heap* heap = isolate->heap(); | 
| v8::HandleScope scope; | 
| Handle<JSFunction> function = | 
| -      FACTORY->NewFunction(FACTORY->function_string(), FACTORY->null_value()); | 
| +      factory->NewFunction(factory->function_string(), factory->null_value()); | 
|  | 
| // Start second old-space page so that keys land on evacuation candidate. | 
| -  Page* first_page = HEAP->old_pointer_space()->anchor()->next_page(); | 
| -  FACTORY->NewFixedArray(900 * KB / kPointerSize, TENURED); | 
| +  Page* first_page = heap->old_pointer_space()->anchor()->next_page(); | 
| +  factory->NewFixedArray(900 * KB / kPointerSize, TENURED); | 
|  | 
| // Fill up weak map with keys on an evacuation candidate. | 
| Handle<JSObject> keys[32]; | 
| for (int i = 0; i < 32; i++) { | 
| -    keys[i] = FACTORY->NewJSObject(function, TENURED); | 
| -    CHECK(!HEAP->InNewSpace(keys[i]->address())); | 
| +    keys[i] = factory->NewJSObject(function, TENURED); | 
| +    CHECK(!heap->InNewSpace(keys[i]->address())); | 
| CHECK(!first_page->Contains(keys[i]->address())); | 
| } | 
| -  Handle<JSWeakMap> weakmap = AllocateJSWeakMap(); | 
| +  Handle<JSWeakMap> weakmap = AllocateJSWeakMap(isolate); | 
| for (int i = 0; i < 32; i++) { | 
| PutIntoWeakMap(weakmap, | 
| keys[i], | 
| -                   Handle<Smi>(Smi::FromInt(i), GetIsolateFrom(&context))); | 
| +                   Handle<Smi>(Smi::FromInt(i), isolate)); | 
| } | 
|  | 
| // Force compacting garbage collection. The subsequent collections are used | 
| // to verify that key references were actually updated. | 
| CHECK(FLAG_always_compact); | 
| -  HEAP->CollectAllGarbage(Heap::kNoGCFlags); | 
| -  HEAP->CollectAllGarbage(Heap::kNoGCFlags); | 
| -  HEAP->CollectAllGarbage(Heap::kNoGCFlags); | 
| +  heap->CollectAllGarbage(Heap::kNoGCFlags); | 
| +  heap->CollectAllGarbage(Heap::kNoGCFlags); | 
| +  heap->CollectAllGarbage(Heap::kNoGCFlags); | 
| } | 
|  |