Home | History | Annotate | Download | only in cctest
      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