OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stdlib.h> | 5 #include <stdlib.h> |
6 #include <utility> | 6 #include <utility> |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
565 | 565 |
566 CHECK(!new_map->is_deprecated()); | 566 CHECK(!new_map->is_deprecated()); |
567 CHECK(!new_map->is_dictionary_map()); | 567 CHECK(!new_map->is_dictionary_map()); |
568 CHECK(expectations.Check(*new_map)); | 568 CHECK(expectations.Check(*new_map)); |
569 } | 569 } |
570 | 570 |
571 Handle<Map> active_map = maps[kPropCount - 1]; | 571 Handle<Map> active_map = maps[kPropCount - 1]; |
572 CHECK(!active_map->is_deprecated()); | 572 CHECK(!active_map->is_deprecated()); |
573 | 573 |
574 // Update all deprecated maps and check that they are now the same. | 574 // Update all deprecated maps and check that they are now the same. |
575 CHECK_EQ(*active_map, *Map::Update(map)); | 575 Handle<Map> updated_map = Map::Update(map); |
| 576 CHECK_EQ(*active_map, *updated_map); |
576 for (int i = 0; i < kPropCount; i++) { | 577 for (int i = 0; i < kPropCount; i++) { |
577 Handle<Map> updated_map = Map::Update(maps[i]); | 578 updated_map = Map::Update(maps[i]); |
578 CHECK_EQ(*active_map, *updated_map); | 579 CHECK_EQ(*active_map, *updated_map); |
579 } | 580 } |
580 } | 581 } |
581 | 582 |
582 | 583 |
583 static void TestGeneralizeRepresentationTrivial( | 584 static void TestGeneralizeRepresentationTrivial( |
584 Representation from_representation, Handle<HeapType> from_type, | 585 Representation from_representation, Handle<HeapType> from_type, |
585 Representation to_representation, Handle<HeapType> to_type, | 586 Representation to_representation, Handle<HeapType> to_type, |
586 Representation expected_representation, Handle<HeapType> expected_type, | 587 Representation expected_representation, Handle<HeapType> expected_type, |
587 bool expected_field_type_dependency = true) { | 588 bool expected_field_type_dependency = true) { |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
828 | 829 |
829 CHECK(!new_map->is_deprecated()); | 830 CHECK(!new_map->is_deprecated()); |
830 CHECK(!new_map->is_dictionary_map()); | 831 CHECK(!new_map->is_dictionary_map()); |
831 CHECK(expectations.Check(*new_map)); | 832 CHECK(expectations.Check(*new_map)); |
832 } | 833 } |
833 | 834 |
834 Handle<Map> active_map = maps[kPropCount - 1]; | 835 Handle<Map> active_map = maps[kPropCount - 1]; |
835 CHECK(!active_map->is_deprecated()); | 836 CHECK(!active_map->is_deprecated()); |
836 | 837 |
837 // Update all deprecated maps and check that they are now the same. | 838 // Update all deprecated maps and check that they are now the same. |
838 CHECK_EQ(*active_map, *Map::Update(map)); | 839 Handle<Map> updated_map = Map::Update(map); |
| 840 CHECK_EQ(*active_map, *updated_map); |
839 for (int i = 0; i < kPropCount; i++) { | 841 for (int i = 0; i < kPropCount; i++) { |
840 Handle<Map> updated_map = Map::Update(maps[i]); | 842 updated_map = Map::Update(maps[i]); |
841 CHECK_EQ(*active_map, *updated_map); | 843 CHECK_EQ(*active_map, *updated_map); |
842 } | 844 } |
843 } | 845 } |
844 | 846 |
845 | 847 |
846 //////////////////////////////////////////////////////////////////////////////// | 848 //////////////////////////////////////////////////////////////////////////////// |
847 // A set of tests for attribute reconfiguration case. | 849 // A set of tests for attribute reconfiguration case. |
848 // | 850 // |
849 | 851 |
850 // This test ensures that representation/field type generalization is correctly | 852 // This test ensures that representation/field type generalization is correctly |
(...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1549 CHECK(expectations2.Check(*new_map2)); | 1551 CHECK(expectations2.Check(*new_map2)); |
1550 } else { | 1552 } else { |
1551 CHECK(expectations.Check(*new_map2)); | 1553 CHECK(expectations.Check(*new_map2)); |
1552 } | 1554 } |
1553 } | 1555 } |
1554 | 1556 |
1555 Handle<Map> active_map = maps[kPropCount - 1]; | 1557 Handle<Map> active_map = maps[kPropCount - 1]; |
1556 CHECK(!active_map->is_deprecated()); | 1558 CHECK(!active_map->is_deprecated()); |
1557 | 1559 |
1558 // Update all deprecated maps and check that they are now the same. | 1560 // Update all deprecated maps and check that they are now the same. |
1559 CHECK_EQ(*active_map, *Map::Update(map)); | 1561 Handle<Map> updated_map = Map::Update(map); |
| 1562 CHECK_EQ(*active_map, *updated_map); |
1560 for (int i = 0; i < kPropCount; i++) { | 1563 for (int i = 0; i < kPropCount; i++) { |
1561 Handle<Map> updated_map = Map::Update(maps[i]); | 1564 updated_map = Map::Update(maps[i]); |
1562 CHECK_EQ(*active_map, *updated_map); | 1565 CHECK_EQ(*active_map, *updated_map); |
1563 } | 1566 } |
1564 } | 1567 } |
1565 | 1568 |
1566 | 1569 |
1567 TEST(ElementsKindTransitionFromMapOwningDescriptor) { | 1570 TEST(ElementsKindTransitionFromMapOwningDescriptor) { |
1568 CcTest::InitializeVM(); | 1571 CcTest::InitializeVM(); |
1569 v8::HandleScope scope(CcTest::isolate()); | 1572 v8::HandleScope scope(CcTest::isolate()); |
1570 Isolate* isolate = CcTest::i_isolate(); | 1573 Isolate* isolate = CcTest::i_isolate(); |
1571 Handle<HeapType> any_type = HeapType::Any(isolate); | 1574 Handle<HeapType> any_type = HeapType::Any(isolate); |
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2020 Handle<AccessorPair> pair = CreateAccessorPair(true, true); | 2023 Handle<AccessorPair> pair = CreateAccessorPair(true, true); |
2021 TransitionToAccessorConstantOperator transition_op(pair); | 2024 TransitionToAccessorConstantOperator transition_op(pair); |
2022 | 2025 |
2023 SameMapChecker checker; | 2026 SameMapChecker checker; |
2024 TestTransitionTo(transition_op, transition_op, checker); | 2027 TestTransitionTo(transition_op, transition_op, checker); |
2025 } | 2028 } |
2026 | 2029 |
2027 | 2030 |
2028 // TODO(ishell): add this test once IS_ACCESSOR_FIELD_SUPPORTED is supported. | 2031 // TODO(ishell): add this test once IS_ACCESSOR_FIELD_SUPPORTED is supported. |
2029 // TEST(TransitionAccessorConstantToAnotherAccessorConstant) | 2032 // TEST(TransitionAccessorConstantToAnotherAccessorConstant) |
OLD | NEW |