Index: test/cctest/test-identity-map.cc |
diff --git a/test/cctest/test-identity-map.cc b/test/cctest/test-identity-map.cc |
index 648508cbd17d060af613c513800ed1c658483efe..6254bbfc6c988a623fe2633a72934feddf5d8c72 100644 |
--- a/test/cctest/test-identity-map.cc |
+++ b/test/cctest/test-identity-map.cc |
@@ -336,85 +336,5 @@ |
} |
} |
- |
-TEST(CanonicalHandleScope) { |
- Isolate* isolate = CcTest::i_isolate(); |
- Heap* heap = CcTest::heap(); |
- HandleScope outer(isolate); |
- CanonicalHandleScope outer_canonical(isolate); |
- |
- // Deduplicate smi handles. |
- List<Handle<Object> > smi_handles; |
- for (int i = 0; i < 100; i++) { |
- smi_handles.Add(Handle<Object>(Smi::FromInt(i), isolate)); |
- } |
- Object** next_handle = isolate->handle_scope_data()->next; |
- for (int i = 0; i < 100; i++) { |
- Handle<Object> new_smi = Handle<Object>(Smi::FromInt(i), isolate); |
- Handle<Object> old_smi = smi_handles[i]; |
- CHECK_EQ(new_smi.location(), old_smi.location()); |
- } |
- // Check that no new handles have been allocated. |
- CHECK_EQ(next_handle, isolate->handle_scope_data()->next); |
- |
- // Deduplicate root list items. |
- Handle<String> empty_string(heap->empty_string()); |
- Handle<Map> free_space_map(heap->free_space_map()); |
- Handle<Symbol> uninitialized_symbol(heap->uninitialized_symbol()); |
- CHECK_EQ(isolate->factory()->empty_string().location(), |
- empty_string.location()); |
- CHECK_EQ(isolate->factory()->free_space_map().location(), |
- free_space_map.location()); |
- CHECK_EQ(isolate->factory()->uninitialized_symbol().location(), |
- uninitialized_symbol.location()); |
- // Check that no new handles have been allocated. |
- CHECK_EQ(next_handle, isolate->handle_scope_data()->next); |
- |
- // Test ordinary heap objects. |
- Handle<HeapNumber> number1 = isolate->factory()->NewHeapNumber(3.3); |
- Handle<String> string1 = |
- isolate->factory()->NewStringFromAsciiChecked("test"); |
- next_handle = isolate->handle_scope_data()->next; |
- Handle<HeapNumber> number2(*number1); |
- Handle<String> string2(*string1); |
- CHECK_EQ(number1.location(), number2.location()); |
- CHECK_EQ(string1.location(), string2.location()); |
- heap->CollectAllGarbage(); |
- Handle<HeapNumber> number3(*number2); |
- Handle<String> string3(*string2); |
- CHECK_EQ(number1.location(), number3.location()); |
- CHECK_EQ(string1.location(), string3.location()); |
- // Check that no new handles have been allocated. |
- CHECK_EQ(next_handle, isolate->handle_scope_data()->next); |
- |
- // Inner handle scope do not create canonical handles. |
- { |
- HandleScope inner(isolate); |
- Handle<HeapNumber> number4(*number1); |
- Handle<String> string4(*string1); |
- CHECK_NE(number1.location(), number4.location()); |
- CHECK_NE(string1.location(), string4.location()); |
- |
- // Nested canonical scope does not conflict with outer canonical scope, |
- // but does not canonicalize across scopes. |
- CanonicalHandleScope inner_canonical(isolate); |
- Handle<HeapNumber> number5(*number4); |
- Handle<String> string5(*string4); |
- CHECK_NE(number4.location(), number5.location()); |
- CHECK_NE(string4.location(), string5.location()); |
- CHECK_NE(number1.location(), number5.location()); |
- CHECK_NE(string1.location(), string5.location()); |
- |
- Handle<HeapNumber> number6(*number1); |
- Handle<String> string6(*string1); |
- CHECK_NE(number4.location(), number6.location()); |
- CHECK_NE(string4.location(), string6.location()); |
- CHECK_NE(number1.location(), number6.location()); |
- CHECK_NE(string1.location(), string6.location()); |
- CHECK_EQ(number5.location(), number6.location()); |
- CHECK_EQ(string5.location(), string6.location()); |
- } |
-} |
- |
} // namespace internal |
} // namespace v8 |