1 // Copyright 2014 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include <stdlib.h> 6 7 #include "src/v8.h" 8 9 #include "src/factory.h" 10 #include "test/cctest/cctest.h" 11 12 namespace { 13 14 using namespace v8::internal; 15 16 17 TEST(ArrayList) { 18 LocalContext context; 19 Isolate* isolate = CcTest::i_isolate(); 20 HandleScope scope(isolate); 21 Handle<ArrayList> array( 22 ArrayList::cast(isolate->heap()->empty_fixed_array())); 23 CHECK_EQ(0, array->Length()); 24 array = ArrayList::Add(array, handle(Smi::FromInt(100), isolate)); 25 CHECK_EQ(1, array->Length()); 26 CHECK_EQ(100, Smi::cast(array->Get(0))->value()); 27 array = ArrayList::Add(array, handle(Smi::FromInt(200), isolate), 28 handle(Smi::FromInt(300), isolate)); 29 CHECK_EQ(3, array->Length()); 30 CHECK_EQ(100, Smi::cast(array->Get(0))->value()); 31 CHECK_EQ(200, Smi::cast(array->Get(1))->value()); 32 CHECK_EQ(300, Smi::cast(array->Get(2))->value()); 33 array->Set(2, Smi::FromInt(400)); 34 CHECK_EQ(400, Smi::cast(array->Get(2))->value()); 35 array->Clear(2, isolate->heap()->undefined_value()); 36 array->SetLength(2); 37 CHECK_EQ(2, array->Length()); 38 CHECK_EQ(100, Smi::cast(array->Get(0))->value()); 39 CHECK_EQ(200, Smi::cast(array->Get(1))->value()); 40 } 41 42 } // namespace 43