| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 // Copyright 2013 the V8 project authors. All rights reserved. | 
|  | 2 | 
|  | 3 // Test constant pool array code. | 
|  | 4 | 
|  | 5 #include "v8.h" | 
|  | 6 | 
|  | 7 #include "factory.h" | 
|  | 8 #include "objects.h" | 
|  | 9 #include "cctest.h" | 
|  | 10 | 
|  | 11 using namespace v8::internal; | 
|  | 12 | 
|  | 13 | 
|  | 14 TEST(ConstantPool) { | 
|  | 15   LocalContext context; | 
|  | 16   Isolate* isolate = CcTest::i_isolate(); | 
|  | 17   Heap* heap = isolate->heap(); | 
|  | 18   Factory* factory = isolate->factory(); | 
|  | 19   v8::HandleScope scope(context->GetIsolate()); | 
|  | 20 | 
|  | 21   // Check construction. | 
|  | 22   Handle<ConstantPoolArray> array = factory->NewConstantPoolArray(3, 2, 1); | 
|  | 23   CHECK_EQ(array->count_of_int64_entries(), 3); | 
|  | 24   CHECK_EQ(array->count_of_ptr_entries(), 2); | 
|  | 25   CHECK_EQ(array->count_of_int32_entries(), 1); | 
|  | 26   CHECK_EQ(array->length(), 6); | 
|  | 27   CHECK_EQ(array->first_int64_index(), 0); | 
|  | 28   CHECK_EQ(array->first_ptr_index(), 3); | 
|  | 29   CHECK_EQ(array->first_int32_index(), 5); | 
|  | 30 | 
|  | 31   // Check getters and setters. | 
|  | 32   int64_t big_number = V8_2PART_UINT64_C(0x12345678, 9ABCDEF0); | 
|  | 33   Handle<Object> object = factory->NewHeapNumber(4.0); | 
|  | 34   array->set(0, big_number); | 
|  | 35   array->set(1, 0.5); | 
|  | 36   array->set(3, *object); | 
|  | 37   array->set(5, 50); | 
|  | 38   CHECK_EQ(array->get_int64_entry(0), big_number); | 
|  | 39   CHECK_EQ(array->get_int64_entry_as_double(1), 0.5); | 
|  | 40   CHECK_EQ(array->get_ptr_entry(3), *object); | 
|  | 41   CHECK_EQ(array->get_int32_entry(5), 50); | 
|  | 42 | 
|  | 43   // Check pointers are updated on GC. | 
|  | 44   Object* old_ptr = array->get_ptr_entry(3); | 
|  | 45   CHECK_EQ(*object, old_ptr); | 
|  | 46   heap->CollectGarbage(NEW_SPACE); | 
|  | 47   Object* new_ptr = array->get_ptr_entry(3); | 
|  | 48   CHECK_NE(*object, old_ptr); | 
|  | 49   CHECK_EQ(*object, new_ptr); | 
|  | 50 } | 
| OLD | NEW | 
|---|