summaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/test-elements-kind.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/cctest/test-elements-kind.cc')
-rw-r--r--deps/v8/test/cctest/test-elements-kind.cc85
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");