| Index: test/cctest/test-api.cc | 
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc | 
| index 510fc26de4ff21ee5142213afd70908990bb032e..ef1cdb514065c59307ca83a5b4c2b32f9c804763 100644 | 
| --- a/test/cctest/test-api.cc | 
| +++ b/test/cctest/test-api.cc | 
| @@ -2683,6 +2683,40 @@ THREADED_TEST(InternalFieldsAlignedPointers) { | 
| CHECK_EQ(huge, Object::GetAlignedPointerFromInternalField(persistent, 0)); | 
| } | 
|  | 
| +THREADED_TEST(SetAlignedPointerInInternalFields) { | 
| +  LocalContext env; | 
| +  v8::Isolate* isolate = env->GetIsolate(); | 
| +  v8::HandleScope scope(isolate); | 
| + | 
| +  Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New(isolate); | 
| +  Local<v8::ObjectTemplate> instance_templ = templ->InstanceTemplate(); | 
| +  instance_templ->SetInternalFieldCount(2); | 
| +  Local<v8::Object> obj = templ->GetFunction(env.local()) | 
| +                              .ToLocalChecked() | 
| +                              ->NewInstance(env.local()) | 
| +                              .ToLocalChecked(); | 
| +  CHECK_EQ(2, obj->InternalFieldCount()); | 
| + | 
| +  int* heap_allocated_1 = new int[100]; | 
| +  int* heap_allocated_2 = new int[100]; | 
| +  int indices[] = {0, 1}; | 
| +  void* values[] = {heap_allocated_1, heap_allocated_2}; | 
| + | 
| +  obj->SetAlignedPointerInInternalFields(2, indices, values); | 
| +  CcTest::heap()->CollectAllGarbage(); | 
| +  CHECK_EQ(heap_allocated_1, obj->GetAlignedPointerFromInternalField(0)); | 
| +  CHECK_EQ(heap_allocated_2, obj->GetAlignedPointerFromInternalField(1)); | 
| + | 
| +  indices[0] = 1; | 
| +  indices[1] = 0; | 
| +  obj->SetAlignedPointerInInternalFields(2, indices, values); | 
| +  CcTest::heap()->CollectAllGarbage(); | 
| +  CHECK_EQ(heap_allocated_2, obj->GetAlignedPointerFromInternalField(0)); | 
| +  CHECK_EQ(heap_allocated_1, obj->GetAlignedPointerFromInternalField(1)); | 
| + | 
| +  delete[] heap_allocated_1; | 
| +  delete[] heap_allocated_2; | 
| +} | 
|  | 
| static void CheckAlignedPointerInEmbedderData(LocalContext* env, int index, | 
| void* value) { | 
| @@ -2724,7 +2758,6 @@ THREADED_TEST(EmbedderDataAlignedPointers) { | 
| } | 
| } | 
|  | 
| - | 
| static void CheckEmbedderData(LocalContext* env, int index, | 
| v8::Local<Value> data) { | 
| (*env)->SetEmbedderData(index, data); | 
|  |