diff options
Diffstat (limited to 'deps/v8/test/cctest/test-elements-kind.cc')
-rw-r--r-- | deps/v8/test/cctest/test-elements-kind.cc | 85 |
1 files changed, 41 insertions, 44 deletions
diff --git a/deps/v8/test/cctest/test-elements-kind.cc b/deps/v8/test/cctest/test-elements-kind.cc index 33df810c89..5237a54173 100644 --- a/deps/v8/test/cctest/test-elements-kind.cc +++ b/deps/v8/test/cctest/test-elements-kind.cc @@ -39,25 +39,22 @@ Handle<String> MakeName(const char* str, int suffix) { return MakeString(buffer.start()); } - template <typename T, typename M> -bool EQUALS(Handle<T> left, Handle<M> right) { +bool EQUALS(Isolate* isolate, Handle<T> left, Handle<M> right) { if (*left == *right) return true; - return JSObject::Equals(Handle<Object>::cast(left), + return JSObject::Equals(isolate, Handle<Object>::cast(left), Handle<Object>::cast(right)) .FromJust(); } - template <typename T, typename M> -bool EQUALS(Handle<T> left, M right) { - return EQUALS(left, handle(right)); +bool EQUALS(Isolate* isolate, Handle<T> left, M right) { + return EQUALS(isolate, left, handle(right, isolate)); } - template <typename T, typename M> -bool EQUALS(T left, Handle<M> right) { - return EQUALS(handle(left, right->GetIsolate()), right); +bool EQUALS(Isolate* isolate, T left, Handle<M> right) { + return EQUALS(isolate, handle(left, isolate), right); } } // namespace @@ -80,10 +77,10 @@ TEST(JSObjectAddingProperties) { Handle<Object> value(Smi::FromInt(42), isolate); Handle<JSObject> object = factory->NewJSObject(function); - Handle<Map> previous_map(object->map()); + Handle<Map> previous_map(object->map(), isolate); CHECK_EQ(HOLEY_ELEMENTS, previous_map->elements_kind()); - CHECK(EQUALS(object->property_array(), empty_property_array)); - CHECK(EQUALS(object->elements(), empty_fixed_array)); + CHECK(EQUALS(isolate, object->property_array(), empty_property_array)); + CHECK(EQUALS(isolate, object->elements(), empty_fixed_array)); // for the default constructor function no in-object properties are reserved // hence adding a single property will initialize the property-array @@ -93,7 +90,7 @@ TEST(JSObjectAddingProperties) { CHECK_NE(object->map(), *previous_map); CHECK_EQ(HOLEY_ELEMENTS, object->map()->elements_kind()); CHECK_LE(1, object->property_array()->length()); - CHECK(EQUALS(object->elements(), empty_fixed_array)); + CHECK(EQUALS(isolate, object->elements(), empty_fixed_array)); } @@ -113,10 +110,10 @@ TEST(JSObjectInObjectAddingProperties) { Handle<Object> value(Smi::FromInt(42), isolate); Handle<JSObject> object = factory->NewJSObject(function); - Handle<Map> previous_map(object->map()); + Handle<Map> previous_map(object->map(), isolate); CHECK_EQ(HOLEY_ELEMENTS, previous_map->elements_kind()); - CHECK(EQUALS(object->property_array(), empty_property_array)); - CHECK(EQUALS(object->elements(), empty_fixed_array)); + CHECK(EQUALS(isolate, object->property_array(), empty_property_array)); + CHECK(EQUALS(isolate, object->elements(), empty_fixed_array)); // we have reserved space for in-object properties, hence adding up to // |nof_inobject_properties| will not create a property store @@ -127,8 +124,8 @@ TEST(JSObjectInObjectAddingProperties) { } CHECK_NE(object->map(), *previous_map); CHECK_EQ(HOLEY_ELEMENTS, object->map()->elements_kind()); - CHECK(EQUALS(object->property_array(), empty_property_array)); - CHECK(EQUALS(object->elements(), empty_fixed_array)); + CHECK(EQUALS(isolate, object->property_array(), empty_property_array)); + CHECK(EQUALS(isolate, object->elements(), empty_fixed_array)); // adding one more property will not fit in the in-object properties, thus // creating a property store @@ -140,7 +137,7 @@ TEST(JSObjectInObjectAddingProperties) { CHECK_EQ(HOLEY_ELEMENTS, object->map()->elements_kind()); // there must be at least 1 element in the properies store CHECK_LE(1, object->property_array()->length()); - CHECK(EQUALS(object->elements(), empty_fixed_array)); + CHECK(EQUALS(isolate, object->elements(), empty_fixed_array)); } @@ -158,10 +155,10 @@ TEST(JSObjectAddingElements) { Handle<Object> value(Smi::FromInt(42), isolate); Handle<JSObject> object = factory->NewJSObject(function); - Handle<Map> previous_map(object->map()); + Handle<Map> previous_map(object->map(), isolate); CHECK_EQ(HOLEY_ELEMENTS, previous_map->elements_kind()); - CHECK(EQUALS(object->property_array(), empty_property_array)); - CHECK(EQUALS(object->elements(), empty_fixed_array)); + CHECK(EQUALS(isolate, object->property_array(), empty_property_array)); + CHECK(EQUALS(isolate, object->elements(), empty_fixed_array)); // Adding an indexed element initializes the elements array name = MakeString("0"); @@ -170,7 +167,7 @@ TEST(JSObjectAddingElements) { // no change in elements_kind => no map transition CHECK_EQ(object->map(), *previous_map); CHECK_EQ(HOLEY_ELEMENTS, object->map()->elements_kind()); - CHECK(EQUALS(object->property_array(), empty_property_array)); + CHECK(EQUALS(isolate, object->property_array(), empty_property_array)); CHECK_LE(1, object->elements()->length()); // Adding more consecutive elements without a change in the backing store @@ -183,7 +180,7 @@ TEST(JSObjectAddingElements) { // no change in elements_kind => no map transition CHECK_EQ(object->map(), *previous_map); CHECK_EQ(HOLEY_ELEMENTS, object->map()->elements_kind()); - CHECK(EQUALS(object->property_array(), empty_property_array)); + CHECK(EQUALS(isolate, object->property_array(), empty_property_array)); CHECK_LE(non_dict_backing_store_limit, object->elements()->length()); // Adding an element at an very large index causes a change to @@ -194,7 +191,7 @@ TEST(JSObjectAddingElements) { // change in elements_kind => map transition CHECK_NE(object->map(), *previous_map); CHECK_EQ(DICTIONARY_ELEMENTS, object->map()->elements_kind()); - CHECK(EQUALS(object->property_array(), empty_property_array)); + CHECK(EQUALS(isolate, object->property_array(), empty_property_array)); CHECK_LE(non_dict_backing_store_limit, object->elements()->length()); } @@ -211,10 +208,10 @@ TEST(JSArrayAddingProperties) { Handle<JSArray> array = factory->NewJSArray(ElementsKind::PACKED_SMI_ELEMENTS, 0, 0); - Handle<Map> previous_map(array->map()); + Handle<Map> previous_map(array->map(), isolate); CHECK_EQ(PACKED_SMI_ELEMENTS, previous_map->elements_kind()); - CHECK(EQUALS(array->property_array(), empty_property_array)); - CHECK(EQUALS(array->elements(), empty_fixed_array)); + CHECK(EQUALS(isolate, array->property_array(), empty_property_array)); + CHECK(EQUALS(isolate, array->elements(), empty_fixed_array)); CHECK_EQ(0, Smi::ToInt(array->length())); // for the default constructor function no in-object properties are reserved @@ -226,7 +223,7 @@ TEST(JSArrayAddingProperties) { CHECK_NE(array->map(), *previous_map); CHECK_EQ(PACKED_SMI_ELEMENTS, array->map()->elements_kind()); CHECK_LE(1, array->property_array()->length()); - CHECK(EQUALS(array->elements(), empty_fixed_array)); + CHECK(EQUALS(isolate, array->elements(), empty_fixed_array)); CHECK_EQ(0, Smi::ToInt(array->length())); } @@ -244,10 +241,10 @@ TEST(JSArrayAddingElements) { Handle<JSArray> array = factory->NewJSArray(ElementsKind::PACKED_SMI_ELEMENTS, 0, 0); - Handle<Map> previous_map(array->map()); + Handle<Map> previous_map(array->map(), isolate); CHECK_EQ(PACKED_SMI_ELEMENTS, previous_map->elements_kind()); - CHECK(EQUALS(array->property_array(), empty_property_array)); - CHECK(EQUALS(array->elements(), empty_fixed_array)); + CHECK(EQUALS(isolate, array->property_array(), empty_property_array)); + CHECK(EQUALS(isolate, array->elements(), empty_fixed_array)); CHECK_EQ(0, Smi::ToInt(array->length())); // Adding an indexed element initializes the elements array @@ -257,7 +254,7 @@ TEST(JSArrayAddingElements) { // no change in elements_kind => no map transition CHECK_EQ(array->map(), *previous_map); CHECK_EQ(PACKED_SMI_ELEMENTS, array->map()->elements_kind()); - CHECK(EQUALS(array->property_array(), empty_property_array)); + CHECK(EQUALS(isolate, array->property_array(), empty_property_array)); CHECK_LE(1, array->elements()->length()); CHECK_EQ(1, Smi::ToInt(array->length())); @@ -271,7 +268,7 @@ TEST(JSArrayAddingElements) { // no change in elements_kind => no map transition CHECK_EQ(array->map(), *previous_map); CHECK_EQ(PACKED_SMI_ELEMENTS, array->map()->elements_kind()); - CHECK(EQUALS(array->property_array(), empty_property_array)); + CHECK(EQUALS(isolate, array->property_array(), empty_property_array)); CHECK_LE(non_dict_backing_store_limit, array->elements()->length()); CHECK_EQ(non_dict_backing_store_limit, Smi::ToInt(array->length())); @@ -284,7 +281,7 @@ TEST(JSArrayAddingElements) { // change in elements_kind => map transition CHECK_NE(array->map(), *previous_map); CHECK_EQ(DICTIONARY_ELEMENTS, array->map()->elements_kind()); - CHECK(EQUALS(array->property_array(), empty_property_array)); + CHECK(EQUALS(isolate, array->property_array(), empty_property_array)); CHECK_LE(non_dict_backing_store_limit, array->elements()->length()); CHECK_LE(array->elements()->length(), index); CHECK_EQ(index + 1, Smi::ToInt(array->length())); @@ -304,7 +301,7 @@ TEST(JSArrayAddingElementsGeneralizingiFastSmiElements) { Handle<JSArray> array = factory->NewJSArray(ElementsKind::PACKED_SMI_ELEMENTS, 0, 0); - Handle<Map> previous_map(array->map()); + Handle<Map> previous_map(array->map(), isolate); CHECK_EQ(PACKED_SMI_ELEMENTS, previous_map->elements_kind()); CHECK_EQ(0, Smi::ToInt(array->length())); @@ -324,7 +321,7 @@ TEST(JSArrayAddingElementsGeneralizingiFastSmiElements) { CHECK_NE(array->map(), *previous_map); CHECK_EQ(HOLEY_SMI_ELEMENTS, array->map()->elements_kind()); CHECK_EQ(1, Smi::ToInt(array->length())); - previous_map = handle(array->map()); + previous_map = handle(array->map(), isolate); // add a couple of elements again name = MakeString("0"); @@ -347,7 +344,7 @@ TEST(JSArrayAddingElementsGeneralizingiFastSmiElements) { CHECK_NE(array->map(), *previous_map); CHECK_EQ(HOLEY_ELEMENTS, array->map()->elements_kind()); CHECK_EQ(2, Smi::ToInt(array->length())); - previous_map = handle(array->map()); + previous_map = handle(array->map(), isolate); // We don't transition back to FAST_SMI even if we remove the string name = MakeString("0"); @@ -377,7 +374,7 @@ TEST(JSArrayAddingElementsGeneralizingFastElements) { Handle<JSArray> array = factory->NewJSArray(ElementsKind::PACKED_ELEMENTS, 0, 0); - Handle<Map> previous_map(array->map()); + Handle<Map> previous_map(array->map(), isolate); CHECK_EQ(PACKED_ELEMENTS, previous_map->elements_kind()); CHECK_EQ(0, Smi::ToInt(array->length())); @@ -397,7 +394,7 @@ TEST(JSArrayAddingElementsGeneralizingFastElements) { CHECK_NE(array->map(), *previous_map); CHECK_EQ(HOLEY_ELEMENTS, array->map()->elements_kind()); CHECK_EQ(1, Smi::ToInt(array->length())); - previous_map = handle(array->map()); + previous_map = handle(array->map(), isolate); // add a couple of elements, elements_kind stays HOLEY name = MakeString("0"); @@ -427,7 +424,7 @@ TEST(JSArrayAddingElementsGeneralizingiFastDoubleElements) { Handle<JSArray> array = factory->NewJSArray(ElementsKind::PACKED_SMI_ELEMENTS, 0, 0); - Handle<Map> previous_map(array->map()); + Handle<Map> previous_map(array->map(), isolate); // `array[0] = value_double` changes |elements_kind| to PACKED_DOUBLE_ELEMENTS name = MakeString("0"); @@ -437,7 +434,7 @@ TEST(JSArrayAddingElementsGeneralizingiFastDoubleElements) { CHECK_NE(array->map(), *previous_map); CHECK_EQ(PACKED_DOUBLE_ELEMENTS, array->map()->elements_kind()); CHECK_EQ(1, Smi::ToInt(array->length())); - previous_map = handle(array->map()); + previous_map = handle(array->map(), isolate); // `array[1] = value_smi` doesn't alter the |elements_kind| name = MakeString("1"); @@ -454,7 +451,7 @@ TEST(JSArrayAddingElementsGeneralizingiFastDoubleElements) { CHECK_NE(array->map(), *previous_map); CHECK_EQ(HOLEY_DOUBLE_ELEMENTS, array->map()->elements_kind()); CHECK_EQ(2, Smi::ToInt(array->length())); - previous_map = handle(array->map()); + previous_map = handle(array->map(), isolate); // filling the hole `array[0] = value_smi` again doesn't transition back name = MakeString("0"); @@ -473,7 +470,7 @@ TEST(JSArrayAddingElementsGeneralizingiFastDoubleElements) { CHECK_NE(array->map(), *previous_map); CHECK_EQ(HOLEY_ELEMENTS, array->map()->elements_kind()); CHECK_EQ(2, Smi::ToInt(array->length())); - previous_map = handle(array->map()); + previous_map = handle(array->map(), isolate); // Adding a double doesn't change the map name = MakeString("0"); |