| Index: test/cctest/test-constantpool.cc | 
| diff --git a/test/cctest/test-constantpool.cc b/test/cctest/test-constantpool.cc | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..9f2436c03436325df7ebfd94dd9a230e84593e1d | 
| --- /dev/null | 
| +++ b/test/cctest/test-constantpool.cc | 
| @@ -0,0 +1,50 @@ | 
| +// Copyright 2013 the V8 project authors. All rights reserved. | 
| + | 
| +// Test constant pool array code. | 
| + | 
| +#include "v8.h" | 
| + | 
| +#include "factory.h" | 
| +#include "objects.h" | 
| +#include "cctest.h" | 
| + | 
| +using namespace v8::internal; | 
| + | 
| + | 
| +TEST(ConstantPool) { | 
| +  LocalContext context; | 
| +  Isolate* isolate = CcTest::i_isolate(); | 
| +  Heap* heap = isolate->heap(); | 
| +  Factory* factory = isolate->factory(); | 
| +  v8::HandleScope scope(context->GetIsolate()); | 
| + | 
| +  // Check construction. | 
| +  Handle<ConstantPoolArray> array = factory->NewConstantPoolArray(3, 2, 1); | 
| +  CHECK_EQ(array->count_of_int64_entries(), 3); | 
| +  CHECK_EQ(array->count_of_ptr_entries(), 2); | 
| +  CHECK_EQ(array->count_of_int32_entries(), 1); | 
| +  CHECK_EQ(array->length(), 6); | 
| +  CHECK_EQ(array->first_int64_index(), 0); | 
| +  CHECK_EQ(array->first_ptr_index(), 3); | 
| +  CHECK_EQ(array->first_int32_index(), 5); | 
| + | 
| +  // Check getters and setters. | 
| +  int64_t big_number = V8_2PART_UINT64_C(0x12345678, 9ABCDEF0); | 
| +  Handle<Object> object = factory->NewHeapNumber(4.0); | 
| +  array->set(0, big_number); | 
| +  array->set(1, 0.5); | 
| +  array->set(3, *object); | 
| +  array->set(5, 50); | 
| +  CHECK_EQ(array->get_int64_entry(0), big_number); | 
| +  CHECK_EQ(array->get_int64_entry_as_double(1), 0.5); | 
| +  CHECK_EQ(array->get_ptr_entry(3), *object); | 
| +  CHECK_EQ(array->get_int32_entry(5), 50); | 
| + | 
| +  // Check pointers are updated on GC. | 
| +  Object* old_ptr = array->get_ptr_entry(3); | 
| +  CHECK_EQ(*object, old_ptr); | 
| +  heap->CollectGarbage(NEW_SPACE); | 
| +  Object* new_ptr = array->get_ptr_entry(3); | 
| +  CHECK_NE(*object, old_ptr); | 
| +  CHECK_EQ(*object, new_ptr); | 
| +} | 
|  |