diff options
author | Myles Borins <mylesborins@google.com> | 2017-08-01 11:36:44 -0500 |
---|---|---|
committer | Myles Borins <mylesborins@google.com> | 2017-08-01 15:23:15 -0500 |
commit | 0a66b223e149a841669bfad5598e4254589730cb (patch) | |
tree | 5ec050f7f78aafbf5b1e0e50d639fb843141e162 /deps/v8/test/cctest/test-field-type-tracking.cc | |
parent | 1782b3836ba58ef0da6b687f2bb970c0bd8199ad (diff) | |
download | android-node-v8-0a66b223e149a841669bfad5598e4254589730cb.tar.gz android-node-v8-0a66b223e149a841669bfad5598e4254589730cb.tar.bz2 android-node-v8-0a66b223e149a841669bfad5598e4254589730cb.zip |
deps: update V8 to 6.0.286.52
PR-URL: https://github.com/nodejs/node/pull/14004
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'deps/v8/test/cctest/test-field-type-tracking.cc')
-rw-r--r-- | deps/v8/test/cctest/test-field-type-tracking.cc | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/deps/v8/test/cctest/test-field-type-tracking.cc b/deps/v8/test/cctest/test-field-type-tracking.cc index 0ecf7911bd..79bb9b7860 100644 --- a/deps/v8/test/cctest/test-field-type-tracking.cc +++ b/deps/v8/test/cctest/test-field-type-tracking.cc @@ -322,8 +322,21 @@ class Expectations { Handle<FieldType> heap_type) { CHECK_EQ(number_of_properties_, map->NumberOfOwnDescriptors()); int property_index = number_of_properties_++; - SetDataField(property_index, attributes, constness, representation, - heap_type); + PropertyConstness expected_constness = constness; + Representation expected_representation = representation; + Handle<FieldType> expected_heap_type = heap_type; + if (IsTransitionableFastElementsKind(map->elements_kind())) { + // Maps with transitionable elements kinds must have non in-place + // generalizable fields. + if (FLAG_track_constant_fields && FLAG_modify_map_inplace) { + expected_constness = kMutable; + } + if (representation.IsHeapObject() && heap_type->IsClass()) { + expected_heap_type = FieldType::Any(isolate_); + } + } + SetDataField(property_index, attributes, expected_constness, + expected_representation, expected_heap_type); Handle<String> name = MakeName("prop", property_index); return Map::CopyWithField(map, name, heap_type, attributes, constness, @@ -1768,9 +1781,9 @@ static void TestReconfigureElementsKind_GeneralizeField( // Ensure Map::FindElementsKindTransitionedMap() is able to find the // transitioned map. { - MapHandleList map_list; - map_list.Add(updated_map); - Map* transitioned_map = map2->FindElementsKindTransitionedMap(&map_list); + MapHandles map_list; + map_list.push_back(updated_map); + Map* transitioned_map = map2->FindElementsKindTransitionedMap(map_list); CHECK_EQ(*updated_map, transitioned_map); } } @@ -1788,8 +1801,7 @@ static void TestReconfigureElementsKind_GeneralizeField( // where "p2A" and "p2B" differ only in the representation/field type. // static void TestReconfigureElementsKind_GeneralizeFieldTrivial( - const CRFTData& from, const CRFTData& to, const CRFTData& expected, - bool expected_field_type_dependency = true) { + const CRFTData& from, const CRFTData& to, const CRFTData& expected) { Isolate* isolate = CcTest::i_isolate(); Expectations expectations(isolate, FAST_SMI_ELEMENTS); @@ -1851,7 +1863,7 @@ static void TestReconfigureElementsKind_GeneralizeFieldTrivial( expected.representation, expected.type); CHECK(!map->is_deprecated()); CHECK_EQ(*map, *new_map); - CHECK_EQ(expected_field_type_dependency, dependencies.HasAborted()); + CHECK(!dependencies.HasAborted()); dependencies.Rollback(); // Properly cleanup compilation info. CHECK(!new_map->is_deprecated()); @@ -1863,9 +1875,9 @@ static void TestReconfigureElementsKind_GeneralizeFieldTrivial( // Ensure Map::FindElementsKindTransitionedMap() is able to find the // transitioned map. { - MapHandleList map_list; - map_list.Add(updated_map); - Map* transitioned_map = map2->FindElementsKindTransitionedMap(&map_list); + MapHandles map_list; + map_list.push_back(updated_map); + Map* transitioned_map = map2->FindElementsKindTransitionedMap(map_list); CHECK_EQ(*updated_map, transitioned_map); } } @@ -2012,7 +2024,7 @@ TEST(ReconfigureElementsKind_GeneralizeHeapObjFieldToHeapObj) { TestReconfigureElementsKind_GeneralizeFieldTrivial( {kConst, Representation::HeapObject(), any_type}, {kConst, Representation::HeapObject(), new_type}, - {kConst, Representation::HeapObject(), any_type}, false); + {kConst, Representation::HeapObject(), any_type}); if (FLAG_modify_map_inplace) { // kConst to kMutable migration does not create a new map, therefore @@ -2033,12 +2045,12 @@ TEST(ReconfigureElementsKind_GeneralizeHeapObjFieldToHeapObj) { TestReconfigureElementsKind_GeneralizeFieldTrivial( {kMutable, Representation::HeapObject(), any_type}, {kConst, Representation::HeapObject(), new_type}, - {kMutable, Representation::HeapObject(), any_type}, false); + {kMutable, Representation::HeapObject(), any_type}); } TestReconfigureElementsKind_GeneralizeFieldTrivial( {kMutable, Representation::HeapObject(), any_type}, {kMutable, Representation::HeapObject(), new_type}, - {kMutable, Representation::HeapObject(), any_type}, false); + {kMutable, Representation::HeapObject(), any_type}); } TEST(ReconfigureElementsKind_GeneralizeHeapObjectFieldToTagged) { |